@import"https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700;800;900&family=Fira+Code:wght@400;500&display=swap";.sp-root{min-height:100vh;background:var(--bg-deep, #05060f);font-family:Outfit,sans-serif;color:#e2e8f0}.sp-topbar{display:flex;align-items:center;justify-content:space-between;max-width:1100px;margin:0 auto;padding:clamp(12px,2.5vw,18px) clamp(16px,5vw,64px);position:sticky;top:0;z-index:60;background:var(--bg-deep, #05060f);border-bottom:1px solid rgba(255,255,255,.06)}.sp-topbar-left{display:flex;align-items:center;gap:16px;min-width:0}.sp-topbar-back-btn{display:flex;align-items:center;justify-content:center;flex-shrink:0;padding:.5em;color:#94a3b8;transition:color .2s ease,transform .2s ease}.sp-topbar-back-btn:hover{color:#818cf8;transform:translate(-2px)}.sp-topbar-text{display:flex;flex-direction:column;gap:2px;min-width:0}.sp-topbar-eyebrow{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:#818cf8}.sp-topbar-title{display:flex;align-items:center;gap:8px;font-size:1.1rem;font-weight:700;color:#f1f5f9;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sp-topbar-active-badge{display:inline-flex;align-items:center;padding:2px 9px;border-radius:99px;background:#10b9811f;border:1px solid rgba(16,185,129,.3);color:#6ee7b7;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;flex-shrink:0}@media(max-width:640px){.sp-topbar-eyebrow{display:none}.sp-topbar-title{font-size:.95rem}}.sp-hero{padding:clamp(40px,6vw,80px) clamp(16px,5vw,64px) 0;max-width:1100px;margin:0 auto}.sp-hero-eyebrow{font-size:11px;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:#818cf8;margin-bottom:12px}.sp-hero-title{font-size:clamp(2rem,5vw,3.5rem);font-weight:900;line-height:1.1;letter-spacing:-.03em;background:linear-gradient(135deg,#f1f5f9 30%,#818cf8);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin:0 0 16px}.sp-hero-subtitle{font-size:clamp(14px,2vw,16px);color:#64748b;max-width:620px;line-height:1.7;margin:0}.sp-hero-subtitle strong{color:#94a3b8}.sp-switcher-wrap{max-width:1100px;margin:40px auto 0;padding:0 clamp(16px,5vw,64px)}.sp-switcher{display:inline-flex;background:#ffffff08;border:1px solid rgba(255,255,255,.08);border-radius:16px;padding:5px;gap:4px}.sp-switcher-btn{position:relative;padding:10px 24px;border-radius:12px;border:none;background:transparent;color:#64748b;font-family:Outfit,sans-serif;font-size:14px;font-weight:700;cursor:pointer;transition:color .2s ease;display:flex;align-items:center;gap:8px;white-space:nowrap}.sp-switcher-btn:hover:not(.active){color:#cbd5e1}.sp-switcher-btn.active{color:#fff;background:#ffffff12;box-shadow:0 2px 12px #0000004d}.sp-btn-emoji{font-size:16px}.sp-plan-tagline{margin-top:14px;font-size:12px;color:#475569;display:flex;align-items:center;gap:10px}.sp-plan-tagline-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.sp-stats-bar{max-width:1100px;margin:28px auto 0;padding:0 clamp(16px,5vw,64px);display:flex;gap:24px;flex-wrap:wrap;align-items:flex-end}.sp-stat{display:flex;flex-direction:column;gap:2px}.sp-stat-value{font-size:22px;font-weight:900;color:#f1f5f9;font-variant-numeric:tabular-nums}.sp-stat-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:#475569}.sp-stat-divider{width:1px;background:#ffffff12;align-self:stretch;margin:0 4px}.sp-diff-bar-wrap{max-width:1100px;margin:24px auto 0;padding:0 clamp(16px,5vw,64px)}.sp-diff-pills{display:flex;gap:16px;margin:10px 0;flex-wrap:wrap}.sp-diff-pill{font-size:12px;font-weight:700}.sp-diff-pill.easy{color:#10b981}.sp-diff-pill.medium{color:#f59e0b}.sp-diff-pill.hard{color:#f43f5e}.sp-diff-track{display:flex;height:5px;border-radius:100px;overflow:hidden;background:#ffffff0a;gap:2px;max-width:320px}.sp-diff-seg{height:100%;border-radius:100px;transition:width .4s ease}.sp-diff-seg.easy{background:#10b981}.sp-diff-seg.medium{background:#f59e0b}.sp-diff-seg.hard{background:#f43f5e}.sp-legend{max-width:1100px;margin:20px auto 0;padding:0 clamp(16px,5vw,64px);display:flex;align-items:center;gap:20px;flex-wrap:wrap}.sp-legend-label{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.12em;color:#334155}.sp-legend-item{display:flex;align-items:center;gap:7px;font-size:12px;color:#64748b;font-weight:600}.sp-legend-dot{width:8px;height:8px;border-radius:2px;flex-shrink:0}.sp-timeline-body{max-width:1100px;margin:40px auto 80px;padding:0 clamp(16px,5vw,64px);display:flex;flex-direction:column;gap:56px}.sp-week{position:relative;scroll-margin-top:24px}.sp-week-header{display:flex;align-items:center;gap:14px;margin-bottom:24px}.sp-week-badge{display:inline-flex;align-items:center;padding:5px 14px;border-radius:100px;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.1em;border:1px solid rgba(255,255,255,.08);background:#ffffff08;color:#818cf8;flex-shrink:0}.sp-week-title{font-size:clamp(13px,1.8vw,16px);font-weight:700;color:#cbd5e1}.sp-days-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:14px}.sp-day-card{background:#0f172a99;border:1px solid rgba(255,255,255,.06);border-radius:14px;overflow:hidden;transition:border-color .2s ease,transform .2s ease,box-shadow .2s ease;position:relative}.sp-day-card:hover{border-color:#ffffff1f;transform:translateY(-2px);box-shadow:0 8px 32px #00000040}.sp-day-card.is-revision{background:#8b5cf60a;border-color:#8b5cf626}.sp-day-card.is-revision:hover{border-color:#8b5cf64d;box-shadow:0 8px 28px #8b5cf61a}.sp-day-strip{height:3px;width:100%;opacity:.7;transition:opacity .2s ease}.sp-day-card:hover .sp-day-strip{opacity:1}.sp-day-header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 16px 0}.sp-day-number{font-size:10px;font-weight:900;color:#334155;text-transform:uppercase;letter-spacing:.14em;font-family:Fira Code,monospace}.sp-day-focus-badge{display:inline-flex;align-items:center;gap:5px;padding:2px 9px;border-radius:100px;font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.1em;flex-shrink:0}.sp-day-title{font-size:12px;font-weight:700;color:#e2e8f0;line-height:1.45;margin:10px 16px 12px}.sp-day-card.is-revision .sp-day-title{color:#c4b5fd}.sp-items-list{display:flex;flex-direction:column;gap:4px;padding:0 10px 12px}.sp-item-link{display:flex;align-items:center;gap:8px;padding:7px 10px;border-radius:8px;border:1px solid rgba(255,255,255,.03);background:#ffffff05;text-decoration:none;transition:all .15s ease;cursor:pointer;min-height:32px}.sp-item-link:hover{background:#ffffff0d;border-color:#ffffff14;transform:translate(2px)}.sp-item-link.is-guide{background:#ffffff04;border-style:dashed;border-color:#ffffff12}.sp-item-link.is-guide:hover{background:#818cf80f;border-color:#818cf833}.sp-item-link.type-dsa:hover{border-color:#818cf840;background:#818cf80d}.sp-item-link.type-lld:hover{border-color:#10b98140;background:#10b9810d}.sp-item-link.type-hld:hover{border-color:#f59e0b40;background:#f59e0b0d}.sp-item-guide-icon{color:#475569;flex-shrink:0;margin-right:1px}.sp-item-type-badge{font-size:7.5px;font-weight:900;text-transform:uppercase;letter-spacing:.1em;padding:2px 6px;border-radius:4px;flex-shrink:0;font-family:Fira Code,monospace}.sp-item-type-badge.dsa{background:#818cf821;color:#818cf8;border:1px solid rgba(129,140,248,.18)}.sp-item-type-badge.lld{background:#10b98121;color:#10b981;border:1px solid rgba(16,185,129,.18)}.sp-item-type-badge.hld{background:#f59e0b21;color:#f59e0b;border:1px solid rgba(245,158,11,.18)}.sp-item-label{font-size:11.5px;font-weight:500;color:#94a3b8;line-height:1.4;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .15s ease}.sp-item-link:hover .sp-item-label{color:#e2e8f0}.sp-diff-badge{font-size:8px;font-weight:900;font-family:Fira Code,monospace;padding:2px 6px;border-radius:4px;flex-shrink:0;text-transform:uppercase;letter-spacing:.05em}.sp-item-arrow{color:#334155;flex-shrink:0;transition:transform .12s ease,color .12s ease}.sp-item-link:hover .sp-item-arrow{transform:translate(3px);color:#64748b}@media(max-width:640px){.sp-days-grid{grid-template-columns:1fr}.sp-switcher{width:100%;justify-content:center}.sp-stat-divider{display:none}.sp-stats-bar{gap:16px}}.sp-signin-nudge{max-width:1100px;margin:20px auto 0;padding:0 clamp(16px,5vw,64px)}.sp-signin-nudge-inner{display:flex;align-items:center;gap:14px;padding:12px 18px;border-radius:12px;background:#818cf80f;border:1px solid rgba(129,140,248,.18);font-size:13px;color:#94a3b8;animation:sp-nudge-in .4s ease}@keyframes sp-nudge-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.sp-signin-nudge-icon{font-size:16px;flex-shrink:0}.sp-signin-nudge-link{margin-left:auto;color:#818cf8;font-weight:700;font-size:12px;text-decoration:none;display:flex;align-items:center;gap:5px;white-space:nowrap;transition:opacity .15s ease}.sp-signin-nudge-link:hover{opacity:.75}.sp-enrollment-banner{max-width:1100px;margin:22px auto 0;padding:0 clamp(16px,5vw,64px)}.sp-enrollment-card{display:flex;align-items:center;gap:16px;padding:16px 20px;border-radius:16px;background:#0f172ab3;border:1px solid rgba(255,255,255,.07);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);animation:sp-banner-in .35s ease;flex-wrap:wrap}@keyframes sp-banner-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.sp-enrollment-card.sp-no-plan{border-color:#818cf826;background:#818cf80a}.sp-enrollment-card.sp-active-plan{border-color:#10b98126;background:#10b98108}.sp-enroll-left{display:flex;align-items:center;gap:14px;flex:1;min-width:0}.sp-enroll-text{min-width:0}.sp-enroll-title{font-size:13px;font-weight:700;color:#e2e8f0;margin:0 0 2px}.sp-enroll-sub{font-size:11px;color:#475569;margin:0}.sp-enroll-actions{display:flex;align-items:center;gap:10px;flex-shrink:0}.sp-btn-start{display:inline-flex;align-items:center;gap:7px;padding:9px 20px;border-radius:10px;border:none;background:#818cf8;color:#fff;font-family:Outfit,sans-serif;font-size:13px;font-weight:700;cursor:pointer;transition:background .2s ease,transform .15s ease,opacity .2s ease;white-space:nowrap}.sp-btn-start:hover:not(:disabled){background:#6366f1;transform:translateY(-1px)}.sp-btn-start:disabled{opacity:.5;cursor:not-allowed}.sp-btn-discard{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:10px;border:1px solid rgba(244,63,94,.25);background:#f43f5e12;color:#f43f5e;font-family:Outfit,sans-serif;font-size:12px;font-weight:700;cursor:pointer;transition:all .2s ease;white-space:nowrap}.sp-btn-discard:hover:not(:disabled){background:#f43f5e24;border-color:#f43f5e66}.sp-btn-discard:disabled{opacity:.45;cursor:not-allowed}.sp-discard-confirm{display:flex;align-items:center;gap:8px;padding:6px 12px;border-radius:10px;background:#f43f5e1a;border:1px solid rgba(244,63,94,.25);animation:sp-nudge-in .2s ease}.sp-discard-confirm-text{font-size:12px;color:#f43f5e;font-weight:600;white-space:nowrap}.sp-btn-confirm-yes{padding:4px 10px;border-radius:7px;border:none;background:#f43f5e;color:#fff;font-size:11px;font-weight:700;cursor:pointer;font-family:Outfit,sans-serif;transition:opacity .15s ease}.sp-btn-confirm-yes:hover{opacity:.85}.sp-btn-confirm-no{padding:4px 10px;border-radius:7px;border:1px solid rgba(255,255,255,.08);background:transparent;color:#64748b;font-size:11px;font-weight:700;cursor:pointer;font-family:Outfit,sans-serif;transition:color .15s ease}.sp-btn-confirm-no:hover{color:#94a3b8}.sp-progress-ring-wrap{position:relative;width:44px;height:44px;flex-shrink:0}.sp-progress-ring{transform:rotate(-90deg)}.sp-progress-ring-bg{fill:none;stroke:#ffffff0f;stroke-width:3}.sp-progress-ring-fill{fill:none;stroke:#10b981;stroke-width:3;stroke-linecap:round;transition:stroke-dashoffset .5s ease}.sp-progress-ring-text{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1}.sp-progress-ring-pct{font-size:11px;font-weight:900;color:#10b981;font-variant-numeric:tabular-nums}.sp-progress-ring-label{font-size:7px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#334155;margin-top:1px}.sp-progress-stat{display:flex;flex-direction:column;gap:6px}.sp-progress-bar-row{display:flex;align-items:center;gap:10px}.sp-progress-bar-track{height:5px;width:120px;border-radius:100px;background:#ffffff0d;overflow:hidden}.sp-progress-bar-fill{height:100%;border-radius:100px;background:linear-gradient(90deg,#10b981,#818cf8);transition:width .5s ease}.sp-progress-count{font-size:11px;font-weight:700;color:#475569;white-space:nowrap}.sp-day-status-chip{display:inline-flex;align-items:center;gap:5px;padding:3px 10px 3px 8px;border-radius:100px;font-size:9.5px;font-weight:800;font-family:Outfit,sans-serif;text-transform:uppercase;letter-spacing:.07em;cursor:pointer;border:1px solid transparent;transition:all .2s ease;-webkit-user-select:none;user-select:none;white-space:nowrap;flex-shrink:0}.sp-day-status-chip:hover{filter:brightness(1.15);transform:scale(1.04)}.sp-day-status-chip:active{transform:scale(.97)}.sp-day-status-chip.status-pending{background:#ffffff0a;border-color:#ffffff14;color:#475569}.sp-day-status-chip.status-pending:hover{background:#ffffff12;color:#64748b}.sp-day-status-chip.status-complete{background:#10b98121;border-color:#10b98147;color:#10b981}.sp-day-status-chip.status-skipped{background:#64748b1a;border-color:#64748b33;color:#64748b}.sp-day-card.is-complete{border-color:#10b98133;background:#10b98108}.sp-day-card.is-complete:hover{border-color:#10b98159;box-shadow:0 8px 32px #10b98114}.sp-day-card.is-skipped{opacity:.52}.sp-day-card.is-skipped:hover{opacity:.75}.sp-day-header-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 16px 0}.sp-other-plan-notice{display:flex;align-items:center;gap:10px;padding:10px 16px;border-radius:12px;background:#f59e0b0f;border:1px solid rgba(245,158,11,.15);font-size:12px;color:#94a3b8}.sp-other-plan-switch{margin-left:auto;color:#f59e0b;font-weight:700;font-size:11px;cursor:pointer;background:none;border:none;font-family:Outfit,sans-serif;transition:opacity .15s ease;white-space:nowrap;flex-shrink:0}.sp-other-plan-switch:hover{opacity:.75}@media(max-width:640px){.sp-enrollment-card{gap:12px}.sp-enroll-actions{width:100%}.sp-btn-start{flex:1;justify-content:center}.sp-progress-bar-track{width:80px}}
