
:root{--bg:#eef1f5;--paper:#fff;--ink:#18212b;--muted:#66717f;--line:#d9dee5;--soft:#f5f7fa;--accent:#1f5f99;--accent2:#0f766e;--warn:#8a5a00;--danger:#a33a3a;--ok:#1f7a4c;--shadow:0 16px 42px rgba(24,33,43,.10)}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Hiragino Sans","Yu Gothic UI","Yu Gothic",Meiryo,sans-serif;line-height:1.72}
a{color:var(--accent)}
.topbar{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.94);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.topbar-inner{max-width:1180px;margin:auto;padding:10px 16px;display:flex;gap:12px;align-items:center;justify-content:space-between}
.brand{font-weight:800;font-size:14px}.brand small{display:block;font-weight:600;color:var(--muted);font-size:11px}
.navbtn{border:1px solid var(--line);background:white;border-radius:10px;padding:8px 10px;font-size:12px;cursor:pointer}
.layout{max-width:1180px;margin:18px auto 64px;display:grid;grid-template-columns:220px minmax(0,1fr);gap:18px;padding:0 16px}
.toc{position:sticky;top:74px;align-self:start;background:#fff;border:1px solid var(--line);border-radius:16px;padding:14px;max-height:calc(100vh - 94px);overflow:auto}
.toc h2{font-size:13px;margin:0 0 10px}.toc summary{font-size:13px;font-weight:800;cursor:pointer;list-style:none}.toc summary::-webkit-details-marker{display:none}.toc summary::after{content:"−";float:right;color:var(--muted)}.toc details:not([open]) summary::after{content:"＋"}.toc a{display:block;text-decoration:none;color:#3b4754;padding:7px 8px;border-radius:8px;font-size:12px}.toc a:hover{background:var(--soft)}
.page{width:min(100%,182mm);min-height:257mm;margin:0 auto 22px;background:var(--paper);border:1px solid #e2e6eb;border-radius:8px;box-shadow:var(--shadow);padding:17mm 15mm 16mm;position:relative;overflow:hidden}
.page::after{content:attr(data-page);position:absolute;right:12mm;bottom:7mm;font-size:10px;color:#8a949f}
.kicker{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:8px}.badge{font-size:10px;font-weight:800;border-radius:999px;padding:4px 8px;background:#eaf2f9;color:#174c79}.badge.red{background:#fbecec;color:#913838}.badge.yellow{background:#fff3d6;color:#815900}.badge.blue{background:#eaf2ff;color:#2e5f9d}.badge.gray{background:#f0f2f4;color:#58616b}
h1{font-size:27px;line-height:1.25;margin:4px 0 8px;letter-spacing:-.02em}h2{font-size:19px;line-height:1.35;margin:26px 0 10px;border-left:5px solid var(--accent);padding-left:10px}h3{font-size:15px;margin:20px 0 8px}p{margin:8px 0}.lead{font-size:15px;color:#34404c}.muted{color:var(--muted)}
.goal{border:1px solid #cfe0ef;background:#f4f9fd;border-radius:14px;padding:12px 14px;margin:14px 0 20px}.goal b{color:#174c79}
.official{border:1px solid var(--line);background:#fbfcfd;border-radius:12px;padding:10px 12px;margin:12px 0;font-size:12px}.official strong{color:#334155}
.diagram{background:#111827;color:#f8fafc;border-radius:14px;padding:16px;margin:14px 0;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;line-height:1.7;white-space:pre-wrap;overflow:auto}.diagram.light{background:#f6f8fa;color:#23313e;border:1px solid var(--line)}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.card{border:1px solid var(--line);border-radius:13px;padding:12px;background:#fff}.card h3{margin:0 0 5px;font-size:14px}.card p{font-size:12px;margin:4px 0}.card.key{background:#f7fbff;border-color:#cddfed}.card.warn{background:#fff9ed;border-color:#edd9ac}.card.ok{background:#f3fbf6;border-color:#cce7d5}
.table-wrap{overflow:auto;margin:12px 0}table{width:100%;border-collapse:collapse;font-size:12px}th,td{border:1px solid var(--line);padding:8px 9px;text-align:left;vertical-align:top}th{background:#f3f5f7;font-weight:800}
code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#f2f4f6;border-radius:5px;padding:.08em .35em;font-size:.92em}.code{background:#0e1726;color:#e8edf5;border-radius:13px;padding:13px 14px;margin:10px 0;overflow:auto;font:12px/1.65 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;white-space:pre}.code .c{color:#9eb0c5}.callout{border-left:4px solid var(--accent2);background:#f1faf8;padding:10px 12px;margin:12px 0;border-radius:0 10px 10px 0;font-size:12px}.callout.warn{border-left-color:#d09524;background:#fff9eb}.callout.danger{border-left-color:#bf4b4b;background:#fff4f4}
.judge{border:2px solid #1f5f99;border-radius:14px;padding:13px 14px;margin-top:18px;background:#f8fbfe}.judge h3{margin:0 0 8px;color:#174c79}.judge ul{margin:5px 0 0 1.2em;padding:0;font-size:12px}
.check{display:grid;grid-template-columns:1fr auto;gap:8px;border-bottom:1px dashed var(--line);padding:7px 0;font-size:12px}.check:last-child{border-bottom:0}.tick{font-weight:800;color:var(--ok)}
.small{font-size:11px}.source-note{font-size:10px;color:#7a8592;margin-top:16px;padding-top:10px;border-top:1px solid var(--line)}
.hero{background:linear-gradient(145deg,#11283d,#183d5c);color:white}.hero h1{font-size:32px}.hero .lead{color:#d8e5ef}.hero .goal{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.22)}.hero .goal b{color:#fff}.hero .badge{background:rgba(255,255,255,.12);color:#fff}.hero .card{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.18);color:#fff}.hero .muted{color:#d6e0e8}.flow{display:flex;gap:8px;align-items:stretch;flex-wrap:wrap;margin:12px 0}.step{flex:1 1 120px;border:1px solid var(--line);border-radius:12px;padding:10px;text-align:center;background:#fff;font-size:12px}.step b{display:block;color:var(--accent);font-size:13px}.arrow{align-self:center;color:#7a8592;font-weight:800}
@media(max-width:860px){.layout{display:block;padding:0 8px;margin-top:10px}.toc{position:relative;top:auto;margin:0 0 10px;max-height:none}.toc details{display:block}.page{width:100%;min-height:auto;border-radius:14px;padding:22px 16px 36px;margin-bottom:12px;box-shadow:0 8px 24px rgba(24,33,43,.08)}.page::after{right:16px;bottom:10px}.grid2,.grid3{grid-template-columns:1fr}.topbar-inner{padding:8px 10px}h1{font-size:24px}.hero h1{font-size:28px}.diagram,.code{font-size:11px}.flow{display:grid;grid-template-columns:1fr}.arrow{display:none}}
@media print{body{background:white}.topbar,.toc{display:none}.layout{display:block;margin:0;padding:0}.page{box-shadow:none;border:0;border-radius:0;width:182mm;height:auto;min-height:257mm;overflow:visible;page-break-after:always;margin:0;padding:15mm 14mm}.page:last-child{page-break-after:auto}}


/* ===== Readability redesign v2 ===== */
:root{
  --bg:#f3f5f7;--paper:#ffffff;--ink:#1d2732;--muted:#6d7782;--line:#e2e7ec;
  --soft:#f7f9fb;--accent:#2f6fa5;--accent-soft:#eef6fc;--teal:#2f776f;
  --warn-bg:#fff9e8;--warn-line:#e9cf83;--shadow:0 10px 28px rgba(28,39,50,.07)
}
body{background:var(--bg);line-height:1.78;font-size:15px;letter-spacing:.005em}
.topbar{background:rgba(255,255,255,.97);box-shadow:0 1px 0 rgba(20,30,40,.03)}
.topbar-inner{max-width:1210px;padding:9px 18px}.brand{font-size:13px}.brand small{font-size:10px;margin-top:1px}
.navbtn{border-color:#dfe4ea;border-radius:999px;padding:7px 11px;background:#fff;color:#35414c}
.layout{max-width:1210px;grid-template-columns:205px minmax(0,1fr);gap:28px;margin-top:22px}
.toc{top:68px;border-color:#e1e6eb;border-radius:12px;padding:12px;background:rgba(255,255,255,.96);box-shadow:0 5px 18px rgba(28,39,50,.04)}
.toc summary{font-size:12px;color:#29343f;padding:2px 2px 7px;border-bottom:1px solid #edf0f3}
.toc a{font-size:11.5px;padding:6px 7px;margin-top:2px;color:#52606d}.toc a:hover{background:#f1f6fa;color:#245f8d}
.page{width:min(100%,190mm);min-height:257mm;border:1px solid #e7ebef;border-radius:12px;box-shadow:var(--shadow);padding:13mm 14mm 15mm;margin-bottom:20px;overflow:hidden}
.page::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:#dbe9f4}.page::after{right:9mm;bottom:6mm;color:#a0a7ae}
.kicker{gap:6px;margin-bottom:7px}.badge{font-size:9.5px;padding:3px 7px;background:#edf4f9;color:#315e7e;border:1px solid #dceaf4}
.badge.red{background:#fff1f1;border-color:#f2d9d9;color:#8c3f3f}.badge.yellow{background:#fff8e8;border-color:#f1e0b5;color:#7b611e}.badge.blue{background:#eef5ff;border-color:#d8e6f8;color:#355f90}.badge.gray{background:#f4f5f6;border-color:#e5e7ea;color:#606a73}
h1{font-size:24px;line-height:1.36;margin:6px 0 9px;letter-spacing:-.018em;color:#19232d}
h2{font-size:17px;line-height:1.45;margin:25px 0 9px;border-left:0;padding-left:0;color:#25313c;display:flex;align-items:center;gap:8px}
h2::before{content:"";display:inline-block;width:4px;height:1.2em;border-radius:4px;background:#6fa8d2;flex:0 0 auto}
h3{font-size:14px;color:#2a3641}.lead{font-size:14px;line-height:1.82;color:#4c5965;margin-top:8px}
p{margin:7px 0}.muted{color:#77818b}
.official{border:0;border-left:3px solid #c9d7e2;background:#f8fafb;border-radius:4px 10px 10px 4px;padding:8px 11px;margin:10px 0 9px;font-size:11.5px;color:#5e6a75}.official strong{color:#4a5864}
.goal{border:0;border-left:4px solid #4d8fbd;background:var(--accent-soft);border-radius:5px 12px 12px 5px;padding:11px 13px;margin:10px 0 18px;font-size:13.5px}.goal b{color:#255f89}
.diagram,.diagram.light{background:#f7f9fb;color:#263441;border:1px solid #e0e6eb;border-radius:10px;padding:13px 14px;margin:11px 0;font-size:11.5px;line-height:1.72;box-shadow:inset 0 1px 0 #fff}
.code{background:#15202c;color:#eef4f8;border-radius:10px;padding:12px 13px;margin:9px 0;font-size:11.5px;line-height:1.7;border:1px solid #223242}.code .c{color:#aebdca}
.grid2{gap:10px}.grid3{gap:9px}.card{border:0;border-radius:10px;padding:11px 12px;background:#f7f9fb}.card h3{font-size:13px}.card p{font-size:11.5px;line-height:1.65}.card.key{background:#f1f7fb}.card.warn{background:#fff8e9}.card.ok{background:#f1f8f4}
.table-wrap{margin:10px 0;border:1px solid #e1e6eb;border-radius:10px;overflow:auto}table{font-size:11.5px}th,td{border:0;border-bottom:1px solid #e8ecef;padding:8px 9px}tr:last-child td{border-bottom:0}th{background:#f5f7f9;color:#43505c}tbody tr:nth-child(even), table tr:nth-child(even) td{background:#fbfcfd}
.callout{border-left:3px solid #5d9c93;background:#f2f8f7;padding:9px 11px;margin:11px 0;border-radius:4px 9px 9px 4px;font-size:11.5px}.callout.warn{border-left-color:#d1a54b;background:#fff9ec}.callout.danger{border-left-color:#c76464;background:#fff5f5}
.judge{border:1px solid var(--warn-line);border-left:4px solid #d1a846;border-radius:6px 11px 11px 6px;padding:11px 12px;margin-top:16px;background:var(--warn-bg)}.judge h3{margin:0 0 6px;color:#725a1f;font-size:13.5px}.judge ul{font-size:11.5px;line-height:1.7;margin-top:4px}.judge li+li{margin-top:3px}
.check{font-size:11.5px;padding:6px 0}.tick{color:#287350}.source-note{font-size:9.5px;color:#8b949d}
.flow{gap:5px}.step{border:0;background:#f4f7f9;border-radius:9px;padding:9px;font-size:11px}.step b{font-size:12px;color:#336f9d}.arrow{color:#9ba7b1}
/* Hero becomes an overview sheet, not a dark cover */
.hero{background:linear-gradient(180deg,#fbfdff 0,#fff 38%);color:var(--ink);border-top:5px solid #4a87b3}
.hero::before{background:transparent}.hero h1{font-size:29px;color:#172430;max-width:620px}.hero .lead{color:#4c5d6b;font-size:14.5px;max-width:650px}.hero .goal{background:#eef6fc;border-left-color:#4a87b3}.hero .goal b{color:#245f89}.hero .badge{background:#edf4f9;color:#315e7e;border-color:#dceaf4}.hero .card{background:#f6f8fa;border:0;color:#263441}.hero .muted{color:#6d7882}.hero .diagram{background:#f4f8fb;color:#263441;border-color:#dfe8ef}.hero .callout{background:#f3f8fb;border-left-color:#6fa8d2;color:#465765}.hero .source-note{color:#7c8791;border-top-color:#e6eaee}
.hero h2{color:#263441}.hero h2::before{background:#6fa8d2}
@media(max-width:860px){
  body{background:#fff;font-size:15px}.topbar-inner{padding:8px 12px}.brand{font-size:12px}.brand small{max-width:245px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .layout{padding:0;margin:0}.toc{margin:8px 12px 6px;border-radius:10px;box-shadow:none;background:#f8fafb}.toc summary{border-bottom:0;padding-bottom:2px}
  .page{width:100%;min-height:auto;border:0;border-radius:0;box-shadow:none;padding:27px 18px 36px;margin:0;border-bottom:9px solid #f1f3f5}.page::before{width:0}.page::after{right:18px;bottom:12px}
  h1{font-size:22px;line-height:1.42;margin-top:5px}h2{font-size:16px;margin-top:23px}.hero{border-top:4px solid #4a87b3}.hero h1{font-size:25px}.hero .lead{font-size:14px}
  .goal{font-size:13px;padding:10px 11px}.official{font-size:11px}.diagram,.code{font-size:11px;padding:12px}.grid2,.grid3{grid-template-columns:1fr}.card{padding:10px 11px}.table-wrap{border-radius:8px}
  .judge{margin-top:14px}.flow{display:grid;grid-template-columns:1fr 22px 1fr;align-items:center}.flow .arrow{display:block;text-align:center}.flow .step{min-width:0}.flow .arrow:nth-of-type(4),.flow .arrow:nth-of-type(8){display:none}
}
@media print{.page{width:182mm;border:0;border-radius:0;box-shadow:none;padding:14mm 14mm 15mm}.page::before{display:none}}


/* ===== Visual-first redesign v3 ===== */
:root{
 --v3-bg:#f5f6f7; --v3-paper:#fff; --v3-ink:#17212b; --v3-muted:#66727e;
 --v3-blue:#356f9e; --v3-blue2:#eaf3fa; --v3-line:#e6eaee; --v3-yellow:#fff7dc;
 --v3-code:#19232f; --v3-green:#247568;
}
body{background:var(--v3-bg);color:var(--v3-ink);font-size:15px;line-height:1.76}
.layout{max-width:1240px;grid-template-columns:190px minmax(0,1fr);gap:34px}
.toc{border:0;box-shadow:none;background:transparent;padding:6px 0}.toc summary{border:0;font-size:12px}.toc a{padding:7px 9px;border-radius:7px}
.page{width:min(100%,194mm);padding:12mm 14mm 14mm;border:0;border-radius:12px;box-shadow:0 7px 24px rgba(23,33,43,.055);margin-bottom:24px}
.page::before{display:none}.page::after{font-weight:700;color:#adb4ba}
.page-index{display:flex;justify-content:space-between;gap:12px;align-items:center;padding-bottom:8px;margin-bottom:11px;border-bottom:1px solid var(--v3-line);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:#83909a;font-weight:800}
.kicker{margin:0 0 6px}.badge{font-size:9px;border:0;padding:3px 7px}.badge.red{background:#fff0f0}.badge.yellow{background:#fff5d8}.badge.blue{background:#edf5fd}.badge.gray{background:#f1f3f5}
h1{font-size:25px;line-height:1.34;margin:5px 0 10px;max-width:92%;font-weight:850;letter-spacing:-.025em}
.goal{margin:0 0 7px;padding:9px 12px;border:0;border-radius:9px;background:#eef5fa;font-size:13px;line-height:1.65;box-shadow:inset 3px 0 0 #6fa1c5}.goal b{color:#285d84}
.official{margin:0 0 13px;padding:3px 2px;border:0;background:transparent;color:#7b8791;font-size:10.5px}.official strong{color:#65717c}
.visual-lead{margin:14px 0 22px;padding:0}.visual-label{display:inline-flex;align-items:center;gap:6px;margin:0 0 6px;color:#417399;font-size:10px;font-weight:850;letter-spacing:.03em}.visual-label::before{content:'01';display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#dcecf7;color:#2e6b98;font-size:9px}
.visual-lead .diagram,.visual-lead .diagram.light{margin:0;background:linear-gradient(145deg,#f3f8fc,#fafcfd);border:1px solid #dce8f0;padding:17px 18px;border-radius:14px;font-size:12px;line-height:1.8;box-shadow:none;color:#20313e}
.visual-lead .flow{margin:0}.visual-lead .table-wrap{margin:0;border:1px solid #e1e7ec;border-radius:12px;overflow:auto}
.page{counter-reset:v3section}
h2{counter-increment:v3section;display:grid;grid-template-columns:28px 1fr;align-items:start;gap:8px;font-size:16px;margin:25px 0 10px;padding:0;color:#27343f;border:0}
h2::before{content:counter(v3section,decimal-leading-zero);display:grid;place-items:center;width:27px;height:27px;border-radius:8px;background:#f0f3f5;color:#61707c;font-size:9.5px;font-weight:900;letter-spacing:.03em}
h3{font-size:13.5px;margin-top:18px}
p{color:#34414d}.lead{color:#43515d}
.card{border:0;background:#f7f9fa;border-radius:10px;padding:11px 12px}.card.key{background:#f1f7fb}.card.warn{background:#fff8e7}.card.ok{background:#f0f8f4}
.grid2,.grid3{gap:8px}
.diagram,.diagram.light{background:#f7f9fa;border:0;border-radius:10px;padding:13px 14px;color:#283846;box-shadow:none}
.code{background:var(--v3-code);border:0;border-radius:10px;padding:13px 14px;color:#f0f4f7;box-shadow:none}
.callout{border:0;border-radius:9px;background:#f1f8f6;padding:10px 12px;box-shadow:inset 3px 0 0 #73a99f}.callout.warn{background:#fff9e9;box-shadow:inset 3px 0 0 #d7b45d}.callout.danger{background:#fff2f2;box-shadow:inset 3px 0 0 #d58383}
.table-wrap{border-top:1px solid var(--v3-line);border-bottom:1px solid var(--v3-line);margin:11px 0}table{border-collapse:separate;border-spacing:0}th,td{border:0;border-bottom:1px solid #edf0f2;padding:8px 9px}tr:last-child td{border-bottom:0}th{background:#f7f8f9;color:#4a5864;font-size:11px}
.judge{margin-top:22px;border:0;border-radius:12px;background:var(--v3-yellow);padding:12px 14px;box-shadow:inset 3px 0 0 #d6b450}.judge h3{margin:1px 0 6px;color:#5d4b13;font-size:13.5px}.judge ul{font-size:12px;line-height:1.65}.judge-eyebrow{font-size:8.5px;letter-spacing:.13em;font-weight:900;color:#a1842e;margin-bottom:1px}
.source-note{font-size:9.5px;color:#97a0a7;border-top:0;margin-top:14px}
.route-ribbon{display:flex;gap:5px;overflow-x:auto;padding:10px 0 5px;margin:7px 0 8px;scrollbar-width:none}.route-ribbon::-webkit-scrollbar{display:none}.route-ribbon span{flex:0 0 auto;border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.09);border-radius:999px;padding:5px 9px;font-size:9.5px;color:inherit}.route-ribbon b{display:inline-grid;place-items:center;width:17px;height:17px;border-radius:50%;background:rgba(255,255,255,.16);font-size:8px}
.page-nav{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:25px -2px -3px;padding-top:10px;border-top:1px solid var(--v3-line);font-size:10.5px}.page-nav a{color:#587083;text-decoration:none;font-weight:750}.page-nav span{color:#89949d;font-weight:750}
.hero{background:#fff;color:var(--v3-ink)}.hero h1{color:var(--v3-ink)}.hero .lead{color:#4a5864}.hero .goal{background:#eef5fa;box-shadow:inset 3px 0 0 #6fa1c5;color:#34414d}.hero .goal b{color:#285d84}.hero .diagram{background:linear-gradient(145deg,#f3f8fc,#fafcfd);border:1px solid #dce8f0;color:#20313e}.hero h2{color:#27343f}.hero h2::before{background:#f0f3f5;color:#61707c}.hero .card{background:#f7f9fa;color:#263441}.hero .muted{color:#77818b}.hero .source-note{color:#97a0a7;border-top-color:#e6eaee}.route-ribbon span{border-color:#dbe7f0;background:#f4f8fb;color:#456479}.route-ribbon b{background:#dfedf7;color:#356f9e}
@media(max-width:860px){
 body{background:white;font-size:14.5px}.topbar{box-shadow:0 1px 0 #edf0f2}.layout{padding:0;margin:0}.toc{margin:8px 12px 4px;padding:0 0 7px;border-bottom:1px solid #edf0f2}.page{width:100%;margin:0;padding:20px 16px 38px;border-radius:0;box-shadow:none;border-bottom:8px solid #f4f5f6}.page-index{margin-bottom:9px}.page h1{font-size:22px;max-width:100%;line-height:1.38}.goal{font-size:12.5px}.official{font-size:9.5px;margin-bottom:10px}.visual-lead{margin:11px 0 18px}.visual-lead .diagram,.visual-lead .diagram.light{font-size:10.7px;padding:13px 12px;border-radius:11px;overflow-x:auto}.visual-label{font-size:9.5px}.visual-label::before{width:20px;height:20px}h2{grid-template-columns:25px 1fr;font-size:15px;margin-top:22px}h2::before{width:24px;height:24px;border-radius:7px}.grid2,.grid3{grid-template-columns:1fr}.table-wrap{margin-left:-4px;margin-right:-4px}.judge{margin-top:19px}.page-nav{margin-top:20px}.hero{border-bottom:8px solid #f4f5f6}.route-ribbon{margin-right:-16px;padding-right:16px}
}
@media print{.page-nav{display:none}.page{box-shadow:none;border:0}.visual-label::before{print-color-adjust:exact;-webkit-print-color-adjust:exact}}


.practice{border:1px solid #dfe6ec;border-radius:12px;margin:14px 0;background:#fff;overflow:hidden}
.practice-title{padding:9px 12px;background:#f1f6fa;border-bottom:1px solid #e2e8ee;font-size:11px;font-weight:850;letter-spacing:.04em;color:#315c7c}
.practice-body{padding:12px 13px}
.beforeafter{display:grid;grid-template-columns:1fr 36px 1fr;gap:8px;align-items:center;margin:12px 0}.beforeafter .state{border:1px solid var(--line);background:#fafbfd;border-radius:10px;padding:10px;font-size:11.5px;min-height:82px}.beforeafter .mid{text-align:center;color:#778491;font-weight:900}
.output{background:#f7f9fb;border:1px solid #dfe5eb;border-radius:10px;padding:11px 12px;margin:10px 0;font:11px/1.65 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;white-space:pre-wrap;overflow:auto}.output .mark{font-weight:900;color:#1f5f99}
.reading{border-left:3px solid #7aa8c7;padding:8px 11px;margin:9px 0;background:#f9fbfd;font-size:11.5px}.reading b{color:#295b7f}
.fail{border-left:4px solid #c46868;background:#fff6f6;border-radius:4px 10px 10px 4px;padding:10px 12px;margin:11px 0;font-size:11.5px}.fail b{color:#923f3f}
.lab{border:1px solid #cfe1d7;background:#f5fbf7;border-radius:12px;padding:11px 12px;margin:12px 0;font-size:11.5px}.lab strong{color:#2c6a48}.lab ol{margin:6px 0 0 1.2em;padding:0}.lab li{margin:3px 0}
.depth-note{display:flex;gap:8px;align-items:flex-start;background:#fff9eb;border:1px solid #eedca6;border-radius:10px;padding:9px 11px;margin:10px 0;font-size:11px}.depth-note b{color:#785d17}
.cmd-why{display:grid;grid-template-columns:150px 1fr;gap:0;border:1px solid var(--line);border-radius:10px;overflow:hidden;margin:10px 0;font-size:11.5px}.cmd-why div{padding:8px 10px;border-bottom:1px solid var(--line)}.cmd-why div:nth-last-child(-n+2){border-bottom:0}.cmd-why .what{background:#f5f8fa;font-weight:800;color:#455564}
.miniq{border-top:1px dashed #d7dde3;margin-top:13px;padding-top:10px;font-size:11.5px}.miniq b{color:#2b5f87}
@media(max-width:860px){.beforeafter{grid-template-columns:1fr}.beforeafter .mid{transform:rotate(90deg);height:22px}.cmd-why{grid-template-columns:1fr}.cmd-why .what{border-bottom:0}.practice-body{padding:11px}.output{font-size:10.5px}}


.beginner{border:1px solid #dbe7ef;background:#f7fbfe;border-radius:11px;padding:11px 12px;margin:11px 0;font-size:11.5px}
.beginner strong{color:#285f87}.term-list{display:grid;grid-template-columns:150px 1fr;border:1px solid #e1e7ec;border-radius:10px;overflow:hidden;margin:10px 0;font-size:11.5px}.term-list div{padding:8px 10px;border-bottom:1px solid #e8edf1}.term-list div:nth-last-child(-n+2){border-bottom:0}.term-list .term{background:#f5f8fa;font-weight:850;color:#435666}.whybox{background:#fffaf0;border:1px solid #eddfb4;border-radius:11px;padding:11px 12px;margin:11px 0;font-size:11.5px}.whybox b{color:#765d1e}.remember{background:#f3f8f5;border-radius:10px;padding:9px 11px;margin:10px 0;font-size:11.5px}.remember b{color:#2e6a4f}
@media(max-width:860px){.term-list{grid-template-columns:1fr}.term-list .term{border-bottom:0}}


.toc-summary-note{float:right;font-size:9px;font-weight:800;color:#7c8994;background:#eef2f5;border-radius:999px;padding:2px 7px;margin-right:18px}
.toc-body{margin-top:8px;display:grid;gap:4px}
.toc-group{border:0;border-radius:8px;background:transparent}
.toc-group>summary{display:flex;align-items:center;gap:8px;padding:7px 8px;border:0!important;border-radius:8px;color:#3f4e5a;font-size:11.5px!important;font-weight:800!important}
.toc-group>summary:hover{background:#f1f5f8}
.toc-group>summary::after{content:'＋';margin-left:auto;color:#9aa5ae;font-size:11px}
.toc-group[open]>summary::after{content:'−'}
.toc-group>summary span{display:inline-grid;place-items:center;min-width:22px;height:22px;border-radius:7px;background:#eef4f8;color:#416f91;font-size:9px}
.toc-group>div{padding:0 0 4px 38px}
.toc-group a{font-size:10.5px!important;padding:5px 7px!important;color:#667582!important}
.macro-route{gap:6px}.macro-route span{font-size:10px!important;padding:6px 10px!important}
@media(max-width:860px){
  .toc{margin:8px 12px 8px!important;padding:0!important;border:1px solid #e3e8ec!important;border-radius:12px!important;background:#fff!important;overflow:hidden!important}
  .toc>details>summary{padding:12px 13px!important;font-size:12px!important;font-weight:850!important;color:#33424e!important;cursor:pointer!important}
  .toc>details>summary::after{float:right!important}
  .toc-summary-note{margin-right:8px}
  .toc-body{max-height:min(62vh,520px);overflow-y:auto;overscroll-behavior:contain;padding:0 8px 10px;margin-top:0;border-top:1px solid #edf0f2;scrollbar-width:thin}
  .toc-group>summary{padding:9px 8px;font-size:12px!important}
  .toc-group>div{padding-left:38px}
  .toc-group a{font-size:11px!important;padding:6px 7px!important}
  .macro-route{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;overflow:visible!important;margin-right:0!important;padding-right:0!important}
  .macro-route span{white-space:normal;text-align:center;min-height:48px;display:flex;align-items:center;justify-content:center;gap:4px}
}


.merge-divider{margin:28px 0 12px;padding:11px 12px;border-top:1px solid #e4e9ed;border-bottom:1px solid #eef1f3;background:#fbfcfd;border-radius:8px}.merge-divider .mini{display:block;font-size:9px;font-weight:900;letter-spacing:.08em;color:#7b8994;text-transform:uppercase;margin-bottom:2px}.merge-divider strong{font-size:15px;color:#263643}.merge-anchor{scroll-margin-top:86px}.theme-note{font-size:10px;color:#7b8791;margin:0 0 12px}.toc-theme-count{display:inline-flex;margin-left:6px;padding:2px 6px;border-radius:999px;background:#eef4f8;color:#4f7188;font-size:8.5px;font-weight:800}
@media(max-width:860px){.merge-divider{margin:24px -2px 10px;padding:10px 10px}.merge-divider strong{font-size:14px}.toc-body{max-height:min(54vh,440px)!important}}


/* Prevent anonymous grid items when a heading contains inline elements such as <code>. */
h2 > span{min-width:0;display:block;}
@media(max-width:860px){
  h2 > span{min-width:0;overflow-wrap:anywhere;}
  h2 code{white-space:normal;overflow-wrap:anywhere;}
  h1{overflow-wrap:anywhere;word-break:normal;}
}


.page,.merge-anchor{scroll-margin-top:82px;}
.navbtn{text-decoration:none;display:inline-flex;align-items:center;justify-content:center;}
@media(max-width:860px){
  .page,.merge-anchor{scroll-margin-top:72px;}
  h2 > span{min-width:0;display:block;overflow-wrap:anywhere;}
  h2 code{white-space:normal;overflow-wrap:anywhere;}
  h1{overflow-wrap:anywhere;word-break:normal;}
}


.toc-objective{margin:9px 6px 4px;padding-top:9px;border-top:1px solid #e7ebee;font-size:9px;font-weight:900;letter-spacing:.08em;color:#7b8791;text-transform:uppercase}
.toc-objective:first-child{border-top:0;margin-top:2px;padding-top:2px}
.objective-hero{border-top:5px solid #4a87b3}
@media(max-width:860px){.toc-objective{margin-left:8px;margin-right:8px}.objective-hero{border-top:4px solid #4a87b3}}


.study-start{border-top:5px solid #4f8f82!important;background:linear-gradient(180deg,#f9fdfc 0,#fff 42%)!important}
.study-start .goal{background:#eef8f5!important;box-shadow:inset 3px 0 0 #6aa397!important}
.study-start .goal b{color:#2c6d61!important}
.threat-map{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;margin:12px 0}
.threat-map .bucket{background:#f7f9fa;border-radius:10px;padding:10px;text-align:center;font-size:10.5px;line-height:1.5;min-width:0}
.threat-map .bucket b{display:block;font-size:11.5px;color:#315f58;margin-bottom:3px}
.threat-chain{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin:11px 0}.threat-chain span{background:#f4f7f8;border-radius:9px;padding:7px 9px;font-size:10.5px}.threat-chain i{font-style:normal;color:#98a3aa;font-weight:800}
.scenario{border:1px solid #dfe7e4;background:#fbfdfc;border-radius:11px;padding:10px 11px;margin:10px 0;font-size:11.5px}.scenario b{color:#315f58}.scenario .answer{margin-top:6px;padding-top:6px;border-top:1px dashed #dce5e2;color:#41515c}
.compare4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin:10px 0}.compare4 .card{min-width:0}
.decision-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:10px 0}.decision-grid .row{background:#f7f9fa;border-radius:9px;padding:8px 9px;font-size:10.8px}.decision-grid .row b{color:#3a665f}
@media(max-width:860px){
 .threat-map{grid-template-columns:1fr 1fr}.threat-map .bucket:last-child{grid-column:1/-1}
 .compare4{grid-template-columns:1fr 1fr}.decision-grid{grid-template-columns:1fr}
 .threat-chain{display:grid;grid-template-columns:1fr 20px 1fr;align-items:center}.threat-chain i{text-align:center}
}
@media(max-width:420px){.compare4{grid-template-columns:1fr}}


.toc,.toc-body,.toc-group,.toc-group a,.toc-objective{min-width:0;overflow-wrap:anywhere;word-break:normal}
.cmd-why .what{min-width:0;overflow-wrap:anywhere}
@media(max-width:860px){h1{overflow-wrap:anywhere;word-break:normal}}


.learning-route-page{border-top:5px solid #6a7e9b!important;background:linear-gradient(180deg,#fbfcff 0,#fff 40%)!important}
.learning-route-page .goal{background:#f1f5fa!important;box-shadow:inset 3px 0 0 #7d92af!important}
.learning-route-page .goal b{color:#405a7b!important}
.route-stage{margin:15px 0 21px}.route-stage-title{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:900;color:#506177;margin-bottom:7px}.route-stage-title span{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:8px;background:#edf2f7;color:#506983;font-size:9px}
.learning-sequence{display:grid;gap:6px}.learn-row{display:grid;grid-template-columns:34px minmax(110px,150px) 1fr auto;gap:9px;align-items:center;padding:8px 10px;background:#f8fafb;border-radius:10px;font-size:11px;min-width:0}.learn-row .num{display:grid;place-items:center;width:27px;height:27px;border-radius:8px;background:#eaf1f7;color:#456b8b;font-size:9px;font-weight:900}.learn-row b{color:#253744}.learn-row .why{color:#596773;min-width:0}.learn-row .status{font-size:8.5px;font-weight:900;border-radius:999px;padding:3px 7px;background:#eef1f3;color:#78838c;white-space:nowrap}.learn-row.done .status{background:#eaf7f1;color:#36745b}.learn-row.current{background:#edf8f5;box-shadow:inset 3px 0 0 #6ea292}.learn-row.current .status{background:#dff3eb;color:#316c5a}.learn-row.next{background:#fff9ea;box-shadow:inset 3px 0 0 #d5b35a}.learn-row.next .status{background:#fff0bf;color:#7f651d}
.pentest-start{border-top:5px solid #8c6aa8!important;background:linear-gradient(180deg,#fcfaff 0,#fff 42%)!important}.pentest-start .goal{background:#f6f0fa!important;box-shadow:inset 3px 0 0 #9d79b7!important}.pentest-start .goal b{color:#6b4f81!important}
.pentest-flow{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;margin:10px 0}.pentest-flow .phase{background:#f7f5fa;border-radius:9px;padding:8px 6px;text-align:center;font-size:9.5px;line-height:1.35;min-width:0}.pentest-flow .phase b{display:block;color:#6c557f;font-size:10px;margin-bottom:2px}
.scope-box{background:#fff8ec;border:1px solid #ead9b6;border-radius:11px;padding:10px 11px;margin:10px 0;font-size:11.5px}.scope-box b{color:#745c27}
.nmap-opts{display:grid;grid-template-columns:120px 1fr;border:1px solid #e1e7ec;border-radius:10px;overflow:hidden;margin:10px 0;font-size:11.2px}.nmap-opts div{padding:8px 9px;border-bottom:1px solid #e8edf1}.nmap-opts div:nth-last-child(-n+2){border-bottom:0}.nmap-opts .opt{background:#f5f8fa;font-weight:850;color:#435666}
.module-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:10px 0}.module-grid .card{min-width:0}
@media(max-width:860px){.learn-row{grid-template-columns:30px 1fr auto;gap:7px}.learn-row .why{grid-column:2/-1;font-size:10.5px}.pentest-flow{grid-template-columns:1fr 1fr}.pentest-flow .phase:last-child{grid-column:1/-1}.nmap-opts{grid-template-columns:1fr}.nmap-opts .opt{border-bottom:0}.module-grid{grid-template-columns:1fr 1fr}}
@media(max-width:420px){.module-grid{grid-template-columns:1fr}.learn-row{grid-template-columns:28px 1fr}.learn-row .status{grid-column:2;justify-self:start}.learn-row .why{grid-column:2}}


.dac-start{border-top:5px solid #638a7f!important;background:linear-gradient(180deg,#fbfefd 0,#fff 42%)!important}.dac-start .goal{background:#eef8f5!important;box-shadow:inset 3px 0 0 #6f9f91!important}.dac-start .goal b{color:#416f63!important}
.permission-triplet{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:10px 0}.permission-triplet .card{min-width:0}.permission-triplet .card b{display:block;color:#3f6d62;margin-bottom:3px}
.access-ladder{display:grid;gap:6px;margin:10px 0}.access-ladder .r{display:grid;grid-template-columns:28px 150px 1fr;gap:8px;align-items:center;background:#f7faf9;border-radius:9px;padding:8px 9px;font-size:11px}.access-ladder .n{display:grid;place-items:center;width:24px;height:24px;border-radius:7px;background:#e6f2ee;color:#3d7164;font-weight:900;font-size:9px}.access-ladder b{color:#2e5149}
.acl-entry-grid{display:grid;grid-template-columns:145px 1fr;border:1px solid #e1e7ec;border-radius:10px;overflow:hidden;margin:10px 0;font-size:11.2px}.acl-entry-grid div{padding:8px 9px;border-bottom:1px solid #e8edf1}.acl-entry-grid div:nth-last-child(-n+2){border-bottom:0}.acl-entry-grid .entry{background:#f5f8f7;font-weight:850;color:#435e57}
.namespace-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin:10px 0}.namespace-grid .card{min-width:0}
@media(max-width:860px){.permission-triplet{grid-template-columns:1fr}.access-ladder .r{grid-template-columns:26px 1fr}.access-ladder .r span:last-child{grid-column:2}.acl-entry-grid{grid-template-columns:1fr}.acl-entry-grid .entry{border-bottom:0}.namespace-grid{grid-template-columns:1fr}}


.selinux-start{border-top:5px solid #735f95!important;background:linear-gradient(180deg,#fcfbff 0,#fff 42%)!important}
.selinux-start .goal{background:#f5f1fa!important;box-shadow:inset 3px 0 0 #8870a7!important}.selinux-start .goal b{color:#634c82!important}
.access-stack{display:grid;gap:7px;margin:10px 0}.access-stack .r{display:grid;grid-template-columns:34px 145px 1fr;gap:8px;align-items:center;background:#faf8fc;border-radius:9px;padding:8px 9px;font-size:11px}.access-stack .n{display:grid;place-items:center;width:28px;height:28px;border-radius:8px;background:#eee8f5;color:#6c5589;font-weight:900;font-size:9px}.access-stack b{color:#55426e}
.context-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin:10px 0}.context-grid .ctx{background:#f7f5fa;border-radius:9px;padding:9px 8px;min-width:0;font-size:10.7px}.context-grid .ctx b{display:block;color:#664f84;margin-bottom:3px;overflow-wrap:anywhere}
.tool-map{display:grid;grid-template-columns:145px 1fr;border:1px solid #e5e0ea;border-radius:10px;overflow:hidden;margin:10px 0;font-size:11px}.tool-map div{padding:8px 9px;border-bottom:1px solid #eeeaf2}.tool-map div:nth-last-child(-n+2){border-bottom:0}.tool-map .tool{background:#f8f6fa;font-weight:850;color:#59476e}
.decision-line{display:grid;grid-template-columns:1fr 32px 1fr 32px 1fr;gap:5px;align-items:center;margin:12px 0}.decision-line .box{background:#f7f5fa;border-radius:10px;padding:10px;text-align:center;font-size:11px}.decision-line .arrow{text-align:center;color:#988ba7}
@media(max-width:860px){.access-stack .r{grid-template-columns:28px 1fr}.access-stack .r span:last-child{grid-column:2}.context-grid{grid-template-columns:1fr 1fr}.tool-map{grid-template-columns:1fr}.tool-map .tool{border-bottom:0}.decision-line{grid-template-columns:1fr}.decision-line .arrow{transform:rotate(90deg);height:20px}.selinux-start h1{overflow-wrap:anywhere}}

.selinux-start .route-ribbon{flex-wrap:wrap;overflow:visible}

@media(max-width:860px){
  .code{white-space:pre-wrap!important;overflow-wrap:anywhere!important;word-break:break-word!important;}
  h1,h2,h3{overflow-wrap:anywhere!important;word-break:break-word!important;min-width:0;}
}

@media(max-width:860px){#q3312-p1 h1{font-size:21px!important;letter-spacing:-.03em!important;}}

.hardening-start{border-top:5px solid #9a6a2f!important}
.hardening-start .route-ribbon{flex-wrap:wrap;overflow:visible}.hardening-start .route-ribbon span{background:#fbf6ee;color:#72552f;border-color:#eadbc6}
.hardening-map{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin:12px 0}
.hardening-map .h{background:#f7f8fa;border-radius:10px;padding:10px;font-size:10.5px;text-align:center}
.hardening-map b{display:block;color:#6f532f;font-size:12px;margin-bottom:2px}
.layer-list{display:grid;gap:6px;margin:11px 0}.layer-list .r{display:grid;grid-template-columns:30px 145px 1fr;gap:8px;align-items:start;padding:9px 10px;background:#f7f9fa;border-radius:9px;font-size:11.5px}.layer-list .n{display:grid;place-items:center;width:24px;height:24px;border-radius:7px;background:#f1e8dc;color:#74542e;font-size:9px;font-weight:900}.layer-list b{color:#3d4852}.security-ladder{display:grid;grid-template-columns:1fr 26px 1fr 26px 1fr;gap:5px;align-items:center;margin:11px 0}.security-ladder .box{background:#f7f9fa;border-radius:9px;padding:10px;text-align:center;font-size:11px}.security-ladder .arrow{text-align:center;color:#9aa4ad;font-weight:900}
@media(max-width:860px){.hardening-map{grid-template-columns:1fr 1fr}.layer-list .r{grid-template-columns:28px 1fr}.layer-list .r span{grid-column:2}.security-ladder{grid-template-columns:1fr}.security-ladder .arrow{transform:rotate(90deg)}}

@media(min-width:861px){.route-ribbon.macro-route{flex-wrap:wrap!important;overflow:visible!important}}

.resource-start{border-top:5px solid #7d6a9d!important;background:linear-gradient(180deg,#fcfaff 0,#fff 42%)!important}
.resource-start .goal{background:#f5f1fa!important;box-shadow:inset 3px 0 0 #9580b3!important}.resource-start .goal b{color:#604c80!important}
.resource-map{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:12px 0}.resource-map .r{background:#f7f8fa;border-radius:10px;padding:11px;text-align:center;font-size:10.8px}.resource-map b{display:block;color:#654f82;font-size:12px;margin-bottom:3px}
.limit-stack{display:grid;grid-template-columns:1fr 28px 1fr;gap:7px;align-items:center;margin:11px 0}.limit-stack .box{background:#f7f9fa;border-radius:10px;padding:10px;font-size:11px}.limit-stack .arr{text-align:center;color:#9ba5ae;font-weight:900}
.cgroup-tree{display:grid;gap:6px;margin:10px 0}.cgroup-tree .row{display:grid;grid-template-columns:115px 1fr;gap:8px;padding:9px 10px;background:#f7f9fa;border-radius:9px;font-size:11px}.cgroup-tree b{color:#5d4a78}
.resource-kind{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:10px 0}.resource-kind .k{background:#f8f7fa;border-radius:9px;padding:9px;font-size:10.8px;text-align:center}.resource-kind b{display:block;color:#654f82;margin-bottom:2px}
@media(max-width:860px){.resource-map,.resource-kind{grid-template-columns:1fr}.limit-stack{grid-template-columns:1fr}.limit-stack .arr{transform:rotate(90deg)}.cgroup-tree .row{grid-template-columns:1fr}.resource-start{border-top:4px solid #7d6a9d!important}}


.hostids-start{border-top:5px solid #547f9e!important;background:linear-gradient(180deg,#f8fbfd 0,#fff 42%)!important}
.hostids-start .goal{background:#eef6fa!important;box-shadow:inset 3px 0 0 #6d9bb8!important}.hostids-start .goal b{color:#315e79!important}
.detect-map{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin:11px 0}.detect-map .d{background:#f6f9fa;border-radius:10px;padding:10px;text-align:center;font-size:10.6px;line-height:1.5}.detect-map b{display:block;color:#355f78;font-size:11.5px;margin-bottom:3px}
.audit-pipe{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;align-items:center;margin:10px 0}.audit-pipe .box{background:#f7f9fa;border-radius:9px;padding:9px;text-align:center;font-size:10.5px}.audit-pipe .arr{text-align:center;color:#9ba6ae;font-weight:900}
.tool-compare{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:10px 0}.tool-compare .t{background:#f7f9fa;border-radius:9px;padding:9px;font-size:10.7px}.tool-compare b{display:block;color:#3d6279;margin-bottom:3px}
.integrity-lane{display:grid;grid-template-columns:1fr 28px 1fr;gap:7px;align-items:center;margin:10px 0}.integrity-lane .box{background:#f7f9fa;border-radius:9px;padding:10px;font-size:10.8px}.integrity-lane .arr{text-align:center;color:#9ba5ae;font-weight:900}
@media(max-width:860px){.detect-map,.tool-compare{grid-template-columns:1fr}.audit-pipe{grid-template-columns:1fr}.audit-pipe .arr{transform:rotate(90deg)}.integrity-lane{grid-template-columns:1fr}.integrity-lane .arr{transform:rotate(90deg)}.hostids-start{border-top:4px solid #547f9e!important}}


.encryptedfs-start{border-top:5px solid #6b709e!important;background:linear-gradient(180deg,#fafaff 0,#fff 42%)!important}
.encryptedfs-start .goal{background:#f2f2fb!important;box-shadow:inset 3px 0 0 #7c82b3!important}.encryptedfs-start .goal b{color:#4d5284!important}
.enc-map{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:11px 0}.enc-box{background:#f7f8fb;border-radius:11px;padding:11px;font-size:11.5px;min-width:0}.enc-box b{display:block;color:#555b8b;margin-bottom:4px}
.layer-stack{display:grid;gap:5px;margin:11px 0}.layer-stack .layer{background:#f6f7fa;border-radius:9px;padding:8px 10px;text-align:center;font-size:11px}.layer-stack .arr{text-align:center;color:#9298a4;font-weight:900;height:16px}
.crypt-fields{display:grid;grid-template-columns:140px 1fr;border:1px solid #e1e6ec;border-radius:10px;overflow:hidden;margin:10px 0;font-size:11px}.crypt-fields div{padding:8px 9px;border-bottom:1px solid #e8ecf0}.crypt-fields div:nth-last-child(-n+2){border-bottom:0}.crypt-fields .term{background:#f5f6f9;font-weight:850;color:#4d5668}
@media(max-width:860px){.enc-map{grid-template-columns:1fr}.crypt-fields{grid-template-columns:1fr}.crypt-fields .term{border-bottom:0}.encryptedfs-start{border-top:4px solid #6b709e!important}}


.dnssec-start{border-top:5px solid #547da6!important;background:linear-gradient(180deg,#f8fbfe 0,#fff 42%)!important}
.dnssec-start .goal{background:#eef5fb!important;box-shadow:inset 3px 0 0 #6d96bc!important}.dnssec-start .goal b{color:#315f88!important}
.dns-map{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin:11px 0}.dns-box{background:#f6f9fb;border-radius:10px;padding:9px 10px;font-size:10.8px;line-height:1.55;min-width:0}.dns-box b{display:block;color:#355f84;font-size:11.5px;margin-bottom:3px}
.rr-map{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:10px 0}.rr-card{background:#f7f9fa;border-radius:10px;padding:9px 10px;font-size:10.6px;min-width:0}.rr-card b{display:block;color:#3b6280;margin-bottom:3px}
.dns-path{display:flex;gap:5px;align-items:center;flex-wrap:wrap;margin:11px 0}.dns-path span{background:#f3f7fa;border-radius:8px;padding:7px 9px;font-size:10.5px}.dns-path i{font-style:normal;color:#95a2ad;font-weight:900}
@media(max-width:860px){.dns-map{grid-template-columns:1fr 1fr}.rr-map{grid-template-columns:1fr 1fr}.dns-path{display:grid;grid-template-columns:1fr 18px 1fr}.dns-path i{text-align:center}}
@media(max-width:420px){.dns-map,.rr-map{grid-template-columns:1fr}}


.net-scope{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:11px 0}.net-scope .box{background:#f6f9fb;border-radius:10px;padding:10px;font-size:11px;min-width:0}.net-scope .box b{display:block;color:#315f7e;font-size:12px;margin-bottom:3px}
.radius-flow{display:grid;grid-template-columns:1fr 28px 1fr 28px 1fr;gap:6px;align-items:center;margin:12px 0}.radius-flow .node{background:#f5f8fa;border-radius:10px;padding:11px;text-align:center;font-size:11px;min-width:0}.radius-flow .node b{display:block;color:#315f7e;font-size:12px}.radius-flow .arr{text-align:center;color:#8b99a4;font-weight:900}
.filter-pair{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:10px 0}.filter-pair .pane{background:#f7f9fb;border-radius:10px;padding:10px;font-size:11px;min-width:0}.filter-pair .pane b{display:block;color:#315f7e;margin-bottom:5px}
.rogue-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:10px 0}.rogue-grid .pane{border:1px solid #e2e7eb;border-radius:10px;padding:10px;font-size:11px;min-width:0}.rogue-grid .pane b{display:block;color:#8a4f36;margin-bottom:4px}
@media(max-width:860px){.net-scope{grid-template-columns:1fr}.radius-flow{grid-template-columns:1fr}.radius-flow .arr{transform:rotate(90deg);height:20px}.filter-pair,.rogue-grid{grid-template-columns:1fr}}

@media(max-width:860px){.dns-path{display:flex!important;flex-wrap:wrap!important;gap:5px!important}.dns-path span{min-width:0!important;overflow-wrap:anywhere}.dns-path i{display:inline-block!important;width:auto!important;height:auto!important;transform:none!important}}

.firewall-zones{display:grid;grid-template-columns:1fr 26px 1fr 26px 1fr;gap:6px;align-items:center;margin:12px 0}.firewall-zones .zone{background:#f6f9fb;border-radius:10px;padding:11px;text-align:center;font-size:11px;min-width:0}.firewall-zones .zone b{display:block;color:#315f7e;font-size:12px}.firewall-zones .arr{text-align:center;color:#8b99a4;font-weight:900}
.packet-path{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;margin:11px 0}.packet-path .hop{background:#f6f8fa;border-radius:9px;padding:9px;text-align:center;font-size:10.5px;min-width:0}.packet-path .hop b{display:block;color:#315f7e;font-size:11.5px;margin-bottom:2px}
.rule-anatomy{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin:10px 0}.rule-anatomy .part{background:#f7f9fb;border-radius:9px;padding:9px;font-size:10.5px;min-width:0}.rule-anatomy .part b{display:block;color:#355f7b;margin-bottom:3px}
.state-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin:10px 0}.state-grid .statebox{background:#f5f8fa;border-radius:9px;padding:9px;font-size:10.5px;min-width:0}.state-grid .statebox b{display:block;color:#315f7e;font-size:11px}
.nat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:10px 0}.nat-grid .natbox{border:1px solid #e1e7eb;border-radius:10px;padding:10px;font-size:10.8px;min-width:0}.nat-grid .natbox b{display:block;color:#7c5636;font-size:11.5px;margin-bottom:3px}
@media(max-width:860px){.firewall-zones{grid-template-columns:1fr}.firewall-zones .arr{transform:rotate(90deg);height:18px}.packet-path{grid-template-columns:1fr 1fr}.packet-path .hop:last-child{grid-column:1/-1}.rule-anatomy,.state-grid{grid-template-columns:1fr 1fr}.nat-grid{grid-template-columns:1fr}}
@media(max-width:420px){.packet-path,.rule-anatomy,.state-grid{grid-template-columns:1fr}.packet-path .hop:last-child{grid-column:auto}}


.nids-map{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:11px 0}.nids-map .box{background:#f6f9fb;border-radius:10px;padding:10px;font-size:10.8px;min-width:0}.nids-map .box b{display:block;color:#315f7e;font-size:11.5px;margin-bottom:3px}
.snort-rule{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin:10px 0}.snort-rule .part{background:#f7f9fb;border-radius:9px;padding:9px;font-size:10.5px;min-width:0}.snort-rule .part b{display:block;color:#355f7b;margin-bottom:3px}
.scan-flow{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;margin:10px 0}.scan-flow .node{background:#f6f8fa;border-radius:9px;padding:9px;text-align:center;font-size:10.4px;min-width:0}.scan-flow .node b{display:block;color:#315f7e;font-size:11px;margin-bottom:2px}
.legacy-map{display:grid;grid-template-columns:155px 1fr;gap:0;border:1px solid #e1e7ec;border-radius:10px;overflow:hidden;margin:10px 0;font-size:10.8px}.legacy-map div{padding:8px 9px;border-bottom:1px solid #e8edf1}.legacy-map div:nth-last-child(-n+2){border-bottom:0}.legacy-map .legacy{background:#f5f8fa;font-weight:850;color:#435666}
@media(max-width:860px){.nids-map,.snort-rule{grid-template-columns:1fr 1fr}.scan-flow{grid-template-columns:1fr 1fr}.scan-flow .node:last-child{grid-column:1/-1}.legacy-map{grid-template-columns:1fr}.legacy-map .legacy{border-bottom:0}}
@media(max-width:420px){.nids-map,.snort-rule,.scan-flow{grid-template-columns:1fr}.scan-flow .node:last-child{grid-column:auto}}

.snort-rule-code{white-space:pre-wrap!important;overflow-wrap:anywhere;word-break:break-word}

.vpn-split{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:11px 0}
.vpn-split .box{background:#f7f9fa;border-radius:10px;padding:11px 12px;font-size:11.5px;min-width:0}
.vpn-split .box b{display:block;color:#315f7a;font-size:12.5px;margin-bottom:4px}
.proto-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin:10px 0}
.proto-grid .box{background:#f7f9fa;border-radius:10px;padding:10px;font-size:10.6px;line-height:1.55;min-width:0}
.proto-grid .box b{display:block;color:#315f7a;font-size:11.5px;margin-bottom:3px}
.vpn-state{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:10px 0}
.vpn-state .box{background:#f5f8fa;border-radius:9px;padding:9px;font-size:10.8px;min-width:0}
.vpn-state .box b{display:block;color:#3f617a;margin-bottom:3px}
@media(max-width:860px){
  .vpn-split,.proto-grid,.vpn-state{grid-template-columns:1fr}
}


.mastery-page{border-top:5px solid #8b6fb0!important;background:linear-gradient(180deg,#fcfaff 0,#fff 42%)!important}
.mastery-page .goal{background:#f5f0fb;box-shadow:inset 3px 0 0 #a88bc7}
.mastery-summary{display:grid;grid-template-columns:1.2fr .8fr;gap:10px;margin:12px 0}
.mastery-meter{background:#f7f5fa;border-radius:12px;padding:12px}.mastery-meter strong{display:block;font-size:11px;color:#654f80}.mastery-big{font-size:30px;font-weight:900;line-height:1.15;margin-top:3px}.mastery-bar{height:9px;background:#eae5ef;border-radius:999px;overflow:hidden;margin-top:8px}.mastery-bar>i{display:block;height:100%;width:0;background:#8c72aa;border-radius:999px;transition:width .25s ease}
.mastery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:13px 0}.mastery-card{background:#f8f9fa;border:1px solid #e7e9ec;border-radius:11px;padding:10px;min-width:0}.mastery-card .mc-top{display:flex;gap:7px;align-items:flex-start}.mastery-card .mc-num{display:grid;place-items:center;min-width:24px;height:24px;border-radius:7px;background:#eee8f5;color:#6f568d;font-size:9px;font-weight:900}.mastery-card b{font-size:11.5px;line-height:1.4}.mastery-card .mc-meta{font-size:9.5px;color:#79838c;margin:4px 0 7px}.mastery-card .mc-level{font-size:20px;font-weight:900;color:#5a456f}.mastery-card .mc-actions{display:flex;gap:5px;flex-wrap:wrap;margin-top:7px}.mastery-card button,.quiz-panel button{font:inherit}.mastery-btn{border:0;border-radius:8px;background:#72598f;color:#fff;padding:6px 8px;font-size:9.5px;font-weight:850;cursor:pointer}.mastery-link{display:inline-flex;align-items:center;text-decoration:none;border-radius:8px;background:#eef2f5;color:#556571;padding:6px 8px;font-size:9.5px;font-weight:800}.mastery-lock{font-size:9px;color:#927b3c;background:#fff8e6;border-radius:7px;padding:5px 7px;margin-top:6px}
.quiz-panel{display:none;border:1px solid #e1d9e9;background:#fff;border-radius:13px;margin:16px 0;padding:13px;box-shadow:0 8px 24px rgba(68,48,90,.06)}.quiz-panel.active{display:block}.quiz-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;margin-bottom:10px}.quiz-head h3{margin:0;font-size:14px}.quiz-stage{font-size:9px;font-weight:900;background:#f1ecf6;color:#684e83;border-radius:999px;padding:4px 7px}.quiz-progress{font-size:9.5px;color:#7b858e}.quiz-question{font-size:14px;font-weight:800;line-height:1.6;margin:10px 0 12px}.quiz-options{display:grid;gap:7px}.quiz-option{border:1px solid #dfe4e8;background:#f9fafb;border-radius:10px;text-align:left;padding:9px 10px;font-size:11px;cursor:pointer;color:#26343f}.quiz-option:hover{background:#f2f5f7}.quiz-option.correct{border-color:#9fceb7;background:#eff8f3}.quiz-option.wrong{border-color:#e4aaaa;background:#fff3f3}.quiz-short{display:flex;gap:7px;align-items:center}.quiz-short input{min-width:0;flex:1;border:1px solid #d9dfe4;border-radius:9px;padding:9px 10px;font-size:12px}.quiz-submit{border:0;background:#72598f;color:white;border-radius:9px;padding:9px 10px;font-size:10px;font-weight:850;cursor:pointer}.quiz-feedback{display:none;margin-top:10px;padding:9px 10px;border-radius:9px;background:#f6f8fa;font-size:10.5px;line-height:1.6}.quiz-feedback.show{display:block}.quiz-feedback.ok{background:#eff8f3}.quiz-feedback.ng{background:#fff5f5}.quiz-feedback a{font-weight:800}.quiz-next{display:none;margin-top:9px;border:0;background:#2f6f9d;color:#fff;border-radius:9px;padding:8px 10px;font-size:10px;font-weight:850;cursor:pointer}.quiz-next.show{display:inline-block}.mastery-note{font-size:10px;color:#7a858e;margin-top:8px}.mastery-reset{border:0;background:transparent;color:#8b6b6b;text-decoration:underline;font-size:9px;cursor:pointer;padding:4px}.topbar .mastery-nav{margin-left:0}.topbar-inner{justify-content:flex-start}.topbar .navbtn:last-child{margin-left:0}.topbar .brand{margin-right:auto}
@media(max-width:860px){.mastery-summary{grid-template-columns:1fr}.mastery-grid{grid-template-columns:1fr 1fr}.quiz-short{align-items:stretch;flex-direction:column}.quiz-submit{width:100%}.topbar-inner{gap:6px}.topbar .mastery-nav{margin-left:0}.topbar .navbtn{padding:7px 9px;font-size:10.5px}}
@media(max-width:480px){.mastery-grid{grid-template-columns:1fr}.mastery-big{font-size:27px}}


.checkpoint-page{border-top:5px solid #8b6fb0!important;background:linear-gradient(180deg,#fcfaff 0,#fff 36%)!important}
.checkpoint-page .goal{background:#f5f0fb;box-shadow:inset 3px 0 0 #a88bc7}
.checkpoint-status{display:grid;grid-template-columns:1fr auto;gap:8px 12px;align-items:center;background:#f7f5fa;border-radius:12px;padding:12px 13px;margin:12px 0}
.checkpoint-status .cp-label{font-size:10px;font-weight:850;color:#6b5b7d}.checkpoint-status .cp-level{font-size:27px;line-height:1;font-weight:900;color:#5d4775;text-align:right}
.checkpoint-status .cp-stage{font-size:10.5px;color:#65717b}.checkpoint-status .cp-lock{font-size:9.5px;color:#8a7134;text-align:right}
.checkpoint-actions{display:flex;gap:7px;flex-wrap:wrap;margin:10px 0 4px}.checkpoint-actions .mastery-btn{font-size:11px;padding:8px 11px}.checkpoint-actions .mastery-reset{font-size:9.5px}
.checkpoint-page .quiz-panel{margin-top:14px}.checkpoint-toc-link{display:block!important;margin:5px 8px 9px 38px!important;padding:6px 8px!important;border-radius:8px;background:#f5f0fa!important;color:#674f81!important;font-weight:850!important}
.objective-check-link{background:#f8f6fb!important;box-shadow:inset 3px 0 0 #ad99c2!important}.objective-check-link a{color:#6a5186;font-weight:850}
.mastery-card .mc-actions a[href^="#checkpoint-"]{background:#f1ecf6;color:#684e83}
@media(max-width:860px){.checkpoint-status{grid-template-columns:1fr auto}.checkpoint-page{border-top:4px solid #8b6fb0!important}.checkpoint-actions .mastery-btn{flex:1 1 160px}.checkpoint-toc-link{margin-left:38px!important}}


.bank-meta{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 10px}.bank-pill{font-size:9.5px;font-weight:800;color:#5b4b6f;background:#f2edf7;border-radius:999px;padding:4px 7px}.theme-progress{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:10px 0}.theme-chip{background:#f7f8fa;border:1px solid #e5e8eb;border-radius:9px;padding:7px 8px;min-width:0}.theme-chip b{display:block;font-size:9.5px;color:#44525d;overflow-wrap:anywhere}.theme-chip span{font-size:9px;color:#7b858e}.quiz-bank-note{font-size:10px;color:#6f7a84;background:#faf8fc;border-left:3px solid #ad93c3;border-radius:5px 9px 9px 5px;padding:8px 10px;margin:9px 0}.quiz-result-breakdown{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:9px}.quiz-result-breakdown div{background:#f7f9fa;border-radius:8px;padding:7px 8px;font-size:9.5px}.mastery-card .mc-bank{font-size:8.8px;color:#8a9299;margin-top:3px}.weak-theme{font-size:8.8px;color:#8a6b47;margin-top:3px}.quiz-option:disabled{cursor:default}.quiz-panel .quiz-progress strong{color:#684e83}.bank-warning{background:#fff9e8;border-left:3px solid #d0ad53;border-radius:5px 9px 9px 5px;padding:8px 10px;font-size:10px;margin:9px 0}.bank-warning b{color:#6c571e}
@media(max-width:860px){.theme-progress{grid-template-columns:1fr 1fr}.quiz-result-breakdown{grid-template-columns:1fr}.bank-meta{gap:5px}.bank-pill{font-size:9px}}
@media(max-width:420px){.theme-progress{grid-template-columns:1fr}}


.quiz-result-breakdown .theme-ng{background:#fff2f2!important;box-shadow:inset 3px 0 0 #c76464}.quiz-result-breakdown .theme-ok{background:#f2f8f5!important;box-shadow:inset 3px 0 0 #66a184}


/* ===== Objective-centric sidebar v51 ===== */
@media(min-width:861px){
  .topbar-inner{max-width:1320px}
  .layout{max-width:1320px;grid-template-columns:280px minmax(0,1fr);gap:30px}
  .toc{top:68px;padding:10px 9px 12px;max-height:calc(100vh - 88px);overflow:hidden;background:#fbfcfd;border:1px solid #e5e9ed;border-radius:14px}
  .toc>details{height:100%;display:flex;flex-direction:column;min-height:0}
  .toc>details>summary{flex:0 0 auto;padding:7px 8px 10px;font-size:12px!important;border-bottom:1px solid #e9edf0!important;margin-bottom:0}
  .toc-v51-body{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;padding:8px 3px 6px;scrollbar-width:thin}
}
.toc-v51-body,.toc-v51-body *{box-sizing:border-box}
.toc-quick{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:0 4px 9px}
.toc-quick-link{display:flex!important;justify-content:center;align-items:center;min-width:0;padding:7px 6px!important;border-radius:9px!important;background:#f1f5f8;color:#496474!important;font-size:10.5px!important;font-weight:850;text-align:center;white-space:normal;word-break:normal;overflow-wrap:normal}
.toc-quick-link.mastery{background:#f4f0f8;color:#684f80!important}
.toc-objective-group{margin:0 2px 6px;border:1px solid #e7ebee;border-radius:10px;background:#fff;overflow:hidden}
.toc-objective-group>summary{display:grid!important;grid-template-columns:28px minmax(0,1fr) auto;gap:8px;align-items:center;padding:9px 9px!important;border:0!important;cursor:pointer;color:#33424e!important;line-height:1.35;list-style:none}
.toc-objective-group>summary::-webkit-details-marker{display:none}
.toc-objective-group>summary::after{content:'＋'!important;grid-column:3;grid-row:1;color:#9aa5ae!important;font-size:11px!important;float:none!important;margin:0!important}
.toc-objective-group[open]>summary::after{content:'−'!important}
.toc-objective-num{display:grid;place-items:center;width:25px;height:25px;border-radius:7px;background:#edf4f8;color:#416f91;font-size:9px;font-weight:900;grid-column:1;grid-row:1}
.toc-objective-label{grid-column:2;grid-row:1;min-width:0;font-size:11.5px;font-weight:750;white-space:normal!important;word-break:normal!important;overflow-wrap:normal!important}
.toc-objective-label b{font-weight:900;color:#273d4c;white-space:nowrap}
.toc-objective-qbadge{grid-column:3;grid-row:2;display:inline-flex;justify-self:end;padding:2px 6px;border-radius:999px;background:#f2edf7;color:#76588e;font-size:8px;font-weight:900;line-height:1.3}
.toc-objective-inner{padding:0 7px 8px;border-top:1px solid #eef1f3}
.toc-objective-actions{display:grid;grid-template-columns:1fr 1fr;gap:5px;padding:7px 0 5px}
.toc-action{display:flex!important;justify-content:center;align-items:center;padding:6px 7px!important;border-radius:8px!important;background:#f5f7f9!important;color:#536572!important;font-size:9.5px!important;font-weight:850!important;text-align:center}
.toc-action.checkpoint{background:#f5f0fa!important;color:#6e5385!important}
.toc-topics{display:grid;gap:2px}
.toc-topics .toc-group{margin:0;border-radius:8px}
.toc-topics .toc-group>summary{display:grid!important;grid-template-columns:24px minmax(0,1fr) auto!important;gap:7px!important;align-items:start!important;padding:7px 7px!important;font-size:10.8px!important;font-weight:800!important;line-height:1.4!important;white-space:normal!important;word-break:normal!important;overflow-wrap:normal!important}
.toc-topics .toc-group>summary>span:first-child{width:22px!important;min-width:22px!important;height:22px!important;grid-column:1;grid-row:1;background:#f1f5f8;color:#58758a;font-size:8.5px}
.toc-topics .toc-group>summary::after{grid-column:3;grid-row:1;float:none!important;margin-left:0!important}
.toc-topics .toc-group>div{padding:0 5px 5px 31px!important}
.toc-topics .toc-group a{font-size:10px!important;line-height:1.45!important;padding:5px 6px!important;white-space:normal!important;word-break:normal!important;overflow-wrap:break-word!important}
/* Undo old aggressive wrap rules inside the sidebar */
.toc,.toc-body,.toc-group,.toc-group a,.toc-objective,.checkpoint-toc-link{word-break:normal!important}
@media(max-width:860px){
  .toc-v51-body{max-height:min(56vh,460px)!important;overflow-y:auto!important;padding:8px 7px 10px!important}
  .toc-quick{margin:0 2px 8px}
  .toc-objective-group{margin-bottom:5px}
  .toc-objective-group>summary{grid-template-columns:28px minmax(0,1fr) auto;padding:9px 8px!important}
  .toc-objective-label{font-size:11.5px}
  .toc-objective-qbadge{font-size:8px}
  .toc-objective-inner{padding-left:7px;padding-right:7px}
}


/* PC: keep the compact two-level Objective -> topic navigation. */
.mobile-toc-nav{display:none!important}

@media(max-width:860px){
  /* A permanent way back to navigation while reading on a phone. */
  .mobile-toc-nav{display:inline-flex!important}

  /* Mobile navigation principle:
     one tap on an Objective reveals every destination page.
     Do not require a second tap on each topic group. */
  .toc-v51-body{max-height:min(68vh,560px)!important}
  .toc-objective-group>summary{position:sticky;top:0;z-index:1;background:#fff}
  .toc-objective-inner{padding-top:4px}
  .toc-topics{gap:6px}
  .toc-topics .toc-group{
    border:1px solid #edf0f2!important;
    background:#fafbfd!important;
    padding:0!important;
    overflow:hidden!important;
  }
  .toc-topics .toc-group>summary{
    pointer-events:none!important;
    cursor:default!important;
    padding:7px 8px 4px!important;
    grid-template-columns:24px minmax(0,1fr)!important;
    background:#f6f8fa!important;
  }
  .toc-topics .toc-group>summary::after{display:none!important}
  /* Override the browser's closed-details hiding on mobile so the direct
     destination links are always visible once the Objective is opened. */
  .toc-topics .toc-group:not([open])>div,
  .toc-topics .toc-group>div{
    display:grid!important;
    gap:2px!important;
    padding:2px 7px 7px 39px!important;
  }
  .toc-topics .toc-group a{
    display:flex!important;
    align-items:flex-start!important;
    min-height:34px!important;
    padding:7px 8px!important;
    border-radius:8px!important;
    background:#fff!important;
    color:#3d596d!important;
    font-size:11px!important;
    line-height:1.45!important;
    text-decoration:none!important;
    box-shadow:inset 0 0 0 1px #e8edf1!important;
  }
  .toc-topics .toc-group a::before{
    content:'→';
    flex:0 0 auto;
    margin-right:6px;
    color:#7191a7;
    font-weight:900;
  }
  .toc-objective-actions{position:sticky;top:43px;z-index:1;background:#fff;padding-top:6px}
  .topbar-inner{gap:5px!important;padding:7px 8px!important}
  .topbar .brand{min-width:0;flex:1 1 auto;margin-right:2px!important;font-size:11px!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .topbar .brand small{display:none!important}
  .topbar .navbtn{flex:0 0 auto!important;white-space:nowrap!important;word-break:keep-all!important;writing-mode:horizontal-tb!important;padding:6px 7px!important;font-size:9.5px!important;border-radius:999px!important}
}


/* ===== v53: desktop sidebar scroll + mobile non-overlapping flow ===== */
@media(min-width:861px){
  /* Scroll the sidebar itself. This avoids the old nested flex/overflow chain
     that could clip the lower Objectives. */
  .toc{
    position:sticky!important;
    top:68px!important;
    height:calc(100dvh - 86px)!important;
    max-height:none!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    overscroll-behavior:contain;
    scrollbar-gutter:stable;
    padding:0 8px 12px!important;
  }
  .toc>details{
    display:block!important;
    height:auto!important;
    min-height:0!important;
  }
  .toc>details>summary{
    position:sticky!important;
    top:0!important;
    z-index:8!important;
    background:#fbfcfd!important;
    padding:13px 8px 10px!important;
    margin:0 0 4px!important;
    border-bottom:1px solid #e9edf0!important;
  }
  .toc-v51-body{
    display:block!important;
    height:auto!important;
    max-height:none!important;
    overflow:visible!important;
    padding:5px 3px 6px!important;
  }
  .toc::-webkit-scrollbar{width:9px}
  .toc::-webkit-scrollbar-thumb{background:#cbd3da;border-radius:999px;border:2px solid #fbfcfd}
  .toc::-webkit-scrollbar-track{background:transparent}
}

@media(max-width:860px){
  /* On phones the TOC is part of normal document flow: no nested scroll,
     no sticky Objective rows/actions, therefore it cannot cover the lesson. */
  .toc{
    position:relative!important;
    top:auto!important;
    height:auto!important;
    max-height:none!important;
    overflow:visible!important;
    margin:8px 10px 10px!important;
    z-index:auto!important;
  }
  .toc>details{height:auto!important;display:block!important;overflow:visible!important}
  .toc>details>summary{position:static!important;top:auto!important}
  .toc-v51-body{
    height:auto!important;
    max-height:none!important;
    overflow:visible!important;
    overscroll-behavior:auto!important;
    padding:8px 7px 10px!important;
  }
  .toc-objective-group>summary{
    position:static!important;
    top:auto!important;
    z-index:auto!important;
  }
  .toc-objective-actions{
    position:static!important;
    top:auto!important;
    z-index:auto!important;
  }
  .toc-objective-inner{overflow:visible!important}
  .toc-topics{overflow:visible!important}
  /* Keep section destinations visible after one Objective tap. */
  .toc-objective-group[open] .toc-topics .toc-group>div{display:grid!important}
  /* Reduce tall blank navigation while keeping every Objective accessible. */
  .toc-objective-group:not([open]) .toc-objective-inner{display:none!important}
  /* Ensure the lesson starts strictly after the TOC block. */
  .layout{display:block!important;overflow:visible!important}
  main{display:block!important;position:relative!important;z-index:0!important;clear:both!important}
}


.quiz-feedback .fb-section{margin-top:8px;padding-top:8px;border-top:1px solid rgba(0,0,0,.08)}
.quiz-feedback .fb-label{display:block;font-size:9px;font-weight:900;letter-spacing:.06em;color:#687784;margin-bottom:3px}
.quiz-feedback .fb-choice{margin-top:6px;padding:7px 8px;border-radius:8px;background:rgba(255,255,255,.58)}
.quiz-feedback .fb-choice b{font-size:10.5px}
.quiz-feedback .fb-choice.correct-choice{box-shadow:inset 3px 0 0 #5c9a76}
.quiz-feedback .fb-choice.wrong-choice{box-shadow:inset 3px 0 0 #c46b6b}
.quiz-feedback .fb-note{font-size:10.5px;color:#56636e;line-height:1.55}
.quiz-stage-note-v54{margin-top:8px;font-size:10px;color:#6e7881}


.quiz-question{white-space:pre-line}
.exam-bank-note{border-left:4px solid #7a5ca8;background:#f8f4fc;border-radius:5px 10px 10px 5px;padding:10px 12px;margin:10px 0;font-size:11px}
.exam-bank-note b{color:#66488b}
.quiz-stage.exam-stage{background:#efe7f8!important;color:#644582!important}
.fb-section .exam-mark{display:inline-flex;margin-left:6px;padding:2px 6px;border-radius:999px;background:#eee6f7;color:#654987;font-size:8.5px;font-weight:900}
@media(max-width:860px){.exam-bank-note{font-size:10.5px}}


.quiz-option.multi-selected{outline:2px solid #5b7fa3;background:#eef5fb}.quiz-multi-hint{font-size:11px;color:#52606d;margin:0 0 8px}.quiz-multi-submit{margin-top:10px;border:0;border-radius:9px;padding:9px 14px;background:#315f7e;color:#fff;font-weight:800;cursor:pointer}.quiz-multi-submit:disabled{opacity:.45}.format-badge{display:inline-block;margin-left:7px;padding:2px 7px;border-radius:999px;background:#eef2f6;color:#526577;font-size:9px;font-weight:850}.exam-mark{background:#edf3f8!important;color:#355d7c!important}.semantic-audit-note{border-left:3px solid #7d92af;background:#f5f8fb;padding:8px 10px;margin:8px 0;font-size:10.5px;color:#52606d}

/* v63 multi-page shell */
.objective-global-nav{display:flex;gap:10px;justify-content:space-between;align-items:center;flex-wrap:wrap;margin:0 0 14px;padding:10px 12px;border:1px solid var(--line,#d9e2ec);border-radius:14px;background:var(--panel,#fff)}
.objective-global-nav a{font-weight:800;text-decoration:none}
.objective-global-nav .center{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.index-objective-link{color:inherit;text-decoration:none}
.learn-row{position:relative}
.learn-row .objective-open{display:inline-flex;margin-top:6px;font-size:12px;font-weight:800;text-decoration:none}
.index-objective-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;margin:16px 0}
.index-objective-card{border:1px solid var(--line,#d9e2ec);border-radius:16px;padding:14px;background:var(--panel,#fff)}
.index-objective-card .head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.index-objective-card .pct{font-size:28px;font-weight:900}
.index-objective-card .bar{height:8px;border-radius:999px;overflow:hidden;background:#e8edf3;margin:10px 0}.index-objective-card .bar i{display:block;height:100%;background:currentColor;width:0}
.index-objective-card .actions{display:flex;gap:8px;flex-wrap:wrap}.index-objective-card .actions a{font-weight:800;text-decoration:none}
.split-note{margin:14px 0;padding:12px 14px;border:1px solid var(--line,#d9e2ec);border-radius:14px;background:var(--panel,#fff)}
@media(max-width:860px){.objective-global-nav{position:relative;top:auto}.objective-global-nav .center{width:100%;justify-content:center}.index-objective-grid{grid-template-columns:1fr}}

/* ========================================================================
   v64 Modern Learning App UI
   - visual-only layer: content, question data and mastery logic are unchanged
   ======================================================================== */
:root{
  --m-bg:#f4f7fb;
  --m-surface:#ffffff;
  --m-surface-2:#f8fafc;
  --m-ink:#172033;
  --m-text:#354259;
  --m-muted:#7b879a;
  --m-line:#e5eaf1;
  --m-line-strong:#d9e1eb;
  --m-primary:#315bff;
  --m-primary-2:#6b4eff;
  --m-primary-soft:#eef2ff;
  --m-cyan:#0ea5a8;
  --m-green:#148a63;
  --m-amber:#a76b00;
  --m-red:#b94855;
  --m-shadow:0 16px 44px rgba(29,42,68,.08);
  --m-shadow-lg:0 30px 80px rgba(29,42,68,.12);
  --m-radius:22px;
  --m-font:-apple-system,BlinkMacSystemFont,"Segoe UI","Hiragino Sans","Yu Gothic UI","Yu Gothic",Meiryo,sans-serif;
}
html{background:var(--m-bg)}
body{
  background:
    radial-gradient(900px 480px at 74% -180px,rgba(49,91,255,.10),transparent 70%),
    radial-gradient(760px 420px at -8% 12%,rgba(14,165,168,.07),transparent 65%),
    var(--m-bg);
  color:var(--m-ink);
  font-family:var(--m-font);
  line-height:1.78;
  letter-spacing:.002em;
}
a{color:#315bdc;text-underline-offset:3px}
::selection{background:#dfe6ff;color:#16243f}

/* app header */
.topbar{
  position:sticky;top:0;z-index:100;
  display:flex;align-items:center;gap:22px;
  min-height:64px;padding:9px max(18px,calc((100vw - 1320px)/2));
  background:rgba(248,250,253,.78);
  border-bottom:1px solid rgba(217,225,235,.82);
  box-shadow:0 1px 0 rgba(255,255,255,.7);
  backdrop-filter:blur(22px) saturate(150%);
  -webkit-backdrop-filter:blur(22px) saturate(150%);
  transition:box-shadow .2s ease,background .2s ease;
}
.topbar.is-scrolled{background:rgba(248,250,253,.94);box-shadow:0 10px 34px rgba(28,39,64,.08)}
.topbar .brand{min-width:0;margin-right:auto;line-height:1.15}
.topbar .brand b{display:block;font-size:14px;font-weight:900;letter-spacing:-.015em;color:#18243a}
.topbar .brand small{display:block;margin-top:4px;font-size:10px;font-weight:700;color:#8994a4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:420px}
.topbar .topnav{display:flex;align-items:center;gap:7px;flex:0 0 auto}
.topbar .navbtn{
  display:inline-flex!important;align-items:center;justify-content:center;
  min-height:36px;padding:7px 12px!important;border:1px solid transparent!important;
  border-radius:12px!important;background:transparent!important;
  color:#556176!important;text-decoration:none!important;
  font-size:11px!important;font-weight:800!important;
  transition:.18s ease;
}
.topbar .navbtn:hover{background:#fff!important;border-color:var(--m-line)!important;color:#21335d!important;box-shadow:0 5px 18px rgba(28,40,65,.06)}
.reading-progress{position:absolute;left:0;bottom:-1px;width:100%;height:2px;pointer-events:none;background:transparent;overflow:hidden}
.reading-progress>i{display:block;width:0;height:100%;border-radius:0 999px 999px 0;background:linear-gradient(90deg,var(--m-primary),var(--m-primary-2));transition:width .08s linear}

/* app shell */
.layout{max-width:1320px!important;margin:26px auto 88px!important;padding:0 22px!important;display:grid!important;grid-template-columns:236px minmax(0,1fr)!important;gap:30px!important}
main{min-width:0}
.toc{
  position:sticky!important;top:86px!important;align-self:start!important;
  width:100%;height:auto!important;max-height:calc(100dvh - 108px)!important;
  margin:0!important;padding:9px!important;
  border:1px solid rgba(222,228,237,.88)!important;
  border-radius:20px!important;
  background:rgba(255,255,255,.72)!important;
  box-shadow:0 14px 38px rgba(31,43,70,.055)!important;
  backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);
  overflow:auto!important;scrollbar-width:thin;
}
.toc>details>summary{
  position:sticky!important;top:-9px!important;z-index:6!important;
  margin:-1px -1px 5px!important;padding:12px 12px!important;
  border:0!important;border-radius:14px!important;
  background:rgba(255,255,255,.93)!important;color:#34415a!important;
  font-size:11.5px!important;font-weight:900!important;letter-spacing:.01em;
}
.toc a{border-radius:11px!important;transition:.16s ease}
.toc a:hover{background:#f2f5ff!important;color:#2e50c7!important}
.toc a.is-active{background:linear-gradient(135deg,#edf1ff,#f3efff)!important;color:#304ec4!important;box-shadow:inset 0 0 0 1px #dfe5ff}
.toc-objective-group{border:0!important;background:transparent!important}
.toc-objective-group>summary{border-radius:13px!important;padding:9px!important}
.toc-objective-num{background:#edf1ff!important;color:#3959c7!important;border-radius:9px!important}
.toc-objective-actions{display:grid!important;grid-template-columns:1fr 1fr!important;gap:6px!important}
.toc-action{display:flex!important;justify-content:center!important;background:#f7f9fc!important;border:1px solid #edf0f5!important}
.toc-topics .toc-group{background:transparent!important;border:0!important}
.toc-topics .toc-group>summary{background:transparent!important;border-radius:10px!important}
.toc-topics .toc-group>summary span:first-child{background:#f0f3f8!important;color:#68778f!important;border-radius:8px!important}

/* global objective nav */
.objective-global-nav{
  position:relative;margin:0 0 16px!important;padding:9px!important;
  border:1px solid var(--m-line)!important;border-radius:18px!important;
  background:rgba(255,255,255,.78)!important;box-shadow:0 10px 30px rgba(29,42,68,.045)!important;
  backdrop-filter:blur(12px);
}
.objective-global-nav>a,.objective-global-nav .center a{
  display:inline-flex;align-items:center;min-height:36px;padding:7px 11px;
  border-radius:11px;color:#526078;text-decoration:none;font-size:10.5px;font-weight:850;
}
.objective-global-nav>a:hover,.objective-global-nav .center a:hover{background:#f1f4fb;color:#2f50c7}
.objective-global-nav .center{gap:3px!important;color:#c4cad4}

/* lesson pages */
.page{
  width:min(100%,850px)!important;min-height:auto!important;
  margin:0 auto 24px!important;padding:42px 48px 46px!important;
  border:1px solid rgba(226,231,239,.9)!important;border-radius:var(--m-radius)!important;
  background:rgba(255,255,255,.94)!important;
  box-shadow:var(--m-shadow)!important;overflow:hidden!important;
  scroll-margin-top:88px!important;
}
.page::before{display:none!important}
.page::after{right:24px!important;bottom:17px!important;color:#b1bac7!important;font-size:9px!important;font-weight:800!important;letter-spacing:.05em}
.page-index{
  margin:-7px 0 18px!important;padding:0 0 12px!important;
  border-bottom:1px solid #edf0f5!important;color:#919bac!important;font-size:9px!important;letter-spacing:.1em!important;
}
.kicker{gap:6px!important;margin-bottom:10px!important}
.badge{
  display:inline-flex;align-items:center;min-height:25px;padding:4px 9px!important;
  border:1px solid #e6eaf1!important;border-radius:999px!important;background:#f8fafc!important;
  color:#607087!important;font-size:9px!important;font-weight:850!important;letter-spacing:.01em;
}
.badge.blue{background:#eef3ff!important;border-color:#dfe6ff!important;color:#3d59be!important}
.badge.red{background:#fff1f3!important;border-color:#f7dfe3!important;color:#a34351!important}
.badge.yellow{background:#fff8e7!important;border-color:#f4e6ba!important;color:#8e670f!important}
.badge.gray{background:#f3f5f8!important;border-color:#e8ebef!important;color:#687486!important}
h1{max-width:none!important;margin:4px 0 11px!important;color:#172033!important;font-size:31px!important;line-height:1.25!important;font-weight:900!important;letter-spacing:-.035em!important}
.lead{max-width:740px!important;margin:0 0 18px!important;color:#536078!important;font-size:14.5px!important;line-height:1.85!important}
h2{
  counter-increment:v3section;grid-template-columns:30px 1fr!important;gap:10px!important;
  margin:32px 0 13px!important;color:#202d43!important;font-size:18px!important;line-height:1.45!important;font-weight:900!important;letter-spacing:-.015em!important;
}
h2::before{
  width:29px!important;height:29px!important;border-radius:10px!important;background:#eef2f8!important;color:#6b788d!important;
  box-shadow:inset 0 0 0 1px #e3e8ef;font-size:9px!important;
}
h3{color:#27354b!important;font-size:14px!important;font-weight:850!important}
p{color:#3d4a60}
.goal{
  margin:15px 0 20px!important;padding:14px 16px!important;border:1px solid #dfe7ff!important;border-radius:15px!important;
  background:linear-gradient(135deg,#f2f5ff,#f8f7ff)!important;box-shadow:none!important;
  color:#40506b!important;font-size:13px!important;line-height:1.75!important;
}
.goal b{color:#3153be!important}
.official{
  margin:0 0 18px!important;padding:9px 12px!important;border:0!important;border-radius:11px!important;
  background:#f8fafc!important;color:#778396!important;font-size:10.5px!important;line-height:1.65!important;
}
.official strong{color:#58677d!important}

/* hero / overview */
.hero{
  position:relative!important;padding-top:48px!important;
  background:
    radial-gradient(620px 240px at 88% -40px,rgba(99,74,255,.12),transparent 68%),
    radial-gradient(540px 260px at -20px 0,rgba(49,91,255,.10),transparent 68%),
    rgba(255,255,255,.97)!important;
  border-color:#dfe5f1!important;
  box-shadow:var(--m-shadow-lg)!important;
}
.hero::after{color:#aab4c2!important}
.hero h1{font-size:38px!important;letter-spacing:-.045em!important}
.hero .lead{font-size:15px!important;color:#516079!important}
.hero .goal{background:rgba(239,243,255,.9)!important;border-color:#d9e1ff!important}
.route-ribbon{gap:7px!important;margin:15px 0 3px!important;padding:4px 0 9px!important}
.route-ribbon span{
  min-height:29px!important;padding:5px 10px!important;border:1px solid #e3e8f1!important;border-radius:999px!important;
  background:rgba(248,250,253,.9)!important;color:#647188!important;font-size:9.5px!important;font-weight:750!important;
}

/* content primitives */
.grid2,.grid3{gap:10px!important}
.card{
  padding:14px 15px!important;border:1px solid #e9edf2!important;border-radius:15px!important;background:#fbfcfe!important;
  box-shadow:0 1px 0 rgba(255,255,255,.8)!important;
}
.card.key{background:#f4f7ff!important;border-color:#e2e8ff!important}.card.ok{background:#f1faf6!important;border-color:#ddefe5!important}.card.warn{background:#fff9ed!important;border-color:#f4e6c7!important}
.card h3{margin-top:0!important}.card p{font-size:12px!important;color:#536077!important}
.callout,.beginner,.reading,.whybox,.remember,.lab,.depth-note,.fail,.semantic-audit-note,.exam-bank-note{
  border:1px solid transparent!important;border-radius:14px!important;box-shadow:none!important;
  padding:12px 14px!important;font-size:11.5px!important;line-height:1.7!important;
}
.callout{background:#f2faf8!important;border-color:#dbeee8!important;color:#3e635c!important}
.callout.warn,.whybox,.depth-note{background:#fff9eb!important;border-color:#f1e4c4!important;color:#6e5a2c!important}
.callout.danger,.fail{background:#fff4f5!important;border-color:#f4dde1!important;color:#794852!important}
.beginner,.reading{background:#f4f8ff!important;border-color:#e0e9f6!important;color:#4d627d!important}
.remember,.lab{background:#f1f9f5!important;border-color:#dcece3!important;color:#3f6655!important}
.semantic-audit-note,.exam-bank-note{background:#f6f3ff!important;border-color:#e8defb!important;color:#5d5272!important}
.callout,.beginner,.reading,.whybox,.remember,.lab,.depth-note,.fail,.semantic-audit-note,.exam-bank-note{border-left-width:1px!important}
.diagram,.diagram.light,.output{
  border:1px solid #e4e9f0!important;border-radius:15px!important;background:#f8fafc!important;color:#26374e!important;
  box-shadow:inset 0 1px 0 #fff!important;padding:15px 16px!important;font-size:11.5px!important;line-height:1.75!important;
}
.code{
  position:relative;border:1px solid #27334a!important;border-radius:16px!important;background:#131b2c!important;color:#edf3ff!important;
  box-shadow:0 10px 26px rgba(16,24,42,.10)!important;padding:16px 17px!important;font-size:11.5px!important;line-height:1.72!important;
}
code{border:1px solid #e5e9ef!important;background:#f3f5f8!important;color:#2d4669!important;border-radius:7px!important;padding:.1em .38em!important}
.code code{border:0!important;background:transparent!important;color:inherit!important;padding:0!important}
.table-wrap{margin:14px 0!important;border:1px solid #e5eaf0!important;border-radius:15px!important;overflow:auto!important;background:#fff!important}
table{font-size:11.5px!important}th,td{padding:10px 11px!important;border-bottom:1px solid #edf0f4!important}th{background:#f7f9fc!important;color:#556379!important;font-size:10.5px!important}
.term-list,.cmd-why{border:1px solid #e6eaf0!important;border-radius:15px!important;overflow:hidden!important;font-size:11.5px!important;background:#fff!important}
.term-list .term,.cmd-why .what{background:#f7f9fc!important;color:#44546b!important}
.beforeafter .state{border:1px solid #e5eaf0!important;border-radius:14px!important;background:#fafbfd!important}
.practice{border:1px solid #e4e9f0!important;border-radius:16px!important;box-shadow:0 8px 24px rgba(29,42,68,.04)!important}
.practice-title{background:#f5f7fb!important;color:#53627a!important;border-bottom-color:#e8ecf2!important;padding:11px 14px!important}
.practice-body{padding:14px 15px!important}

/* decision panel */
.judge{
  position:relative;margin-top:26px!important;padding:16px 17px!important;border:1px solid #eadfb8!important;border-radius:16px!important;
  background:linear-gradient(135deg,#fff9e8,#fffcf4)!important;box-shadow:none!important;
}
.judge-eyebrow{color:#9a7417!important;font-size:8.5px!important}.judge h3{color:#624b15!important;font-size:14px!important}.judge ul{font-size:11.5px!important}

/* page navigation */
.page-nav{margin:30px 0 -4px!important;padding-top:15px!important;border-top:1px solid #edf0f4!important;font-size:10.5px!important}
.page-nav a{
  display:inline-flex;align-items:center;min-height:35px;padding:7px 10px;border-radius:10px;
  background:#f7f9fc;color:#53647d!important;text-decoration:none!important;font-weight:850!important;
}
.page-nav a:hover{background:#eef2ff;color:#334fc0!important}

/* index / route */
.split-note{
  margin:0 0 16px!important;padding:12px 14px!important;border:1px solid #e2e7ef!important;border-radius:16px!important;
  background:rgba(255,255,255,.76)!important;color:#68758a!important;font-size:11px!important;box-shadow:0 8px 24px rgba(29,42,68,.035)!important;
}
.learning-route-page,.mastery-page{border-top:0!important}
.route-stage{margin:23px 0 28px!important}
.route-stage-title{margin-bottom:10px!important;color:#4d5c75!important;font-size:12px!important}
.route-stage-title span{width:29px!important;height:29px!important;border-radius:10px!important;background:#edf1ff!important;color:#3b59c6!important;font-size:9px!important}
.learning-sequence{gap:9px!important}
.learn-row{
  grid-template-columns:38px minmax(118px,155px) minmax(150px,1fr) auto!important;gap:11px!important;
  padding:11px 12px!important;border:1px solid #e9edf3!important;border-radius:15px!important;background:#fbfcfe!important;
  transition:.18s ease;box-shadow:0 1px 0 rgba(255,255,255,.8);
}
.learn-row:hover{transform:translateY(-1px);border-color:#dce3ef!important;box-shadow:0 9px 24px rgba(28,40,65,.055)}
.learn-row .num{width:30px!important;height:30px!important;border-radius:10px!important;background:#eef2ff!important;color:#3e5ac3!important}
.learn-row .why{font-size:10.5px!important;color:#68758a!important}.learn-row .status{background:#eaf8f1!important;color:#287252!important}.learn-row .objective-open{padding:6px 9px;border-radius:9px;background:#f0f3ff;color:#3c58c7;font-size:9.5px!important;white-space:nowrap}

/* mastery dashboard */
.mastery-summary{gap:12px!important;margin:16px 0!important}
.mastery-meter{
  padding:16px!important;border:1px solid #e7e9f1!important;border-radius:17px!important;background:#faf9ff!important;box-shadow:none!important;
}
.mastery-meter strong{color:#625a7d!important}.mastery-big{font-size:34px!important;color:#2b3550!important}
.mastery-bar{height:9px!important;background:#e9eaf1!important}.mastery-bar>i{background:linear-gradient(90deg,var(--m-primary),var(--m-primary-2))!important}
.index-objective-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:11px!important;margin-top:18px!important}
.index-objective-card{
  position:relative;padding:16px!important;border:1px solid #e6eaf1!important;border-radius:18px!important;background:#fff!important;
  box-shadow:0 8px 28px rgba(29,42,68,.045)!important;transition:.18s ease;overflow:hidden;
}
.index-objective-card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:#cbd4e2}
.index-objective-card:hover{transform:translateY(-2px);box-shadow:0 16px 34px rgba(29,42,68,.075)!important}
.index-objective-card .head b{font-size:12px!important;color:#2b384e!important}.index-objective-card .pct{font-size:29px!important;color:#31435f!important;letter-spacing:-.04em}
.index-objective-card .mc-meta{font-size:9.5px!important;color:#7b8799!important}.index-objective-card .mc-bank{font-size:9px!important;color:#9aa4b2!important;margin-top:3px}
.index-objective-card .bar{height:7px!important;background:#eef1f5!important;margin:12px 0!important}.index-objective-card .bar i{background:linear-gradient(90deg,var(--m-primary),var(--m-primary-2))!important;border-radius:999px}
.index-objective-card .actions a{display:inline-flex;padding:6px 8px;border-radius:9px;background:#f5f7fb;color:#53637b;font-size:9.5px}.index-objective-card .actions a:first-child{background:#eef2ff;color:#3c57c4}

/* checkpoint / quiz */
.checkpoint-page{background:linear-gradient(180deg,#fff 0,#fbfaff 100%)!important;border-color:#e5e1f1!important}
.quiz-panel{
  padding:17px!important;border:1px solid #e5e1ef!important;border-radius:18px!important;background:#fff!important;box-shadow:0 14px 38px rgba(60,48,92,.07)!important;
}
.quiz-head{margin-bottom:13px!important}.quiz-head h3{font-size:15px!important}.quiz-stage{padding:5px 8px!important;border-radius:999px!important;background:#f1edff!important;color:#654eb2!important}
.quiz-progress{font-size:10px!important;color:#8b95a4!important}.quiz-question{margin:13px 0 15px!important;font-size:15px!important;line-height:1.68!important;color:#26334a!important}
.quiz-options{gap:8px!important}.quiz-option{
  min-height:47px;padding:11px 12px!important;border:1px solid #e1e6ed!important;border-radius:13px!important;background:#fbfcfe!important;
  color:#344159!important;font-size:11.5px!important;line-height:1.55!important;transition:.14s ease;
}
.quiz-option:hover{transform:translateY(-1px);border-color:#cfd8e6!important;background:#f6f8fc!important;box-shadow:0 6px 18px rgba(28,40,65,.045)}
.quiz-option.multi-selected{outline:0!important;border-color:#8da1ff!important;background:#f0f3ff!important;box-shadow:inset 0 0 0 1px #c9d3ff!important}
.quiz-option.correct{border-color:#a8d9c3!important;background:#eef9f3!important}.quiz-option.wrong{border-color:#edbcc2!important;background:#fff3f4!important}
.quiz-short input{min-height:45px!important;border:1px solid #dfe5ed!important;border-radius:12px!important;padding:10px 12px!important;background:#fbfcfe!important;color:#28364c!important;outline:none}.quiz-short input:focus{border-color:#8399ff!important;box-shadow:0 0 0 3px rgba(49,91,255,.10)}
.quiz-submit,.quiz-next,.quiz-multi-submit,.mastery-btn{
  border:0!important;border-radius:11px!important;background:linear-gradient(135deg,var(--m-primary),var(--m-primary-2))!important;
  color:#fff!important;box-shadow:0 7px 18px rgba(49,91,255,.18)!important;font-weight:850!important;
}
.quiz-feedback{padding:12px 13px!important;border:1px solid #e6eaf0!important;border-radius:14px!important;background:#f8fafc!important;font-size:10.8px!important}.quiz-feedback.ok{background:#f0faf5!important;border-color:#dcefe5!important}.quiz-feedback.ng{background:#fff5f6!important;border-color:#f2dfe2!important}
.quiz-feedback .fb-choice{border:1px solid #e9edf2;border-radius:11px!important;background:#fff!important;padding:9px 10px!important}
.quiz-result-breakdown{gap:7px!important}.quiz-result-breakdown>div{border-radius:12px!important}

/* subtle motion */
@media(prefers-reduced-motion:no-preference){
  .page,.index-objective-card,.learn-row,.quiz-option,.page-nav a,.navbtn{transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease,background .18s ease,color .18s ease}
}

/* phones: app-like, no edge-to-edge paper separators */
@media(max-width:860px){
  body{background:#f5f7fb!important;font-size:14px!important}
  .topbar{min-height:56px;padding:7px 9px!important;gap:6px!important;background:rgba(249,250,253,.94)!important}
  .topbar .brand{margin-right:auto!important}.topbar .brand b{font-size:11.5px!important}.topbar .brand small{display:none!important}
  .topbar .topnav{gap:3px!important}.topbar .navbtn{min-height:32px!important;padding:6px 7px!important;border-radius:10px!important;font-size:9px!important}
  .layout{display:block!important;margin:10px 0 54px!important;padding:0 10px!important}
  .toc{position:relative!important;top:auto!important;max-height:none!important;margin:0 0 10px!important;padding:7px!important;border-radius:17px!important;background:rgba(255,255,255,.9)!important;box-shadow:0 8px 24px rgba(29,42,68,.045)!important;overflow:visible!important}
  .toc>details>summary{position:static!important;top:auto!important;margin:0!important;padding:10px!important;background:transparent!important}
  .objective-global-nav{margin:0 0 10px!important;padding:7px!important;border-radius:15px!important;background:#fff!important}
  .objective-global-nav>a,.objective-global-nav .center a{min-height:32px;padding:6px 7px;font-size:9px}.objective-global-nav .center{order:3;width:100%;justify-content:center;border-top:1px solid #eef1f5;padding-top:5px}
  .page{width:100%!important;margin:0 0 11px!important;padding:24px 18px 37px!important;border:1px solid #e6eaf1!important;border-radius:19px!important;background:#fff!important;box-shadow:0 8px 28px rgba(29,42,68,.055)!important}
  .page::after{right:17px!important;bottom:12px!important}.page-index{margin-top:0!important}
  .hero{padding-top:29px!important;background:radial-gradient(420px 190px at 94% -30px,rgba(91,70,255,.11),transparent 70%),#fff!important;box-shadow:0 12px 34px rgba(29,42,68,.07)!important}
  h1,.hero h1{font-size:25px!important;line-height:1.32!important;letter-spacing:-.035em!important}.hero .lead,.lead{font-size:13.5px!important;line-height:1.8!important}
  h2{grid-template-columns:27px 1fr!important;gap:8px!important;margin-top:27px!important;font-size:16px!important}.goal{padding:12px 13px!important;font-size:12.2px!important}.official{font-size:9.8px!important}
  .grid2,.grid3{grid-template-columns:1fr!important}.card{padding:13px!important}
  .diagram,.diagram.light,.output,.code{font-size:10.5px!important;padding:13px!important;border-radius:13px!important}
  .table-wrap{margin-left:0!important;margin-right:0!important;border-radius:13px!important}
  .term-list,.cmd-why{grid-template-columns:1fr!important}.term-list .term,.cmd-why .what{border-bottom:0!important}
  .beforeafter{grid-template-columns:1fr!important}.beforeafter .mid{transform:rotate(90deg);height:22px}
  .page-nav{gap:6px!important}.page-nav a{max-width:48%;padding:7px 8px;font-size:9.5px;line-height:1.35}
  .route-ribbon{display:flex!important;overflow-x:auto!important;margin-right:-18px!important;padding-right:18px!important}.route-ribbon span{white-space:nowrap!important;min-height:27px!important}
  .learn-row{grid-template-columns:34px minmax(0,1fr) auto!important;padding:10px!important}.learn-row .why{grid-column:2/4}.learn-row .objective-open{grid-column:2/4;justify-self:start}.learn-row .status{grid-column:3;grid-row:1}
  .mastery-summary{grid-template-columns:1fr!important}.index-objective-grid{grid-template-columns:1fr!important}.index-objective-card{padding:14px!important}
  .quiz-panel{padding:13px!important;border-radius:16px!important}.quiz-question{font-size:14px!important}.quiz-option{font-size:11px!important}.quiz-short{flex-direction:column!important}.quiz-submit{width:100%!important;min-height:42px}.quiz-feedback .fb-note{font-size:10px!important}
  .split-note{margin-bottom:10px!important}
}

@media(max-width:420px){
  .topbar .navbtn:nth-last-child(2){display:none!important}
  .page{padding-left:15px!important;padding-right:15px!important}
  h1,.hero h1{font-size:23px!important}
  .badge{font-size:8.5px!important;padding:3px 7px!important}
}

@media print{
  body{background:#fff!important}.topbar,.toc,.reading-progress{display:none!important}.layout{display:block!important;margin:0!important;padding:0!important}
  .page{width:182mm!important;margin:0!important;padding:14mm!important;border:0!important;border-radius:0!important;box-shadow:none!important;page-break-after:always!important}.page:last-child{page-break-after:auto!important}
}
.index-objective-card.level-100::before{background:#1b9a70}.index-objective-card.level-75::before{background:#6957d9}.index-objective-card.level-50::before{background:#3f73da}.index-objective-card.level-25::before{background:#d69a28}.index-objective-card.level-100 .pct{color:#177957!important}.index-objective-card.level-75 .pct{color:#5e4cc3!important}.index-objective-card.level-50 .pct{color:#3564bf!important}.index-objective-card.level-25 .pct{color:#a97112!important}

/* ==========================================================
   v65 Web App Shell — application-first UI
   ========================================================== */
:root{
  --wa-bg:#f6f7fb;
  --wa-sidebar:#111827;
  --wa-sidebar-2:#182235;
  --wa-sidebar-text:#d8e0ee;
  --wa-sidebar-muted:#8f9bb0;
  --wa-primary:#5b5cf0;
  --wa-primary-2:#7657ee;
  --wa-cyan:#16a4c8;
  --wa-green:#16a36f;
  --wa-amber:#d9941b;
  --wa-border:#e5e9f0;
  --wa-surface:#ffffff;
  --wa-text:#182033;
  --wa-muted:#738096;
  --wa-shadow:0 12px 32px rgba(20,29,48,.06);
}
html{background:var(--wa-bg)!important}
body{background:var(--wa-bg)!important;color:var(--wa-text)!important}
body.objective-app,body.index-app{min-height:100dvh}

/* top application bar */
.topbar{
  height:60px!important;min-height:60px!important;padding:0 22px!important;
  background:rgba(255,255,255,.94)!important;border-bottom:1px solid var(--wa-border)!important;
  box-shadow:none!important;backdrop-filter:blur(18px) saturate(150%)!important;
}
.topbar .brand{display:flex!important;align-items:center!important;gap:10px!important;margin-right:auto!important}
.topbar .brand::before{
  content:"303";display:grid;place-items:center;width:34px;height:34px;border-radius:10px;
  background:linear-gradient(145deg,var(--wa-primary),var(--wa-primary-2));color:#fff;
  font-size:10px;font-weight:950;letter-spacing:.05em;box-shadow:0 7px 18px rgba(91,92,240,.24)
}
.topbar .brand b{font-size:12px!important;letter-spacing:-.01em!important}.topbar .brand small{margin-top:2px!important;font-size:9.5px!important}
.topbar .navbtn{min-height:34px!important;padding:6px 10px!important;border-radius:9px!important;color:#657187!important;font-size:10px!important}
.topbar .navbtn:hover{background:#f3f4f8!important;border-color:#eceef3!important;box-shadow:none!important}
.app-breadcrumb{display:flex;align-items:center;gap:7px;margin-right:auto;color:#8994a6;font-size:10px;font-weight:800;min-width:0}
.app-breadcrumb .crumb-current{color:#313d53;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:360px}
.app-breadcrumb .slash{color:#c0c7d1}
.app-top-status{display:flex;align-items:center;gap:6px;margin-left:4px}
.app-status-chip{display:inline-flex;align-items:center;gap:5px;height:28px;padding:0 9px;border-radius:8px;background:#f4f5f8;color:#647087;font-size:9px;font-weight:850;white-space:nowrap}
.app-status-chip::before{content:"";width:6px;height:6px;border-radius:50%;background:#aeb7c5}
.app-status-chip.level-100::before{background:var(--wa-green)}.app-status-chip.level-75::before{background:var(--wa-primary)}.app-status-chip.level-50::before{background:#4a82dc}.app-status-chip.level-25::before{background:var(--wa-amber)}

/* true app workspace */
.layout{
  max-width:none!important;margin:0!important;padding:0!important;gap:0!important;
  grid-template-columns:252px minmax(0,1fr)!important;align-items:stretch!important;
}
.toc{
  position:sticky!important;top:60px!important;z-index:30!important;
  height:calc(100dvh - 60px)!important;max-height:none!important;width:252px!important;
  padding:14px 11px 22px!important;margin:0!important;border:0!important;border-right:1px solid #202c41!important;border-radius:0!important;
  background:linear-gradient(180deg,var(--wa-sidebar),#101725)!important;
  color:var(--wa-sidebar-text)!important;box-shadow:none!important;backdrop-filter:none!important;overflow:auto!important;
}
.toc>details>summary{
  position:static!important;margin:0 3px 10px!important;padding:8px 9px!important;background:transparent!important;
  color:#77859c!important;font-size:9px!important;text-transform:uppercase;letter-spacing:.12em!important;border-radius:0!important;
}
.toc>details>summary::after{color:#66748b!important}
.toc nav>a,.toc a{color:#aeb9cb!important;font-size:10.5px!important;font-weight:700!important;padding:8px 10px!important;border-radius:9px!important}
.toc a:hover{background:#1c273a!important;color:#fff!important}
.toc a.is-active{background:#242f46!important;color:#fff!important;box-shadow:inset 2px 0 0 #7b7cf6!important}
.toc-objective-group>summary{color:#e3e8f1!important;background:transparent!important;padding:9px 8px!important}
.toc-objective-group>summary:hover{background:#192438!important}
.toc-objective-num{background:#29364d!important;color:#c8d1e0!important;border-radius:7px!important}
.toc-objective-qbadge{background:#29364d!important;color:#98a8c0!important;border:0!important}
.toc-objective-actions{gap:5px!important;padding:2px 4px 7px!important}.toc-action{background:#182338!important;border:1px solid #24314a!important;color:#aebad0!important}
.toc-action:hover{background:#223049!important;color:#fff!important}.toc-action.checkpoint{background:#251f3f!important;color:#c6b9ff!important;border-color:#332b54!important}
.toc-topics .toc-group>summary{color:#8f9bb0!important;background:transparent!important;padding:7px 8px!important}
.toc-topics .toc-group>summary:hover{background:#182338!important;color:#dfe5ef!important}
.toc-topics .toc-group>summary span:first-child{background:#202c41!important;color:#8f9bb0!important;border-radius:6px!important}
.checkpoint-toc-link{background:#251f3f!important;color:#c7bcfb!important}

/* sidebar app identity and progress card injected by JS */
.sidebar-app-head{margin:1px 5px 15px;padding:9px 8px 13px;border-bottom:1px solid #263249}
.sidebar-app-head .product{display:flex;align-items:center;gap:9px;color:#fff;font-size:11px;font-weight:900}
.sidebar-app-head .product-mark{display:grid;place-items:center;width:29px;height:29px;border-radius:9px;background:linear-gradient(145deg,#6d6ef5,#8a5ff0);font-size:9px;box-shadow:0 7px 16px rgba(91,92,240,.22)}
.sidebar-app-head small{display:block;margin:7px 0 0 38px;color:#728098;font-size:8.5px;font-weight:750}
.sidebar-progress-card{margin:0 5px 12px;padding:11px;border:1px solid #263249;border-radius:12px;background:#162034}
.sidebar-progress-card .sp-top{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.sidebar-progress-card b{color:#ecf1f8;font-size:10px}.sidebar-progress-card strong{color:#fff;font-size:20px;line-height:1}.sidebar-progress-card .sp-meta{margin-top:4px;color:#7f8da3;font-size:8.5px}.sidebar-progress-card .sp-bar{height:5px;margin-top:10px;border-radius:999px;background:#263248;overflow:hidden}.sidebar-progress-card .sp-bar i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#6d6ef5,#8a5ff0)}

/* main canvas */
.layout>main{padding:22px 34px 110px!important;background:var(--wa-bg)!important;min-height:calc(100dvh - 60px)!important}
.objective-global-nav{
  max-width:1040px!important;margin:0 auto 14px!important;padding:5px 6px!important;border:1px solid var(--wa-border)!important;border-radius:12px!important;background:#fff!important;box-shadow:none!important;
}
.objective-global-nav>a,.objective-global-nav .center a{min-height:32px!important;padding:6px 9px!important;border-radius:8px!important;color:#6d788b!important;font-size:9.5px!important}
.objective-global-nav>a:hover,.objective-global-nav .center a:hover{background:#f5f6f9!important;color:#353f53!important}

/* application context header */
.app-context{
  max-width:1040px;margin:0 auto 14px;padding:19px 21px;border:1px solid var(--wa-border);border-radius:16px;background:#fff;box-shadow:0 6px 22px rgba(20,29,48,.035);
  display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:center
}
.app-context .eyebrow{font-size:9px;font-weight:900;letter-spacing:.12em;color:#9aa4b4;text-transform:uppercase}
.app-context h2{display:block!important;margin:3px 0 5px!important;font-size:20px!important;line-height:1.3!important;counter-increment:none!important;color:#1c2638!important}
.app-context h2::before{display:none!important}.app-context p{margin:0;color:#778296;font-size:10.5px}
.app-context-metrics{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.app-context-metric{min-width:74px;padding:8px 10px;border:1px solid #eceef3;border-radius:10px;background:#fafbfc;text-align:center}.app-context-metric b{display:block;color:#29354b;font-size:12px}.app-context-metric span{display:block;margin-top:1px;color:#929cac;font-size:8px;font-weight:750}

/* content feels like modules inside a workspace, not paper pages */
.page{
  width:min(100%,1040px)!important;margin:0 auto 12px!important;padding:34px 42px 38px!important;
  border:1px solid var(--wa-border)!important;border-radius:16px!important;background:#fff!important;box-shadow:0 4px 16px rgba(20,29,48,.03)!important;
}
.page:hover{border-color:#dde2eb!important}.page::after{right:18px!important;bottom:12px!important;color:#c0c6d0!important}
.page-index{margin:-2px 0 16px!important;padding:0 0 11px!important;border-bottom:1px solid #eef0f4!important;color:#a0a8b6!important}
.hero{padding:39px 42px!important;background:linear-gradient(135deg,#ffffff 0,#f8f8ff 62%,#f1efff 100%)!important;border-color:#dfdff0!important;box-shadow:0 8px 26px rgba(67,58,122,.05)!important}
.hero h1{font-size:34px!important}.hero::before{content:""!important;display:block!important;position:absolute;right:28px;top:28px;width:86px;height:86px;border-radius:24px;background:linear-gradient(145deg,rgba(91,92,240,.11),rgba(118,87,238,.04));transform:rotate(8deg)}
.hero>*{position:relative;z-index:1}
h1{font-size:28px!important}h2{margin-top:28px!important}.goal{background:#f5f6ff!important;border-color:#e4e5ff!important}.goal b{color:#4d4ed4!important}
.badge.blue{background:#f0f0ff!important;border-color:#e0e0fb!important;color:#5657d4!important}
.judge{background:#fffaf0!important;border-color:#f0e4c5!important}.quiz-stage{background:#f0efff!important;color:#5b4bc3!important}

/* dashboard becomes SaaS dashboard */
.index-app .layout>main{padding-top:28px!important}.index-app .page{width:min(100%,1180px)!important}.index-app .learning-route-page,.index-app .mastery-page{box-shadow:none!important}
.mastery-summary{grid-template-columns:1.35fr .65fr!important}.mastery-meter{background:#fff!important;border-color:#e8eaf0!important;border-radius:14px!important;padding:17px!important}.mastery-big{font-size:38px!important}
.index-objective-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:10px!important}.index-objective-card{padding:14px!important;border-radius:13px!important;box-shadow:none!important;background:#fff!important}.index-objective-card:hover{transform:translateY(-1px)!important;border-color:#d9deea!important;box-shadow:0 8px 22px rgba(20,29,48,.045)!important}.index-objective-card::before{width:2px!important}.index-objective-card .head b{font-size:11.5px!important}.index-objective-card .pct{font-size:25px!important}.index-objective-card .actions a{border:1px solid #eceef3!important;background:#fafbfc!important;color:#69758b!important}.index-objective-card .actions a:first-child{background:#f1f1ff!important;border-color:#e4e4fb!important;color:#5354cf!important}

/* fixed study action dock */
.study-dock{position:fixed;z-index:90;left:calc(252px + (100vw - 252px)/2);bottom:18px;transform:translateX(-50%);width:min(680px,calc(100vw - 300px));padding:7px 8px 7px 13px;border:1px solid rgba(216,220,230,.94);border-radius:14px;background:rgba(255,255,255,.94);box-shadow:0 16px 46px rgba(20,29,48,.14);backdrop-filter:blur(18px);display:flex;align-items:center;gap:11px}
.study-dock .dock-info{min-width:0;flex:1}.study-dock .dock-title{display:flex;align-items:center;gap:7px;color:#2b3548;font-size:10px;font-weight:900}.study-dock .dock-level{display:inline-flex;align-items:center;height:20px;padding:0 6px;border-radius:6px;background:#f1f2f6;color:#727d90;font-size:8.5px}.study-dock .dock-sub{margin-top:2px;color:#9199a8;font-size:8.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.study-dock .dock-track{width:112px;height:5px;border-radius:999px;background:#eceef2;overflow:hidden}.study-dock .dock-track i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--wa-primary),var(--wa-primary-2))}.study-dock a{display:inline-flex;align-items:center;justify-content:center;height:34px;padding:0 12px;border-radius:9px;text-decoration:none;font-size:9.5px;font-weight:850}.study-dock .dock-secondary{background:#f4f5f8;color:#687489}.study-dock .dock-primary{background:linear-gradient(135deg,var(--wa-primary),var(--wa-primary-2));color:#fff;box-shadow:0 7px 16px rgba(91,92,240,.18)}

/* mobile app navigation */
.mobile-appbar{display:none}
@media(max-width:980px){
  .layout{grid-template-columns:218px minmax(0,1fr)!important}.toc{width:218px!important}.layout>main{padding-left:20px!important;padding-right:20px!important}.study-dock{left:calc(218px + (100vw - 218px)/2);width:min(640px,calc(100vw - 250px))}.index-objective-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media(max-width:860px){
  .topbar{height:54px!important;min-height:54px!important;padding:0 10px!important}.topbar .brand::before{width:30px;height:30px;border-radius:8px}.topbar .brand b{font-size:10.5px!important}.topbar .topnav{display:none!important}.app-breadcrumb{display:none!important}.app-top-status{margin-left:auto}.app-status-chip{height:26px;padding:0 7px}
  .layout{display:block!important}.toc{position:relative!important;top:auto!important;width:100%!important;height:auto!important;max-height:none!important;margin:8px 10px!important;border:1px solid #263249!important;border-radius:14px!important;padding:8px!important;background:#121b2a!important}.sidebar-app-head,.sidebar-progress-card{display:none!important}
  .layout>main{padding:8px 10px 84px!important;min-height:auto!important}.objective-global-nav{display:none!important}.app-context{padding:14px!important;margin:0 auto 9px!important;border-radius:14px!important;grid-template-columns:1fr}.app-context h2{font-size:17px!important}.app-context-metrics{justify-content:flex-start}.app-context-metric{min-width:66px;padding:7px 8px}
  .page{padding:22px 16px 31px!important;margin-bottom:9px!important;border-radius:15px!important;box-shadow:none!important}.hero{padding:26px 18px!important}.hero h1,h1{font-size:24px!important}
  .index-objective-grid{grid-template-columns:1fr!important}.mastery-summary{grid-template-columns:1fr!important}
  .study-dock{display:none!important}.mobile-appbar{display:grid;grid-template-columns:repeat(3,1fr);position:fixed;z-index:100;left:8px;right:8px;bottom:max(8px,env(safe-area-inset-bottom));padding:6px;border:1px solid rgba(218,222,231,.95);border-radius:14px;background:rgba(255,255,255,.96);box-shadow:0 14px 38px rgba(20,29,48,.16);backdrop-filter:blur(18px)}.mobile-appbar a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:44px;border-radius:9px;color:#7b8494;text-decoration:none;font-size:8px;font-weight:850}.mobile-appbar a strong{font-size:13px;color:#586479}.mobile-appbar a.primary{background:#f0efff;color:#5b4bc3}.mobile-appbar a.primary strong{color:#5b4bc3}
}
@media(max-width:420px){.app-top-status .app-status-chip:not(:last-child){display:none}.topbar .brand small{display:none!important}.app-context-metrics{display:grid;grid-template-columns:repeat(3,1fr);width:100%}.app-context-metric{min-width:0}}
@media print{.study-dock,.mobile-appbar,.app-context,.sidebar-app-head,.sidebar-progress-card{display:none!important}.layout>main{padding:0!important}}

/* =========================================================
   v66 Mobile App UI — mobile is a separate interaction model
   ========================================================= */
.mobile-sheet-overlay,.mobile-sheet-head,.mobile-tabbar,.mobile-top-menu,.mobile-current-section,.mobile-objective-progress{display:none}

@media(max-width:860px){
  :root{--m-bg:#f4f5f8;--m-card:#fff;--m-ink:#182033;--m-muted:#7d8799;--m-line:#e7e9ef;--m-primary:#5b5cf0;--m-primary-soft:#efefff}
  html{scroll-padding-top:72px;scroll-behavior:smooth}
  body{background:var(--m-bg)!important;color:var(--m-ink)!important;padding-bottom:calc(74px + env(safe-area-inset-bottom))!important}
  body.mobile-sheet-open{overflow:hidden}

  /* compact native-like top app bar */
  .topbar{position:sticky!important;top:0!important;z-index:120!important;height:56px!important;min-height:56px!important;padding:0 12px!important;background:rgba(255,255,255,.94)!important;border-bottom:1px solid rgba(229,232,239,.9)!important;box-shadow:none!important;backdrop-filter:blur(20px)!important;-webkit-backdrop-filter:blur(20px)!important}
  .topbar .brand{min-width:0!important;gap:0!important}.topbar .brand::before{width:30px!important;height:30px!important;border-radius:9px!important;font-size:8px!important;flex:0 0 auto!important}
  .topbar .brand b{font-size:10.5px!important;white-space:nowrap!important}.topbar .brand small{display:none!important}
  .app-top-status{display:flex!important;margin-left:auto!important;gap:5px!important}.app-status-chip{height:24px!important;padding:0 7px!important;border-radius:7px!important;font-size:8.5px!important;background:#f4f5f8!important}
  .app-top-status .app-status-chip:first-child{display:none!important}
  .mobile-top-menu{display:grid!important;place-items:center;width:34px;height:34px;margin-left:7px;border:0;border-radius:9px;background:#f3f4f7;color:#556176;font-size:17px;line-height:1;cursor:pointer}
  .mobile-current-section{display:block;position:absolute;left:54px;right:94px;bottom:5px;color:#929aa9;font-size:7.5px;font-weight:750;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none}
  .reading-progress{bottom:-1px!important;height:2px!important}

  /* toc is no longer content; it is an app bottom sheet */
  .layout{display:block!important;margin:0!important;padding:0!important}
  .toc{display:block!important;position:fixed!important;z-index:151!important;left:0!important;right:0!important;top:auto!important;bottom:0!important;width:auto!important;height:min(78dvh,680px)!important;max-height:min(78dvh,680px)!important;margin:0!important;padding:0 12px calc(18px + env(safe-area-inset-bottom))!important;border:0!important;border-radius:24px 24px 0 0!important;background:#fff!important;box-shadow:0 -24px 70px rgba(19,27,45,.22)!important;overflow:auto!important;transform:translateY(calc(100% + 20px))!important;transition:transform .24s cubic-bezier(.2,.75,.2,1)!important;overscroll-behavior:contain!important}
  .toc.mobile-open{transform:translateY(0)!important}
  .toc>details{padding-bottom:16px!important}.toc>details>summary{display:none!important}
  .sidebar-app-head,.sidebar-progress-card{display:none!important}
  .mobile-sheet-overlay{display:block;position:fixed;z-index:150;inset:0;background:rgba(15,22,36,.42);opacity:0;pointer-events:none;transition:opacity .2s ease;backdrop-filter:blur(2px)}
  .mobile-sheet-open .mobile-sheet-overlay{opacity:1;pointer-events:auto}
  .mobile-sheet-head{display:flex;position:sticky;z-index:3;top:0;align-items:center;justify-content:space-between;gap:12px;margin:0 -12px 8px;padding:14px 16px 11px;background:rgba(255,255,255,.96);border-bottom:1px solid #eef0f4;backdrop-filter:blur(14px)}
  .mobile-sheet-head::before{content:"";position:absolute;top:6px;left:50%;width:38px;height:4px;border-radius:99px;background:#d9dde5;transform:translateX(-50%)}
  .mobile-sheet-head b{display:block;font-size:14px;color:#20293b}.sheet-kicker{display:block;margin-bottom:1px;color:#9ca4b2;font-size:7.5px;font-weight:900;letter-spacing:.11em}.mobile-sheet-close{display:grid;place-items:center;width:32px;height:32px;border:0;border-radius:10px;background:#f3f4f7;color:#6c7688;font-size:21px;cursor:pointer}
  .toc-objective{margin:0!important}.toc-objective-group{border:0!important;background:transparent!important}.toc-objective-group>summary{padding:10px 4px!important;border-bottom:1px solid #eef0f4!important}.toc-objective-inner{padding:8px 0!important}.toc-objective-actions{display:grid!important;grid-template-columns:1fr 1fr!important;gap:7px!important;margin:0 0 9px!important}.toc-action{min-height:40px!important;display:flex!important;align-items:center!important;justify-content:center!important;border-radius:11px!important;font-size:10px!important}
  .toc-topics{display:grid!important;gap:6px!important}.toc-group{border:1px solid #eceef3!important;border-radius:12px!important;background:#fafbfc!important;overflow:hidden!important}.toc-group>summary{min-height:42px!important;padding:8px 10px!important;font-size:10.5px!important}.toc-group>div{padding:0 8px 8px!important}.toc-group a,.toc nav>a{min-height:40px!important;display:flex!important;align-items:center!important;padding:8px 10px!important;border-radius:9px!important;font-size:10px!important}.toc nav{display:grid!important;gap:4px!important;padding-top:8px!important}

  /* main workspace */
  .layout>main{padding:10px 10px 18px!important;background:var(--m-bg)!important;min-height:auto!important}
  .objective-global-nav{display:none!important}
  .app-context{display:block!important;margin:0 0 10px!important;padding:15px 15px 13px!important;border:1px solid #e6e8ef!important;border-radius:18px!important;background:linear-gradient(145deg,#fff 0,#fbfbff 100%)!important;box-shadow:0 3px 12px rgba(21,29,48,.035)!important}
  .app-context .eyebrow{font-size:8px!important}.app-context h2{margin:3px 0 4px!important;font-size:18px!important}.app-context p{font-size:10px!important;line-height:1.55!important;color:#818b9c!important}.app-context-metrics{display:none!important}
  .mobile-objective-progress{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:10px;margin-top:11px;padding-top:10px;border-top:1px solid #eff0f4}.mobile-objective-progress>span{color:#697488;font-size:8.5px;font-weight:850}.mobile-objective-progress>i{height:5px;border-radius:99px;background:#ebecef;overflow:hidden}.mobile-objective-progress>i>b{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#5b5cf0,#8a5ff0)}

  .page{width:100%!important;margin:0 0 10px!important;padding:22px 16px 27px!important;border:1px solid #e8eaf0!important;border-radius:18px!important;background:#fff!important;box-shadow:0 2px 8px rgba(20,29,48,.025)!important;overflow:hidden!important}
  .page::before{display:none!important}.page::after{display:none!important}.page:hover{border-color:#e8eaf0!important}
  .page-index{margin:-1px 0 12px!important;padding:0 0 9px!important;border-bottom:1px solid #f0f1f4!important;font-size:8px!important;letter-spacing:.07em!important}.page-index span:last-child{color:#7e8898!important}
  .hero{padding:24px 17px!important;border-color:#e0e1f0!important;background:linear-gradient(150deg,#fff 0,#f7f7ff 100%)!important;box-shadow:0 4px 14px rgba(73,65,139,.035)!important}.hero::before{right:-22px!important;top:-20px!important;width:94px!important;height:94px!important;opacity:.7!important}.hero h1,h1{font-size:22px!important;line-height:1.38!important;letter-spacing:-.025em!important}.lead{font-size:12.5px!important;line-height:1.72!important;color:#667185!important}.kicker{gap:5px!important}.badge{font-size:8.5px!important;padding:4px 7px!important}
  .goal,.callout,.beginner,.whybox,.remember,.judge{border-radius:13px!important;padding:11px 12px!important;font-size:11px!important;line-height:1.65!important}.goal{margin:11px 0!important}.judge{margin-top:16px!important}.judge h3{font-size:12px!important}.official{font-size:9px!important;line-height:1.5!important}
  h2{grid-template-columns:24px 1fr!important;gap:8px!important;margin-top:21px!important;font-size:14.5px!important;line-height:1.4!important}h2::before{width:23px!important;height:23px!important;border-radius:7px!important;font-size:8px!important}
  h3{font-size:12.5px!important}.card{border-radius:13px!important;padding:11px!important}.grid2,.grid3{gap:8px!important}
  .diagram,.diagram.light,.code,.output{margin-left:-2px!important;margin-right:-2px!important;padding:12px!important;border-radius:13px!important;font-size:10.2px!important;line-height:1.55!important;-webkit-overflow-scrolling:touch!important}.visual-lead{margin:10px 0 15px!important}.visual-label{font-size:8.5px!important}
  .table-wrap{margin:10px -6px!important;border-radius:12px!important;scrollbar-width:thin!important;-webkit-overflow-scrolling:touch!important}table{min-width:520px!important;font-size:10.5px!important}th,td{padding:8px!important}
  .term-list,.cmd-why,.acl-entry-grid,.nmap-opts{font-size:10.5px!important;border-radius:12px!important}.term-list div,.cmd-why div,.acl-entry-grid div,.nmap-opts div{padding:8px 9px!important}
  .route-ribbon{display:flex!important;overflow-x:auto!important;gap:5px!important;margin-right:-16px!important;padding-right:16px!important;scroll-snap-type:x proximity!important}.route-ribbon span{flex:0 0 auto!important;scroll-snap-align:start!important}
  .page-nav{display:grid!important;grid-template-columns:1fr 1fr!important;gap:7px!important;margin-top:18px!important}.page-nav a,.page-nav span{min-height:42px!important;display:flex!important;align-items:center!important;justify-content:center!important;padding:8px!important;border:1px solid #e9eaf0!important;border-radius:11px!important;background:#fafbfc!important;font-size:9.5px!important;text-align:center!important}.page-nav a:last-child{background:#f1f1ff!important;border-color:#e3e3fb!important;color:#5354cf!important}
  .practice{border-radius:14px!important}.practice-title{padding:10px!important}.practice-body{padding:10px!important}
  .quiz-panel{border-radius:16px!important}.quiz-option{min-height:46px!important;border-radius:12px!important;font-size:11px!important;text-align:left!important}.quiz-submit,.quiz-multi-submit,.quiz-next,.mastery-btn{min-height:44px!important;border-radius:11px!important}

  /* bottom tab bar */
  .mobile-appbar{display:none!important}.study-dock{display:none!important}
  .mobile-tabbar{display:grid;position:fixed;z-index:140;left:8px;right:8px;bottom:max(8px,env(safe-area-inset-bottom));grid-template-columns:repeat(4,1fr);gap:2px;padding:5px;border:1px solid rgba(222,225,233,.96);border-radius:18px;background:rgba(255,255,255,.96);box-shadow:0 14px 38px rgba(18,26,43,.16);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}
  .index-app .mobile-tabbar{grid-template-columns:repeat(3,1fr)}
  .mobile-tabbar a,.mobile-tabbar button{appearance:none;border:0;background:transparent;min-height:50px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border-radius:13px;color:#7e8797;text-decoration:none;font:inherit;font-size:8px;font-weight:800;cursor:pointer}.mobile-tabbar .tab-icon{font-size:16px;line-height:17px;color:#657084;font-weight:700}.mobile-tabbar .primary{background:var(--m-primary-soft);color:#5650c9}.mobile-tabbar .primary .tab-icon{color:#5b5cf0}

  /* dashboard mobile: show progress first, reduce landing-page feeling */
  .index-app .layout>main{display:flex!important;flex-direction:column!important;padding-top:10px!important}.index-app .split-note{display:none!important}.index-app .mastery-page{order:1!important}.index-app .learning-route-page{order:2!important}.index-app .page{padding:19px 14px 23px!important}.index-app .hero h1{font-size:21px!important}.index-app .mastery-summary{gap:8px!important}.index-app .mastery-meter{padding:13px!important;border-radius:14px!important}.index-app .mastery-big{font-size:31px!important}.index-app .index-objective-grid{gap:8px!important}.index-objective-card{padding:12px!important;border-radius:14px!important}.index-objective-card .head{gap:8px!important}.index-objective-card .pct{font-size:22px!important}.index-objective-card .actions{display:grid!important;grid-template-columns:1fr 1fr!important;gap:6px!important}.index-objective-card .actions a{min-height:38px!important;display:flex!important;align-items:center!important;justify-content:center!important;font-size:9px!important;border-radius:9px!important}.learning-sequence{gap:7px!important}.learn-row{grid-template-columns:30px 1fr auto!important;padding:11px!important;border-radius:13px!important}.learn-row .why{grid-column:2/-1!important}.learn-row .objective-open{grid-column:2/-1!important;min-height:38px!important;display:flex!important;align-items:center!important;justify-content:center!important;margin-top:3px!important;border-radius:9px!important;background:#f2f2ff!important;color:#5657cf!important;text-decoration:none!important}
}

@media(max-width:420px){
  .topbar .brand b{max-width:104px;overflow:hidden;text-overflow:ellipsis}.app-top-status{margin-left:auto!important}.mobile-current-section{right:86px!important}.page{padding-left:14px!important;padding-right:14px!important}.hero{padding-left:15px!important;padding-right:15px!important}.app-context{padding-left:13px!important;padding-right:13px!important}
}
