@import"https://fonts.googleapis.com/css2?family=Be+Vietnam+Pro:wght@500;600;700;800&family=Inter:wght@400;500;600;700&display=swap";:root{--navbar-height: 56px;--bg-dark: #f8f9ff;--bg-card: #ffffff;--hero-blue-deep: #0b4b98;--hero-blue-core: #1557ad;--hero-glow: #3e8bd6;--hero-orange-warm: #c58a6b;--primary-cyan: #0055a2;--primary-blue: #003e79;--primary-purple: #0b5cad;--text-main: #111c2a;--text-muted: #5c667a;--border-glow: rgba(114, 119, 130, .24);--input-bg: #f1f4fa}html[data-theme=dark]{--bg-dark: #09121f;--bg-card: #121f33;--hero-blue-deep: #123d74;--hero-blue-core: #1a5aa8;--hero-glow: #56a2ff;--primary-cyan: #3e8bd6;--primary-blue: #1d6fce;--primary-purple: #327ed2;--text-main: #e6eefb;--text-muted: #9fb0cc;--border-glow: rgba(127, 168, 224, .28);--input-bg: #0f1d30}html,body,#root{width:100%;min-height:100%;margin:0}body{overflow-x:hidden;font-family:Inter,-apple-system,sans-serif;background:var(--bg-dark);color:var(--text-main)}html[data-theme=dark] body{background:radial-gradient(circle at 15% 10%,#123058,#0b1c31 42%,#081322);color:var(--text-main)}.navbar{position:fixed;top:0;z-index:1200;width:100%;height:var(--navbar-height);box-sizing:border-box;border-bottom:1px solid rgba(203,213,225,.65);background-color:#ffffffeb;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);padding:.5rem 1.5rem;display:flex;align-items:center;justify-content:flex-start;gap:.45rem;flex-shrink:0;box-shadow:0 8px 26px #1521380f}html[data-theme=dark] .navbar{border-bottom:1px solid rgba(92,145,214,.28);background-color:#091627e0;box-shadow:0 8px 28px #040a148c}.navbar__icon{display:flex;align-items:center;flex-shrink:0;font-weight:800;font-size:1.125rem;color:#003e79;font-family:Be Vietnam Pro,Inter,sans-serif}html[data-theme=dark] .navbar__icon{color:#dbeafe}.navbar__brand-btn{border:none;background:none;padding:0;cursor:pointer;transition:opacity .2s}.navbar__brand-btn:hover{opacity:.9}.navbar__brand-btn:focus-visible{outline:2px solid rgba(56,189,248,.7);outline-offset:4px;border-radius:8px}.navbar__icon-img{flex-shrink:0}.navbar__search{position:relative;max-width:46rem;cursor:text;flex:0 1 22rem;width:min(100%,22rem)}.navbar__search-icon{position:absolute;left:.75rem;top:50%;transform:translateY(-50%);color:#7b8498;pointer-events:none}html[data-theme=dark] .navbar__search-icon{color:#8eb4e8}.navbar__input{width:100%;height:34px;padding:.35rem .8rem .35rem 2.4rem;border:1px solid #d7deea;border-radius:10px;font-size:.84rem;outline:none;transition:border-color .2s,box-shadow .2s;background-color:var(--input-bg);color:#111c2a}html[data-theme=dark] .navbar__input{border:1px solid rgba(96,143,203,.45);background-color:#0f1f34eb;color:#e6eefb}.navbar__input:focus{border-color:#0055a2;box-shadow:0 0 0 3px #0055a21f}.navbar__input::placeholder{color:#8991a4}html[data-theme=dark] .navbar__input::placeholder{color:#86a2c9}.navbar__avatar-wrapper{position:relative;flex-shrink:0}.navbar__auth-actions{display:flex;align-items:center;gap:.65rem;flex-shrink:0}.navbar__actions{display:flex;align-items:center;gap:.75rem;margin-left:auto}.navbar__icon-btn{width:34px;height:34px;border-radius:999px;border:none;background:transparent;color:#5a6579;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}html[data-theme=dark] .navbar__icon-btn{color:#b9d4fb}.navbar__icon-btn:hover{background:#eef3fa}html[data-theme=dark] .navbar__icon-btn:hover{background:#3e8bd638}.navbar__auth-btn{min-height:34px;padding:.35rem .85rem;border-radius:10px;border:1px solid #cfd8e8;background:#fff;color:#0055a2;font-size:.875rem;font-weight:700;font-family:Be Vietnam Pro,Inter,sans-serif;cursor:pointer;transition:border-color .2s,box-shadow .2s,transform .2s}html[data-theme=dark] .navbar__auth-btn{border-color:#6499e06b;background:#13243af2;color:#b7d7ff}.navbar__auth-btn:hover{transform:translateY(-1px);border-color:#0055a273;box-shadow:0 6px 14px #0055a224}.navbar__auth-btn--primary{border-color:#0055a2;background:linear-gradient(135deg,#0055a2,#003e79);color:#fff}html[data-theme=dark] .navbar__auth-btn--primary{border-color:#539df5c7;background:linear-gradient(135deg,#2f80e1,#1e5fb0);color:#f3f8ff}.navbar__auth-btn:focus-visible{outline:2px solid rgba(0,85,162,.6);outline-offset:2px}.navbar__profile-trigger{display:inline-flex;align-items:center;gap:.6rem;padding:.35rem .55rem .35rem .8rem;border-color:#d5deed;background:#f3f6fb;box-shadow:none}html[data-theme=dark] .navbar__profile-trigger{border-color:#5f91d280;background:#0f1d2fe6}.navbar__profile-trigger:hover{border-color:#0055a273;box-shadow:0 6px 14px #0055a224}.navbar__profile-trigger:focus-visible{outline:2px solid rgba(0,85,162,.65);outline-offset:2px}.navbar__profile-name{max-width:140px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.navbar__avatar{width:1.75rem;height:1.75rem;border-radius:50%;background:linear-gradient(135deg,#0055a2,#003e79);display:flex;align-items:center;justify-content:center;transition:transform .2s,box-shadow .2s,filter .2s;-webkit-user-select:none;user-select:none;flex-shrink:0}.navbar__profile-trigger:hover .navbar__avatar{transform:translateY(-1px);filter:brightness(1.06);box-shadow:0 8px 16px #0055a23d}.navbar__avatar span{color:#fff;font-weight:600;font-size:1rem}.navbar__avatar-img{width:100%;height:100%;object-fit:cover;border-radius:50%}.navbar.scrolled{background-color:#0055a2;border-color:#ffffff1a}.navbar.scrolled .navbar__icon,.navbar.scrolled .navbar__icon-btn,.navbar.scrolled .navbar__auth-btn{color:#fff}.navbar.scrolled .navbar__icon-btn:hover{background:#ffffff1f}.navbar.scrolled .navbar__input{background:#ffffff24;border-color:#ffffff38;color:#fff}.navbar.scrolled .navbar__input::placeholder,.navbar.scrolled .navbar__search-icon{color:#ffffffbd}.navbar.scrolled .navbar__auth-btn{border-color:#ffffff38;background:#ffffff1a}.navbar.scrolled .navbar__auth-btn--primary{background:#fff;color:#0055a2;border-color:#fff}.menubar{position:absolute;top:calc(100% + 8px);right:0;background-color:#fff;border:1px solid #e4e9f2;border-radius:12px;box-shadow:0 18px 34px #0206171f;min-width:220px;z-index:1000;overflow:hidden;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);padding:6px}html[data-theme=dark] .menubar{background-color:#101e31f5;border:1px solid rgba(95,145,210,.45);box-shadow:0 18px 34px #0208128c}.menubar__item{width:100%;min-height:42px;padding:.65rem .9rem;cursor:pointer;transition:background-color .2s,color .2s;font-size:.875rem;color:#374151;background:none;border:none;text-align:left;border-radius:10px;font-weight:600}html[data-theme=dark] .menubar__item{color:#d8e7ff}.menubar__item:hover{background-color:#f6f8fc;box-shadow:inset 0 0 0 1px #e2e8f3}html[data-theme=dark] .menubar__item:hover{background-color:#3877c324;box-shadow:inset 0 0 0 1px #7ba9e766}.menubar__item:focus-visible{outline:2px solid rgba(0,85,162,.55);outline-offset:1px}.menubar__item--danger{color:#dc2626}.menubar__item--danger:hover{background-color:#fff1f1;color:#b91c1c;box-shadow:inset 0 0 0 1px #f5d2d2}.menubar__divider{height:1px;background-color:#e7ecf4;margin:.35rem 0}html[data-theme=dark] .menubar__divider{background-color:#5f91d25c}.notification{position:fixed;bottom:24px;right:24px;min-width:300px;max-width:400px;background-color:#fff;border-radius:8px;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;display:flex;align-items:center;gap:12px;padding:16px;z-index:9999;animation:slideIn .3s ease-out;border-left:4px solid}html[data-theme=dark] .notification{background-color:#14253d;color:#d6e5fb;box-shadow:0 14px 26px #02091480}html[data-theme=dark] .notification__message,html[data-theme=dark] .notification__close{color:#d6e5fb}html[data-theme=dark] .notification__close:hover{color:#f2f7ff;background-color:#4e8ad73d}html[data-theme=dark] .homepage,html[data-theme=dark] .homepage-content,html[data-theme=dark] .roadmap-search-overlay__panel,html[data-theme=dark] .roadmap-search-page,html[data-theme=dark] .roadmap-preview-panel,html[data-theme=dark] .roadmap-search-results,html[data-theme=dark] .homepage-popup,html[data-theme=dark] .auth-modal-shell{background-color:#0f1d30;color:#e6eefb}html[data-theme=dark] .homepage-roadmap-card,html[data-theme=dark] .roadmap-search-results__card,html[data-theme=dark] .roadmap-preview-panel__hero,html[data-theme=dark] .roadmap-preview-panel__graph-shell,html[data-theme=dark] .homepage-bento__main,html[data-theme=dark] .homepage-bento__side,html[data-theme=dark] .homepage-popup{background:#14243a;border-color:#6295db59;color:#e6eefb}@keyframes slideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.notification__icon{flex-shrink:0;display:flex;align-items:center;justify-content:center}.notification__message{flex:1;font-size:.875rem;line-height:1.5;color:#374151}.notification__close{flex-shrink:0;background:none;border:none;cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center;color:#6b7280;transition:color .2s;border-radius:4px}.notification__close:hover{color:#374151;background-color:#f3f4f6}.notification--success{border-left-color:#10b981}.notification--success .notification__icon{color:#10b981}.notification--error{border-left-color:#ef4444}.notification--error .notification__icon{color:#ef4444}.notification--warning{border-left-color:#f59e0b}.notification--warning .notification__icon{color:#f59e0b}.notification--info{border-left-color:#3b82f6}.notification--info .notification__icon{color:#3b82f6}.homepage{flex:1 1 auto;overflow-x:hidden;overflow-y:auto;width:100%;min-height:100vh;display:flex;flex-direction:column;font-family:Be Vietnam Pro,Inter,sans-serif;background-color:#f8f9ff;background-image:radial-gradient(circle at 18% -10%,#0055a238,#f8f9ff00 40%);color:#111c2a}.homepage h1,.homepage h2,.homepage h3,.homepage h4,.homepage h5,.homepage h6{font-family:Be Vietnam Pro,Inter,sans-serif}.homepage-content{width:100%;margin:0;padding-top:var(--navbar-height)}.homepage-section{padding:30px 22px}.homepage-section--hero{text-align:center;min-height:680px;border-radius:0 0 36px 36px;background:linear-gradient(135deg,#003e79,#0055a2 62%,#0f73c9);color:#fff;display:flex;flex-direction:column;justify-content:center}.homepage-status{margin:0 auto;color:#fffffff2;font-size:.86rem;letter-spacing:.04em;font-weight:700;background:#ffffff1f;border:1px solid rgba(255,255,255,.25);border-radius:999px;padding:.42rem .85rem}.homepage-title{margin:20px 0 12px;color:#fff;font-family:Be Vietnam Pro,Inter,sans-serif;font-weight:800;font-size:clamp(2.2rem,6vw,4.6rem);letter-spacing:-.02em;line-height:1.08}.homepage-title__nowrap{white-space:nowrap}.homepage-description{margin:0 auto;width:min(760px,100%);color:#ffffffd1;line-height:1.62;font-size:1.03rem}.homepage-role-row{margin-top:28px;display:flex;gap:12px;justify-content:center;align-items:center;flex-wrap:wrap}.homepage-dotline{color:#ffffffd1;letter-spacing:.3em;opacity:.78}.homepage-role-pill{min-height:38px;border-radius:12px;border:1px solid rgba(255,255,255,.5);background:#ffffff1a;color:#fff;font-family:Be Vietnam Pro,Inter,sans-serif;font-size:.82rem;font-weight:700;padding:.42rem .95rem}.homepage-hero-actions{margin-top:30px;display:flex;gap:10px;justify-content:center;align-items:center;flex-wrap:wrap}.homepage-wire-btn{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;min-height:46px;line-height:1.2;border-radius:12px;border:2px solid rgba(255,255,255,.28);background:#ffffff1f;color:#fff;text-decoration:none;font-family:Be Vietnam Pro,Inter,sans-serif;font-size:.9rem;font-weight:700;padding:.5rem 1.1rem;transition:transform .2s ease,background-color .2s ease}button.homepage-wire-btn{-moz-appearance:none;appearance:none;-webkit-appearance:none;margin:0;cursor:pointer}.homepage-wire-btn:hover{transform:translateY(-1px);background:#fff3}.homepage-wire-btn--solid{background:#fff;border-color:#fff;color:#0055a2;cursor:pointer}.homepage-wire-btn--mini{min-height:32px;border-width:1px;border-color:#0055a259;background:#0055a21a;color:#0f4f8d;padding:.25rem .62rem;font-size:.78rem}.homepage-onboarding-hint{margin:0;color:#ffffffe0;font-size:.9rem}.homepage-section--blank{min-height:230px;background:#fff;border:1px solid #e6ebf4;border-radius:28px;margin-top:0;box-shadow:0 20px 38px #111c2a14}.homepage-roadmap-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:22px}.homepage-roadmap-grid--single{grid-template-columns:repeat(5,minmax(0,1fr))}.homepage-roadmap-head{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:1.35rem}.homepage-roadmap-head h2{margin:0;color:#0055a2;font-family:Be Vietnam Pro,Inter,sans-serif;font-size:clamp(1.7rem,3vw,2.25rem);font-weight:800}.homepage-roadmap-head p{margin:.35rem 0 0;color:#62708a}.homepage-roadmap-card--featured{position:relative;border-color:#cfe4fb;background:linear-gradient(180deg,#f5faff,#eef6ff);box-shadow:0 18px 34px #0555a229}.homepage-roadmap-card--featured:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;border-radius:22px;box-shadow:inset 0 0 0 1px #2563eb33}.homepage-roadmap-card--featured .homepage-roadmap-card__title{display:flex;align-items:center;justify-content:space-between;gap:.55rem}.homepage-feature-pill{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:#2563eb1f;color:#1d4ed8;font-size:.67rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;padding:.2rem .5rem;flex-shrink:0}html[data-theme=dark] .homepage-roadmap-card--featured{border-color:#66a3ff73;background:linear-gradient(180deg,#0e243cfa,#0b1d31fa);box-shadow:0 18px 34px #030c198c}html[data-theme=dark] .homepage-roadmap-card--featured:after{box-shadow:inset 0 0 0 1px #6bafff52}html[data-theme=dark] .homepage-feature-pill{background:#60a5fa3d;color:#d7e9ff}.homepage-roadmap-controls{display:inline-flex;align-items:center;gap:.62rem}.homepage-roadmap-controls button{width:46px;height:46px;border-radius:14px;border:1px solid #d6e3f3;background:#fff;color:#0b4f92;font-size:1.5rem;font-weight:800;line-height:1;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 10px 18px #0c224214;cursor:pointer;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease,background-color .18s ease}.homepage-roadmap-controls button:hover:not(:disabled){transform:translateY(-1px);border-color:#8cb7e7;background:#f5faff;box-shadow:0 12px 22px #0c224229}.homepage-roadmap-controls button:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.homepage-roadmap-card{border:1px solid #edf1f7;border-radius:22px;overflow:hidden;background:#f8fafd;display:flex;flex-direction:column;transition:transform .25s ease,box-shadow .25s ease}@media (max-width: 1480px){.homepage-roadmap-grid,.homepage-roadmap-grid--single{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (max-width: 1220px){.homepage-roadmap-grid,.homepage-roadmap-grid--single{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width: 900px){.homepage-roadmap-grid,.homepage-roadmap-grid--single{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 640px){.homepage-roadmap-grid,.homepage-roadmap-grid--single{grid-template-columns:1fr}}.homepage-roadmap-card:hover{transform:translateY(-2px);box-shadow:0 20px 34px #0f172a1f;background:#fff}.homepage-roadmap-card__image-wrap{position:relative}.homepage-roadmap-card__image{width:100%;height:188px;object-fit:cover}.homepage-roadmap-card__chips{position:absolute;left:12px;bottom:12px;display:flex;gap:.45rem}.homepage-roadmap-card__chips span{background:#ffffffeb;color:#0055a2;border-radius:10px;font-size:.62rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;padding:.28rem .48rem}.homepage-roadmap-card__body{padding:1.1rem 1rem 1rem;display:flex;flex-direction:column;flex:1}.homepage-roadmap-card__title{margin:0;color:#0055a2;font-family:Be Vietnam Pro,Inter,sans-serif;font-size:1.15rem;font-weight:800}.homepage-roadmap-card__description{margin:.65rem 0 .85rem;color:#5a6478;font-size:.88rem;line-height:1.55;flex:1}.homepage-roadmap-card__meta{display:flex;align-items:center;justify-content:space-between;gap:.75rem;border-top:1px solid #edf1f7;padding-top:.75rem}.homepage-roadmap-card__meta small{color:#8490a6;font-weight:700}.homepage-card-action{border:0;background:transparent;color:#0055a2;font-weight:700;cursor:pointer}.homepage-card-action:disabled{opacity:.55;cursor:not-allowed}.homepage-card-action--danger{color:#dc2626}.homepage-card-action--danger:hover:not(:disabled){color:#b91c1c}.homepage-chip{border-radius:9px;font-size:.62rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;padding:.3rem .48rem}.homepage-chip--neutral{background:#ffffffeb;color:#0055a2}.homepage-chip--blue{background:#2563ebe6;color:#fff}.homepage-chip--orange{background:#ea580ce6;color:#fff}.homepage-chip--indigo{background:#4f46e5e6;color:#fff}.homepage-chip--rose{background:#e11d48e6;color:#fff}.homepage-chip--emerald{background:#059669e6;color:#fff}.homepage-chip--amber{background:#d97706e6;color:#fff}.homepage-status--badge{display:inline-flex;align-items:center;justify-content:center;min-height:34px;padding:.38rem .86rem;border-radius:999px;border:1px solid rgba(255,255,255,.25);background:#ffffff1a}.homepage-social-proof{margin-top:1.4rem;display:inline-flex;align-items:center;gap:.8rem;padding-top:1rem;border-top:1px solid rgba(255,255,255,.2)}.homepage-social-proof p{margin:0;color:#fffc;font-size:.86rem}.homepage-social-proof p strong{color:#fff}.homepage-social-proof__avatars{display:inline-flex;align-items:center}.homepage-social-proof__avatars img,.homepage-social-proof__avatars span{width:34px;height:34px;border-radius:50%;border:2px solid rgba(255,255,255,.82);margin-left:-8px}.homepage-social-proof__avatars img:first-child{margin-left:0}.homepage-social-proof__avatars span{margin-left:-8px;display:inline-flex;align-items:center;justify-content:center;background:#ffffff42;color:#fff;font-size:.62rem;font-weight:800}.homepage-hero-modern{position:relative;overflow:hidden;min-height:calc(100vh - var(--navbar-height));display:grid;align-items:center;background:radial-gradient(60% 72% at 74% 18%,#c58a6b94,#c58a6b2e 35%,#c58a6b00 68%),radial-gradient(42% 60% at 56% 20%,#3e8bd673,#3e8bd61f 40%,#3e8bd600 72%),linear-gradient(180deg,var(--hero-blue-core) 0%,var(--hero-blue-deep) 72%);border-radius:0;margin:0;padding:4rem clamp(1rem,4vw,3rem) 3rem}.homepage-hero-modern__content{max-width:560px;z-index:1}.homepage-hero-modern{grid-template-columns:1fr}.homepage-hero-actions--column{justify-content:flex-start;flex-direction:column;align-items:flex-start;max-width:340px}.homepage-hero-actions--column .homepage-wire-btn{width:100%}.homepage-wire-btn--white{background:#fff;color:#0055a2;border-color:#fff;width:100%}.homepage-wire-btn--translucent{background:#ffffff1a;color:#fff;border-color:#ffffff59;width:100%}.homepage-wire-btn--manual{background:#071c344d;color:#e7f2ff;border-color:#ffffff73;width:100%}.homepage-wire-btn--manual:hover{background:#071c346b}html[data-theme=dark] .homepage-wire-btn--manual{background:#06121e94;color:#d9ecff;border-color:#9fcbff73}.homepage-hero-modern__visual{display:none;justify-content:center;align-items:center}.hero-map-card{width:520px;max-width:100%;aspect-ratio:1 / 1;background:#ffffffe6;border-radius:2.5rem;border:1px solid rgba(255,255,255,.24);box-shadow:0 24px 42px #0f172a3d;position:relative;padding:2rem}.hero-map-card--image{padding:0;overflow:hidden;aspect-ratio:1 / 1}.hero-map-image{width:100%;height:100%;display:block;object-fit:cover;object-position:center}.hero-map-lines{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none}.hero-map-node{position:absolute;background:#fff;border:2px solid #e2e8f0;border-radius:1rem;padding:.75rem;box-shadow:0 8px 20px #0f172a1f}.hero-map-node strong{display:block;font-size:.75rem;margin-bottom:.2rem}.hero-map-node small{font-size:.65rem;color:#667085}.hero-map-node--center{top:50%;left:50%;transform:translate(-50%,-50%);background:#0055a2;border-color:#fff;color:#fff;width:130px;height:130px;border-radius:1.2rem;display:grid;place-items:center;font-size:.7rem;text-transform:uppercase;letter-spacing:.16em;font-weight:800}.hero-map-node--tl{top:12%;left:12%}.hero-map-node--tr{top:12%;right:12%}.hero-map-node--bl{bottom:12%;left:12%}.hero-map-node--br{bottom:12%;right:12%}.hero-map-float{position:absolute;right:16px;bottom:16px;background:#fff;border:1px solid #edf1f7;border-radius:1rem;box-shadow:0 20px 36px #0f172a38;padding:1rem}.hero-map-float p{margin:0;font-size:.58rem;text-transform:uppercase;letter-spacing:.12em;color:#98a2b3}.hero-map-float strong{display:block;margin-top:.25rem;color:#0f172a}.homepage-bento{padding:6rem 0;display:grid;gap:1.5rem;grid-template-columns:1fr}.homepage-bento__main,.homepage-bento__side{border-radius:2rem;padding:2.2rem}.homepage-bento__main{background:#003e79;color:#fff;box-shadow:0 22px 40px #003e794d}.homepage-bento__main h2{margin:0;font-family:Be Vietnam Pro,Inter,sans-serif;font-weight:800;font-size:clamp(2rem,3vw,2.7rem)}.homepage-bento__main p{color:#dbeafe;max-width:580px}.homepage-bento__main button{border:0;background:#fff;color:#003e79;padding:.9rem 1.3rem;border-radius:.75rem;font-family:Be Vietnam Pro,Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:1.05rem;line-height:1.15;font-weight:800;letter-spacing:.01em;cursor:pointer}.homepage-bento__side{background:#fff;border:1px solid #edf1f7}.homepage-bento__side h3{margin:0;color:#0055a2;font-family:Be Vietnam Pro,Inter,sans-serif;font-weight:800;font-size:1.8rem}.homepage-bento__side p{color:#5c667a}.homepage-bento__side a{color:#0055a2;font-weight:700;text-decoration:none}.homepage-footer{margin:0 -22px;background:radial-gradient(65% 95% at 88% 65%,#c58a6bb8,#c58a6b00 56%),linear-gradient(130deg,var(--hero-blue-core) 0%,var(--hero-blue-deep) 58%,#124777 100%);color:#fff;display:grid;gap:1.5rem;grid-template-columns:1fr;padding:3.5rem 22px 3.5rem 40px}.homepage-footer h4,.homepage-footer h5{margin:0;font-family:Be Vietnam Pro,Inter,sans-serif}.homepage-footer__brand p{color:#ffffffc7;max-width:380px}.homepage-footer__col{display:grid;gap:.55rem}.homepage-footer__col a{color:#ffffffd9;text-decoration:none}.homepage-section--follow,.homepage-section--footer{min-height:130px;display:flex;align-items:center;justify-content:center;color:#47566f}.homepage-section--follow h2,.homepage-section--footer h2{margin:0;color:#0055a2;font-family:Be Vietnam Pro,Inter,sans-serif;font-size:clamp(1.6rem,3.2vw,2.1rem);font-weight:800}.homepage-side-badge{position:fixed;right:20px;top:110px;border:1px solid rgba(203,213,225,.9);border-radius:999px;padding:.32rem .7rem;color:#5d6880;font-size:.72rem;font-family:Courier New,Lucida Console,monospace;background:#ffffffe6}@media (max-width: 900px){.homepage-content{width:100%;margin:0;padding-top:var(--navbar-height)}.homepage-section{padding:20px 14px}.homepage-section--blank{margin-top:0;border-radius:20px}.homepage-roadmap-head{flex-direction:column;align-items:flex-start}.homepage-social-proof{flex-direction:column}.homepage-side-badge{display:none}}@media (min-width: 1024px){.homepage-hero-modern{grid-template-columns:1fr 1fr;gap:4rem}.homepage-hero-modern__visual{display:flex}.homepage-bento{grid-template-columns:2fr 1fr;align-items:stretch}.homepage-footer{grid-template-columns:2fr 1fr 1fr}}.homepage-onboarding-overlay{position:fixed;top:0;right:0;bottom:0;left:0;width:100vw;height:100vh;margin:0;padding:18px;box-sizing:border-box;background:#020617d9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:3000}.homepage-popup-overlay{position:fixed;top:0;right:0;bottom:0;left:0;width:100vw;height:100vh;margin:0;padding:20px;box-sizing:border-box;background:#020617b8;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;z-index:3200}.homepage-popup{width:min(420px,calc(100vw - 32px));border:1px solid var(--border-glow);border-radius:14px;background:linear-gradient(160deg,#0f172af5,#1e293beb);color:var(--text-main);box-shadow:0 0 18px #38bdf833,0 14px 34px #02061799;padding:18px}.homepage-popup__title{margin:0;font-size:1.05rem;color:#7dd3fc}.homepage-popup__message{margin:10px 0 0;color:#e2e8f0;line-height:1.45}.homepage-popup__actions{margin-top:16px;display:flex;justify-content:flex-end}.homepage-popup__button{border:1px solid rgba(56,189,248,.45);border-radius:10px;background:linear-gradient(135deg,#0e749052,#2563eb52);color:#e0f2fe;font-size:.88rem;font-weight:600;padding:8px 14px;cursor:pointer;transition:transform .15s ease,filter .15s ease}.homepage-popup__button:hover{transform:translateY(-1px);filter:brightness(1.08)}.homepage-popup__button:focus-visible{outline:2px solid rgba(56,189,248,.8);outline-offset:2px}.homepage-section--community{padding:40px 20px;text-align:center}.homepage-section--community h2{color:#f8fafc;font-size:1.5rem;margin-bottom:10px}.homepage-section--community p{color:#cbd5e1;font-size:.96rem;margin-bottom:30px;max-width:600px;margin-left:auto;margin-right:auto}.homepage-community-roadmaps{max-width:1000px;margin:0 auto}.homepage-community-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px}.homepage-community-card{background:#0f172ae6;border:1px solid rgba(56,189,248,.3);border-radius:12px;padding:24px;text-align:left;transition:transform .2s,box-shadow .2s}.homepage-community-card:hover{transform:translateY(-2px);box-shadow:0 8px 25px #38bdf826}.homepage-community-card h3{color:#f8fafc;font-size:1.2rem;margin:0 0 12px}.homepage-community-card p{color:#94a3b8;font-size:.9rem;line-height:1.5;margin:0 0 20px}.skill-canvas{background-color:#f8f9ff;background-image:radial-gradient(#d1d5db .5px,transparent .5px);background-size:24px 24px}.glass-panel{background:#f8f9ffcc;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid rgba(194,198,211,.2)}.code-font{font-family:JetBrains Mono,Fira Code,monospace}.node-connector-solid{stroke:#3b82f6;stroke-width:2.5;fill:none}.roadmap-node-main{background-color:#fef08a;border:2px solid #000000;border-radius:8px;font-weight:700;transition:transform .2s;display:flex;align-items:center;justify-content:center}.roadmap-node-main:hover{transform:scale(1.02)}.node-color-done{border-color:#22c55e!important;background-color:#f0fdf4!important}.node-color-progress{border-color:#f97316!important;background-color:#fff7ed!important}.node-color-neutral{border-color:#000!important;background-color:#fef08a!important}.roadmap-search-overlay{position:fixed;top:70px;right:0;bottom:0;left:0;z-index:1500;display:flex;align-items:flex-start;justify-content:center;padding:10px 0 12px}.roadmap-search-overlay__backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#0f172a47;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.roadmap-search-overlay__panel{position:relative;width:min(96vw,1500px);height:min(calc(100vh - 94px),980px);border-radius:18px;overflow:hidden;border:1px solid #dbe3ef;box-shadow:0 30px 60px #0f172a3d;background:#f8fafc}.roadmap-search-overlay__header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border-bottom:1px solid #dbe3ef;background:#eef2f8}.roadmap-search-overlay__title{margin:0;font-size:1rem;color:#0f172a;font-weight:700}.roadmap-search-overlay__close{border:1px solid #cbd5e1;background:#fff;color:#334155;border-radius:8px;padding:4px 10px;cursor:pointer;font-weight:700}.roadmap-search-page{display:flex;gap:0;background:#f8fafc;height:calc(100% - 52px)}.roadmap-search-page__left,.roadmap-search-page__right{box-sizing:border-box;min-height:100%;padding:22px 22px 24px}.roadmap-search-page__left{width:32%;border-right:1px solid #dbe3ef;background:linear-gradient(180deg,#eff4fb,#edf2f7)}.roadmap-search-page__right{width:68%;background:#f8fafc}.roadmap-search-page__section-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}.roadmap-search-page__eyebrow{margin:0 0 6px;font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#2563eb}.roadmap-search-page__title{margin:0;font-size:1.4rem;line-height:1.15;color:#0f172a}.roadmap-search-page__subtitle{margin:8px 0 0;color:#475569;line-height:1.55;max-width:32ch}.roadmap-search-page__hint-chip{flex:0 0 auto;border-radius:999px;background:#dbeafe;color:#1d4ed8;padding:8px 12px;font-size:.78rem;font-weight:700;border:1px solid #bfdbfe}.roadmap-search-page__error{margin:0 0 14px;color:#b91c1c;font-size:.92rem;line-height:1.5}.roadmap-search-results__state{margin:0;color:#64748b;line-height:1.55;padding:10px 0 0}.roadmap-search-results__state--error{color:#b91c1c}.roadmap-search-results__list{display:grid;gap:12px}.roadmap-search-results__card{text-align:left;padding:14px 15px;border-radius:16px;border:1px solid #dbe3ef;background:#fff;box-shadow:0 6px 16px #0f172a0a;cursor:pointer;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease,background .16s ease}.roadmap-search-results__card:hover{transform:translateY(-1px);border-color:#bfdbfe;box-shadow:0 12px 24px #0f172a14}.roadmap-search-results__card.is-selected{border-color:#1d4ed8;background:linear-gradient(180deg,#f8fbff,#eef4ff);box-shadow:0 14px 28px #1d4ed81f}.roadmap-search-results__card-body{display:grid;gap:6px}.roadmap-search-results__card-title{display:block;font-size:1rem;font-weight:700;color:#0f172a;line-height:1.25}.roadmap-search-results__card-description{margin:0;color:#64748b;font-size:.92rem;line-height:1.55}.roadmap-preview-panel{display:grid;gap:16px}.roadmap-preview-panel__state{margin:0;color:#64748b;line-height:1.55}.roadmap-preview-panel__state--error{color:#b91c1c}.roadmap-preview-panel__hero{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:18px 18px 16px;border-radius:18px;border:1px solid #dbe3ef;background:linear-gradient(180deg,#fff,#f8fbff);box-shadow:0 10px 24px #0f172a0d}.roadmap-preview-panel__eyebrow{margin:0 0 6px;font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#2563eb}.roadmap-preview-panel__title{margin:0;font-size:1.2rem;line-height:1.25;color:#0f172a}.roadmap-preview-panel__description{margin:8px 0 0;color:#475569;line-height:1.55;max-width:58ch}.roadmap-preview-panel__cta{flex:0 0 auto;border:none;border-radius:999px;padding:10px 16px;background:linear-gradient(180deg,#2f80ed,#1d4ed8);color:#fff;font-weight:700;font-size:.9rem;cursor:pointer;box-shadow:0 12px 22px #2563eb3d;white-space:nowrap}.roadmap-preview-panel__cta:hover{filter:brightness(1.03)}.roadmap-preview-panel__graph-shell{min-height:560px;border-radius:18px;overflow:hidden;border:1px solid #dbe3ef;background:#fff;box-shadow:0 12px 28px #0f172a0d}@media (max-width: 980px){.roadmap-search-page{flex-direction:column}.roadmap-search-page__left,.roadmap-search-page__right{width:100%;min-height:auto;padding:18px}.roadmap-search-page__left{border-right:none;border-bottom:1px solid #dbe3ef}.roadmap-preview-panel__hero,.roadmap-search-page__section-header{flex-direction:column}.roadmap-preview-panel__cta,.roadmap-search-page__hint-chip{width:fit-content}}html[data-theme=dark] .homepage{background-color:#0d1a2d;background-image:radial-gradient(circle at 18% -10%,#3e8bd638,#0d1a2d00 45%);color:#dbe9fb}html[data-theme=dark] .homepage-section--blank{background:#14243a;border:1px solid rgba(96,146,214,.35);box-shadow:0 18px 34px #030a1473}html[data-theme=dark] .homepage-roadmap-head h2,html[data-theme=dark] .homepage-roadmap-card__title,html[data-theme=dark] .homepage-bento__side h3,html[data-theme=dark] .homepage-card-action{color:#86c2ff}html[data-theme=dark] .homepage-roadmap-head p,html[data-theme=dark] .homepage-roadmap-card__description,html[data-theme=dark] .homepage-roadmap-card__meta small,html[data-theme=dark] .homepage-bento__side p,html[data-theme=dark] .homepage-bento__side a{color:#b2c5df}html[data-theme=dark] .homepage-roadmap-card{border:1px solid rgba(95,145,210,.32);background:#172943}html[data-theme=dark] .homepage-roadmap-card:hover{background:#1b3150;box-shadow:0 18px 30px #02091473}html[data-theme=dark] .homepage-roadmap-card__meta{border-top:1px solid rgba(95,145,210,.25)}html[data-theme=dark] .homepage-bento__main{background:linear-gradient(135deg,#1f63b8,#124a91);color:#eef6ff}html[data-theme=dark] .homepage-bento__main p{color:#d2e6ff}html[data-theme=dark] .homepage-bento__side{background:#14243a;border:1px solid rgba(95,145,210,.35)}html[data-theme=dark] .homepage-roadmap-controls button,html[data-theme=dark] .homepage-popup__button{border-color:#5f91d273;background:#1a2f4b;color:#d8e8ff}html[data-theme=dark] .homepage-roadmap-controls button:hover:not(:disabled){background:#27456c;border-color:#77acf2d1;box-shadow:0 14px 26px #030a1694}html[data-theme=dark] .homepage-roadmap-controls button:disabled{opacity:.35}html[data-theme=dark] .roadmap-search-overlay__panel{border:1px solid rgba(95,145,210,.38);box-shadow:0 28px 56px #02091499;background:#0f1d31}html[data-theme=dark] .roadmap-search-overlay__header{border-bottom:1px solid rgba(95,145,210,.35);background:#132741}html[data-theme=dark] .roadmap-search-overlay__title,html[data-theme=dark] .roadmap-search-page__title,html[data-theme=dark] .roadmap-search-results__card-title,html[data-theme=dark] .roadmap-preview-panel__title{color:#dcebfd}html[data-theme=dark] .roadmap-search-overlay__close{border:1px solid rgba(95,145,210,.42);background:#1b3251;color:#cfe3ff}html[data-theme=dark] .roadmap-search-page{background:#0f1d31}html[data-theme=dark] .roadmap-search-page__left{border-right:1px solid rgba(95,145,210,.35);background:linear-gradient(180deg,#142740,#122338)}html[data-theme=dark] .roadmap-search-page__right{background:#0f1d31}html[data-theme=dark] .roadmap-search-page__subtitle,html[data-theme=dark] .roadmap-search-results__state,html[data-theme=dark] .roadmap-search-results__card-description,html[data-theme=dark] .roadmap-preview-panel__description,html[data-theme=dark] .roadmap-preview-panel__state{color:#a9bedb}html[data-theme=dark] .roadmap-search-page__hint-chip{border:1px solid rgba(95,145,210,.5);background:#2f66ab59;color:#cae2ff}html[data-theme=dark] .roadmap-search-results__card{border:1px solid rgba(95,145,210,.35);background:#142740;box-shadow:0 8px 16px #02091459}html[data-theme=dark] .roadmap-search-results__card:hover{border-color:#7aabe98f;box-shadow:0 14px 26px #0209147a}html[data-theme=dark] .roadmap-search-results__card.is-selected{border-color:#5da3ff;background:linear-gradient(180deg,#183153,#142742);box-shadow:0 14px 28px #1d4ed838}html[data-theme=dark] .roadmap-preview-panel__hero,html[data-theme=dark] .roadmap-preview-panel__graph-shell{border:1px solid rgba(95,145,210,.35);background:#142740;box-shadow:0 12px 24px #02091473}html[data-theme=dark] .roadmap-preview-panel__cta{background:linear-gradient(180deg,#4a9bf5,#2b6fc7);box-shadow:0 10px 20px #337cdc59}:root{--auth-primary: #003e79;--auth-primary-2: #0055a2;--auth-bg: #f8f9ff;--auth-surface: #ffffff;--auth-surface-2: #eff4ff;--auth-text: #111c2a;--auth-muted: #566074;--auth-outline: #cfd7e7;--auth-error: #b3261e;--auth-success: #1e7f45}.auth-shell{min-height:auto;display:flex;align-items:center;justify-content:center;padding:0;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.auth-card{width:min(440px,calc(100vw - 24px));border-radius:16px;border:1px solid rgba(34,72,117,.12);background:var(--auth-surface);box-shadow:0 32px 48px -4px #003e791f;overflow:hidden;position:relative}.auth-back-link{position:absolute;top:18px;left:18px;display:inline-flex;align-items:center;gap:6px;font-size:.75rem;font-weight:700;color:var(--auth-muted);text-decoration:none}.auth-back-link:hover{color:var(--auth-primary)}.auth-header{text-align:center;padding:2.1rem 2rem 1.45rem}.auth-brand-icon{width:48px;height:48px;border-radius:999px;display:inline-grid;place-items:center;margin-bottom:.9rem;background:var(--auth-surface-2);color:var(--auth-primary)}.auth-title{margin:0;font-size:1.8rem;font-weight:800;letter-spacing:-.02em;color:var(--auth-text);font-family:Be Vietnam Pro,Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.auth-description{margin:.45rem 0 0;color:var(--auth-muted);font-size:.9rem;line-height:1.45}.auth-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid rgba(34,72,117,.08);border-bottom:1px solid rgba(34,72,117,.08);padding:0 1.7rem}.auth-tab{text-decoration:none;color:#6a7387;font-size:.88rem;font-weight:600;text-align:center;padding:.82rem .35rem;border-bottom:2px solid transparent}.auth-tab.active{color:var(--auth-primary);border-bottom-color:var(--auth-primary)}.auth-content{padding:1.65rem 2rem 1.85rem}.auth-form{display:grid;gap:.95rem}.auth-field{display:grid;gap:.38rem}.auth-label{font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.07em;color:#313b4f;padding-left:.25rem}.auth-field-row{display:flex;align-items:center;justify-content:space-between;gap:.65rem}.auth-inline-link{color:var(--auth-primary-2);text-decoration:none;font-size:.72rem;font-weight:700}.auth-inline-link:hover{text-decoration:underline}.auth-input-wrap{position:relative}.auth-leading-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:#7c8698;pointer-events:none}.auth-input{width:100%;box-sizing:border-box;min-height:44px;border-radius:10px;border:1px solid rgba(89,103,128,.24);background:var(--auth-surface-2);color:var(--auth-text);font-size:.88rem;padding:.62rem .8rem;outline:none;transition:border-color .2s,box-shadow .2s}.auth-input.has-leading{padding-left:2.2rem}.auth-input.has-trailing{padding-right:2.65rem}.auth-input:focus{border-color:var(--auth-primary);box-shadow:0 0 0 3px #0055a224}.auth-password-wrapper{position:relative}.auth-password-toggle{position:absolute;top:50%;right:8px;transform:translateY(-50%);border:0;background:transparent;color:#727d92;width:28px;height:28px;border-radius:999px;cursor:pointer;display:inline-grid;place-items:center}.auth-password-toggle:hover{color:#2d3d5a;background:#ffffff80}.auth-eye-icon{width:18px;height:18px}.auth-button{min-height:46px;border-radius:10px;border:1px solid transparent;cursor:pointer;font-size:.9rem;font-weight:700;transition:transform .16s,opacity .16s}.auth-button:active:not(:disabled){transform:scale(.985)}.auth-button.primary{background:linear-gradient(135deg,var(--auth-primary) 0%,var(--auth-primary-2) 100%);color:#fff;box-shadow:0 12px 20px #0055a233}.auth-button.secondary{border-color:#0055a240;background:#eef4ff;color:#154a84}.auth-button.disabled,.auth-button:disabled{opacity:.55;cursor:not-allowed}.auth-row{display:flex;gap:.55rem}.auth-row .auth-button{flex:1}.auth-status{margin:0 0 .9rem;border-radius:10px;font-size:.82rem;padding:.58rem .72rem;border:1px solid transparent}.auth-status.helper{color:#46526a;background:#ecf2ff;border-color:#d6e0f4}.auth-status.error{color:#8d1c19;background:#ffefef;border-color:#f3c5c3}.auth-status.success{color:#1d6b3e;background:#eaf8ef;border-color:#bfdfca}.auth-google-block{display:grid;gap:.8rem;margin-top:1rem}.auth-google-divider{display:flex;align-items:center;gap:.8rem;color:#8992a5;font-size:.62rem;letter-spacing:.12em;font-weight:800;text-transform:uppercase}.auth-google-divider:before,.auth-google-divider:after{content:"";flex:1;height:1px;background:#54637b38}.auth-google-button-wrap{border:1px solid rgba(84,99,123,.24);border-radius:10px;padding:.32rem;background:#fff}.auth-google-button-wrap>div{display:flex;justify-content:center}.auth-status.helper.tight{margin:0}.auth-links{margin-top:1rem;display:flex;justify-content:center;gap:1rem}.auth-links a{font-size:.78rem;color:var(--auth-primary-2);text-decoration:none;font-weight:700}.auth-links a:hover{text-decoration:underline}.auth-helper-text{margin:.18rem 0 0;color:#346099;font-size:.68rem;font-weight:600}.auth-helper-text.error{color:var(--auth-error)}.auth-otp-panel{display:grid;gap:.95rem}.auth-otp-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.68rem}.auth-otp-grid input{width:100%;height:56px;border-radius:10px;border:1px solid rgba(89,103,128,.24);text-align:center;font-size:1.35rem;font-weight:800;color:var(--auth-text);background:var(--auth-surface-2);outline:none}.auth-otp-grid input:focus{border-color:var(--auth-primary);box-shadow:0 0 0 3px #0055a224}.auth-otp-hint{margin:0;text-align:center;color:#5f6981;font-size:.78rem}.auth-otp-hint button{border:0;padding:0;background:transparent;color:var(--auth-primary);font-weight:700;cursor:pointer}.auth-strength{margin-top:.5rem;display:grid;gap:.34rem}.auth-strength-head{display:flex;justify-content:space-between;align-items:center;font-size:.62rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:#6b7387}.auth-strength-head b.weak{color:#b3261e}.auth-strength-head b.medium{color:#c77a16}.auth-strength-head b.strong{color:#13713b}.auth-strength-bars{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.34rem}.auth-strength-bars span{height:4px;border-radius:999px;background:#59678040}.auth-strength-bars span.on.weak{background:#b3261e}.auth-strength-bars span.on.medium{background:#c77a16}.auth-strength-bars span.on.strong{background:#13713b}.auth-footer{padding:1rem 2rem 1.15rem;background:#eef4ff9e;border-top:1px solid rgba(34,72,117,.08)}.auth-footer-note{margin:0;text-align:center;color:#737d93;font-size:.62rem;line-height:1.5}.auth-footer-links{margin-top:.55rem;display:flex;justify-content:center;gap:.7rem}.auth-footer-links a{font-size:.62rem;color:#4f5a72;text-decoration:none;font-weight:700}.auth-footer-links a:hover{color:var(--auth-primary)}.auth-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:3400;display:flex;align-items:center;justify-content:center;padding:16px;background:#111c2a33;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.auth-modal-shell{width:min(460px,calc(100vw - 16px));position:relative}.auth-modal-shell .auth-shell{background:transparent}.auth-modal-close{position:absolute;top:10px;right:12px;z-index:5;width:30px;height:30px;border-radius:999px;border:1px solid rgba(62,82,111,.2);background:#ffffffd9;color:#425068;cursor:pointer}.auth-modal-close:hover{color:#1f2f4a;background:#fff}:root{--st-bg: #f8f9ff;--st-topbar: #0055a2;--st-text: #111c2a;--st-muted: #5d6470;--st-line: #3b82f6;--st-shadow: 0 20px 40px rgba(17, 28, 42, .14);--st-shell-header-h: 70px;--st-summary-top-gap: -13px;--st-panel-top: calc(var(--st-shell-header-h) + var(--st-summary-top-gap))}.skill-tree-route-wrapper{width:100%;min-height:calc(100vh - 70px)}.skill-tree-page{min-height:calc(100vh - 70px);display:flex;flex-direction:column;background:#f3f5f9;color:var(--st-text);font-family:Inter,sans-serif}html[data-theme=dark] .skill-tree-page{background:#0d1a2d;color:#dce9fd}.skill-tree-page__topbar{height:56px;background:var(--st-topbar);border-bottom:1px solid rgba(255,255,255,.1);color:#fff;display:flex;align-items:center;gap:20px;padding:0 18px}.skill-tree-page__brand{font-family:Be Vietnam Pro,sans-serif;font-weight:800;font-size:1rem;white-space:nowrap}.skill-tree-page__topbar-meta{min-width:0;display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}.skill-tree-page__title{margin:0;font-family:Be Vietnam Pro,sans-serif;font-size:1.05rem;line-height:1}.skill-tree-page__subtitle,.skill-tree-page__subtle,.skill-tree-page__notice,.skill-tree-page__warning{margin:0;font-size:.8rem}.skill-tree-page__subtitle{color:#d9e8ff}.skill-tree-page__subtle{color:#bdd8ff}.skill-tree-page__notice{color:#fff4ba}.skill-tree-page__warning{color:#ffe0e0}.skill-tree-layout{position:relative;flex:1;min-height:0;overflow:hidden}.skill-tree-layout__canvas{height:100%;overflow:auto}html[data-theme=dark] .skill-tree-layout__canvas{background-color:#0f1e32}.skill-tree-zoom-layer{transform-origin:top center;transition:transform .18s ease}.skill-tree-summary-card{width:min(1180px,calc(100% - 48px));margin:56px auto 0;padding:14px 16px;border:1px solid #bfdbfe;border-left:5px solid #2563eb;border-radius:12px;background:linear-gradient(110deg,#eff6ff,#f8fbff);box-shadow:0 10px 22px #2563eb1f}html[data-theme=dark] .skill-tree-summary-card{border:1px solid rgba(90,146,218,.45);border-left:5px solid #3d8ee6;background:linear-gradient(110deg,#14263e,#112236);box-shadow:0 12px 24px #02091473}.skill-tree-summary-card__title{margin:0;font-family:Be Vietnam Pro,sans-serif;font-size:1rem;font-weight:700;color:#0f172a}html[data-theme=dark] .skill-tree-summary-card__title,html[data-theme=dark] .skill-tree-summary-card__meta{color:#dce9fd}.skill-tree-summary-card__top-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.skill-tree-summary-card__actions{display:inline-flex;align-items:center;gap:10px}.skill-tree-edit-button{border:1px solid #2563eb;background:#2563eb;color:#fff;border-radius:10px;padding:7px 12px;font-size:.82rem;font-weight:700;cursor:pointer}.skill-tree-edit-button:hover{background:#1d4ed8;border-color:#1d4ed8}html[data-theme=dark] .skill-tree-edit-button{background:#2b6fd0;border-color:#4b8ef0}html[data-theme=dark] .skill-tree-edit-button:hover{background:#2059ad;border-color:#3977d2}.skill-tree-back-button{border:1px solid #93c5fd;background:#fff;color:#1e3a8a;border-radius:10px;padding:7px 12px;font-size:.82rem;font-weight:700;cursor:pointer}html[data-theme=dark] .skill-tree-back-button{border:1px solid rgba(90,146,218,.6);background:#1a3250d9;color:#d2e7ff}html[data-theme=dark] .skill-tree-back-button:hover{background:#32609673}.skill-tree-back-button:hover{background:#eff6ff}.skill-tree-summary-card__meta{margin:6px 0 0;font-size:.84rem;color:#334155}.skill-canvas{background-color:#f7f8fb;background-image:linear-gradient(to right,rgba(120,138,164,.14) 1px,transparent 1px),linear-gradient(to bottom,rgba(120,138,164,.14) 1px,transparent 1px),linear-gradient(to right,rgba(120,138,164,.2) 1px,transparent 1px),linear-gradient(to bottom,rgba(120,138,164,.2) 1px,transparent 1px);background-size:20px 20px,20px 20px,100px 100px,100px 100px}.skill-tree-canvas{min-height:100%;min-width:980px;padding:26px 24px 90px}.skill-tree-roadmap-v2{--st-row-connector-y: 41px;--st-row-connector-entry-offset-y: 12px;max-width:1180px;margin:0 auto;display:flex;flex-direction:column;align-items:center;gap:0}.skill-tree-roadmap-v2__row-block{width:100%;display:flex;flex-direction:column;align-items:center;gap:0;position:relative}.skill-tree-roadmap-v2__row-block--with-connector{padding-bottom:30px}.skill-tree-roadmap-v2__row{width:min(1180px,100%);display:flex;justify-content:center;align-items:flex-start;gap:10px;position:relative;z-index:2}.skill-tree-roadmap-v2__row-connector{--line-thickness: 3px;--outward: 34px;--join-overlap: 3px;--rail-offset: calc(max(var(--current-half), var(--next-half)) + var(--outward));width:min(1180px,100%);height:calc(var(--connector-drop) + var(--st-row-connector-entry-offset-y) + var(--join-overlap) + 12px);position:absolute;left:50%;top:var(--st-row-connector-y);transform:translate(-50%);pointer-events:none;z-index:1}.skill-tree-roadmap-v2__row-connector-out,.skill-tree-roadmap-v2__row-connector-down,.skill-tree-roadmap-v2__row-connector-in{position:absolute;background:var(--st-line)}.skill-tree-roadmap-v2__row-connector-out,.skill-tree-roadmap-v2__row-connector-in{height:var(--line-thickness)}.skill-tree-roadmap-v2__row-connector-down{top:0;width:var(--line-thickness);height:calc(var(--connector-drop) + var(--st-row-connector-entry-offset-y) + var(--join-overlap))}.skill-tree-roadmap-v2__row-connector--right .skill-tree-roadmap-v2__row-connector-out{top:0;left:calc(50% + var(--current-half));width:calc(var(--rail-offset) - var(--current-half))}.skill-tree-roadmap-v2__row-connector--right .skill-tree-roadmap-v2__row-connector-down{left:calc(50% + var(--rail-offset))}.skill-tree-roadmap-v2__row-connector--right .skill-tree-roadmap-v2__row-connector-in{top:calc(var(--connector-drop) + var(--st-row-connector-entry-offset-y));left:calc(50% + var(--next-half));width:calc(var(--rail-offset) - var(--next-half))}.skill-tree-roadmap-v2__row-connector--right .skill-tree-roadmap-v2__row-connector-arrow{position:absolute;top:calc(var(--connector-drop) + var(--st-row-connector-entry-offset-y) - 6px);left:calc(50% + var(--next-half) - 10px);width:0;height:0;border-top:7px solid transparent;border-bottom:7px solid transparent;border-right:12px solid var(--st-line)}.skill-tree-roadmap-v2__row-connector--left .skill-tree-roadmap-v2__row-connector-out{top:0;left:calc(50% - var(--rail-offset));width:calc(var(--rail-offset) - var(--current-half))}.skill-tree-roadmap-v2__row-connector--left .skill-tree-roadmap-v2__row-connector-down{left:calc(50% - var(--rail-offset))}.skill-tree-roadmap-v2__row-connector--left .skill-tree-roadmap-v2__row-connector-in{top:calc(var(--connector-drop) + var(--st-row-connector-entry-offset-y));left:calc(50% - var(--rail-offset));width:calc(var(--rail-offset) - var(--next-half))}.skill-tree-roadmap-v2__row-connector--left .skill-tree-roadmap-v2__row-connector-arrow{position:absolute;top:calc(var(--connector-drop) + var(--st-row-connector-entry-offset-y) - 6px);left:calc(50% - var(--next-half) - 2px);width:0;height:0;border-top:7px solid transparent;border-bottom:7px solid transparent;border-left:12px solid var(--st-line)}.skill-tree-roadmap-v2__cell{display:flex;flex-direction:column;align-items:center;gap:8px;position:relative;min-width:260px;z-index:3}.skill-tree-roadmap-v2__topic-link{width:104px;min-height:96px;position:relative}.skill-tree-roadmap-v2__topic-link-line{position:absolute;top:40px;height:3px;background:var(--st-line)}.skill-tree-roadmap-v2__topic-link-arrow{position:absolute;top:34px;width:0;height:0}.skill-tree-roadmap-v2__topic-link--right .skill-tree-roadmap-v2__topic-link-line{left:0;right:10px}.skill-tree-roadmap-v2__topic-link--right .skill-tree-roadmap-v2__topic-link-arrow{right:1px;border-top:7px solid transparent;border-bottom:7px solid transparent;border-left:12px solid var(--st-line)}.skill-tree-roadmap-v2__topic-link--left .skill-tree-roadmap-v2__topic-link-line{left:10px;right:0}.skill-tree-roadmap-v2__topic-link--left .skill-tree-roadmap-v2__topic-link-arrow{left:1px;border-top:7px solid transparent;border-bottom:7px solid transparent;border-right:12px solid var(--st-line)}.skill-tree-roadmap-v2__chips{width:100%;display:flex;flex-direction:column;align-items:center;gap:7px;margin-top:2px}.skill-tree-roadmap-v2__chip-wrap{width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px}.skill-tree-roadmap-v2__chip-line{width:2px;height:10px;border-left:2px dashed var(--st-line)}.roadmap-node{border-radius:8px;border:2px solid #cbd5e1;background:#fff;box-shadow:0 8px 18px #111c2a1f;text-align:left;cursor:pointer;transition:transform .16s ease,box-shadow .16s ease;font-family:Be Vietnam Pro,sans-serif}.roadmap-node:hover{transform:translateY(-2px);box-shadow:0 14px 26px #111c2a33}.roadmap-node-main{width:100%;max-width:260px;min-height:80px;padding:10px 12px;border-color:#22c55e;background:#ecfdf3}.roadmap-node-sub{width:100%;max-width:170px;border-width:1.5px;border-color:#f59e0b;border-style:dashed;background:#fffaf3;border-radius:6px;padding:7px 10px}.roadmap-node-main.node-color-neutral{border-color:#22c55e;background:#ecfdf3}.roadmap-node-main.node-color-progress{border-color:#eab308;background:#fef9c3}.roadmap-node-main.node-color-done{border-color:#2563eb;background:#dbeafe}.roadmap-node-main.node-color-skip{border-color:#64748b;background:#f1f5f9}.roadmap-node-sub.node-color-neutral{border-color:#f59e0b;background:#fffaf3}.roadmap-node-sub.node-color-progress{border-color:#eab308;background:#fef9c3}.roadmap-node-sub.node-color-done{border-color:#2563eb;background:#dbeafe}.roadmap-node-sub.node-color-skip{border-color:#94a3b8;background:#f8fafc}.course-node{width:100%}.course-node__main{display:flex;justify-content:center;gap:8px}.course-node__text{min-width:0;text-align:center}.course-node__code{margin:0;font-size:.92rem;font-weight:700;line-height:1.25}.course-node__name-en{margin:3px 0 0;color:var(--st-muted);font-size:.67rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.course-node__credits,.course-node__prerequisites{margin-top:4px;font-size:.66rem;color:#334155}.roadmap-node-main .course-node__credits{display:block;margin-top:8px;text-align:center;font-size:.82rem;font-weight:600}.skill-tree-panel{position:fixed;top:var(--st-panel-top);right:0;width:min(380px,92vw);height:calc(100vh - var(--st-panel-top));background:#f8f9ffd9;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-left:1px solid rgba(114,119,130,.24);box-shadow:var(--st-shadow);z-index:40;display:flex;flex-direction:column;animation:panelIn .22s ease}html[data-theme=dark] .skill-tree-panel{background:#0c1828e6;border-left:1px solid rgba(90,146,218,.4);box-shadow:0 20px 38px #0209148f}.public-roadmap-panel{position:fixed;top:var(--st-panel-top);right:0;width:min(380px,92vw);height:calc(100vh - var(--st-panel-top));z-index:45}@keyframes panelIn{0%{transform:translate(16px);opacity:0}to{transform:translate(0);opacity:1}}.skill-tree-panel__header{padding:16px;border-bottom:1px solid rgba(114,119,130,.16)}.skill-tree-panel__title-row{display:flex;justify-content:space-between;gap:10px}.skill-tree-panel__title{margin:0;font-family:Be Vietnam Pro,sans-serif;font-size:1.4rem}.skill-tree-panel__subtitle{margin:2px 0 0;font-size:.8rem;color:#0055a2}.skill-tree-panel__subtle{margin:2px 0 0;font-size:.72rem;color:#5d6470}.skill-tree-panel__status-row{margin-top:10px}.skill-tree-status-chip{display:inline-flex;border-radius:999px;padding:5px 11px;font-size:.74rem;font-weight:700;text-transform:uppercase;letter-spacing:.02em}.skill-tree-status-chip--pending{background:#64748b24;color:#475569}.skill-tree-status-chip--inProgress{background:#f9731624;color:#c2410c}.skill-tree-status-chip--completed{background:#22c55e24;color:#15803d}.skill-tree-status-chip--skip{background:#47556924;color:#334155}.skill-tree-panel__transition-block{margin-top:10px}.skill-tree-select-label{display:block;margin:0 0 6px;font-size:.76rem;font-weight:600;color:#334155}.skill-tree-status-select{width:100%;border:1px solid #c2c6d3;border-radius:10px;background:#fff;color:#111c2a;padding:9px 10px;font-size:.86rem}.skill-tree-status-select:focus-visible{outline:2px solid rgba(24,94,172,.3);border-color:#185eac}.skill-tree-status-select:disabled{opacity:.65;cursor:not-allowed}.skill-tree-icon-button{width:32px;height:32px;border:1px solid #c2c6d3;background:#fff;border-radius:999px;color:#111c2a;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.skill-tree-icon-button:hover{background:#f5f8ff}.skill-tree-panel__content{flex:1;overflow:auto;padding:16px;display:flex;flex-direction:column;gap:10px}.resources-tab__section{border:1px solid #d8e3f6;border-radius:12px;background:#fff;padding:12px}html[data-theme=dark] .resources-tab__section{border:1px solid rgba(90,146,218,.35);background:#14253e}.resources-tab__heading{margin:0 0 8px;font-size:.82rem;text-transform:uppercase;letter-spacing:.02em;color:#185eac}.resources-tab__list{margin:0;padding:0;list-style:none;display:grid;gap:8px}.resources-tab__item{font-size:.82rem}.resources-tab__title{font-weight:600}.resources-tab__description{margin:2px 0 0;color:#5d6470;font-size:.74rem}.sample-resource-list{margin:0;padding:0;list-style:none;display:grid;gap:10px}.sample-resource-list__item{border:1px solid #d8e3f6;border-radius:10px;padding:10px 12px;display:flex;align-items:flex-start;justify-content:space-between;gap:10px;background:#f8fbff}.sample-resource-list__title{margin:0;font-size:.84rem;font-weight:700;color:#0f172a}.sample-resource-list__link{display:inline-block;margin-top:4px;font-size:.76rem;color:#1d4ed8;text-decoration:none;word-break:break-all}.sample-resource-list__link:hover{text-decoration:underline}.sample-resource-list__open{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:8px;border:1px solid #bfdbfe;color:#1d4ed8;background:#fff;flex-shrink:0}.sample-resource-list__open:hover{background:#eff6ff}.why-tab__content{margin:0;color:#334155;font-size:.86rem;line-height:1.5}.skill-tree-muted-text{margin:0;color:#5d6470;font-size:.82rem}html[data-theme=dark] .skill-tree-muted-text,html[data-theme=dark] .why-tab__content,html[data-theme=dark] .resources-tab__heading,html[data-theme=dark] .sample-resource-list__title,html[data-theme=dark] .sample-resource-list__link{color:#cfe2ff}html[data-theme=dark] .skill-tree-canvas-controls__btn{border:1px solid rgba(95,146,214,.45);background:#14273ee6;color:#d5e7ff;box-shadow:0 8px 16px #0209146b}html[data-theme=dark] .skill-tree-canvas-controls__btn:hover:not(:disabled){background:#244166f2}html[data-theme=dark] .skill-tree-page__footer{border-top:1px solid rgba(95,146,214,.32);background:#102036;color:#9fb8d9}html[data-theme=dark] .skill-tree-empty-state,html[data-theme=dark] .skill-tree-loading-state,html[data-theme=dark] .skill-tree-loading-state__inner,html[data-theme=dark] .skill-tree-error-message{color:#b8cce8}html[data-theme=dark] .skill-tree-status-select,html[data-theme=dark] .skill-tree-icon-button,html[data-theme=dark] .sample-resource-list__item,html[data-theme=dark] .sample-resource-list__open{border-color:#5f92d661;background:#1a304d;color:#d8e8ff}.skill-tree-json-preview{margin:0;white-space:pre-wrap;word-break:break-word;font-size:.73rem;color:#1e293b}.skill-tree-canvas-controls{position:fixed;right:16px;bottom:78px;display:flex;flex-direction:column;gap:8px;z-index:30}.skill-tree-canvas-controls__btn{width:38px;height:38px;border:1px solid rgba(114,119,130,.24);border-radius:10px;background:#ffffffd1;color:#1f2937;box-shadow:0 8px 16px #111c2a24;font-size:1rem;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,background-color .12s ease}.skill-tree-canvas-controls__btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 12px 20px #111c2a2e;background:#fffffff5}.skill-tree-canvas-controls__btn:disabled{cursor:not-allowed;opacity:.45}.skill-tree-page__footer{height:38px;border-top:1px solid rgba(114,119,130,.18);background:#f8f9ff;color:#5d6470;font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;display:flex;align-items:center;justify-content:space-between;padding:0 16px}.skill-tree-loading-state{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--st-bg);font-family:Inter,sans-serif}.skill-tree-loading-state__inner{text-align:center;color:#334155}.skill-tree-spinner{width:44px;height:44px;margin:0 auto 10px;border-radius:999px;border:3px solid rgba(148,163,184,.5);border-top-color:#185eac;animation:spin .7s linear infinite}.skill-tree-error-title{margin:0 0 6px;color:#b91c1c;font-size:1rem;font-weight:700}.skill-tree-error-message{margin:0;color:#334155}.skill-tree-empty-state{min-height:420px;display:flex;align-items:center;justify-content:center;color:#5d6470}.skill-tree-layout__canvas::-webkit-scrollbar,.skill-tree-panel__content::-webkit-scrollbar{width:10px;height:10px}.skill-tree-layout__canvas::-webkit-scrollbar-thumb,.skill-tree-panel__content::-webkit-scrollbar-thumb{background:#b6c7e2;border-radius:999px}@media (max-width: 1024px){.skill-tree-page{min-height:calc(100vh - 64px)}.skill-tree-canvas{min-width:860px}.skill-tree-roadmap-v2__row{gap:8px}.roadmap-node-main{max-width:230px}.skill-tree-roadmap-v2__cell{min-width:230px}.skill-tree-roadmap-v2__topic-link{width:66px}.skill-tree-roadmap-v2__cell--left .skill-tree-roadmap-v2__chips{transform:translate(-52px)}.skill-tree-roadmap-v2__cell--right .skill-tree-roadmap-v2__chips{transform:translate(52px)}.skill-tree-panel{width:min(360px,96vw)}}@media (max-width: 768px){.skill-tree-page{min-height:calc(100vh - 60px)}.skill-tree-page__topbar{height:auto;min-height:56px;align-items:flex-start;padding:10px 14px}.skill-tree-page__topbar-meta{align-items:flex-start;gap:6px}.skill-tree-canvas{min-width:0;padding:16px 14px 80px}.skill-tree-roadmap-v2,.skill-tree-roadmap-v2__row-block,.skill-tree-roadmap-v2__row,.skill-tree-roadmap-v2__cell,.skill-tree-roadmap-v2__chips{width:100%}.skill-tree-roadmap-v2__row{flex-direction:column;gap:12px;align-items:center}.skill-tree-roadmap-v2__row-connector{display:none}.skill-tree-roadmap-v2__topic-link{width:2px;min-height:20px}.skill-tree-roadmap-v2__topic-link-line{left:0;right:0;top:0;width:2px;height:20px}.skill-tree-roadmap-v2__topic-link-arrow{display:none}.skill-tree-roadmap-v2__cell--left .skill-tree-roadmap-v2__chips,.skill-tree-roadmap-v2__cell--right .skill-tree-roadmap-v2__chips,.skill-tree-roadmap-v2__cell--down .skill-tree-roadmap-v2__chips{align-items:center;transform:none}.skill-tree-roadmap-v2__chip-wrap--left,.skill-tree-roadmap-v2__chip-wrap--right,.skill-tree-roadmap-v2__chip-wrap--down{flex-direction:column;justify-content:center}.skill-tree-roadmap-v2__chip-line--left,.skill-tree-roadmap-v2__chip-line--right,.skill-tree-roadmap-v2__chip-line--down{width:2px;height:10px;border-left:2px dashed var(--st-line);border-right:none;border-bottom:none;transform:none}.roadmap-node-main,.roadmap-node-sub{max-width:100%}.skill-tree-panel{top:auto;bottom:38px;width:100%;height:min(62vh,460px);border-left:none;border-top:1px solid rgba(114,119,130,.24)}.public-roadmap-panel{top:var(--st-panel-top);right:0;bottom:auto;width:min(360px,92vw);height:calc(100vh - var(--st-panel-top));border-left:1px solid rgba(114,119,130,.24);border-top:none}.skill-tree-canvas-controls{right:10px;bottom:52px}.skill-tree-page__footer{font-size:.58rem;letter-spacing:.05em;padding:0 10px}}.roadmap-graph-renderer{position:relative;width:100%;height:100%;min-height:420px;background:#f9fafb}.roadmap-graph-renderer__viewport{width:100%;height:100%;min-height:420px}.roadmap-graph-renderer__viewport .react-flow{width:100%;height:100%}.roadmap-graph-renderer__fallback{position:relative;width:100%;height:100%;min-height:420px;background:#f8fbff}.roadmap-graph-renderer__fallback-note{position:absolute;left:12px;top:12px;right:12px;z-index:2;border:1px solid #93c5fd;border-radius:8px;background:#e0f2fe;color:#075985;padding:8px 10px;font-size:12px}.roadmap-graph-renderer__controls{position:absolute;top:62px;right:12px;z-index:3;display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end;max-width:380px}.roadmap-graph-renderer__control-btn{border:1px solid #93c5fd;background:#fff;color:#0f172a;border-radius:8px;min-width:36px;height:32px;padding:0 10px;font-size:12px;font-weight:700;cursor:pointer}.roadmap-graph-renderer__control-btn:hover{background:#eff6ff}.roadmap-graph-renderer__control-btn.is-active{background:#dbeafe;border-color:#3b82f6;color:#1e3a8a}.roadmap-graph-renderer__fallback-canvas{position:relative;width:100%;height:100%;min-height:420px;padding-top:52px;overflow:hidden;background-image:linear-gradient(to right,rgba(148,163,184,.12) 1px,transparent 1px),linear-gradient(to bottom,rgba(148,163,184,.12) 1px,transparent 1px);background-size:24px 24px}.roadmap-graph-renderer__plane{position:absolute;top:0;right:0;bottom:0;left:0;transform-origin:0 0;transition:transform .14s ease}.roadmap-graph-renderer__plane:before{content:"";position:absolute;left:760px;top:0;bottom:0;width:2px;background:linear-gradient(to bottom,#2563eb38,#2563eb14);z-index:0}.roadmap-graph-renderer__cluster{position:absolute;border:1px dashed #93c5fd;border-radius:14px;background:#dbeafe33;z-index:0}.roadmap-graph-renderer__cluster-label{position:absolute;left:10px;top:-12px;background:#dbeafe;color:#1e3a8a;border:1px solid #93c5fd;border-radius:999px;font-size:10px;font-weight:700;padding:2px 8px}.roadmap-graph-renderer__edges{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;z-index:1}.roadmap-graph-renderer__edge{fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;opacity:.72}.roadmap-graph-renderer__edge--hierarchy{stroke:#2563eb}.roadmap-graph-renderer__edge--parent-chain{stroke:#1d4ed8;stroke-width:2.2;opacity:.9}.roadmap-graph-renderer__edge--parent-child{stroke:#2563eb;opacity:.74}.roadmap-graph-renderer__edge--manual{stroke:#0ea5e9;opacity:.56}.roadmap-graph-renderer__edge--prerequisite{stroke:#64748b;stroke-dasharray:6 4;opacity:.42}.roadmap-graph-renderer__fallback-node{position:absolute;border:1px solid #60a5fa;border-radius:12px;background:#fff;box-shadow:0 6px 14px #0f172a1f;color:#0f172a;padding:10px 12px;font-size:13px;font-weight:600;line-height:1.3;word-break:break-word;cursor:pointer;z-index:2;overflow:hidden;display:flex;align-items:center}.roadmap-graph-renderer__fallback-node--parent{border-width:2px}.roadmap-graph-renderer__fallback-node--child{border-width:1px}.roadmap-graph-renderer__fallback-node:hover{transform:translateY(-1px);box-shadow:0 10px 18px #0f172a2e}.roadmap-graph-renderer__fallback-node:focus-visible{outline:2px solid #2563eb;outline-offset:2px}.roadmap-graph-renderer__fallback-node--main_topic{border-color:#1e3a8a;background:linear-gradient(135deg,#dbeafe,#bfdbfe);box-shadow:0 12px 24px #1e3a8a42}.roadmap-graph-renderer__fallback-node--sub_topic{border-color:#0891b2;background:linear-gradient(135deg,#ecfeff,#cffafe);box-shadow:0 8px 16px #0891b22e}.roadmap-graph-renderer__fallback-node--group_container{border-style:dashed;border-color:#6d28d9;background:linear-gradient(135deg,#f5f3ff,#ede9fe);box-shadow:0 8px 16px #6d28d929}.roadmap-graph-renderer__fallback-node--choice_item{border-color:#d97706;background:linear-gradient(135deg,#fffbeb,#fef3c7);box-shadow:0 8px 16px #d9770629}.roadmap-graph-renderer__fallback-node--default{border-color:#94a3b8;background:#f8fafc;box-shadow:0 8px 16px #64748b1f}.roadmap-graph-renderer__fallback-node--state-pending{border-color:#94a3b8}.roadmap-graph-renderer__fallback-node--state-inProgress{border-color:#d97706;box-shadow:0 10px 18px #d977063d}.roadmap-graph-renderer__fallback-node--state-completed{border-color:#2563eb;box-shadow:0 10px 18px #2563eb3d}.roadmap-graph-renderer__fallback-node--state-skip{border-color:#475569;opacity:.9}.roadmap-graph-renderer__fallback-node--selected{outline:2px solid rgba(37,99,235,.6);outline-offset:2px}.roadmap-graph-renderer__fallback-node-title{font-size:14px;font-weight:700}.roadmap-graph-renderer__fallback-node--main_topic .roadmap-graph-renderer__fallback-node-title{font-size:18px;font-weight:800;color:#0b2a67}.roadmap-graph-renderer__fallback-node--sub_topic .roadmap-graph-renderer__fallback-node-title{font-size:14px;font-weight:700;color:#0f4b5c}.roadmap-graph-renderer__fallback-node--group_container .roadmap-graph-renderer__fallback-node-title{font-size:15px;font-weight:800;color:#4c1d95}.roadmap-graph-renderer__fallback-node--choice_item .roadmap-graph-renderer__fallback-node-title{font-size:13px;font-weight:700;color:#78350f}.roadmap-graph-renderer__empty{position:absolute;top:12px;right:12px;bottom:12px;left:12px;display:grid;place-items:center;border:1px dashed #93c5fd;border-radius:10px;background:#eff6ff;color:#1e3a8a;font-size:14px;text-align:center;padding:16px}.roadmap-graph-renderer__loading{position:absolute;top:20px;left:20px;background:#fff;padding:12px 20px;border-radius:6px;box-shadow:0 2px 8px #0000001a;z-index:100}.loading-spinner{display:flex;align-items:center;gap:8px;font-size:14px;color:#6b7280}.loading-spinner:before{content:"";display:inline-block;width:16px;height:16px;border:2px solid #e5e7eb;border-top-color:#3b82f6;border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.node{padding:12px;border:2px solid #3b82f6;border-radius:6px;background:#fff;box-shadow:0 1px 3px #0000001a;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;transition:all .2s ease}.node:hover{box-shadow:0 4px 12px #00000026}html[data-theme=dark] .roadmap-graph-renderer,html[data-theme=dark] .roadmap-graph-renderer__fallback{background:#112239}html[data-theme=dark] .roadmap-graph-renderer__fallback-canvas{background-image:linear-gradient(to right,rgba(120,156,205,.12) 1px,transparent 1px),linear-gradient(to bottom,rgba(120,156,205,.12) 1px,transparent 1px)}html[data-theme=dark] .roadmap-graph-renderer__control-btn{border:1px solid rgba(98,149,219,.45);background:#1a304d;color:#d5e7ff}html[data-theme=dark] .roadmap-graph-renderer__control-btn:hover{background:#243f63}html[data-theme=dark] .roadmap-graph-renderer__control-btn.is-active{background:#2a4e79;border-color:#68acff;color:#f1f7ff}html[data-theme=dark] .roadmap-graph-renderer__fallback-node{border:1px solid rgba(99,150,219,.55);background:#1c3250;color:#e4efff;box-shadow:0 10px 18px #0209146b}html[data-theme=dark] .roadmap-graph-renderer__fallback-node--main_topic,html[data-theme=dark] .roadmap-graph-renderer__fallback-node--sub_topic,html[data-theme=dark] .roadmap-graph-renderer__fallback-node--group_container,html[data-theme=dark] .roadmap-graph-renderer__fallback-node--choice_item,html[data-theme=dark] .roadmap-graph-renderer__fallback-node--default{background:#1c3250}html[data-theme=dark] .roadmap-graph-renderer__fallback-node--state-pending{background:linear-gradient(135deg,#213852,#1b2f45)}html[data-theme=dark] .roadmap-graph-renderer__fallback-node--state-inProgress{background:linear-gradient(135deg,#5d451a,#4a3614);border-color:#e9a43a}html[data-theme=dark] .roadmap-graph-renderer__fallback-node--state-completed{background:linear-gradient(135deg,#1f4a81,#193c68);border-color:#6db3ff}html[data-theme=dark] .roadmap-graph-renderer__fallback-node--state-skip{background:linear-gradient(135deg,#3b4657,#323c4b);border-color:#94a3b8}html[data-theme=dark] .roadmap-graph-renderer__fallback-node-title,html[data-theme=dark] .roadmap-graph-renderer__fallback-node--main_topic .roadmap-graph-renderer__fallback-node-title,html[data-theme=dark] .roadmap-graph-renderer__fallback-node--sub_topic .roadmap-graph-renderer__fallback-node-title,html[data-theme=dark] .roadmap-graph-renderer__fallback-node--group_container .roadmap-graph-renderer__fallback-node-title,html[data-theme=dark] .roadmap-graph-renderer__fallback-node--choice_item .roadmap-graph-renderer__fallback-node-title{color:#e8f2ff}html[data-theme=dark] .roadmap-graph-renderer__empty{border:1px dashed rgba(108,169,245,.5);background:#182d47;color:#cfe3ff}html[data-theme=dark] .roadmap-graph-renderer__loading{background:#1a304d;color:#d8e8ff}html[data-theme=dark] .loading-spinner{color:#d3e4ff}.node--selected{border-color:#1e40af;background:#eff6ff;box-shadow:0 0 0 3px #3b82f61a,0 4px 12px #00000026}.node--main-topic{border-color:#3b82f6;background:linear-gradient(135deg,#fff,#f0f9ff)}.node--main-topic .node__header{font-size:13px;font-weight:600;color:#1e40af;margin-bottom:6px}.node--main-topic .node__description{font-size:11px;color:#4b5563;line-height:1.4;margin-bottom:8px;max-height:50px;overflow:hidden;text-overflow:ellipsis}.node--main-topic .node__meta{font-size:10px;color:#9ca3af;display:flex;gap:8px}.node--sub-topic{border-color:#60a5fa;background:linear-gradient(135deg,#fff,#f3f4f6);padding:10px}.node--sub-topic .node__header{font-size:12px;font-weight:500;color:#1e40af}.node--sub-topic .node__description{display:none}.node--group{border:2px dashed #a78bfa;background:linear-gradient(135deg,#faf5ff,#f5f3ff);border-radius:8px}.node--group .node__header{font-size:13px;font-weight:600;color:#7c3aed}.node--group .node__description,.node--group .node__meta{display:none}.node__header{word-break:break-word;line-height:1.3}.node__description{opacity:.9;word-break:break-word}.node__meta{margin-top:6px;padding-top:6px;border-top:1px solid #e5e7eb}.node__meta span{background:#f3f4f6;padding:2px 6px;border-radius:3px;white-space:nowrap;font-weight:500}.xyflowinput.string,.xyflowinput.default{padding:4px 8px;font-size:12px}.react-flow__handle{width:8px;height:8px;background:#3b82f6;border:2px solid white;border-radius:50%}.react-flow__handle:hover{background:#1e40af}.react-flow__handle-bottom{bottom:-4px}.react-flow__handle-top{top:-4px}.react-flow__minimap{background-color:#fff;border:1px solid #e5e7eb;border-radius:4px}.react-flow__controls{background:#fff;border:1px solid #e5e7eb;border-radius:6px;box-shadow:0 1px 3px #0000001a}.react-flow__controls button{border-color:#e5e7eb;background:#fff;color:#6b7280;transition:all .2s ease}.react-flow__controls button:hover{background:#f3f4f6;color:#1f2937}.react-flow__controls button:active{background:#e5e7eb}@media (max-width: 768px){.node{padding:8px;font-size:11px}.node--main-topic .node__header{font-size:12px}.node--main-topic .node__description{font-size:10px}.roadmap-graph-renderer__loading{top:10px;left:10px;padding:8px 12px;font-size:12px}}.account-settings-page{width:100%;background:radial-gradient(circle at top right,#d9e7ff,#f5f8ff 35%,#f8f9ff);color:#111c2a}.account-settings-shell{min-height:calc(100vh - var(--navbar-height));padding-top:var(--navbar-height)}.account-settings-main{max-width:1160px;margin:0 auto;padding:1.25rem 1rem 3rem}.account-settings-header h1{margin:0;font-size:clamp(2rem,4vw,3rem);color:#003e79;line-height:1.1}.account-settings-header p{margin:.65rem 0 0;max-width:760px;color:#445065}.account-settings-effective-name{font-size:.95rem}.profile-grid{margin-top:2rem;display:grid;grid-template-columns:1fr;gap:1.2rem}.profile-avatar-card,.profile-form-card,.security-card,.privacy-card{border:1px solid #d9e3f3;background:#fff;border-radius:16px;box-shadow:0 10px 28px #122c4d0f}.profile-avatar-card{padding:1.5rem;display:flex;flex-direction:column;align-items:center;text-align:center}.avatar-wrap{position:relative;width:132px;height:132px;margin-bottom:1rem}.avatar-image,.avatar-fallback{width:100%;height:100%;border-radius:999px;border:4px solid #ebf2ff}.avatar-image{object-fit:cover}.avatar-fallback{display:grid;place-items:center;background:linear-gradient(135deg,#0055a2,#003e79);color:#fff;font-size:2rem;font-weight:700}.avatar-edit-btn{position:absolute;right:6px;bottom:6px;width:30px;height:30px;border-radius:999px;border:0;background:#0055a2;color:#fff;display:grid;place-items:center;cursor:pointer}.profile-avatar-card h3{margin:0}.profile-avatar-card p{margin:.35rem 0 1rem;color:#2b5f9e;font-size:.9rem}.avatar-actions{width:100%;display:grid;grid-template-columns:1fr;gap:.55rem}.profile-form-card,.security-card,.privacy-card{padding:1.5rem}.card-title-row{display:flex;align-items:center;gap:.55rem;color:#004e95;margin-bottom:1rem}.card-title-row h2{margin:0;color:#111c2a}.form-grid{display:grid;grid-template-columns:1fr;gap:.95rem}.field{display:flex;flex-direction:column;gap:.45rem}.field label{font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:#4f5a6e;font-weight:700}.field input,.field select{width:100%;box-sizing:border-box;border:1px solid #d3dfef;border-radius:10px;background:#f8fbff;padding:.72rem .85rem;outline:none;transition:border-color .2s,box-shadow .2s}.field input:focus,.field select:focus{border-color:#0055a2;box-shadow:0 0 0 3px #0055a21f}.field input:disabled{background:#ebf1f9;color:#5b6578}.card-actions{margin-top:1rem;display:flex;justify-content:flex-end}.secondary-grid{margin-top:1.2rem;display:grid;grid-template-columns:1fr;gap:1.2rem}.card-head-between{display:flex;justify-content:space-between;align-items:center;gap:.75rem}.security-chip{background:#d8f4df;color:#0b7a2a;border-radius:999px;padding:.26rem .62rem;font-size:.68rem;text-transform:uppercase;letter-spacing:.05em;font-weight:700}.password-wrap{position:relative}.password-wrap input{padding-right:2.6rem}.icon-btn{position:absolute;top:50%;right:.5rem;transform:translateY(-50%);border:0;width:28px;height:28px;border-radius:999px;background:transparent;display:grid;place-items:center;cursor:pointer;color:#54607a}.strength-wrap{margin-top:.75rem}.strength-bars{display:flex;gap:.3rem}.bar{height:6px;border-radius:999px;flex:1;background:#d0d9e7}.bar.weak{background:#cf4a4a}.bar.medium{background:#d08915}.bar.strong{background:#1d9248}.strength-meta{margin-top:.35rem;display:flex;justify-content:space-between;gap:.75rem;font-size:.74rem;color:#5a677d}.card-divider-top{border-top:1px solid #e0e6f2;margin-top:1.1rem;padding-top:1rem}.card-divider-top p{margin:0;font-size:.8rem;color:#5f6f84}.privacy-card>p{margin:0 0 1rem;color:#4f5a70}.privacy-options{display:grid;gap:.75rem}.privacy-option{border:2px solid #e2e9f3;border-radius:12px;padding:.9rem;display:flex;align-items:center;justify-content:space-between;gap:.6rem;cursor:pointer;transition:border-color .2s,box-shadow .2s}.privacy-option input{position:absolute;opacity:0;pointer-events:none}.privacy-option.selected{border-color:#0055a2;box-shadow:0 0 0 3px #0055a21f}.privacy-content{display:flex;align-items:center;gap:.7rem;color:#234c84}.privacy-content>div{display:flex;flex-direction:column;gap:.2rem}.privacy-content span{font-size:.72rem;color:#5d677e;text-transform:uppercase;letter-spacing:.02em}.btn{border:1px solid transparent;border-radius:10px;padding:.6rem .95rem;font-weight:600;cursor:pointer;font-size:.9rem;text-align:center}.btn:disabled{opacity:.6;cursor:not-allowed}.btn.primary{color:#fff;background:linear-gradient(135deg,#0055a2,#003e79)}.btn.ghost{border-color:#c7d4e8;background:#f6f9ff;color:#12457d}.btn.subtle{border-color:#c8d7eb;background:#ecf4ff;color:#14508f}.btn.danger{border-color:#f0c3c3;background:#fff5f5;color:#b03030}.btn.full{width:100%;margin-top:1.1rem}.message{margin:.8rem 0 0;font-size:.88rem}.message.error{color:#9f1e1e}.message.success{color:#146f3a}.account-footer{margin-top:2.5rem;background:linear-gradient(135deg,#0055a2,#003e79 40%,#ff8c00);color:#fff}.footer-inner{max-width:1160px;margin:0 auto;padding:2.4rem 1rem;display:grid;grid-template-columns:repeat(1,minmax(0,1fr));gap:1rem}.footer-inner h4,.footer-inner h5{margin:0}.footer-inner p{margin:.55rem 0 0;color:#ffffffbf}.footer-inner ul{list-style:none;margin:.5rem 0 0;padding:0;display:grid;gap:.35rem;color:#ffffffd9}@media (min-width: 768px){.account-settings-main{padding:2.25rem 1.5rem 3.25rem}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.field.field-wide{grid-column:span 2}.avatar-actions{grid-template-columns:1fr 1fr}.footer-inner{grid-template-columns:2fr 1fr 1fr;padding:2.8rem 1.5rem}}@media (min-width: 1024px){.profile-grid{grid-template-columns:1fr 2fr}.secondary-grid{grid-template-columns:7fr 5fr}}html[data-theme=dark] .account-settings-page{background:radial-gradient(circle at top right,#173356,#102237 40%,#0b1728);color:#dce9fc}html[data-theme=dark] .account-settings-header h1,html[data-theme=dark] .card-title-row h2,html[data-theme=dark] .profile-avatar-card h3{color:#dce9fc}html[data-theme=dark] .account-settings-header p,html[data-theme=dark] .profile-avatar-card p,html[data-theme=dark] .privacy-card>p,html[data-theme=dark] .card-divider-top p,html[data-theme=dark] .strength-meta,html[data-theme=dark] .privacy-content span{color:#a8bfde}html[data-theme=dark] .profile-avatar-card,html[data-theme=dark] .profile-form-card,html[data-theme=dark] .security-card,html[data-theme=dark] .privacy-card{border:1px solid rgba(94,145,214,.35);background:#142741;box-shadow:0 12px 24px #02091473}html[data-theme=dark] .avatar-image,html[data-theme=dark] .avatar-fallback{border:4px solid #1f3d63}html[data-theme=dark] .field label{color:#adc5e4}html[data-theme=dark] .field input,html[data-theme=dark] .field select{border:1px solid rgba(95,146,214,.4);background:#1a304d;color:#e6effd}html[data-theme=dark] .field input:focus,html[data-theme=dark] .field select:focus{border-color:#67abff;box-shadow:0 0 0 3px #4998f533}html[data-theme=dark] .field input:disabled{background:#243e61;color:#9ab4d6}html[data-theme=dark] .security-chip{background:#22c55e29;color:#76e3a2}html[data-theme=dark] .bar{background:#2d4467}html[data-theme=dark] .card-divider-top{border-top:1px solid rgba(95,146,214,.3)}html[data-theme=dark] .privacy-option{border:2px solid rgba(95,146,214,.28);background:#1a304d}html[data-theme=dark] .privacy-option.selected{border-color:#63aaff;box-shadow:0 0 0 3px #4998f533}html[data-theme=dark] .privacy-content{color:#cfe4ff}html[data-theme=dark] .btn.ghost,html[data-theme=dark] .btn.subtle{border-color:#5f92d673;background:#223b5d;color:#d2e6ff}html[data-theme=dark] .btn.danger{border-color:#f4727273;background:#7f1d1d33;color:#fecaca}.onboarding-panel-shell{border:1px solid rgba(194,198,211,.35);border-radius:16px;padding:0;margin-bottom:0;background:#fff;color:#111c2a;box-shadow:0 48px 80px -12px #003e7926;width:min(1120px,96vw);max-height:86vh;overflow-y:auto;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.onboarding-panel-shell--page{width:100%;max-width:none;min-height:calc(100vh - var(--navbar-height) - 20px);max-height:none}.onboarding-panel-layout{display:grid;grid-template-columns:1fr;min-height:620px}.onboarding-panel-aside{position:relative;background:#eff4ff;padding:1.7rem 1.25rem;border-right:1px solid rgba(194,198,211,.32)}.onboarding-panel-brand-row{display:inline-flex;align-items:center;gap:.5rem}.onboarding-panel-brand-icon{width:30px;height:30px;border-radius:8px;background:linear-gradient(135deg,#003e79,#0055a2);color:#fff;display:inline-flex;align-items:center;justify-content:center}.onboarding-panel-brand-name{font-family:Be Vietnam Pro,Inter,sans-serif;font-size:1.05rem;font-weight:800;color:#003e79}.onboarding-panel-aside-title{margin:1rem 0 0;font-family:Be Vietnam Pro,Inter,sans-serif;font-size:clamp(1.45rem,4vw,2rem);line-height:1.2;color:#003e79}.onboarding-panel-aside-description{margin:.9rem 0 0;color:#424751;line-height:1.6}.onboarding-panel-benefits{margin:1.15rem 0 0;padding:0;list-style:none;display:grid;gap:.8rem}.onboarding-panel-benefits li{display:flex;gap:.65rem;align-items:flex-start}.onboarding-panel-benefits li>span{width:32px;height:32px;border-radius:8px;background:#d8e3f6;color:#003e79;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto}.onboarding-panel-benefits strong{display:block;font-size:.9rem}.onboarding-panel-benefits p{margin:.12rem 0 0;color:#424751;font-size:.82rem}.onboarding-panel-form-wrap{padding:1.5rem 1.2rem;background:#fff}.onboarding-panel-form-head h3{margin:0;font-size:1.2rem;font-family:Be Vietnam Pro,Inter,sans-serif;color:#111c2a}.onboarding-panel-form-head p{margin:.35rem 0 0;color:#424751}.onboarding-modern-form-grid{margin-top:1rem;display:grid;gap:1rem}.onboarding-modern-field{display:grid;gap:.45rem}.onboarding-modern-field--full{width:100%}.onboarding-modern-field label{display:block;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:#727782;font-weight:700}.onboarding-modern-field select,.onboarding-modern-field input[type=month]{width:100%;min-height:48px;border:0;border-radius:12px;background:#eff4ff;color:#111c2a;padding:.75rem .95rem;box-sizing:border-box;font-size:.95rem;outline:none;font-family:inherit}.onboarding-modern-field select{appearance:none;-webkit-appearance:none;-moz-appearance:none;padding-right:2.2rem;background-image:linear-gradient(45deg,transparent 50%,#727782 50%),linear-gradient(135deg,#727782 50%,transparent 50%);background-position:calc(100% - 18px) calc(50% - 2px),calc(100% - 12px) calc(50% - 2px);background-size:6px 6px,6px 6px;background-repeat:no-repeat}.onboarding-modern-field select:focus,.onboarding-modern-field input[type=month]:focus,.onboarding-modern-course-search input:focus{box-shadow:0 0 0 2px #003e7938}.onboarding-modern-field-head{display:flex;justify-content:space-between;align-items:flex-end;gap:.6rem}.onboarding-modern-field-head button{border:0;background:transparent;color:#0055a2;font-size:.72rem;font-weight:700;text-decoration:underline;cursor:pointer}.onboarding-modern-course-box{border-radius:12px;background:#eff4ff;padding:.5rem}.onboarding-modern-course-search{display:flex;align-items:center;gap:.5rem;color:#727782;border-bottom:1px solid rgba(194,198,211,.45);padding:.45rem .4rem .5rem}.onboarding-modern-course-search input{flex:1;border:0;background:transparent;padding:.2rem 0;outline:none;font-size:.88rem;font-family:inherit}.onboarding-modern-course-list{margin-top:.45rem;max-height:180px;overflow-y:auto;display:grid;gap:.25rem;padding-right:.2rem}.onboarding-modern-course-item{display:flex;align-items:center;gap:.55rem;padding:.48rem .5rem;border-radius:8px;cursor:pointer}.onboarding-modern-course-item:hover{background:#dee9fc}.onboarding-modern-course-item input[type=checkbox]{width:15px;height:15px;accent-color:#003e79}.onboarding-modern-course-item span{font-size:.86rem}.onboarding-modern-link{display:inline-block;margin-top:.5rem;color:#0055a2;font-size:.76rem;font-weight:700;text-decoration:none}.learning-profile-page{width:100%;min-height:calc(100vh - 70px);box-sizing:border-box;padding:24px 12px;display:flex;justify-content:center;background-color:var(--bg-dark);background-image:linear-gradient(rgba(30,41,59,.5) 1px,transparent 1px),linear-gradient(90deg,rgba(30,41,59,.5) 1px,transparent 1px);background-size:40px 40px}.learning-profile-content{width:min(920px,100%);min-height:calc(100vh - 140px);padding:6px 2px;color:#f1f5f9}.learning-profile-actions{display:flex;gap:10px;margin-top:14px;margin-bottom:10px}.learning-profile-success{color:#7dd3fc;margin-top:6px}.onboarding-field{margin-bottom:14px}.onboarding-label{display:block;margin-bottom:8px;color:#e2e8f0;font-size:1.05rem;font-weight:700}.onboarding-label-required{color:#f43f5e}.onboarding-label-optional{color:#94a3b8;font-weight:500}.onboarding-input{width:100%;min-height:48px;padding:12px 14px;border-radius:10px;border:1px solid #334155;background:#1e293b;color:#f8fafc;box-sizing:border-box;font-size:1rem;transition:border-color .2s,box-shadow .2s}.onboarding-input::placeholder{color:#94a3b8}.onboarding-input:focus{outline:none;border-color:#38bdf8;box-shadow:0 0 0 3px #38bdf82e}.onboarding-select{appearance:none;-webkit-appearance:none;-moz-appearance:none;padding-right:42px;background-image:linear-gradient(45deg,transparent 50%,#38bdf8 50%),linear-gradient(135deg,#38bdf8 50%,transparent 50%);background-position:calc(100% - 20px) calc(50% - 3px),calc(100% - 14px) calc(50% - 3px);background-size:6px 6px,6px 6px;background-repeat:no-repeat}.onboarding-meta-row{display:flex;justify-content:space-between;gap:8px;margin-top:6px}.onboarding-error-text{color:#fca5a5}.onboarding-counter-text{color:#94a3b8}.onboarding-panel-title{margin-top:0;margin-bottom:8px;color:#38bdf8;font-size:1.4rem}.onboarding-panel-description{margin-top:0;margin-bottom:16px;color:#94a3b8}.onboarding-panel-note{color:#55627a;margin-bottom:8px;font-size:.86rem}.onboarding-panel-note--success{color:#0b7a2a}.onboarding-save-status{display:block;min-height:20px}.onboarding-panel-error{color:#ba1a1a;margin-bottom:8px}.onboarding-panel-warning{margin-bottom:10px;padding:10px;border:1px solid rgba(250,204,21,.45);border-radius:10px;background:#fff8db;color:#785a00}.onboarding-panel-warning a{margin-left:8px;color:#0055a2}.onboarding-panel-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.onboarding-panel-inline-btn{margin-left:8px;padding:8px 14px}@media (min-width: 900px){.onboarding-panel-layout{grid-template-columns:5fr 7fr}.onboarding-panel-aside{padding:2.1rem 2rem}.onboarding-panel-form-wrap{padding:2rem}}.course-select-container{margin-top:8px;padding:12px;background:#0f172a99;border:1px solid #334155;border-radius:10px}.course-options-scroll{max-height:220px;overflow-y:auto;overflow-x:hidden;display:flex;flex-direction:column;gap:8px;scrollbar-width:thin;scrollbar-color:rgba(56,189,248,.7) rgba(15,23,42,.7)}.course-checkbox-item{display:flex;align-items:flex-start;gap:10px;width:100%;line-height:1.35;cursor:pointer}.course-checkbox-item span{flex:1}.course-checkbox-input{margin-top:2px;flex:0 0 auto}.course-options-scroll::-webkit-scrollbar{width:10px}.course-options-scroll::-webkit-scrollbar-track{background:#0f172ab3;border-radius:999px}.course-options-scroll::-webkit-scrollbar-thumb{background:linear-gradient(180deg,#38bdf8,#2563eb);border-radius:999px;border:2px solid rgba(15,23,42,.8)}.onboarding-confirm-overlay{position:fixed;top:0;right:0;bottom:0;left:0;width:100vw;min-width:100vw;height:100vh;min-height:100dvh;margin:0;padding:0;box-sizing:border-box;background:#020617b8;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:grid;place-items:center;z-index:3400}.onboarding-confirm-popup{width:min(420px,calc(100vw - 32px));margin:0 16px;border:1px solid rgba(56,189,248,.35);border-radius:14px;background:linear-gradient(160deg,#0f172af5,#1e293beb);color:#f1f5f9;box-shadow:0 0 18px #38bdf833,0 14px 34px #02061799;padding:18px}.onboarding-confirm-popup__title{margin:0;font-size:1.02rem;color:#7dd3fc}.onboarding-confirm-popup__message{margin:10px 0 0;color:#e2e8f0;line-height:1.45}.onboarding-confirm-popup__actions{margin-top:16px;display:flex;justify-content:flex-end;gap:8px}.onboarding-datepicker-popper{z-index:3600}.onboarding-datepicker-calendar{background:#0f172a;border:1px solid #334155;border-radius:14px;color:#e2e8f0;box-shadow:0 14px 34px #0206178c;font-family:inherit}.onboarding-datepicker-calendar .react-datepicker__header{background:#1e293b;border-bottom:1px solid #334155;color:#f8fafc}.onboarding-datepicker-calendar .react-datepicker__current-month,.onboarding-datepicker-calendar .react-datepicker-time__header,.onboarding-datepicker-calendar .react-datepicker-year-header,.onboarding-datepicker-calendar .react-datepicker__day-name,.onboarding-datepicker-calendar .react-datepicker__day{color:#cbd5e1}.onboarding-datepicker-calendar .react-datepicker__day:hover{background:#38bdf82e;color:#f8fafc}.onboarding-datepicker-calendar .react-datepicker__day--selected,.onboarding-datepicker-calendar .react-datepicker__day--keyboard-selected{background:#38bdf8;color:#0f172a}.onboarding-datepicker-calendar .react-datepicker__navigation-icon:before{border-color:#7dd3fc}.onboarding-datepicker-calendar .react-datepicker__day--outside-month{color:#64748b}.onboarding-datepicker-calendar .react-datepicker__triangle{display:none}.primary-btn,.secondary-btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;border:0;border-radius:.75rem;font-weight:700;cursor:pointer;min-height:44px;padding:.7rem 1.1rem;transition:transform .15s,filter .2s,box-shadow .2s}.primary-btn{background:#0055a2;color:#fff;box-shadow:0 10px 18px #0055a238}.secondary-btn{background:#dee9fc;color:#004788}.primary-btn:hover,.secondary-btn:hover{transform:translateY(-1px);filter:brightness(1.02)}.primary-btn:disabled,.secondary-btn:disabled{opacity:.62;cursor:not-allowed;transform:none}.learning-profile-page--modern{width:100%;min-height:calc(100vh - var(--navbar-height));box-sizing:border-box;padding:calc(var(--navbar-height) + 22px) 24px 48px;display:flex;flex-direction:column;align-items:center;background:#f8f9ff}.learning-profile-content--modern{width:min(980px,100%);color:#111c2a}.learning-profile-page--modern>.homepage-footer{width:calc(100% + 48px);margin:2.2rem -24px 0;border-radius:0}.learning-profile-header{display:flex;flex-direction:column;align-items:center;text-align:center;margin-bottom:2.4rem}.learning-profile-badge{display:inline-flex;align-items:center;border-radius:999px;border:1px solid #cedcf3;color:#3f4f67;background:#eef4ff;padding:.3rem .72rem;font-size:.75rem;letter-spacing:.03em;font-weight:700;margin-bottom:.85rem}.learning-profile-avatar-wrap{margin-bottom:1rem}.learning-profile-avatar-ring{width:132px;height:132px;border-radius:999px;padding:5px;background:linear-gradient(135deg,#0055a2,#47a8ff 42%,#6ed6ff);box-shadow:0 14px 30px #0055a233}.learning-profile-avatar{width:100%;height:100%;border-radius:999px;border:4px solid #f8f9ff;object-fit:cover;display:block}.learning-profile-avatar--fallback{display:grid;place-items:center;background:#004788;color:#fff;font-weight:800;font-size:2rem}.learning-profile-header h1{margin:.15rem 0 0;font-family:Be Vietnam Pro,Inter,sans-serif;font-size:clamp(1.75rem,3vw,2rem);font-weight:800;letter-spacing:-.02em}.learning-profile-header p{margin:.35rem 0 0;color:#0055a2;font-weight:700}.learning-profile-sections{display:grid;gap:2rem}.learning-section{display:grid;gap:.9rem}.learning-section__head{display:inline-flex;align-items:center;gap:.45rem;color:#0055a2}.learning-section__head h2{margin:0;color:#111c2a;font-family:Be Vietnam Pro,Inter,sans-serif;font-size:1.3rem}.learning-section__card{background:#fff;border:1px solid #dbe4f4;border-radius:.9rem;padding:1.3rem;box-shadow:0 8px 20px #111c2a0f}.learning-grid-two{display:grid;gap:.9rem;grid-template-columns:1fr}.learning-profile-page--modern .onboarding-field{margin-bottom:0}.learning-profile-page--modern .onboarding-label{font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:#727782;margin-bottom:.42rem}.learning-profile-page--modern .onboarding-input{min-height:46px;padding:.72rem .82rem;border:1px solid #cfd9ec;border-radius:.65rem;background:#f8fbff;color:#111c2a;font-size:.95rem}.learning-profile-page--modern .onboarding-input::placeholder{color:#8b93a7}.learning-profile-page--modern .onboarding-input:focus{border-color:#0055a2;box-shadow:0 0 0 3px #0055a21f}.learning-profile-page--modern .onboarding-select{background-image:linear-gradient(45deg,transparent 50%,#0055a2 50%),linear-gradient(135deg,#0055a2 50%,transparent 50%)}.learning-field{display:grid;gap:.44rem}.learning-label{display:block;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:#727782;font-weight:700}.learning-input{width:100%;min-height:48px;border:1px solid #cfd9ec;border-radius:.72rem;background:#f8fbff;color:#111c2a;font-size:.98rem;font-weight:500;padding:.72rem .9rem;box-sizing:border-box;outline:none;transition:border-color .2s,box-shadow .2s}.learning-input:focus{border-color:#0055a2;box-shadow:0 0 0 3px #0055a21f}.learning-select{appearance:none;-webkit-appearance:none;-moz-appearance:none;padding-right:2.45rem;background-image:linear-gradient(45deg,transparent 50%,#4f6382 50%),linear-gradient(135deg,#4f6382 50%,transparent 50%);background-position:calc(100% - 18px) calc(50% - 2px),calc(100% - 12px) calc(50% - 2px);background-size:6px 6px,6px 6px;background-repeat:no-repeat}.learning-select:disabled{background-color:#eff4ff;color:#6b778d;cursor:not-allowed}.learning-section__empty{border:1px dashed #c5d3ea;border-radius:.8rem;padding:.9rem;color:#55627a;background:#f4f8ff;display:grid;gap:.35rem}.learning-section__empty a{color:#0055a2;font-weight:700;text-decoration:none}.learning-course-list{display:grid;gap:.72rem}.learning-course-item{background:#eff4ff;border:1px solid #d6e2f8;border-radius:.85rem;padding:.9rem;display:flex;justify-content:space-between;gap:.8rem;align-items:center;cursor:pointer;transition:border-color .2s,background .2s}.learning-course-item:hover{border-color:#b9cdef;background:#e7f0ff}.learning-course-item h3{margin:0;font-size:.96rem}.learning-course-item p{margin:.16rem 0 0;font-size:.78rem;color:#55627a}.learning-course-item input[type=checkbox]{width:1.2rem;height:1.2rem;accent-color:#0055a2;flex:0 0 auto}.learning-expand-btn{width:100%;border:0;border-radius:.65rem;padding:.72rem .9rem;background:#dee9fc;color:#0055a2;font-weight:700;cursor:pointer}.learning-grad-card{background:#0055a2;border-radius:.95rem;padding:1.2rem;color:#fff}.learning-grad-card .onboarding-label{color:#ffffffb8}.learning-grad-card .onboarding-input{background:#ffffff1f;border-color:#ffffff3d;color:#fff}.learning-grad-card__meta{margin:.2rem 0 0;color:#ffffffc7;font-size:.8rem}.learning-grad-card__date{margin:.15rem 0 0;font-size:clamp(1.6rem,4vw,2.1rem);line-height:1.05;font-family:Be Vietnam Pro,Inter,sans-serif;font-weight:800}.learning-progress-row{margin-top:1rem;display:flex;align-items:center;gap:.65rem}.learning-progress-row strong{font-size:.78rem}.learning-progress-bar{flex:1;height:8px;border-radius:999px;background:#ffffff3d;overflow:hidden}.learning-progress-bar span{display:block;height:100%;background:#fff;border-radius:999px}.learning-profile-actions{display:flex;flex-wrap:wrap;gap:.7rem;justify-content:center;margin-top:2.2rem;padding-top:1.3rem;border-top:1px solid #dbe4f4}.learning-profile-success{color:#0b7a2a;margin-top:.7rem;text-align:center}.learning-profile-page--modern .onboarding-panel-error{margin-top:.7rem;text-align:center;color:#ba1a1a}@media (min-width: 768px){.learning-grid-two{grid-template-columns:1fr 1fr}}@media (max-width: 640px){.learning-profile-page--modern{padding:calc(var(--navbar-height) + 16px) 12px 38px}.learning-profile-page--modern>.homepage-footer{width:calc(100% + 24px);margin:1.8rem -12px 0}.learning-profile-avatar-ring{width:112px;height:112px}.learning-input{min-height:44px}}html[data-theme=dark] .learning-profile-page--modern{background:radial-gradient(circle at 15% 8%,#173154,#0f2138 42%,#0a1628)}html[data-theme=dark] .learning-profile-content--modern,html[data-theme=dark] .learning-profile-header h1,html[data-theme=dark] .learning-section__head h2{color:#dceafd}html[data-theme=dark] .learning-profile-badge{border:1px solid rgba(101,152,220,.46);color:#b6d7ff;background:#1a314fd1}html[data-theme=dark] .learning-profile-header p,html[data-theme=dark] .learning-label,html[data-theme=dark] .learning-course-item p,html[data-theme=dark] .learning-section__empty,html[data-theme=dark] .learning-section__empty a,html[data-theme=dark] .learning-profile-success{color:#a9c0df}html[data-theme=dark] .learning-section__card{background:#142741;border:1px solid rgba(94,145,214,.35);box-shadow:0 10px 22px #0209146b}html[data-theme=dark] .learning-input,html[data-theme=dark] .learning-profile-page--modern .onboarding-input{border:1px solid rgba(93,143,210,.42);background:#1a304d;color:#e6effd}html[data-theme=dark] .learning-input::placeholder,html[data-theme=dark] .learning-profile-page--modern .onboarding-input::placeholder{color:#95aed0}html[data-theme=dark] .learning-input:focus,html[data-theme=dark] .learning-profile-page--modern .onboarding-input:focus{border-color:#66a8ff;box-shadow:0 0 0 3px #4a97f533}html[data-theme=dark] .learning-profile-page--modern .onboarding-label,html[data-theme=dark] .learning-label{color:#a9c0df}html[data-theme=dark] .learning-course-item{background:#1a304d;border:1px solid rgba(93,143,210,.35)}html[data-theme=dark] .learning-course-item:hover{background:#233c5f;border-color:#78aae885}html[data-theme=dark] .learning-expand-btn,html[data-theme=dark] .secondary-btn{background:#243e61;color:#cfe4ff}html[data-theme=dark] .learning-profile-actions{border-top:1px solid rgba(94,145,214,.3)}.yaml-guide-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px;animation:fadeIn .3s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.yaml-guide-modal{background-color:#fff;border-radius:8px;box-shadow:0 10px 40px #0000004d;display:flex;flex-direction:column;max-width:900px;width:100%;max-height:90vh;overflow:hidden;animation:slideUp .3s ease-out}@keyframes slideUp{0%{transform:translateY(30px);opacity:0}to{transform:translateY(0);opacity:1}}.yaml-guide-header{display:flex;justify-content:space-between;align-items:center;padding:24px;border-bottom:1px solid #e5e7eb;background-color:#f9fafb}.yaml-guide-title{margin:0;font-size:20px;font-weight:600;color:#1f2937}.yaml-guide-close{background:none;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#6b7280;padding:8px;border-radius:4px;transition:background-color .2s,color .2s}.yaml-guide-close:hover{background-color:#e5e7eb;color:#1f2937}.yaml-guide-close .material-symbols-outlined{font-size:24px}.yaml-guide-content{flex:1;overflow-y:auto;padding:24px;background-color:#fff}.yaml-guide-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;height:300px;color:#6b7280;gap:12px}.yaml-guide-loading .spinning{animation:spin 1s linear infinite;font-size:32px}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.yaml-guide-markdown{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;line-height:1.6;color:#1f2937}.yaml-guide-h1{margin:32px 0 16px;font-size:28px;font-weight:700;color:#111827;border-bottom:2px solid #dbeafe;padding-bottom:8px}.yaml-guide-h2{margin:24px 0 12px;font-size:22px;font-weight:600;color:#1f2937}.yaml-guide-h3{margin:16px 0 8px;font-size:18px;font-weight:600;color:#374151}.yaml-guide-p{margin:12px 0;color:#4b5563}.yaml-guide-list{list-style:disc;margin:12px 0;padding-left:24px}.yaml-guide-li{list-style:disc;margin-left:24px;margin-bottom:8px;color:#4b5563}.yaml-guide-inline-code{background-color:#f3f4f6;border:1px solid #e5e7eb;border-radius:4px;padding:2px 6px;font-family:Monaco,Courier New,monospace;font-size:13px;color:#dc2626;white-space:pre-wrap;word-break:break-word}.yaml-guide-code-block{background-color:#1f2937;color:#e5e7eb;padding:16px;border-radius:6px;overflow-x:auto;margin:16px 0;font-family:Monaco,Courier New,monospace;font-size:13px;line-height:1.5}.yaml-guide-code-block code{all:unset;display:block;color:#e5e7eb;font-family:Monaco,Courier New,monospace;white-space:pre;word-break:break-word}.yaml-guide-table-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));border:1px solid #e5e7eb;margin:12px 0;background-color:#f9fafb}.yaml-guide-table-cell{padding:12px;border-right:1px solid #e5e7eb;font-size:14px;color:#374151}.yaml-guide-table-cell:last-child{border-right:none}@media (max-width: 768px){.yaml-guide-overlay{padding:12px}.yaml-guide-modal{max-height:95vh}.yaml-guide-header{padding:16px}.yaml-guide-title{font-size:18px}.yaml-guide-content{padding:16px}.yaml-guide-h1{font-size:24px;margin:24px 0 12px}.yaml-guide-h2{font-size:18px}.yaml-guide-h3{font-size:16px}.yaml-guide-code-block{font-size:12px;padding:12px}.yaml-guide-table-row{grid-template-columns:1fr}.yaml-guide-table-cell{padding:8px;border-right:none;border-bottom:1px solid #e5e7eb}.yaml-guide-table-cell:last-child{border-bottom:none}}.manual-roadmap-page{min-height:calc(100vh - 70px);display:flex;flex-direction:column;background:#f3f5f9;color:#111c2a;font-family:Inter,sans-serif}.manual-roadmap-page__content{position:relative;flex:1;min-height:0;overflow:hidden;padding:18px 18px 0}.manual-roadmap-summary-card{width:min(1180px,calc(100% - 8px));margin:0 auto 14px;padding:14px 16px;border:1px solid #bfdbfe;border-left:5px solid #2563eb;border-radius:12px;background:linear-gradient(110deg,#eff6ff,#f8fbff);box-shadow:0 10px 22px #2563eb1f}.manual-roadmap-summary-card__title{margin:0;font-family:Be Vietnam Pro,sans-serif;font-size:1rem;font-weight:700;color:#0f172a}.manual-roadmap-summary-card__meta{margin:6px 0 0;font-size:.84rem;color:#334155}.manual-roadmap-summary-card__status{margin-top:10px;display:inline-flex;align-items:center;gap:8px;max-width:100%;border-radius:999px;padding:8px 12px;font-size:.8rem;font-weight:700;line-height:1.2}.manual-roadmap-summary-card__status:before{content:"";width:8px;height:8px;border-radius:999px;flex:0 0 auto}.manual-roadmap-summary-card__status--info{background:#e0f2fe;color:#075985}.manual-roadmap-summary-card__status--info:before{background:#0284c7}.manual-roadmap-summary-card__status--error{background:#fee2e2;color:#991b1b}.manual-roadmap-summary-card__status--error:before{background:#dc2626}.manual-roadmap-summary-card__stats{margin:8px 0 0;font-size:.8rem;color:#1d4ed8;font-weight:600}.manual-roadmap-layout{position:relative;flex:1;min-height:0;overflow:hidden;display:flex;flex-direction:row;align-items:stretch;gap:0}.manual-roadmap-layout>.skill-tree-layout__canvas,.manual-roadmap-layout>.manual-roadmap-panel,.manual-roadmap-layout>.manual-roadmap-layout__divider{min-width:0}.manual-roadmap-column{min-height:0;display:flex;flex-direction:column;gap:14px}.manual-roadmap-panel{display:flex;flex-direction:column;min-width:0;min-height:0;flex:0 0 28%;background:#fff;border-left:1px solid #dbeafe}.manual-roadmap-panel__actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-left:auto;justify-content:flex-end}.manual-roadmap-panel--split{flex:1 1 0;min-height:0;display:flex;flex-direction:column}.manual-roadmap-panel--scrollable{overflow:auto}.manual-roadmap-panel--preview{flex:1;min-height:0;display:flex;flex-direction:column}.manual-roadmap-panel__header{height:48px;background:#eff6ff;border-bottom:1px solid #dbeafe;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 16px}.manual-roadmap-panel__label{font-family:Be Vietnam Pro,sans-serif;font-size:.72rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:#334155}.manual-roadmap-panel__icon,.manual-roadmap-panel__meta{color:#64748b;font-size:.82rem}.manual-roadmap-layout__canvas{display:flex;flex-direction:column;gap:14px;min-width:0;flex:0 0 72%;padding:18px}.manual-roadmap-layout__canvas,.manual-roadmap-panel{width:100%}.manual-roadmap-layout__divider{position:relative;flex:0 0 14px;display:flex;align-items:stretch;justify-content:center;cursor:col-resize;-webkit-user-select:none;user-select:none;touch-action:none;background:linear-gradient(180deg,#94a3b824,#94a3b80a);border-left:1px solid #dbeafe;border-right:1px solid #dbeafe}.manual-roadmap-layout__divider:focus-visible{outline:none;background:linear-gradient(180deg,#2563eb24,#2563eb0f)}.manual-roadmap-layout__divider-handle{align-self:center;width:32px;height:72px;display:inline-flex;align-items:center;justify-content:space-between;gap:4px;padding:10px 2px;border-radius:999px;border:1px solid #cbd5e1;background:linear-gradient(180deg,#fff,#eff6ff);box-shadow:0 10px 18px #0f172a14;color:#0055a2;pointer-events:none}.manual-roadmap-layout__divider-arrow{font-size:1rem;line-height:1}.manual-roadmap-layout__divider-grip{width:2px;height:34px;border-radius:999px;background:#64748b73}.manual-roadmap-layout__divider:hover .manual-roadmap-layout__divider-handle,.manual-roadmap-layout__divider:focus-visible .manual-roadmap-layout__divider-handle{border-color:#0055a2;box-shadow:0 12px 22px #0055a229}.manual-roadmap-layout__divider:hover .manual-roadmap-layout__divider-arrow,.manual-roadmap-layout__divider:focus-visible .manual-roadmap-layout__divider-arrow{color:#003d73}.manual-roadmap-preview-stage{flex:1;min-height:0;height:clamp(420px,62vh,780px);border:1px solid #dbeafe;border-radius:12px;overflow:hidden;background:#f8fbff}.manual-roadmap-panel__content,.manual-roadmap-section{display:flex;flex-direction:column;gap:12px}.manual-roadmap-editor-shell{flex:1;min-height:320px}.manual-roadmap-editor-shell .monaco-editor,.manual-roadmap-editor-shell .overflow-guard{border-radius:12px}.manual-roadmap-alert{margin-top:10px;border-radius:10px;padding:10px 12px;font-size:.88rem}.manual-roadmap-alert--error{background:#fee2e2;color:#991b1b}.manual-roadmap-alert--info{background:#e0f2fe;color:#075985}.manual-roadmap-form{display:flex;flex-direction:column;gap:14px}.manual-roadmap-field{display:flex;flex-direction:column;gap:6px}.manual-roadmap-field__label{font-size:.78rem;font-weight:700;color:#475569}.manual-roadmap-form__grid{display:grid;gap:10px}.manual-roadmap-input{width:100%;border:1px solid #cbd5e1;border-radius:10px;background:#fff;padding:10px 12px;font-size:.92rem;color:#0f172a;outline:none;transition:border-color .16s ease,box-shadow .16s ease}.manual-roadmap-input:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1f}.manual-roadmap-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:10px 14px;border:0;border-radius:10px;font-weight:700;transition:transform .16s ease,opacity .16s ease,background-color .16s ease}.manual-roadmap-button:disabled{opacity:.55;cursor:not-allowed}.manual-roadmap-button:not(:disabled):hover{transform:translateY(-1px)}.manual-roadmap-button__icon{font-size:1rem}.manual-roadmap-button--primary{background:linear-gradient(135deg,#0055a2,#0f5bd7);color:#fff;box-shadow:0 10px 20px #0055a22e}.manual-roadmap-button--secondary{background:#fff;color:#0f172a;border:1px solid #cbd5e1;box-shadow:0 8px 18px #0f172a0f}.manual-roadmap-button--danger{background:#fee2e2;color:#b91c1c;border:1px solid #fecaca}.manual-roadmap-button--block{width:100%;justify-content:center}.manual-roadmap-resources{display:flex;flex-direction:column;gap:10px}.manual-roadmap-resources__title{margin:0;font-size:.92rem;font-weight:700;color:#0f172a}.manual-roadmap-resources__empty{margin:0;font-size:.82rem;color:#64748b}.manual-roadmap-preview__sample-note{margin:0;font-size:.8rem;color:#64748b;line-height:1.4}.manual-roadmap-resource-item{display:flex;justify-content:space-between;gap:12px;padding:12px;border:1px solid #dbeafe;border-radius:12px;background:linear-gradient(180deg,#f8fbff,#fff)}.manual-roadmap-resource-item__body{min-width:0}.manual-roadmap-resource-item__title{margin:0;font-size:.92rem;font-weight:700;color:#0f172a}.manual-roadmap-resource-item__url,.manual-roadmap-resource-item__meta{margin:4px 0 0;font-size:.8rem;color:#64748b;word-break:break-all}.manual-roadmap-preview-shell{flex:1;min-height:0;padding:14px}.manual-roadmap-preview{width:100%;height:100%;min-height:560px;overflow:visible}.manual-roadmap-preview__empty{margin:0;padding:20px;color:#64748b}.manual-roadmap-toast{position:fixed;right:18px;bottom:18px;z-index:40;max-width:min(440px,calc(100vw - 36px));border-radius:12px;padding:12px 14px;box-shadow:0 18px 36px #111c2a2e}.manual-roadmap-toast--error{background:#dc2626;color:#fff}.manual-roadmap-toast--success{background:#16a34a;color:#fff}@media (max-width: 1100px){.manual-roadmap-layout{flex-direction:column}.manual-roadmap-layout__divider{display:none}.manual-roadmap-layout__canvas{padding:14px}.manual-roadmap-layout__canvas,.manual-roadmap-panel{flex:1 1 auto;width:100%}.manual-roadmap-preview{min-height:520px}.manual-roadmap-panel{border-left:0;border-top:1px solid #dbeafe}.manual-roadmap-summary-card__status{width:100%;border-radius:14px;white-space:normal}}@media (max-width: 720px){.manual-roadmap-panel__actions{width:100%}.manual-roadmap-layout__canvas{padding:14px}.manual-roadmap-panel__actions .manual-roadmap-button{flex:1 1 100%;width:100%}.manual-roadmap-resource-item{flex-direction:column}}.manual-roadmap-hierarchy{max-width:1180px;margin:0 auto}.roadmap-node--parent{border:2px solid #0055a2!important}.roadmap-node--parent.node-color-done{border-color:#10b981!important;background:#d1fae5!important}.roadmap-node--parent.node-color-progress{border-color:#f59e0b!important;background:#fef3c7!important}.roadmap-node--parent.node-color-skip,.roadmap-node--parent.node-color-locked{border-color:#cbd5e1!important;background:#f3f4f6!important;opacity:.65}.roadmap-node--parent.node-color-neutral{border-color:#0055a2!important;background:#d1e7f7!important}.manual-roadmap-preview .skill-tree-roadmap-v2__row-connector{--outward: 0px;--join-overlap: 0px}.manual-roadmap-preview .skill-tree-roadmap-v2__row-connector-arrow{display:none!important}.manual-roadmap-preview .skill-tree-roadmap-v2__row-connector-down,.manual-roadmap-preview .skill-tree-roadmap-v2__row-connector-out,.manual-roadmap-preview .skill-tree-roadmap-v2__row-connector-in{background:#3b82f6!important}.roadmap-node--child{min-width:170px!important;width:100%;max-width:170px!important;padding:8px 10px!important;border:2px solid #cbd5e1!important;font-size:.84em!important;line-height:1.1}.roadmap-node--child .course-node__main{gap:4px}.roadmap-node--child .course-node__code{font-size:.84rem!important;line-height:1.1}.roadmap-node--child .course-node__name-en{font-size:.68rem!important}.roadmap-node--child .course-node__credits{font-size:.66rem!important}.roadmap-node--child.node-color-done{border-color:#10b981!important;background:#d1fae5!important}.roadmap-node--child.node-color-progress{border-color:#f59e0b!important;background:#fef3c7!important}.roadmap-node--child.node-color-skip,.roadmap-node--child.node-color-locked{border-color:#cbd5e1!important;background:#f3f4f6!important}.roadmap-node--child.node-color-neutral{border-color:#93c5fd!important;background:#eff6ff!important}.manual-roadmap-help-button{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:6px;background-color:#f0f9ff;color:#0284c7;cursor:pointer;transition:all .2s ease;font-size:0;margin-left:8px}.manual-roadmap-help-button:hover{background-color:#e0f2fe;color:#0369a1}.manual-roadmap-help-button:active{background-color:#bae6fd;transform:scale(.95)}.manual-roadmap-help-button .material-symbols-outlined{font-size:20px}.manual-roadmap-help-button:disabled{opacity:.5;cursor:not-allowed}
