:root{--grey:#eef1f4;--grey2:#d9e0e7;--blue:#1e90ff;--blue2:#0d6fca;--yellow:#fff3a6;--yellow2:#ffd84d;--ink:#172033;--muted:#566577;--surface:rgba(255,255,255,.95);--line:#cbd7e4;--scale:1}*{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{margin:0;min-height:100vh;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;line-height:1.68;color:var(--ink);background:radial-gradient(circle at 8% 8%,rgba(30,144,255,.14),transparent 28rem),radial-gradient(circle at 90% 18%,rgba(255,216,77,.18),transparent 28rem),linear-gradient(135deg,#f4f6f8 0%,#eaf3fb 48%,#fff8cf 100%);background-attachment:fixed}body,button,input,select{font:inherit}a{color:inherit}button,a,select{-webkit-tap-highlight-color:transparent}.skip-link{position:absolute;left:-9999px;top:8px;z-index:99999;background:#fff;padding:10px 14px;border-radius:9px}.skip-link:focus{left:8px}.progress{position:fixed;top:0;left:0;height:4px;width:0;background:linear-gradient(90deg,#6b7280,var(--blue),var(--yellow2));z-index:10000}.wrap{width:min(1480px,96%);margin:auto;padding:12px 0 42px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 14px;border:1px solid var(--line);border-radius:14px;background:linear-gradient(110deg,#eceff3,#dff0ff,#fff3a6);box-shadow:0 9px 26px rgba(49,67,90,.08)}.topbar strong{font-weight:900}.topbar p{margin:0;color:#33465d}.header{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 4px}.brand-link{text-decoration:none;font-weight:900;font-size:1.12rem}.topnav{display:flex;flex-wrap:wrap;gap:7px}.topnav a{padding:7px 9px;border-radius:9px;text-decoration:none}.topnav a:hover,.topnav a:focus-visible{background:linear-gradient(100deg,#e3e7eb,#cce8ff,#fff0a0)}.lay{display:grid;grid-template-columns:minmax(245px,315px) minmax(0,1fr);gap:18px;align-items:start}.card{background:var(--surface);border:1px solid var(--line);border-radius:17px;box-shadow:0 13px 34px rgba(46,63,88,.08);overflow:hidden;backdrop-filter:blur(8px)}.side{position:sticky;top:10px;max-height:calc(100vh - 20px);overflow:auto;scrollbar-gutter:stable}.side .hd{padding:12px 14px;background:linear-gradient(105deg,#dfe4ea,#cae6ff,#fff2a4);border-bottom:1px solid var(--line)}.side .bd{padding:11px}.sidebar-tools{display:grid;grid-template-columns:1fr auto;gap:6px;margin-bottom:10px}.sidebar-tools label{grid-column:1/-1;font-weight:800;font-size:.82rem}.sidebar-tools input{min-width:0;width:100%;padding:9px 10px;border:1px solid #bac8d6;border-radius:9px;background:#fff;color:#172033}.sidebar-tools button{border:1px solid #b8c7d8;border-radius:9px;background:linear-gradient(135deg,#eef1f4,#d9edff,#fff3a6);cursor:pointer;padding:8px 10px}.course-list{list-style:none;margin:0;padding:0}.part-label{margin:12px 5px 5px;font-size:.74rem;font-weight:900;text-transform:uppercase;color:#4b5d70}.chapter-group{margin:3px 0}.chapter-group[hidden]{display:none}.chapter-group .link{display:flex;gap:8px;padding:8px;border-radius:9px;text-decoration:none;background:linear-gradient(100deg,#f3f5f7,#eaf5ff,#fff9d7);transition:transform .12s ease,box-shadow .12s ease,background .12s ease}.chapter-group .link:hover,.chapter-group .link:focus-visible,.chapter-group.active .link{background:linear-gradient(100deg,#d9dee4,#a9d8ff,#ffe878);transform:translateY(-1px);box-shadow:0 5px 13px rgba(37,68,105,.1)}.chapter-group .link:active{transform:translateY(1px) scale(.995)}.num{flex:0 0 auto;min-width:43px;font-size:.78rem;font-weight:900;color:#0c5fa8}.txt{display:flex;min-width:0;flex-direction:column}.txt b{font-size:.86rem}.txt em{font-size:.74rem;font-style:normal;color:#5a6878;overflow-wrap:anywhere}.course-content{min-width:0}.hero{padding:24px;background:linear-gradient(125deg,#e4e8ec 0%,#d4ecff 52%,#fff3a6 100%);border-bottom:1px solid var(--line)}.hero h1{margin:0 0 8px;font-size:clamp(1.75rem,3vw,2.65rem);line-height:1.18}.hero p{margin:0;color:#405267}.meta{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px}.pill{padding:6px 10px;border:1px solid #bfcddd;border-radius:999px;background:rgba(255,255,255,.73);font-size:.83rem}.tools{display:flex;justify-content:space-between;gap:10px;align-items:center;flex-wrap:wrap;padding:10px 14px;background:linear-gradient(100deg,#f3f5f7,#e9f5ff,#fff8ca);border-bottom:1px solid var(--line)}.tool-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.tool-btn,.course-sidebar-toggle{border:1px solid #b9c8d8;border-radius:9px;background:linear-gradient(135deg,#eef1f4,#dff0ff,#fff3a6);padding:8px 10px;cursor:pointer;font-weight:750;color:#173552;transition:transform .12s ease,box-shadow .12s ease,background .12s ease}.tool-btn:hover,.course-sidebar-toggle:hover,.sidebar-tools button:hover{background:linear-gradient(135deg,#d8dde3,#badeff,#ffe56e);box-shadow:0 6px 15px rgba(45,71,103,.12);transform:translateY(-1px)}.tool-btn:active,.course-sidebar-toggle:active,.sidebar-tools button:active{transform:translateY(1px) scale(.98)}.tool-btn:focus-visible,.course-sidebar-toggle:focus-visible,.sidebar-tools button:focus-visible,.jump a:focus-visible,.social a:focus-visible,.chapter-nav a:focus-visible,.topnav a:focus-visible{outline:3px solid rgba(30,144,255,.32);outline-offset:2px}.course-sidebar-toggle{display:none;width:100%;margin-bottom:10px}.bd-main{padding:18px;font-size:calc(1rem * var(--scale))}.breadcrumbs{display:flex;flex-wrap:wrap;gap:6px;color:#5a6878;font-size:.87rem;margin-bottom:12px}.breadcrumbs a{text-decoration:none}.breadcrumbs a:hover{text-decoration:underline}.intro,.note,.summary,.mistakes,.practice,.projects,.qa{padding:16px;border:1px solid #d0dae5;border-radius:14px;background:rgba(255,255,255,.8);margin:16px 0}.note{border-left:5px solid var(--blue)}.mistakes{border-left:5px solid #6b7280}.practice{border-left:5px solid var(--yellow2)}.projects{border-left:5px solid var(--blue2)}.jump{padding:17px;border:1px solid #cad7e5;border-radius:15px;background:linear-gradient(125deg,#eef1f4,#e3f2ff,#fff4ae);margin:16px 0}.jump h2{margin:0 0 11px;font-size:1.18rem}.jump-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.jump a{display:flex;gap:8px;align-items:center;padding:9px 10px;border:1px solid #ced9e5;border-radius:10px;background:#fff;text-decoration:none;transition:transform .12s ease,background .12s ease,box-shadow .12s ease}.jump a:hover{background:linear-gradient(100deg,#e2e6ea,#d3ebff,#ffef94);transform:translateY(-1px);box-shadow:0 5px 13px rgba(45,69,100,.09)}.jump a:active{transform:translateY(1px) scale(.99)}.jump .jnum{font-weight:900;color:#0e6ebb}.topic{scroll-margin-top:18px;margin:23px 0;padding:18px;border:1px solid #d4dee8;border-radius:15px;background:rgba(255,255,255,.83)}.topic:target{box-shadow:0 0 0 3px rgba(30,144,255,.22);border-color:#79bfff}.topic h2{margin:0 0 10px;color:#143f67}.beginner-terms{padding:11px 13px;border-radius:10px;background:linear-gradient(100deg,#eff2f5,#eaf6ff,#fff9cf);border:1px solid #d4dee8}.example{margin-top:13px;padding:14px;border-left:5px solid var(--blue);border-radius:11px;background:linear-gradient(110deg,#eef1f4,#e0f1ff,#fff2a5)}.example h3{margin:0 0 8px}.steps{margin:10px 0 0}.practice-one{margin:12px 0 0;padding:10px 12px;border-radius:10px;background:#fff9d7;border:1px dashed #d1b943}pre{margin:10px 0;overflow:auto;padding:13px;border-radius:11px;background:#111827;color:#edf6ff;line-height:1.48;tab-size:4}code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.output{background:#f7f9fb;color:#172033;border:1px dashed #b6c4d4}.qa details{padding:10px 0;border-top:1px solid #d9e2eb}.qa details:first-of-type{border-top:0}.qa summary{cursor:pointer;font-weight:850}.chapter-nav{display:flex;justify-content:space-between;gap:10px;margin-top:22px;padding-top:16px;border-top:1px solid var(--line)}.chapter-nav a{padding:10px 13px;border:1px solid #bdcbd9;border-radius:10px;text-decoration:none;background:linear-gradient(115deg,#eef1f4,#dff0ff,#fff3a6);font-weight:800;transition:.12s ease}.chapter-nav a:hover{background:linear-gradient(115deg,#d9dee4,#b9ddff,#ffe36a);transform:translateY(-1px)}.chapter-nav a:active{transform:translateY(1px)}.translator{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.translator select{max-width:190px;padding:7px 9px;border:1px solid #b9c8d8;border-radius:9px;background:#fff;color:#172033}.goog-te-gadget{font-size:.78rem!important;color:#42556a!important}.goog-te-combo{max-width:190px;padding:6px;border:1px solid #b9c8d8;border-radius:8px;background:#fff!important;color:#172033!important}.footer{margin-top:20px;padding:21px 16px;text-align:center;border:1px solid #c6d5e4;border-radius:16px;background:linear-gradient(120deg,#dfe3e7,#cce8ff,#fff0a0)}.social{display:flex;justify-content:center;gap:9px;flex-wrap:wrap;margin-bottom:10px}.social a{display:inline-flex;width:41px;height:41px;align-items:center;justify-content:center;border:1px solid #aec2d6;border-radius:50%;background:#fff;text-decoration:none;transition:transform .12s ease,box-shadow .12s ease,background .12s ease}.social a:hover{background:#ffef9a;transform:translateY(-2px);box-shadow:0 6px 14px rgba(38,63,94,.13)}.social a:active{transform:translateY(1px) scale(.96)}.social svg{width:20px;height:20px;fill:none;stroke:#0e5d9d;stroke-width:1.8}.social a:first-child svg,.social a:nth-child(3) svg,.social a:nth-child(4) svg,.social a:nth-child(5) svg,.social a:nth-child(6) svg{fill:#0e5d9d;stroke:none}.legal{max-width:960px;margin:8px auto 0;color:#405266;font-size:.78rem;line-height:1.5}.go-top{position:fixed;right:18px;bottom:18px;width:44px;height:44px;border:1px solid #b6c7d7;border-radius:50%;background:linear-gradient(135deg,#eef1f4,#d9edff,#fff3a6);font-weight:900;color:#113b60;cursor:pointer;box-shadow:0 8px 22px rgba(0,0,0,.12);opacity:0;pointer-events:none;transform:translateY(7px);transition:.16s ease;z-index:8500}.go-top.show{opacity:1;pointer-events:auto;transform:none}.go-top:hover{background:#ffe978;transform:translateY(-2px)}.go-top:active{transform:translateY(1px) scale(.96)}body.dark{--surface:rgba(34,44,58,.97);--ink:#f4f8ff;--muted:#d3deea;--line:#586b80;background:linear-gradient(135deg,#222b36,#163a5a 50%,#51471f);color:var(--ink)}body.dark .card,body.dark .topic,body.dark .intro,body.dark .note,body.dark .summary,body.dark .mistakes,body.dark .practice,body.dark .projects,body.dark .qa{background:linear-gradient(135deg,#2a3441,#263e54,#4b4427);border-color:#5a6c81;color:#f4f8ff}body.dark .topbar,body.dark .hero,body.dark .tools,body.dark .footer,body.dark .jump,body.dark .side .hd{background:linear-gradient(110deg,#3a424c,#21527b,#756526);color:#fff;border-color:#65768a}body.dark .hero p,body.dark .topbar p,body.dark .legal,body.dark .breadcrumbs,body.dark .txt em{color:#dce7f3}body.dark .chapter-group .link,body.dark .jump a,body.dark .chapter-nav a,body.dark .tool-btn,body.dark .course-sidebar-toggle,body.dark .sidebar-tools button{background:linear-gradient(110deg,#333d49,#294d6e,#665c34);color:#f5f8ff;border-color:#687a8d}body.dark .beginner-terms,body.dark .example,body.dark .practice-one{background:linear-gradient(110deg,#34414f,#2e526f,#685e34);color:#f5f8ff;border-color:#687b90}body.dark .output{background:#263343;color:#f5f8ff;border-color:#6d8095}body.dark .translator select,body.dark .goog-te-combo,body.dark .sidebar-tools input{background:#2a3746!important;color:#f4f8ff!important;border-color:#6a7d92}body.dark .social a{background:#2c4055;border-color:#6d8298}body.dark .social svg{stroke:#9ed1ff}body.dark .social a:first-child svg,body.dark .social a:nth-child(3) svg,body.dark .social a:nth-child(4) svg,body.dark .social a:nth-child(5) svg,body.dark .social a:nth-child(6) svg{fill:#9ed1ff}[lang="fa"],[lang="ar"]{direction:rtl;text-align:right}[lang="fa"] pre,[lang="ar"] pre,[lang="fa"] code,[lang="ar"] code{direction:ltr;text-align:left}.rtl{direction:rtl;text-align:right}@media(max-width:1050px){.jump-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.topnav{display:none}}@media(max-width:900px){.lay{grid-template-columns:1fr}.side{position:fixed;left:0;top:0;width:min(360px,90vw);height:100dvh;max-height:none;z-index:9700;transform:translateX(-105%);transition:transform .2s ease;border-radius:0}.side.open{transform:none}.course-sidebar-toggle{display:block}.wrap{width:95%}.jump-grid{grid-template-columns:1fr}}@media(max-width:560px){.topbar{align-items:flex-start;flex-direction:column}.hero{padding:18px}.bd-main{padding:12px}.topic{padding:14px}.tools{align-items:flex-start}.chapter-nav{flex-direction:column}.chapter-nav a{text-align:center}.translator{width:100%}.translator select{width:100%;max-width:none}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}@media print{body{background:#fff!important;color:#000!important}.progress,.topbar,.header,.side,.course-sidebar-toggle,.tools,.footer,.go-top{display:none!important}.wrap{width:100%;padding:0}.lay{display:block}.card{border:0;box-shadow:none}.hero{background:#fff!important;border:0}.bd-main{padding:0}.topic,.intro,.note,.summary,.mistakes,.practice,.projects,.qa{background:#fff!important;color:#000!important;break-inside:avoid}pre{white-space:pre-wrap;background:#f4f4f4!important;color:#000!important}}.course-sidebar{position:sticky;top:10px;max-height:calc(100vh - 20px);overflow:auto;overscroll-behavior:contain;overflow-anchor:none;scrollbar-gutter:stable;background:var(--surface)}.course-sidebar>.hd{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;background:linear-gradient(105deg,#dfe4ea,#cae6ff,#fff2a4);border-bottom:1px solid var(--line)}.course-sidebar>.hd h2{margin:0;font-size:1rem;line-height:1.3}.course-sidebar>.bd{padding:11px}.course-sidebar-close{display:none;border:1px solid #b8c7d8;background:linear-gradient(135deg,#eef1f4,#d9edff,#fff3a6);color:#173552;border-radius:8px;padding:6px 9px;cursor:pointer;font-weight:800}.course-sidebar-overlay{display:none;position:fixed;inset:0;background:rgba(15,23,42,.54);z-index:9590;opacity:0;pointer-events:none;transition:opacity .2s ease}.chapter-group.active-chapter .link{background:linear-gradient(100deg,#d9dee4,#a9d8ff,#ffe878);font-weight:750;box-shadow:0 5px 13px rgba(37,68,105,.1)}.chapter-group.active-chapter .txt em{color:#334155}.course-sidebar-toggle{display:none;align-items:center;justify-content:center;gap:8px;width:100%;margin:0 0 12px;padding:10px 12px}.course-sidebar-toggle .menu-lines{font-size:1.15rem;line-height:1}.bd-main{font-size:calc(1rem * var(--scale));transition:font-size .15s ease}.bd-main p,.bd-main li,.bd-main td,.bd-main th,.bd-main pre,.bd-main code,.bd-main summary,.bd-main button{font-size:inherit}#google_translate_element{position:absolute!important;left:-10000px!important;top:auto!important;width:1px!important;height:1px!important;overflow:hidden!important;opacity:.01!important;pointer-events:none!important}.translator{position:relative}.translator label{font-weight:750}.translator select{min-width:145px;cursor:pointer}.translator select:hover{border-color:#1e90ff;box-shadow:0 0 0 2px rgba(30,144,255,.10)}.translator select:focus-visible{outline:3px solid rgba(30,144,255,.30);outline-offset:2px}.translate-status{font-size:.76rem;color:var(--muted);min-width:0}.translate-status[hidden]{display:none}button:active,a:active,select:active{filter:brightness(.97)}body.dark .course-sidebar{background:var(--surface);color:#f4f8ff}body.dark .course-sidebar>.hd{background:linear-gradient(110deg,#3a424c,#21527b,#756526);border-color:#65768a;color:#fff}body.dark .course-sidebar-close{background:linear-gradient(110deg,#333d49,#294d6e,#665c34);color:#f5f8ff;border-color:#687a8d}body.dark .chapter-group.active-chapter .link{background:linear-gradient(105deg,#35526f,#356b99,#756826);color:#fff}body.dark .chapter-group.active-chapter .txt em{color:#e6eef8}@media(max-width:900px){.lay{grid-template-columns:1fr}.course-sidebar{position:fixed;top:0;left:0;width:min(360px,90vw);height:100dvh;max-height:none;z-index:9600;transform:translateX(-105%);transition:transform .22s ease;border-radius:0;box-shadow:0 20px 45px rgba(0,0,0,.24)}.course-sidebar.is-open{transform:none}.course-sidebar-close{display:block}.course-sidebar-toggle{display:flex}.course-sidebar-overlay{display:block}.course-sidebar-overlay.is-open{opacity:1;pointer-events:auto}body.course-menu-open{overflow:hidden}}@media(max-width:560px){.course-sidebar{width:min(340px,92vw)}.translator{width:100%}.translator label{width:100%}.translator select{width:100%;max-width:none}.translate-status{width:100%}}@media print{.course-sidebar-overlay,.course-sidebar-close{display:none!important}}.hero h1,.course-sidebar .txt,.course-sidebar .txt em{letter-spacing:normal;text-decoration:none}.notranslate{unicode-bidi:isolate}.translate-status{font-size:.76rem;color:var(--muted)}html[dir="rtl"] .bd-main,html[dir="rtl"] .hero,html[dir="rtl"] .tools,html[dir="rtl"] .footer{text-align:right}html[dir="rtl"] pre,html[dir="rtl"] code,html[dir="rtl"] .notranslate{direction:ltr;text-align:left}html[dir="rtl"] .course-sidebar{left:auto;right:0}html[dir="rtl"] .course-sidebar.is-open{transform:none}@media(max-width:900px){html[dir="rtl"] .course-sidebar{transform:translateX(105%)}html[dir="rtl"] .course-sidebar.is-open{transform:none}}@media(hover:hover){.tool-btn:hover,.course-sidebar-toggle:hover,.course-sidebar-close:hover,.sidebar-tools button:hover,.chapter-group .link:hover,.jump a:hover,.chapter-nav a:hover,.social a:hover{filter:saturate(1.04)}}.python-application-note{margin:12px 0 0;padding:10px 12px;border-left:4px solid #1e90ff;border-radius:9px;background:rgba(255,255,255,.72);color:var(--text)}body.dark-view .python-application-note{background:rgba(36,52,75,.88);color:#f3f7ff;border-left-color:#67b7ff}.translate-status{display:inline-block;max-width:260px;font-weight:650}.translate-status[hidden]{display:none!important}.summary,.projects{scroll-margin-top:18px}.summary ul,.projects ol{margin-bottom:0}.course-sidebar .txt b,.course-sidebar .txt em,.hero h1{white-space:normal}.course-sidebar .txt em::before,.course-sidebar .txt b::before,.hero h1::before{content:none!important}