@import "https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Noto+Sans+SC:wght@400;500;600;700&family=Playfair+Display:ital,wght@1,600&display=swap";:root{color:#102b25;font-synthesis:none;background:#edf0e8;font-family:Noto Sans SC,system-ui,sans-serif}*{box-sizing:border-box}body{min-width:320px;margin:0}button,input,select{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible{outline-offset:2px;outline:3px solid #e6664066}.brand{letter-spacing:-1px;font-size:22px;font-weight:800}.brand span,.loading span{color:#ef643d}.eyebrow,.page small{letter-spacing:2px;color:#d95f3d;font:500 11px DM Mono,monospace}.primary{border:0;border-radius:5px;padding:14px 20px;font-weight:700;box-shadow:0 8px 24px #df5b3433;color:#fff!important;background:#ed623d!important}.primary:disabled{opacity:.55;cursor:wait}.error,.success{color:#a73326;background:#fff0ea;border-radius:4px;padding:10px 12px;font-size:13px}.success{color:#126956;background:#e4f5ed}.loading{color:#fff;background:#071b18;place-items:center;height:100vh;font-size:28px;font-weight:800;display:grid}.auth-shell{background:#071b18;grid-template-columns:1.25fr .75fr;min-height:100vh;display:grid}.auth-story{color:#f2f1e8;padding:9vh 8vw;position:relative;overflow:hidden}.auth-story:after{content:"";border:1px solid #dbe7d51c;border-radius:50%;width:420px;height:420px;position:absolute;bottom:-100px;right:-80px;box-shadow:0 0 0 90px #dbe7d508,0 0 0 180px #dbe7d505}.auth-story h1{letter-spacing:-4px;margin:70px 0 25px;font-size:clamp(48px,6vw,88px);line-height:1.04}.auth-story h1 em{color:#ef7049;font-family:Playfair Display,serif;font-weight:600}.auth-story p{color:#b8c7be;max-width:520px;font-size:18px;line-height:1.8}.mini-plot{border-bottom:1px solid #60736c;border-left:1px solid #60736c;width:56%;height:150px;position:absolute;bottom:12%;left:8vw}.mini-plot i{background:#e7e7d8;border-radius:50%;width:8px;height:8px;position:absolute}.mini-plot i:first-child{bottom:15%;left:8%}.mini-plot i:nth-child(2){bottom:28%;left:25%}.mini-plot i:nth-child(3){bottom:45%;left:43%}.mini-plot i:nth-child(4){bottom:62%;left:65%}.mini-plot i:nth-child(5){bottom:78%;left:85%}.mini-plot b{transform-origin:0;background:#ef7049;width:94%;height:2px;position:absolute;bottom:12%;left:3%;transform:rotate(-35deg)}.auth-card{background:#f6f7f1;flex-direction:column;justify-content:center;padding:8vh clamp(35px,5vw,85px);display:flex}.auth-card h2{margin:50px 0 8px;font-size:34px}.auth-card>p{color:#6d7873;margin:0 0 30px}.auth-card form{gap:15px;display:grid}.auth-card label,.profile-card label{gap:8px;font-size:13px;font-weight:600;display:grid}.auth-card input:not([type=checkbox]),.profile-card input{background:#fff;border:1px solid #cbd1c9;border-radius:4px;width:100%;padding:12px}.auth-card .check{color:#5a6661;grid-template-columns:auto 1fr;align-items:center;font-weight:400;display:flex}.switch{color:#12685b;background:0 0;border:0;margin-top:22px}.app-shell{grid-template-columns:236px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{color:#c6d2cc;z-index:5;background:#071b18;flex-direction:column;width:236px;padding:25px 15px;display:flex;position:fixed;inset:0 auto 0 0}.sidebar>.brand{color:#fff;margin:0 12px 30px}.sidebar>small{letter-spacing:1.5px;color:#647871;text-transform:uppercase;margin:18px 12px 7px;font:500 9px DM Mono,monospace}.sidebar>button{color:#9baca5;text-align:left;background:0 0;border:0;border-radius:5px;align-items:center;gap:11px;margin:1px 0;padding:9px 11px;display:flex}.sidebar>button b{border:1px solid #36504a;border-radius:3px;place-items:center;width:29px;height:25px;font:500 10px DM Mono,monospace;display:grid}.sidebar>button span{font-size:13px}.sidebar>button:hover,.sidebar>button.active{color:#fff;background:#13342e}.sidebar>button.active b{background:#e96741;border-color:#e96741}.sidebar-foot{border-top:1px solid #254039;align-items:center;margin-top:auto;padding-top:16px;display:flex}.sidebar-foot button{color:#c6d2cc;background:0 0;border:0;align-items:center;gap:9px;padding:0 5px;display:flex}.sidebar-foot button:first-child{flex:1}.sidebar-foot strong,.sidebar-foot i{text-align:left;font-size:12px;display:block}.sidebar-foot i{color:#779088;font-size:10px;font-style:normal}.avatar{color:#fff;background:#e96741;border-radius:50%;place-items:center;width:33px;height:33px;display:grid}.main{grid-column:2;min-width:0}.topbar{z-index:4;background:#f7f8f3;border-bottom:1px solid #d8ddd5;justify-content:space-between;align-items:center;height:70px;padding:0 34px;display:flex;position:sticky;top:0}.topbar small{letter-spacing:1px;color:#8a9691;font:9px DM Mono,monospace;display:block}.topbar strong{font-size:15px}.online{color:#607069;font-size:11px}.online i,.status i{background:#2a9a79;border-radius:50%;width:7px;height:7px;margin-right:5px;display:inline-block}.page{max-width:1420px;margin:auto;padding:42px clamp(24px,4vw,62px) 80px}.page.narrow{max-width:760px;margin:0}.page-title{margin-bottom:32px}.page-title h1,.algo-intro h1{letter-spacing:-2px;margin:8px 0;font-size:43px}.page-title p,.algo-intro p{color:#62706a}.hero{color:#fff;background:#0b2c26;justify-content:space-between;align-items:center;min-height:320px;padding:46px clamp(35px,6vw,75px);display:flex;overflow:hidden}.hero h1{letter-spacing:-3px;margin:15px 0;font-size:clamp(38px,5vw,64px);line-height:1.05}.hero h1 em{color:#ef7049;font-family:Playfair Display,serif}.hero p{color:#afc0b9;max-width:510px;margin-bottom:28px}.orb{color:#ef7049;border:1px solid #ffffff24;border-radius:50%;place-items:center;width:230px;height:230px;font:46px DM Mono,monospace;display:grid;position:relative;box-shadow:0 0 0 42px #ffffff08,0 0 0 84px #ffffff05}.orb i,.orb b{color:#d9e3df;font:22px DM Mono,monospace;position:absolute}.orb i{top:50px;left:22px}.orb b{bottom:42px;right:28px}.stats{background:#d2d8d0;border:1px solid #d2d8d0;grid-template-columns:repeat(3,1fr);gap:1px;margin:18px 0 48px;display:grid}.stats article{background:#f8f9f5;padding:25px}.stats span{color:#64716c;font-size:12px}.stats strong{color:#123b33;margin:8px 0;font:34px DM Mono,monospace;display:block}.stats p{color:#8b9691;margin:0;font-size:11px}.section-head{justify-content:space-between;align-items:end;margin-bottom:20px;display:flex}.section-head h2{margin:5px 0}.section-head>span{color:#7a8681;font-size:12px}.algorithm-grid{grid-template-columns:repeat(5,1fr);gap:10px;display:grid}.algorithm-grid>button{text-align:left;background:#f8f9f5;border:1px solid #d7ddd4;padding:22px;transition:all .2s}.algorithm-grid>button:hover{transform:translateY(-4px);box-shadow:0 12px 30px #19382b18}.algorithm-grid>button>span{color:#cbd1c9;font:30px DM Mono,monospace}.algorithm-grid i,.kind,.lesson-grid i{float:right;color:#176b5d;background:#dceddf;border-radius:20px;padding:5px 8px;font:10px DM Mono,monospace}.algorithm-grid h3{margin:24px 0 8px}.algorithm-grid p{color:#65736d;height:62px;font-size:12px;line-height:1.7}.algorithm-grid small{color:#60716a;letter-spacing:0}.progress{background:#dce1da;height:3px;margin:22px 0 9px}.progress b{background:#e96741;height:100%;display:block}.algo-intro{justify-content:space-between;align-items:center;margin-bottom:26px;display:flex}.algo-intro p{margin:0}.kind{font-size:12px}.workspace{background:#f8f9f5;border:1px solid #d5dbd2;grid-template-columns:minmax(0,1fr) 315px;display:grid;box-shadow:0 14px 45px #18332912}.viz{min-width:0;padding:25px}.section-title{justify-content:space-between;align-items:center;display:flex}.section-title h2,.panel h2{margin:4px 0 17px}.status{color:#66726d;font:11px DM Mono,monospace}.chart{cursor:crosshair;border:1px solid #d9dfd6;width:100%;height:450px;display:block}.panel{background:#eef1e9;border-left:1px solid #d5dbd2;padding:25px}.control{border-top:1px solid #ced5cc;padding:14px 0;display:block}.control span{justify-content:space-between;font-size:12px;display:flex}.control b{color:#e15833;font:500 12px DM Mono,monospace}.control input{accent-color:#19675b;width:100%;margin-top:13px}.seed,.select{border-top:1px solid #ced5cc;justify-content:space-between;align-items:center;padding:13px 0;font-size:12px;display:flex}.seed input,.select select{background:#fff;border:1px solid #c4cbc2;width:115px;padding:7px}.actions{grid-template-columns:1fr 1.4fr;gap:7px;margin-top:14px;display:grid}.actions button,.reset{color:#294940;background:#fff;border:1px solid #bac5bb;border-radius:4px;padding:11px 7px;font-size:12px}.reset{background:0 0;border:0;width:100%;margin-top:6px}.chart-hint{color:#6c7973;margin:8px 0 0;font-size:11px}.iteration{align-items:center;gap:14px;margin-top:12px;font-size:12px;display:flex}.iteration input{accent-color:#e96741;flex:1}.tree{text-align:center;margin-top:12px;font-size:10px}.tree>div{color:#fff;background:#0d3c32;border-radius:4px;padding:7px 10px;display:inline-grid}.tree small{color:#a9c3b9;letter-spacing:0}.tree section{border-top:1px solid #bbc8be;justify-content:center;gap:7px;padding-top:8px;display:flex}.tree .tree{flex:1}.metrics{background:#cfd5cc;border:1px solid #cfd5cc;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1px;margin-top:16px;display:grid}.metrics article{background:#f8f9f5;padding:20px}.metrics span{font:11px DM Mono,monospace}.metrics strong{margin:10px 0;font:27px DM Mono,monospace;display:block}.metrics p{color:#74807a;margin:0;font-size:11px}.notice{border-left:3px solid #e96741;margin-top:28px;padding:4px 20px}.notice p{color:#65736d;margin-bottom:0}.table-card,.profile-card,.distribution{background:#f8f9f5;border:1px solid #d5dbd2;padding:8px;overflow:auto}table{border-collapse:collapse;width:100%;min-width:720px}th,td{text-align:left;border-bottom:1px solid #dfe4dd;padding:15px;font-size:12px}th{color:#7e8984;letter-spacing:1px;font:10px DM Mono,monospace}td small{letter-spacing:0;color:#84908b;display:block}.text,.danger{color:#116b5c;background:0 0;border:0;padding:0}.danger{color:#b94f36}.tag{color:#176b5d;background:#e1ece6;border-radius:15px;padding:4px 8px}.empty{text-align:center;color:#78857f;padding:55px}.empty>b{color:#d26443;font-size:38px}.empty h3{color:#26473e}.modal{z-index:20;background:#061713bf;place-items:center;padding:30px;display:grid;position:fixed;inset:0}.modal>article{background:#f7f8f3;width:min(900px,100%);max-height:92vh;padding:30px;position:relative;overflow:auto}.modal .close{background:0 0;border:0;font-size:25px;position:absolute;top:15px;right:18px}.modal .chart{height:360px}.detail-grid{grid-template-columns:1fr 1fr;gap:15px;display:grid}.detail-grid>div{background:#e9ede6;padding:13px}.detail-grid pre{white-space:pre-wrap;font:11px DM Mono,monospace}.lesson-grid,.metric-guide{grid-template-columns:repeat(3,1fr);gap:14px;display:grid}.lesson-grid article,.metric-guide article{background:#f8f9f5;border:1px solid #d5dbd2;padding:26px}.lesson-grid article>span{color:#c8d0c7;font:34px DM Mono,monospace}.lesson-grid h2,.metric-guide h2{margin:15px 0 7px}.lesson-grid p,.lesson-grid li,.metric-guide p{color:#64716c;font-size:12px;line-height:1.8}.lesson-grid button{color:#d65c39;background:0 0;border:0;padding:10px 0;font-weight:600}.metric-guide>article>span{color:#d65c39;font:10px DM Mono,monospace}.metric-guide small{letter-spacing:0;color:#176b5d}.profile-card{gap:15px;padding:30px;display:grid}.profile-card hr{border:0;border-top:1px solid #d8ded6;width:100%}.big-avatar{color:#fff;background:#0c3d33;border-radius:50%;place-items:center;width:75px;height:75px;font-size:30px;display:grid}.distribution{padding:28px}.distribution>div:not(.empty){grid-template-columns:150px 1fr 35px;align-items:center;gap:12px;margin:17px 0;font-size:12px;display:grid}.distribution i{background:#e2e7e0;height:10px}.distribution i b{background:#e96741;height:100%;display:block}.pill{color:#777;background:#eee;border:0;border-radius:20px;padding:6px 10px}.pill.on{color:#176b5d;background:#dcede5}@media (width<=1150px){.algorithm-grid{grid-template-columns:repeat(3,1fr)}.lesson-grid,.metric-guide{grid-template-columns:repeat(2,1fr)}}@media (width<=850px){.app-shell{grid-template-columns:70px minmax(0,1fr)}.sidebar{width:70px;padding:22px 9px}.sidebar>.brand{margin:0 auto 25px;font-size:0}.sidebar>.brand:first-letter{font-size:20px}.sidebar>small,.sidebar>button span,.sidebar-foot span:not(.avatar){display:none}.sidebar>button{justify-content:center}.sidebar-foot button:first-child{padding:0}.main{grid-column:2}.workspace{grid-template-columns:1fr}.panel{border-top:1px solid #d5dbd2;border-left:0}.hero .orb{display:none}.algorithm-grid{grid-template-columns:repeat(2,1fr)}.stats{grid-template-columns:1fr}.chart{height:360px}.auth-shell{grid-template-columns:1fr}.auth-story{display:none}.auth-card{min-height:100vh}.detail-grid{grid-template-columns:1fr}}@media (width<=560px){.page{padding:28px 15px 60px}.topbar{padding:0 15px}.algorithm-grid,.lesson-grid,.metric-guide{grid-template-columns:1fr}.algorithm-grid p{height:auto}.algo-intro{display:block}.kind{float:none;margin-top:10px;display:inline-block}.hero{padding:32px 25px}.hero h1{font-size:36px}.chart{height:300px}.viz{padding:12px}.modal{padding:10px}.modal>article{padding:20px}}.training-analysis,.algorithm-guide{margin-top:48px}.split-cards{grid-template-columns:repeat(3,1fr);gap:10px;margin:18px 0;display:grid}.split-cards article{background:#f8f9f5;border:1px solid #d5dbd2;padding:20px}.split-cards b{color:#123b33;font:30px DM Mono,monospace}.split-cards span{margin:7px 0;font-weight:700;display:block}.split-cards p,.analysis-card>div>p{color:#718079;margin:0;font-size:11px;line-height:1.7}.analysis-card{background:#f8f9f5;border:1px solid #d5dbd2;grid-template-columns:250px minmax(0,1fr);align-items:center;gap:30px;margin-top:12px;padding:24px;display:grid}.analysis-card h3{margin:5px 0 9px}.curve{min-width:0}.curve svg{width:100%;height:auto;display:block}.curve svg line{stroke:#dce3da;stroke-width:1px}.curve svg text{fill:#718079;font:10px DM Mono,monospace}.curve polyline{fill:none;stroke-width:2.5px;stroke-linecap:round;stroke-linejoin:round}.curve-legend{color:#596861;justify-content:center;gap:20px;font-size:11px;display:flex}.curve-legend i{vertical-align:middle;width:14px;height:3px;margin-right:5px;display:inline-block}.set-metrics,.confusion{background:#f8f9f5;border:1px solid #d5dbd2;margin-top:12px;padding:20px}.set-metrics table{min-width:0}.confusion{grid-template-columns:230px 260px 1fr;align-items:center;gap:25px;display:grid}.matrix{text-align:center;grid-template-columns:70px repeat(2,75px);font-size:11px;display:grid}.matrix>*{border:1px solid #d7ded5;margin:-1px 0 0 -1px;padding:10px}.matrix i{background:#e8f1ec;font:16px DM Mono,monospace}.confusion p{color:#718079;font-size:12px}.guide-lead{grid-template-columns:1fr 1fr;gap:14px;display:grid}.guide-lead>div,.guide-grid>article,.glossary{background:#f8f9f5;border:1px solid #d5dbd2;padding:27px}.guide-lead h3{margin:8px 0;font-size:23px}.guide-lead p,.guide-grid p,.guide-grid li,.glossary p{color:#61706a;font-size:12px;line-height:1.8}.formula-card{color:#fff;background:#0d302a!important}.formula-card code{color:#ff8a65;font:16px/1.7 DM Mono,monospace;display:block}.formula-card p{color:#b8c9c2}.guide-grid{grid-template-columns:1fr 1fr;gap:14px;margin-top:14px;display:grid}.guide-grid article>div{border-left:2px solid #e96741;margin:18px 0;padding-left:14px}.guide-grid article>div b{font-size:12px}.guide-grid article>div p{margin:3px 0}.guide-grid ul{padding-left:20px}.guide-grid li{margin:8px 0}.guide-grid .warnings li::marker{color:#e96741}.glossary{margin-top:14px}.glossary>div{background:#d9dfd6;grid-template-columns:repeat(4,1fr);gap:1px;display:grid}.glossary article{background:#f8f9f5;padding:15px}.glossary article p{margin:5px 0 0}@media (width<=850px){.analysis-card,.guide-lead,.guide-grid{grid-template-columns:1fr}.glossary>div{grid-template-columns:repeat(2,1fr)}.confusion{grid-template-columns:1fr}}@media (width<=560px){.split-cards,.glossary>div{grid-template-columns:1fr}.training-analysis,.algorithm-guide{margin-top:34px}.analysis-card{padding:16px}.section-head>span{display:none}}.unsupervised-note{background:#e7f0eb;border-left:3px solid #0d7c66;margin:18px 0;padding:18px 22px}.unsupervised-note b{color:#123b33}.unsupervised-note p{color:#61706a;margin:6px 0 0;font-size:12px;line-height:1.7}.interactive-lesson{margin:0 0 32px}.lesson-console{color:#f4f3eb;background:#252827;border:1px solid #4b504e;border-radius:18px;grid-template-columns:380px minmax(0,1fr);display:grid;overflow:hidden;box-shadow:0 18px 45px #10261e24}.lesson-theory{border-right:1px solid #525755;flex-direction:column;padding:28px;display:flex;position:relative}.lesson-tools{gap:5px;display:flex;position:absolute;top:15px;right:18px}.lesson-tools button{color:#e1e5e1;background:0 0;border:0;border-radius:50%;width:30px;height:30px;font-size:20px}.lesson-tools button:hover{background:#ffffff12}.lesson-tools button:disabled{opacity:.25}.lesson-formula{text-align:center;padding:28px 0 18px}.lesson-formula>span{margin-bottom:34px;font:italic 25px Georgia,serif;display:block}.lesson-formula strong{font:600 18px Georgia,serif;display:block}.lesson-formula p{color:#e5e7e3;margin:15px 0 6px;font:14px DM Mono,monospace}.lesson-formula small{color:#bbc2be;letter-spacing:0;line-height:1.7}.mode-tabs{background:#343837;border-radius:18px;grid-template-columns:repeat(5,1fr);margin-top:auto;padding:3px;display:grid}.mode-tabs button{color:#abb3af;background:0 0;border:0;border-radius:15px;padding:7px 3px;font-size:11px}.mode-tabs button.active{color:#1d2421;background:#f5f5f0;font-weight:700}.mode-explain{min-height:73px;padding:13px 5px 6px}.mode-explain b{color:#dde2df;font-size:11px;line-height:1.6;display:block}.mode-explain p{color:#9faca6;margin:5px 0;font:10px DM Mono,monospace}.new-data{color:#fff;background:0 0;border:1px solid #59605d;border-radius:22px;width:100%;padding:11px;font-weight:700}.new-data:hover{background:#ffffff0c}.lesson-plot{min-width:0;padding:13px 18px 12px}.lesson-plot>p{color:#d8ddda;margin:0 0 4px;font-size:11px}.lesson-plot svg{touch-action:none;-webkit-user-select:none;user-select:none;width:100%;height:auto;display:block}.lesson-plot svg line:not(.fit-line):not(.residual){stroke:#3b403e;stroke-width:1px}.lesson-plot svg text{fill:#9aa59f;font:9px DM Mono,monospace}.fit-line{stroke:#ee6842;stroke-width:2.5px}.residual{stroke:#f0a05f;stroke-width:2px;stroke-dasharray:3 2;opacity:.75}.residual.selected{stroke:#ffbf7e;stroke-width:4px;opacity:1}.prediction-point{fill:#1c3e34;stroke:#65e2ad;stroke-width:2px}.data-point{fill:#1c3352;stroke:#5797f6;stroke-width:2px;cursor:ns-resize}.data-point:hover,.data-point.selected{fill:#3675ca;stroke:#9cc5ff;filter:drop-shadow(0 0 5px #4d93f4)}.plot-legend{color:#aeb8b3;justify-content:center;gap:18px;font-size:10px;display:flex}.plot-legend i{border-radius:50%;width:8px;height:8px;margin-right:5px;display:inline-block}.plot-legend .blue{background:#5797f6}.plot-legend .green{background:#65e2ad}.plot-legend .orange{background:#f0a05f}@media (width<=1050px){.lesson-console{grid-template-columns:1fr}.lesson-theory{border-bottom:1px solid #525755;border-right:0}.lesson-formula{padding-bottom:14px}.mode-explain{min-height:auto}.lesson-plot{padding:16px}}@media (width<=560px){.lesson-console{border-radius:10px}.lesson-theory{padding:20px 14px}.lesson-formula>span{margin-bottom:22px}.mode-tabs button{font-size:10px}.lesson-plot{padding:12px 5px}.interactive-lesson .section-head{align-items:start}}.concept-console{color:#f4f3eb;background:#222625;border:1px solid #49504d;border-radius:18px;grid-template-columns:350px minmax(0,1fr);display:grid;overflow:hidden;box-shadow:0 18px 45px #10261e20}.concept-theory{border-right:1px solid #4c5350;flex-direction:column;justify-content:center;padding:28px;display:flex}.concept-formula{text-align:center}.concept-formula>span{color:#f4f5f0;margin-bottom:24px;font:italic 22px Georgia,serif;display:block}.concept-formula strong{color:#fff;font:600 18px DM Mono,monospace;display:block}.concept-formula p{color:#aeb8b3;margin:10px 0 20px;font:12px DM Mono,monospace}.concept-metric{border:1px solid #414946;border-radius:10px;align-items:center;gap:12px;margin:2px 0 18px;padding:12px 15px;display:flex}.concept-metric b{color:#67d9ae;font:700 24px DM Mono,monospace}.concept-metric span{color:#bfc8c3;font-size:11px}.lesson-range{color:#d8ddda;gap:9px;font-size:11px;line-height:1.5;display:grid}.lesson-range input{accent-color:#ee6842;width:100%}.concept-note{color:#aeb7b2;margin:17px 0 0;font-size:11px;line-height:1.75}.concept-plot{min-width:0;padding:14px 18px 12px}.concept-plot>p{color:#d5dbd8;margin:0 0 4px;font-size:11px}.concept-plot svg{touch-action:none;-webkit-user-select:none;user-select:none;width:100%;height:auto;display:block}.concept-plot svg text{fill:#9da8a2;font:9px DM Mono,monospace}.chart-grid{stroke:#373d3a;stroke-width:1px}.probability-curve{fill:none;stroke:#66dda9;stroke-width:3px}.threshold-line{stroke:#f2a15f;stroke-width:2px;stroke-dasharray:6 4}.boundary-line,.split-line{stroke:#f06749;stroke-width:2.5px;stroke-dasharray:5 3}.probability-guide{stroke:#7d8983;stroke-width:1px;stroke-dasharray:2 3}.class-point{stroke-width:2px}.class-point.c0{fill:#21446e;stroke:#5c9cf4}.class-point.c1{fill:#713a25;stroke:#f08b5e}.class-point.correct{stroke-width:3px}.class-point.wrong{stroke:#ff5353;stroke-width:4px;filter:drop-shadow(0 0 4px #ff5353)}.concept-legend{color:#abb5b0;justify-content:center;gap:18px;font-size:10px;display:flex}.concept-legend i{border-radius:50%;width:8px;height:8px;margin-right:5px;display:inline-block}.concept-legend .blue{background:#5797f6}.concept-legend .orange{background:#ee8058}.concept-legend .green{background:#65dbaa}.concept-legend .red{background:#ff5353}.k-options{grid-template-columns:repeat(4,1fr);gap:5px;margin:8px 0;display:grid}.k-options button{color:#c9d0cc;background:#303634;border:1px solid #4a5350;border-radius:16px;padding:8px 4px}.k-options button.active{color:#74edbc;background:#173c31;border-color:#68dbaf}.neighbor-radius{fill:#5d9cf40c;stroke:#5d9cf477;stroke-width:1.5px;stroke-dasharray:5 4}.neighbor-line{stroke-width:2px;opacity:.75}.neighbor-line.c0{stroke:#5797f6}.neighbor-line.c1{stroke:#ee8058}.class-point.neighbor{filter:drop-shadow(0 0 5px);stroke-width:4px}.query-point{stroke:#fff;stroke-width:3px;cursor:move}.query-point.c0{fill:#357ed6}.query-point.c1{fill:#db693d}.query-mark{pointer-events:none;fill:#fff!important;font-size:12px!important;font-weight:800!important}.lesson-actions{gap:8px;display:grid}.lesson-actions button,.best-split{color:#f5f5f0;background:0 0;border:1px solid #52605b;border-radius:20px;padding:10px 12px;font-weight:700}.lesson-actions button:first-child,.best-split{background:#174237;border-color:#4e9e82}.lesson-actions button:hover,.best-split:hover{filter:brightness(1.18)}.cluster-link{stroke-width:1px;opacity:.22}.cluster-link.k0{stroke:#5797f6}.cluster-link.k1{stroke:#65dbaa}.cluster-link.k2{stroke:#ee8058}.cluster-point{stroke-width:2px}.cluster-point.k0{fill:#21446e;stroke:#5797f6}.cluster-point.k1{fill:#174c3a;stroke:#65dbaa}.cluster-point.k2{fill:#63351f;stroke:#ee8058}.centroid{stroke:#fff;stroke-width:2.5px}.centroid.k0{fill:#5797f6}.centroid.k1{fill:#65dbaa}.centroid.k2{fill:#ee8058}.tree-region{opacity:.08}.tree-region.left{fill:#5797f6}.tree-region.right{fill:#ee8058}.split-label{fill:#ff9e7f!important;font-size:11px!important}.best-split{width:100%;margin-top:14px;font-size:11px}.concept-lesson .section-head span{white-space:nowrap}.threshold-presets{grid-template-columns:repeat(3,1fr);gap:5px;margin-top:9px;display:grid}.threshold-presets button{color:#c9d0cc;background:#303634;border:1px solid #4a5350;border-radius:16px;padding:7px 3px;font-size:10px}.threshold-presets button.active{color:#ffba90;background:#4a2d1f;border-color:#f0a05f}.centroid{cursor:move}@media (width<=1050px){.concept-console{grid-template-columns:1fr}.concept-theory{border-bottom:1px solid #4c5350;border-right:0}.concept-plot{padding:16px}}@media (width<=560px){.concept-console{border-radius:10px}.concept-theory{padding:20px 14px}.concept-plot{padding:10px 5px}.concept-legend{flex-wrap:wrap;gap:9px}.concept-lesson .section-head span{white-space:normal}}.python-lab{margin-top:32px}.python-grid{background:#f4f4ee;border:1px solid #d5d8d2;grid-template-columns:330px minmax(0,1fr);display:grid;box-shadow:0 14px 35px #17362b12}.python-guide{border-right:1px solid #d5d8d2;padding:27px}.python-badge{color:#17614f;background:#dceae4;border-radius:14px;padding:6px 10px;font:10px DM Mono,monospace;display:inline-block}.python-guide h3{margin:17px 0 20px;font-size:22px}.python-guide ol{counter-reset:python-step;gap:14px;margin:0;padding:0;list-style:none;display:grid}.python-guide li{counter-increment:python-step;grid-template-columns:25px 1fr;column-gap:9px;display:grid}.python-guide li:before{content:counter(python-step);color:#fff;background:#103b31;border-radius:50%;grid-row:1/3;place-items:center;width:22px;height:22px;font:10px DM Mono,monospace;display:grid}.python-guide li b{font-size:12px}.python-guide li span{color:#65716c;font-size:11px;line-height:1.55}.python-commands{gap:4px;margin:20px 0 12px;display:grid}.python-commands code{color:#244039;background:#e7e9e4;padding:7px 9px;font-size:10px;display:block;overflow-x:auto}.requirements-link{color:#0b7059;font-size:11px;font-weight:700;text-decoration:none;display:inline-block}.python-guide>p{color:#79827e;font-size:10px}.python-guide>p code{background:#e2e6e1;padding:2px 4px}.python-code{color:#dfe5e1;background:#202422;min-width:0}.python-toolbar{border-bottom:1px solid #3b413e;justify-content:space-between;align-items:center;gap:12px;min-height:48px;padding:8px 13px;display:flex}.python-toolbar>span{font:11px DM Mono,monospace}.python-toolbar>span i{background:#65dbaa;border-radius:50%;width:8px;height:8px;margin-right:7px;display:inline-block}.python-toolbar>div{gap:6px;display:flex}.python-toolbar button{color:#e6ebe8;background:#2e3431;border:1px solid #515956;border-radius:15px;padding:6px 10px;font-size:10px}.python-toolbar button:hover{color:#79edc0;border-color:#6bdcb1}.python-toolbar button:disabled{opacity:.35}.python-code pre{white-space:pre;tab-size:4;height:430px;margin:0;padding:19px;overflow:auto}.python-code pre code{color:#d8e1dc;font:11px/1.65 DM Mono,ui-monospace,monospace}.python-loading,.python-error{color:#aab4af;place-items:center;height:430px;font-size:12px;display:grid}.python-error{color:#ff9c8a}.python-lab .section-head>span{white-space:nowrap}@media (width<=900px){.python-grid{grid-template-columns:1fr}.python-guide{border-bottom:1px solid #d5d8d2;border-right:0}.python-code pre{height:380px}}@media (width<=560px){.python-guide{padding:20px 15px}.python-toolbar{flex-direction:column;align-items:flex-start}.python-lab .section-head>span{white-space:normal}.python-code pre{height:330px;padding:13px;font-size:10px}}.python-runner{background:#eef1ec;border:1px solid #ced5d0;margin-top:14px;padding:26px}.python-runner-head{justify-content:space-between;align-items:end;gap:15px;margin-bottom:20px;display:flex}.python-runner-head small{letter-spacing:2px;color:#dd6747;font:10px DM Mono,monospace}.python-runner-head h3{margin:7px 0 0;font-size:22px}.python-runner-head>span{color:#397060;font:10px DM Mono,monospace}.python-controls{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.runner-control{background:#f8f8f3;border:1px solid #d0d7d2;gap:7px;padding:12px;display:grid}.runner-control>span{justify-content:space-between;gap:8px;display:flex}.runner-control b{font-size:11px}.runner-control strong{color:#dd6747;font:11px DM Mono,monospace}.runner-control input{accent-color:#126a57;width:100%}.runner-control small{color:#75807b;min-height:30px;font-size:9px;line-height:1.5}.run-python{color:#fff;background:#0c604e;border:0;border-radius:3px;width:100%;margin-top:13px;padding:13px;font-weight:800;display:block}.run-python:hover{background:#084c3e}.run-python:disabled{cursor:wait;opacity:.55}.python-warning{color:#ad4a35;font-size:11px}.python-run-error{color:#9b321d;white-space:pre-wrap;background:#ffe5df;margin-top:12px;padding:13px;font-size:11px}.python-result{grid-template-columns:minmax(260px,.75fr) minmax(0,1.25fr);gap:14px;margin-top:16px;display:grid}.python-result>div,.python-result figure{background:#fff;border:1px solid #ccd3ce;min-width:0;margin:0}.python-result>div>span{color:#256050;border-bottom:1px solid #e0e4e1;padding:9px 12px;font-size:10px;font-weight:800;display:block}.python-result pre{color:#d8e1dc;white-space:pre-wrap;background:#202422;height:360px;margin:0;padding:14px;font:10px/1.65 DM Mono,monospace;overflow:auto}.python-result img{object-fit:contain;background:#fff;width:100%;height:360px;display:block}.python-result figcaption{color:#707b76;border-top:1px solid #e0e4e1;padding:8px 12px;font-size:10px}@media (width<=900px){.python-controls{grid-template-columns:repeat(2,1fr)}.python-result{grid-template-columns:1fr}.python-result pre,.python-result img{height:320px}}@media (width<=560px){.python-runner{padding:17px 10px}.python-runner-head{flex-direction:column;align-items:start}.python-controls{grid-template-columns:1fr}.python-result pre,.python-result img{height:280px}}
