/* The One Page School – Topic Mastery. Colours can be overridden in Elementor > Site Settings > Custom CSS. */
.tops{--tops-ink:#1d2433;--tops-muted:#5b6475;--tops-line:#e3e7ee;--tops-card:#fff;--tops-accent:#1f5eff;--tops-green:#127a45;--tops-green-bg:#e3f6ec;--tops-red:#b42318;--tops-red-bg:#fde8e7;--tops-amber:#8a5a00;--tops-amber-bg:#fff3d6;--tops-grey:#5b6475;--tops-grey-bg:#eef0f4;color:var(--tops-ink);font-size:15px;line-height:1.5}
.tops *{box-sizing:border-box}
.tops-h{margin:0 0 12px;font-size:1.4em}
.tops-card{background:var(--tops-card);border:1px solid var(--tops-line);border-radius:14px;padding:20px;margin:0 0 18px}
.tops-card h3{margin:0 0 12px;font-size:1.1em}
.tops-empty{text-align:center}
.tops-muted{color:var(--tops-muted);font-size:.93em}
.tops-btn{display:inline-block;padding:9px 16px;border-radius:9px;background:var(--tops-accent);color:#fff!important;font-weight:600;text-decoration:none!important;border:1px solid var(--tops-accent);cursor:pointer;line-height:1.2;font-size:.95em}
.tops-btn:hover{filter:brightness(.92)}
.tops-btn-sm{padding:6px 11px;font-size:.85em}
.tops-btn-ghost{background:transparent;color:var(--tops-accent)!important}
.tops-btn-red{background:var(--tops-red);border-color:var(--tops-red)}
.tops-badge{display:inline-block;padding:3px 10px;border-radius:999px;font-size:.8em;font-weight:700;white-space:nowrap;border:1px solid transparent}
.tops-mastered.tops-badge{background:var(--tops-green-bg);color:var(--tops-green);border-color:#a6dfbf}
.tops-needs_revision.tops-badge{background:var(--tops-red-bg);color:var(--tops-red);border-color:#f5b5b0}
.tops-in_progress.tops-badge{background:var(--tops-amber-bg);color:var(--tops-amber);border-color:#f0cf7d;border-style:dashed}
.tops-not_attempted.tops-badge,.tops-no_test.tops-badge{background:var(--tops-grey-bg);color:var(--tops-grey);border-color:#d5d9e1}
.tops-legend{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 14px}
.tops-bar{height:8px;background:var(--tops-grey-bg);border-radius:99px;overflow:hidden;margin:4px 0 12px}
.tops-bar span{display:block;height:100%;background:var(--tops-green);border-radius:99px}
.tops-chapter{margin:0 0 18px}
.tops-chapter header{display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap}
.tops-chapter h4{margin:0;font-size:1.05em}
.tops-chapter header span{color:var(--tops-muted);font-size:.9em}
.tops-chapter ul{list-style:none;margin:0;padding:0}
.tops-topic{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--tops-line);border-left-width:5px;border-radius:10px;margin:0 0 8px;background:var(--tops-card);flex-wrap:wrap}
.tops-tname{flex:1;min-width:160px;font-weight:600}
.tops-score{font-variant-numeric:tabular-nums;color:var(--tops-muted);font-weight:700}
.tops-row-mastered.tops-topic{border-left-color:var(--tops-green)}
.tops-row-needs_revision.tops-topic{border-left-color:var(--tops-red);background:#fff7f6}
.tops-row-in_progress.tops-topic{border-left-color:#e0a100}
.tops-row-not_attempted.tops-topic,.tops-row-no_test.tops-topic{border-left-color:#b8bfcc}
.tops-row-mindmap.tops-topic{border-left-color:#2147D6;background:#f3f6ff}
.tops-mindmap-badge{background:#e6ecff;color:#1A37A6;border-color:#b9c7f7}
.tops-course-head{display:flex;gap:16px;align-items:flex-start}
.tops-course-head img{width:120px;height:80px;object-fit:cover;border-radius:10px;flex:none}
.tops-course-head>div{flex:1}
.tops-course-head h3{margin:0 0 8px}
.tops-kv{display:flex;justify-content:space-between;gap:10px;font-size:.92em}
.tops-kv span{color:var(--tops-muted)}
.tops-stats{list-style:none;padding:0;margin:12px 0;display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.tops-stats li{background:var(--tops-grey-bg);border-radius:10px;padding:10px;text-align:center;font-size:.85em;color:var(--tops-muted)}
.tops-stats b{display:block;font-size:1.6em;color:var(--tops-ink)}
.tops-stats .tops-mastered{background:var(--tops-green-bg)}.tops-stats .tops-mastered b{color:var(--tops-green)}
.tops-stats .tops-needs_revision{background:var(--tops-red-bg)}.tops-stats .tops-needs_revision b{color:var(--tops-red)}
.tops-stats .tops-in_progress{background:var(--tops-amber-bg)}
.tops-chapters{margin-top:6px}
.tops-actions{margin:10px 0 0;display:flex;gap:8px;flex-wrap:wrap}
.tops-grid2{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.tops-list{margin:0;padding:0;list-style:none}
ol.tops-list{list-style:decimal;padding-left:20px}
.tops-list li{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--tops-line)}
ol.tops-list li{display:list-item}
ol.tops-list li a{float:right}
.tops-list li:last-child{border-bottom:0}
.tops-list small,.tops-table small{display:block;color:var(--tops-muted);font-size:.82em}
.tops-table-wrap{overflow-x:auto}
.tops-table{width:100%;border-collapse:collapse;font-size:.93em}
.tops-table th,.tops-table td{padding:9px 10px;border-bottom:1px solid var(--tops-line);text-align:left;vertical-align:top}
.tops-table th{font-size:.82em;text-transform:uppercase;letter-spacing:.04em;color:var(--tops-muted)}
.tops-table tr.tops-row-needs_revision td{background:#fff7f6}
.tops-report-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:8px}
.tops-report-head h2{margin:0}
.tops-eyebrow{text-transform:uppercase;letter-spacing:.1em;font-size:.78em;font-weight:700;color:var(--tops-accent);margin:0}
.tops-picker{margin:0 0 14px}
.tops-picker select{padding:6px 8px;border-radius:8px;border:1px solid var(--tops-line)}
.tops-cards{display:grid;grid-template-columns:repeat(var(--tops-cols,3),minmax(0,1fr));gap:22px}
.tops-ccard{background:#fff;border:1px solid var(--tops-line);border-radius:14px;overflow:hidden;display:flex;flex-direction:column;transition:box-shadow .15s}
.tops-ccard:hover{box-shadow:0 8px 24px rgba(20,33,61,.08)}
.tops-ccard-img{display:block;aspect-ratio:16/9;background:#14213D;overflow:hidden}
.tops-ccard-img img{width:100%;height:100%;object-fit:cover;display:block}
.tops-ccard-img span{display:flex;align-items:center;justify-content:center;height:100%;font:800 64px 'Plus Jakarta Sans',sans-serif;color:#FFD84D}
.tops-ccard-body{padding:18px 20px 20px;display:flex;flex-direction:column;flex:1}
.tops-ccard-body h3{margin:0 0 8px;font-size:1.2em;line-height:1.2}
.tops-ccard-body h3 a{color:var(--tops-ink);text-decoration:none}
.tops-ccard-meta{font-size:.85em;color:var(--tops-muted);margin:0 0 14px}
.tops-ccard-foot{margin-top:auto;display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.tops-ccard-price{font:700 1.25em 'Plus Jakarta Sans',sans-serif;color:var(--tops-ink)}
.tops-ccard-btns{display:flex;gap:8px}
@media (max-width:1000px){.tops-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:760px){.tops-cards{grid-template-columns:1fr}.tops-grid2{grid-template-columns:1fr}.tops-stats{grid-template-columns:repeat(2,1fr)}.tops-course-head img{width:80px;height:56px}}
@media print{.tops-noprint,header.site-header,footer,.vibebp_myprofile,#headertop,#header,#footer,#footerbottom{display:none!important}.tops-card{break-inside:avoid;border-color:#bbb}.tops-btn{display:none!important}}
.tops-dash-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.tops-allc{margin:0 0 18px}
.tops-allc>summary{list-style:none;display:inline-block;margin:0 0 12px}
.tops-allc>summary::-webkit-details-marker{display:none}
.tops-allc[open]>summary{filter:brightness(.9)}
.tops-allc-body{background:#fff;border:1px solid var(--tops-line);border-radius:14px;padding:16px;margin:0 0 6px}
.tops-course.tops-course-weak{background:#FFF1F0;border-color:#F5B5B0}
.tops-weak-note{margin:0 0 10px;color:var(--tops-red);font-weight:700;font-size:.9em}
.tops-enrolled-tag{align-self:flex-start;margin:0 0 8px}
.tops-account{max-width:640px}
.tops-acct-form label{display:block;margin:0 0 14px;font-weight:600;font-size:.95em}
.tops-acct-form input,.tops-acct-form select{display:block;width:100%;margin-top:6px;padding:10px 12px;border:1px solid var(--tops-line);border-radius:9px;font:inherit;font-weight:400;background:#fff}
.tops-acct-form input:disabled{background:var(--tops-grey-bg);color:var(--tops-muted)}
.tops-acct-form small{display:block;font-weight:400;color:var(--tops-muted);margin-top:4px}
.tops-acct-form h3{margin:18px 0 12px}
.tops-acct-msg.tops-acct-ok{background:var(--tops-green-bg);border-color:#a6dfbf;color:var(--tops-green)}
.tops-acct-msg.tops-acct-error{background:var(--tops-red-bg);border-color:#f5b5b0;color:var(--tops-red)}
.tops-cat-bar{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:14px;background:#fff;border:1px solid var(--tops-line);border-radius:16px;padding:16px;margin:0 0 10px;box-shadow:0 4px 18px rgba(20,33,61,.05)}
.tops-cat-bar label{display:flex;flex-direction:column;gap:6px;margin:0;font-size:.78em;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--tops-muted)}
.tops-cat-bar input,.tops-cat-bar select{font:inherit;font-size:15px;letter-spacing:0;text-transform:none;font-weight:500;color:var(--tops-ink);padding:11px 12px;border:1px solid var(--tops-line);border-radius:10px;background:#F5F7FB;width:100%;height:46px}
.tops-cat-bar input:focus,.tops-cat-bar select:focus{outline:2px solid #2147D6;outline-offset:1px;background:#fff}
.tops-cat-count{margin:4px 2px 16px;color:var(--tops-muted);font-weight:600;font-size:.92em}
.tops-cat-grid{gap:26px}
.tops-cat-card{transition:transform .15s,box-shadow .15s}
.tops-cat-card:hover{transform:translateY(-3px);box-shadow:0 14px 30px rgba(20,33,61,.12)}
.tops-cat-card .tops-ccard-img{position:relative}
.tops-cat-price-tag{position:absolute;right:12px;top:12px;background:#fff;color:var(--tops-ink);font-style:normal;font-weight:800;font-size:.9em;padding:5px 11px;border-radius:999px;box-shadow:0 2px 8px rgba(0,0,0,.15)}
.tops-cat-price-tag.is-free{background:#FFD84D}
.tops-cat-chips{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 10px}
.tops-cat-chip{background:#E6ECFF;color:#1A37A6;border-radius:999px;padding:3px 10px;font-size:.78em;font-weight:700}
.tops-cat-card .tops-ccard-foot{justify-content:flex-end;gap:8px}
.tops-cat-card [hidden],.tops-cat-card[hidden]{display:none!important}
@media (max-width:900px){.tops-cat-bar{grid-template-columns:1fr 1fr}.tops-cat-search{grid-column:1/-1}}
@media (max-width:520px){.tops-cat-bar{grid-template-columns:1fr}}
.tops-rc-student{display:flex;flex-direction:column;gap:2px;margin:0 0 14px;padding:14px 18px;border-radius:14px;background:#14213D;color:#fff}
.tops-rc-student span{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:#FFD84D;font-weight:700}
.tops-rc-student strong{font-size:26px;line-height:1.2;color:#fff}
.tops-example-banner{display:flex;gap:12px;align-items:flex-start;margin:18px 0 12px;padding:12px 16px;border:1px dashed #E0A100;border-radius:12px;background:#FFF8DB;color:#5a4500}
.tops-example-banner b{background:#FFD84D;color:#14213D;border-radius:999px;padding:2px 10px;font-size:12px;text-transform:uppercase;letter-spacing:.06em;white-space:nowrap}
.tops-example{position:relative;opacity:.96}
.tops-fake{pointer-events:none;cursor:default}
.tops-guest-cta{display:flex;gap:18px;align-items:center;justify-content:space-between;flex-wrap:wrap;border:1px solid #c9d5ff;background:#EEF2FF}
.tops-guest-cta h3{margin:0 0 4px}.tops-guest-cta p{margin:0}
.tops-steps-mini{margin:0;padding-left:20px}.tops-steps-mini li{margin:6px 0}
.tops-how-hero{max-width:760px;margin:6px 0 22px}
.tops-how-hero h2{font-size:clamp(26px,4vw,38px);line-height:1.15;margin:4px 0 10px;color:#14213D}
.tops-how-hero p{font-size:17px;color:#3b4660}
.tops-how-steps{list-style:none;margin:0 0 18px;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}
.tops-how-steps li{margin:0;position:relative;padding-top:20px}
.tops-how-steps h3{margin:10px 0 6px;font-size:18px}.tops-how-steps p{margin:0;color:#3b4660}
.tops-how-num{display:inline-flex;width:34px;height:34px;border-radius:50%;align-items:center;justify-content:center;background:#2147D6;color:#fff;font-weight:800}
.tops-flow{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.tops-flow i{font-style:normal;color:#6b7280;font-weight:700}
.tops-flow-step{padding:6px 12px;border-radius:999px;background:#EEF2FF;color:#14213D;font-weight:600}
.tops-how-sub{margin:26px 0 12px}
.tops-how-benefits{list-style:none;margin:0 0 18px;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}
.tops-how-benefits li{display:flex;gap:12px;margin:0}
.tops-how-benefits h3{margin:0 0 4px;font-size:17px}.tops-how-benefits p{margin:0;color:#3b4660}
.tops-how-ico{font-size:26px;line-height:1}
@media (max-width:600px){.tops-rc-student strong{font-size:22px}.tops-guest-cta{flex-direction:column;align-items:flex-start}}
@media print{.tops-rc-student{background:none;color:#000;padding:0}.tops-rc-student span,.tops-rc-student strong{color:#000}}
.tops-how{max-width:1180px;margin:28px auto 48px;padding:0 16px;box-sizing:border-box}
.tops-steps-mini,.tops-steps-mini li{list-style:decimal!important}.tops-steps-mini{padding-left:22px!important}
/* Report card v2 */
.tops-report .tops-card{margin:0 0 16px}
.tops-report .tops-card>h3{margin:0 0 12px;font-size:1.15em}
.tops-rc-tiles{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(6,1fr);gap:10px}
.tops-rc-tiles li{margin:0;background:var(--tops-grey-bg);border-radius:12px;padding:12px 8px;text-align:center;display:flex;flex-direction:column;gap:2px}
.tops-rc-tiles b{font-size:1.45em;color:var(--tops-ink);line-height:1.2}
.tops-rc-tiles span{font-size:.8em;color:var(--tops-muted)}
.tops-rc-tiles .tops-mastered{background:var(--tops-green-bg)}.tops-rc-tiles .tops-mastered b{color:var(--tops-green)}
.tops-rc-tiles .tops-needs_revision{background:var(--tops-red-bg)}.tops-rc-tiles .tops-needs_revision b{color:var(--tops-red)}
.tops-rc-split{display:flex;height:12px;border-radius:999px;overflow:hidden;background:var(--tops-grey-bg);margin:16px 0 8px}
.tops-rc-split span{display:block;height:100%}
.tops-rc-split .is-m,.tops-rc-legend .is-m:before{background:#127A45}
.tops-rc-split .is-w,.tops-rc-legend .is-w:before{background:#D92D20}
.tops-rc-split .is-a,.tops-rc-legend .is-a:before{background:#E0A100}
.tops-rc-split .is-n,.tops-rc-legend .is-n:before{background:#C3CAD7}
.tops-rc-legend{display:flex;flex-wrap:wrap;gap:6px 16px;margin:0 0 6px;font-size:.85em;color:var(--tops-muted)}
.tops-rc-legend span:before{content:"";display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:middle}
.tops-rc-note{font-size:.82em;margin:6px 0 0}
.tops-rc-sub{margin:14px 0 8px;font-size:1em;color:var(--tops-ink)}
.tops-rc-sub small{font-weight:400;color:var(--tops-muted)}
.tops-rc-rows{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.tops-rc-rows li{margin:0;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid var(--tops-line);border-radius:12px;background:#fff}
.tops-rc-rows li>div{flex:1;min-width:0}
.tops-rc-rows li strong{display:block;color:var(--tops-ink)}
.tops-rc-rows li small{display:block;color:var(--tops-muted);font-size:.82em;margin-top:2px}
.tops-rc-rows li .tops-bar{margin-top:6px}
.tops-rc-rows li.is-weak{background:#FFF5F4;border-color:#F5C2BD;box-shadow:inset 4px 0 0 #D92D20}
.tops-rc-rows li.is-strong{box-shadow:inset 4px 0 0 #127A45}
.tops-rc-rows .tops-btn{flex:0 0 auto}
.tops-rc-good{margin:0;padding:12px;border-radius:12px;background:var(--tops-green-bg);color:var(--tops-green);font-weight:600}
.tops-rc-chgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}
.tops-rc-ch{border:1px solid var(--tops-line);border-radius:14px;padding:14px;display:flex;flex-direction:column;gap:8px;background:#fff}
.tops-rc-ch header{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}
.tops-rc-ch header strong{color:var(--tops-ink);line-height:1.3}
.tops-rc-state{flex:0 0 auto;font-size:.75em;font-weight:700;padding:3px 9px;border-radius:999px;background:var(--tops-grey-bg);color:var(--tops-muted)}
.tops-rc-ch.is-weak{border-color:#F5C2BD;background:#FFF8F7}.tops-rc-ch.is-weak .tops-rc-state{background:#FDE3E1;color:#B42318}
.tops-rc-ch.is-strong .tops-rc-state{background:var(--tops-green-bg);color:var(--tops-green)}
.tops-rc-ch.is-going .tops-rc-state{background:var(--tops-amber-bg);color:#8a5a00}
.tops-rc-ch dl{display:grid;grid-template-columns:repeat(5,1fr);gap:4px;margin:4px 0 2px}
.tops-rc-ch dl div{text-align:center;background:var(--tops-grey-bg);border-radius:8px;padding:6px 2px}
.tops-rc-ch dt{font-size:.68em;color:var(--tops-muted);font-weight:600}
.tops-rc-ch dd{margin:0;font-weight:700;color:var(--tops-ink)}
.tops-rc-ch dd.is-m{color:var(--tops-green)}.tops-rc-ch dd.is-w{color:var(--tops-red)}
.tops-rc-ch .tops-btn{align-self:flex-start;margin-top:auto}
.tops-rc-topics .tops-badge{margin-right:4px}
@media (max-width:900px){.tops-rc-tiles{grid-template-columns:repeat(3,1fr)}}
@media (max-width:600px){
.tops-report-head{flex-wrap:wrap}
.tops-report-head h2{font-size:1.5em;line-height:1.2}
.tops-rc-tiles{grid-template-columns:repeat(2,1fr)}
.tops-rc-rows li{flex-wrap:wrap}
.tops-rc-rows li .tops-btn{width:100%;text-align:center}
.tops-rc-ch dl{grid-template-columns:repeat(3,1fr)}
.tops-picker select{max-width:100%}
.tops .tops-card{padding:14px}
.pusher>header nav ul.menu{gap:14px!important}
.pusher>header nav ul.menu>li>a{font-size:14px!important}
}
/* Report card: phone layout */
@media (max-width:600px){
.tops-report{font-size:15px}
.tops-report .tops-rc-student{margin:0 0 10px;padding:12px 14px;border-radius:14px;background:linear-gradient(135deg,#14213D,#2147D6)}
.tops-report .tops-rc-student span{font-size:11px}
.tops-report .tops-rc-student strong{font-size:20px}
.tops-report .tops-picker{margin:0 0 12px}
.tops-report .tops-picker label{display:block;font-size:12px;font-weight:700;color:var(--tops-muted);text-transform:uppercase;letter-spacing:.06em}
.tops-report .tops-picker select{display:block;width:100%!important;max-width:100%!important;min-width:0!important;box-sizing:border-box;margin-top:4px;height:44px;padding:0 36px 0 12px;font-size:15px;border-radius:12px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}
.tops-report .tops-report-head{flex-wrap:nowrap;align-items:center;gap:10px;margin:0 0 12px;padding:0 2px}
.tops-report .tops-report-head>div{min-width:0}
.tops-report .tops-report-head .tops-eyebrow{display:none}
.tops-report .tops-report-head h2{font-size:19px;line-height:1.25;margin:0}
.tops-report .tops-report-head p{font-size:12px;margin:2px 0 0;color:var(--tops-muted)}
.tops-report .tops-report-head .tops-btn,.tops-report .tops-report-head button{flex:0 0 auto;padding:7px 12px!important;font-size:13px!important;border-radius:999px!important;min-height:0}
.tops-report .tops-card{padding:14px 12px!important;border-radius:14px;margin:0 0 12px}
.tops-report .tops-card>h3{font-size:16px;margin:0 0 10px;text-transform:uppercase;letter-spacing:.05em;color:var(--tops-ink)}
.tops-report .tops-rc-tiles{grid-template-columns:repeat(3,1fr);gap:6px}
.tops-report .tops-rc-tiles li{padding:9px 4px;border-radius:10px}
.tops-report .tops-rc-tiles b{font-size:18px}
.tops-report .tops-rc-tiles span{font-size:11px;line-height:1.25}
.tops-report .tops-rc-split{height:10px;margin:12px 0 6px}
.tops-report .tops-rc-legend{font-size:12px;gap:4px 12px}
.tops-report .tops-rc-note{font-size:12px}
.tops-report .tops-rc-sub{font-size:14px;margin:12px 0 6px}
.tops-report .tops-rc-rows{gap:6px}
.tops-report .tops-rc-rows li{flex-wrap:nowrap;align-items:center;gap:8px;padding:9px 10px;border-radius:10px}
.tops-report .tops-rc-rows li strong{font-size:14px;line-height:1.3}
.tops-report .tops-rc-rows li small{font-size:12px;line-height:1.35}
.tops-report .tops-rc-rows li .tops-btn{width:auto!important;flex:0 0 auto;padding:6px 14px!important;font-size:13px!important;border-radius:999px!important;min-height:0;line-height:1.2}
.tops-report .tops-rc-chgrid{grid-template-columns:1fr;gap:8px}
.tops-report .tops-rc-ch{padding:10px 12px;gap:6px;border-radius:12px}
.tops-report .tops-rc-ch header strong{font-size:14px}
.tops-report .tops-rc-state{font-size:11px;padding:2px 8px}
.tops-report .tops-rc-ch dl{grid-template-columns:repeat(5,1fr);gap:4px;margin:2px 0}
.tops-report .tops-rc-ch dl div{padding:5px 1px;border-radius:7px}
.tops-report .tops-rc-ch dt{font-size:9.5px;line-height:1.2}
.tops-report .tops-rc-ch dd{font-size:14px}
.tops-report .tops-rc-ch .tops-btn{padding:6px 14px!important;font-size:13px!important;border-radius:999px!important;min-height:0}
.tops-report .tops-badge{font-size:11px;padding:2px 8px}
.tops-report p,.tops-report li{font-size:14px}
}
@media print{.tops-rc-rows li{break-inside:avoid}.tops-rc-ch{break-inside:avoid}}
/* Report card v3: chapter by chapter, phone first */
.tops-rc3{max-width:760px;margin:0 auto;color:#3A4560}
.tops-rc3-top{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 14px;border-radius:12px;background:#14213D;color:#fff;margin:0 0 10px}
.tops-rc3-top>div{min-width:0;display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.tops-rc3-top span{font:700 11px/1.2 Inter,system-ui,sans-serif;letter-spacing:.08em;text-transform:uppercase;color:#FFD84D}
.tops-rc3-top strong{font:700 19px/1.2 'Plus Jakarta Sans',Inter,system-ui,sans-serif;color:#fff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
.tops .tops-rc3-print{flex:0 0 auto;border:1px solid rgba(255,255,255,.35)!important;background:transparent!important;color:#fff!important;border-radius:999px!important;padding:5px 12px!important;font:600 12px/1.2 Inter,system-ui,sans-serif!important;cursor:pointer;min-height:0;box-shadow:none!important}
.tops-rc3-courses{display:flex;gap:6px;overflow-x:auto;margin:0 0 10px;padding:2px 0;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.tops-rc3-courses::-webkit-scrollbar{display:none}
.tops-rc3-courses a{flex:0 0 auto;max-width:78vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:7px 14px;border-radius:999px;border:1px solid #DDE3EE;background:#fff;color:#14213D!important;font:600 13px/1.2 Inter,system-ui,sans-serif;text-decoration:none!important}
.tops-rc3-courses a.is-on{background:#2147D6;border-color:#2147D6;color:#fff!important}
.tops-rc3-card{background:#fff;border:1px solid #DDE3EE;border-radius:14px;padding:14px;margin:0 0 10px}
.tops-rc3-hero{display:flex;align-items:center;gap:14px}
.tops-rc3-ring{--p:0;flex:0 0 84px;width:84px;height:84px;border-radius:50%;background:conic-gradient(#127A45 calc(var(--p)*1%),#E7EBF3 0);display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative}
.tops-rc3-ring:before{content:"";position:absolute;inset:9px;border-radius:50%;background:#fff}
.tops-rc3-ring b,.tops-rc3-ring small{position:relative}
.tops-rc3-ring b{font:800 20px/1 Inter,system-ui,sans-serif;color:#14213D}
.tops-rc3-ring small{font-size:10px;color:#556079;margin-top:2px}
.tops-rc3-course{min-width:0}
.tops-rc3-course small{display:block;font:700 11px/1.2 Inter,system-ui,sans-serif;letter-spacing:.06em;text-transform:uppercase;color:#2147D6}
.tops .tops-rc3-course h2{margin:3px 0 2px;font-size:18px;line-height:1.25}
.tops-rc3-course p{margin:0;font-size:13px;color:#556079}
.tops-rc3-stats{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:12px 0 0;padding:0}
.tops-rc3-stats li{margin:0;background:#F3F5FA;border-radius:10px;padding:8px 4px;text-align:center;display:flex;flex-direction:column;gap:1px}
.tops-rc3-stats b{font:800 17px/1.2 Inter,system-ui,sans-serif;color:#14213D}
.tops-rc3-stats span{font-size:11px;color:#556079}
.tops-rc3-split{display:flex;height:8px;border-radius:999px;overflow:hidden;background:#E7EBF3;margin:12px 0 6px}
.tops-rc3-split span{display:block;height:100%}
.tops-rc3-split .is-m,.tops-rc3-legend .is-m:before{background:#127A45}
.tops-rc3-split .is-w,.tops-rc3-legend .is-w:before{background:#D92D20}
.tops-rc3-split .is-a,.tops-rc3-legend .is-a:before{background:#E0A100}
.tops-rc3-split .is-n,.tops-rc3-legend .is-n:before{background:#C3CAD7}
.tops-rc3-legend{display:flex;flex-wrap:wrap;gap:3px 12px;margin:0;font-size:12px;color:#556079}
.tops-rc3-legend span:before{content:"";display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:5px;vertical-align:middle}
.tops .tops-rc3-card h3,.tops .tops-rc3-h{margin:0 0 8px;font:700 13px/1.2 Inter,system-ui,sans-serif;letter-spacing:.06em;text-transform:uppercase;color:#14213D}
.tops .tops-rc3-h{margin:16px 2px 8px}
.tops-rc3-focus{border-color:#F5C2BD;background:#FFF8F7}
.tops-rc3-good{margin:0 0 10px;padding:10px 12px;border-radius:12px;background:#E3F6EC;color:#127A45;font-weight:600;font-size:14px}
.tops-rc3-ch>header{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}
.tops-rc3-ch>header>div{min-width:0}
.tops-rc3-ch>header strong{display:block;font:700 15px/1.3 Inter,system-ui,sans-serif;color:#14213D}
.tops-rc3-ch>header small{display:block;font-size:12px;color:#556079;margin-top:2px}
.tops-rc3-pill{flex:0 0 auto;font:700 11px/1.2 Inter,system-ui,sans-serif;padding:3px 9px;border-radius:999px;background:#F3F5FA;color:#556079;white-space:nowrap}
.tops-rc3-ch.is-weak{border-color:#F5C2BD}
.tops-rc3-ch.is-weak .tops-rc3-pill{background:#FDE3E1;color:#B42318}
.tops-rc3-ch.is-strong .tops-rc3-pill{background:#E3F6EC;color:#127A45}
.tops-rc3-ch.is-going .tops-rc3-pill{background:#FFF4D6;color:#8a5a00}
.tops-rc3-bar{height:6px;border-radius:999px;background:#E7EBF3;overflow:hidden;margin:8px 0 4px}
.tops-rc3-bar span{display:block;height:100%;background:#127A45;border-radius:999px}
.tops-rc3-ch.is-weak .tops-rc3-bar span{background:#D92D20}
.tops-rc3-topics{list-style:none;margin:0;padding:0}
.tops-rc3-topics li{margin:0;display:flex;align-items:center;gap:10px;padding:9px 0;border-top:1px solid #EEF1F6}
.tops-rc3-focus .tops-rc3-topics li:first-child,.tops-rc3-ch .tops-rc3-topics li:first-child{border-top:0}
.tops-rc3-topics i{flex:0 0 10px;width:10px;height:10px;border-radius:50%;background:#C3CAD7}
.tops-rc3-topics li.is-mastered i{background:#127A45}
.tops-rc3-topics li.is-needs_revision i{background:#D92D20}
.tops-rc3-topics li.is-in_progress i{background:#E0A100}
.tops-rc3-topics li>div{flex:1;min-width:0}
.tops-rc3-topics b{display:block;font:600 14px/1.3 Inter,system-ui,sans-serif;color:#14213D}
.tops-rc3-topics small{display:block;font-size:12px;line-height:1.3;color:#556079;margin-top:1px}
.tops-rc3-topics li.is-needs_revision small{color:#B42318}
.tops-rc3-btn{flex:0 0 auto;display:inline-block;padding:6px 14px;border-radius:999px;background:#2147D6;color:#fff!important;font:700 13px/1.2 Inter,system-ui,sans-serif;text-decoration:none!important;white-space:nowrap}
.tops-rc3-btn.is-red{background:#B42318}
.tops-rc3-btn.is-ghost{background:#fff;color:#2147D6!important;border:1px solid #C9D2E3;padding:5px 13px}
.tops-rc3-note{font-size:12px;color:#556079;margin:6px 2px 0}
@media print{.tops-rc3-top{background:none;color:#000;padding:0}.tops-rc3-top span,.tops-rc3-top strong{color:#000}.tops-rc3-card{break-inside:avoid}}
/* Subjects and filter dropdown */
.tops-filter{margin:0 0 12px}
.tops-filter>summary{list-style:none}
.tops-filter>summary::-webkit-details-marker{display:none}
.tops-filter-btn{display:inline-flex;align-items:center;gap:8px;max-width:100%;box-sizing:border-box;padding:8px 14px;border:1px solid #C9D2E3;border-radius:999px;background:#fff;color:#14213D;font:700 14px/1.2 Inter,system-ui,sans-serif;cursor:pointer;user-select:none}
.tops-filter-btn svg{color:#2147D6;flex:0 0 auto}
.tops-filter-btn em{font-style:normal;font-weight:600;color:#2147D6;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.tops-filter-btn:after{content:"";width:7px;height:7px;border-right:2px solid #556079;border-bottom:2px solid #556079;transform:rotate(45deg);margin:-3px 0 0 2px;flex:0 0 auto;transition:transform .15s}
.tops-filter[open]>.tops-filter-btn{background:#EEF2FF;border-color:#2147D6}
.tops-filter[open]>.tops-filter-btn:after{transform:rotate(-135deg);margin-top:3px}
.tops-filter-body{margin-top:8px;padding:12px;border:1px solid #DDE3EE;border-radius:14px;background:#fff;box-shadow:0 10px 24px rgba(20,33,61,.08)}
.tops-filter-label{margin:0 0 6px;font:700 11px/1.2 Inter,system-ui,sans-serif;letter-spacing:.06em;text-transform:uppercase;color:#556079}
.tops-subj-chips{display:flex;flex-wrap:wrap;gap:6px;margin:0}
.tops .tops-subj-chips button{border:1px solid #C9D2E3!important;background:#fff!important;color:#14213D!important;border-radius:999px!important;padding:7px 14px!important;font:600 14px/1.2 Inter,system-ui,sans-serif!important;cursor:pointer;min-height:0;box-shadow:none!important}
.tops .tops-subj-chips button small{font-weight:700;color:#556079;margin-left:2px}
.tops .tops-subj-chips button.is-on{background:#2147D6!important;border-color:#2147D6!important;color:#fff!important}
.tops .tops-subj-chips button.is-on small{color:#C9D5FF}
.tops-filter-body .tops-cat-bar{border:0;box-shadow:none;padding:0;margin:12px 0 0;background:none}
.tops-filter-body:has(.tops-cat-chips-row) .tops-cat-bar label:has(select[data-f=subject]){display:none}
.tops-subj-tag{display:inline-block;margin:0 0 6px;padding:2px 10px;border-radius:999px;background:#EEF2FF;color:#2147D6;font:700 11px/1.5 Inter,system-ui,sans-serif;letter-spacing:.04em;text-transform:uppercase}
.tops-course-weak .tops-subj-tag{background:#fff}
[data-subject][hidden]{display:none!important}
/* Report card v3: slimmer top strip, subject tabs */
.tops-rc3-top{display:flex;align-items:center;gap:8px;padding:7px 8px 7px 12px;border-radius:10px;margin:0 0 8px}
.tops-rc3-top span{flex:0 0 auto;font-size:10px}
.tops-rc3-top strong{flex:1;min-width:0;font-size:15px}
.tops .tops-rc3-print{width:30px;height:30px;padding:0!important;display:inline-flex;align-items:center;justify-content:center;border-radius:50%!important}
.tops-rc3-subjects{display:flex;gap:4px;margin:0 0 8px;padding:4px;border-radius:12px;background:#EEF1F7}
.tops-rc3-subjects a{flex:1;text-align:center;padding:8px 6px;border-radius:9px;color:#556079!important;font:700 14px/1.2 Inter,system-ui,sans-serif;text-decoration:none!important}
.tops-rc3-subjects a.is-on{background:#fff;color:#14213D!important;box-shadow:0 2px 6px rgba(20,33,61,.12)}
.tops-rc3-ring{flex:0 0 68px;width:68px;height:68px}
.tops-rc3-ring:before{inset:8px}
.tops-rc3-ring b{font-size:17px}
.tops-rc3-ring small{font-size:9px}
.tops .tops-rc3-course h2{font-size:17px}
.tops-rc3-stats li.is-bad{background:#FDECEC}.tops-rc3-stats li.is-bad b{color:#B42318}
.tops .tops-rc3-subh{margin:14px 0 4px;font:700 12px/1.2 Inter,system-ui,sans-serif;letter-spacing:.06em;text-transform:uppercase;color:#B42318}
.tops-rc3-subject .tops-rc3-good{margin:12px 0 0}
@media (max-width:600px){
.tops-filter-body .tops-cat-bar{grid-template-columns:1fr 1fr!important;gap:8px}
.tops-filter-body .tops-cat-bar .tops-cat-search{grid-column:1/-1}
.tops-filter-body .tops-cat-bar input,.tops-filter-body .tops-cat-bar select{height:40px;padding:8px 10px;font-size:14px}
}
/* My Learning course card: image, title, progress, four stats in one row */
.tops-ml2{padding:12px!important}
.tops-ml2-img{position:relative;display:block;aspect-ratio:16/7;border-radius:12px;overflow:hidden;background:#14213D;margin:0 0 10px;text-decoration:none!important}
.tops-ml2-img img{width:100%;height:100%;object-fit:cover;display:block}
.tops-ml2-img>span{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font:800 64px/1 'Plus Jakarta Sans',Inter,system-ui,sans-serif;color:#FFD84D}
.tops-ml2-img em{position:absolute;top:8px;font-style:normal;font:700 11px/1.4 Inter,system-ui,sans-serif;letter-spacing:.04em;text-transform:uppercase;padding:3px 10px;border-radius:999px}
.tops-ml2-subj{left:8px;background:#fff;color:#2147D6}
.tops-ml2-weak{right:8px;background:#B42318;color:#fff}
.tops .tops-ml2-title{margin:0 0 8px;font-size:18px;line-height:1.25}
.tops-ml2 .tops-subj-tag,.tops-ml2 .tops-weak-note{display:none}
.tops .tops-stats.tops-ml2-stats{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:6px;margin:10px 0}
.tops-ml2-stats li{padding:8px 2px!important;font-size:11px!important;line-height:1.25;border-radius:10px}
.tops-ml2-stats b{font-size:18px!important;line-height:1.2}
/* My Learning: compact top, no chapter bars, no All courses button */
.tops-ml2 .tops-chapters{display:none!important}
.tops-dash:has(.tops-course) .tops-allc{display:none!important}
.tops .tops-dash-head{margin:0 0 8px!important}
.tops .tops-dash-head h2{font-size:20px!important;line-height:1.2!important;margin:0!important}
.tops-install-strip.is-ml{padding:0 0 8px!important}
.tops-install-strip.is-ml .tops-install-btn{padding:6px 12px!important;font-size:13px!important;gap:6px!important;box-shadow:0 3px 10px rgba(33,71,214,.22)!important}
.tops-install-strip.is-ml .tops-install-btn svg{width:15px!important;height:15px!important}
.tops-ml2-weak{top:auto!important;bottom:8px;right:8px}
/* My Learning top row: greeting + install icon on the left, filter on the right */
.tops.tops-dash{display:flex;flex-wrap:wrap;align-items:center;column-gap:8px}
.tops.tops-dash>*{flex:0 0 100%;min-width:0;box-sizing:border-box}
.tops.tops-dash>.tops-dash-head{flex:1 1 0!important;display:flex!important;flex-wrap:nowrap!important;justify-content:flex-start!important;align-items:center;gap:8px;margin:0 0 10px!important;min-width:0}
.tops.tops-dash>.tops-dash-head h2{flex:0 1 auto;font-size:18px!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.tops.tops-dash>.tops-filter{flex:0 0 auto!important;margin:0 0 10px!important;position:relative}
.tops.tops-dash>.tops-filter .tops-filter-btn{padding:6px 10px;font-size:13px;gap:6px}
.tops.tops-dash>.tops-filter .tops-filter-btn>span{display:none}
.tops.tops-dash>.tops-filter .tops-filter-btn em{max-width:110px}
.tops.tops-dash>.tops-filter .tops-filter-body{position:absolute;right:0;top:100%;z-index:60;width:max-content;max-width:min(320px,86vw)}
.tops-dash-head .tops-install-btn.is-icon{flex:0 0 auto;width:32px;height:32px;padding:0!important;justify-content:center;border-radius:50%!important;box-shadow:0 3px 10px rgba(33,71,214,.25)!important}
.tops-dash-head .tops-install-btn.is-icon span{display:none}
.tops-dash-head .tops-install-btn.is-icon svg{width:16px!important;height:16px!important}
.tops.tops-dash>.tops-dash-head .tops-btn{flex:0 0 auto}
/* My Learning: course cards in a grid on bigger screens */
@media (min-width:768px){
.tops.tops-dash{column-gap:16px}
.tops.tops-dash>.tops-dash-head{flex:1 1 calc(100% - 240px)!important}
.tops.tops-dash>.tops-filter{max-width:200px}
.tops.tops-dash>.tops-ml2{flex:0 0 calc((100% - 16px)/2)!important;max-width:calc((100% - 16px)/2);margin:0 0 16px!important;display:flex;flex-direction:column}
.tops.tops-dash>.tops-ml2 .tops-actions{margin-top:auto}
}
@media (min-width:1024px){
.tops.tops-dash>.tops-ml2{flex:0 0 calc((100% - 32px)/3)!important;max-width:calc((100% - 32px)/3)}
}
/* ================= Mind-map / flowchart building block ================= */
.tops-map{--tm-line:#B9C4D9;overflow-x:auto;padding:6px 2px 14px;-webkit-overflow-scrolling:touch}
.tops-map .tm-tree,.tops-map .tm-tree ul,.tops-map .tm-leaves{list-style:none;margin:0;padding:0}
.tops-map .tm-tree li{margin:0}
.tops-map .tm-cell{display:flex;flex-direction:column;align-items:flex-start}
.tops-map .tm-node{position:relative;display:inline-flex;flex-direction:column;gap:2px;max-width:100%;box-sizing:border-box;padding:9px 14px;border-radius:14px;background:#fff;border:2px solid #C9D2E3;color:#14213D!important;text-decoration:none!important;box-shadow:0 2px 8px rgba(20,33,61,.06)}
.tops-map a.tm-node:hover{border-color:#2147D6;box-shadow:0 6px 16px rgba(33,71,214,.18)}
.tops-map .tm-node strong{font:700 15px/1.25 Inter,system-ui,sans-serif;color:inherit}
.tops-map .tm-node small{font:500 12px/1.3 Inter,system-ui,sans-serif;color:#556079}
.tops-map .tm-node.is-root{background:#14213D;border-color:#14213D;color:#fff!important;padding:12px 18px}
.tops-map .tm-node.is-root strong{font-size:18px;color:#FFD84D}
.tops-map .tm-node.is-root small{color:#C9D3EA}
.tops-map .tm-node.is-subject{background:#2147D6;border-color:#2147D6;color:#fff!important}
.tops-map .tm-node.is-subject small{color:#D6E0FF}
.tops-map .tm-node.is-course,.tops-map .tm-node.is-chapter{border-color:#2147D6}
.tops-map .tm-node.st-mastered{border-color:#127A45;background:#F1FBF5}
.tops-map .tm-node.st-weak{border-color:#D92D20;background:#FFF5F4}
.tops-map .tm-node.st-going{border-color:#E0A100;background:#FFFBEF}
.tops-map .tm-badge{font-style:normal;font:800 10px/1.4 Inter,system-ui,sans-serif;letter-spacing:.06em;text-transform:uppercase;color:#B42318}
.tops-map .tm-bar{display:block;width:100%;min-width:120px;height:5px;margin-top:5px;border-radius:9px;background:#E7EBF3;overflow:hidden}
.tops-map .tm-bar i{display:block;height:100%;background:#127A45;border-radius:9px}
.tops-map .tm-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.tops-map .tm-actions a{display:inline-block;padding:5px 12px;border-radius:999px;background:#2147D6;color:#fff!important;font:700 12px/1.3 Inter,system-ui,sans-serif;text-decoration:none!important}
.tops-map .tm-actions a.is-ghost{background:#fff;color:#2147D6!important;border:1px solid #C9D2E3}
.tops-map .tm-leaves{display:flex;flex-direction:column;gap:5px;margin:7px 0 2px 16px!important;padding:2px 0 2px 12px!important;border-left:2px dashed var(--tm-line)}
.tops-map .tm-leaf{display:inline-flex;align-items:center;gap:7px;max-width:100%;box-sizing:border-box;padding:5px 11px;border-radius:999px;background:#fff;border:1px solid #DDE3EE;color:#14213D!important;font:600 13px/1.3 Inter,system-ui,sans-serif;text-decoration:none!important}
.tops-map .tm-leaf>span{min-width:0}
.tops-map .tm-leaf small{font:500 11px/1.3 Inter,system-ui,sans-serif;color:#556079;white-space:nowrap}
.tops-map .tm-leaf:before{content:"";flex:0 0 8px;width:8px;height:8px;border-radius:50%;background:#C3CAD7}
.tops-map .tm-leaf.st-plain:before{background:#2147D6}
.tops-map .tm-leaf.st-mastered{background:#E3F6EC;border-color:#A8DDBD}.tops-map .tm-leaf.st-mastered:before{background:#127A45}
.tops-map .tm-leaf.st-weak{background:#FDE8E7;border-color:#F3B4AE}.tops-map .tm-leaf.st-weak:before{background:#D92D20}
.tops-map .tm-leaf.st-going{background:#FFF4D6;border-color:#F0D58C}.tops-map .tm-leaf.st-going:before{background:#E0A100}
.tops-map a.tm-leaf:hover{border-color:#2147D6}
/* phone: top-to-bottom flowchart */
.tops-map .tm-tree ul{margin-left:16px!important}
.tops-map .tm-tree ul>li{position:relative;padding:7px 0 7px 16px}
.tops-map .tm-tree ul>li:before{content:"";position:absolute;left:0;top:26px;width:14px;border-top:2px solid var(--tm-line)}
.tops-map .tm-tree ul>li:after{content:"";position:absolute;left:0;top:0;bottom:0;border-left:2px solid var(--tm-line)}
.tops-map .tm-tree ul>li:last-child:after{bottom:auto;height:26px}
.tops-map [hidden]{display:none!important}
.tm-legend{display:flex;flex-wrap:wrap;gap:4px 14px;margin:2px 2px 10px;font:600 12px/1.3 Inter,system-ui,sans-serif;color:#556079}
.tm-legend span:before{content:"";display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:5px;vertical-align:-1px;background:#C3CAD7}
.tm-legend .st-mastered:before{background:#127A45}.tm-legend .st-going:before{background:#E0A100}.tm-legend .st-weak:before{background:#D92D20}
.tops .tm-title,.tm-title{margin:18px 0 6px;font:700 13px/1.2 Inter,system-ui,sans-serif;letter-spacing:.06em;text-transform:uppercase;color:#14213D}
/* desktop: branching tree */
@media (min-width:900px){
.tops-map .tm-tree{display:flex;justify-content:center;min-width:max-content;margin:0 auto}
.tops-map .tm-tree>li{display:flex;flex-direction:column;align-items:center}
.tops-map .tm-cell{align-items:center}
.tops-map .tm-node{text-align:center;align-items:center;min-width:150px}
.tops-map .tm-tree ul{display:flex;justify-content:center;position:relative;margin:0!important;padding:24px 0 0!important}
.tops-map .tm-tree ul:before{content:"";position:absolute;top:0;left:50%;height:24px;border-left:2px solid var(--tm-line)}
.tops-map .tm-tree ul>li{display:flex;flex-direction:column;align-items:center;padding:24px 10px 0;flex:0 1 auto}
.tops-map .tm-tree ul>li:before,.tops-map .tm-tree ul>li:after{content:"";position:absolute;top:0;bottom:auto;width:50%;height:24px;border-top:2px solid var(--tm-line);border-left:0}
.tops-map .tm-tree ul>li:before{right:50%;left:auto}
.tops-map .tm-tree ul>li:after{left:50%;right:auto;border-left:2px solid var(--tm-line)}
.tops-map .tm-tree ul>li:last-child:after{height:24px}
.tops-map .tm-tree ul>li:first-child:before,.tops-map .tm-tree ul>li:last-child:after{border-top:0}
.tops-map .tm-tree ul>li:last-child:before{border-right:2px solid var(--tm-line);border-radius:0 10px 0 0}
.tops-map .tm-tree ul>li:first-child:after{border-radius:10px 0 0 0}
.tops-map .tm-tree ul>li:only-child{padding-top:24px}
.tops-map .tm-tree ul>li:only-child:before{display:none}
.tops-map .tm-tree ul>li:only-child:after{border-radius:0;border-top:0;left:50%;width:0}
.tops-map .tm-leaves{align-items:stretch;width:100%;max-width:230px;margin:10px 0 0!important;padding:10px 0 0!important;border-left:0;position:relative}
.tops-map .tm-leaves:before{content:"";position:absolute;top:0;left:50%;height:10px;border-left:2px dashed var(--tm-line)}
.tops-map .tm-leaf{width:100%}
.tops-map .tm-actions{justify-content:center}
}
/* how learning works: flowchart */
.tm-flow{max-width:980px;margin:0 auto}
.tm-flow-steps{list-style:none;display:flex;justify-content:center;gap:34px;margin:0;padding:0}
.tm-flow-steps li{position:relative;flex:1 1 0;max-width:240px;margin:0;padding:14px 14px 12px;border:2px solid #2147D6;border-radius:14px;background:#fff;text-align:center;box-shadow:0 2px 8px rgba(20,33,61,.06)}
.tm-flow-steps li+li:before{content:"\2192";position:absolute;left:-28px;top:50%;transform:translateY(-50%);font:700 22px/1 system-ui;color:#2147D6}
.tm-flow-steps b{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;background:#14213D;color:#FFD84D;font:800 13px/1 Inter,system-ui,sans-serif;margin-bottom:6px}
.tm-flow-steps strong,.tm-flow-split strong{display:block;font:700 15px/1.25 Inter,system-ui,sans-serif;color:#14213D}
.tm-flow-steps small,.tm-flow-split small{display:block;font:500 12px/1.35 Inter,system-ui,sans-serif;color:#556079;margin-top:3px}
.tm-flow-split{position:relative;display:flex;justify-content:center;gap:16px;margin-top:34px}
.tm-flow-split:before{content:"\2193";position:absolute;top:-30px;left:50%;transform:translateX(-50%);font:700 22px/1 system-ui;color:#2147D6}
.tm-flow-split>div{flex:1 1 0;max-width:300px;padding:12px 14px;border-radius:14px;text-align:center}
.tm-flow-yes{background:#E3F6EC;border:2px solid #127A45}
.tm-flow-no{background:#FDE8E7;border:2px solid #D92D20}
@media (max-width:760px){
.tm-flow-steps{flex-direction:column;align-items:stretch;gap:26px}
.tm-flow-steps li{max-width:none}
.tm-flow-steps li+li:before{content:"\2193";left:50%;top:-24px;transform:translateX(-50%)}
.tm-flow-split{flex-direction:column;gap:10px}
.tm-flow-split>div{max-width:none}
}
/* catalogue map / list switch */
.tops-view-switch{display:inline-flex;gap:2px;padding:3px;border-radius:999px;background:#EEF1F7;margin:0 0 10px}
.tops .tops-view-switch button{border:0!important;background:transparent!important;color:#556079!important;border-radius:999px!important;padding:6px 14px!important;font:700 13px/1.2 Inter,system-ui,sans-serif!important;cursor:pointer;min-height:0;box-shadow:none!important}
.tops .tops-view-switch button.is-on{background:#fff!important;color:#14213D!important;box-shadow:0 2px 6px rgba(20,33,61,.12)!important}
.tops-ml-cards{display:contents}
.tops-ml-cards[hidden],.tops-view[hidden]{display:none!important}
.tops.tops-dash>.tops-view-switch{flex:0 0 auto!important}
.tops-dash .tops-map{margin:0 0 4px}
.tops-rc3 .tops-map{background:#fff;border:1px solid #DDE3EE;border-radius:14px;padding:12px 10px 14px;margin:0 0 6px}
/* ================= Course table: subject rows x class columns ================= */
.tops-grid{margin:0 0 8px}
.tops-grid .tg-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid #DDE3EE;border-radius:14px;background:#fff;box-shadow:0 2px 8px rgba(20,33,61,.05)}
.tops-grid table.tg{border-collapse:separate;border-spacing:0;width:100%;min-width:max-content;margin:0;font:500 13px/1.3 Inter,system-ui,sans-serif;color:#14213D;background:#fff}
.tops-grid .tg th,.tops-grid .tg td{border:0;border-bottom:1px solid #EDF0F6;border-left:1px solid #EDF0F6;padding:8px;vertical-align:top;text-align:left;background:#fff}
.tops-grid .tg thead th{position:sticky;top:0;z-index:2;background:#14213D;color:#FFD84D;font:800 13px/1.2 Inter,system-ui,sans-serif;text-align:center;white-space:nowrap;border-left-color:#26345A;padding:10px 8px}
.tops-grid .tg thead th.tg-corner{left:0;z-index:3;text-align:left;color:#C9D3EA;font-weight:700;font-size:11px;letter-spacing:.04em;text-transform:uppercase}
.tops-grid .tg-corner span{display:block}.tops-grid .tg-corner span+span{color:#FFD84D}
.tops-grid .tg th.tg-row{position:sticky;left:0;z-index:1;background:#F6F8FC;font:700 13px/1.25 Inter,system-ui,sans-serif;color:#14213D;width:110px;min-width:96px;max-width:140px;border-left:0;box-shadow:2px 0 0 #E3E8F1}
.tops-grid .tg tr.tg-subj th{background:#2147D6;color:#fff;font:800 13px/1.2 Inter,system-ui,sans-serif;letter-spacing:.05em;text-transform:uppercase;padding:7px 10px;border-left:0}
.tops-grid .tg tr.tg-subj th span{position:sticky;left:10px}
.tops-grid .tg td{min-width:150px;width:180px}
.tops-grid .tg td:empty:after{content:"";display:block;height:2px}
.tops-grid .tg-chip,.tops-grid a.tg-chip{display:flex;flex-direction:column;gap:3px;margin:0 0 6px;padding:8px 10px;border-radius:10px;border:1.5px solid #C9D2E3;border-left:4px solid #2147D6;background:#fff;color:#14213D!important;text-decoration:none!important;box-shadow:0 1px 3px rgba(20,33,61,.06)}
.tops-grid .tg-chip:last-child{margin-bottom:0}
.tops-grid a.tg-chip:hover{border-color:#2147D6;box-shadow:0 4px 12px rgba(33,71,214,.16)}
.tops-grid .tg-chip b{font:700 13px/1.3 Inter,system-ui,sans-serif;color:inherit}
.tops-grid .tg-chip small{font:500 11.5px/1.3 Inter,system-ui,sans-serif;color:#556079}
.tops-grid .tg-chip .tm-bar{display:block;height:5px;border-radius:9px;background:#E7EBF3;overflow:hidden}
.tops-grid .tg-chip .tm-bar i{display:block;height:100%;background:#127A45;border-radius:9px}
.tops-grid .tg-chip.st-mastered{border-left-color:#127A45;background:#F1FBF5}
.tops-grid .tg-chip.st-going{border-left-color:#E0A100;background:#FFFBEF}
.tops-grid .tg-chip.st-weak{border-left-color:#D92D20;background:#FFF5F4}
.tops-grid .tg-rank{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;margin-right:6px;border-radius:50%;background:#14213D;color:#FFD84D;font:800 10px/1 Inter,system-ui,sans-serif;font-style:normal;vertical-align:1px}
.tops-grid .tg-others{margin-top:6px}
.tops-grid .tg-others-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px}
.tops-grid .tg-others-list .tg-chip{margin:0}
.tops-grid [hidden],.tops-grid tbody[hidden],.tops-grid tr[hidden]{display:none!important}
@media (max-width:600px){.tops-grid .tg td{min-width:136px;width:140px;padding:6px}.tops-grid .tg th.tg-row{width:88px;min-width:80px;font-size:12px;padding:8px 6px}.tops-grid .tg-chip{padding:7px 8px}}
@media (min-width:601px){.tops-grid .tg td{width:auto}.tops-grid .tg thead th.tg-corner,.tops-grid .tg th.tg-row{width:150px;min-width:120px;max-width:170px}}
/* ================= The Big Course Map (one page) ================= */
.tops-cmap{--bg:#0E1714;--panel:#121D19;--line:#22302B;--ink:#E7EEEA;--mute:#8FA39B;background:var(--bg);color:var(--ink);border-radius:18px;padding:18px 16px 16px;margin:0 0 16px;font-family:Inter,system-ui,sans-serif;box-shadow:0 10px 30px rgba(0,0,0,.18)}
.tops-cmap *{box-sizing:border-box}
.tops-cmap .cm-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}
.tops-cmap .cm-eyebrow{margin:0;font:800 11px/1.2 Inter,system-ui,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:#4ADE80}
.tops-cmap .cm-title{margin:2px 0 6px!important;font:800 26px/1.15 Inter,system-ui,sans-serif!important;color:#fff!important;letter-spacing:-.01em}
.tops-cmap .cm-stats{margin:0;font:500 12px/1.5 ui-monospace,Menlo,Consolas,monospace;color:var(--mute)}
.tops-cmap .cm-stats b{color:#fff;margin-left:8px}.tops-cmap .cm-stats b:first-child{margin-left:0}
.tops-cmap .cm-tools{display:flex;gap:6px;flex-wrap:wrap}
.tops-cmap .cm-btn,.tops .tops-cmap button.cm-btn{display:inline-flex;align-items:center;gap:6px;border:1px solid #3B4A44!important;background:transparent!important;color:#fff!important;border-radius:999px!important;padding:7px 13px!important;font:700 12px/1.1 Inter,system-ui,sans-serif!important;cursor:pointer;min-height:0;box-shadow:none!important;white-space:nowrap}
.tops-cmap .cm-btn:hover{border-color:#fff!important}
.tops-cmap .cm-btn.is-on{background:#FFD84D!important;color:#14213D!important;border-color:#FFD84D!important}
.tops-cmap .cm-finder{display:flex;flex-wrap:wrap;align-items:flex-end;gap:8px 10px;margin:14px 0 10px;padding:10px 12px;border:1px solid var(--line);border-radius:14px;background:var(--panel)}
.tops-cmap .cm-finder-t{width:100%;font:800 11px/1 Inter,system-ui,sans-serif;letter-spacing:.1em;text-transform:uppercase;color:#FFD84D}
.tops-cmap .cm-finder label{display:flex;flex-direction:column;gap:4px;flex:1 1 150px;min-width:0;margin:0}
.tops-cmap .cm-finder label span{font:700 11px/1 Inter,system-ui,sans-serif;color:var(--mute)}
.tops-cmap .cm-finder select{width:100%;max-width:100%;height:38px;padding:0 10px;border-radius:10px;border:1px solid #3B4A44;background:#0B1310;color:#fff;font:600 14px/1.2 Inter,system-ui,sans-serif;margin:0}
.tops-cmap .cm-finder .cm-clear{height:38px}
.tops-cmap .cm-legend{display:flex;flex-wrap:wrap;gap:6px 14px;margin:4px 0 10px;font:600 12px/1.3 Inter,system-ui,sans-serif;color:var(--mute)}
.tops-cmap .cm-legend i{display:inline-block;width:12px;height:12px;border-radius:4px;margin-right:6px;vertical-align:-2px}
.tops-cmap .cm-legend small{color:#fff;font-weight:800;margin-left:2px}
.tops-cmap .cm-legend .st-new i{background:#2E3532}.tops-cmap .cm-legend .st-going i{background:#BFDBFE}.tops-cmap .cm-legend .st-mastered i{background:#86EFAC}.tops-cmap .cm-legend .st-weak i{background:#FCA5A5}
.tops-cmap .cm-views{display:inline-flex;gap:2px;padding:3px;border-radius:999px;background:#0B1310;border:1px solid var(--line);margin:0 0 10px}
.tops.tops-cmap .cm-views button{border:0!important;background:transparent!important;color:var(--mute)!important;border-radius:999px!important;padding:7px 14px!important;font:700 13px/1.1 Inter,system-ui,sans-serif!important;cursor:pointer;min-height:0;box-shadow:none!important}
.tops.tops-cmap .cm-views button.is-on{background:#fff!important;color:#0E1714!important}
.tops-cmap .cm-nav{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 8px;font:500 12px/1.2 Inter,system-ui,sans-serif;color:var(--mute)}
.tops-cmap .cm-scroll{overflow:auto;max-height:78vh;border:1px solid var(--line);border-radius:14px;background:var(--panel);-webkit-overflow-scrolling:touch;cursor:grab}
.tops-cmap .cm-scroll.cm-drag{cursor:grabbing;user-select:none}
.tops-cmap table.cm-table{border-collapse:separate;border-spacing:0;margin:0;width:max-content;min-width:100%;background:transparent;color:var(--ink);font-size:13px}
.tops-cmap .cm-table th,.tops-cmap .cm-table td{border:0;padding:0;background:transparent;vertical-align:top;text-align:left}
.tops-cmap .cm-table thead th{position:sticky;top:0;z-index:3;background:#0B1310;border-bottom:1px solid var(--line)!important;padding:10px 12px;font:800 16px/1.15 Inter,system-ui,sans-serif;color:#fff;white-space:nowrap}
.tops-cmap .cm-table thead th small{display:block;font:700 9.5px/1.2 ui-monospace,Menlo,Consolas,monospace;letter-spacing:.08em;text-transform:uppercase;color:#4ADE80;margin-bottom:3px}
.tops-cmap .cm-table thead th em{display:block;font:500 10.5px/1.3 ui-monospace,Menlo,Consolas,monospace;font-style:normal;color:var(--mute);margin-top:3px;text-transform:uppercase;letter-spacing:.04em}
.tops-cmap .cm-table thead th.cm-corner{left:0;z-index:4;width:170px;min-width:150px}
.tops-cmap .cm-table thead th.cm-corner small{color:var(--mute)}
.tops-cmap .cm-table thead th.cm-on{background:#13261F;color:#FFD84D}
.tops-cmap .cm-col{min-width:200px;width:200px}
.tops-cmap tr.cm-band th{position:static;padding:0;background:transparent}
.tops-cmap tr.cm-band th span{position:sticky;left:0;display:inline-block;padding:9px 14px 5px;font:800 12px/1 Inter,system-ui,sans-serif;letter-spacing:.14em;text-transform:uppercase;color:#FFD84D}
.tops-cmap .cm-rowh{position:sticky;left:0;z-index:2;background:var(--panel)!important;width:170px;min-width:150px;max-width:190px;padding:12px 12px 14px!important;border-right:1px solid var(--line)!important;border-bottom:1px solid var(--line)!important}
.tops-cmap .cm-rowh b{display:block;font:800 14px/1.25 Inter,system-ui,sans-serif;color:var(--c)}
.tops-cmap .cm-rowh small{display:block;margin-top:4px;font:500 11px/1.35 Inter,system-ui,sans-serif;color:var(--mute)}
.tops-cmap td.cm-cell{position:relative;padding:12px 10px 14px 12px!important;border-bottom:1px solid var(--line)!important;width:200px;min-width:200px}
.tops-cmap td.cm-cell.cm-on{background:rgba(255,216,77,.05)}
/* strand line through the row */
.tops-cmap td.ln-start:before,.tops-cmap td.ln-mid:before,.tops-cmap td.ln-end:before{content:"";position:absolute;top:24px;height:3px;border-radius:3px;background:var(--c);opacity:.85}
.tops-cmap td.ln-start:before{left:24px;right:0}
.tops-cmap td.ln-mid:before{left:0;right:0}
.tops-cmap td.ln-end:before{left:0;width:24px}
/* course cards */
.tops-cmap .cm-item{position:relative;z-index:1;display:block;margin:0 0 10px;padding:7px 10px 8px 30px;border-radius:12px;background:#0A0A0A;border:1px solid #9CA3AF;color:#E7EEEA!important;text-decoration:none!important;transition:transform .15s,box-shadow .15s,opacity .2s}
.tops-cmap .cm-item:last-child{margin-bottom:0}
.tops-cmap .cm-item:hover{transform:translateY(-1px);box-shadow:0 6px 16px rgba(0,0,0,.35)}
.tops-cmap .cm-item:before{content:"";position:absolute;left:9px;top:8px;width:13px;height:13px;border-radius:50%;border:3px solid var(--c);background:#0E1714;box-sizing:border-box}
.tops-cmap .cm-cell .cm-item:not(:last-child):after{content:"";position:absolute;left:14px;top:21px;bottom:-12px;border-left:2px solid var(--c);opacity:.7}
.tops-cmap .cm-item .cm-k{display:block;font:800 10px/1.2 ui-monospace,Menlo,Consolas,monospace;letter-spacing:.06em;text-transform:uppercase;color:var(--c)}
.tops-cmap .cm-item b{display:block;font:800 13.5px/1.25 Inter,system-ui,sans-serif;color:inherit;margin-top:2px}
.tops-cmap .cm-item small{display:block;font:500 11px/1.3 Inter,system-ui,sans-serif;color:#A8B7B0;margin-top:3px}
.tops-cmap .cm-item .cm-bar{display:block;height:4px;border-radius:9px;background:rgba(0,0,0,.15);overflow:hidden;margin-top:5px}
.tops-cmap .cm-item .cm-bar i{display:block;height:100%;background:#14532D;border-radius:9px}
.tops-cmap .cm-item.st-going{background:#BFDBFE;border-color:#93C5FD;color:#0B1B33!important}
.tops-cmap .cm-item.st-mastered{background:#86EFAC;border-color:#4ADE80;color:#052E16!important}
.tops-cmap .cm-item.st-weak{background:#FCA5A5;border-color:#F87171;color:#450A0A!important}
.tops-cmap .cm-item.st-going small,.tops-cmap .cm-item.st-mastered small,.tops-cmap .cm-item.st-weak small{color:inherit;opacity:.78}
.tops-cmap .cm-item.st-going .cm-k,.tops-cmap .cm-item.st-mastered .cm-k,.tops-cmap .cm-item.st-weak .cm-k{color:inherit;opacity:.7}
.tops-cmap .cm-item.st-going:before,.tops-cmap .cm-item.st-mastered:before,.tops-cmap .cm-item.st-weak:before{background:#fff}
.tops-cmap.cm-filtering .cm-item.cm-dim{filter:saturate(.15) brightness(.42)}
.tops-cmap .cm-item.cm-hit{box-shadow:0 0 0 2px #FFD84D}
.tops-cmap .cm-item.cm-pulse{animation:cmPulse 1.4s ease-out 2}
@keyframes cmPulse{0%{box-shadow:0 0 0 2px #FFD84D,0 0 0 0 rgba(255,216,77,.7)}100%{box-shadow:0 0 0 2px #FFD84D,0 0 0 16px rgba(255,216,77,0)}}
.tops-cmap .cm-others{margin-top:14px}
.tops-cmap .cm-others-t{margin:0 0 8px;font:800 12px/1 Inter,system-ui,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:#FFD84D}
.tops-cmap .cm-others-list,.tops-cmap .cm-lgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(220px,100%),1fr));gap:10px}
.tops-cmap .cm-lgrid .cm-item,.tops-cmap .cm-others-list .cm-item{min-width:0;overflow-wrap:anywhere}
.tops-cmap.cm-soft .cm-item.cm-dim{filter:none}.tops-cmap.cm-soft .cm-lclass.cm-dim{opacity:1}
.tops-cmap .cm-note{margin:-4px 0 10px;padding:8px 10px;border-radius:10px;background:#1C2A24;border:1px dashed #3B4A44;font:500 12px/1.4 Inter,system-ui,sans-serif;color:#C9D6D0}
.tops-cmap .cm-others-list .cm-item,.tops-cmap .cm-lgrid .cm-item{margin:0}
/* list view */
.tops-cmap .cm-lclass{margin:0 0 16px;padding:12px;border:1px solid var(--line);border-radius:14px;background:var(--panel);transition:opacity .2s}
.tops-cmap .cm-lclass.cm-dim{opacity:.35}
.tops-cmap .cm-lclass h3{margin:0 0 10px!important;font:800 18px/1.2 Inter,system-ui,sans-serif!important;color:#fff!important}
.tops-cmap .cm-lclass h3 small{font:700 10px/1 ui-monospace,Menlo,Consolas,monospace;letter-spacing:.08em;text-transform:uppercase;color:#4ADE80;margin-left:6px}
.tops-cmap .cm-lrow{margin:0 0 12px;padding-left:10px;border-left:3px solid var(--c)}
.tops-cmap .cm-lrow:last-child{margin-bottom:0}
.tops-cmap .cm-lrow h4{margin:0 0 8px!important;font:800 13px/1.2 Inter,system-ui,sans-serif!important;color:var(--c)!important}
/* full screen */
.tops-cmap.cm-full{position:fixed;inset:0;z-index:2147483000;border-radius:0;margin:0;overflow:auto}
.tops-cmap.cm-full .cm-scroll{max-height:calc(100vh - 230px)}
html.cm-lock,html.cm-lock body{overflow:hidden!important}
.tops-cmap [hidden]{display:none!important}
@media (max-width:600px){
/* use the full phone width */
.tops-cmap{border-radius:0;padding:8px 6px 10px;box-shadow:none}
.tops-cmap .cm-head,.tops-cmap .cm-finder,.tops-cmap .cm-legend,.tops-cmap .cm-views,.tops-cmap .cm-nav,.tops-cmap .cm-note{margin-left:4px;margin-right:4px}
.tops-cmap .cm-title{font-size:21px!important}
.tops-cmap .cm-finder{padding:8px}
.tops-cmap .cm-finder label{flex:1 1 100%}
.tops-cmap .cm-nav span{display:none}
.tops-cmap .cm-scroll{max-height:72vh;border-radius:10px;cursor:auto}
/* three classes side by side */
.tops-cmap .cm-table thead th.cm-corner,.tops-cmap .cm-rowh{width:56px;min-width:56px;max-width:56px;padding:8px 4px!important}
.tops-cmap .cm-table thead th.cm-corner{font-size:10px}
.tops-cmap .cm-rowh b{font-size:10.5px;line-height:1.2;overflow-wrap:anywhere}.tops-cmap .cm-rowh small{display:none}
.tops-cmap .cm-col,.tops-cmap td.cm-cell{width:calc((100vw - 14px - 56px) / 2);min-width:calc((100vw - 14px - 56px) / 2);max-width:calc((100vw - 14px - 56px) / 2)}
.tops-cmap .cm-table thead th{padding:8px 5px;font-size:13px;white-space:normal}
.tops-cmap .cm-table thead th small{font-size:7.5px;letter-spacing:.04em}
.tops-cmap .cm-table thead th em{font-size:8px}
.tops-cmap tr.cm-band th span{padding:8px 8px 4px;font-size:10.5px}
.tops-cmap td.cm-cell{padding:8px 4px 10px 5px!important}
.tops-cmap .cm-item{padding:5px 5px 6px 17px;border-radius:9px;margin-bottom:7px;overflow-wrap:anywhere}
.tops-cmap .cm-item:before{left:4px;top:7px;width:10px;height:10px;border-width:2px}
.tops-cmap .cm-cell .cm-item:not(:last-child):after{left:8px;top:17px;bottom:-9px}
.tops-cmap .cm-item .cm-k{font-size:8px;letter-spacing:.02em}
.tops-cmap .cm-item b{font-size:11px;line-height:1.2}
.tops-cmap .cm-item small{font-size:9px;line-height:1.25}
.tops-cmap .cm-item .cm-bar{height:3px;margin-top:3px}
.tops-cmap td.ln-start:before,.tops-cmap td.ln-mid:before,.tops-cmap td.ln-end:before{top:19px;height:2px}
.tops-cmap td.ln-start:before{left:14px}
.tops-cmap td.ln-end:before{width:14px}
/* list view: two cards per row, never wider than the screen */
.tops-cmap .cm-lclass{padding:10px 8px}
.tops-cmap .cm-lrow{padding-left:7px}
.tops-cmap .cm-lgrid,.tops-cmap .cm-others-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
}
/* top row: views + colour key + tools; stronger status colours */
.tops-cmap .cm-head{align-items:center;gap:8px 12px}
.tops-cmap .cm-head .cm-views{margin:0}
.tops-cmap .cm-key{flex:1 1 320px;display:flex;flex-wrap:wrap;gap:6px 14px;font:600 12px/1.3 Inter,system-ui,sans-serif;color:#DCE6E1}
.tops-cmap .cm-key i{display:inline-block;width:14px;height:14px;border-radius:4px;margin-right:6px;vertical-align:-3px;border:2px solid transparent}
.tops-cmap .cm-key .st-new i{background:#0A0A0A;border-color:#9CA3AF}
.tops-cmap .cm-key .st-going i{background:#1D4ED8;border-color:#2563EB}
.tops-cmap .cm-key .st-mastered i{background:#22C55E;border-color:#15803D}
.tops-cmap .cm-key .st-weak i{background:#EF4444;border-color:#DC2626}
.tops-cmap .cm-finder{margin-top:10px}
.tops-cmap .cm-item.st-going{background:#1D4ED8;border-color:#2563EB;border-left:5px solid #2563EB;color:#06183A!important}
.tops-cmap .cm-item.st-mastered{background:#22C55E;border-color:#15803D;border-left:5px solid #15803D;color:#032611!important}
.tops-cmap .cm-item.st-weak{background:#EF4444;border-color:#DC2626;border-left:5px solid #DC2626;color:#3F0606!important}
.tops-cmap .cm-item.st-new{border-left:5px solid #9CA3AF}
.tops-cmap .cm-item.st-going .cm-bar i{background:#1E3A8A}
@media (max-width:600px){.tops-cmap .cm-head{gap:8px}.tops-cmap .cm-key{order:3;flex:1 1 100%;font-size:11px;gap:5px 10px}.tops-cmap .cm-tools{margin-left:auto}.tops-cmap .cm-tools .cm-btn{padding:6px 10px!important}}
/* course finder: one row, everywhere */
.tops-cmap .cm-finder{flex-wrap:nowrap;align-items:center;gap:6px;padding:8px}
.tops-cmap .cm-finder-t,.tops-cmap .cm-finder label span{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.tops-cmap .cm-finder label{flex:1 1 0!important;min-width:0}
.tops-cmap .cm-finder select{height:36px;padding:0 6px;font-size:13px;text-overflow:ellipsis}
.tops-cmap .cm-finder .cm-clear,.tops .tops-cmap button.cm-clear{flex:0 0 36px;width:36px;height:36px;padding:0!important;justify-content:center}
@media (max-width:600px){.tops-cmap .cm-finder{gap:4px;padding:6px}.tops-cmap .cm-finder select{height:34px;padding:0 3px;font-size:12px}.tops-cmap .cm-finder .cm-clear,.tops .tops-cmap button.cm-clear{flex-basis:32px;width:32px;height:34px}.tops-cmap .cm-key{gap:4px 12px}}
.tops-cmap .cm-finder .cm-go,.tops .tops-cmap button.cm-go{flex:0 0 auto;height:36px;padding:0 16px!important;background:#FFD84D!important;color:#14213D!important;border-color:#FFD84D!important;font-weight:800!important}
@media (max-width:600px){.tops-cmap .cm-finder .cm-go,.tops .tops-cmap button.cm-go{height:34px;padding:0 10px!important}}
/* compact class header row: just the class name */
.tops-cmap .cm-table thead th{padding:6px 10px!important;font:800 14px/1.2 Inter,system-ui,sans-serif!important}
.tops-cmap .cm-table thead th.cm-corner{font:700 11px/1.2 Inter,system-ui,sans-serif!important;color:#8FA39B!important;text-transform:uppercase;letter-spacing:.06em}
@media (max-width:600px){.tops-cmap .cm-table thead th{padding:5px 5px!important;font-size:12.5px!important}.tops-cmap .cm-table thead th.cm-corner{font-size:9.5px!important}}
/* the map is always a full-width block, also inside the My Learning flex layout */
.tops-dash>.tops-cmap,.tops>.tops-cmap{flex:0 0 100%!important;max-width:100%}
/* phone: compact top */
@media (max-width:600px){
.tops-cmap .cm-head{display:grid!important;grid-template-columns:1fr auto;gap:6px;margin:0 2px 6px!important}
.tops-cmap .cm-head .cm-views{grid-column:1;grid-row:1;padding:2px;justify-self:start}
.tops.tops-cmap .cm-views button{padding:5px 10px!important;font-size:12px!important;white-space:nowrap}
.tops-cmap .cm-tools{grid-column:2;grid-row:1;gap:4px;margin:0!important}
.tops-cmap .cm-txt{display:none}
.tops-cmap .cm-tools .cm-btn,.tops .tops-cmap .cm-tools button.cm-btn{width:32px;height:32px;padding:0!important;justify-content:center;font-size:14px!important}
.tops-cmap .cm-key{grid-column:1 / -1;grid-row:2;order:0!important;flex:none!important;display:flex;flex-wrap:nowrap;gap:0 9px!important;font-size:10.5px!important;white-space:nowrap;overflow-x:auto}
.tops-cmap .cm-key i{width:10px;height:10px;margin-right:4px;border-width:1.5px;vertical-align:-1px}
.tops-cmap .cm-finder{margin:0 2px 8px!important;padding:5px!important;gap:4px!important;border-radius:10px}
.tops-cmap .cm-finder select{height:32px!important;font-size:12px!important;padding:0 2px!important;border-radius:8px}
.tops-cmap .cm-finder .cm-go,.tops .tops-cmap button.cm-go{height:32px!important;padding:0 9px!important;font-size:12px!important}
.tops-cmap .cm-finder .cm-clear,.tops .tops-cmap button.cm-clear{flex-basis:30px!important;width:30px!important;height:32px!important}
.tops-cmap .cm-note{margin:0 2px 6px!important;font-size:11px;padding:6px 8px}
}
/* outer wrapper is plain; the dark box is .cm-panel; "Other courses" sit below it */
.tops.tops-cmap{background:transparent!important;padding:0!important;box-shadow:none!important;border-radius:0!important;color:#14213D}
.tops-cmap .cm-panel{background:var(--bg);color:var(--ink);border-radius:18px;padding:18px 16px 16px;box-shadow:0 10px 30px rgba(0,0,0,.18)}
.tops.tops-cmap.cm-full{background:var(--bg)!important;padding:0!important;overflow:auto}
.tops-cmap.cm-full .cm-panel{border-radius:0;box-shadow:none}
.tops-cmap .cm-out{margin:16px 0 0}
.tops-cmap .cm-out .cm-others-t{color:#14213D;font-size:13px}
/* finder dropdowns: never let the theme turn them white */
.tops-cmap .cm-finder select,.tops .tops-cmap .cm-finder select{background:#0B1310!important;color:#fff!important;border:1px solid #3B4A44!important;box-shadow:none!important;-webkit-text-fill-color:#fff}
.tops-cmap .cm-finder select option,.tops-cmap .cm-finder select optgroup{background:#fff;color:#14213D;-webkit-text-fill-color:#14213D}
@media (max-width:600px){.tops-cmap .cm-panel{border-radius:0;padding:8px 6px 10px;box-shadow:none}.tops-cmap .cm-out{padding:0 10px}.tops-cmap .cm-out .cm-others-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* ===== My Account (v2) ===== */
.tops-acct2{max-width:960px;margin:0 auto}
.tops-acct2 .ac-hero{display:flex;align-items:center;gap:18px;padding:26px 26px;border-radius:20px;background:radial-gradient(circle at 92% 0%,rgba(255,216,77,.22),transparent 42%),linear-gradient(135deg,#14213D 0%,#1c3170 60%,#2147D6 130%);color:#fff;box-shadow:0 10px 30px rgba(20,33,61,.22);margin:0 0 16px}
.tops-acct2 .ac-avatar{flex:0 0 74px;height:74px;border-radius:50%;background:#FFD84D;color:#14213D;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:28px;letter-spacing:.02em;box-shadow:0 0 0 5px rgba(255,255,255,.14)}
.tops-acct2 .ac-who{flex:1;min-width:0}
.tops-acct2 .ac-eyebrow{margin:0;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:#FFD84D;font-weight:700}
.tops-acct2 .ac-name{margin:2px 0 6px;color:#fff;font-size:28px;line-height:1.15;font-weight:800;overflow-wrap:anywhere}
.tops-acct2 .ac-meta{margin:0;display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;color:rgba(255,255,255,.82);font-size:14px}
.tops-acct2 .ac-chip{background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.3);color:#fff;border-radius:999px;padding:3px 12px;font-weight:700}
.tops-acct2 .ac-out{flex:0 0 auto;align-self:flex-start;color:#fff!important;text-decoration:none!important;border:1px solid rgba(255,255,255,.4);border-radius:999px;padding:7px 16px;font-weight:600;font-size:14px}
.tops-acct2 .ac-out:hover{background:rgba(255,255,255,.12)}
.tops-acct2 .ac-tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 16px}
.tops-acct2 .ac-tile{display:flex;flex-direction:column;gap:2px;padding:14px 16px;border-radius:14px;background:#fff;border:1px solid var(--tops-line);border-left:6px solid;text-decoration:none!important;color:var(--tops-ink)!important;transition:transform .15s,box-shadow .15s}
.tops-acct2 .ac-tile:hover{transform:translateY(-2px);box-shadow:0 6px 16px rgba(20,33,61,.1)}
.tops-acct2 .ac-tile b{font-size:30px;line-height:1.1;font-weight:800}
.tops-acct2 .ac-tile span{font-size:13px;color:var(--tops-muted);font-weight:600}
.tops-acct2 .ac-blue{border-left-color:#2563EB}.tops-acct2 .ac-blue b{color:#2563EB}
.tops-acct2 .ac-green{border-left-color:#15803D}.tops-acct2 .ac-green b{color:#15803D}
.tops-acct2 .ac-red{border-left-color:#DC2626}.tops-acct2 .ac-red b{color:#DC2626}
.tops-acct2 .ac-yellow{border-left-color:#E6B800}.tops-acct2 .ac-yellow b{color:#14213D}
.tops-acct2 .ac-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0 0 18px}
.tops-acct2 .ac-links a{display:flex;align-items:center;gap:14px;padding:16px 18px;border-radius:14px;background:#EEF3FF;border:1px solid #D5E0FF;text-decoration:none!important;color:#14213D!important}
.tops-acct2 .ac-links a:hover{background:#E1EAFF}
.tops-acct2 .ac-links i{font-style:normal;font-size:26px;width:46px;height:46px;border-radius:12px;background:#fff;display:flex;align-items:center;justify-content:center;flex:0 0 46px}
.tops-acct2 .ac-links b{display:block;font-size:16px}
.tops-acct2 .ac-links small{display:block;color:var(--tops-muted);font-size:13px}
.tops-acct2 .tops-acct-msg{border-radius:12px;padding:12px 16px;margin:0 0 14px;font-weight:600}
.tops-acct2 .tops-acct-ok{background:var(--tops-green-bg);color:var(--tops-green);border:1px solid #a6dfbf}
.tops-acct2 .tops-acct-error{background:var(--tops-red-bg);color:var(--tops-red);border:1px solid #f5b5b0}
.tops-acct2 .ac-card{background:#fff;border:1px solid var(--tops-line);border-radius:16px;padding:20px 22px;margin:0 0 14px}
.tops-acct2 .ac-card h3,.tops-acct2 .ac-pass summary{display:flex;align-items:center;gap:10px;margin:0 0 14px;font-size:18px;font-weight:700;color:#14213D}
.tops-acct2 .ac-card h3 i,.tops-acct2 .ac-pass summary i{font-style:normal;width:34px;height:34px;border-radius:10px;background:#EEF3FF;display:flex;align-items:center;justify-content:center;font-size:17px}
.tops-acct2 .ac-pass summary{margin:0;cursor:pointer;list-style:none}
.tops-acct2 .ac-pass summary::-webkit-details-marker{display:none}
.tops-acct2 .ac-pass summary small{font-weight:500;color:var(--tops-muted);font-size:13px}
.tops-acct2 .ac-pass summary:after{content:"▾";margin-left:auto;color:var(--tops-muted);transition:transform .2s}
.tops-acct2 .ac-pass[open] summary{margin-bottom:14px}
.tops-acct2 .ac-pass[open] summary:after{transform:rotate(180deg)}
.tops-acct2 .ac-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px}
.tops-acct2 .ac-fields .ac-wide{grid-column:1/-1}
.tops-acct2 .ac-fields small{display:block;font-weight:400;color:var(--tops-muted);font-size:12.5px;margin-top:5px}
.tops-acct2 .tops-acct-form input:focus,.tops-acct2 .tops-acct-form select:focus{outline:none;border-color:#2147D6;box-shadow:0 0 0 3px rgba(33,71,214,.15)}
.tops-acct2 .ac-save{display:flex;justify-content:flex-end}
.tops-acct2 .ac-save .tops-btn{background:#2147D6;border-color:#2147D6;padding:12px 28px;border-radius:12px;font-size:16px}
@media (max-width:700px){
.tops-acct2 .ac-hero{flex-wrap:wrap;padding:20px 18px;gap:14px;border-radius:16px}
.tops-acct2 .ac-avatar{flex-basis:58px;height:58px;font-size:22px}
.tops-acct2 .ac-name{font-size:22px}
.tops-acct2 .ac-who{flex:1 1 calc(100% - 80px)}
.tops-acct2 .ac-out{order:3;padding:6px 14px;font-size:13px}
.tops-acct2 .ac-tiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.tops-acct2 .ac-tile{padding:11px 12px}
.tops-acct2 .ac-tile b{font-size:24px}
.tops-acct2 .ac-tile span{font-size:12px}
.tops-acct2 .ac-links{grid-template-columns:1fr;gap:9px}
.tops-acct2 .ac-card{padding:16px}
.tops-acct2 .ac-fields{grid-template-columns:1fr}
.tops-acct2 .ac-save .tops-btn{width:100%}
}
.tops-acct2 .ac-check{display:flex!important;align-items:flex-start;gap:10px;font-weight:500!important;font-size:15px!important;margin:0!important;cursor:pointer}
.tops-acct2 .ac-check input{width:20px!important;height:20px!important;margin:2px 0 0!important;flex:0 0 20px;accent-color:#2147D6}
/* in progress = navy blue (clearly different from mastered green) */
.tops-cmap .cm-key .st-going i,.tops-cmap .cm-legend .st-going i{background:#1D4ED8;border-color:#93C5FD}
.tops-cmap .cm-item.st-going{background:#1D4ED8!important;border-color:#93C5FD!important;border-left:5px solid #93C5FD!important;color:#FFFFFF!important}
.tops-cmap .cm-item.st-going small,.tops-cmap .cm-item.st-going .cm-k{color:#DCE6FF!important;opacity:1}
.tops-cmap .cm-item.st-going .cm-bar{background:rgba(255,255,255,.25)}
.tops-cmap .cm-item.st-going .cm-bar i{background:#FFD84D}
/* same colour code for courses and topics everywhere: in progress = dark navy, mastered = green, weak = red */
.tops-in_progress.tops-badge{background:#1D4ED8;color:#fff;border-color:#93C5FD;border-style:solid}
.tops-row-in_progress.tops-topic{border-left-color:#1D4ED8}
.tops-stats .tops-in_progress{background:#E7EAF3}.tops-stats .tops-in_progress b{color:#1D4ED8}
.tops-rc-ch.is-going .tops-rc-state,.tops-rc3-ch.is-going .tops-rc3-pill{background:#1D4ED8;color:#fff}
.tops-rc3-topics li.is-in_progress i{background:#1D4ED8}
.tops-map .tm-node.st-going{border-color:#1D4ED8;background:#E7EAF3}
.tops-map .tm-leaf.st-going{background:#1D4ED8;border-color:#93C5FD;color:#fff!important}.tops-map .tm-leaf.st-going *{color:#fff!important}.tops-map .tm-leaf.st-going:before{background:#FFD84D}
.tm-legend .st-going:before{background:#1D4ED8}
.tops-grid .tg-chip.st-going{border-left-color:#1D4ED8;background:#E7EAF3}
/* My Learning: three doors */
.tops-hub{margin:0 0 18px}
.tops-hub .hub-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:4px 0 18px}
.tops-hub .hub-tile{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:8px;min-height:190px;padding:22px 22px 20px;border-radius:22px;border:2px solid transparent;background:linear-gradient(135deg,#14213D,#1b2c55);color:#fff;text-align:left;cursor:pointer;box-shadow:0 10px 26px rgba(20,33,61,.18);transition:transform .15s,box-shadow .15s,border-color .15s;font:inherit}
.tops-hub .hub-tile:hover,.tops-hub .hub-tile:focus-visible{transform:translateY(-3px);box-shadow:0 16px 34px rgba(20,33,61,.28);border-color:#FFD84D;outline:0}
.tops-hub .hub-tile.is-on{border-color:#FFD84D;box-shadow:0 0 0 4px rgba(255,216,77,.35),0 16px 34px rgba(20,33,61,.28)}
.tops-hub .hub-e{width:60px;height:60px;border-radius:18px;display:flex;align-items:center;justify-content:center;font-size:32px;background:rgba(255,216,77,.16)}
.tops-hub .hub-tile b{font:800 21px/1.25 Inter,system-ui,sans-serif;color:#fff}
.tops-hub .hub-tile small{font-size:15px;line-height:1.45;color:#C9D3EA}
.tops-hub .hub-n{margin-top:auto;font-weight:800;font-size:14px;color:#FFD84D}
.tops-hub .hub-fln{background:linear-gradient(135deg,#14213D,#173a3a)}.tops-hub .hub-general{background:linear-gradient(135deg,#14213D,#3a2b14)}
.tops-hub .hub-panel{margin-top:4px}
.tops-cmap.cm-onlylist{background:#fff;border:1px solid #DDE3EE;border-radius:20px;padding:18px 20px}
.tops-cmap.cm-onlylist .cm-ol-t{margin:0 0 8px;font:800 22px/1.25 Inter,system-ui,sans-serif;color:#14213D}
.tops-cmap.cm-onlylist .cm-ol-offer{margin:0 0 12px;font-weight:600}
.tops-cmap.cm-onlylist .cm-others{margin:0}
@media (max-width:820px){.tops-hub .hub-tiles{grid-template-columns:1fr;gap:12px}.tops-hub .hub-tile{min-height:0;flex-direction:row;flex-wrap:wrap;align-items:center;padding:16px}.tops-hub .hub-tile b{flex:1 1 60%;font-size:18px}.tops-hub .hub-tile small{flex:1 1 100%}.tops-hub .hub-e{width:48px;height:48px;font-size:26px}.tops-hub .hub-n{margin-top:0}}
/* one colour code everywhere (same as the course map): mastered = green, in progress = dark navy, weak = red, not started = dark grey */
.tops-map .tm-leaf.st-mastered,.tops-map .tm-node.is-course.st-mastered,.tops-map .tm-node.is-chapter.st-mastered{background:#22C55E!important;border-color:#15803D!important;color:#032611!important}
.tops-map .tm-leaf.st-weak,.tops-map .tm-node.is-course.st-weak,.tops-map .tm-node.is-chapter.st-weak{background:#EF4444!important;border-color:#DC2626!important;color:#3F0606!important}
.tops-map .tm-leaf.st-going,.tops-map .tm-node.is-course.st-going,.tops-map .tm-node.is-chapter.st-going{background:#1D4ED8!important;border-color:#93C5FD!important;color:#fff!important}
.tops-map .tm-leaf.st-new,.tops-map .tm-node.is-course.st-new{background:#0A0A0A!important;border-color:#9CA3AF!important;color:#fff!important}
.tops-map .tm-leaf.st-mastered *,.tops-map .tm-node.st-mastered *{color:#032611!important}
.tops-map .tm-leaf.st-weak *,.tops-map .tm-node.st-weak *{color:#3F0606!important}
.tops-map .tm-leaf.st-going *,.tops-map .tm-node.st-going *,.tops-map .tm-leaf.st-new *,.tops-map .tm-node.st-new *{color:#fff!important}
.tops-map .tm-node.st-going .tm-actions a,.tops-map .tm-node.st-mastered .tm-actions a,.tops-map .tm-node.st-weak .tm-actions a{color:#fff!important}
.tops-map .tm-node.st-going .tm-actions a.is-ghost,.tops-map .tm-node.st-mastered .tm-actions a.is-ghost,.tops-map .tm-node.st-weak .tm-actions a.is-ghost{color:#2147D6!important}
.tops-map .tm-leaf.st-mastered:before{background:#15803D}.tops-map .tm-leaf.st-weak:before{background:#DC2626}.tops-map .tm-leaf.st-going:before{background:#FFD84D}
.tm-legend .st-mastered:before{background:#22C55E;box-shadow:0 0 0 2px #15803D}.tm-legend .st-weak:before{background:#EF4444;box-shadow:0 0 0 2px #DC2626}.tm-legend .st-going:before{background:#1D4ED8;box-shadow:0 0 0 2px #93C5FD}
.tops-rc3-ch.is-weak .tops-rc3-pill{background:#EF4444;color:#3F0606}.tops-rc3-ch.is-strong .tops-rc3-pill{background:#22C55E;color:#032611}
.tops-rc3-topics li.is-mastered i{background:#15803D}.tops-rc3-topics li.is-needs_revision i{background:#DC2626}
.tops-mastered.tops-badge{background:#22C55E;color:#032611;border-color:#15803D}
.tops-needs_revision.tops-badge{background:#EF4444;color:#3F0606;border-color:#DC2626}
.tops-grid .tg-chip.st-mastered{border-left-color:#15803D;background:#22C55E}.tops-grid .tg-chip.st-weak{border-left-color:#DC2626;background:#EF4444}.tops-grid .tg-chip.st-going{border-left-color:#93C5FD;background:#1D4ED8;color:#fff!important}.tops-grid .tg-chip.st-going *{color:#fff!important}
/* the same colour code in every remaining place */
.tops-row-mastered.tops-topic{border-left-color:#15803D;background:#22C55E}.tops-row-mastered.tops-topic *{color:#032611}
.tops-row-needs_revision.tops-topic,.tops-table tr.tops-row-needs_revision td{border-left-color:#DC2626;background:#EF4444}.tops-row-needs_revision.tops-topic *{color:#3F0606}
.tops-row-in_progress.tops-topic{border-left-color:#93C5FD;background:#1D4ED8}.tops-row-in_progress.tops-topic *{color:#fff}
.tops-row-not_attempted.tops-topic,.tops-row-no_test.tops-topic{border-left-color:#9CA3AF}
.tops-stats .tops-mastered,.tops-rc-tiles .tops-mastered{background:#22C55E}.tops-stats .tops-mastered b,.tops-stats .tops-mastered,.tops-rc-tiles .tops-mastered b,.tops-rc-tiles .tops-mastered span{color:#032611}
.tops-stats .tops-needs_revision,.tops-rc-tiles .tops-needs_revision{background:#EF4444}.tops-stats .tops-needs_revision b,.tops-stats .tops-needs_revision,.tops-rc-tiles .tops-needs_revision b,.tops-rc-tiles .tops-needs_revision span{color:#3F0606}
.tops-stats .tops-in_progress,.tops-rc-tiles .tops-in_progress{background:#1D4ED8}.tops-stats .tops-in_progress b,.tops-stats .tops-in_progress,.tops-rc-tiles .tops-in_progress b,.tops-rc-tiles .tops-in_progress span{color:#fff}
.tops-rc-ch.is-weak .tops-rc-state{background:#EF4444;color:#3F0606}.tops-rc-ch.is-strong .tops-rc-state{background:#22C55E;color:#032611}
.tops-rc-ch dd.is-m{color:#15803D}.tops-rc-ch dd.is-w{color:#DC2626}
.tops-rc-rows li.is-weak{background:#EF4444;border-color:#DC2626;box-shadow:inset 4px 0 0 #DC2626}.tops-rc-rows li.is-weak *{color:#3F0606}
.tops-result-badge.is-good{background:#22C55E!important;color:#032611!important}.tops-result-badge.is-weak{background:#EF4444!important;color:#3F0606!important}
.tops-att-res.is-wait{background:#1D4ED8!important;color:#fff!important}
/* colour key above the FLN / General course cards */
.tops-cmap.cm-onlylist .cm-ol-key{display:flex!important;flex-wrap:wrap!important;gap:6px 16px!important;margin:4px 0 12px;font:700 13px/1.3 Inter,system-ui,sans-serif!important;color:#14213D;white-space:normal;overflow:visible}
.tops-cmap.cm-onlylist .cm-ol-key i{width:16px;height:16px;border-width:2px;vertical-align:-3px;margin-right:6px}
/* FLN / General course lists: same dark panel and cards as the NCERT course map */
.tops.tops-cmap.cm-onlylist{background:#0E1714!important;color:#E7EEEA!important;border:0!important;border-radius:18px!important;padding:20px 18px 18px!important;box-shadow:0 10px 30px rgba(0,0,0,.18)!important}
.tops-cmap.cm-onlylist .cm-ol-t{color:#fff!important}
.tops-cmap.cm-onlylist .cm-ol-offer,.tops-cmap.cm-onlylist p{color:#DCE6E1!important}
.tops-cmap.cm-onlylist .cm-ol-offer a,.tops-cmap.cm-onlylist p a{color:#FACC15!important}
.tops-cmap.cm-onlylist .cm-ol-key{color:#DCE6E1!important;padding:8px 10px;background:#121D19;border:1px solid #22302B;border-radius:12px}
.tops-cmap.cm-onlylist .cm-others-list{grid-template-columns:repeat(auto-fill,minmax(min(270px,100%),1fr))!important;gap:14px!important}
.tops-cmap.cm-onlylist .cm-others-list .cm-item{padding:12px 14px 13px 40px!important;border-radius:14px!important;min-height:96px}
.tops-cmap.cm-onlylist .cm-others-list .cm-item b{font-size:17px!important;line-height:1.25}
.tops-cmap.cm-onlylist .cm-others-list .cm-item small{font-size:13.5px!important}
.tops-cmap.cm-onlylist .cm-others-list .cm-item:before{left:13px!important;top:15px!important}
@media (max-width:600px){.tops.tops-cmap.cm-onlylist{border-radius:14px!important;padding:14px 10px!important}.tops-cmap.cm-onlylist .cm-others-list{grid-template-columns:1fr!important}}
/* report card: three sections + improvement plan */
.tops-rc3-sections{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0 0 12px}
.tops-rc3-sections a{display:block;padding:12px 14px;border-radius:14px;background:#0E1714;border:2px solid #22302B;color:#E7EEEA!important;text-decoration:none!important}
.tops-rc3-sections a b{display:block;font:800 15px/1.25 Inter,system-ui,sans-serif}
.tops-rc3-sections a small{display:block;margin-top:3px;color:#B9C6C0;font-weight:600}
.tops-rc3-sections a.is-on{background:#1D4ED8;border-color:#FACC15;color:#fff!important}
.tops-rc3-sections a.is-on small{color:#DBEAFE}
.tops-rc3-plan h3{margin:0 0 6px}
.tops-rc3-plan-why{margin:0 0 12px;color:#475569;font-size:14px}
.tops-rc3-plan-line{margin:0 0 14px}
.tops-rc3-plan-line h4{margin:0 0 8px;font:800 15px/1.3 Inter,system-ui,sans-serif;color:#14213D}
.tops-rc3-steps{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.tops-rc3-steps li{display:flex;gap:12px;align-items:flex-start;padding:12px;border-radius:12px;border:2px solid #E2E8F0;background:#fff}
.tops-rc3-steps li>div{flex:1;min-width:0}
.tops-rc3-steps em{display:block;font:800 11px/1.2 Inter,system-ui,sans-serif;letter-spacing:.06em;text-transform:uppercase;font-style:normal;color:#64748B}
.tops-rc3-steps b{display:block;font-size:16px;color:#14213D}
.tops-rc3-steps small{display:block;color:#64748B}
.tops-rc3-steps p{margin:4px 0 0;font-size:14px;color:#334155}
.tops-rc3-stepno{flex:0 0 32px;height:32px;border-radius:50%;display:grid;place-items:center;font:800 15px/1 Inter,system-ui,sans-serif;background:#0A0A0A;color:#fff}
.tops-rc3-steps li.is-root{border-color:#DC2626;background:#FEF2F2}
.tops-rc3-steps li.is-root .tops-rc3-stepno{background:#EF4444;color:#fff}
.tops-rc3-steps li.is-root em{color:#B91C1C}
.tops-rc3-steps li.is-check .tops-rc3-stepno{background:#1D4ED8}
.tops-rc3-steps li.is-check em{color:#1D4ED8}
@media (max-width:600px){.tops-rc3-sections{grid-template-columns:1fr}.tops-rc3-steps li{flex-wrap:wrap}}
/* report card full width */
.tops-rc3.tops-rc3-wide{max-width:none;box-sizing:border-box}
@media (min-width:900px){.tops-rc3-wide .tops-rc3-topics{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:8px}.tops-rc3-wide .tops-rc3-steps{grid-template-columns:repeat(auto-fill,minmax(420px,1fr))}}
/* website theme switch on My Account */
.tops-theme-pick{display:flex;gap:10px;flex-wrap:wrap;margin-top:8px}
.tops-theme-pick button{flex:1 1 160px;display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:14px;border:2px solid #DDE3EE;background:#fff;color:#14213D;cursor:pointer;text-align:left;font:inherit}
.tops-theme-pick button b{display:block;font-size:16px}.tops-theme-pick button small{display:block;opacity:.7;margin-left:auto}
.tops-theme-pick button.is-on{border-color:#1D4ED8;box-shadow:0 0 0 3px rgba(29,78,216,.25)}
.tops-theme-pick.is-busy{opacity:.6;pointer-events:none}
.tt-sw{flex:0 0 34px;height:34px;border-radius:10px;border:2px solid #9CA3AF}.tt-dark{background:linear-gradient(135deg,#0B1210 50%,#1D4ED8 50%)}.tt-light{background:linear-gradient(135deg,#ffffff 50%,#2147D6 50%)}

/* ===== Status colours, professional style (overrides the bright solid fills above) =====
   Cards stay neutral; the status shows as a 4px coloured edge, a light tint and a small dot.
   not enrolled / not started = slate, enrolled / in progress = blue, mastered = green, weak = red. */
:root{--tops-s-new:#8A93A6;--tops-s-going:#3563D6;--tops-s-mastered:#1F8A5B;--tops-s-weak:#C8423A;--tops-s-due:#B7861F;--tops-s-surface:#FFFFFF;--tops-s-ink:#14213D;--tops-s-mute:#5B6478;--tops-s-line:#DDE3EE}
html.tops-dark:root{--tops-s-new:#5C667A;--tops-s-going:#6C9CFF;--tops-s-mastered:#3FB37F;--tops-s-weak:#EF6B63;--tops-s-due:#D4A646;--tops-s-surface:#151B26;--tops-s-ink:#E6E9F0;--tops-s-mute:#9AA3B5;--tops-s-line:#2A3242}
html:is(.tops-dark,:not(.tops-dark)) body .st-new,html:is(.tops-dark,:not(.tops-dark)) body .tops-st-not_attempted{--s:var(--tops-s-new)}
html:is(.tops-dark,:not(.tops-dark)) body .st-going,html:is(.tops-dark,:not(.tops-dark)) body .tops-st-in_progress,html:is(.tops-dark,:not(.tops-dark)) body .is-wait{--s:var(--tops-s-going)}
html:is(.tops-dark,:not(.tops-dark)) body .st-mastered,html:is(.tops-dark,:not(.tops-dark)) body .tops-st-mastered,html:is(.tops-dark,:not(.tops-dark)) body .is-strong,html:is(.tops-dark,:not(.tops-dark)) body .is-good,html:is(.tops-dark,:not(.tops-dark)) body .is-ok{--s:var(--tops-s-mastered)}
html:is(.tops-dark,:not(.tops-dark)) body .st-weak,html:is(.tops-dark,:not(.tops-dark)) body .tops-st-needs_revision,html:is(.tops-dark,:not(.tops-dark)) body .is-weak,html:is(.tops-dark,:not(.tops-dark)) body .tops-course-weak{--s:var(--tops-s-weak)}
html:is(.tops-dark,:not(.tops-dark)) body .st-moderate,html:is(.tops-dark,:not(.tops-dark)) body .tops-st-moderate,html:is(.tops-dark,:not(.tops-dark)) body .is-moderate{--s:var(--tops-s-moderate)}
html:is(.tops-dark,:not(.tops-dark)) body .st-strong,html:is(.tops-dark,:not(.tops-dark)) body .tops-st-strong,html:is(.tops-dark,:not(.tops-dark)) body .is-strong{--s:var(--tops-s-strong)}

/* course map cards */
html:is(.tops-dark,:not(.tops-dark)) body .tops-cmap .cm-item.cm-item{background:color-mix(in srgb,var(--s,transparent) 11%,var(--tops-s-surface))!important;border:1px solid color-mix(in srgb,var(--s,var(--tops-s-line)) 32%,var(--tops-s-line))!important;border-left:4px solid var(--s,var(--tops-s-new))!important;color:var(--tops-s-ink)!important}
html:is(.tops-dark,:not(.tops-dark)) body .tops-cmap .cm-item.cm-item.st-new{background:var(--tops-s-surface)!important;border-color:var(--tops-s-line)!important;border-left-color:var(--tops-s-new)!important}
html:is(.tops-dark,:not(.tops-dark)) body .tops-cmap .cm-item.cm-item b{color:var(--tops-s-ink)!important}
html:is(.tops-dark,:not(.tops-dark)) body .tops-cmap .cm-item.cm-item small{color:var(--tops-s-mute)!important;opacity:1!important}
html:is(.tops-dark,:not(.tops-dark)) body .tops-cmap .cm-item.cm-item .cm-k{color:var(--c)!important;opacity:1!important}
html:is(.tops-dark,:not(.tops-dark)) body .tops-cmap .cm-item.cm-item:before{background:var(--tops-s-surface)!important}
html:is(.tops-dark,:not(.tops-dark)) body .tops-cmap .cm-item.cm-item .cm-bar{background:color-mix(in srgb,var(--tops-s-ink) 10%,transparent)!important}
html:is(.tops-dark,:not(.tops-dark)) body .tops-cmap .cm-item.cm-item .cm-bar i{background:var(--s,var(--tops-s-going))!important}
html:is(.tops-dark,:not(.tops-dark)) body .tops-cmap :is(.cm-key,.cm-legend) [class*="st-"] i{width:10px!important;height:10px!important;border-radius:50%!important;background:var(--s)!important;border:0!important;vertical-align:0!important}
html:is(.tops-dark,:not(.tops-dark)) body .tops-cmap :is(.cm-key,.cm-legend) small{color:inherit!important}

/* topic / chapter map */
html:is(.tops-dark,:not(.tops-dark)) body .tops-map :is(.tm-leaf,.tm-node.is-course,.tm-node.is-chapter,.tm-node)[class*="st-"]{background:color-mix(in srgb,var(--s) 12%,var(--tops-s-surface))!important;border-color:color-mix(in srgb,var(--s) 45%,var(--tops-s-line))!important;color:var(--tops-s-ink)!important}
html:is(.tops-dark,:not(.tops-dark)) body .tops-map :is(.tm-leaf,.tm-node)[class*="st-"].st-new{background:var(--tops-s-surface)!important;border-color:var(--tops-s-line)!important}
html:is(.tops-dark,:not(.tops-dark)) body .tops-map .tm-leaf[class*="st-"] *{color:inherit!important}
html:is(.tops-dark,:not(.tops-dark)) body .tops-map .tm-node[class*="st-"] *:not(.tm-actions *){color:var(--tops-s-ink)!important}
html:is(.tops-dark,:not(.tops-dark)) body .tops-map .tm-leaf[class*="st-"]:before{background:var(--s)!important}
html:is(.tops-dark,:not(.tops-dark)) body .tm-legend [class*="st-"]:before{background:var(--s)!important;box-shadow:none!important}

/* course grid chips */
html:is(.tops-dark,:not(.tops-dark)) body .tops-grid .tg-chip[class*="st-"]{background:color-mix(in srgb,var(--s) 10%,var(--tops-s-surface))!important;border-color:color-mix(in srgb,var(--s) 35%,var(--tops-s-line))!important;border-left:4px solid var(--s)!important;color:var(--tops-s-ink)!important}
html:is(.tops-dark,:not(.tops-dark)) body .tops-grid .tg-chip[class*="st-"].st-new{background:var(--tops-s-surface)!important}
html:is(.tops-dark,:not(.tops-dark)) body .tops-grid .tg-chip[class*="st-"] *{color:inherit!important}

/* report card, My Learning */
html:is(.tops-dark,:not(.tops-dark)) body .tops-rc-rows li:is(.is-weak,.is-strong){background:color-mix(in srgb,var(--s) 9%,var(--tops-s-surface))!important;border-color:color-mix(in srgb,var(--s) 30%,var(--tops-s-line))!important;box-shadow:inset 4px 0 0 var(--s)!important;color:var(--tops-s-ink)!important}
html:is(.tops-dark,:not(.tops-dark)) body .tops-rc-rows li:is(.is-moderate,.is-strong){background:color-mix(in srgb,var(--s) 9%,var(--tops-s-surface))!important;border-color:color-mix(in srgb,var(--s) 30%,var(--tops-s-line))!important;box-shadow:inset 4px 0 0 var(--s)!important;color:var(--tops-s-ink)!important}
html:is(.tops-dark,:not(.tops-dark)) body .tops-rc-rows li:is(.is-strong,.is-strong){background:color-mix(in srgb,var(--s) 9%,var(--tops-s-surface))!important;border-color:color-mix(in srgb,var(--s) 30%,var(--tops-s-line))!important;box-shadow:inset 4px 0 0 var(--s)!important;color:var(--tops-s-ink)!important}
html:is(.tops-dark,:not(.tops-dark)) body .tops-rc-rows li:is(.is-weak,.is-strong) *{color:inherit}
html:is(.tops-dark,:not(.tops-dark)) body .tops-rc-rows li:is(.is-moderate,.is-strong) *{color:inherit}
html:is(.tops-dark,:not(.tops-dark)) body .tops-rc-rows li:is(.is-strong,.is-strong) *{color:inherit}
html:is(.tops-dark,:not(.tops-dark)) body .tops-rc-ch:is(.is-weak,.is-strong) .tops-rc-state,html:is(.tops-dark,:not(.tops-dark)) body .tops-rc3-ch:is(.is-weak,.is-strong) .tops-rc3-pill,html:is(.tops-dark,:not(.tops-dark)) body :is(.tops-result-badge,.tops-att-res):is(.is-good,.is-ok,.is-weak,.is-wait){background:color-mix(in srgb,var(--s) 15%,transparent)!important;color:var(--s)!important;border:1px solid color-mix(in srgb,var(--s) 40%,transparent)!important}
html:is(.tops-dark,:not(.tops-dark)) body .tops-rc-ch:is(.is-moderate,.is-strong) .tops-rc-state,html:is(.tops-dark,:not(.tops-dark)) body .tops-rc3-ch:is(.is-moderate,.is-strong) .tops-rc3-pill,html:is(.tops-dark,:not(.tops-dark)) body :is(.tops-result-badge,.tops-att-res):is(.is-good,.is-ok,.is-moderate,.is-wait){background:color-mix(in srgb,var(--s) 15%,transparent)!important;color:var(--s)!important;border:1px solid color-mix(in srgb,var(--s) 40%,transparent)!important}
html:is(.tops-dark,:not(.tops-dark)) body .tops-rc-ch:is(.is-strong,.is-strong) .tops-rc-state,html:is(.tops-dark,:not(.tops-dark)) body .tops-rc3-ch:is(.is-strong,.is-strong) .tops-rc3-pill,html:is(.tops-dark,:not(.tops-dark)) body :is(.tops-result-badge,.tops-att-res):is(.is-good,.is-ok,.is-strong,.is-wait){background:color-mix(in srgb,var(--s) 15%,transparent)!important;color:var(--s)!important;border:1px solid color-mix(in srgb,var(--s) 40%,transparent)!important}
html:is(.tops-dark,:not(.tops-dark)) body .tops-rc3-ch.is-weak .tops-rc3-bar span{background:var(--s)!important}
html:is(.tops-dark,:not(.tops-dark)) body .tops-rc3-ch.is-moderate .tops-rc3-bar span{background:var(--s)!important}
html:is(.tops-dark,:not(.tops-dark)) body .tops-rc3-ch.is-strong .tops-rc3-bar span{background:var(--s)!important}
html:is(.tops-dark,:not(.tops-dark)) body .tops-rc3-ch.is-weak{border-color:color-mix(in srgb,var(--s) 35%,var(--tops-s-line))!important}
html:is(.tops-dark,:not(.tops-dark)) body .tops-rc3-ch.is-moderate{border-color:color-mix(in srgb,var(--s) 35%,var(--tops-s-line))!important}
html:is(.tops-dark,:not(.tops-dark)) body .tops-rc3-ch.is-strong{border-color:color-mix(in srgb,var(--s) 35%,var(--tops-s-line))!important}
html:is(.tops-dark,:not(.tops-dark)) body :is(.tops-rc-split,.tops-rc3-split) .is-m,html:is(.tops-dark,:not(.tops-dark)) body :is(.tops-rc-legend,.tops-rc3-legend) .is-m:before{background:var(--tops-s-mastered)!important}
html:is(.tops-dark,:not(.tops-dark)) body :is(.tops-rc-split,.tops-rc3-split) .is-w,html:is(.tops-dark,:not(.tops-dark)) body :is(.tops-rc-legend,.tops-rc3-legend) .is-w:before{background:var(--tops-s-weak)!important}
html:is(.tops-dark,:not(.tops-dark)) body :is(.tops-rc-split,.tops-rc3-split) .is-a,html:is(.tops-dark,:not(.tops-dark)) body :is(.tops-rc-legend,.tops-rc3-legend) .is-a:before{background:var(--tops-s-due)!important}
html:is(.tops-dark,:not(.tops-dark)) body :is(.tops-rc-split,.tops-rc3-split) .is-n,html:is(.tops-dark,:not(.tops-dark)) body :is(.tops-rc-legend,.tops-rc3-legend) .is-n:before{background:var(--tops-s-new)!important}
html:is(.tops-dark,:not(.tops-dark)) body .tops-rc3-topics li.is-mastered i{background:var(--tops-s-mastered)!important}
html:is(.tops-dark,:not(.tops-dark)) body .tops-rc3-topics li.is-needs_revision i{background:var(--tops-s-weak)!important}
html:is(.tops-dark,:not(.tops-dark)) body .tops-rc3-topics li.is-moderate i{background:var(--tops-s-moderate)!important}
html:is(.tops-dark,:not(.tops-dark)) body .tops-rc3-topics li.is-strong i{background:var(--tops-s-strong)!important}
html:is(.tops-dark,:not(.tops-dark)) body .tops-rc3-topics li.is-needs_revision small{color:var(--tops-s-weak)!important}
html:is(.tops-dark,:not(.tops-dark)) body .tops-rc3-topics li.is-moderate small{color:var(--tops-s-moderate)!important}
html:is(.tops-dark,:not(.tops-dark)) body .tops-rc3-topics li.is-strong small{color:var(--tops-s-strong)!important}
html:is(.tops-dark,:not(.tops-dark)) body .tops-ml2-weak{background:color-mix(in srgb,var(--tops-s-weak) 16%,var(--tops-s-surface))!important;color:var(--tops-s-weak)!important;border:1px solid color-mix(in srgb,var(--tops-s-weak) 40%,transparent)!important}
html:is(.tops-dark,:not(.tops-dark)) body .tops-course.tops-course-weak{background:color-mix(in srgb,var(--s) 7%,var(--tops-s-surface))!important;border-color:color-mix(in srgb,var(--s) 35%,var(--tops-s-line))!important}
html:is(.tops-dark,:not(.tops-dark)) body .tops-course-weak .tops-subj-tag{background:transparent!important}

/* course player topic list (always dark) */
html:is(.tops-dark,:not(.tops-dark)) body .course_status .course_timeline li.tops-st-not_attempted{--s:#5C667A}
html:is(.tops-dark,:not(.tops-dark)) body .course_status .course_timeline li.tops-st-in_progress{--s:#6C9CFF}
html:is(.tops-dark,:not(.tops-dark)) body .course_status .course_timeline li.tops-st-mastered{--s:#3FB37F}
html:is(.tops-dark,:not(.tops-dark)) body .course_status .course_timeline li.tops-st-needs_revision{--s:#EF6B63}
html:is(.tops-dark,:not(.tops-dark)) body .course_status .course_timeline li.tops-st-moderate{--s:var(--tops-s-moderate)}
html:is(.tops-dark,:not(.tops-dark)) body .course_status .course_timeline li.tops-st-strong{--s:var(--tops-s-strong)}
html:is(.tops-dark,:not(.tops-dark)) body .course_status .course_timeline li[class]:is(.tops-st-in_progress,.tops-st-mastered,.tops-st-needs_revision){background:color-mix(in srgb,var(--s) 12%,#0E1424)!important;box-shadow:inset 4px 0 0 var(--s)!important}
html:is(.tops-dark,:not(.tops-dark)) body .course_status .course_timeline li[class]:is(.tops-st-in_progress,.tops-st-mastered,.tops-st-moderate){background:color-mix(in srgb,var(--s) 12%,#0E1424)!important;box-shadow:inset 4px 0 0 var(--s)!important}
html:is(.tops-dark,:not(.tops-dark)) body .course_status .course_timeline li[class]:is(.tops-st-in_progress,.tops-st-mastered,.tops-st-strong){background:color-mix(in srgb,var(--s) 12%,#0E1424)!important;box-shadow:inset 4px 0 0 var(--s)!important}
html:is(.tops-dark,:not(.tops-dark)) body .course_status .course_timeline li[class].tops-st-not_attempted{box-shadow:inset 4px 0 0 var(--s)!important}
html:is(.tops-dark,:not(.tops-dark)) body .course_status .course_timeline li[class]:is(.tops-st-in_progress,.tops-st-mastered,.tops-st-needs_revision) *{color:#E6E9F0!important}
html:is(.tops-dark,:not(.tops-dark)) body .course_status .course_timeline li[class]:is(.tops-st-in_progress,.tops-st-mastered,.tops-st-moderate) *{color:#E6E9F0!important}
html:is(.tops-dark,:not(.tops-dark)) body .course_status .course_timeline li[class]:is(.tops-st-in_progress,.tops-st-mastered,.tops-st-strong) *{color:#E6E9F0!important}
html:is(.tops-dark,:not(.tops-dark)) body .course_status .course_timeline li[class]:is(.tops-st-in_progress,.tops-st-mastered,.tops-st-needs_revision) .lesson_duration,html:is(.tops-dark,:not(.tops-dark)) body .course_status .course_timeline li[class]:is(.tops-st-in_progress,.tops-st-mastered,.tops-st-needs_revision) .lesson_duration *{color:#9AA3B5!important}
html:is(.tops-dark,:not(.tops-dark)) body .course_status .course_timeline li[class]:is(.tops-st-in_progress,.tops-st-mastered,.tops-st-moderate) .lesson_duration,html:is(.tops-dark,:not(.tops-dark)) body .course_status .course_timeline li[class]:is(.tops-st-in_progress,.tops-st-mastered,.tops-st-moderate) .lesson_duration *{color:#9AA3B5!important}
html:is(.tops-dark,:not(.tops-dark)) body .course_status .course_timeline li[class]:is(.tops-st-in_progress,.tops-st-mastered,.tops-st-strong) .lesson_duration,html:is(.tops-dark,:not(.tops-dark)) body .course_status .course_timeline li[class]:is(.tops-st-in_progress,.tops-st-mastered,.tops-st-strong) .lesson_duration *{color:#9AA3B5!important}
html:is(.tops-dark,:not(.tops-dark)) body .course_status .course_timeline li[class].active:is(.tops-st-in_progress,.tops-st-mastered,.tops-st-needs_revision,.tops-st-not_attempted){outline:1px solid #FFD84D;outline-offset:-1px}
html:is(.tops-dark,:not(.tops-dark)) body .course_status .course_timeline li[class].active:is(.tops-st-in_progress,.tops-st-mastered,.tops-st-moderate,.tops-st-not_attempted){outline:1px solid #FFD84D;outline-offset:-1px}
html:is(.tops-dark,:not(.tops-dark)) body .course_status .course_timeline li[class].active:is(.tops-st-in_progress,.tops-st-mastered,.tops-st-strong,.tops-st-not_attempted){outline:1px solid #FFD84D;outline-offset:-1px}