:root{color:#1d2522;background:#f4f1ea;color-scheme:light;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;line-height:1.5;text-rendering:optimizeLegibility;--ink: #1d2522;--muted: #65716c;--subtle: #f4f1ea;--surface: #fffdf8;--surface-strong: #f9f6ef;--line: #ded7ca;--green: #236556;--green-dark: #10221e;--gold: #d7b95b;--coral: #c65d43;--sky: #4b8fbd;--mint: #dff3ea;--shadow: 0 18px 50px rgba(38, 34, 27, .1);--radius-button: 999px;--radius-panel: 18px}:root[data-theme=dark]{color:#f4f1ea;background:#0c1412;color-scheme:dark;--ink: #f4f1ea;--muted: #a7b5ae;--subtle: #0c1412;--surface: #121f1b;--surface-strong: #182824;--line: #2b3b35;--green: #58b99d;--green-dark: #dff3ea;--gold: #e4c86f;--coral: #ef8b72;--sky: #75b9e4;--mint: #1f3f36;--shadow: 0 18px 50px rgba(0, 0, 0, .32)}*{box-sizing:border-box}html{min-width:320px;overflow-x:hidden;background:var(--subtle)}body{min-width:320px;min-height:100vh;margin:0;overflow-x:hidden;background:linear-gradient(140deg,rgba(35,101,86,.1),transparent 34%),linear-gradient(320deg,rgba(198,93,67,.09),transparent 30%),var(--subtle)}button,input,select,textarea{font:inherit}button,select{cursor:pointer}button{min-height:42px;border:0;border-radius:var(--radius-button);background:var(--green-dark);color:#fff;font-weight:850;padding:.72rem 1rem;transition:transform .16s ease,background .16s ease,box-shadow .16s ease,filter .16s ease}button:hover{background:var(--green);box-shadow:0 12px 26px #10221e2e;filter:saturate(1.08);transform:translateY(-2px) scale(1.02)}button:active{transform:translateY(0) scale(.98)}button:disabled{cursor:not-allowed;filter:grayscale(.2);opacity:.68;transform:none}input,select,textarea{width:100%;min-height:44px;border:1px solid var(--line);border-radius:14px;background:#fff;color:var(--ink);padding:.72rem .85rem;outline:none}input:focus,select:focus,textarea:focus,a:focus-visible,button:focus-visible{outline:3px solid rgba(35,101,86,.24);outline-offset:2px}textarea{min-height:160px;resize:vertical}a{color:inherit}.loading-screen{display:grid;min-height:100vh;place-items:center;padding:1rem}.loader-card{display:flex;align-items:center;gap:.85rem;border:1px solid var(--line);border-radius:var(--radius-panel);background:var(--surface);color:var(--muted);padding:1rem 1.1rem;box-shadow:var(--shadow)}.app-shell{display:grid;grid-template-columns:296px minmax(0,1fr);width:100%;min-width:0;min-height:100vh}.app-shell.map-mode{display:block;min-height:100vh;background:#081411}.app-shell.map-mode .sidebar,.app-shell.map-mode .topbar{display:none}.app-shell.map-mode .workspace{width:100%;min-height:100vh;padding:0}.app-shell.auth-mode{display:block;min-height:100vh}.app-shell.auth-mode .workspace{width:min(1080px,100%);min-height:100vh;padding:1.25rem 2rem}.sidebar{position:sticky;top:0;display:flex;flex-direction:column;gap:1.25rem;height:100vh;padding:1.1rem;background:#111c18;color:#fbf6ea}.brand{display:flex;align-items:center;gap:.8rem;min-width:0;padding:.2rem}.brand>div{min-width:0}.brand strong,.brand small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.brand-mark{display:flex;align-items:center;justify-content:center;width:64px;height:64px;min-width:56px;min-height:56px;border-radius:50px;background:var(--subtle);color:#111c18;font-weight:950;box-shadow:0 2px 8px #0000000a}.logo{display:flex;align-items:center;justify-content:center;width:70px;height:70px}.brand-mark img{width:40px;height:40px;object-fit:contain;display:block;filter:drop-shadow(0 1px 2px rgba(0,0,0,.08))}.brand strong,.brand small,.sidebar-summary small{display:block}.brand small,.sidebar-summary span,.sidebar-summary small{color:#b9c8c1}.route-nav{display:grid;gap:.45rem}.route-nav a{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.08rem .75rem;border:1px solid transparent;border-radius:18px;color:#f8f2e7;padding:.82rem;text-decoration:none;transition:background .18s ease,border-color .18s ease,transform .18s ease}.route-nav a:hover,.route-nav a.active{border-color:#ffffff1f;background:#ffffff14}.route-nav a:hover{transform:translate(5px) scale(1.01)}.route-nav a.active{box-shadow:inset 4px 0 0 var(--gold)}.route-nav span{grid-row:span 2;color:var(--gold);font-size:.76rem;font-weight:950}.route-nav strong{line-height:1.15}.route-nav small{color:#b9c8c1;line-height:1.2}.sidebar-summary{display:grid;gap:.75rem;border:1px solid rgba(255,255,255,.12);border-radius:var(--radius-panel);background:#ffffff0a;padding:1rem}.sidebar-summary strong{font-size:1.05rem;line-height:1.25}.auth-form{display:grid;gap:.85rem}.auth-form label{display:grid;gap:.28rem}.auth-form label span{color:var(--muted);font-size:.78rem;font-weight:850}.auth-form input{min-height:46px}.auth-form input::placeholder{color:#7c8984}.auth-switch{display:grid;grid-template-columns:1fr 1fr;gap:.35rem;border:1px solid var(--line);border-radius:14px;padding:.25rem}.auth-switch button,.github-button{min-height:36px;box-shadow:none}.auth-switch button{background:transparent;color:var(--muted);padding:.42rem .55rem}.auth-switch button.active{background:#d7b95bf2;color:#111c18}.auth-switch button:hover,.github-button:hover{box-shadow:none}.github-button{width:100%;background:var(--gold);color:#111c18}.auth-feedback{color:var(--coral);line-height:1.35}.workspace{width:min(1240px,100%);min-width:0;margin:0 auto;padding:1.15rem 2rem 2.5rem}.topbar{position:relative;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem;border-bottom:1px solid rgba(29,37,34,.12);padding:.75rem 0 1rem}.topbar>div:first-child{min-width:0}.topbar span{display:block;color:var(--muted);font-size:.88rem}.topbar strong{display:block;color:var(--ink);font-size:1.05rem}.topbar-actions{display:flex;align-items:center;flex-wrap:wrap;justify-content:flex-end;gap:.65rem}.topbar-menu-toggle{display:none;align-items:center;justify-content:center;width:44px;min-width:44px;height:44px;min-height:44px;border:1px solid rgba(35,101,86,.18);border-radius:14px;background:#ffffffb8;padding:.35rem;box-shadow:none}.topbar-menu-toggle img{width:26px;height:26px;object-fit:contain;transform:rotate(90deg)}.topbar-menu-toggle:hover{background:var(--surface-strong);box-shadow:none}.user-chip{max-width:220px;overflow:hidden;border:1px solid rgba(35,101,86,.16);border-radius:999px;background:var(--surface);color:var(--green);font-size:.84rem;font-weight:850;padding:.42rem .72rem;text-overflow:ellipsis;white-space:nowrap}.sync-chip{border:1px solid rgba(35,101,86,.2);border-radius:999px;background:#23655614;color:var(--green);font-size:.88rem;font-weight:850;padding:.38rem .72rem}.soft-button{min-height:36px;border:1px solid rgba(35,101,86,.18);background:#23655614;color:var(--green-dark);padding:.48rem .82rem;box-shadow:none}.theme-toggle{display:inline-flex;align-items:center;gap:.45rem;min-height:36px;border:1px solid rgba(35,101,86,.2);background:var(--surface);color:var(--green-dark);padding:.48rem .82rem;box-shadow:none}.theme-toggle span{display:grid;width:18px;height:18px;place-items:center;font-size:1rem;line-height:1}.theme-toggle:hover{background:var(--surface-strong);box-shadow:none}.soft-link{display:inline-flex;align-items:center;min-height:36px;border:1px solid rgba(35,101,86,.18);border-radius:var(--radius-button);background:#ffffffc7;color:var(--green-dark);font-weight:850;padding:.48rem .82rem;text-decoration:none}.soft-button:hover{background:#23655624;box-shadow:none}.hero{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:1rem;align-items:stretch;padding:1.5rem 0 1rem}.auth-page{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,420px);gap:1.25rem;align-items:center;min-height:calc(100vh - 112px);padding:2rem 0}.auth-copy{max-width:640px}.auth-copy h1{max-width:700px;margin:0;color:var(--ink);font-size:clamp(2.1rem,5vw,4.6rem);line-height:.96}.auth-copy p{max-width:560px;color:var(--muted);font-size:1.05rem}.auth-panel{display:grid;gap:1rem;border:1px solid var(--line);border-radius:var(--radius-panel);background:#fffdf8f0;box-shadow:var(--shadow);padding:1.15rem}.auth-divider{display:grid;grid-template-columns:1fr auto 1fr;gap:.65rem;align-items:center;color:var(--muted);font-size:.82rem;font-weight:850}.auth-divider:before,.auth-divider:after{content:"";height:1px;background:var(--line)}.auth-success{display:grid;gap:.7rem}.auth-success span{color:var(--muted);font-size:.84rem;font-weight:850}.auth-success strong{color:var(--ink);font-size:1.3rem;line-height:1.15;overflow-wrap:anywhere}.hero-copy,.hero-panel,.metrics article,.section-block,.topic-card,.insight-panel{min-width:0;border:1px solid var(--line);border-radius:var(--radius-panel);background:#fffdf8eb;box-shadow:var(--shadow)}.hero-copy{display:grid;align-content:center;min-height:278px;padding:clamp(1.25rem,4vw,2.25rem);animation:rise-in .42s ease both}.hero h1{max-width:820px;margin:0;font-size:clamp(2rem,4.8vw,4.65rem);line-height:1;overflow-wrap:anywhere}.hero p{max-width:670px;color:var(--muted);font-size:1.03rem}.eyebrow{margin:0 0 .52rem;color:var(--coral);font-size:.76rem;font-weight:950;letter-spacing:0;text-transform:uppercase}.hero-panel{display:grid;align-content:end;gap:.85rem;min-height:278px;padding:1.15rem;background:linear-gradient(180deg,#10221ef5,#10221ee0),var(--green-dark);color:#fff;animation:rise-in .52s ease both}.hero-panel span,.hero-panel small{color:#c9d9d2}.hero-panel strong{display:block;font-size:4.5rem;line-height:.9}.progress-track{overflow:hidden;width:100%;height:10px;border-radius:999px;background:#e6dfd2}.hero-panel .progress-track{background:#ffffff38}.progress-track span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--green),var(--gold),var(--coral))}.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-bottom:1rem}.metrics article{position:relative;overflow:hidden;padding:1rem 1.05rem;animation:rise-in .46s ease both;transition:transform .18s ease,box-shadow .18s ease}.metrics article:hover,.topic-card:hover,.resource-list article:hover,.week-card:hover{transform:translateY(-2px);box-shadow:0 20px 42px #26221b1f}.metrics article:before{content:"";position:absolute;top:0;left:0;width:5px;height:100%;background:var(--green)}.metrics article:nth-child(2):before{background:var(--gold)}.metrics article:nth-child(3):before{background:var(--coral)}.metric-kicker,.metrics small,.topic-meta,.resource-list span,.resource-list small,.composer small,.priority-list small{color:var(--muted)}.metrics strong{display:block;margin:.18rem 0;font-size:2.15rem;line-height:1}.page-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:1rem;align-items:start;min-width:0}.page-grid-wide{grid-template-columns:minmax(0,1fr) 320px}.section-block,.insight-panel{padding:1.15rem;animation:rise-in .36s ease both}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.section-heading h2,.topic-card h3,.insight-panel h2,.compact-panel h2{margin:0}.section-heading h2,.insight-panel h2,.compact-panel h2{font-size:1.45rem;line-height:1.15}.section-heading select{max-width:180px}.composer{display:grid;gap:.75rem;border:1px solid #e5ded2;border-radius:var(--radius-panel);background:var(--surface-strong);margin-bottom:1rem;padding:.9rem}.composer>div{display:flex;align-items:baseline;justify-content:space-between;gap:1rem}.composer span{color:var(--ink);font-weight:900}.topic-form{display:grid;grid-template-columns:1.2fr 1fr .78fr .6fr;gap:.7rem}.wide-input{grid-column:span 3}.topic-list{display:grid;gap:.85rem}.topic-card{position:relative;display:grid;gap:.9rem;padding:1rem 1rem 1rem 1.15rem;box-shadow:none;animation:list-in .28s ease both;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.topic-card:before{content:"";position:absolute;top:1rem;bottom:1rem;left:0;width:4px;border-radius:0 999px 999px 0;background:var(--green)}.topic-card:hover:before{background:linear-gradient(180deg,var(--green),var(--gold),var(--coral))}.topic-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.topic-card h3{margin-top:.32rem;font-size:1.1rem}.pill{display:inline-flex;border-radius:999px;background:#2365561a;color:var(--green);font-size:.76rem;font-weight:950;padding:.22rem .58rem}.ghost-button,.resource-list button{min-height:32px;background:transparent;color:#a94730;padding:0}.ghost-button:hover,.resource-list button:hover{background:transparent;box-shadow:none;color:#7b2c1d;transform:none}.topic-card p,.compact-panel p{margin:0;color:var(--muted)}.topic-meta,.topic-actions,.resource-row{display:flex;gap:.65rem}.resource-row select{min-width:190px}.topic-meta{flex-wrap:wrap;font-size:.88rem}.topic-meta span{border-radius:999px;background:#f0eadf;padding:.28rem .62rem}.topic-progress{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.85rem}.topic-progress strong{color:var(--green-dark)}.topic-actions{justify-content:flex-end;flex-wrap:wrap}.topic-actions button{min-height:36px;background:#edf3ef;color:var(--green-dark);padding:.45rem .78rem}.topic-actions button:hover{background:#dfe9e2;box-shadow:none}.priority-list,.roadmap-board,.roadmap-path,.resource-list,.resource-form,.resource-type-picker,.template-list,.week-board,.tag-cloud{display:grid;gap:.75rem}.roadmap-showcase{display:grid;gap:1rem;border:1px solid #d8e1dc;border-radius:var(--radius-panel);background:linear-gradient(90deg,rgba(35,101,86,.06) 1px,transparent 1px),linear-gradient(rgba(35,101,86,.06) 1px,transparent 1px),#fbfaf5;background-size:28px 28px;margin-bottom:1rem;padding:1rem;animation:rise-in .36s ease both}.roadmap-showcase-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.roadmap-showcase h3{margin:0;font-size:1.25rem}.roadmap-showcase-head small{border-radius:999px;background:#10221e14;color:var(--green-dark);font-weight:850;padding:.35rem .65rem;white-space:nowrap}.roadmap-path{position:relative;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.map-page{overflow:hidden;min-height:100vh;border:0;border-radius:0;background:linear-gradient(90deg,rgba(35,101,86,.06) 1px,transparent 1px),linear-gradient(rgba(35,101,86,.06) 1px,transparent 1px),radial-gradient(circle at 14% 16%,rgba(215,185,91,.18),transparent 28%),radial-gradient(circle at 86% 20%,rgba(75,143,189,.16),transparent 26%),#f8f5ed;background-size:30px 30px,30px 30px,auto,auto,auto;padding:clamp(1rem,3vw,2rem);box-shadow:none;animation:canvas-pop .52s cubic-bezier(.2,.9,.2,1) both}.map-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.25rem}.map-header h1{max-width:820px;margin:0;font-size:clamp(2rem,4.5vw,4.2rem);line-height:1}.map-header p{max-width:680px;color:var(--muted)}.map-canvas{display:grid;gap:1rem;min-height:calc(100vh - 250px);align-content:center}.map-stats{display:flex;flex-wrap:wrap;gap:.65rem}.map-stats span{border:1px solid rgba(35,101,86,.16);border-radius:999px;background:#ffffffc7;color:var(--green-dark);font-weight:850;padding:.42rem .7rem;animation:chip-in .42s ease both}.map-hint{display:flex;align-items:center;justify-content:space-between;gap:1rem;border:1px solid rgba(75,143,189,.26);border-radius:var(--radius-panel);background:linear-gradient(90deg,#4b8fbd1f,#dff3eab8),#fff;color:var(--green-dark);padding:.85rem 1rem;animation:hint-pulse 2.2s ease-in-out infinite}.map-hint strong,.map-hint span{display:block}.map-hint span{color:var(--muted)}.import-panel{display:grid;grid-template-columns:minmax(220px,.8fr) minmax(280px,1.4fr) auto;align-items:end;gap:.75rem;border:1px solid rgba(16,34,30,.12);border-radius:var(--radius-panel);background:#ffffffb8;padding:.85rem}.import-panel strong,.import-panel small{display:block}.import-panel small{color:var(--muted)}.import-panel textarea{min-height:82px}.slider-controls{display:flex;flex-wrap:wrap;gap:.55rem}.layout-switcher{display:flex;gap:.35rem;border:1px solid rgba(16,34,30,.12);border-radius:999px;background:#ffffffbd;padding:.25rem}.layout-switcher button{min-height:34px;background:transparent;color:var(--green-dark);padding:.38rem .72rem;box-shadow:none}.layout-switcher button.active{background:var(--green-dark);color:#fff}.node-slider{overflow-x:auto;overflow-y:hidden;padding:3rem .2rem 2rem;scroll-behavior:smooth;scroll-snap-type:x mandatory;scrollbar-width:thin}.node-slider.vertical{overflow-x:hidden;overflow-y:auto;max-height:calc(100vh - 310px);padding:1.5rem .2rem 2rem;scroll-snap-type:y mandatory}.node-track{position:relative;display:flex;gap:1rem;min-width:max-content}.node-track.vertical{display:grid;min-width:0;max-width:760px;margin:0 auto}.node-track.vertical:before{top:1rem;bottom:1rem;left:2rem;width:3px;height:auto;background:linear-gradient(180deg,var(--green),var(--gold),var(--coral),var(--sky),var(--green));background-size:100% 220%;animation:road-flow-vertical 3.8s linear infinite}.node-track:before{content:"";position:absolute;top:34px;right:2rem;left:2rem;height:3px;background:linear-gradient(90deg,var(--green),var(--gold),var(--coral),var(--sky),var(--green));background-size:220% 100%;opacity:.5;animation:road-flow 3.8s linear infinite}.roadmap-path:before{content:"";position:absolute;top:28px;right:1rem;left:1rem;height:2px;background:linear-gradient(90deg,var(--green),var(--gold),var(--coral));opacity:.45}.roadmap-node{position:relative;z-index:1;display:grid;gap:.55rem;border:1px solid #dbe4df;border-radius:18px;background:#fff;padding:.8rem;box-shadow:0 12px 26px #26221b14;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease,background .18s ease;text-decoration:none}.roadmap-node.area-frontend{border-color:#23655647;box-shadow:inset 0 5px #2365568c,0 12px 26px #26221b14}.roadmap-node.area-backend{border-color:#4b8fbd52;box-shadow:inset 0 5px #4b8fbd9e,0 12px 26px #26221b14}.roadmap-node.area-arquitetura{border-color:#c65d4357;box-shadow:inset 0 5px #c65d439e,0 12px 26px #26221b14}.roadmap-node.area-base{border-color:#d7b95b6b;box-shadow:inset 0 5px #d7b95bb8,0 12px 26px #26221b14}.connection-handle{position:absolute;top:50%;right:-13px;z-index:4;width:26px;min-height:26px;height:26px;border:3px solid #ffffff;border-radius:999px;background:var(--coral);box-shadow:0 8px 18px #c65d4347;cursor:crosshair;padding:0;transform:translateY(-50%)}.connection-handle:after{content:"";position:absolute;top:-8px;right:-8px;bottom:-8px;left:-8px;border:1px dashed rgba(198,93,67,.42);border-radius:inherit;animation:handle-pulse 1.5s ease-in-out infinite}.connection-handle:hover{background:var(--gold);box-shadow:0 10px 24px #d7b95b57;transform:translateY(-50%) scale(1.08)}.topic-card.area-frontend:before{background:var(--green)}.topic-card.area-backend:before{background:var(--sky)}.topic-card.area-arquitetura:before{background:var(--coral)}.topic-card.area-base:before{background:var(--gold)}.slide-node{width:min(380px,82vw);min-height:250px;cursor:grab;scroll-snap-align:start;animation:node-in .42s cubic-bezier(.2,.9,.2,1) both}.node-track.vertical .slide-node{width:min(680px,100%);min-height:190px;margin-left:3.5rem}.node-track.vertical .slide-node:nth-child(2n){margin-left:6.5rem}.slide-node:active{cursor:grabbing}.slide-node.dragging{border-color:var(--coral);opacity:.72;background:#fff8ef;box-shadow:0 28px 60px #c65d4338;transform:rotate(2deg) scale(.98)}.slide-node.connecting,.stage-node.connecting{border-color:var(--coral);outline:4px solid rgba(198,93,67,.16);transform:translateY(-3px) scale(1.02)}.roadmap-node.connecting:after{content:"Origem";position:absolute;top:-14px;left:1rem;border-radius:999px;background:var(--coral);color:#fff;font-size:.72rem;font-weight:950;padding:.22rem .55rem}.node-progress{margin-top:auto}.node-topline,.node-actions{display:flex;align-items:center;justify-content:space-between;gap:.7rem}.node-topline>span{display:grid;width:42px;height:42px;place-items:center;border-radius:999px;background:var(--green-dark);color:#fff;font-weight:950;box-shadow:0 10px 22px #10221e2e}.node-topline small,.drag-chip{border-radius:999px;background:#2365561a;color:var(--green);font-size:.76rem;font-weight:950;padding:.28rem .58rem}.drag-chip{background:#d7b95b2e;color:#7a5a11}.slide-node a{width:fit-content;border-radius:var(--radius-button);background:var(--green-dark);color:#fff;font-weight:850;padding:.5rem .78rem;text-decoration:none}.stage-map{display:grid;grid-template-columns:repeat(4,minmax(260px,1fr));gap:1rem;overflow-x:auto;padding:1rem .2rem 1.5rem}.stage-lane{display:grid;align-content:start;gap:.85rem;min-width:260px;border:1px solid rgba(16,34,30,.12);border-radius:22px;background:#ffffff9e;padding:.85rem}.stage-lane-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.stage-lane-head span{display:grid;min-width:30px;height:30px;place-items:center;border-radius:999px;background:var(--green-dark);color:#fff;font-weight:900}.stage-node-list{display:grid;gap:.8rem}.stage-node{min-height:190px;cursor:grab}.connection-panel{display:grid;gap:.65rem;border:1px solid rgba(16,34,30,.12);border-radius:var(--radius-panel);background:#ffffffb8;padding:.85rem}.connection-panel>div{display:flex;flex-wrap:wrap;gap:.5rem}.connection-panel span{border-radius:999px;background:#10221e14;color:var(--green-dark);font-size:.84rem;font-weight:850;padding:.35rem .62rem}.slide-node:hover{border-color:#23655659;background:linear-gradient(180deg,#fff,#fbfff9)}.slide-node:hover .drag-chip{background:var(--gold);color:var(--green-dark);transform:rotate(-2deg)}.dependency-line{position:absolute;top:36px;left:calc((var(--from) * (min(330px,78vw) + 1rem)) + 170px);z-index:0;width:calc((var(--distance) * (min(330px,78vw) + 1rem)));height:72px;border-top:4px solid rgba(198,93,67,.56);border-right:4px solid rgba(198,93,67,.56);border-radius:0 24px 0 0;pointer-events:none}.dependency-line:after{content:"";position:absolute;right:-7px;bottom:-4px;width:12px;height:12px;border-radius:999px;background:var(--coral);box-shadow:0 0 0 5px #c65d4324}.roadmap-node:hover{transform:translateY(-3px);box-shadow:0 18px 34px #26221b21}.roadmap-node>span{display:grid;width:40px;height:40px;place-items:center;border-radius:999px;background:var(--green-dark);color:#fff;font-weight:950}.roadmap-node strong,.roadmap-node small{display:block}.roadmap-node strong{line-height:1.18}.roadmap-node small{color:var(--muted)}.roadmap-board{grid-auto-columns:minmax(300px,330px);grid-auto-flow:column;grid-template-columns:none;align-items:start;max-width:100%;overflow-x:auto;overflow-y:hidden;padding:.2rem .1rem .9rem;scrollbar-width:thin}.roadmap-column{display:grid;gap:.75rem;min-width:300px;max-width:330px;border:1px solid #e7dfd2;border-radius:var(--radius-panel);background:#f4f1eab8;padding:.75rem}.roadmap-column-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;min-height:34px}.roadmap-column-head strong{line-height:1.15}.roadmap-column-head span{display:grid;min-width:30px;height:30px;place-items:center;border-radius:999px;background:var(--green-dark);color:#fff;font-size:.85rem;font-weight:900}.priority-list article{display:grid;gap:.18rem;border-top:1px solid #e6ded2;padding-top:.78rem}.template-list article{display:grid;gap:.22rem;border:1px solid #e5ded1;border-radius:18px;background:#fff;padding:.85rem}.template-list span{width:fit-content;border-radius:999px;background:#2365561a;color:var(--green);font-size:.74rem;font-weight:950;padding:.18rem .52rem}.template-list small{color:var(--muted)}.priority-divider{height:1px;background:#e5ded1;margin:.35rem 0}.priority-list span{color:var(--coral);font-size:.78rem;font-weight:900}.week-board{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.week-board article{min-width:0}.week-card{display:grid;align-content:start;justify-items:start;gap:.8rem;width:100%;min-height:180px;border:1px solid #e5ded1;border-radius:var(--radius-panel);background:#fff;color:var(--ink);padding:.9rem;text-align:left;box-shadow:none;animation:list-in .32s ease both;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.week-card:hover{border-color:#23655633;background:#fff}.week-card>span{display:grid;width:42px;height:42px;place-items:center;border-radius:14px;background:var(--green-dark);color:#fff;font-weight:950}.week-board strong,.week-board small,.resource-list div,.resource-list a,.resource-list small{display:block}.week-board strong{font-size:1.12rem;line-height:1.2}.week-board small{color:var(--muted)}.week-card em{align-self:end;color:var(--green);font-size:.78rem;font-style:normal;font-weight:900}.empty-state{display:grid;justify-items:start;gap:.7rem;border:1px dashed rgba(35,101,86,.28);border-radius:var(--radius-panel);background:#2365560f;padding:1rem}.empty-state strong{color:var(--ink);font-size:1.05rem}.empty-state p{max-width:560px;margin:0;color:var(--muted)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;display:grid;place-items:center;background:#08141194;padding:1rem}.week-dialog{display:grid;gap:1rem;width:min(520px,100%);border:1px solid var(--line);border-radius:var(--radius-panel);background:var(--surface);box-shadow:0 28px 80px #00000042;padding:1.15rem}.week-dialog-form{display:grid;gap:.9rem}.week-dialog-form label{display:grid;gap:.35rem}.week-dialog-form label span{color:var(--muted);font-size:.82rem;font-weight:850}.dialog-actions{display:flex;justify-content:flex-end;gap:.65rem}.compact-panel{display:grid;gap:.8rem}.panel-link{display:inline-flex;width:fit-content;border-radius:var(--radius-button);background:var(--green-dark);color:#fff;font-weight:850;padding:.72rem .95rem;text-decoration:none}.small-link,.suggestion-card a{display:inline-flex;align-items:center;width:fit-content;min-height:36px;border-radius:var(--radius-button);background:var(--green-dark);color:#fff;font-weight:850;padding:.45rem .78rem;text-decoration:none}.detail-panel,.focus-panel{display:grid;gap:1rem}.detail-progress{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.8rem}.detail-progress strong{color:var(--green-dark)}.inline-heading{display:flex;align-items:baseline;justify-content:space-between;gap:1rem}.inline-heading h3{margin:0;font-size:1.1rem}.inline-heading small,.suggestion-card small{color:var(--muted)}.checklist,.notes-block,.dependency-list{display:grid;gap:.75rem}.check-item{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.75rem;border:1px solid #e5ded1;border-radius:16px;background:#fff;padding:.75rem}.check-item input{width:18px;min-height:18px;accent-color:var(--green)}.check-item span{line-height:1.25}.inline-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.65rem}.inline-form.stacked{grid-template-columns:1fr}.dependency-list article,.suggestion-card{display:grid;gap:.45rem;border:1px solid #e5ded1;border-radius:18px;background:#fff;padding:.85rem}.dependency-list article{grid-template-columns:minmax(0,1fr) auto;align-items:center}.compact-list article{box-shadow:none}.resource-form{border:1px solid #e5ded1;border-radius:var(--radius-panel);background:var(--surface-strong);margin-bottom:.9rem;padding:.9rem}.resource-type-picker{grid-template-columns:repeat(5,minmax(0,1fr))}.resource-type-picker button{min-height:38px;border:1px solid #e1d8c9;background:#fff;color:var(--green-dark);padding:.5rem .7rem;box-shadow:none}.resource-type-picker button.active{border-color:#2365564d;background:var(--green-dark);color:#fff}.resource-preview{display:grid;gap:.16rem;border:1px dashed rgba(35,101,86,.32);border-radius:var(--radius-panel);background:#2365560f;padding:.85rem;animation:pulse-card .52s ease both}.resource-preview span{width:fit-content;border-radius:999px;background:#c65d431f;color:var(--coral);font-size:.76rem;font-weight:950;padding:.18rem .55rem}.resource-preview strong{line-height:1.2}.resource-preview small{color:var(--muted)}.resource-list article{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;border:1px solid #e5ded1;border-radius:var(--radius-panel);background:#fff;padding:.85rem;animation:list-in .26s ease both;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.resource-list a{font-weight:850;line-height:1.25;text-decoration:none}.resource-list a:hover{color:var(--green)}.tag-cloud{grid-template-columns:repeat(auto-fit,minmax(110px,1fr))}.tag-cloud span{border:1px solid #e5ded1;border-radius:999px;background:#fff;color:var(--green-dark);font-size:.88rem;font-weight:850;padding:.45rem .65rem;text-align:center}:root[data-theme=dark] body{background:linear-gradient(140deg,rgba(88,185,157,.12),transparent 34%),linear-gradient(320deg,rgba(239,139,114,.1),transparent 30%),var(--subtle)}:root[data-theme=dark] button{background:var(--green-dark);color:#07100d}:root[data-theme=dark] button:hover{background:var(--green);color:#07100d}:root[data-theme=dark] input,:root[data-theme=dark] select,:root[data-theme=dark] textarea{background:#0f1a17;color:var(--ink)}:root[data-theme=dark] input::placeholder,:root[data-theme=dark] textarea::placeholder{color:#788a83}:root[data-theme=dark] .hero-copy,:root[data-theme=dark] .metrics article,:root[data-theme=dark] .section-block,:root[data-theme=dark] .auth-panel,:root[data-theme=dark] .topic-card,:root[data-theme=dark] .insight-panel,:root[data-theme=dark] .loader-card{background:#121f1bf0}:root[data-theme=dark] .hero-panel{background:linear-gradient(180deg,#0c1412fa,#121f1beb),var(--surface)}:root[data-theme=dark] .sidebar{background:#07100d;color:#f4f1ea}:root[data-theme=dark] .brand-mark{background:#f4f1ea;color:#111c18}:root[data-theme=dark] .topbar{border-bottom-color:#f4f1ea1f}:root[data-theme=dark] .sync-chip,:root[data-theme=dark] .soft-button,:root[data-theme=dark] .soft-link{border-color:#58b99d42;background:#58b99d2e;color:#e9fff6}:root[data-theme=dark] .theme-toggle{border-color:#e4c86f47;background:#e4c86f2e;color:#fff2bd}:root[data-theme=dark] .soft-button:hover,:root[data-theme=dark] .soft-link:hover,:root[data-theme=dark] .theme-toggle:hover{background:#58b99d47;color:#fff}:root[data-theme=dark] .topbar-menu-toggle{border-color:#58b99d42;background:#58b99d1f;color:#e9fff6}:root[data-theme=dark] .topbar-menu-toggle img{filter:invert(1) brightness(1.3)}:root[data-theme=dark] .composer,:root[data-theme=dark] .resource-form,:root[data-theme=dark] .roadmap-column,:root[data-theme=dark] .roadmap-showcase,:root[data-theme=dark] .map-page{border-color:var(--line);background:linear-gradient(90deg,rgba(88,185,157,.06) 1px,transparent 1px),linear-gradient(rgba(88,185,157,.06) 1px,transparent 1px),var(--surface-strong)}:root[data-theme=dark] .map-page{background:linear-gradient(90deg,rgba(88,185,157,.06) 1px,transparent 1px),linear-gradient(rgba(88,185,157,.06) 1px,transparent 1px),radial-gradient(circle at 14% 16%,rgba(228,200,111,.16),transparent 28%),radial-gradient(circle at 86% 20%,rgba(117,185,228,.14),transparent 26%),#0c1412}:root[data-theme=dark] .roadmap-node,:root[data-theme=dark] .template-list article,:root[data-theme=dark] .week-card,:root[data-theme=dark] .check-item,:root[data-theme=dark] .dependency-list article,:root[data-theme=dark] .suggestion-card,:root[data-theme=dark] .resource-list article,:root[data-theme=dark] .tag-cloud span{border-color:var(--line);background:#14231f}:root[data-theme=dark] .map-hint,:root[data-theme=dark] .import-panel,:root[data-theme=dark] .layout-switcher,:root[data-theme=dark] .stage-lane,:root[data-theme=dark] .connection-panel,:root[data-theme=dark] .map-stats span{border-color:#58b99d33;background:#121f1bd6}:root[data-theme=dark] .progress-track{background:#24352f}:root[data-theme=dark] .topic-meta span,:root[data-theme=dark] .roadmap-showcase-head small,:root[data-theme=dark] .node-topline small,:root[data-theme=dark] .drag-chip,:root[data-theme=dark] .connection-panel span,:root[data-theme=dark] .pill,:root[data-theme=dark] .template-list span{background:#58b99d24;color:var(--green)}:root[data-theme=dark] .topic-actions button,:root[data-theme=dark] .resource-type-picker button{border-color:var(--line);background:#1a2b26;color:#e9fff6}:root[data-theme=dark] .topic-actions button:hover,:root[data-theme=dark] .resource-type-picker button:hover,:root[data-theme=dark] .layout-switcher button:hover{background:#243a33;color:#fff}:root[data-theme=dark] .resource-type-picker button.active,:root[data-theme=dark] .layout-switcher button.active{background:var(--green-dark);color:#10221e}:root[data-theme=dark] .layout-switcher button{color:#e9fff6}:root[data-theme=dark] .panel-link,:root[data-theme=dark] .small-link,:root[data-theme=dark] .suggestion-card a{background:var(--green-dark);color:#07100d}:root[data-theme=dark] .ghost-button,:root[data-theme=dark] .resource-list button{color:#ffad99}:root[data-theme=dark] .ghost-button:hover,:root[data-theme=dark] .resource-list button:hover{color:#ffd1c7}:root[data-theme=dark] .github-button,:root[data-theme=dark] .auth-switch button.active{background:var(--gold);color:#111c18}:root[data-theme=dark] .auth-switch button,:root[data-theme=dark] .layout-switcher button{background:transparent}:root[data-theme=dark] .ghost-button,:root[data-theme=dark] .resource-list button{background:transparent;color:#ffad99}:root[data-theme=dark] .node-topline>span,:root[data-theme=dark] .roadmap-node>span,:root[data-theme=dark] .roadmap-column-head span,:root[data-theme=dark] .week-card>span{background:var(--green-dark);color:#07100d}:root[data-theme=dark] .week-board strong{color:#fff}:root[data-theme=dark] .week-card:hover{background:#14231f}:root[data-theme=dark] .resource-preview{border-color:#58b99d57;background:#58b99d14}:root[data-theme=dark] .slide-node:hover{background:linear-gradient(180deg,#182824,#12201c)}:root[data-theme=dark] .slide-node.dragging{background:#2a211a}@keyframes rise-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes list-in{0%{opacity:0;transform:translateY(8px) scale(.99)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes pulse-card{0%{opacity:.72;transform:scale(.985)}to{opacity:1;transform:scale(1)}}@keyframes canvas-pop{0%{opacity:0;transform:translateY(14px) scale(.99)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes chip-in{0%{opacity:0;transform:translateY(8px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes hint-pulse{0%,to{box-shadow:0 10px 26px #4b8fbd14}50%{box-shadow:0 16px 34px #4b8fbd2e}}@keyframes road-flow{0%{background-position:0 0}to{background-position:220% 0}}@keyframes road-flow-vertical{0%{background-position:0 0}to{background-position:0 220%}}@keyframes node-in{0%{opacity:0;transform:translateY(18px) rotate(-1deg) scale(.96)}to{opacity:1;transform:translateY(0) rotate(0) scale(1)}}@keyframes handle-pulse{0%,to{opacity:.45;transform:scale(.9)}50%{opacity:1;transform:scale(1.12)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:1ms!important;scroll-behavior:auto!important;transition-duration:1ms!important}}@media(max-width:1120px){.app-shell{grid-template-columns:1fr}.sidebar{position:static;height:auto;padding-bottom:.9rem}.route-nav{grid-template-columns:repeat(5,minmax(0,1fr))}.route-nav a{gap:.1rem .55rem;padding:.72rem}.route-nav small,.sidebar-summary{display:none}}@media(max-width:980px){.hero,.metrics,.auth-page,.page-grid,.page-grid-wide,.week-board{grid-template-columns:1fr}.roadmap-path:before{top:1rem;bottom:1rem;left:20px;width:2px;height:auto}.hero-copy,.hero-panel,.week-card{min-height:auto}.workspace{padding:1rem 1.25rem 2rem}.hero,.metrics,.page-grid,.page-grid-wide{width:100%;max-width:100%;min-width:0}.auth-page{align-items:start;min-height:auto;padding-top:1.25rem}.metrics,.route-nav{grid-template-columns:repeat(3,minmax(0,1fr))}.topic-form{grid-template-columns:repeat(2,minmax(0,1fr))}.wide-input{grid-column:1 / -1}.roadmap-board{grid-auto-columns:minmax(280px,42vw)}.roadmap-showcase-head,.map-header{display:grid;gap:.85rem}.slider-controls{width:100%}.import-panel{grid-template-columns:1fr;align-items:stretch}.node-track.vertical .slide-node,.node-track.vertical .slide-node:nth-child(2n){margin-left:2.75rem}.stage-map{grid-template-columns:repeat(4,minmax(240px,1fr))}}@media(max-width:720px){.workspace,.sidebar{padding:1rem}.workspace{width:100%;max-width:100vw;overflow-x:hidden}.sidebar{gap:.85rem;overflow:hidden}.brand{padding:0}.sync-chip{display:none}.topbar,.section-heading,.map-header,.import-panel,.topic-card-header,.topic-meta,.topic-actions,.resource-row,.resource-type-picker,.resource-list article,.composer>div{align-items:stretch;flex-direction:column}.topbar{align-items:center;flex-direction:row;gap:.75rem}.topbar>div:first-child{flex:1 1 auto}.topbar-menu-toggle{display:inline-flex}.topbar-actions{position:absolute;top:calc(100% + .55rem);right:0;z-index:20;display:none;width:min(260px,100%);border:1px solid var(--line);border-radius:18px;background:var(--surface);box-shadow:var(--shadow);padding:.55rem}.topbar-actions.open{display:grid;gap:.45rem}.topbar-actions>*{width:100%;justify-content:center}.route-nav{display:flex;gap:.5rem;overflow-x:auto;margin:0 -1rem;padding:0 1rem .35rem;scroll-snap-type:x mandatory;scrollbar-width:none}.route-nav::-webkit-scrollbar{display:none}.resource-type-picker{grid-template-columns:repeat(2,minmax(0,1fr))}.route-nav a{flex:0 0 138px;grid-template-columns:1fr;gap:.25rem;min-height:78px;scroll-snap-align:start}.route-nav span{grid-row:auto}.route-nav strong{font-size:.95rem}.hero{padding-top:1rem}.hero h1{font-size:clamp(1.85rem,9vw,2.55rem);line-height:1.05}.hero-panel strong{font-size:3.4rem}.topic-form{grid-template-columns:1fr}.roadmap-board{grid-auto-columns:minmax(260px,82vw);margin-right:-1rem;margin-left:-1rem;padding-right:1rem;padding-left:1rem;scroll-snap-type:x mandatory}.page-grid-wide>.section-block,.page-grid-wide>.insight-panel{width:100%;max-width:100%}.roadmap-column{min-width:0;scroll-snap-align:start}.roadmap-showcase{margin-right:-.1rem;margin-left:-.1rem;padding:.85rem}.roadmap-path{grid-template-columns:1fr}.roadmap-path:before,.node-track:before,.dependency-line{display:none}.roadmap-node{min-width:0}.topic-card{padding:.95rem .9rem .95rem 1rem}.topic-card h3,.roadmap-node strong{overflow-wrap:anywhere}.topic-actions{justify-content:stretch}.map-page{min-height:100vh;padding:1rem}.map-header h1{font-size:clamp(2rem,12vw,3rem)}.map-canvas{min-height:auto;align-content:start}.map-hint{align-items:flex-start;flex-direction:column}.map-stats span,.connection-panel span{width:100%;border-radius:14px}.slider-controls,.layout-switcher{width:100%}.slider-controls>*,.layout-switcher button{flex:1 1 auto}.layout-switcher{border-radius:16px}.node-slider{margin-right:-1rem;margin-left:-1rem;padding:1.25rem 1rem 1.5rem}.slide-node{width:min(82vw,340px);min-height:220px}.node-track.vertical{max-width:none}.node-track.vertical:before{left:1rem}.node-track.vertical .slide-node,.node-track.vertical .slide-node:nth-child(2n){width:calc(100% - 2.25rem);margin-left:2.25rem}.stage-map{grid-template-columns:1fr;overflow-x:visible;padding:.5rem 0 1rem}.stage-lane{min-width:0}.node-actions{align-items:flex-start;flex-direction:column}.slide-node a{width:100%;text-align:center}.metrics{grid-template-columns:1fr}.app-shell.auth-mode .workspace{padding:1rem}.auth-copy h1{font-size:clamp(2rem,13vw,3.2rem)}.auth-panel,.week-dialog{padding:1rem}.week-board{grid-template-columns:1fr}.week-card{min-height:150px}.dialog-actions{flex-direction:column-reverse}.dialog-actions button{width:100%}.wide-input{grid-column:auto}.section-heading select{max-width:none}.topic-progress{grid-template-columns:1fr}.inline-heading,.dependency-list article{align-items:stretch;grid-template-columns:1fr}.inline-form,.detail-progress,.check-item{grid-template-columns:1fr}}@media(max-width:520px){button,input,select,textarea{font-size:.95rem}.brand-mark{width:54px;height:54px;min-width:54px;min-height:54px}.logo{width:58px;height:58px}.topbar-actions,.resource-row,.topic-actions{width:100%}.topbar-actions>*,.resource-row>*,.topic-actions>*{width:100%}.topbar-actions{width:min(260px,calc(100vw - 2rem))}.hero-copy,.hero-panel,.metrics article,.section-block,.insight-panel{border-radius:14px;padding:1rem}.hero-panel strong{font-size:2.75rem}.roadmap-board{grid-auto-columns:minmax(240px,88vw)}.topic-card-header,.roadmap-showcase-head,.roadmap-column-head{gap:.6rem}.topic-meta span{width:100%;border-radius:12px}.map-page{padding:.75rem}.map-header p,.map-hint span,.import-panel small{font-size:.92rem}.node-slider{margin-right:-.75rem;margin-left:-.75rem;padding-right:.75rem;padding-left:.75rem}.slide-node{width:86vw;min-height:210px}.connection-handle{right:-9px;width:22px;height:22px;min-height:22px}.resource-type-picker{grid-template-columns:1fr}.modal-backdrop{align-items:end;padding:.75rem}.week-dialog{width:100%;max-height:calc(100vh - 1.5rem);overflow:auto}}@media print{.sidebar,.topbar-actions,.composer,.topic-actions,.ghost-button,.resource-form{display:none!important}.app-shell,.page-grid,.page-grid-wide,.hero,.metrics{display:block}body{background:#fff}.workspace{width:100%;padding:0}}
