@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=Manrope:wght@400;500;600;650;700;750;800&display=swap');
:root{--bg:#f6f7fa;--surface:#fff;--ink:#202737;--muted:#6c7486;--line:#e5e8ef;--blue:#3b5bff;--blue-soft:#eef1ff;--green:#21745e;--lime:#dbf29c;--nav:#141c2d;--nav-text:#a8b1c4;--shadow:0 12px 38px #1627490a;--radius:16px;color-scheme:light;font-family:'DM Sans',system-ui,sans-serif;font-size:16px}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);line-height:1.55}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--blue);outline-offset:4px}button:disabled{opacity:.45;cursor:not-allowed}h1,h2,h3,h4,p{margin-top:0}h1,h2,h3,h4{font-family:'Manrope',system-ui,sans-serif}h1{font-size:clamp(1.9rem,3vw,2.5rem);letter-spacing:-1.4px;line-height:1.2;margin-bottom:10px;font-weight:800}h2{font-size:1.2rem;letter-spacing:-.5px}h3{font-size:1rem}small{font-size:.8rem}svg.icon{width:20px;height:20px;vertical-align:middle;stroke:currentColor;fill:none;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}[hidden]{display:none!important}.skip-link{position:fixed;left:10px;top:-80px;background:var(--surface);z-index:100;padding:12px}.skip-link:focus{top:10px}
.sidebar{position:fixed;inset:0 auto 0 0;width:244px;background:var(--nav);padding:32px 20px 20px;color:#fff;display:flex;flex-direction:column;z-index:30}.brand{display:flex;align-items:center;gap:9px;text-decoration:none;font-family:Manrope,sans-serif;font-size:1.7rem;font-weight:800;letter-spacing:-1px;padding:0 12px 38px}.brand-dot{color:var(--lime);margin-left:-8px}.brand-mark{background:var(--blue);width:34px;height:36px;display:grid;place-items:center;border-radius:10px;font-size:1.7rem;position:relative;line-height:1}.brand-mark span{position:absolute;right:4px;top:5px;color:var(--lime)}.workspace-label{color:#7e8aa5;font-size:.69rem;letter-spacing:1.5px;font-weight:700;margin:0 14px 13px}.nav-button{width:100%;border:0;background:transparent;color:var(--nav-text);padding:12px 14px;border-radius:9px;display:flex;align-items:center;gap:12px;text-align:left;font-size:.88rem;font-weight:500;margin-bottom:5px;transition:background .15s,color .15s}.nav-button:hover{background:#ffffff0a;color:#fff}.nav-button.active{background:#2b3850;color:#fff}.nav-button.active svg{color:#b8c5ff}.nav-count{margin-left:auto;background:#ffffff12;border:1px solid #ffffff0a;padding:1px 6px;border-radius:5px;font-size:.69rem;color:#dce3f2}.sidebar-project{margin:33px 10px 15px;border-top:1px solid #ffffff13;padding-top:24px}.eyebrow{font-size:.68rem;letter-spacing:1.6px;font-weight:700;color:var(--muted)}.sidebar-project .eyebrow{font-size:.6rem;color:#8492ae}.sidebar-project h3{color:#f5f7ff;font-size:1.16rem;margin:14px 0 9px;display:flex;justify-content:space-between}.sidebar-project h3 span{font-weight:400;color:#7f8da5}.sidebar-project p{font-size:.84rem;color:#a8b1c4;line-height:1.8}.stack-mini{color:#bac4d7;font-size:.69rem;font-weight:700;display:flex;gap:10px}.stack-mini span{color:#526079}.sidebar-bottom{margin-top:auto}.local-indicator{font-size:.72rem;color:#8997b0;display:flex;gap:8px;align-items:center;margin:15px 15px}.local-indicator>span{width:6px;height:6px;background:#a8c884;border-radius:50%}.profile{border-top:1px solid #ffffff13;margin-top:14px;padding:20px 6px 0;display:flex;gap:12px;align-items:center;font-size:.79rem}.avatar{width:35px;height:35px;border-radius:50%;background:#344058;display:grid;place-items:center;font-size:.57rem;letter-spacing:.4px;color:#d8e2f4}.profile small{display:block;color:#8492a8;font-size:.68rem}.page-shell{margin-left:244px}.topbar{height:79px;border-bottom:1px solid var(--line);padding:0 42px;display:flex;align-items:center;justify-content:space-between;background:var(--surface)}.breadcrumb{font-size:.66rem;font-weight:700;letter-spacing:1.3px;color:var(--muted)}.breadcrumb span{margin:0 15px;color:#bbc1cb}.topbar-right{display:flex;align-items:center;gap:18px}.device-pill{font-size:.74rem;color:var(--muted)}.icon-button{background:none;border:1px solid transparent;width:36px;height:36px;display:grid;place-items:center;border-radius:8px;color:var(--muted)}.icon-button:hover{background:var(--blue-soft);color:var(--blue)}.outline-button,.primary-button,.danger-button{border-radius:8px;display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:11px 16px;font-weight:600;font-size:.86rem;line-height:1.4;text-decoration:none}.outline-button{border:1px solid var(--line);background:var(--surface);color:var(--ink)}.outline-button:hover{border-color:var(--blue);color:var(--blue)}.primary-button{border:1px solid var(--blue);background:var(--blue);color:white;box-shadow:0 4px 10px #3b5bff18}.primary-button:hover{background:#2d49da}.danger-button{border:0;background:#b73545;color:white}.compact{font-size:.76rem;padding:8px 12px}.compact svg{width:15px;height:15px}.mobile-menu{display:none}main{max-width:1480px;margin:auto;padding:39px 42px 46px;min-height:calc(100vh - 145px)}.page-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:26px}.page-heading p{font-size:.92rem;color:var(--muted);margin-bottom:0}.pill{font-size:.69rem;padding:5px 10px;border-radius:20px;background:var(--surface);border:1px solid var(--line);white-space:nowrap;display:inline-flex;align-items:center;gap:7px}.heading-tag{margin-top:9px;color:var(--muted)}.heading-tag svg{width:13px;height:13px}.overview-grid{display:grid;grid-template-columns:1.55fr 1fr;gap:22px;margin-bottom:29px}.continue-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:25px 27px;position:relative;overflow:hidden;box-shadow:var(--shadow)}.continue-card .eyebrow{color:var(--blue);display:flex;align-items:center;gap:7px}.continue-card h2{font-size:1.47rem;margin:15px 0 7px;letter-spacing:-.7px}.continue-card p{color:var(--muted);max-width:85%;font-size:.86rem;margin-bottom:21px}.continue-bottom{display:flex;gap:18px;align-items:center;flex-wrap:wrap}.continue-bottom>span{font-size:.72rem;color:var(--muted)}.course-symbol{position:absolute;right:20px;top:21px;color:var(--line);font-size:3rem;line-height:1;transform:rotate(-15deg)}.progress-card{background:var(--nav);border-radius:var(--radius);color:#fff;padding:25px;display:flex;flex-direction:column;justify-content:space-between}.progress-card .eyebrow{color:#a9b6ce}.progress-numbers{display:flex;align-items:flex-end;justify-content:space-between;margin:12px 0 15px}.progress-numbers strong{font-family:Manrope;font-size:2.7rem;letter-spacing:-1.8px;line-height:1;font-weight:700}.progress-numbers strong span{font-size:1.05rem;font-weight:500;color:#9eacc3;letter-spacing:0}.progress-numbers small{font-size:.73rem;color:#bac6db}.progress-track{height:7px;background:#ffffff16;border-radius:10px;overflow:hidden}.progress-track span{display:block;background:var(--lime);height:100%;transition:width .35s ease;border-radius:10px}.progress-meta{margin-top:18px;display:flex;justify-content:space-between;gap:10px;color:#b5c2d7;font-size:.72rem}.progress-meta b{color:#fff;font-weight:600}.section-top{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:17px}.section-top h2{margin:0;font-size:1.09rem}.section-top h2 span{font-family:'DM Sans',sans-serif;font-size:.73rem;margin-left:10px;color:var(--muted);font-weight:400;letter-spacing:0}.view-switch{display:flex;background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:3px}.view-switch button{background:none;border:0;color:var(--muted);font-size:.77rem;padding:6px 10px;border-radius:5px;display:flex;align-items:center;gap:6px}.view-switch button.active{background:var(--blue-soft);color:var(--blue)}.view-switch svg{width:14px;height:14px}.toolbar{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:20px}.search-box{flex:1;min-width:210px;display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:9px;background:var(--surface);padding:0 12px;color:var(--muted)}.search-box input{width:100%;border:0;padding:11px 0;outline:0;background:transparent;color:var(--ink);font-size:.86rem}.search-box:focus-within{outline:2px solid var(--blue);outline-offset:1px}.search-box svg{width:18px}.filter-select{border:1px solid var(--line);background:var(--surface);color:var(--ink);padding:11px 12px;border-radius:9px;font-size:.79rem;max-width:100%}.filter-chips{display:flex;gap:7px;flex-wrap:wrap}.chip{border:1px solid var(--line);background:var(--surface);border-radius:7px;padding:7px 12px;font-size:.75rem;color:var(--muted)}.chip.active{color:var(--blue);border-color:#3b5bff45;background:var(--blue-soft)}.roadmap-list{display:flex;flex-direction:column;gap:13px}.phase-card{border:1px solid var(--line);border-radius:12px;background:var(--surface);overflow:hidden;box-shadow:0 2px 4px #16274902;transition:border-color .15s}.phase-card:hover{border-color:#cbd1df}.phase-head{display:flex;align-items:center;width:100%;padding:19px 21px;gap:17px;background:none;border:0;color:var(--ink);text-align:left}.phase-number{height:40px;width:40px;border-radius:11px;background:var(--bg);border:1px solid var(--line);display:grid;place-items:center;flex-shrink:0;font-size:.76rem;font-weight:700;color:var(--muted)}.phase-card.open .phase-number{background:var(--blue-soft);border-color:#dfe5ff;color:var(--blue)}.phase-card.done .phase-number{background:#edf7f0;color:var(--green);border-color:#d9ede3}.phase-text{flex:1;min-width:0}.phase-text strong{display:block;font-family:Manrope;font-size:.94rem;font-weight:750}.phase-text small{font-size:.75rem;color:var(--muted);display:block;margin-top:4px}.phase-meta{display:flex;align-items:center;gap:13px;color:var(--muted);font-size:.72rem}.phase-track{width:65px;height:4px;background:var(--line);border-radius:4px;overflow:hidden}.phase-track span{display:block;height:100%;background:var(--blue)}.phase-chevron{transition:transform .2s}.phase-card.open .phase-chevron{transform:rotate(180deg)}.phase-meta .icon{width:15px;height:15px}.phase-body{border-top:1px solid var(--line);padding:0 21px 17px 78px}.phase-context{font-size:.77rem;color:var(--muted);padding:15px 0 8px}.phase-context strong{color:var(--ink);font-weight:600}.topic-row{display:flex;align-items:center;gap:13px;padding:12px 0;border-bottom:1px solid var(--line)}.topic-row:last-child{border-bottom:0}.topic-check{appearance:none;margin:0;width:19px;height:19px;flex-shrink:0;border:1.5px solid #cbd2df;border-radius:6px;display:grid;place-content:center;cursor:pointer;background:var(--surface)}.topic-check:checked{border-color:var(--blue);background:var(--blue)}.topic-check:checked:after{content:'✓';font-size:.76rem;font-weight:700;color:#fff}.topic-open{flex:1;min-width:0;background:none;border:0;text-align:left;color:var(--ink);padding:0;font-size:.84rem;display:flex;flex-direction:column;gap:3px}.topic-open:hover{color:var(--blue)}.topic-open small{font-size:.71rem;color:var(--muted)}.topic-badges{display:flex;gap:9px;align-items:center;color:var(--muted);font-size:.68rem}.topic-badges svg{width:13px;height:13px}.status-tag{border-radius:5px;padding:3px 7px;font-size:.66rem;background:var(--bg);color:var(--muted)}.status-tag.learning{background:#fff4db;color:#966317}.status-tag.complete{background:#eaf6ed;color:var(--green)}.topic-arrow{color:#a5adbd;font-size:.9rem}.roadmap-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}.roadmap-grid .phase-head{align-items:flex-start}.roadmap-grid .phase-meta{display:none}.roadmap-grid .phase-body{padding-left:22px}.roadmap-grid .phase-context{font-size:.76rem}.empty-state{text-align:center;padding:60px 20px;background:var(--surface);border:1px dashed var(--line);border-radius:12px;color:var(--muted)}.empty-state h2{color:var(--ink);margin:15px 0 6px}.footer{padding:20px 42px;border-top:1px solid var(--line);display:flex;gap:15px;justify-content:space-between;font-size:.69rem;color:var(--muted)}.footer button{border:0;background:none;padding:0;color:var(--blue);font-size:inherit}.topic-dialog{margin:0 0 0 auto;max-width:720px;width:min(720px,100%);height:100dvh;max-height:100dvh;border:0;border-left:1px solid var(--line);padding:0;background:var(--surface);color:var(--ink);box-shadow:-20px 0 90px #11182724}.topic-dialog::backdrop,.confirm-dialog::backdrop{background:#141c2d66;backdrop-filter:blur(3px)}.dialog-top{padding:25px 30px 21px;border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--surface);z-index:2}.dialog-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:15px}.dialog-meta .eyebrow{color:var(--blue)}.dialog-top h2{font-size:1.85rem;line-height:1.25;margin-bottom:14px}.dialog-submeta{display:flex;gap:10px;align-items:center;flex-wrap:wrap;font-size:.76rem;color:var(--muted)}.dialog-tabs{display:flex;gap:22px;border-bottom:1px solid var(--line);padding:0 30px;position:sticky;top:0;background:var(--surface);z-index:1}.dialog-tabs button{background:none;border:0;border-bottom:2px solid transparent;padding:16px 0;color:var(--muted);font-size:.85rem}.dialog-tabs button.active{color:var(--blue);border-bottom-color:var(--blue);font-weight:600}.dialog-body{padding:25px 30px 32px}.topic-why{font-size:.96rem;color:var(--muted);line-height:1.8;margin-bottom:25px}.section-label{font-size:.7rem;letter-spacing:1.1px;font-weight:700;color:var(--muted);margin:25px 0 12px;text-transform:uppercase}.concept-tags{display:flex;gap:7px;flex-wrap:wrap}.concept-tag{font-size:.74rem;padding:5px 9px;background:var(--bg);border:1px solid var(--line);border-radius:6px}.project-task{padding:20px;border:1px solid #3b5bff25;border-radius:12px;background:var(--blue-soft);margin:21px 0}.project-task .eyebrow{color:var(--blue)}.project-task p{margin:9px 0 0;font-size:.86rem}.failure-task{border-left:3px solid #e4b65b;padding:1px 0 1px 16px;margin:20px 0;color:var(--muted);font-size:.86rem}.failure-task strong{display:block;color:var(--ink);font-weight:600;margin-bottom:5px}.checklist{list-style:none;padding:0;margin:0}.checklist li{margin:9px 0}.checklist label{display:flex;gap:12px;align-items:flex-start;font-size:.85rem;cursor:pointer}.checklist input{margin-top:4px}.related-topics{display:flex;gap:9px;flex-wrap:wrap}.related-button{border:1px solid var(--line);border-radius:7px;padding:8px 10px;background:var(--surface);color:var(--ink);font-size:.75rem}.related-button:hover{border-color:var(--blue);color:var(--blue)}.button-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.dialog-actions{display:flex;gap:10px;align-items:center;margin-top:28px;padding-top:20px;border-top:1px solid var(--line)}.dialog-actions .primary-button{flex:1}.resource-list{display:grid;gap:12px}.resource-card{border:1px solid var(--line);border-radius:11px;padding:19px;background:var(--surface);position:relative}.resource-card.best{border-color:#aebcff;background:linear-gradient(120deg,var(--blue-soft),var(--surface))}.resource-top{display:flex;align-items:flex-start;gap:12px}.resource-icon{width:35px;height:35px;border-radius:9px;background:var(--bg);color:var(--blue);display:grid;place-items:center;flex-shrink:0}.resource-card.best .resource-icon{background:#fff}.resource-main{flex:1;min-width:0}.resource-main a{text-decoration:none;font-weight:650;font-size:.9rem;display:block;padding-right:2px}.resource-main a:hover{color:var(--blue)}.resource-sub{font-size:.72rem;color:var(--muted);margin-top:4px}.resource-card p{font-size:.79rem;color:var(--muted);line-height:1.65;margin:12px 0}.resource-labels{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:9px}.resource-labels span{font-size:.63rem;padding:3px 6px;border-radius:4px;background:var(--bg);color:var(--muted)}.resource-labels .best-label{background:var(--blue);color:#fff}.resource-labels .free-label{background:#eaf6ed;color:var(--green)}.resource-labels .paid-label{background:#fff1db;color:#946013}.resource-bottom{display:flex;justify-content:space-between;align-items:center;gap:8px;color:var(--muted);font-size:.69rem}.bookmark-button{color:var(--muted)}.bookmark-button.saved{color:var(--blue);background:var(--blue-soft)}.notes-textarea{width:100%;min-height:260px;border:1px solid var(--line);border-radius:10px;padding:16px;background:var(--bg);color:var(--ink);font-size:.9rem;line-height:1.8;resize:vertical}.notes-hint{font-size:.77rem;color:var(--muted);margin-bottom:12px}.notes-status{font-size:.72rem;color:var(--green);display:flex;justify-content:space-between;gap:10px;margin:10px 0}.resource-note,.muted-note{font-size:.75rem;line-height:1.7;color:var(--muted);margin:16px 0}.library-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.library-grid .resource-card{display:flex;flex-direction:column}.library-grid .resource-card .resource-bottom{margin-top:auto}.note-card{padding:22px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}.note-card h3{margin-bottom:7px}.note-card p{font-size:.85rem;color:var(--muted);white-space:pre-wrap;overflow-wrap:anywhere}.note-card button{margin-top:12px}.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.settings-card{border:1px solid var(--line);border-radius:12px;background:var(--surface);padding:25px}.settings-card p{font-size:.88rem;color:var(--muted)}.settings-card h2{margin-bottom:11px}.settings-card .button-row{margin-top:20px}.file-input{max-width:100%;font-size:.8rem;margin:12px 0;display:block}.confirm-dialog{border:1px solid var(--line);border-radius:16px;padding:27px;max-width:450px;background:var(--surface);color:var(--ink)}.confirm-dialog p{font-size:.9rem;color:var(--muted)}.toast{position:fixed;bottom:25px;left:50%;transform:translate(-50%,15px);background:var(--nav);color:#fff;border:1px solid #ffffff20;padding:11px 19px;border-radius:9px;box-shadow:0 12px 40px #0002;font-size:.8rem;z-index:100;opacity:0;pointer-events:none;transition:all .18s;max-width:90vw}.toast.visible{opacity:1;transform:translate(-50%,0)}.storage-alert{position:fixed;bottom:0;width:100%;padding:10px;background:#fff0c9;color:#633e00;z-index:90;text-align:center;font-size:.8rem}.connection-board{padding:26px;border:1px solid var(--line);border-radius:16px;background:var(--surface);overflow:hidden}.connection-board h2{margin-bottom:5px}.connection-board>p{color:var(--muted);font-size:.86rem}.graph-lanes{display:grid;gap:24px;margin-top:27px}.graph-lane{display:flex;align-items:center;justify-content:center;gap:15px;flex-wrap:wrap}.graph-node{border:1px solid var(--line);background:var(--bg);color:var(--ink);padding:15px 19px;border-radius:10px;min-width:150px;text-align:left;position:relative}.graph-node:hover{border-color:var(--blue)}.graph-node.active{background:var(--blue-soft);border-color:var(--blue)}.graph-node strong{display:block;font-size:.85rem}.graph-node small{font-size:.7rem;color:var(--muted)}.graph-arrow{color:var(--muted)}.graph-caption{padding-top:20px;margin-top:22px;border-top:1px solid var(--line);color:var(--muted);font-size:.82rem}.connection-detail{margin-top:20px;padding:21px;background:var(--blue-soft);border-radius:12px}.connection-detail h3{margin-bottom:7px}.connection-detail p{font-size:.85rem;margin-bottom:15px;color:var(--muted)}.connection-legend{display:flex;gap:20px;flex-wrap:wrap;font-size:.75rem;color:var(--muted);margin-top:17px}.course-coverage{margin-top:22px;font-size:.77rem}.course-coverage summary{cursor:pointer;color:var(--muted)}.course-coverage ul{padding-left:18px;color:var(--muted)}.course-coverage li{margin:5px 0}.dependency-hint{background:var(--bg);padding:12px 15px;border-radius:9px;font-size:.77rem;color:var(--muted);margin-bottom:15px}.theme-dark{--bg:#171e2b;--surface:#202939;--ink:#e6edf9;--muted:#a4b0c4;--line:#354053;--blue:#91a4ff;--blue-soft:#283650;--nav:#101723;--green:#82cca9;color-scheme:dark}.theme-dark .primary-button{background:#566fea;border-color:#566fea}.theme-dark .phase-card.done .phase-number,.theme-dark .status-tag.complete,.theme-dark .resource-labels .free-label{background:#233e36;border-color:#315347}.theme-dark .resource-card.best .resource-icon{background:var(--surface)}.theme-dark .resource-labels .paid-label,.theme-dark .status-tag.learning{background:#493c24;color:#f1cc82}.theme-dark .resource-labels .best-label{color:#151c2b}.theme-dark .graph-node.active{border-color:var(--blue)}
@media(min-width:1600px){.overview-grid{grid-template-columns:1.7fr 1fr}.continue-card{padding:28px 32px}.progress-card{padding:28px 32px}}
@media(max-width:1150px){.sidebar{width:215px;padding-inline:14px}.page-shell{margin-left:215px}main{padding:30px 26px}.topbar{padding:0 26px}.footer{padding:20px 26px}.phase-track{display:none}.overview-grid{grid-template-columns:1.2fr 1fr}.continue-card{padding:23px}.continue-card p{max-width:100%}.continue-bottom>span{display:none}.device-pill{display:none}}
@media(max-width:820px){.sidebar{width:235px;transform:translateX(-100%);transition:transform .2s}.sidebar.mobile-open{transform:translateX(0);box-shadow:20px 0 70px #0004}.page-shell{margin-left:0}.mobile-menu{display:grid}.topbar{gap:12px;height:67px;padding:0 20px}.breadcrumb{margin-right:auto;font-size:.6rem;letter-spacing:.8px}.topbar-right{gap:6px}.topbar-right .outline-button{display:none}main{padding:27px 20px}.footer{padding:20px;flex-direction:column;gap:4px}.overview-grid{gap:15px}.phase-body{padding-left:22px}.settings-grid{grid-template-columns:1fr}}
@media(max-width:580px){.overview-grid{grid-template-columns:1fr}.progress-card{padding:20px}.progress-numbers strong{font-size:2.1rem}.progress-numbers{margin:10px 0 12px}.progress-meta{margin-top:12px}.continue-card{padding:22px}.continue-card h2{font-size:1.3rem}.heading-tag{display:none}.page-heading{margin-bottom:22px}h1{font-size:1.9rem}.page-heading p{font-size:.83rem}.section-top h2 span{display:none}.phase-head{gap:12px;padding:16px}.phase-number{height:34px;width:34px;font-size:.7rem}.phase-text strong{font-size:.85rem}.phase-text small{font-size:.68rem}.phase-meta{gap:5px}.phase-meta .pill{display:none}.phase-body{padding:0 16px 14px}.topic-badges .resource-count{display:none}.topic-open{font-size:.81rem}.topic-open small{font-size:.69rem}.topic-row{gap:11px}.status-tag{font-size:.6rem}.library-grid,.roadmap-grid{grid-template-columns:1fr}.search-box{min-width:100%;order:-1}.filter-select{flex:1;min-width:0}.dialog-top{padding:20px}.dialog-top h2{font-size:1.5rem}.dialog-tabs{padding:0 20px;gap:24px}.dialog-body{padding:20px}.resource-card{padding:16px}.resource-main a{font-size:.84rem}.graph-lane{flex-direction:column}.graph-arrow{transform:rotate(90deg)}.graph-node{width:100%}.graph-lanes{gap:15px}.connection-board{padding:20px}.button-row>*{max-width:100%}.notes-status{flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
/* Activity and interaction details */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.results-count{font-size:.75rem;color:var(--muted);margin:-4px 0 12px}.roadmap-note{display:flex;align-items:center;gap:9px;font-size:.8rem;color:var(--muted);margin:22px 0}.phase-map-link{display:flex;align-items:center;gap:8px;border:0;background:transparent;color:var(--blue);padding:12px 0 0;font-size:.75rem}.phase-map-link svg{width:14px;height:14px}.muted-small{color:var(--muted);font-size:.8rem}.resource-guidance{padding:16px 18px;background:var(--bg);border:1px solid var(--line);border-radius:10px;margin-bottom:18px;font-size:.85rem}.resource-guidance p{font-size:.8rem;color:var(--muted);margin:8px 0 0}.resource-title{font-weight:650;font-size:.9rem;text-decoration:none;line-height:1.4}.resource-title:hover{color:var(--blue)}.resource-title svg{width:13px;height:13px;margin-left:4px}.resource-note{font-size:.78rem;color:var(--muted);line-height:1.65;margin:12px 0}.resource-labels>span{display:inline-block;background:var(--bg);font-size:.67rem;padding:3px 7px;border-radius:4px}.resource-labels>span.best-label{color:var(--blue);background:var(--blue-soft)}.resource-labels>span.free-label{background:#eaf6ed;color:#21745e}.resource-labels>span.paid-label{background:#fff3da;color:#805914}.library-intro{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:15px 18px;background:var(--blue-soft);border:1px solid #3b5bff1b;border-radius:10px;margin-bottom:24px;color:var(--blue);font-size:.78rem}.library-intro span{display:flex;align-items:center;gap:8px}.note-preview{white-space:pre-wrap;overflow-wrap:anywhere;color:var(--muted);font-size:.87rem;line-height:1.75;min-height:85px}.settings-icon{background:var(--blue-soft);color:var(--blue);width:40px;height:40px;border-radius:10px;display:grid;place-items:center;margin-bottom:20px}.settings-card small{display:block;margin-top:15px;color:var(--muted)}.source-courses{display:grid;gap:10px}.source-courses a{font-size:.8rem;text-decoration:none;border-bottom:1px solid var(--line);padding-bottom:10px;display:flex;justify-content:space-between;gap:10px}.source-courses small{margin:0;white-space:nowrap}.graph-tabs{margin-bottom:22px}.graph-node-row{display:flex;align-items:center;gap:16px}.graph-node-row .graph-node{flex:1;min-width:0}.graph-lane-label{color:var(--muted);font-size:.68rem;letter-spacing:1.2px;margin-bottom:10px;font-weight:700}.graph-node strong{display:block;font-family:Manrope;font-size:.94rem;margin:10px 0 4px}.graph-node small{display:block;color:var(--muted);font-size:.75rem}.graph-node>span{color:var(--blue)}.connection-line{display:flex;gap:8px;font-size:.84rem;color:var(--blue)!important}.connection-detail>div{flex:1}.connection-detail>.primary-button{flex-shrink:0}.course-coverage h4{font-size:.82rem;margin:20px 0 9px}.course-coverage ul{padding-left:20px;font-size:.76rem;color:var(--muted)}.course-coverage li{margin-bottom:6px}.course-coverage p{font-size:.77rem;color:var(--muted)}.dialog-tabs [role=tab]{cursor:pointer}.section-label>span{font-weight:400;letter-spacing:0;float:right;color:var(--muted)}.note-prompts{margin-top:15px}.resource-count{white-space:nowrap}.toast.show{opacity:1;transform:translate(-50%,0);pointer-events:auto}.theme-dark .resource-labels>span.free-label{background:#1b3b31;color:#a8dfc5}.theme-dark .resource-labels>span.paid-label{background:#433823;color:#f2d299}.theme-dark .status-tag.learning{background:#433823;color:#f2d299}.theme-dark .status-tag.complete{background:#1b3b31;color:#a8dfc5}.theme-dark .phase-card.done .phase-number{background:#1b3b31;border-color:#29523f;color:#a8dfc5}
@media(min-width:821px){.connection-board .graph-lanes{display:flex;flex-direction:column;gap:24px}.connection-board .graph-lane{display:block}}
@media(max-width:820px){.graph-node-row{gap:8px}.graph-node{padding:13px!important}.graph-node strong{font-size:.83rem}.connection-detail{flex-direction:column;align-items:flex-start}.connection-board .graph-lanes{display:flex;flex-direction:column}.graph-lane-label{font-size:.65rem}.source-courses a{display:block}.source-courses small{margin-top:5px}}
@media(max-width:580px){.graph-node-row{flex-direction:column;align-items:stretch}.graph-arrow{transform:rotate(90deg);align-self:center;line-height:1}.graph-node{text-align:left!important}.graph-node>span{float:right}.graph-node strong{margin:0 0 4px}.resource-count{display:none}.resource-labels{flex-wrap:wrap}.resource-title{font-size:.84rem}.roadmap-note{align-items:flex-start}.section-top .pill{display:none}.source-courses small{white-space:normal}.library-grid .empty-state{grid-column:1/-1}.resource-top{gap:10px}.resource-icon{flex-shrink:0}.heading-tag{display:none}.graph-lane-label{font-size:.7rem}}
.nav-scrim{position:fixed;inset:0;border:0;background:#10182780;z-index:29;cursor:pointer}.sidebar{overflow-y:auto}.resource-coverage-note{margin-top:22px;line-height:1.75}.workspace-label,.eyebrow,.sidebar-project .eyebrow,.stack-mini,.local-indicator,.profile small,.breadcrumb,.pill,.topic-badges,.status-tag,.resource-labels>span,.footer,.phase-text small,.topic-open small{font-size:max(.75rem,12px)}.avatar{font-size:10px}.sidebar-project .eyebrow{letter-spacing:1px}.graph-lane-label{font-size:12px}.topic-badges{flex-shrink:0}.sidebar-project{margin-top:28px}.graph-tabs .chip{min-height:38px}.chip,.view-switch button{min-height:36px}.dialog-tabs button{min-height:48px}
@media(max-width:580px){.topic-badges .status-tag{max-width:70px;font-size:11px}.topic-row{gap:10px}.continue-card h2{padding-right:15px}.dialog-tabs{gap:14px}.topic-badges{margin-left:0}.phase-text small{font-size:12px}.phase-meta{font-size:12px}.topbar{padding:0 16px}.breadcrumb{font-size:10px}.dialog-actions{gap:10px}.dialog-actions .primary-button{font-size:12px}.dialog-actions .filter-select{font-size:12px}}
@media(max-width:580px){#status-filter{flex:1 0 100%;width:100%}.toolbar>.filter-chips{width:100%}.toolbar>.filter-chips .chip{flex:1}.topic-badges .status-tag{font-size:11px}.topbar .icon-button{min-width:36px}.dialog-meta .eyebrow{line-height:1.6}.dialog-actions{padding-inline:20px}}
.topic-dialog{overflow:hidden}#topic-content{height:100%;display:flex;flex-direction:column}.dialog-top,.dialog-tabs{flex-shrink:0}.dialog-body{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain}.dialog-actions{flex-shrink:0;margin-top:0;padding:16px 30px;background:var(--surface);box-shadow:0 -8px 20px #16274904}.dialog-actions .filter-select{min-width:145px}.dialog-actions .primary-button{min-height:44px}
@media(max-width:580px){.dialog-actions{padding:14px 20px}.dialog-actions .filter-select{min-width:120px}.dialog-top h2{font-size:1.3rem}.dialog-submeta{font-size:12px}.dialog-body{padding:20px}}
.concept-tags>span{display:inline-block;border:1px solid var(--line);border-radius:6px;background:var(--bg);padding:5px 9px;font-size:.78rem}.section-label{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap}.section-label>span{float:none}.dialog-submeta{flex-wrap:wrap}
