/* Future-Ready Learning Toolkit */
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.tk{background:var(--bg)}
.tk-header{background:var(--surface);border-bottom:1px solid var(--line)}
.tk-header-inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:84px}
.tk-brand img{height:56px;width:auto}
.tk-tabs{position:sticky;top:0;z-index:20;background:var(--ink)}
.tk-tabs-inner{display:flex;gap:.25rem;overflow-x:auto;scrollbar-width:none;padding-top:.5rem;padding-bottom:.5rem}
.tk-tabs-inner::-webkit-scrollbar{display:none}
.tk-tabs a{flex:0 0 auto;color:rgba(255,255,255,.82);text-decoration:none;font-size:var(--text-sm);font-weight:600;padding:.6rem .95rem;border-radius:999px;min-height:42px;display:inline-flex;align-items:center}
.tk-tabs a:hover{color:#fff;background:rgba(255,255,255,.08)}
.tk-tabs a.on{background:var(--gold);color:var(--ink)}
.btn-gold{background:var(--gold);border-color:var(--gold);color:var(--ink)}
.btn-gold:hover{background:#f3bd45;border-color:#f3bd45;color:var(--ink)}

/* journey bar */
.journey-bar{background:var(--surface);border-bottom:1px solid var(--line);position:sticky;top:58px;z-index:15}
.jb{display:flex;align-items:center;gap:1.2rem;padding-top:.7rem;padding-bottom:.7rem}
.jb-me{display:flex;align-items:center;gap:.7rem;flex:0 0 auto}
.jb-me small{display:block;font-size:var(--text-xs);color:var(--muted)}
.jb-me strong{font-size:var(--text-sm)}
.ring{--p:0;width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--brand) calc(var(--p)*1%),var(--surface-2) 0);position:relative;flex:0 0 auto}
.ring::before{content:"";position:absolute;inset:5px;border-radius:50%;background:var(--surface)}
.ring b{position:relative;font-size:.72rem}
.jb-steps{list-style:none;display:flex;gap:.35rem;margin:0;padding:0;flex:1;min-width:0;overflow-x:auto;scrollbar-width:none}
.jb-steps::-webkit-scrollbar{display:none}
.jb-steps a{display:flex;align-items:center;gap:.45rem;text-decoration:none;color:var(--ink-2);font-size:var(--text-xs);font-weight:600;padding:.35rem .6rem .35rem .35rem;border-radius:999px;white-space:nowrap;border:1.5px solid transparent;min-height:40px}
.jb-steps .dot{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:var(--surface-2);font-size:.75rem;flex:0 0 auto}
.jb-steps li.done .dot{background:#1f7a4a;color:#fff}
.jb-steps li.cur a{border-color:var(--brand);color:var(--ink)}
.jb-next{flex:0 0 auto}
.jb-win{font-weight:700;color:#1f7a4a;font-size:var(--text-sm)}
@media (max-width:1400px){.jb-steps .lbl{display:none}.jb-steps li.cur .lbl{display:inline}}
@media (max-width:640px){.jb{flex-wrap:wrap;gap:.6rem}.jb-steps{order:3;flex-basis:100%}.jb-next{margin-left:auto;font-size:var(--text-xs);padding:.45rem .8rem;min-height:40px}.journey-bar{position:static}}

.tk-main{padding-top:clamp(2rem,5vw,3.5rem);padding-bottom:clamp(3rem,6vw,5rem);outline:none}
.tk-head{margin-bottom:clamp(1.5rem,3vw,2.2rem)}
.tk-head h2{font-size:var(--text-xl);max-width:24ch}
.tk-intro{color:var(--ink-2);max-width:62ch;margin-top:.9rem;font-size:var(--text-lg);line-height:1.5}
.tk-h3{font-family:var(--font-display);font-size:var(--text-lg);margin:2rem 0 .8rem}
.tk-p{color:var(--ink-2);max-width:68ch}
.tk-small{font-size:var(--text-xs);color:var(--muted);margin-top:1rem}
.tk-note{background:var(--surface);border:1px dashed var(--line-2);border-radius:var(--r-md);padding:1rem 1.2rem;color:var(--muted);margin-top:1.5rem}
.tk-actions{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1.2rem}
.tk-cta{margin-top:2.5rem;background:var(--surface-2);border-radius:var(--r-lg);padding:clamp(1.3rem,3vw,2rem);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem}
.tk-cta p{margin:0;max-width:60ch;font-weight:500}
.link-btn{background:none;border:0;font:inherit;font-weight:600;color:var(--brand-ink);cursor:pointer;padding:.5rem .2rem;min-height:44px;text-decoration:underline;text-underline-offset:3px}
.link-btn:disabled{color:var(--muted);opacity:.5;cursor:default;text-decoration:none}

/* start / sizzle */
.sizzle{background:linear-gradient(135deg,var(--ink) 0%,#1f3a6b 100%);color:#fff;border-radius:var(--r-lg);padding:clamp(1.8rem,5vw,3.5rem);margin-bottom:2rem;position:relative;overflow:hidden}
.sizzle::after{content:"";position:absolute;right:-60px;top:-60px;width:260px;height:260px;border-radius:50%;background:radial-gradient(circle,rgba(233,169,35,.45),transparent 70%)}
.sizzle h2{font-size:var(--text-2xl);max-width:16ch;position:relative;z-index:1}
.sz-lede{font-size:var(--text-lg);max-width:54ch;color:rgba(255,255,255,.86);margin:1.1rem 0 0;position:relative;z-index:1}
.sizzle .eyebrow{color:var(--gold)}
.pick{margin-bottom:1.8rem;transition:opacity .3s}
.pick.dim{opacity:.45}
.pick h3{display:flex;align-items:center;gap:.6rem;font-family:var(--font-display);font-size:var(--text-lg);margin-bottom:.9rem}
.num{width:32px;height:32px;border-radius:50%;background:var(--brand);color:#fff;display:grid;place-items:center;font-family:var(--font-body);font-size:.9rem}
.cards{display:grid;grid-template-columns:repeat(5,1fr);gap:.8rem}
.cards.four{grid-template-columns:repeat(4,1fr)}
.pcard{font:inherit;text-align:left;background:var(--surface);border:2px solid var(--line);border-radius:var(--r-md);padding:1rem;cursor:pointer;display:flex;flex-direction:column;gap:.3rem;min-height:92px;transition:transform .15s,border-color .15s,box-shadow .15s;color:var(--ink)}
.pcard:hover:not(:disabled){transform:translateY(-2px);border-color:var(--brand);box-shadow:var(--shadow)}
.pcard.on{border-color:var(--brand);background:#e8f0fa;box-shadow:inset 0 0 0 1px var(--brand)}
.pcard b{font-size:var(--text-base)}
.pcard span{font-size:var(--text-xs);color:var(--muted)}
.pcard:disabled{cursor:not-allowed}
@media (max-width:1000px){.cards{grid-template-columns:repeat(3,1fr)}.cards.four{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.cards{grid-template-columns:1fr 1fr}}
.reveal{background:var(--ink);color:#fff;border-radius:var(--r-lg);padding:clamp(1.5rem,4vw,2.6rem);animation:rise .5s ease both}
.reveal h3{font-family:var(--font-display);font-size:var(--text-xl);max-width:22ch;margin-bottom:.6rem}
.reveal p{color:rgba(255,255,255,.85)}
.path{list-style:none;padding:0;margin:1.4rem 0;display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.7rem;counter-reset:s}
.path a{display:flex;flex-direction:column;gap:.2rem;text-decoration:none;color:#fff;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.16);border-radius:var(--r-md);padding:1rem;min-height:120px;transition:background .15s,transform .15s}
.path a:hover{background:rgba(255,255,255,.14);transform:translateY(-2px)}
.path .pi{width:34px;height:34px;border-radius:50%;background:var(--gold);color:var(--ink);display:grid;place-items:center;font-weight:700;margin-bottom:.3rem}
.path li.done .pi{background:#7fdcaa}
.path b{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.1em;color:var(--gold)}
.path small{color:rgba(255,255,255,.7);font-size:var(--text-xs)}
.path em{font-style:normal;font-size:var(--text-xs);font-weight:700;color:#7fdcaa;margin-top:auto}
.path li.done a{border-color:#7fdcaa}
@keyframes rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}

/* toast */
.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,30px);opacity:0;background:#1f7a4a;color:#fff;font-weight:600;padding:.9rem 1.3rem;border-radius:999px;box-shadow:var(--shadow);z-index:60;transition:all .35s;max-width:calc(100vw - 32px);text-align:center;font-size:var(--text-sm)}
.toast.in{transform:translate(-50%,0);opacity:1}

/* explorer */
.explorer{display:grid;grid-template-columns:1.25fr 1fr;gap:1.4rem;align-items:start}
.ex-tiles{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.ex-domain{background:var(--surface);border-radius:var(--r-md);padding:1rem;border-top:5px solid var(--brand);display:flex;flex-direction:column;gap:.45rem}
.ex-domain.d1{border-top-color:var(--gold)}.ex-domain.d2{border-top-color:#1f7a4a}.ex-domain.d3{border-top-color:var(--copper)}
.ex-domain h4{font-family:var(--font-display);font-size:var(--text-base);margin:0 0 .3rem}
.ex-tile{font:inherit;font-size:var(--text-sm);text-align:left;background:var(--bg);border:1.5px solid var(--line);border-radius:var(--r-sm);padding:.6rem .75rem;cursor:pointer;min-height:44px;color:var(--ink);transition:all .15s}
.ex-tile:hover{border-color:var(--brand)}
.ex-tile.seen{background:#eef6f0;border-color:#9fd1b3}
.ex-tile.seen::after{content:" \2713";color:#1f7a4a;font-weight:700}
.ex-tile.on{background:var(--brand);color:#fff;border-color:var(--brand)}
.ex-tile.on::after{color:#fff}
.ex-panel{position:sticky;top:140px;background:var(--ink);color:#fff;border-radius:var(--r-lg);padding:clamp(1.3rem,3vw,2rem);min-height:280px}
.ex-panel h3{font-family:var(--font-display);font-size:var(--text-xl);margin-bottom:1rem}
.ex-panel .eyebrow{color:var(--gold)}
.ex-empty{color:rgba(255,255,255,.7);margin:0}
.lv-label{font-size:var(--text-xs);color:rgba(255,255,255,.7)}
.ex-panel input[type=range]{width:100%;accent-color:var(--gold);min-height:36px}
.lv-names{list-style:none;display:grid;grid-template-columns:repeat(4,1fr);padding:0;margin:0 0 1rem;font-size:var(--text-xs);color:rgba(255,255,255,.6)}
.lv-names li:nth-child(2),.lv-names li:nth-child(3){text-align:center}.lv-names li:last-child{text-align:right}
.lv-names li.on{color:var(--gold);font-weight:700}
.lv-desc{font-size:var(--text-lg);line-height:1.45;min-height:4.4em}
.lv-q{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;margin-top:1rem;padding-top:1rem;border-top:1px solid rgba(255,255,255,.18)}
.lv-q span{flex-basis:100%;font-size:var(--text-sm);font-weight:600;margin-bottom:.2rem}
.lv-pick{font:inherit;font-size:var(--text-xs);font-weight:600;background:transparent;color:#fff;border:1.5px solid rgba(255,255,255,.4);border-radius:999px;padding:.45rem .8rem;cursor:pointer;min-height:40px}
.lv-pick.on{background:var(--gold);color:var(--ink);border-color:var(--gold)}
.lv-next{margin:1rem 0 0;font-size:var(--text-sm);color:rgba(255,255,255,.88)}
.lv-next a{color:var(--gold);font-weight:700;margin-left:.3rem}
.ex-count{font-size:var(--text-sm);font-weight:600;color:var(--brand-ink);margin-top:1rem}
@media (max-width:900px){.explorer{grid-template-columns:1fr}.ex-panel{position:static}}
@media (max-width:520px){.ex-tiles{grid-template-columns:1fr}}

/* framework detail */
.fw-detail{margin-top:2rem;background:var(--surface);border-radius:var(--r-lg);padding:1rem 1.3rem;border:1px solid var(--line)}
.fw-detail summary{cursor:pointer;font-weight:700;min-height:44px;display:flex;align-items:center}
.fw-detail h4{font-family:var(--font-display);margin:1.6rem 0 .6rem}
.fw-found{background:var(--ink);color:#fff;border-radius:var(--r-md);padding:1.1rem 1.3rem;display:grid;gap:.25rem;margin-top:1rem}
.fw-found b{color:var(--gold);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.12em}
.fw-found span{font-family:var(--font-display);font-size:var(--text-lg)}
.fw-found small{color:rgba(255,255,255,.75)}
.pill-list{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:.5rem}
.pill-list li{background:var(--surface);border:1.5px solid var(--line-2);border-radius:999px;padding:.4rem .9rem;font-size:var(--text-sm);font-weight:500}
.pill-list.warn li{border-color:var(--copper);color:var(--copper)}
.fw-enablers{display:grid;grid-template-columns:repeat(3,1fr);gap:.7rem}
.fw-enablers article{background:var(--bg);border-radius:var(--r-md);padding:.9rem 1rem;display:flex;gap:.7rem;align-items:center}
.fw-enablers span{font-weight:700;color:var(--brand-ink);font-size:var(--text-xs)}
.cycle{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:.4rem;counter-reset:c}
.cycle li{counter-increment:c;background:var(--brand);color:#fff;border-radius:999px;padding:.45rem 1rem;font-weight:600;font-size:var(--text-sm)}
.cycle li::before{content:counter(c) ". "}
@media (max-width:760px){.fw-enablers{grid-template-columns:1fr}}

.table-wrap{overflow-x:auto;border-radius:var(--r-md);border:1px solid var(--line)}
.tk-table{border-collapse:collapse;width:100%;min-width:720px;background:var(--surface);font-size:var(--text-sm)}
.tk-table th,.tk-table td{border-bottom:1px solid var(--line);padding:.7rem .8rem;text-align:left;vertical-align:top}
.tk-table thead th{background:var(--ink);color:#fff;font-weight:600}
.tk-table tbody th{width:18%;font-weight:700}
.tk-table td[contenteditable]{cursor:text}
.tk-table td[contenteditable]:focus{outline:2px solid var(--gold);background:#fffbea}

/* diagnostic card */
.diag-org{max-width:480px;margin-bottom:1.2rem}
.qcard-wrap{max-width:760px}
.qcard{background:var(--surface);border-radius:var(--r-lg);box-shadow:var(--shadow);padding:clamp(1.3rem,4vw,2.4rem);transition:transform .22s,opacity .22s}
.qcard.flip{transform:translateX(-18px);opacity:.2}
.q-top{display:flex;justify-content:space-between;gap:1rem;font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--brand-ink)}
.q-bar{height:8px;background:var(--surface-2);border-radius:99px;margin:.8rem 0 1.4rem;overflow:hidden}
.q-bar span{display:block;height:100%;background:linear-gradient(90deg,var(--brand),var(--gold));border-radius:99px;transition:width .4s}
.q-text{font-family:var(--font-display);font-size:var(--text-xl);line-height:1.2;min-height:3.6em;margin-bottom:1.4rem}
.q-opts{display:grid;grid-template-columns:repeat(4,1fr);gap:.6rem}
.q-opt{font:inherit;font-weight:600;background:var(--bg);border:2px solid var(--line);border-radius:var(--r-md);padding:1rem .6rem;min-height:64px;cursor:pointer;color:var(--ink);transition:all .15s}
.q-opt:hover{transform:translateY(-2px);border-color:var(--brand)}
.q-opt.on{background:var(--brand);color:#fff;border-color:var(--brand)}
.q-nav{display:flex;justify-content:space-between;align-items:center;margin-top:1rem}
@media (max-width:560px){.q-opts{grid-template-columns:1fr 1fr}.q-text{min-height:0}}

/* forms */
.tk-form{display:grid;gap:1.1rem;max-width:920px}
.field .label{font-size:var(--text-sm);font-weight:600}
.field-row.three{grid-template-columns:1fr 1fr 1fr}
@media (max-width:640px){.field-row.three{grid-template-columns:1fr 1fr}}
@media (max-width:480px){.field-row.three{grid-template-columns:1fr}}
.chip-group{border:0;padding:0;margin:.4rem 0 0;display:flex;flex-wrap:wrap;gap:.4rem;align-items:center}
.chip-group legend{font-size:var(--text-xs);font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;padding:0;margin-bottom:.35rem;width:100%}
.chip{position:relative;cursor:pointer}
.chip input{position:absolute;opacity:0;width:1px;height:1px}
.chip span{display:inline-flex;align-items:center;min-height:40px;padding:.4rem .85rem;border-radius:999px;border:1.5px solid var(--line-2);background:var(--surface);font-size:var(--text-sm);font-weight:500;transition:all .15s}
.chip input:checked+span{background:var(--brand);border-color:var(--brand);color:#fff}
.chip input:checked+span::before{content:"\2713\00a0"}
.chip input:focus-visible+span{outline:3px solid var(--gold);outline-offset:2px}
.diag-block{border:0;padding:0;margin:0}
.diag-block legend{font-family:var(--font-display);font-weight:700;font-size:var(--text-lg);margin-bottom:.6rem}
.diag-item{background:var(--surface);border-radius:var(--r-md);padding:.9rem 1rem;margin-bottom:.6rem;border:1px solid var(--line)}
.diag-item p{margin:0 0 .6rem;font-weight:500}
.scale{display:flex;flex-wrap:wrap;gap:.4rem}
.scale label{position:relative;cursor:pointer}
.scale input{position:absolute;opacity:0;width:1px;height:1px}
.scale span{display:inline-flex;align-items:center;min-height:40px;padding:.35rem .85rem;border-radius:999px;border:1.5px solid var(--line-2);font-size:var(--text-sm);font-weight:500;background:var(--bg)}
.scale input:checked+span{background:var(--ink);color:#fff;border-color:var(--ink)}
.scale input:focus-visible+span{outline:3px solid var(--gold);outline-offset:2px}
.obs-note{margin-top:.6rem;width:100%;font:inherit;font-size:16px;border:1.5px solid var(--line);border-radius:var(--r-sm);padding:.55rem .7rem;background:var(--bg);min-height:42px}
.map-row{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);padding:1rem}
.map-row-head{display:flex;gap:.6rem;align-items:center}
.map-topic{flex:1;font:inherit;font-size:16px;font-weight:600;border:1.5px solid var(--line-2);border-radius:var(--r-sm);padding:.6rem .75rem;background:var(--bg);min-height:44px;min-width:0}
.lesson{display:grid;grid-template-columns:90px 1fr;gap:.6rem;align-items:center;margin-bottom:.5rem}
.lesson label{font-size:var(--text-sm);font-weight:600}
.lesson input{font:inherit;font-size:16px;border:1.5px solid var(--line-2);border-radius:var(--r-sm);padding:.6rem .75rem;background:var(--bg);min-height:44px;min-width:0}

/* results */
.tk-result{background:var(--surface);border-radius:var(--r-lg);padding:clamp(1.3rem,3vw,2.2rem);margin-top:2rem;border:1px solid var(--line);box-shadow:var(--shadow);animation:rise .4s ease both}
.tk-result h3{font-family:var(--font-display);font-size:var(--text-xl);margin-bottom:.5rem}
.tk-result h3 em{font-style:normal;color:var(--brand)}
.tk-result h4{font-family:var(--font-display);font-size:var(--text-lg);margin:1.5rem 0 .6rem}
.meta{color:var(--muted);font-size:var(--text-sm)}
.bars{display:grid;gap:.55rem;margin-top:1rem}
.bar{display:grid;grid-template-columns:minmax(150px,240px) 1fr 120px;gap:.8rem;align-items:center;font-size:var(--text-sm)}
.bar-track{height:14px;background:var(--surface-2);border-radius:99px;overflow:hidden}
.bar-fill{display:block;height:100%;border-radius:99px;background:var(--brand);transition:width .5s}
.bar-fill.s1{background:var(--copper)}.bar-fill.s2{background:var(--gold)}.bar-fill.s3{background:var(--brand)}.bar-fill.s4{background:#1f7a4a}
.bar-val{font-weight:600;color:var(--ink-2)}
@media (max-width:640px){.bar{grid-template-columns:1fr auto}.bar-track{grid-column:1/-1;grid-row:2}}
.pri,.rec,.plan{padding-left:1.2rem}
.rec,.plan{list-style:none;padding:0;display:grid;gap:.5rem}
.rec li,.plan li{background:var(--bg);border-radius:var(--r-sm);padding:.8rem 1rem;display:grid;gap:.15rem}
.rec span,.plan span{font-size:var(--text-sm);color:var(--muted)}
.doc dl{display:grid;grid-template-columns:180px 1fr;gap:.5rem 1rem;margin:1rem 0}
.doc dt{font-weight:700}.doc dd{margin:0}
@media (max-width:560px){.doc dl{grid-template-columns:1fr}.doc dd{margin-bottom:.4rem}}
.crit li{margin-bottom:.4rem}
.two{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}
@media (max-width:640px){.two{grid-template-columns:1fr}}
.total{font-size:var(--text-lg);margin-top:1.4rem}

/* courses */
.mastery{list-style:none;padding:0;margin:0 0 2rem;display:grid;grid-template-columns:repeat(5,1fr);gap:.6rem}
.mastery li{background:var(--ink);color:#fff;border-radius:var(--r-md);padding:1rem;display:flex;flex-direction:column;gap:.35rem;position:relative}
.mastery li span{width:30px;height:30px;border-radius:50%;background:var(--gold);color:var(--ink);display:grid;place-items:center;font-weight:700;font-size:.85rem}
.mastery b{font-family:var(--font-display);font-size:var(--text-base)}
.mastery small{color:rgba(255,255,255,.78);font-size:var(--text-xs);line-height:1.45}
@media (max-width:1000px){.mastery{grid-template-columns:1fr 1fr}.mastery li:last-child{grid-column:1/-1}}
.course-list{display:grid;grid-template-columns:repeat(2,1fr);gap:1.1rem}
@media (max-width:860px){.course-list{grid-template-columns:1fr}}
.course{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:clamp(1.3rem,3vw,1.8rem);display:flex;flex-direction:column;gap:.5rem;position:relative}
.course.mine{border:2px solid var(--brand);box-shadow:var(--shadow)}
.badge{align-self:flex-start;background:var(--brand);color:#fff;font-size:var(--text-xs);font-weight:700;padding:.25rem .7rem;border-radius:999px}
.promise{font-family:var(--font-display);font-weight:700;font-size:var(--text-xl);line-height:1.15;margin:0;color:var(--ink)}
.fromto{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;font-size:var(--text-sm);margin:.2rem 0 .4rem}
.fromto span:first-child{color:var(--muted);text-decoration:line-through;text-decoration-color:var(--copper)}
.fromto .arrow{color:var(--gold);font-weight:700}
.fromto b{color:#1f7a4a}
.course h3{font-size:var(--text-base);font-family:var(--font-body);font-weight:700;color:var(--brand-ink)}
.course details{border-top:1px solid var(--line);padding-top:.5rem;margin-top:.3rem}
.course summary{cursor:pointer;font-weight:700;min-height:44px;display:flex;align-items:center}
.course h4{font-family:var(--font-display);margin:1rem 0 .4rem}
.modules{padding-left:1.2rem}
.modules li{margin-bottom:.5rem}
.modules b{display:block}.modules span{font-size:var(--text-sm);color:var(--ink-2)}
.artefact{background:var(--bg);border-radius:var(--r-sm);padding:.7rem .9rem;font-size:var(--text-sm)}
.pick-course{align-self:flex-start;margin-top:auto}

.tk-footer{background:var(--ink);color:rgba(255,255,255,.75);padding:2rem 0;font-size:var(--text-xs)}
.tk-footer a{color:var(--gold)}

@media print{
  .tk-header,.tk-tabs,.journey-bar,.tk-footer,.no-print,.tk-form,.qcard-wrap,.diag-org,.tk-head .tk-intro,.sizzle,.pick,.toast{display:none!important}
  body{background:#fff}
  .tk-result{box-shadow:none;border:0;padding:0;margin:0}
  .tk-table{min-width:0}
  .table-wrap{overflow:visible;border:0}
}

.course summary,.fw-detail summary{list-style:none;justify-content:space-between;gap:1rem}
.course summary::-webkit-details-marker,.fw-detail summary::-webkit-details-marker{display:none}
.course summary::after,.fw-detail summary::after{content:"+";font-size:1.5rem;font-weight:400;color:var(--brand);transition:transform .2s}
.course details[open] summary::after,.fw-detail[open] summary::after{transform:rotate(45deg)}

.toast{border-radius:14px;width:max-content}
@media (max-width:640px){.toast{width:calc(100vw - 32px)}}

/* ---------- online course player ---------- */
.tk-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg,20px);padding:clamp(1.1rem,3vw,1.8rem);box-shadow:0 1px 2px rgba(20,33,61,.04);margin-bottom:1.2rem}
.tk-card label{display:block;font-size:var(--text-sm);font-weight:600;margin:.9rem 0 .35rem}
.tk-card textarea,.tk-card input:not([type=checkbox]){width:100%;font:inherit;padding:.7rem .85rem;border:1.5px solid var(--line-2);border-radius:12px;background:#fff;color:var(--ink)}
.tk-card textarea:focus,.tk-card input:focus{outline:3px solid var(--gold);outline-offset:1px}
.tk-card .btn{margin-top:1rem}
.lp-crumb{display:flex;flex-wrap:wrap;gap:.45rem;font-size:var(--text-xs);color:var(--muted);margin:0 0 1.2rem}
.lp-crumb a{color:var(--brand)}
.lp-hero{background:var(--ink);color:#fff;border-radius:24px;padding:clamp(1.4rem,4vw,2.6rem);display:grid;grid-template-columns:1fr auto;gap:1.5rem;align-items:center;margin-bottom:1.6rem}
.lp-hero h2{font-family:var(--font-display);font-size:var(--text-xl);line-height:1.1;margin:.2rem 0 .7rem;color:#fff}
.lp-hero .eyebrow{color:var(--gold)}
.lp-hero .fromto span{color:rgba(255,255,255,.7)}.lp-hero .fromto b{color:#fff}
.lp-meta{color:rgba(255,255,255,.78);font-size:var(--text-sm);margin:.4rem 0 1.2rem}
.lp-ring{display:grid;justify-items:center;gap:.4rem;color:rgba(255,255,255,.85)}
.ring.big{width:112px;height:112px;background:conic-gradient(var(--gold) calc(var(--p)*1%),rgba(255,255,255,.15) 0)}
.ring.big::before{inset:10px;background:var(--ink)}
.ring.big b{font-size:1.5rem;color:#fff}
.lp-path{list-style:none;margin:0 0 1.5rem;padding:0;display:grid;gap:.6rem}
.lp-path a{display:grid;grid-template-columns:40px 1fr;column-gap:.9rem;align-items:center;background:var(--surface);border:1.5px solid var(--line);border-radius:16px;padding:.85rem 1rem;text-decoration:none;color:var(--ink);transition:border-color .15s,transform .15s}
.lp-path a:hover{border-color:var(--brand);transform:translateY(-1px)}
.lp-path .dot{grid-row:span 2;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:var(--surface-2);font-weight:700}
.lp-path small{color:var(--muted);font-size:var(--text-xs)}
.lp-path li.done .dot{background:#1f7a4a;color:#fff}
.lp-path li.cur a{border-color:var(--gold);box-shadow:0 0 0 3px rgba(233,169,35,.25)}
.lp-path li.cur .dot{background:var(--gold)}
.lp-path li.lock a{opacity:.6}
.lp-about{margin-top:1rem}
.lp-about summary{cursor:pointer;font-weight:600}
.lp-steps{display:flex;gap:.5rem;margin:0 0 1.2rem;flex-wrap:wrap}
.lp-step{font:inherit;font-weight:600;font-size:var(--text-sm);border:1.5px solid var(--line-2);background:var(--surface);color:var(--ink);border-radius:999px;padding:.55rem 1.1rem;cursor:pointer;min-height:44px}
.lp-step.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.lp-step.done:not(.on){border-color:#1f7a4a;color:#1f7a4a}
.idea-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-bottom:1.2rem}
.idea{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:1.2rem}
.idea span{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--gold);font-weight:700;margin-bottom:.6rem}
.idea h3{font-family:var(--font-display);font-size:var(--text-lg);line-height:1.2;margin:0 0 .45rem}
.idea p{color:var(--ink-2);font-size:var(--text-sm);margin:0}
.lp-ex{background:var(--surface-2);border-left:4px solid var(--copper);border-radius:0 16px 16px 0;padding:1rem 1.2rem;margin-bottom:1.2rem}
.lp-ex b{display:block;color:var(--copper);font-size:var(--text-xs);letter-spacing:.12em;text-transform:uppercase;margin-bottom:.35rem}
.lp-ex p{margin:0}
.lp-nav{display:flex;justify-content:space-between;gap:.75rem;flex-wrap:wrap;margin-top:1.5rem}
.qz-top{display:flex;justify-content:space-between;font-size:var(--text-xs);font-weight:600;color:var(--muted);margin-bottom:.5rem}
.streak{color:var(--copper)}
.qz-bar{height:6px;background:var(--surface-2);border-radius:99px;overflow:hidden;margin-bottom:1.1rem}
.qz-bar i{display:block;height:100%;background:var(--brand);transition:width .3s}
.qz-q{font-family:var(--font-display);font-size:var(--text-lg);line-height:1.3;margin:0 0 1rem}
.qz-opts{display:grid;gap:.6rem}
.qz-o{font:inherit;text-align:left;background:#fff;border:1.5px solid var(--line-2);border-radius:14px;padding:.85rem 1rem;cursor:pointer;color:var(--ink);min-height:48px;transition:border-color .15s,background .15s}
.qz-o:hover:not(:disabled){border-color:var(--brand);background:rgba(22,99,176,.05)}
.qz-o:disabled{cursor:default}
.qz-o.ok{border-color:#1f7a4a;background:#e6f4ec}
.qz-o.no{border-color:var(--copper);background:#fbe9e4}
.qz-fb{margin-top:1rem}
.qz-fb p{margin:0 0 .4rem}
.fb-ok b{color:#1f7a4a}.fb-no b{color:var(--copper)}
.lp-result h3{font-family:var(--font-display);font-size:var(--text-xl);line-height:1.15;margin:.2rem 0 .6rem}
.lp-result ul{margin:.5rem 0 1rem}
.art-f{margin-bottom:.6rem}
.af-c.ok{color:#1f7a4a;font-weight:600}
.rub-chk{display:flex!important;gap:.7rem;align-items:flex-start;font-weight:500!important;padding:.55rem 0;border-bottom:1px solid var(--line);cursor:pointer}
.rub-chk input{width:20px;height:20px;margin-top:.15rem;accent-color:#1f7a4a;flex:0 0 auto}
.course-act{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:auto;padding-top:1rem}
.course-act .pick-course{margin-top:0}
.cert{background:#fff;border:10px solid var(--ink);outline:2px solid var(--gold);outline-offset:-18px;border-radius:6px;padding:clamp(1.6rem,5vw,3.5rem);text-align:center;max-width:900px;margin:0 auto 1.5rem}
.cert img{width:min(260px,70%);height:auto;margin:0 auto 1.2rem;display:block}
.cert-k{font-family:var(--font-display);font-size:var(--text-xl);color:var(--ink);margin:0 0 1rem}
.cert-t{color:var(--muted);margin:.3rem 0}
.cert-n{font-family:var(--font-display);font-size:clamp(1.8rem,1.3rem + 2.4vw,3rem);color:var(--brand);margin:.3rem 0;line-height:1.1;overflow-wrap:anywhere}
.cert-o{font-weight:600;margin:0 0 .4rem}
.cert-c{font-family:var(--font-display);font-size:var(--text-lg);font-weight:700;margin:.3rem 0 .6rem}
.cert-d{font-size:var(--text-sm);color:var(--ink-2)}
.cert-f{display:flex;flex-wrap:wrap;justify-content:center;gap:.4rem 1.6rem;margin-top:1.6rem;padding-top:1rem;border-top:1px solid var(--line);font-size:var(--text-xs);font-weight:600}
.cert-s{font-size:var(--text-xs);color:var(--muted);margin-top:.8rem}
@media (max-width:860px){.idea-grid{grid-template-columns:1fr}.lp-hero{grid-template-columns:1fr}.lp-ring{justify-items:start;grid-auto-flow:column;align-items:center;justify-content:start;gap:1rem}.ring.big{width:84px;height:84px}.ring.big b{font-size:1.15rem}}
@media print{
  body.printing-cert .tk-main > *:not(.cert){display:none!important}
  body.printing-cert .cert{border-width:8px;max-width:none;margin:0}
  .lp-crumb,.lp-nav,.lp-steps{display:none!important}
}

/* ---------- accounts, pricing, paywall, verification ---------- */
.tk-head-act{display:flex;align-items:center;gap:1rem}
.tk-price-link{font-weight:600;font-size:var(--text-sm);text-decoration:none;color:var(--ink-2)}
.tk-price-link:hover{color:var(--brand)}
.price-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.1rem;margin:1.4rem 0}
.price-card{position:relative;display:flex;flex-direction:column;gap:.55rem;background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:1.5rem 1.4rem}
.price-card h3{margin:0;font-family:var(--font-display);font-size:1.35rem}
.price-card .eyebrow{margin:0}
.price-card ul{margin:.3rem 0 .6rem;padding-left:1.1rem;flex:1}
.price-card li{margin:.25rem 0;font-size:var(--text-sm)}
.price-card .btn{width:100%}
.price-card.best{border:2px solid var(--gold);box-shadow:0 18px 40px -26px rgba(20,33,61,.45)}
.price-card .badge{position:absolute;top:-.8rem;right:1.2rem;background:var(--gold);color:var(--ink)}
.price-big{font-family:var(--font-display);font-size:2.4rem;font-weight:700;line-height:1;margin:.2rem 0}
.price-big small{font-family:var(--font-body);font-size:var(--text-sm);font-weight:500;color:var(--muted)}
.price-select{width:100%;padding:.65rem .8rem;border:1px solid var(--line-2);border-radius:10px;background:#fff;font:inherit;font-size:var(--text-sm);margin-bottom:.2rem}
.org-band{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;background:var(--ink);color:#fff;border-radius:18px;padding:1.6rem 1.8rem;margin:1.4rem 0}
.org-band h3{margin:.1rem 0 .4rem;font-family:var(--font-display);font-size:1.4rem}
.org-band p{margin:0;color:rgba(255,255,255,.86);max-width:62ch}
.org-band .eyebrow{color:var(--gold)}
.org-band .btn{flex:0 0 auto;background:var(--gold);border-color:var(--gold);color:var(--ink)}
.faq dl{margin:0}.faq dt{font-weight:700;margin-top:.8rem}.faq dd{margin:.2rem 0 0;color:var(--ink-2)}
.paywall{background:var(--surface);border:2px solid var(--gold);border-radius:20px;padding:2rem 1.8rem;margin:1rem 0 2rem;text-align:center}
.paywall h2{font-family:var(--font-display);margin:.2rem 0 .6rem}
.paywall .tk-intro{margin:0 auto 1.2rem;max-width:60ch}
.pw-opts{display:flex;flex-wrap:wrap;justify-content:center;gap:.7rem;margin-bottom:.8rem}
.lp-unlock{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;background:#fff7e2;border:1px solid #f1d38a;border-radius:14px;padding:.9rem 1.1rem;margin:0 0 1.2rem}
.lp-unlock p{margin:0;font-size:var(--text-sm)}
.lp-unlock div{display:flex;gap:.5rem;flex-wrap:wrap}
body.tk-locked #tool .tk-result > :not(.eyebrow):not(h3){filter:blur(5px);user-select:none;pointer-events:none}
body.tk-locked #tool .tk-actions{display:none}
body.tk-locked{padding-bottom:96px}
.lock-bar{position:fixed;left:0;right:0;bottom:0;z-index:40;background:var(--ink);color:#fff;box-shadow:0 -10px 30px -18px rgba(0,0,0,.5)}
.lock-bar .wrap{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-top:.8rem;padding-bottom:.8rem}
.lock-bar p{margin:0;font-size:var(--text-sm)}
.lock-bar div{display:flex;gap:.5rem;flex:0 0 auto}
.lock-bar .btn-ghost{color:#fff;border-color:rgba(255,255,255,.4)}
@media print{body.tk-locked #tool .tk-result{display:none}}
.acct{max-width:520px}
.acct label,.verify label,#rdForm label{display:block;font-weight:600;font-size:var(--text-sm);margin:.8rem 0 .3rem}
.acct input,.verify input,#rdForm input{width:100%;padding:.75rem .9rem;border:1px solid var(--line-2);border-radius:10px;font:inherit;background:#fff}
.acct .btn,#rdForm .btn{margin-top:1rem}
.acct-tabs{display:flex;gap:.3rem;background:var(--surface-2);padding:.3rem;border-radius:999px;margin-bottom:.4rem}
.acct-tabs button{flex:1;border:0;background:transparent;font:inherit;font-weight:600;font-size:var(--text-sm);padding:.6rem;border-radius:999px;cursor:pointer;color:var(--ink-2)}
.acct-tabs button.on{background:#fff;color:var(--ink);box-shadow:0 2px 8px -4px rgba(20,33,61,.4)}
.acct-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem}
.access{list-style:none;margin:0 0 1rem;padding:0}
.access li{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding:.6rem 0;border-bottom:1px solid var(--line);font-size:var(--text-sm)}
.access li span{color:var(--muted)}
.linkbtn{background:none;border:0;padding:0;font:inherit;color:var(--brand-ink);text-decoration:underline;cursor:pointer}
.sync{margin:-.4rem 0 1rem}
.vf-row{display:flex;gap:.6rem}.vf-row .btn{flex:0 0 auto}
.vf-ok,.vf-no{border-radius:16px;padding:1.4rem 1.5rem;margin:1rem 0}
.vf-ok{background:#e6f4ec;border:1.5px solid #8bc9a3}.vf-ok h3{font-family:var(--font-display);font-size:1.6rem;margin:.2rem 0}.vf-ok .eyebrow{color:#13633a}
.vf-no{background:#fdecea;border:1.5px solid #e8a49b}.vf-no h3{margin:0 0 .3rem}
.cert-v{font-size:.78rem;color:var(--muted);margin:.6rem 0 0}
@media (max-width:900px){.price-grid{grid-template-columns:1fr}.org-band{flex-direction:column;align-items:flex-start}.acct-grid{grid-template-columns:1fr}}
@media (max-width:640px){.lock-bar .wrap{flex-direction:column;align-items:stretch}.lock-bar div{justify-content:stretch}.lock-bar .btn{flex:1}body.tk-locked{padding-bottom:150px}.tk-price-link{display:none}.vf-row{flex-direction:column}}
.tk-card > .tk-h3:first-child,.tk-card > h3:first-child{margin-top:0}
.course-price{margin:.2rem 0 .7rem;font-size:var(--text-sm);color:var(--ink-2)}
.course-price b{font-size:1.05rem;color:var(--ink)}
.price-strip{display:flex;align-items:center;justify-content:space-between;gap:1.2rem;background:var(--ink);color:#fff;border-radius:18px;padding:1.4rem 1.6rem;margin:2rem 0 1rem}
.price-strip h3{margin:.1rem 0 .3rem;font-family:var(--font-display);font-size:1.3rem}
.price-strip p{margin:0;color:rgba(255,255,255,.86);font-size:var(--text-sm)}
.price-strip .eyebrow{color:var(--gold)}
.price-strip .btn{flex:0 0 auto}
@media (max-width:640px){.price-strip{flex-direction:column;align-items:flex-start}}
