.navbar{position:sticky;top:0;z-index:40;display:flex;align-items:center;justify-content:space-between;gap:1rem;height:64px;padding:0 1.25rem;background:var(--surface);border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.navbar__left{display:flex;align-items:center;gap:.75rem;min-width:0}.navbar__menu-btn{display:none;flex-direction:column;justify-content:center;gap:4px;width:34px;height:34px;border-radius:8px;border:1px solid var(--border);background:transparent;cursor:pointer}.navbar__menu-btn span{display:block;width:18px;height:2px;margin:0 auto;background:var(--text);border-radius:2px}.navbar__brand{display:flex;align-items:center;gap:.5rem;text-decoration:none;color:var(--text);font-weight:700;white-space:nowrap}.navbar__logo{font-size:1.5rem}.navbar__title em{font-style:normal;color:var(--accent)}.navbar__links{display:flex;align-items:center;gap:1.5rem}.navbar__links a{color:var(--text-muted);text-decoration:none;font-weight:600;font-size:.92rem;padding:.4rem 0;border-bottom:2px solid transparent;transition:color .15s ease,border-color .15s ease}.navbar__links a:hover{color:var(--text)}.navbar__links a.active{color:var(--accent);border-bottom-color:var(--accent)}.navbar__right{display:flex;align-items:center;gap:1rem}.navbar__progress{display:none;align-items:center;gap:.5rem;font-size:.8rem;color:var(--text-muted)}.navbar__progress-track{width:90px;height:6px;border-radius:999px;background:var(--border);overflow:hidden}.navbar__progress-fill{height:100%;background:linear-gradient(90deg,var(--python-blue),var(--python-yellow));transition:width .3s ease}.navbar__auth{display:flex;gap:.5rem}.navbar__user{display:flex;align-items:center;gap:.5rem}.navbar__avatar{width:28px;height:28px;border-radius:50%;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:700}.navbar__username{font-size:.85rem;font-weight:600;max-width:110px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (min-width: 900px){.navbar__progress{display:flex}}@media (max-width: 900px){.navbar__menu-btn{display:flex}.navbar__links{display:none}}.sidebar{width:280px;flex-shrink:0;border-right:1px solid var(--border);background:var(--surface);height:calc(100vh - 64px);position:sticky;top:64px;overflow-y:auto;padding-bottom:2rem}.sidebar__summary{padding:1rem 1.1rem;border-bottom:1px solid var(--border)}.sidebar__summary-text{font-size:.85rem;color:var(--text-muted);margin-bottom:.5rem}.sidebar__summary-text strong{color:var(--text)}.sidebar__summary-track{height:6px;border-radius:999px;background:var(--border);overflow:hidden}.sidebar__summary-fill{height:100%;background:linear-gradient(90deg,var(--python-blue),var(--python-yellow))}.sidebar__group-title{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-faint);padding:1rem 1.1rem .4rem;font-weight:700}.sidebar__item{display:flex;align-items:center;gap:.65rem;padding:.5rem 1.1rem;text-decoration:none;color:var(--text-muted);font-size:.88rem;border-left:3px solid transparent;transition:background .12s ease,color .12s ease}.sidebar__item:hover{background:var(--surface-hover);color:var(--text)}.sidebar__item--active{color:var(--accent);border-left-color:var(--accent);background:var(--surface-hover);font-weight:600}.sidebar__item-check{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:var(--border);font-size:.7rem;flex-shrink:0;color:var(--text-muted)}.sidebar__item--active .sidebar__item-check{background:var(--accent);color:#fff}.sidebar__item-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width: 900px){.sidebar{position:fixed;left:-300px;top:64px;z-index:39;width:280px;background:var(--surface);transition:left .2s ease;box-shadow:4px 0 16px #00000026}.sidebar--open{left:0}}.footer{margin-top:auto;border-top:1px solid var(--border);padding:1.5rem;text-align:center;color:var(--text-faint);font-size:.8rem}.footer__inner{max-width:760px;margin:0 auto;display:flex;flex-direction:column;gap:.35rem}.footer__meta{color:var(--text-faint)}.layout{min-height:100vh;display:flex;flex-direction:column}.layout__body{display:flex;flex:1}.layout__content{flex:1;min-width:0;display:flex;flex-direction:column}.layout__overlay{position:fixed;top:64px;right:0;bottom:0;left:0;background:#0006;z-index:38}@media (min-width: 901px){.layout__overlay{display:none}}.home{padding:0}.hero{padding:4rem 1.5rem 3rem;max-width:860px;margin:0 auto;text-align:center}.hero__badges{display:flex;justify-content:center;gap:.5rem;flex-wrap:wrap;margin-bottom:1.25rem}.hero h1{font-size:clamp(2.2rem,5vw,3.2rem);margin:0 0 1rem}.hero__accent{background:linear-gradient(135deg,var(--python-blue),var(--python-yellow));-webkit-background-clip:text;background-clip:text;color:transparent}.hero__lead{color:var(--text-muted);font-size:1.1rem;max-width:640px;margin:0 auto 1.75rem}.hero__actions{display:flex;justify-content:center;gap:1rem;margin-bottom:1.25rem;flex-wrap:wrap}.hero__note{color:var(--text-faint);font-size:.85rem;max-width:520px;margin:0 auto}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;max-width:1080px;margin:0 auto 3rem;padding:0 1.5rem}.stats__card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem 1rem;text-align:center}.stats__value{display:block;font-size:1.8rem;font-weight:800;color:var(--accent-strong)}.stats__label{font-size:.78rem;color:var(--text-muted)}.curriculum-preview{max-width:1080px;margin:0 auto;padding:0 1.5rem 3rem}.curriculum-preview__head{text-align:center;margin-bottom:2rem}.curriculum-preview__head p{color:var(--text-muted)}.curriculum-topic{margin-bottom:2rem}.curriculum-topic h3{font-size:.95rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-faint);margin-bottom:.9rem}.curriculum-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.9rem}.day-card{display:block;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem;text-decoration:none;color:var(--text);transition:border-color .15s ease,transform .15s ease}.day-card:hover{border-color:var(--accent);transform:translateY(-2px)}.day-card__top{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.day-card__number{font-size:.72rem;font-weight:700;color:var(--text-faint);letter-spacing:.04em}.day-card__done{font-size:.68rem;font-weight:700;color:var(--success);background:#4caf7d1f;padding:.1rem .5rem;border-radius:999px}.day-card__title{font-weight:600;font-size:.95rem}@media (max-width: 700px){.stats{grid-template-columns:repeat(2,1fr)}}.day-page{max-width:860px;margin:0 auto;padding:1.75rem 1.5rem 3rem;width:100%}.day-page__topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.25rem;font-size:.85rem;color:var(--text-faint)}.day-page__crumbs{display:flex;gap:.4rem}.day-page__crumbs a{color:var(--text-muted);text-decoration:none}.day-page__crumbs a:hover{color:var(--accent)}.day-page__lesson{padding:2rem;margin-bottom:1.5rem}.day-page__lesson h1{margin-top:0;font-size:1.8rem}.day-page__lesson h2{font-size:1.3rem;margin-top:2rem;border-bottom:1px solid var(--border);padding-bottom:.4rem}.day-page__lesson h3{font-size:1.05rem;margin-top:1.5rem}.day-page__lesson table{width:100%;border-collapse:collapse;margin:1rem 0;font-size:.9rem}.day-page__lesson th,.day-page__lesson td{border:1px solid var(--border);padding:.5rem .75rem;text-align:left}.day-page__lesson th{background:var(--surface-hover)}.day-page__lesson hr{border:none;border-top:1px solid var(--border);margin:1.75rem 0}.day-page__lesson blockquote{border-left:3px solid var(--accent);margin:1rem 0;padding:.4rem 1rem;color:var(--text-muted);background:var(--surface-hover);border-radius:0 8px 8px 0}.day-page__lesson .inline-code{background:var(--surface-hover);border:1px solid var(--border);border-radius:5px;padding:.1rem .35rem;font-size:.85em}.day-page__lesson ul,.day-page__lesson ol{padding-left:1.4rem}.day-page__lesson li{margin-bottom:.3rem}.day-page__solution{padding:1.5rem 1.5rem .5rem;margin-bottom:1.5rem}.day-page__solution-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.day-page__solution-head h2{margin:0;font-size:1.1rem}.day-page__complete{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.25rem 1.5rem;margin-bottom:2rem}.day-page__complete p{margin:.25rem 0 0;color:var(--text-faint);font-size:.82rem;max-width:480px}.day-page__pagination{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.day-page__nav-btn{display:flex;flex-direction:column;gap:.3rem;padding:1rem 1.25rem;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);text-decoration:none;color:var(--text);transition:border-color .15s ease}.day-page__nav-btn:hover{border-color:var(--accent)}.day-page__nav-btn--next{text-align:right;align-items:flex-end}.day-page__nav-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-faint)}.day-page__nav-title{font-weight:600;font-size:.92rem}@media (max-width: 600px){.day-page__pagination{grid-template-columns:1fr}.day-page__complete{flex-direction:column;align-items:flex-start}}.auth{display:flex;justify-content:center;padding:3rem 1.5rem;flex:1}.auth__card{width:100%;max-width:420px;padding:2rem}.auth__notice{background:#4b8bbe1f;border:1px solid rgba(75,139,190,.35);color:var(--text-muted);font-size:.78rem;padding:.6rem .8rem;border-radius:8px;margin-bottom:1.25rem}.auth__card h1{margin:0 0 .4rem;font-size:1.5rem}.auth__sub{color:var(--text-muted);font-size:.88rem;margin-bottom:1.5rem}.auth__form{display:flex;flex-direction:column;gap:1rem}.auth__form label{display:flex;flex-direction:column;gap:.4rem;font-size:.85rem;font-weight:600;color:var(--text-muted)}.auth__form input{background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:.6rem .75rem;color:var(--text);font-size:.9rem}.auth__form input:focus{outline:none;border-color:var(--accent)}.auth__error{background:#dc50501f;border:1px solid rgba(220,80,80,.4);color:#ff8a8a;padding:.5rem .75rem;border-radius:8px;font-size:.82rem}.auth__switch{margin-top:1rem;font-size:.85rem;color:var(--text-muted);text-align:center}.auth__switch a{color:var(--accent);font-weight:600;text-decoration:none}.certificate-page{max-width:1080px;margin:0 auto;padding:2rem 1.5rem 3rem;width:100%}.certificate-page__intro{max-width:680px;margin:0 auto 2rem;text-align:center}.certificate-page__intro p{color:var(--text-muted)}.certificate-page__progress{color:var(--text-faint)!important;font-size:.85rem}.certificate-page__grid{display:grid;grid-template-columns:300px 1fr;gap:1.5rem;align-items:start}.certificate-page__form{padding:1.5rem;display:flex;flex-direction:column;gap:1rem;position:sticky;top:84px}.certificate-page__form label{display:flex;flex-direction:column;gap:.4rem;font-size:.85rem;font-weight:600;color:var(--text-muted)}.certificate-page__form input{background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:.6rem .75rem;color:var(--text);font-size:.9rem}.certificate-page__form input:focus{outline:none;border-color:var(--accent)}.certificate-page__hint{font-size:.78rem;color:var(--text-faint);margin:0}.certificate-page__preview{padding:1rem}@media (max-width: 800px){.certificate-page__grid{grid-template-columns:1fr}.certificate-page__form{position:static}}:root{--python-blue: #4b8bbe;--python-yellow: #ffd43b;--bg: #0f1115;--surface: #161923;--surface-hover: #1e2230;--border: #262c3b;--text: #eef1f6;--text-muted: #a7adbb;--text-faint: #6b7280;--accent: #4b8bbe;--accent-strong: #ffd43b;--success: #4caf7d;--radius: 12px;--shadow: 0 8px 24px rgba(0, 0, 0, .25);color-scheme:dark}*{box-sizing:border-box}html,body{padding:0;margin:0}body{background:var(--bg);color:var(--text);font-family:Inter,Segoe UI,system-ui,-apple-system,sans-serif;line-height:1.6;-webkit-font-smoothing:antialiased}a{color:inherit}h1,h2,h3,h4{line-height:1.25;font-weight:700}code,pre{font-family:JetBrains Mono,Fira Code,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}button{font-family:inherit}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;border-radius:8px;border:1px solid transparent;padding:.6rem 1.1rem;font-weight:600;font-size:.9rem;cursor:pointer;text-decoration:none;transition:transform .1s ease,opacity .15s ease,background .15s ease}.btn:active{transform:translateY(1px)}.btn--primary{background:var(--accent);color:#0b0d12;background:linear-gradient(135deg,var(--python-yellow),#ffb703);color:#1b1400}.btn--primary:hover{opacity:.92}.btn--secondary{background:var(--python-blue);color:#fff}.btn--secondary:hover{opacity:.9}.btn--ghost{background:transparent;border-color:var(--border);color:var(--text)}.btn--ghost:hover{background:var(--surface-hover)}.btn--sm{padding:.4rem .8rem;font-size:.8rem}.btn--block{width:100%}.btn:disabled{opacity:.5;cursor:not-allowed}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.container{max-width:1080px;margin:0 auto;padding:2rem 1.5rem;width:100%}.badge{display:inline-flex;align-items:center;gap:.3rem;padding:.2rem .6rem;border-radius:999px;background:var(--surface-hover);border:1px solid var(--border);font-size:.72rem;font-weight:600;color:var(--text-muted)}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:999px}
