:root{color-scheme:dark;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--bg:#0e0e10;--panel:#1d1d20;--panel-2:#242427;--line:#36363b;--muted:#a2a2a8;--text:#f7f7f8;--red:#dc2033;--red-dark:#7f1623;--gold:#e3ad18;--green:#31c48d}*{box-sizing:border-box}html{scroll-behavior:smooth}body{min-height:100vh;margin:0;background:var(--bg);color:var(--text)}a{color:inherit}button,input,select,textarea{font:inherit}.button{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:13px 19px;border:1px solid transparent;border-radius:11px;color:#fff;text-decoration:none;font-weight:800;cursor:pointer;transition:.2s ease}.button:hover{transform:translateY(-1px)}.button-primary{background:var(--red);border-color:var(--red)}.button-primary:hover{background:#ef2940}.button-outline{background:transparent;border-color:var(--line)}.button-outline:hover{border-color:#666;background:#ffffff08}.button.small{padding:9px 15px;font-size:.92rem}.brand{display:inline-flex;align-items:center;gap:12px;text-decoration:none;font-size:1.25rem}.brand-mark{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:var(--red)}.brand-mark i{width:10px;height:10px;display:block;background:#17171a;transform:rotate(45deg);border-radius:2px}.ms-mark{display:grid;grid-template-columns:repeat(2,6px);gap:2px}.ms-mark i{width:6px;height:6px}.ms-mark i:nth-child(1){background:#f35325}.ms-mark i:nth-child(2){background:#81bc06}.ms-mark i:nth-child(3){background:#05a6f0}.ms-mark i:nth-child(4){background:#ffba08}.eyebrow{display:inline-block;padding:7px 11px;border-radius:999px;font-size:.75rem;font-weight:900;text-transform:uppercase;letter-spacing:.02em}.eyebrow-red{background:#3b171c;color:#ff7d8a}.eyebrow-gold{background:#332b13;color:#e9b822}.landing-container{width:min(1120px,calc(100% - 40px));margin-inline:auto}

.student-dashboard-grid>div,.achievement-grid,.achievement{min-width:0}.achievement strong,.achievement small{max-width:100%;overflow-wrap:anywhere}.badge-track-levels{width:100%}

/* Public landing page */
/* Globalny kontrast elementów klikalnych: żadnego białego tekstu na białym tle. */
button,input[type=submit],input[type=button],input[type=reset]{border:1px solid #64748b;background:#f8fafc;color:#111827}
button:focus-visible,input[type=submit]:focus-visible,input[type=button]:focus-visible,input[type=reset]:focus-visible,.button:focus-visible{outline:3px solid #facc15;outline-offset:2px}
.button{border-color:#4b4b52;background:#242428;color:#fff}
.button:hover{background:#303036;color:#fff}
.button-primary{border-color:var(--red);background:var(--red);color:#fff}
.button-primary:hover{background:#ef2940;color:#fff}
.button-outline{border-color:#5a5a62;background:#242428;color:#fff}
.button-outline:hover{border-color:#777780;background:#303036;color:#fff}

.algorithm-test-panel .button{max-width:100%;white-space:normal}.algorithm-points-earned{min-width:0;flex-wrap:wrap;gap:8px}.algorithm-points-earned span{overflow-wrap:anywhere}@media(max-width:520px){.algorithm-test-panel{padding:16px}.algorithm-test-panel>.button{width:100%}.algorithm-points-earned{align-items:flex-start;flex-direction:column}.algorithm-points-earned b{font-size:18px}}
.landing-page{background:#101012;color:var(--text)}.site-header{height:74px;padding:0 max(28px,calc((100vw - 1120px)/2));display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #2d2d31;background:#101012}.site-nav{display:flex;gap:42px}.site-nav a,.site-footer a{color:#b2b2b7;text-decoration:none}.site-nav a:hover,.site-footer a:hover{color:#fff}.login-compact{padding:10px 14px;font-size:.88rem}.hero{min-height:530px;display:grid;grid-template-columns:1.05fr .95fr;gap:78px;align-items:center;padding-block:68px;background:radial-gradient(circle at 7% 4%,#391116 0,transparent 40%),radial-gradient(circle at 90% 80%,#3d2d0d80 0,transparent 30%)}.hero-copy h1{margin:18px 0 20px;font-size:clamp(3rem,5vw,4.65rem);line-height:1.08;letter-spacing:-.04em}.hero-copy>p{max-width:570px;margin:0 0 26px;color:#b9b9be;font-size:1.13rem;line-height:1.6}.hero-actions{display:flex;flex-wrap:wrap;gap:13px}.hero-copy small{display:block;margin-top:12px;color:#77777d}.hero-demo{display:flex;justify-content:flex-end}.demo-window{width:min(100%,470px);padding:20px;border:1px solid #3b3b40;border-radius:23px;background:#202023;box-shadow:0 32px 70px #0009}.demo-title{display:flex;align-items:center;gap:14px;margin-bottom:18px;color:#85858a}.window-dots{display:flex;gap:6px}.window-dots i{width:8px;height:8px;border-radius:50%;background:#ff6677}.window-dots i:nth-child(2){background:#ffc52b}.window-dots i:nth-child(3){background:#52d5ae}.demo-code{height:190px;padding:18px;border-radius:12px;background:#0c0c0e}.demo-code span{height:32px;display:flex;align-items:center;gap:10px}.demo-code b{width:12px;color:#696970;font-size:.72rem;font-weight:500}.demo-code i{display:block;width:70px;height:8px;border-radius:5px}.demo-code .short{width:40px}.demo-code .tiny{width:28px}.demo-code .long{width:90px}.code-red{background:#ff7482}.code-gray{background:#5c5c60}.code-yellow{background:#dcae20}.code-gold{background:#ffc52b}.code-green{background:#45d3aa}.demo-game{height:115px;margin-top:14px;position:relative;overflow:hidden;border-radius:12px;background:#18181b}.game-floor{position:absolute;left:0;right:0;bottom:0;height:15px;background:#64531a}.game-player{position:absolute;bottom:15px;left:34px;width:24px;height:24px;border-radius:50%;background:var(--red)}.game-platform{position:absolute;width:44px;height:8px;border-radius:4px;background:#4a4a50}.game-platform.one{left:150px;bottom:25px}.game-platform.two{left:235px;bottom:60px}.game-coin{position:absolute;right:30px;top:18px;width:13px;height:13px;background:#ffc126;transform:rotate(45deg);border-radius:2px}.build-notice{min-height:72px;padding:16px 24px;display:flex;align-items:center;justify-content:center;gap:14px;border-block:1px solid #303035;background:#1a1a1d;color:#aaaab0}.build-notice span{color:var(--gold);font-weight:900}.build-notice p{margin:0}.build-notice b{padding:5px 10px;border-radius:999px;background:#3b3111;color:#e7b821;font-size:.72rem}.steps{padding-block:90px}.section-heading h2{margin:15px 0 8px;font-size:2.25rem}.section-heading p{margin:0;color:var(--muted)}.centered{text-align:center}.centered p{max-width:640px;margin-inline:auto}.step-grid{margin-top:46px;display:grid;grid-template-columns:repeat(4,1fr);gap:22px}.step-card{min-height:190px;padding:25px;border:1px solid var(--line);border-radius:15px;background:var(--panel)}.step-card>span{width:37px;height:37px;display:grid;place-items:center;border-radius:10px;background:var(--red);font-weight:900}.step-card h3{margin:20px 0 8px}.step-card p{margin:0;color:var(--muted);line-height:1.55}.gallery-section{padding-block:82px;background:#1a1a1d}.gallery-heading{display:flex;justify-content:space-between;align-items:flex-start}.sample-label{padding:7px 12px;border:1px solid var(--line);border-radius:999px;color:#aaaab0;font-size:.72rem;font-weight:800;text-transform:uppercase}.gallery-grid{margin-top:40px;display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.gallery-card{overflow:hidden;border:1px solid var(--line);border-radius:16px;background:#111113}.gallery-card>div:last-child{padding:17px}.gallery-card h3{margin:0 0 10px}.gallery-card p{margin:0 0 12px;color:#b6b6bb}.gallery-card p span,.gallery-card small{padding:5px 7px;border-radius:7px;background:#2b2b2f;color:#bcbcc1;font-size:.72rem}.project-art{height:135px;position:relative;overflow:hidden}.project-art b{position:absolute;right:12px;top:12px;padding:5px 8px;border-radius:999px;background:#239566;color:#9af0c9;font-size:.62rem}.project-art i{position:absolute;left:45%;top:40%;width:55px;height:55px;border-radius:12px;background:#ffffff20;transform:rotate(18deg)}.project-art i:nth-of-type(2){left:25%;top:55%;width:34px;height:12px}.art-red{background:linear-gradient(135deg,#711524,#dc1731)}.art-gold{background:linear-gradient(135deg,#6a5513,#d5ad1c)}.art-orange{background:linear-gradient(135deg,#743313,#db7623)}.gallery-note{text-align:center;margin:28px 0 0;color:#737379;font-style:italic}.teacher-cta{padding-block:80px;text-align:center}.teacher-cta h2{font-size:2rem;margin:0 0 10px}.teacher-cta p{color:var(--muted);margin:0 0 26px}.site-footer{min-height:82px;display:flex;align-items:center;gap:12px;border-top:1px solid #2d2d31;color:#77777d;font-size:.85rem}.site-footer p{margin-right:auto}.site-footer nav{display:flex;gap:25px}.small-brand .brand-mark{width:24px;height:24px;border-radius:7px}.small-brand .brand-mark i{width:7px;height:7px}

/* Logged-in dashboard */
.dashboard-page{display:grid;grid-template-columns:270px 1fr;background:#101012}.dashboard-sidebar{height:100vh;position:sticky;top:0;padding:32px 22px;display:flex;flex-direction:column;border-right:1px solid #333338;background:#19191c}.sidebar-nav{margin-top:50px;display:grid;gap:7px}.sidebar-nav a{padding:14px 16px;display:flex;align-items:center;gap:13px;border-radius:11px;color:#aaaab0;text-decoration:none;font-weight:700}.sidebar-nav a:hover,.sidebar-nav a.active{background:#3d1b20;color:#ff8995}.sidebar-nav a span{width:20px;text-align:center}.sidebar-nav small{margin-left:auto;color:#666;font-size:.62rem;text-transform:uppercase}.disabled-link{cursor:not-allowed}.sidebar-user{margin-top:auto;padding-top:24px;border-top:1px solid #343439}.user-summary{display:flex;align-items:center;gap:12px}.avatar{width:44px;height:44px;display:grid;place-items:center;border-radius:50%;background:linear-gradient(135deg,#e12d37,#dba91d);font-weight:900}.user-summary div{display:grid;gap:2px}.user-summary small{color:#97979d}.logout-link{display:block;margin-top:20px;color:#aaaab0;text-decoration:none}.dashboard-main{width:100%;max-width:1450px;padding:44px 52px 70px;margin:0 auto}.dashboard-header{display:flex;align-items:flex-start;justify-content:space-between}.dashboard-header h1{margin:0;font-size:2.15rem;letter-spacing:-.03em}.dashboard-header p,.section-row p{margin:7px 0 0;color:var(--muted)}.new-project-button{margin:0}.progress-panel{margin-top:40px;padding:26px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:24px;border:1px solid var(--line);border-radius:20px;background:var(--panel)}.level-tile{width:76px;height:76px;display:grid;place-items:center;border-radius:20px;background:linear-gradient(145deg,#df2636,#dcae19);transform:rotate(45deg);font-size:1.6rem;font-weight:900}.level-tile span{transform:rotate(-45deg)}.progress-copy h2{margin:0 0 8px;font-size:1.25rem}.progress-copy p{margin:0;color:var(--muted)}.progress-line{height:9px;max-width:390px;margin-top:12px;overflow:hidden;border-radius:999px;background:#29292d}.progress-line i{height:100%;display:block;border-radius:inherit;background:#d8aa1d}.stat-list{display:flex;gap:12px}.stat-list div{min-width:75px;padding:11px;text-align:center;border-radius:13px;background:#27272b}.stat-list b,.stat-list span{display:block}.stat-list b{font-size:1.2rem;color:#ffcc36}.stat-list span{margin-top:4px;color:#85858b;font-size:.72rem}.dashboard-section{margin-top:44px;scroll-margin-top:20px}.section-row{display:flex;justify-content:space-between;align-items:end;margin-bottom:20px}.section-row h2{margin:0;font-size:1.75rem}.project-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.dashboard-project-card{overflow:hidden;border:1px solid var(--line);border-radius:17px;background:var(--panel)}.project-cover{height:145px;position:relative;overflow:hidden}.project-cover>i,.team-cover>i{position:absolute;left:45%;top:35%;width:58px;height:58px;border-radius:13px;background:#ffffff18;transform:rotate(18deg)}.cover-0{background:linear-gradient(135deg,#761627,#d51a34)}.cover-1{background:linear-gradient(135deg,#723313,#d77525)}.cover-2{background:linear-gradient(135deg,#655110,#c5a11d)}.status-pill{display:inline-block;padding:5px 8px;border-radius:999px;font-size:.65rem;font-weight:900}.project-cover .status-pill{position:absolute;right:12px;top:12px}.status-completed{background:#164936;color:#4dddac}.status-active,.status-draft{background:#654c08;color:#f2c52a}.status-archived{background:#34343a;color:#b4b4b9}.project-details{padding:17px}.project-details h3{margin:0 0 6px;font-size:1.1rem}.project-details>p{margin:0;color:#85858b;font-size:.9rem}.project-actions{margin-top:16px;display:flex;align-items:center;justify-content:space-between}.project-actions span{color:#77777d;font-size:.78rem}.new-project-card{min-height:245px;display:grid;place-items:center;align-content:center;gap:14px;border:2px dashed #3b3b40;border-radius:17px;background:transparent;color:#aaaab0;cursor:pointer}.new-project-card:hover{border-color:#696970;color:#fff}.new-project-card span{width:54px;height:54px;display:grid;place-items:center;border:1px dashed #55555a;border-radius:50%;font-size:1.6rem}.team-project-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:22px}.team-project-card{min-height:130px;display:grid;grid-template-columns:145px 1fr;overflow:hidden;border:1px solid var(--line);border-radius:17px;background:var(--panel)}.team-cover{position:relative}.team-project-card>div:last-child{padding:17px;position:relative}.team-project-card .status-pill{position:absolute;right:15px;top:14px}.team-project-card h3{margin:4px 0 7px}.team-project-card p{margin:0 0 10px;color:var(--muted)}.team-project-card a{color:#edbd28;text-decoration:none;font-size:.86rem}.inspiration-card{margin-top:40px;padding:18px 22px;display:flex;align-items:center;gap:16px;border:1px solid var(--line);border-radius:16px;background:var(--panel)}.inspiration-card>span{width:46px;height:46px;display:grid;place-items:center;border-radius:50%;background:#3b3112;color:#e5b525}.inspiration-card div{margin-right:auto}.inspiration-card p{margin:3px 0 0;color:var(--muted)}.project-dialog{width:min(520px,calc(100% - 30px));padding:0;border:1px solid #414147;border-radius:20px;background:var(--panel);color:#fff;box-shadow:0 30px 100px #000}.project-dialog::backdrop{background:#000b;backdrop-filter:blur(4px)}.project-form{padding:32px;display:grid;gap:18px}.project-form h2{margin:0;font-size:1.8rem}.project-form>p{margin:-10px 0 0;color:var(--muted)}.project-form label{display:grid;gap:8px;font-weight:750}.project-form input,.project-form select{width:100%;padding:13px;border:1px solid #47474d;border-radius:10px;background:#111114;color:#fff}.dialog-close{position:absolute;right:18px;top:14px;border:0;background:transparent;color:#aaa;font-size:1.8rem;cursor:pointer}

/* Dashboard header actions stay visible even when the side menu grows. */
.dashboard-sidebar .sidebar-nav{min-height:0;overflow-y:auto;scrollbar-width:thin}.dashboard-sidebar .sidebar-user{margin-top:18px;padding-top:18px}.dashboard-header{gap:24px}.dashboard-header-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}.dashboard-logout-button{border:1px solid #e33a49;background:#37171c;color:#ffb1b8;font-weight:850}.dashboard-logout-button:hover{border-color:#ff5b69;background:#5a1d25;color:#fff}

/* Existing editor and teacher views */
.card{width:min(620px,calc(100% - 32px));margin:40px auto;padding:48px;border:1px solid #475569;border-radius:24px;background:#111827e8;box-shadow:0 24px 80px #0008}.wide{width:min(1100px,calc(100% - 32px))}.top{display:flex;justify-content:space-between;gap:24px;align-items:flex-start}.nav-actions{display:flex;gap:10px}.badge{display:inline-block;padding:7px 12px;border-radius:999px;background:#064e3b;color:#a7f3d0;font-weight:700}.card h1{font-size:clamp(2.5rem,8vw,4.5rem);margin:.25em 0;color:#67e8f9}.card h2{margin-top:32px}.card p{font-size:1.1rem;line-height:1.6;color:#d1d5db}.card form{display:grid;grid-template-columns:2fr 1fr auto;gap:16px;align-items:end}.card label{display:grid;gap:7px;font-weight:700}.card input,.card select{width:100%;padding:13px;border:1px solid #475569;border-radius:10px;background:#0f172a;color:#fff}.projects{display:grid;gap:12px}.projects article{padding:16px 20px;border:1px solid #374151;border-radius:14px;background:#0f172a;display:flex;justify-content:space-between;align-items:center;gap:20px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;background:#0f172a;border-radius:14px;overflow:hidden}th,td{padding:14px;text-align:left;border-bottom:1px solid #374151}th{color:#a5f3fc}.code-readonly{white-space:pre-wrap;overflow:auto;min-height:480px;margin:0;padding:16px;border:1px solid #475569;border-radius:14px;background:#020617;color:#d1fae5;font:15px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace}.editor-page{padding:16px;background:radial-gradient(circle at top,#164e63,#111827 55%)}.editor-shell{width:100%;max-width:1600px;margin:auto}.editor-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:14px}.editor-head h1{font-size:2rem}.team-panel{display:flex;align-items:end;justify-content:space-between;gap:16px;margin:10px 0 16px;padding:14px;border:1px solid #374151;border-radius:14px;background:#111827}.member-form{display:flex;align-items:end;gap:10px}.member-form input{min-width:280px}.success{color:#86efac}.warning{color:#fde68a}.editor-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;height:calc(100vh - 120px)}.code-form{display:flex;flex-direction:column;gap:10px}.code-form textarea{flex:1;min-height:420px;resize:none;padding:16px;border:1px solid #475569;border-radius:14px;background:#020617;color:#d1fae5;font:15px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;tab-size:2}.editor-actions{display:flex;gap:10px;align-items:center}.editor-actions .button{margin:0}iframe{width:100%;height:100%;min-height:480px;border:1px solid #475569;border-radius:14px;background:white}

@media(max-width:980px){.site-nav{display:none}.hero{grid-template-columns:1fr;gap:42px}.hero-demo{justify-content:center}.step-grid{grid-template-columns:repeat(2,1fr)}.dashboard-page{grid-template-columns:1fr}.dashboard-sidebar{height:auto;position:static;padding:18px 24px;display:flex;align-items:center;gap:22px;border-right:0;border-bottom:1px solid #333338}.sidebar-nav{margin:0;display:flex;overflow:auto}.sidebar-nav a{white-space:nowrap}.sidebar-user{margin:0 0 0 auto;padding:0;border:0}.logout-link,.user-summary div{display:none}.progress-panel{grid-template-columns:auto 1fr}.stat-list{grid-column:1/-1}.project-card-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.landing-container{width:min(100% - 28px,1120px)}.site-header{height:66px;padding:0 15px}.site-header .brand strong{display:none}.login-compact{font-size:0}.login-compact .ms-mark{display:grid}.hero{padding-block:46px}.hero-copy h1{font-size:2.6rem}.hero-actions{display:grid}.build-notice{align-items:flex-start}.build-notice b{display:none}.step-grid,.gallery-grid{grid-template-columns:1fr}.gallery-heading{display:block}.sample-label{display:inline-block;margin-top:18px}.site-footer{padding-block:25px;flex-wrap:wrap}.site-footer nav{width:100%;gap:15px}.dashboard-main{padding:30px 18px 50px}.dashboard-sidebar{align-items:center;overflow:auto}.dashboard-sidebar .brand strong{display:none}.sidebar-nav a{padding:11px}.sidebar-nav a span{display:none}.sidebar-nav a small{display:none}.user-summary{display:none}.dashboard-header h1{font-size:1.75rem}.new-project-button{padding:11px;font-size:.85rem}.progress-panel{grid-template-columns:1fr}.level-tile{display:none}.stat-list{overflow:auto}.project-card-grid,.team-project-grid{grid-template-columns:1fr}.team-project-card{grid-template-columns:100px 1fr}.editor-grid{grid-template-columns:1fr;height:auto}.editor-head,.team-panel,.top{display:grid}.member-form{display:grid}.member-form input{min-width:0}.card{padding:28px}.card form{grid-template-columns:1fr}}

.button-danger{background:#45171d;border-color:#74232d;color:#ff9ba5}.button-danger:hover{background:#62202a;border-color:#98303d}.project-actions{gap:10px}.project-actions form,.editor-head-actions form{margin:0}.dashboard-notice,.project-created-message{padding:12px 15px;border:1px solid #246447;border-radius:11px;background:#123426}.dashboard-notice{margin:20px 0 -18px}.editor-head-actions{display:flex;align-items:center;gap:10px}

.version-history{margin-top:24px;padding:22px;border:1px solid #374151;border-radius:16px;background:#111827}.version-history-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.version-history-head h2{margin:0 0 5px}.version-history-head p,.version-empty{margin:0;color:#9ca3af}.version-history-head>span{padding:6px 10px;border-radius:999px;background:#242f42;color:#cbd5e1;font-size:.8rem;white-space:nowrap}.version-list{display:grid;gap:10px;margin-top:18px}.version-item{padding:13px 15px;border:1px solid #334155;border-radius:12px;background:#0f172a}.version-summary,.version-actions{display:flex;align-items:center;justify-content:space-between;gap:14px}.version-summary>div:first-child{display:grid;gap:4px}.version-summary small{color:#94a3b8}.version-actions form{margin:0}.version-actions details{position:relative}.version-actions summary{color:#67e8f9;cursor:pointer;font-weight:700}.version-actions details[open] pre{display:block}.version-actions pre{position:absolute;z-index:5;right:0;top:28px;width:min(720px,75vw);max-height:360px;margin:0;padding:16px;overflow:auto;border:1px solid #475569;border-radius:12px;background:#020617;box-shadow:0 18px 55px #000b;color:#d1fae5;font:13px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;white-space:pre-wrap}.version-empty{margin-top:16px}@media(max-width:700px){.editor-head-actions,.version-history-head,.version-summary,.version-actions{align-items:stretch}.editor-head-actions,.version-summary{display:grid}.version-actions{justify-content:flex-start;flex-wrap:wrap}.version-actions pre{position:fixed;inset:10vh 16px auto;width:auto;max-height:75vh}.version-history{padding:16px}}

.team-panel{display:block;padding:20px}.team-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.team-panel-head h2{margin:0 0 4px;font-size:1.2rem}.team-panel-head p{margin:0;color:#94a3b8}.team-member-list{display:grid;gap:8px;margin-top:16px}.team-member{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:11px 13px;border:1px solid #334155;border-radius:11px;background:#0f172a}.team-member>div:first-child{display:grid;gap:3px}.team-member small{color:#94a3b8}.member-role{padding:6px 9px;border-radius:999px;background:#273449;color:#cbd5e1;font-size:.78rem;font-weight:700}.member-management{display:flex;align-items:center;gap:8px}.member-management select,.member-form select{padding:10px;border:1px solid #475569;border-radius:9px;background:#0b1220;color:#fff}.member-form{margin-top:16px;padding-top:16px;border-top:1px solid #334155}.member-form label{display:grid;gap:6px}.member-form select{min-width:160px}@media(max-width:700px){.team-panel-head,.team-member,.member-management{display:grid;align-items:stretch}.member-management{grid-template-columns:1fr 1fr}.member-management select{grid-column:1/-1}.member-form{grid-template-columns:1fr}.member-form select{min-width:0}}

.status-published{background:#164936;color:#4dddac}.gallery-page-main{padding-block:70px}.gallery-page-main .section-heading h1{margin:15px 0 8px;font-size:clamp(2.2rem,5vw,3.6rem)}.gallery-empty{margin-top:38px;padding:48px;border:1px dashed #44444a;border-radius:18px;text-align:center;background:#18181b}.gallery-empty h2{margin:0 0 8px}.gallery-empty p{margin:0;color:var(--muted)}.gallery-card-link{display:block;color:inherit;text-decoration:none;transition:.2s ease}.gallery-card-link:hover{transform:translateY(-3px);border-color:#626269;box-shadow:0 18px 44px #0005}.gallery-card-link small{color:#f0c22b}

.teacher-page{background:#101012}.teacher-shell{width:min(1450px,calc(100% - 40px));margin:auto;padding:44px 0 70px}.teacher-header{display:flex;align-items:flex-start;justify-content:space-between;gap:24px}.teacher-header h1{margin:12px 0 6px;font-size:2.35rem}.teacher-header p{margin:0;color:var(--muted)}.teacher-header-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}.teacher-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:30px}.teacher-stats article{padding:22px;border:1px solid var(--line);border-radius:15px;background:var(--panel)}.teacher-stats b,.teacher-stats span{display:block}.teacher-stats b{font-size:2rem;color:#f6c42a}.teacher-stats span{margin-top:5px;color:var(--muted)}.teacher-projects{margin-top:28px;padding:24px;border:1px solid var(--line);border-radius:18px;background:var(--panel)}.teacher-toolbar{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:20px}.teacher-toolbar h2{margin:0 0 5px}.teacher-toolbar p{margin:0;color:var(--muted)}.teacher-search{display:grid;gap:6px;color:#b7b7bd;font-weight:700}.teacher-search input{min-width:280px;padding:11px 13px;border:1px solid #47474d;border-radius:10px;background:#111114;color:#fff}.teacher-table{background:#151518}.teacher-table td small{display:block;margin-top:4px;color:#85858b}.teacher-table tr[hidden]{display:none}.teacher-no-results,.teacher-empty{padding:30px;text-align:center;color:var(--muted)}.teacher-progress-tabs{display:flex;gap:8px;margin-top:26px;padding:6px;overflow:auto;border:1px solid var(--line);border-radius:14px;background:#17171a}.teacher-progress-tabs a{flex:0 0 auto;padding:10px 16px;border-radius:9px;color:#aaaab0;text-decoration:none;font-weight:800}.teacher-progress-tabs a:hover{color:#fff;background:#26262b}.teacher-progress-tabs a.active{color:#15100a;background:#f3bf2d}.teacher-progress-panel{margin-top:14px}.teacher-progress-table td{vertical-align:top;min-width:145px}.teacher-progress-table td:first-child{min-width:210px}.progress-count{display:block;width:max-content;margin:3px 0;padding:5px 9px;border-radius:999px;font-size:.75rem;font-weight:800}.progress-count.done{color:#65e0b4;background:#123f31}.progress-count.working{color:#f0c958;background:#4a390d}.teacher-points{color:#f6c42a;font-size:1.05rem}.teacher-task-details{min-width:190px}.teacher-task-details summary{cursor:pointer;color:#d3d3d8}.teacher-task-details summary b{color:#fff}.teacher-task-list{display:grid;gap:8px;margin:10px 0 0;padding:0;list-style:none}.teacher-task-list li{display:grid;grid-template-columns:1fr auto;gap:8px;padding:9px;border-radius:9px;background:#202024}.teacher-task-list li span{font-size:.82rem;line-height:1.35}.teacher-task-list li small,.teacher-task-list li a{align-self:start;color:#eec12c;font-size:.72rem;text-decoration:none}.progress-empty{color:#74747b;font-size:.82rem}.teacher-progress-stats article:nth-child(2) b{color:#54dca8}.teacher-progress-stats article:nth-child(3) b{color:#f0bd31}@media(max-width:700px){.teacher-shell{width:min(100% - 24px,1450px);padding-top:25px}.teacher-header,.teacher-toolbar{display:grid}.teacher-header-actions{justify-content:start}.teacher-search input{min-width:0;width:100%}.teacher-stats{grid-template-columns:1fr}.teacher-progress-tabs{margin-top:18px}}

.code-editor{flex:1;min-height:420px;overflow:hidden;border:1px solid #475569;border-radius:14px;background:#282c34}.code-editor .cm-editor{height:100%;min-height:420px;font-size:15px}.code-editor .cm-scroller{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.code-editor .cm-gutters{border-right-color:#475569}.save-state{margin-right:auto;color:#86efac;font-size:.86rem;font-weight:700}.save-state.is-dirty{color:#facc15}.preview-panel{position:relative;min-height:480px}.preview-panel iframe{height:100%}.fullscreen-preview{position:absolute;right:12px;top:12px;background:#111827d9;backdrop-filter:blur(5px)}.preview-panel iframe:fullscreen{border:0;border-radius:0}@media(max-width:700px){.code-editor,.code-editor .cm-editor{min-height:520px}.preview-panel{min-height:520px}}

.project-dialog-wide{width:min(760px,calc(100% - 30px));max-height:calc(100vh - 30px);overflow:auto}.template-picker{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:0;padding:0;border:0}.template-picker legend{grid-column:1/-1;margin-bottom:8px;font-weight:750}.template-option{display:block!important;cursor:pointer}.template-option input{position:absolute;opacity:0;pointer-events:none}.template-option span{height:100%;min-height:130px;padding:15px;display:grid;align-content:start;gap:6px;border:1px solid #47474d;border-radius:12px;background:#111114}.template-option span>b{width:36px;height:36px;display:grid;place-items:center;border-radius:10px;background:#3c1a20;color:#ff8a96;font-size:1.25rem}.template-option span small{color:#96969c;font-weight:500;line-height:1.4}.template-option input:checked+span{border-color:#e62a3d;background:#35181d;box-shadow:0 0 0 1px #e62a3d}.template-option input:focus-visible+span{outline:2px solid #facc15;outline-offset:2px}.team-card-actions{display:flex;align-items:center;justify-content:space-between;gap:12px}.team-card-actions form{margin:0}@media(max-width:700px){.template-picker{grid-template-columns:1fr}.template-option span{min-height:0}.project-dialog-wide .project-form{padding:25px 20px}}

.file-tabs{display:flex;gap:5px;margin:12px 0 8px;padding:5px;border:1px solid #374151;border-radius:12px;background:#111827;overflow:auto}.file-tabs a{padding:9px 14px;border-radius:8px;color:#9ca3af;text-decoration:none;font:700 .86rem ui-monospace,SFMono-Regular,Menlo,monospace;white-space:nowrap}.file-tabs a:hover{color:#fff;background:#ffffff0c}.file-tabs a.active{background:#334155;color:#fff}

.asset-manager{margin-top:24px;padding:22px;border:1px solid #374151;border-radius:16px;background:#111827}.asset-manager-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.asset-manager h2{margin:0 0 5px}.asset-manager p{margin:0;color:#9ca3af}.asset-upload{display:flex;align-items:center;gap:8px}.asset-upload label{cursor:pointer}.asset-upload input[type=file]{position:absolute;width:1px;height:1px;opacity:0}.asset-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px;margin-top:18px}.asset-item{min-width:0;overflow:hidden;border:1px solid #334155;border-radius:14px;background:#0f172a}.asset-preview{height:170px;display:grid;place-items:center;padding:12px;background:#090f1a;border-bottom:1px solid #334155}.asset-preview img{width:100%;height:100%;object-fit:contain;border-radius:8px}.asset-preview audio{width:100%;max-width:320px}.asset-details{display:grid;gap:4px;padding:13px 14px 7px}.asset-details strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.asset-list small{color:#94a3b8}.asset-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:7px 14px 14px}.asset-list form{margin:0 0 0 auto}.asset-empty{margin-top:16px!important}.asset-manager>.success,.asset-manager>.warning{margin-top:14px}@media(max-width:700px){.asset-manager-head,.asset-upload{display:grid}.asset-list{grid-template-columns:1fr}.asset-preview{height:150px}.asset-actions{align-items:stretch}.asset-actions .button{flex:1}.asset-list form{margin-left:0}}

.tutorial-page{min-height:100vh;background:#101012;color:#f7f7f8}.tutorial-topbar{min-height:76px;padding:10px max(24px,calc((100% - 1180px)/2));display:flex;align-items:center;justify-content:space-between;gap:18px;border-bottom:1px solid #303035;background:#151517}.tutorial-topbar .brand{color:#fff;text-decoration:none}.tutorial-topnav{display:flex;align-items:center;gap:16px}.tutorial-topnav>a:first-child{color:#aaaab1;text-decoration:none}.tutorial-topnav>a:first-child:hover{color:#fff}.tutorial-shell{width:min(1180px,calc(100% - 36px));margin:0 auto;padding:55px 0 80px}.tutorial-hero{max-width:850px}.tutorial-hero h1{margin:12px 0 14px;font-size:clamp(2.2rem,5vw,4rem);letter-spacing:-.045em}.tutorial-hero>p{max-width:760px;color:#aaaab1;font-size:1.1rem;line-height:1.7}.tutorial-meta{display:flex;flex-wrap:wrap;gap:9px;margin-top:22px}.tutorial-meta span{padding:7px 10px;border:1px solid #3c3c42;border-radius:999px;color:#c7c7cc;font-size:.82rem}.tutorial-layout{display:grid;grid-template-columns:230px minmax(0,760px);justify-content:space-between;gap:55px;margin-top:55px}.tutorial-chapters{height:max-content;position:sticky;top:20px;padding:18px;display:grid;gap:8px;border:1px solid #37373d;border-radius:15px;background:#19191c}.tutorial-chapters strong{margin-bottom:7px}.tutorial-chapters a{padding:8px;border-radius:8px;color:#aaaab1;text-decoration:none;font-size:.9rem}.tutorial-chapters a:hover{background:#302025;color:#ff8a96}.tutorial-content{display:grid;gap:24px}.lesson-step{scroll-margin-top:20px;padding:30px;border:1px solid #39393f;border-radius:18px;background:#1b1b1e}.step-number{display:inline-block;padding:6px 9px;border-radius:8px;background:#dc2033;color:#fff;font-size:.76rem;font-weight:900;text-transform:uppercase}.lesson-step h2{margin:13px 0 12px;font-size:1.65rem}.lesson-step>p,.student-steps{color:#b4b4ba;line-height:1.72}.student-steps{padding-left:22px}.student-steps li+li{margin-top:10px}.lesson-note,.lesson-action,.change-box{margin-top:20px;padding:16px 18px;border-radius:12px;background:#26262b;border-left:4px solid #d7ab1e}.lesson-action{border-left-color:#e32a3c}.lesson-note p,.lesson-action p{margin:5px 0 0;color:#b8b8bd;line-height:1.6}.tutorial-code{margin:18px 0;overflow:hidden;border:1px solid #424249;border-radius:13px;background:#0d1117}.tutorial-code>div{padding:9px 12px;display:flex;align-items:center;justify-content:space-between;background:#202026;color:#aaaab1;font:700 .78rem ui-monospace,SFMono-Regular,Menlo,monospace}.tutorial-code button{padding:7px 10px;border:1px solid #505057;border-radius:7px;background:#303036;color:#fff;cursor:pointer}.tutorial-code button:hover{border-color:#e22a3d}.tutorial-code pre{margin:0;padding:20px;overflow:auto;color:#f3d36b;font:500 .92rem/1.65 ui-monospace,SFMono-Regular,Menlo,monospace}.code-explanations{display:grid;gap:10px;margin-top:18px}.code-explanations>div{padding:16px;border:1px solid #37373d;border-radius:12px;background:#141416}.code-explanations code,.lesson-step code{color:#ff8490}.code-explanations p{margin:7px 0 0;color:#b1b1b7;line-height:1.62}.change-box ul{margin-bottom:0;color:#b8b8bd;line-height:1.7}.lesson-challenge{margin:24px 0;padding:22px;border:1px solid #765f12;border-radius:14px;background:linear-gradient(135deg,#2d2611,#211d13)}.lesson-challenge span{color:#f1c62d;font-size:.75rem;font-weight:900;text-transform:uppercase}.lesson-challenge h3{margin:7px 0}.lesson-challenge p{margin:0;color:#c3bfae;line-height:1.6}.next-tutorials{margin-top:55px}.next-tutorials>div{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.next-tutorials article{height:100%;padding:22px;border:1px solid #37373d;border-radius:15px;background:#19191c}.tutorial-card-link{color:inherit;text-decoration:none}.tutorial-card-link article{transition:border-color .2s,transform .2s}.tutorial-card-link:hover article{border-color:#dc2033;transform:translateY(-2px)}.next-tutorials article>span{font-size:1.6rem}.next-tutorials h3{margin:10px 0 5px}.next-tutorials p{color:#a6a6ac}.next-tutorials small{color:#e1b326;font-weight:800;text-transform:uppercase}@media(max-width:850px){.tutorial-layout{grid-template-columns:1fr}.tutorial-chapters{position:static}.next-tutorials>div{grid-template-columns:1fr}}@media(max-width:600px){.tutorial-topbar{min-height:68px;padding:10px 14px}.tutorial-topnav>a:first-child{display:none}.tutorial-shell{padding-top:36px}.lesson-step{padding:21px 18px}.tutorial-meta{display:grid}.tutorial-code pre{padding:15px;font-size:.8rem}}
.tutorial-page{min-height:100vh;background:#101012;color:#f7f7f8}.tutorial-topbar{min-height:76px;padding:10px max(24px,calc((100% - 1180px)/2));display:flex;align-items:center;justify-content:space-between;gap:18px;border-bottom:1px solid #303035;background:#151517}.tutorial-topbar .brand{color:#fff;text-decoration:none}.tutorial-topnav{display:flex;align-items:center;gap:16px}.tutorial-topnav>a:not(.button){color:#aaaab1;text-decoration:none}.tutorial-topnav>a:not(.button):hover{color:#fff}.tutorial-shell{width:min(1180px,calc(100% - 36px));margin:0 auto;padding:55px 0 80px}.tutorial-hero{max-width:850px}.tutorial-hero h1{margin:12px 0 14px;font-size:clamp(2.2rem,5vw,4rem);letter-spacing:-.045em}.tutorial-hero>p{max-width:760px;color:#aaaab1;font-size:1.1rem;line-height:1.7}.tutorial-meta{display:flex;flex-wrap:wrap;gap:9px;margin-top:22px}.tutorial-meta span{padding:7px 10px;border:1px solid #3c3c42;border-radius:999px;color:#c7c7cc;font-size:.82rem}.tutorial-layout{display:grid;grid-template-columns:230px minmax(0,760px);justify-content:space-between;gap:55px;margin-top:55px}.tutorial-chapters{height:max-content;position:sticky;top:20px;padding:18px;display:grid;gap:8px;border:1px solid #37373d;border-radius:15px;background:#19191c}.tutorial-chapters strong{margin-bottom:7px}.tutorial-chapters a{padding:8px;border-radius:8px;color:#aaaab1;text-decoration:none;font-size:.9rem}.tutorial-chapters a:hover{background:#302025;color:#ff8a96}.tutorial-content{display:grid;gap:24px}.lesson-step{scroll-margin-top:20px;padding:30px;border:1px solid #39393f;border-radius:18px;background:#1b1b1e}.step-number{display:inline-block;padding:6px 9px;border-radius:8px;background:#dc2033;color:#fff;font-size:.76rem;font-weight:900;text-transform:uppercase}.lesson-step h2{margin:13px 0 12px;font-size:1.65rem}.lesson-step>p,.student-steps{color:#b4b4ba;line-height:1.72}.student-steps{padding-left:22px}.student-steps li+li{margin-top:10px}.lesson-note,.lesson-action,.change-box{margin-top:20px;padding:16px 18px;border-radius:12px;background:#26262b;border-left:4px solid #d7ab1e}.lesson-action{border-left-color:#e32a3c}.lesson-note p,.lesson-action p{margin:5px 0 0;color:#b8b8bd;line-height:1.6}.tutorial-code{margin:18px 0;overflow:hidden;border:1px solid #424249;border-radius:13px;background:#0d1117}.tutorial-code>div{padding:9px 12px;display:flex;align-items:center;justify-content:space-between;background:#202026;color:#aaaab1;font:700 .78rem ui-monospace,SFMono-Regular,Menlo,monospace}.tutorial-code button{padding:7px 10px;border:1px solid #505057;border-radius:7px;background:#303036;color:#fff;cursor:pointer}.tutorial-code button:hover{border-color:#e22a3d}.tutorial-code pre{margin:0;padding:20px;overflow:auto;color:#f3d36b;font:500 .92rem/1.65 ui-monospace,SFMono-Regular,Menlo,monospace}.code-explanations{display:grid;gap:10px;margin-top:18px}.code-explanations>div{padding:16px;border:1px solid #37373d;border-radius:12px;background:#141416}.code-explanations code,.lesson-step code{color:#ff8490}.code-explanations p{margin:7px 0 0;color:#b1b1b7;line-height:1.62}.change-box ul{margin-bottom:0;color:#b8b8bd;line-height:1.7}.lesson-challenge{margin:24px 0;padding:22px;border:1px solid #765f12;border-radius:14px;background:linear-gradient(135deg,#2d2611,#211d13)}.lesson-challenge span{color:#f1c62d;font-size:.75rem;font-weight:900;text-transform:uppercase}.lesson-challenge h3{margin:7px 0}.lesson-challenge p{margin:0;color:#c3bfae;line-height:1.6}.coordinate-demo{margin-top:18px;display:grid;grid-template-columns:220px 1fr;align-items:center;gap:22px}.coordinate-board{height:170px;position:relative;border-left:3px solid #dc2033;border-top:3px solid #dc2033;border-radius:5px;background:linear-gradient(#ffffff0b 1px,transparent 1px),linear-gradient(90deg,#ffffff0b 1px,transparent 1px);background-size:25px 25px}.coordinate-player{position:absolute;left:45px;top:35px;font-size:36px}.coordinate-board i{position:absolute;color:#f3c82d;font-style:normal;font-weight:800}.axis-x{right:8px;top:5px}.axis-y{left:7px;bottom:6px}.coordinate-demo p{margin:7px 0;color:#b8b8bd;line-height:1.55}.next-tutorials{margin-top:55px}.next-tutorials>div{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.next-tutorials article{height:100%;padding:22px;border:1px solid #37373d;border-radius:15px;background:#19191c}.tutorial-card-link{color:inherit;text-decoration:none}.tutorial-card-link article{transition:border-color .2s,transform .2s}.tutorial-card-link:hover article{border-color:#dc2033;transform:translateY(-2px)}.next-tutorials article>span{font-size:1.6rem}.next-tutorials h3{margin:10px 0 5px}.next-tutorials p{color:#a6a6ac}.next-tutorials small{color:#e1b326;font-weight:800;text-transform:uppercase}@media(max-width:850px){.tutorial-layout{grid-template-columns:1fr}.tutorial-chapters{position:static}.next-tutorials>div{grid-template-columns:1fr}}@media(max-width:600px){.tutorial-topbar{min-height:68px;padding:10px 14px}.tutorial-topnav>a:not(.button){display:none}.tutorial-shell{padding-top:36px}.lesson-step{padding:21px 18px}.tutorial-meta{display:grid}.tutorial-code pre{padding:15px;font-size:.8rem}.coordinate-demo{grid-template-columns:1fr}}
.tutorial-mode-switch{display:flex;padding:4px;border:1px solid #3a3a40;border-radius:11px;background:#0f0f11}.tutorial-mode-switch a{padding:8px 11px;border-radius:8px;color:#aaaab1;text-decoration:none;font-size:.85rem;font-weight:800}.tutorial-mode-switch a:hover{color:#fff}.tutorial-mode-switch a.active{background:#dc2033;color:#fff}.tutorial-block-demo{margin:20px 0;padding:24px;overflow:auto;border:1px solid #3b3e47;border-radius:14px;background-color:#111318;background-image:radial-gradient(#34343b 1px,transparent 1px);background-size:20px 20px}.guide-block{width:max-content;min-width:270px;padding:13px 17px;border-radius:9px;color:#fff;font-weight:800;box-shadow:inset 0 -3px #0003}.guide-block.event{padding-bottom:18px;background:#b57918}.guide-block.appearance{margin:12px 0 0 20px;background:#8b46b3}.guide-block.motion{background:#3f63c9}.guide-block b{display:inline-block;padding:3px 8px;border-radius:5px;background:#fff;color:#222}@media(max-width:700px){.tutorial-topbar{align-items:flex-start}.tutorial-topnav{align-items:flex-end;flex-direction:column}.tutorial-mode-switch a{padding:7px 9px;font-size:.78rem}}

.coding-mode-picker{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin:0;padding:0;border:0}.coding-mode-picker legend{grid-column:1/-1;margin-bottom:8px;font-weight:750}.coding-mode-picker label{display:block!important;cursor:pointer}.coding-mode-picker input{position:absolute;opacity:0;pointer-events:none}.coding-mode-picker span{height:100%;min-height:120px;padding:17px;display:grid;align-content:start;gap:6px;border:1px solid #47474d;border-radius:13px;background:#111114}.coding-mode-picker b{font-size:1.7rem}.coding-mode-picker small{color:#96969c;font-weight:500;line-height:1.45}.coding-mode-picker input:checked+span{border-color:#e62a3d;background:#35181d;box-shadow:0 0 0 1px #e62a3d}.coding-mode-picker input:focus-visible+span{outline:2px solid #facc15;outline-offset:2px}.block-editor-page{min-height:100vh;background:#101012;color:#f7f7f8}.block-editor-shell{width:min(1200px,calc(100% - 36px));margin:0 auto;padding:38px 0 70px}.block-editor-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.block-editor-head a{color:#aaaab1;text-decoration:none}.block-editor-head h1{margin:8px 0 0;font-size:2rem}.block-mode-label{display:inline-block;margin:18px 0 0;padding:6px 9px;border-radius:999px;background:#31275a;color:#c9baff;font-size:.75rem;font-weight:900;text-transform:uppercase}.block-prototype{margin-top:34px;min-height:520px;display:grid;grid-template-columns:minmax(0,1fr) minmax(380px,1.1fr);gap:28px;padding:34px;border:1px solid #39393f;border-radius:20px;background:#19191c}.block-prototype-copy{align-self:center}.block-prototype-copy h2{margin:13px 0;font-size:2rem}.block-prototype-copy>p{color:#aaaab1;line-height:1.7}.block-stage-list{display:grid;gap:9px;margin-top:24px}.block-stage-list span{padding:11px 13px;border-radius:10px;background:#17281f;color:#7ee2aa}.block-stage-list .pending{background:#302813;color:#f0c53d}.block-mock-workspace{min-height:390px;padding:30px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;border:1px solid #46464d;border-radius:16px;background-color:#111318;background-image:radial-gradient(#34343b 1px,transparent 1px);background-size:20px 20px}.mock-block{padding:14px 18px;border-radius:9px;color:#fff;font-weight:800;box-shadow:inset 0 -3px #0003}.mock-block+.mock-block{margin-top:5px;margin-left:28px}.mock-block.event{background:#d99b1f}.mock-block.motion{background:#4169d8}.mock-block.sound{background:#9a4fca}@media(max-width:750px){.coding-mode-picker,.block-prototype{grid-template-columns:1fr}.block-prototype{padding:22px}.block-mock-workspace{min-height:300px}.block-editor-head{display:grid}}
.coding-mode-picker{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin:0;padding:0;border:0}.coding-mode-picker legend{grid-column:1/-1;margin-bottom:8px;font-weight:750}.coding-mode-picker label{display:block!important;cursor:pointer}.coding-mode-picker input{position:absolute;opacity:0;pointer-events:none}.coding-mode-picker span{height:100%;min-height:120px;padding:17px;display:grid;align-content:start;gap:6px;border:1px solid #47474d;border-radius:13px;background:#111114}.coding-mode-picker b{font-size:1.7rem}.coding-mode-picker small{color:#96969c;font-weight:500;line-height:1.45}.coding-mode-picker input:checked+span{border-color:#e62a3d;background:#35181d;box-shadow:0 0 0 1px #e62a3d}.coding-mode-picker input:focus-visible+span{outline:2px solid #facc15;outline-offset:2px}.block-editor-page{min-height:100vh;background:#101012;color:#f7f7f8}.block-editor-shell{width:min(1500px,calc(100% - 36px));margin:0 auto;padding:28px 0 45px}.block-editor-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.block-editor-head a{color:#aaaab1;text-decoration:none}.block-editor-head h1{margin:8px 0 0;font-size:2rem}.block-editor-actions{display:flex;align-items:center;gap:10px}.block-editor-actions form{display:flex;align-items:center;gap:9px}.block-save-state{color:#86efac;font-size:.78rem;font-weight:800}.block-save-state.is-dirty{color:#facc15}.block-mode-label{display:inline-block;margin:18px 0 0;padding:6px 9px;border-radius:999px;background:#31275a;color:#c9baff;font-size:.75rem;font-weight:900;text-transform:uppercase}.block-editor-grid{height:calc(100vh - 190px);min-height:620px;margin-top:22px;display:grid;grid-template-columns:minmax(560px,1.35fr) minmax(380px,1fr);gap:16px}.block-workspace-panel,.block-preview-panel{min-width:0;display:flex;flex-direction:column;overflow:hidden;border:1px solid #39393f;border-radius:16px;background:#19191c}.block-panel-title{min-height:74px;padding:14px 18px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid #39393f}.block-panel-title h2{margin:0 0 4px;font-size:1.05rem}.block-panel-title p{margin:0;color:#96969c;font-size:.82rem}.block-panel-title>span{padding:5px 8px;border-radius:999px;background:#302813;color:#f0c53d;font-size:.68rem;font-weight:900;text-transform:uppercase}.block-panel-title [data-start-block-game].is-playing{background:#166534}.blockly-workspace{flex:1;min-height:0}.block-preview-panel iframe{width:100%;flex:1;border:0;background:#111827;outline:none}.block-preview-panel iframe:focus{box-shadow:inset 0 0 0 3px #22c55e}.blocklyToolboxDiv{background:#15171c!important}.blocklyTreeRow{height:40px!important;padding:7px 10px!important}.blocklyTreeLabel{font-family:system-ui,sans-serif!important;font-size:14px!important}.blocklyFlyoutBackground{fill:#20232a!important}@media(max-width:900px){.block-editor-grid{height:auto;grid-template-columns:1fr}.blockly-workspace,.block-preview-panel iframe{height:570px;flex:none}}@media(max-width:750px){.coding-mode-picker{grid-template-columns:1fr}.block-editor-head,.block-editor-actions{display:grid}.block-editor-actions form{flex-wrap:wrap}.block-editor-grid{min-height:0}.blockly-workspace,.block-preview-panel iframe{height:500px}}
.block-variable-dialog{width:min(460px,calc(100% - 32px));padding:0;border:1px solid #4a4a52;border-radius:18px;background:#1b1b1f;color:#fff;box-shadow:0 24px 80px #000b}.block-variable-dialog::backdrop{background:#000a;backdrop-filter:blur(3px)}.block-variable-dialog form{padding:26px;display:grid;gap:14px}.block-variable-dialog h2,.block-variable-dialog p{margin:0}.block-variable-dialog p{color:#b5b5bc;line-height:1.55}.block-variable-dialog label{font-weight:800}.block-variable-dialog input{width:100%;padding:12px 13px;border:1px solid #55555d;border-radius:9px;background:#101012;color:#fff;font:inherit}.block-variable-dialog input:focus{outline:2px solid #e5b923;outline-offset:2px}.block-variable-dialog form>div{margin-top:5px;display:flex;justify-content:flex-end;gap:9px}.block-variable-dialog .block-variable-error{color:#ff8f9a;font-weight:700}
.block-image-upload{margin:18px 0 0;padding:13px 16px;display:flex;align-items:center;gap:10px;border:1px solid #39393f;border-radius:13px;background:#19191c}.block-image-upload>div{margin-right:auto;display:grid;gap:3px}.block-image-upload small{color:#96969c}.block-image-upload label{cursor:pointer}.block-image-upload input[type=file]{position:absolute;width:1px;height:1px;overflow:hidden;opacity:0}@media(max-width:750px){.block-image-upload{align-items:stretch;flex-direction:column}.block-image-upload>div{margin:0}}
.guide-block.control{margin:12px 0 0 20px;padding-bottom:18px;background:#b94b80}.guide-block.control .guide-block{margin:12px 0 0 20px}.loop-equation{margin:20px 0;padding:18px;display:flex;align-items:center;justify-content:center;gap:13px;border:1px solid #4a4a50;border-radius:13px;background:#141416}.loop-equation strong{padding:9px 12px;border-radius:9px;background:#b94b80;font-size:1.15rem}.loop-equation span{color:#aaaab1}@media(max-width:700px){.loop-equation{flex-wrap:wrap}.guide-block{min-width:240px}}
.tutorial-series{margin-top:12px;padding-top:14px;display:grid;gap:8px;border-top:1px solid #3a3a40}.tutorial-series>strong{margin:0 0 3px;font-size:.78rem;color:#85858c;text-transform:uppercase}.tutorial-chapters .series-tile{padding:10px 11px;display:flex;align-items:center;gap:9px;border:1px solid transparent;border-radius:10px;color:#fff;font-weight:800}.series-tile>span{width:24px;height:24px;display:grid;place-items:center;border-radius:7px;background:#0004;font-size:.75rem}.series-tile.tile-blue{background:#28447c;border-color:#4169ae}.series-tile.tile-purple{background:#603375;border-color:#9250ad}.series-tile.tile-orange{background:#794019;border-color:#b76529}.series-tile.tile-red{background:#7b2632;border-color:#c13d50}.series-tile.tile-green{background:#245c4c;border-color:#378c72}.tutorial-chapters a.series-tile:hover{filter:brightness(1.18);color:#fff}.guide-block.condition{padding-bottom:18px;background:#c53249}.guide-block.condition .guide-block{margin:12px 0 0 20px}.guide-else{margin:14px 0 5px 20px}.condition-example{margin-top:18px;display:grid;grid-template-columns:1fr auto 1fr;gap:10px;align-items:center}.condition-example span{padding:13px;border-radius:10px;background:#27272c;text-align:center;font-weight:800}.condition-example .condition-yes{background:#175c43;color:#75e5b4}.condition-example .condition-no{background:#702531;color:#ff96a3}@media(max-width:600px){.condition-example{grid-template-columns:1fr}.condition-example b{display:none}}
.series-tile.tile-gold{background:#66551d;border-color:#9b8129}.guide-block.object{margin:12px 0 0 20px;background:#258468}.guide-block.object small{display:block;margin-top:8px;color:#d3fff1;font-weight:700}
.series-tile.tile-cyan{background:#175b68;border-color:#26899a}.guide-block.counter{margin:12px 0 0 20px;background:#7b841c}.inline-condition{display:inline-block;margin-left:6px;padding:4px 8px;border-radius:6px;background:#c53249}
.series-tile.tile-violet{background:#493477;border-color:#7356b1}.guide-block.logic{margin:12px 0 0 20px;background:#a82961}.logic-table{margin-top:18px;display:grid;grid-template-columns:1fr auto 1fr auto;gap:10px;align-items:center}.logic-table span,.logic-table strong{padding:13px;border-radius:10px;background:#27272c;text-align:center}.logic-table strong{background:#175c43;color:#75e5b4}@media(max-width:700px){.logic-table{grid-template-columns:1fr}.logic-table b{display:none}}
.series-tile.tile-pink{background:#70294e;border-color:#a43f75}.time-choice{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:18px}.time-choice>div{padding:18px;border:1px solid #414149;border-radius:12px;background:#141416}.time-choice p{margin:8px 0 0;color:#aaaab1;line-height:1.55}@media(max-width:650px){.time-choice{grid-template-columns:1fr}}
.series-tile.tile-lime{background:#405a20;border-color:#6f9638}
.series-tile.tile-indigo{background:#303b72;border-color:#5061ad}
.algorithm-page{min-height:100vh;background:#0f1013;color:#f7f7f8}.algorithm-topbar{min-height:105px;padding:20px max(24px,calc((100% - 1600px)/2));display:flex;align-items:center;justify-content:space-between;gap:24px;border-bottom:1px solid #34363d;background:#17181c}.algorithm-topbar>div:first-child{display:grid;grid-template-columns:auto auto;align-items:center;justify-content:start;gap:5px 16px}.algorithm-topbar a{color:#aaaeb8;text-decoration:none}.algorithm-topbar span{padding:5px 8px;border-radius:8px;background:#233d63;color:#8dc5ff;font-size:.75rem;font-weight:900;text-transform:uppercase}.algorithm-topbar h1{grid-column:1/-1;margin:3px 0 0;font-size:1.8rem}.algorithm-actions{display:flex;gap:9px;flex-wrap:wrap}.algorithm-shell{width:min(1600px,calc(100% - 28px));margin:18px auto 50px;display:grid;grid-template-columns:230px minmax(540px,1fr) 360px;gap:14px}.algorithm-palette,.algorithm-workspace,.algorithm-sidepanels>section{border:1px solid #373a43;border-radius:16px;background:#191b20}.algorithm-palette{height:max-content;padding:18px;display:grid;gap:9px}.algorithm-palette h2,.algorithm-sidepanels h2{margin:0;font-size:1.05rem}.algorithm-palette>p{margin:0 0 6px;color:#999da7;font-size:.82rem;line-height:1.45}.algorithm-palette>button{padding:10px;display:flex;align-items:center;gap:12px;border:1px solid #383c46;border-radius:11px;background:#22252c;color:#fff;text-align:left;cursor:pointer}.algorithm-palette>button:hover{border-color:#e12b3e;background:#292b33}.algorithm-palette button span{display:grid;gap:2px}.algorithm-palette small{color:#9297a2}.flow-symbol{width:48px;height:35px;display:grid;place-items:center;flex:none;background:#315fa8;color:#fff;font-size:.65rem;font-style:normal;font-weight:900}.flow-start{border-radius:50%}.flow-process{border-radius:4px;background:#6752a5}.flow-io{background:#27856f;transform:skew(-12deg)}.flow-decision{width:36px;height:36px;margin-inline:6px;background:#bd7a22;transform:rotate(45deg)}.flow-decision~span{margin-left:6px}.algorithm-standard{margin-top:8px;padding-top:13px;display:grid;gap:5px;border-top:1px solid #383b43}.algorithm-standard small{font-size:.75rem}.algorithm-workspace{min-width:0;overflow:hidden}.algorithm-panel-head{padding:16px 18px;display:flex;justify-content:space-between;gap:14px;border-bottom:1px solid #373a43}.algorithm-panel-head h2{margin:0 0 4px}.algorithm-panel-head p{margin:0;color:#969aa4;font-size:.8rem}.algorithm-panel-head>span{color:#86efac;font-size:.75rem;font-weight:800}.algorithm-panel-head>span.is-dirty{color:#f2c52a}.algorithm-canvas{min-height:720px;padding:35px;background-color:#111319;background-image:radial-gradient(#343842 1px,transparent 1px);background-size:20px 20px}.algorithm-empty{margin:100px auto;padding:35px;max-width:360px;border:2px dashed #424650;border-radius:16px;color:#a8acb6;text-align:center}.algorithm-node{min-height:120px;padding:16px;position:relative;display:grid;grid-template-columns:30px 190px 1fr;align-items:center;gap:15px;border:1px solid #404550;border-radius:14px;background:#20232a;box-shadow:0 8px 25px #0004}.algorithm-node.is-dragging{opacity:.45}.algorithm-node.is-running{border-color:#f3c530;box-shadow:0 0 0 3px #f3c53055}.algorithm-node-number{width:27px;height:27px;display:grid;place-items:center;border-radius:50%;background:#333741;color:#c9cbd1;font-weight:900}.algorithm-node-shape{min-height:64px;padding:12px;display:grid;place-items:center;background:#6752a5;text-align:center;overflow-wrap:anywhere}.algorithm-node-shape.flow-start,.algorithm-node-shape.flow-end{border-radius:50%;background:#315fa8}.algorithm-node-shape.flow-io{background:#27856f;transform:skew(-10deg)}.algorithm-node-shape.flow-io b{transform:skew(10deg)}.algorithm-node-shape.flow-decision{width:115px;height:115px;margin:auto;padding:18px;transform:rotate(45deg);background:#9b651f}.algorithm-node-shape.flow-decision b{transform:rotate(-45deg);font-size:.78rem}.algorithm-node-editor{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.algorithm-node-editor>strong{grid-column:1/-1}.algorithm-node-editor label,.algorithm-connections label{display:grid;gap:4px;color:#adb0b9;font-size:.72rem;font-weight:800}.algorithm-node-editor input,.algorithm-node-editor select{width:100%;padding:8px;border:1px solid #4a4e58;border-radius:7px;background:#111319;color:#fff}.algorithm-connections{grid-column:1/-1;display:flex;gap:9px}.algorithm-connections label{flex:1}.algorithm-delete{position:absolute;right:7px;top:5px;border:0;background:transparent;color:#858994;font-size:1.4rem;cursor:pointer}.algorithm-delete:hover{color:#ff7b89}.algorithm-flow-arrow{height:38px;display:grid;place-items:center;color:#f2c52a;font-size:1.7rem}.algorithm-sidepanels{display:grid;align-content:start;gap:14px}.algorithm-sidepanels>section{padding:17px;overflow:hidden}.algorithm-sidepanels pre{min-height:150px;margin:13px 0 0;padding:14px;overflow:auto;border-radius:10px;background:#0d0f13;color:#a8e1ff;font:600 .78rem/1.6 ui-monospace,monospace;white-space:pre-wrap}.algorithm-validation{margin-top:12px;color:#b0b4bd;font-size:.82rem;line-height:1.5}.algorithm-validation ol{padding-left:19px}.validation-good{color:#63e6a7}.validation-bad,.run-error{color:#ff8491}.algorithm-inputs{margin-top:12px;display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.algorithm-inputs>strong,.algorithm-inputs>small{grid-column:1/-1}.algorithm-inputs label{display:grid;gap:4px;color:#aeb1ba;font-size:.75rem}.algorithm-inputs input{width:100%;padding:8px;border:1px solid #494d57;border-radius:7px;background:#101218;color:#fff}.algorithm-log{max-height:270px;margin:12px 0 0;padding-left:22px;overflow:auto;color:#b6bac3;font:600 .75rem/1.55 ui-monospace,monospace}.algorithm-log li+li{margin-top:6px}@media(max-width:1250px){.algorithm-shell{grid-template-columns:210px 1fr}.algorithm-sidepanels{grid-column:1/-1;grid-template-columns:repeat(3,1fr)}}@media(max-width:800px){.algorithm-topbar,.algorithm-shell{display:grid}.algorithm-shell{grid-template-columns:1fr}.algorithm-palette{grid-template-columns:repeat(2,1fr)}.algorithm-palette h2,.algorithm-palette>p,.algorithm-standard{grid-column:1/-1}.algorithm-sidepanels{grid-template-columns:1fr}.algorithm-node{grid-template-columns:30px 1fr}.algorithm-node-editor{grid-column:1/-1}.algorithm-node-shape{min-height:72px}.algorithm-actions{margin-top:10px}}
.algorithm-example-picker { display:flex; align-items:center; gap:.55rem; color:#aaa; font-size:.78rem; }
.algorithm-example-picker select { min-width:210px; border:1px solid #3a3a3f; border-radius:10px; background:#202023; color:#fff; padding:.62rem .75rem; }
@media (max-width: 900px) { .algorithm-example-picker { width:100%; } .algorithm-example-picker select { flex:1; min-width:0; } }
.algorithm-stage{width:1450px;height:930px;position:absolute;left:0;top:0;transform-origin:top left}.algorithm-view-actions{display:flex;align-items:center;gap:6px}.algorithm-view-actions>span{margin-right:8px;color:#86efac;font-size:.75rem;font-weight:800}.algorithm-view-actions button{height:32px;min-width:34px;padding:0 9px;border:1px solid #454a56;border-radius:8px;background:#24272e;color:#fff;cursor:pointer}.algorithm-view-actions output{min-width:48px;color:#c5c9d2;font-size:.75rem;text-align:center}.algorithm-port{position:absolute;z-index:7;border:3px solid #111319;border-radius:999px;background:#8d9ab2;color:#fff;font-size:9px;font-weight:900;cursor:crosshair}.algorithm-port-in{width:18px;height:18px;left:-10px;top:50%;transform:translateY(-50%)}.algorithm-port-out{width:24px;height:24px;right:-13px;top:50%;transform:translateY(-50%)}.algorithm-port-out.is-yes{top:37%;background:#32bd7f}.algorithm-port-out.is-no{top:67%;background:#ef5365}.algorithm-node:hover .algorithm-port{box-shadow:0 0 0 4px #ffffff20}.algorithm-draft-link{stroke:#f5c542;stroke-dasharray:8 6;marker-end:url(#algorithm-arrow)}
.algorithm-inputs label small{color:#777d88;font-size:.65rem;line-height:1.25}
.algorithm-node-shape{cursor:grab;touch-action:none;user-select:none}.algorithm-node-shape:active{cursor:grabbing}
.algorithm-lesson-page{min-height:100vh;background:#101114;color:#f7f7f8}.algorithm-lesson-header{min-height:70px;padding:14px max(24px,calc((100% - 1000px)/2));display:flex;align-items:center;gap:18px;border-bottom:1px solid #30333a;background:#17181c}.algorithm-lesson-header a{color:#aeb2bb;text-decoration:none}.algorithm-lesson-header span{margin-left:auto;padding:6px 10px;border-radius:999px;background:#3c2f12;color:#efc345;font-size:.72rem;font-weight:900}.algorithm-lesson{width:min(1000px,calc(100% - 32px));margin:auto}.lesson-hero{padding:70px 0;display:grid;grid-template-columns:1.25fr .75fr;gap:55px;align-items:center}.lesson-hero small,.lesson-section>div:last-child>small,.lesson-task>small{color:#e9b72c;font-weight:900;letter-spacing:.08em}.lesson-hero h1{margin:12px 0 18px;font-size:clamp(2.5rem,5vw,4.2rem);line-height:1.08}.lesson-hero p{color:#b3b6bf;font-size:1.08rem;line-height:1.65}.lesson-goals{padding:25px;border:1px solid #3a3e47;border-radius:17px;background:#1a1c21}.lesson-goals ul{margin:15px 0 0;padding-left:22px;color:#adb1ba;line-height:1.9}.lesson-section{padding:55px 0;display:grid;grid-template-columns:55px 1fr;gap:20px;border-top:1px solid #2d3037}.lesson-number{width:44px;height:44px;display:grid;place-items:center;border-radius:12px;background:#d82238;font-size:1.15rem;font-weight:900}.lesson-section h2{margin:8px 0 14px;font-size:2rem}.lesson-section p{color:#adb1ba;line-height:1.65}.lesson-problem{margin-top:24px;padding:26px;display:grid;grid-template-columns:240px 1fr;gap:30px;align-items:center;border:1px solid #3a3e47;border-radius:16px;background:#191b20}.garden-shape{height:135px;position:relative;display:grid;place-items:center;border:4px solid #4cb884;background:repeating-linear-gradient(45deg,#1d5b41,#1d5b41 10px,#235f46 10px,#235f46 20px)}.garden-shape span{position:absolute;left:-42px;transform:rotate(-90deg);font-weight:900}.garden-shape b{position:absolute;bottom:-28px}.lesson-two-columns{margin-top:22px;display:grid;grid-template-columns:1fr 1fr;gap:15px}.lesson-two-columns article{padding:22px;display:flex;gap:18px;align-items:center;border:1px solid #373b45;border-radius:14px;background:#191b20}.lesson-two-columns h3{margin:0 0 8px}.lesson-two-columns p{margin:0;font-size:.9rem}.lesson-note,.lesson-check{margin-top:18px;padding:16px 18px;border-left:4px solid #e2ae21;border-radius:8px;background:#292411}.lesson-steps{margin:25px 0 0;padding:0;display:grid;gap:10px;list-style:none}.lesson-steps li{padding:17px 20px;display:grid;grid-template-columns:190px 1fr;gap:15px;border:1px solid #373b44;border-radius:11px;background:#191b20}.lesson-steps span{color:#aeb2bb}.lesson-trace{margin-top:22px;display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.lesson-trace>div{padding:17px;display:grid;gap:10px;border:1px solid #393d46;border-radius:12px;background:#1a1c21}.lesson-trace span{width:27px;height:27px;display:grid;place-items:center;border-radius:50%;background:#303541}.lesson-trace .is-result{border-color:#28795b;background:#173c30}.lesson-code{margin:22px 0;padding:25px;border:1px solid #343944;border-radius:14px;background:#090b0f;color:#a8e1ff;font:700 1rem/1.8 ui-monospace,monospace}.lesson-explain{display:grid;grid-template-columns:1fr 1fr;gap:12px}.lesson-explain p{margin:0;padding:15px;border-radius:10px;background:#191b20}.lesson-flow{margin:28px 0;display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap}.lesson-flow>div{min-width:145px;padding:18px;display:grid;place-items:center;color:#fff;font-weight:900;text-align:center}.lesson-flow .flow-start,.lesson-flow .flow-end{border-radius:50%;background:#2764b7}.lesson-flow .flow-end{background:#b72f46}.lesson-flow .flow-input,.lesson-flow .flow-output{background:#087ea4;transform:skew(-10deg)}.lesson-flow .flow-output{background:#16875f}.lesson-flow .flow-process{border-radius:5px;background:#6747b7}.lesson-flow i{color:#e3ad18;font-size:1.4rem}.lesson-task{margin:40px 0 75px;padding:48px;border:1px solid #4e2931;border-radius:20px;background:radial-gradient(circle at 5% 10%,#431720,transparent 45%),#191a1e;text-align:center}.lesson-task h2{margin:10px 0;font-size:2.2rem}.lesson-task p{color:#b3b6bd}.lesson-task>div{margin-top:24px;display:flex;justify-content:center;gap:12px;flex-wrap:wrap}@media(max-width:760px){.lesson-hero,.lesson-problem,.lesson-two-columns{grid-template-columns:1fr}.lesson-section{grid-template-columns:1fr}.lesson-trace{grid-template-columns:1fr 1fr}.lesson-steps li{grid-template-columns:1fr}.lesson-explain{grid-template-columns:1fr}.algorithm-lesson-header{flex-wrap:wrap}.algorithm-lesson-header span{margin-left:0}.lesson-task{padding:35px 20px}}@media(max-width:480px){.lesson-trace{grid-template-columns:1fr}.lesson-flow{display:grid}.lesson-flow i{transform:rotate(90deg)}}
.algorithm-hub-page{min-height:100vh;overflow-x:hidden;background:#101114;color:#f7f7f8}.algorithm-hub-header{min-height:72px;padding:12px max(24px,calc((100% - 1200px)/2));display:flex;align-items:center;gap:22px;border-bottom:1px solid #30333a;background:#17181c}.algorithm-hub-header>a:first-child{color:#aeb2bb;text-decoration:none}.algorithm-hub-header>span{margin-right:auto;padding:6px 10px;border-radius:8px;background:#233d63;color:#8dc5ff;font-size:.75rem;font-weight:900}.algorithm-hub{width:min(1200px,calc(100% - 32px));margin:auto}.algorithm-intro{min-height:470px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:50px}.algorithm-intro>div:first-child>small,.algorithm-section-head small,.algorithm-guide-heading>small{color:#f0b92c;font-weight:900;letter-spacing:.08em}.algorithm-intro h1{margin:12px 0 18px;font-size:clamp(2.6rem,5vw,4.6rem);letter-spacing:-.04em}.algorithm-intro p{max-width:630px;color:#b2b5bd;font-size:1.08rem;line-height:1.65}.algorithm-intro-actions{margin-top:28px;display:flex;gap:12px;flex-wrap:wrap}.algorithm-recipe{min-width:0;padding:24px;display:flex;align-items:center;justify-content:center;gap:8px;border:1px solid #393d47;border-radius:22px;background:#191b20;box-shadow:0 24px 60px #0006}.algorithm-recipe>div{width:clamp(90px,27%,130px);height:130px;padding:14px;display:grid;place-items:center;border-radius:50%;background:#222b3a;text-align:center}.algorithm-recipe>div:nth-of-type(2){border-radius:14px;background:#503d85}.algorithm-recipe>div:nth-of-type(3){background:#17664d}.algorithm-recipe b{width:26px;height:26px;display:grid;place-items:center;border-radius:50%;background:#ffffff18}.algorithm-recipe span{display:grid;font-weight:900}.algorithm-recipe small{margin-top:6px;color:#c4c7ce;font-size:.67rem;font-weight:500}.algorithm-recipe i{color:#e3ad18;font-size:1.5rem}.algorithm-learning,.algorithm-symbol-guide,.algorithm-catalog{padding:70px 0}.algorithm-learning h2,.algorithm-symbol-guide h2,.algorithm-section-head h2{margin:0 0 28px;font-size:2rem}.algorithm-learning-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.algorithm-learning article{padding:22px;border:1px solid #363a43;border-radius:15px;background:#1a1c21}.algorithm-learning article>b{width:34px;height:34px;display:grid;place-items:center;border-radius:9px;background:#d82438}.algorithm-learning h3{margin:18px 0 8px}.algorithm-learning p{margin:0;color:#9fa3ad;line-height:1.5}.algorithm-symbol-guide{border-block:1px solid #2e3138}.algorithm-guide-heading{display:block!important;max-width:760px;margin-bottom:28px}.algorithm-guide-heading h2{margin:8px 0 10px}.algorithm-guide-heading p{margin:0;color:#a6aab3;line-height:1.6}.algorithm-symbol-guide>div:last-child{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.algorithm-symbol-guide article{min-height:145px;padding:20px;display:flex;align-items:center;gap:20px;border:1px solid #343842;border-radius:15px;background:#191b20}.algorithm-symbol-guide article .flow-symbol{width:70px;height:52px}.algorithm-symbol-guide article span{display:grid;gap:7px}.algorithm-symbol-guide article b{font-size:1.05rem}.algorithm-symbol-guide article small{color:#a5a9b2;line-height:1.5}.algorithm-section-head{display:flex;align-items:end;justify-content:space-between;gap:20px}.algorithm-section-head h2{margin:8px 0}.algorithm-section-head p{margin:0;color:#9da1aa}.algorithm-section-head>a{color:#f0bd31;text-decoration:none;font-weight:800}.algorithm-catalog-grid{margin-top:34px;display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.algorithm-course-card{min-height:190px;padding:20px;display:grid;grid-template-columns:50px 1fr;gap:14px;border:1px solid #383c46;border-radius:15px;background:#1a1c21}.algorithm-course-card>span{width:45px;height:45px;display:grid;place-items:center;border-radius:12px;background:#293b56;color:#8dc5ff;font-weight:900}.algorithm-course-card.level-core>span{background:#4a3614;color:#f1c54a}.algorithm-course-card.level-advanced>span{background:#502032;color:#ff98aa}.algorithm-course-card small{color:#7e8490;font-size:.67rem;font-weight:900}.algorithm-course-card h3{margin:7px 0}.algorithm-course-card p{margin:0;color:#a4a8b1;line-height:1.45}.algorithm-course-card>a,.algorithm-course-card>em{grid-column:1/-1;align-self:end;color:#69dbae;text-decoration:none;font-size:.82rem;font-weight:800}.algorithm-course-card>em{color:#6f747d;font-style:normal}.algorithm-final-cta{margin:20px 0 70px;padding:55px;border:1px solid #4b2830;border-radius:22px;background:radial-gradient(circle at 10% 20%,#421720,transparent 45%),#191a1e;text-align:center}.algorithm-final-cta h2{margin:0;font-size:2rem}.algorithm-final-cta p{margin:10px 0 24px;color:#aeb1b8}@media(max-width:900px){.algorithm-intro{grid-template-columns:1fr;padding:50px 0}.algorithm-learning-grid{grid-template-columns:repeat(2,1fr)}.algorithm-catalog-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:620px){.algorithm-hub-header{flex-wrap:wrap}.algorithm-hub-header .button{width:100%}.algorithm-recipe{padding:18px;gap:6px}.algorithm-recipe>div{width:90px;height:100px;border-radius:16px}.algorithm-learning-grid,.algorithm-symbol-guide>div:last-child,.algorithm-catalog-grid{grid-template-columns:1fr}.algorithm-section-head{align-items:start;flex-direction:column}.algorithm-symbol-guide article{min-height:0}.algorithm-final-cta{padding:35px 20px}}
.algorithm-clear-button{border-color:#7f303b!important;color:#ff9aa5!important}.algorithm-clear-button:hover{background:#4a1d24!important}
.flow-symbol.flow-input,.algorithm-node-shape.flow-input{background:#087ea4}.flow-symbol.flow-output,.algorithm-node-shape.flow-output{background:#16875f}.flow-symbol.flow-process,.algorithm-node-shape.flow-process{background:#6747b7}.flow-symbol.flow-decision,.algorithm-node-shape.flow-decision{background:#bd6c16}.flow-symbol.flow-start,.algorithm-node-shape.flow-start{background:#2764b7}.flow-symbol.flow-end,.algorithm-node-shape.flow-end{background:#b72f46}.flow-symbol.flow-input,.flow-symbol.flow-output{transform:skew(-12deg)}.algorithm-node-shape.flow-input,.algorithm-node-shape.flow-output{transform:skew(-10deg)}.algorithm-node-shape.flow-input b,.algorithm-node-shape.flow-output b{transform:skew(10deg)}.flow-symbol.flow-end{border-radius:50%}
.algorithm-workspace{overflow:auto}.algorithm-canvas{width:1450px;height:930px;min-height:930px;position:relative;overflow:hidden}.algorithm-links{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:1}.algorithm-links marker path{fill:#8390a8}.algorithm-link{fill:none;stroke:#8390a8;stroke-width:3}.algorithm-link.is-tak{stroke:#39c98a}.algorithm-link.is-nie{stroke:#ff6f7e}.algorithm-link-label{paint-order:stroke;stroke:#111319;stroke-width:5px;fill:#fff;font-size:13px;font-weight:900;text-anchor:middle}.algorithm-link-label.is-tak{fill:#63e6a7}.algorithm-link-label.is-nie{fill:#ff8491}.algorithm-node{width:285px;min-height:0;position:absolute;z-index:2;display:grid;grid-template-columns:30px 1fr;gap:10px;padding:13px}.algorithm-node-shape{grid-column:2;min-height:70px}.algorithm-node-shape.flow-decision{width:105px;height:105px}.algorithm-drag-handle{position:absolute;left:8px;top:46px;color:#8f95a2;font-weight:900;cursor:grab;touch-action:none;user-select:none}.algorithm-drag-handle:active{cursor:grabbing}.algorithm-node-editor{grid-column:1/-1;display:block}.algorithm-node-editor summary{padding:8px;border-radius:8px;background:#181a20;color:#aeb3bf;font-size:.76rem;font-weight:800;cursor:pointer}.algorithm-node-editor label{margin-top:8px}.algorithm-connections{margin-top:8px}.algorithm-node.is-dragging{z-index:5;opacity:.9}.algorithm-empty{position:absolute;left:50%;top:35%;transform:translate(-50%,-50%)}
.lesson-order{max-width:780px;margin:28px 0 18px;display:grid;gap:10px}.lesson-order-item{min-height:78px;padding:13px 14px;display:grid;grid-template-columns:28px 1fr auto;grid-template-rows:auto auto;align-items:center;column-gap:13px;border:2px solid #3b404a;border-radius:13px;background:#1c1f25;cursor:grab;transition:.2s}.lesson-order-item.is-dragging{opacity:.45}.lesson-order-item.is-wrong{border-color:#bd4252;background:#351b20}.lesson-order.is-correct .lesson-order-item{border-color:#31c48d;background:#123a2d;color:#d9fff0}.order-grip{grid-row:1/3;color:#7d8491;font-size:1.25rem}.lesson-order-item b{font-size:1rem}.lesson-order-item small{grid-column:2;color:#9da3ad}.order-buttons{grid-column:3;grid-row:1/3;display:flex;gap:6px}.order-buttons button{width:35px;height:35px;border:1px solid #4a505b;border-radius:8px;background:#292d34;color:#fff;cursor:pointer}.order-buttons button:hover{border-color:#e3ad18;color:#ffd45d}.lesson-check-order{margin-top:4px}.lesson-order-result{margin:12px 0 0!important;color:#aeb3bc}.lesson-order-result.is-good{color:#53dfa8;font-weight:800}.lesson-order-result.is-bad{color:#ff8894;font-weight:800}.lesson-editor-steps{margin-top:28px;display:grid;gap:16px}.lesson-editor-steps article{padding:22px;display:grid;grid-template-columns:42px 88px 1fr;align-items:start;gap:18px;border:1px solid #383d47;border-radius:16px;background:#191c21}.editor-step-number{width:38px;height:38px;display:grid;place-items:center;border-radius:10px;background:#d82438;font-weight:900}.lesson-editor-steps .flow-symbol{width:78px;height:58px;font-size:.75rem}.lesson-editor-steps h3{margin:4px 0 7px}.lesson-editor-steps p{margin:0;color:#b4b8c1;line-height:1.6}.lesson-editor-steps small{color:#e9ba35;font-weight:900}.lesson-field-demo{margin-top:15px;padding:13px;display:flex;gap:12px;border-radius:11px;background:#101217}.lesson-field-demo label{flex:1;display:grid;gap:6px;color:#9298a3;font-size:.72rem;font-weight:800}.lesson-field-demo input{width:100%;padding:9px;border:1px solid #48505d;border-radius:8px;background:#22262d;color:#fff;font-weight:800}.lesson-editor-action{margin-top:18px;padding:20px;display:flex;align-items:center;justify-content:space-between;gap:18px;border:1px solid #59471b;border-radius:14px;background:#2c2615}.lesson-editor-action p{margin:0!important}@media(max-width:700px){.lesson-editor-steps article{grid-template-columns:42px 1fr}.lesson-editor-steps article>div:last-child{grid-column:1/-1}.lesson-field-demo{flex-direction:column}.lesson-editor-action{align-items:stretch;flex-direction:column}.lesson-order-item{grid-template-columns:24px 1fr auto}.order-buttons{flex-direction:column}}
.lesson-universal-rule{margin:12px 0 0;padding:20px 22px;border:1px solid #2f8063;border-radius:15px;background:#123128}.lesson-universal-rule strong{display:block;color:#64e2b2;font-size:1.05rem}.lesson-universal-rule p{margin:8px 0 0;color:#c5d8d1;line-height:1.6}.lesson-practice{padding:60px 0}.lesson-practice>small{color:#e3ad18;font-weight:900}.lesson-practice>h2{margin:8px 0;font-size:2rem}.lesson-practice>p{max-width:760px;color:#aeb2bb;line-height:1.6}.lesson-practice-grid{margin-top:28px;display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.lesson-practice-grid article{padding:25px;display:flex;flex-direction:column;border:1px solid #3b404a;border-radius:17px;background:#1a1d22}.lesson-practice-grid article>span{color:#e3ad18;font-size:.72rem;font-weight:900}.lesson-practice-grid h3{margin:8px 0;font-size:1.35rem}.lesson-practice-grid article>p{margin:0;color:#afb3bc;line-height:1.55}.practice-test{margin:18px 0;padding:15px;display:flex;flex-wrap:wrap;gap:8px;border-radius:12px;background:#101217}.practice-test strong,.practice-test b{width:100%}.practice-test code{padding:6px 9px;border-radius:7px;background:#292e37}.practice-test b{margin-top:5px;color:#61dfa9}.lesson-practice details{margin:0 0 18px;color:#aeb3bd}.lesson-practice summary{color:#f1c54a;cursor:pointer;font-weight:800}.lesson-practice details p{line-height:1.5}.lesson-practice .button{margin-top:auto}@media(max-width:700px){.lesson-practice-grid{grid-template-columns:1fr}}
.comparison-visual{min-width:260px;display:flex;align-items:center;justify-content:center;gap:22px}.comparison-visual b{display:grid;gap:8px;text-align:center}.comparison-visual em{width:72px;height:72px;display:grid;place-items:center;border-radius:18px;background:#293f61;color:#9dceff;font-size:1.5rem;font-style:normal}.comparison-visual b:last-child em{background:#5a331d;color:#ffc08c}.comparison-visual>span{color:#e3ad18;font-size:2rem;font-weight:900}.decision-explanation{display:grid;grid-template-columns:330px 1fr;gap:35px;align-items:center;margin-top:25px}.decision-demo{min-height:280px;display:grid;place-items:center;align-content:center;gap:18px;border:1px solid #3b4049;border-radius:18px;background:#171a20}.decision-demo .flow-decision{width:140px;height:140px;padding:30px;display:grid;place-items:center;transform:rotate(45deg);border:2px solid #d27c1f;background:#58330e;text-align:center;font-weight:900}.decision-demo .flow-decision::first-line{transform:rotate(-45deg)}.decision-demo .flow-decision{line-height:1.2}.decision-demo .flow-decision{color:#fff}.decision-demo span{padding:7px 12px;border-radius:999px;font-size:.78rem;font-weight:900}.answer-yes{background:#123d2e;color:#55e2aa}.answer-no{background:#481d24;color:#ff8b98}.decision-explanation ul{padding-left:20px;color:#b5bac3;line-height:1.9}.comparison-tests{margin:25px 0;display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.comparison-tests article{padding:20px;border:1px solid #3a3f49;border-radius:14px;background:#191c21}.comparison-tests strong,.comparison-tests b{display:block}.comparison-tests p{min-height:55px;color:#aeb3bd;line-height:1.6}.comparison-tests b{color:#5ce0aa}@media(max-width:800px){.decision-explanation{grid-template-columns:1fr}.comparison-tests{grid-template-columns:1fr}.comparison-visual{min-width:0}}
.decision-demo .flow-decision{transform:none;clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%);border:0;background:#7a460f}
.connection-methods{margin:24px 0;display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.connection-methods article{padding:18px;border:1px solid #3b414c;border-radius:14px;background:#191c22}.connection-methods b{color:#edc44e}.connection-methods p{margin:8px 0 0;color:#adb2bc;line-height:1.55}.connection-table{margin:18px 0 30px;overflow:hidden;border:1px solid #3d434e;border-radius:14px}.connection-table>div{padding:12px 15px;display:grid;grid-template-columns:1.2fr .65fr 1.5fr;gap:12px;border-bottom:1px solid #30353e;align-items:center}.connection-table>div:last-child{border-bottom:0}.connection-table>div:first-child{background:#272b33;color:#fff;font-size:.78rem}.connection-table span{color:#c3c7ce}.connection-table strong{padding:5px 8px;border-radius:7px;background:#303640;color:#fff;text-align:center;font-size:.8rem}.connection-table .yes-row strong{background:#13563e;color:#6de7b5}.connection-table .no-row strong{background:#642530;color:#ff9ca7}.connection-map{max-width:760px;margin:28px auto;padding:25px;display:grid;place-items:center;gap:10px;border:1px solid #3a404a;border-radius:18px;background:#12151a}.map-node{padding:10px 16px;border-radius:10px;background:#29303a;text-align:center;font-weight:800}.map-start,.map-end{border-radius:999px;background:#295d9d}.map-input{background:#087b9e}.map-question{background:#8a5015;clip-path:polygon(12% 0,88% 0,100% 50%,88% 100%,12% 100%,0 50%)}.map-output{background:#157350}.map-branches{width:100%;display:grid;grid-template-columns:1fr 1.2fr;gap:45px}.map-branches>section{display:grid;place-items:center;gap:9px}.map-branches>section>b,.map-subbranches b{color:#64e1ad}.map-branches>section+section>b,.map-subbranches span+span b{color:#ff8e9b}.map-subbranches{display:flex;gap:10px}.map-subbranches span{display:grid;place-items:center;gap:5px}.map-subbranches em{padding:9px 12px;border-radius:9px;background:#157350;font-style:normal;font-weight:800}@media(max-width:700px){.connection-methods{grid-template-columns:1fr}.connection-table>div{grid-template-columns:1fr}.connection-table>div:first-child{display:none}.map-branches{gap:12px}.map-subbranches{flex-direction:column}}
.minmax-visual{min-width:300px;display:flex;gap:14px}.minmax-visual>div{padding:18px;display:grid;gap:8px;border:1px solid #3b414b;border-radius:14px;background:#1b1f25;text-align:center}.minmax-visual small{color:#8e95a0;font-weight:900}.minmax-visual b{font-size:1.7rem}.minmax-visual>div:first-child b{color:#77bdff}.minmax-visual>div:last-child b{color:#ff9a68}.minmax-cases{margin:24px 0;display:grid;grid-template-columns:repeat(2,1fr);gap:15px}.minmax-cases article{padding:22px;border:1px solid #3b414b;border-radius:15px;background:#191c22}.minmax-cases article:first-child{border-color:#267555}.minmax-cases article:last-child{border-color:#81333e}.minmax-cases span{color:#e6b936;font-size:.72rem;font-weight:900}.minmax-cases h3{margin:8px 0}.minmax-cases p{margin:0;line-height:1.8}.merge-diagram{max-width:750px;margin:25px auto;padding:25px;display:grid;place-items:center;gap:13px;border:1px solid #3a404a;border-radius:18px;background:#12151a}.merge-paths{width:100%;display:grid;grid-template-columns:repeat(2,1fr);gap:25px}.merge-paths section{padding:15px;display:grid;gap:8px;border:1px solid #3c424c;border-radius:13px}.merge-paths section>b{color:#5ce0aa}.merge-paths section+section>b{color:#ff8e9b}.merge-paths span{padding:8px;border-radius:8px;background:#563d83;text-align:center}.merge-diagram>i{color:#e3ad18;font-style:normal;font-weight:800}@media(max-width:700px){.minmax-visual,.minmax-cases,.merge-paths{grid-template-columns:1fr;min-width:0}.minmax-visual{display:grid}}
.variable-boxes{margin:22px 0;display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.variable-boxes article{padding:16px;display:grid;gap:7px;border:1px solid #3b414b;border-radius:13px;background:#181b20}.variable-boxes b{color:#edbf3b;font-size:1.05rem}.variable-boxes span{color:#a9aeb8;font-size:.84rem}.detailed-editor-steps article{grid-template-columns:42px 88px 1fr}.step-example{margin-top:14px!important;padding:11px 13px;border-left:3px solid #e3ad18;background:#282315;color:#d5d0c2!important}.operation-pair{margin-top:14px;display:flex;gap:10px}.operation-pair span{flex:1;padding:12px;display:grid;gap:7px;border-radius:10px;background:#101217}.operation-pair b{color:#999faa;font-size:.72rem}.operation-pair code{color:#e9c24f}.connection-reasons{margin:24px 0;padding:0;display:grid;gap:12px;counter-reset:reason}.connection-reasons li{padding:17px 18px 17px 58px;position:relative;list-style:none;border:1px solid #3a404a;border-radius:13px;background:#191c21;counter-increment:reason}.connection-reasons li::before{content:counter(reason);width:31px;height:31px;position:absolute;left:15px;top:15px;display:grid;place-items:center;border-radius:9px;background:#364052;font-weight:900}.connection-reasons li b{color:#fff}.connection-reasons li p{margin:7px 0 0;color:#aeb3bd;line-height:1.55}.connection-reasons .reason-yes{border-color:#276f54}.connection-reasons .reason-yes::before{background:#176044;color:#7ce8bc}.connection-reasons .reason-no{border-color:#77313b}.connection-reasons .reason-no::before{background:#692834;color:#ff9eaa}@media(max-width:800px){.variable-boxes{grid-template-columns:repeat(2,1fr)}}@media(max-width:600px){.variable-boxes{grid-template-columns:1fr}.operation-pair{flex-direction:column}}
.lesson-deep-explanation{margin:0 0 44px;padding:24px;border:1px solid #4a4022;border-radius:17px;background:#211e15}.lesson-deep-explanation h3{margin:0 0 16px;color:#efc54b;font-size:1.3rem}.lesson-deep-explanation>p{color:#c0bcae;line-height:1.65}.explanation-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.explanation-grid article{padding:16px;border:1px solid #444137;border-radius:12px;background:#181a1e}.explanation-grid b{color:#fff}.explanation-grid p{margin:8px 0 0;color:#adb1b8;line-height:1.55}.value-journey{margin-top:16px;padding:16px;display:flex;flex-wrap:wrap;align-items:center;gap:9px;border-radius:12px;background:#111318}.value-journey strong{width:100%;margin-bottom:4px;color:#65dfad}.value-journey span{padding:8px 10px;border-radius:8px;background:#292d35}.value-journey i{color:#e3ad18;font-style:normal;font-weight:900}.child-reason-list{margin:16px 0 0;padding:0;display:grid;gap:10px}.child-reason-list li{padding:14px 16px;display:grid;grid-template-columns:minmax(180px,.8fr) 2fr;gap:15px;border-radius:11px;background:#17191e;list-style:none}.child-reason-list b{color:#fff}.child-reason-list span{color:#aeb3bd;line-height:1.5}@media(max-width:700px){.explanation-grid{grid-template-columns:1fr}.child-reason-list li{grid-template-columns:1fr}.value-journey{align-items:stretch;flex-direction:column}.value-journey i{transform:rotate(90deg);text-align:center}}
.divisibility-story{grid-template-columns:1fr 1fr}.division-piles{display:grid;gap:12px;text-align:center}.division-piles span{padding:14px;border:1px solid #385b50;border-radius:12px;background:#17372d;font-size:1.35rem;letter-spacing:4px}.modulo-examples{margin-top:24px;display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.modulo-examples article{padding:20px;display:grid;gap:8px;border:1px solid #3b414c;border-radius:13px;background:#191c21}.modulo-examples b{color:#61dfa9;font:800 1.15rem ui-monospace,monospace}.modulo-examples span{color:#abb1bb}@media(max-width:700px){.divisibility-story,.modulo-examples{grid-template-columns:1fr}}
.modulo-reading{margin:22px 0;padding:22px;display:grid;grid-template-columns:250px 1fr;gap:24px;align-items:center;border:1px solid #2f8063;border-radius:16px;background:#123128}.modulo-reading>div{display:grid;gap:10px;text-align:center}.modulo-reading strong{color:#68e4b4;font:900 1.35rem ui-monospace,monospace}.modulo-reading span{color:#c4d8d0}.modulo-reading ol{margin:0;padding-left:23px;color:#c4d8d0;line-height:1.7}.modulo-compare{margin:18px 0}.modulo-compare h3{font-size:1.1rem}@media(max-width:700px){.modulo-reading{grid-template-columns:1fr}}
.place-value{margin-top:24px;display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.place-value article{padding:24px;display:grid;gap:7px;text-align:center;border:1px solid #3b414c;border-radius:14px;background:#191c21}.place-value b{color:#66dfae;font-size:3rem}.place-value span{font-weight:900}.place-value small{color:#aeb3bd}.digit-tools{margin-top:24px;display:grid;grid-template-columns:1fr 1fr;gap:14px}.digit-tools article{padding:23px;border:1px solid #3c424c;border-radius:15px;background:#191c21}.digit-tools article>span{width:30px;height:30px;display:grid;place-items:center;border-radius:9px;background:#d82438;font-weight:900}.digit-tools h3{margin:12px 0 8px}.digit-tools strong{display:block;margin-top:13px;color:#65dfa9;font:900 1.15rem ui-monospace,monospace}.digit-peeling{margin:22px 0;padding:20px;display:flex;align-items:center;justify-content:center;gap:14px;border-radius:15px;background:#12151a}.digit-peeling div{padding:14px;display:grid;gap:5px;border:1px solid #3e4652;border-radius:11px;text-align:center}.digit-peeling b{font-size:1.5rem}.digit-peeling span{color:#abb2bd}.digit-peeling i{color:#e3b42c;font-style:normal;font-weight:900}.digit-trace-table{margin-top:24px;display:grid;border:1px solid #3a404a;border-radius:14px;overflow:hidden}.digit-trace-table>div{padding:13px 15px;display:grid;grid-template-columns:.8fr .5fr 1fr 1.7fr;gap:12px;background:#181b20}.digit-trace-table>div:nth-child(even){background:#20242b}.digit-trace-table>div:first-child{background:#302718;color:#f0c348}.digit-trace-table strong{color:#65dfaa}.digit-trace-table span{color:#b5bac3}@media(max-width:700px){.place-value,.digit-tools{grid-template-columns:1fr}.digit-peeling{align-items:stretch;flex-direction:column}.digit-peeling i{text-align:center}.digit-trace-table>div{grid-template-columns:1fr}.digit-trace-table>div:first-child{display:none}}
.unknown-digits{margin:22px 0;display:flex;flex-wrap:wrap;gap:10px}.unknown-digits span{padding:11px 15px;border:1px solid #3b424d;border-radius:10px;background:#191c21;color:#68dfaf;font:900 1.1rem ui-monospace,monospace}.loop-variable-cards{margin-top:24px;display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.loop-variable-cards article{padding:20px;display:grid;grid-template-columns:60px 1fr;gap:4px 14px;align-items:center;border:1px solid #3c424c;border-radius:14px;background:#191c21}.loop-variable-cards b{grid-row:1/3;color:#69e1b0;font:900 1.4rem ui-monospace,monospace}.loop-variable-cards span{font-weight:800}.loop-variable-cards small{color:#aeb4be}.loop-cycle{margin:24px 0;padding:20px;display:flex;align-items:center;gap:9px;border-radius:15px;background:#12151a}.loop-cycle div{min-width:0;padding:14px;display:grid;gap:6px;border:1px solid #3d444f;border-radius:11px}.loop-cycle div b{color:#e9b72c}.loop-cycle div span{font:800 .88rem ui-monospace,monospace}.loop-cycle div small{color:#aeb4bd}.loop-cycle>i{color:#e4b52f;font-style:normal;font-weight:900}.loop-operation-list{margin-top:14px;display:grid;gap:8px}.loop-operation-list code{padding:10px 12px;border-radius:8px;background:#101318;color:#68dfae}.loop-map{margin-top:24px;padding:24px;display:grid;gap:13px;border:1px solid #3d444f;border-radius:16px;background:#15181d;text-align:center}.loop-map>strong{padding:14px;border-radius:10px;background:#5d4520}.loop-map>div{display:grid;grid-template-columns:1fr 1fr;gap:15px}.loop-map section{padding:16px;display:grid;gap:8px;border:1px solid #39414c;border-radius:12px}.loop-map em{color:#efc248;font-style:normal;font-weight:900}.loop-map section:first-child em{color:#64dfa9}.loop-map section b{color:#65dfa9}.loop-trace-table{margin-top:24px;border:1px solid #3b424d;border-radius:14px;overflow:hidden}.loop-trace-table>div{padding:13px 15px;display:grid;grid-template-columns:repeat(5,1fr);gap:10px;background:#191c21}.loop-trace-table>div:nth-child(even){background:#22262d}.loop-trace-table>div:first-child{background:#302718;color:#f0c348}.loop-trace-table strong{color:#65dfa9}.zero-case{margin-top:20px;padding:20px;display:grid;grid-template-columns:180px 1fr;gap:12px;border:1px solid #604d1f;border-radius:14px;background:#292311}.zero-case b{color:#f0c448}.zero-case span{color:#c4c0b3}@media(max-width:750px){.loop-variable-cards,.loop-map>div{grid-template-columns:1fr}.loop-cycle{align-items:stretch;flex-direction:column}.loop-cycle>i{text-align:center}.loop-trace-table>div{grid-template-columns:1fr 1fr}.loop-trace-table>div:first-child{display:none}.zero-case{grid-template-columns:1fr}}
.linear-search-demo,.index-demo{margin:24px 0;display:grid;grid-template-columns:repeat(5,1fr);gap:9px}.linear-search-demo>div,.index-demo>div{padding:15px 8px;display:grid;gap:7px;text-align:center;border:1px solid #3c434e;border-radius:12px;background:#191c21}.linear-search-demo b,.index-demo b{font-size:1.55rem}.linear-search-demo small,.index-demo small,.linear-search-demo span,.index-demo span{color:#aeb4bd;font-size:.75rem}.linear-search-demo .is-found{border-color:#36b988;background:#143b2e}.linear-search-demo .is-found b,.linear-search-demo .is-found span{color:#6be1b3}.index-demo{grid-template-columns:repeat(4,1fr)}.search-tools{display:grid;grid-template-columns:1fr 1fr;gap:12px}.search-tools article{padding:20px;border:1px solid #3c434e;border-radius:13px;background:#191c21}.search-tools b{color:#67dfaf;font:900 1.1rem ui-monospace,monospace}.search-tools p{margin-bottom:0}.linear-flow-map{margin-top:22px;padding:24px;display:grid;gap:14px;border:1px solid #3c434e;border-radius:15px;background:#15181d;text-align:center}.linear-flow-map>strong{padding:14px;border-radius:10px;background:#5d4520}.linear-flow-map>div{display:grid;grid-template-columns:1.4fr 1fr;gap:14px}.linear-flow-map section{padding:17px;display:grid;gap:9px;border:1px solid #3c434e;border-radius:12px}.linear-flow-map em{color:#69dfb0;font-style:normal;font-weight:900}.linear-flow-map section+section em{color:#f0c34b}.linear-flow-map small{color:#aeb4bd}@media(max-width:700px){.linear-search-demo,.index-demo{grid-template-columns:repeat(2,1fr)}.search-tools,.linear-flow-map>div{grid-template-columns:1fr}}
.lesson-block-primer{margin:18px 0 38px;padding:30px;border:1px solid #4d4121;border-radius:18px;background:linear-gradient(135deg,#272116,#181a1e)}.lesson-block-primer>small{color:#efc348;font-weight:900;letter-spacing:.08em}.lesson-block-primer>h2{margin:9px 0 10px;font-size:1.8rem}.lesson-block-primer>p{max-width:790px;color:#bcc0c7;line-height:1.65}.lesson-block-primer>div{margin-top:22px;display:grid;grid-template-columns:repeat(2,1fr);gap:11px}.lesson-block-primer article{padding:17px;display:grid;grid-template-columns:36px 1fr;gap:13px;border:1px solid #3d424c;border-radius:12px;background:#15181d}.lesson-block-primer article>span{width:32px;height:32px;display:grid;place-items:center;border-radius:9px;background:#d82438;font-weight:900}.lesson-block-primer h3{margin:3px 0 7px;font-size:1rem;color:#fff}.lesson-block-primer article p{margin:0;color:#acb2bc;line-height:1.55;font-size:.9rem}@media(max-width:700px){.lesson-block-primer{padding:22px 17px}.lesson-block-primer>div{grid-template-columns:1fr}}
.gcd-groups{margin:22px 0;display:grid;grid-template-columns:1fr 1fr;gap:12px}.gcd-groups article{padding:21px;display:grid;gap:7px;border:1px solid #3c434d;border-radius:13px;background:#191c21;text-align:center}.gcd-groups b{color:#68e0af;font-size:1.3rem}.gcd-groups span{color:#aeb4bd}.euclid-steps{margin:24px 0;display:flex;align-items:center;gap:12px}.euclid-steps>div{flex:1;padding:20px;display:grid;gap:7px;border:1px solid #3c434d;border-radius:13px;background:#191c21;text-align:center}.euclid-steps>i{color:#e8b933;font-style:normal;font-weight:900}.euclid-steps span{color:#aeb4bd}.euclid-steps code{color:#69dfaf}.euclid-steps .is-result{border-color:#39b889;background:#143b2e}.euclid-map{margin-top:22px;padding:24px;display:grid;gap:14px;border:1px solid #3c434e;border-radius:15px;background:#15181d;text-align:center}.euclid-map>strong{padding:14px;border-radius:10px;background:#5d4520}.euclid-map>div{display:grid;grid-template-columns:1.4fr 1fr;gap:14px}.euclid-map section{padding:17px;display:grid;gap:9px;border:1px solid #3c434e;border-radius:12px}.euclid-map em{color:#69dfb0;font-style:normal;font-weight:900}.euclid-map section+section em{color:#f0c34b}.euclid-map small{color:#aeb4bd}.gcd-trace{margin-top:24px;border:1px solid #3c434d;border-radius:14px;overflow:hidden}.gcd-trace>div{padding:13px 15px;display:grid;grid-template-columns:.6fr .6fr .6fr 1.8fr;gap:12px;background:#191c21}.gcd-trace>div:nth-child(even){background:#22262d}.gcd-trace>div:first-child{background:#302718;color:#f0c348}.gcd-trace strong{color:#68dfaf}.gcd-trace .is-result{background:#143b2e}@media(max-width:700px){.gcd-groups,.euclid-map>div{grid-template-columns:1fr}.euclid-steps{align-items:stretch;flex-direction:column}.euclid-steps>i{transform:rotate(90deg);text-align:center}.gcd-trace>div{grid-template-columns:1fr 1fr}.gcd-trace>div:first-child{display:none}}
.selection-round{margin:24px 0;padding:22px;display:grid;gap:14px;border-radius:15px;background:#15181d;text-align:center}.selection-round>div{display:flex;justify-content:center;gap:9px}.selection-round span,.selection-passes span{min-width:48px;padding:12px;display:grid;place-items:center;border:1px solid #414853;border-radius:10px;background:#22262c;font-weight:900}.selection-round .is-min{border-color:#e3b52e;background:#4a3a12;color:#ffe075}.selection-round .is-sorted,.selection-passes .done{border-color:#35b786;background:#143b2e;color:#69e1b0}.selection-round i{color:#e7ba38;font-style:normal;font-weight:800}.selection-variables{margin:22px 0;display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.selection-variables article{padding:20px;display:grid;gap:7px;border:1px solid #3c434d;border-radius:13px;background:#191c21}.selection-variables b{color:#68dfaf;font:900 1.5rem ui-monospace,monospace}.selection-variables span{font-weight:800}.selection-variables small{color:#aeb4bd}.selection-round-steps{margin:22px 0;padding:0;display:grid;gap:9px;list-style:none}.selection-round-steps li{padding:16px;display:grid;grid-template-columns:260px 1fr;gap:15px;border:1px solid #3b424c;border-radius:11px;background:#191c21}.selection-round-steps b{color:#68dfaf;font-family:ui-monospace,monospace}.selection-round-steps span{color:#b0b5be}.selection-passes{margin:22px 0;display:grid;gap:9px}.selection-passes>div{padding:10px;display:grid;grid-template-columns:90px repeat(5,1fr);gap:8px;align-items:center;border-radius:11px;background:#181b20}.selection-passes>div>b{color:#efc44b}@media(max-width:700px){.selection-variables{grid-template-columns:1fr}.selection-round-steps li{grid-template-columns:1fr}.selection-passes{overflow-x:auto}.selection-passes>div{min-width:520px}}
.lesson-project-callout form{display:inline-flex}.algorithm-challenge-banner{display:flex;align-items:center;justify-content:space-between;gap:28px;margin:0 0 18px;padding:22px 26px;border:1px solid #454047;border-radius:20px;background:linear-gradient(110deg,#2b171b,#211f23)}.algorithm-challenge-banner>div{display:grid;justify-items:start}.algorithm-back-to-lesson{display:inline-flex;margin:0 0 14px;padding:8px 12px;border:1px solid #5a555c;border-radius:10px;color:#fff;font-size:13px;font-weight:850;text-decoration:none;background:#2c292d}.algorithm-back-to-lesson:hover{border-color:#dc2033;background:#3b2428}.algorithm-challenge-banner small{color:#ff8e98;font-weight:900}.algorithm-challenge-banner h2{margin:6px 0}.algorithm-challenge-banner p{margin:0;color:#bbb}.algorithm-challenge-banner ol{display:flex;gap:8px;margin:0;padding:0;list-style:none}.algorithm-challenge-banner li{padding:9px 12px;border-radius:999px;background:#302d31;color:#ddd;font-size:13px;font-weight:800}.algorithm-block-mode{grid-template-columns:minmax(0,1.6fr) minmax(300px,.65fr)}.algorithm-test-panel{display:grid;gap:18px;padding:24px}.algorithm-test-example{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:18px;border-radius:16px;background:#171719}.algorithm-test-example span{padding:10px;border-radius:9px;background:#262429;text-align:center;font-weight:800}.algorithm-test-example strong{grid-column:1/-1;color:#f2c52a;text-align:center}.algorithm-test-results{display:grid;gap:10px}.algorithm-test-results>div:not(.algorithm-points-earned){display:flex;gap:12px;align-items:center;padding:12px;border:1px solid #414047;border-radius:12px}.algorithm-test-results .is-pass{border-color:#287d5b;background:#17352b}.algorithm-test-results .is-fail{border-color:#a13d49;background:#3b2025}.algorithm-test-results>div>span{font-size:22px;font-weight:900}.algorithm-test-results p{margin:0}.algorithm-test-results p strong{display:block;margin-top:3px}.algorithm-score-note{padding:14px;border-radius:12px;background:#302819;color:#eadca7}.algorithm-points-earned{display:flex;align-items:center;justify-content:space-between;padding:18px;border-radius:14px;background:linear-gradient(100deg,#8c6311,#c18f18);color:#fff}.algorithm-points-earned b{font-size:22px}.algorithm-test-hint{padding:12px;border-radius:10px;background:#302819;color:#eadca7}@media(max-width:900px){.algorithm-challenge-banner{align-items:flex-start;flex-direction:column}.algorithm-challenge-banner ol{flex-wrap:wrap}.algorithm-block-mode{grid-template-columns:1fr}}
.lesson-points-badge{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:12px 0 16px;padding:12px 14px;border:1px solid #705b24;border-radius:14px;background:#302819;color:#f1d77a;font-size:14px}.lesson-points-badge small{flex-basis:100%;color:#c7b77e}.algorithm-points-earned.is-completed{background:linear-gradient(100deg,#315344,#267053)}
.lesson-simple-intro{margin:0 0 22px;padding:22px 26px;border:1px solid #47434a;border-radius:18px;background:linear-gradient(110deg,#211f23,#181719)}.lesson-simple-intro small{color:#ff8e98;font-weight:900}.lesson-simple-intro h2{margin:7px 0 8px}.lesson-simple-intro p{max-width:850px;margin:0;color:#d1ced2;font-size:17px;line-height:1.65}
.algorithm-challenge-bar{display:flex;align-items:center;gap:14px;position:fixed;z-index:30;right:24px;bottom:20px;max-width:min(760px,calc(100vw - 48px));padding:14px 16px;border:1px solid #4a4532;border-radius:16px;background:#211f18;box-shadow:0 14px 40px #0009}.algorithm-challenge-bar div{display:grid;gap:3px}.algorithm-challenge-bar div span,.algorithm-challenge-bar p{color:#c8c5bc;font-size:13px}.algorithm-challenge-bar p{margin:0}.algorithm-challenge-bar .button{white-space:nowrap}@media(max-width:760px){.algorithm-challenge-bar{left:12px;right:12px;bottom:12px;flex-wrap:wrap}.algorithm-challenge-bar div{width:100%}}
.algorithm-workspace{overflow:hidden}.algorithm-canvas{width:100%;overflow:auto}.algorithm-stage{width:1450px;height:930px;position:relative;transform-origin:top left}.algorithm-panel-head{position:relative;z-index:4;background:#191b20}.algorithm-challenge-bar{position:static;right:auto;bottom:auto;width:min(1600px,calc(100% - 28px));max-width:none;margin:0 auto 24px;box-shadow:0 14px 40px #0005}.algorithm-speed{display:grid;gap:3px}.algorithm-speed span{font-size:.7rem;color:#aaaeb8}.algorithm-speed select{padding:6px 8px;border:1px solid #4a4e58;border-radius:7px;background:#111319;color:#fff}
.algorithm-challenge-guide{width:min(1600px,calc(100% - 28px));margin:-28px auto 110px;padding:22px;border:1px solid #3d3860;border-radius:18px;background:#19172a;color:#f7f7fb}.algorithm-challenge-guide>div:first-child small{color:#a99bff;font-weight:900}.algorithm-challenge-guide h2{margin:5px 0}.algorithm-challenge-guide>div:first-child p{margin:0;color:#b9b6c8}.algorithm-challenge-guide-grid{margin-top:18px;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.algorithm-challenge-guide article{padding:14px;border:1px solid #46405f;border-radius:13px;background:#222034}.algorithm-challenge-guide article strong{color:#d8d1ff}.algorithm-challenge-guide article p{margin:7px 0 0;color:#c4c1ce;font-size:.82rem;line-height:1.5}@media(max-width:1050px){.algorithm-challenge-guide-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:620px){.algorithm-challenge-guide-grid{grid-template-columns:1fr}}
.project-editor-tabs{display:flex;gap:6px;width:max-content;margin:0 0 14px;padding:5px;border:1px solid var(--line);border-radius:14px;background:#171719}.project-editor-tabs button{padding:10px 18px;border:0;border-radius:10px;background:transparent;color:var(--muted);font-weight:850;cursor:pointer}.project-editor-tabs button small{margin-left:6px;color:#777}.project-editor-tabs button.is-active{background:var(--red);color:#fff;box-shadow:0 5px 18px #dc203344}.project-editor-tabs button.is-active small{color:#ffd5da}.python-editor-panel{min-height:650px;border:1px solid var(--line);border-radius:18px;background:var(--panel);overflow:hidden}.python-editor-heading{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:20px 22px;border-bottom:1px solid var(--line)}.python-editor-heading h2{margin:4px 0}.python-editor-heading p{margin:0;color:var(--muted)}.python-editor-heading span{padding:7px 11px;border-radius:8px;background:#111;color:#f0c94d;font-family:ui-monospace,monospace}.python-editor-frame{display:grid;grid-template-columns:auto 1fr;min-height:510px;background:#111216}.python-line-label{min-width:52px;padding:18px 12px;text-align:right;border-right:1px solid #303138;color:#666;font:15px/1.65 ui-monospace,SFMono-Regular,Menlo,monospace;white-space:pre;user-select:none}.python-editor-frame textarea{width:100%;min-height:510px;resize:vertical;padding:18px;border:0;outline:0;background:#111216;color:#e7e7e9;font:15px/1.65 ui-monospace,SFMono-Regular,Menlo,monospace;tab-size:4}.python-editor-note{margin:0;padding:13px 20px;border-top:1px solid var(--line);color:var(--muted);font-size:13px}@media(max-width:760px){.project-editor-tabs{width:100%}.project-editor-tabs button{flex:1}.python-editor-heading{align-items:flex-start;flex-direction:column}}
.python-runner{padding:20px;display:grid;grid-template-columns:minmax(240px,.7fr) minmax(320px,1.3fr);gap:16px;border-top:1px solid var(--line);background:#18181b}.python-runner-input,.python-runner-result{padding:16px;border:1px solid #393940;border-radius:14px;background:#121216}.python-runner-input label,.python-runner-toolbar strong{display:block;color:#fff;font-weight:900}.python-runner-input p{margin:6px 0 12px;color:var(--muted);font-size:13px;line-height:1.45}.python-runner-input .python-input-counter{margin:0 0 8px;padding:7px 9px;border-radius:8px;background:#183b2e;color:#8be1bd;font-weight:800}.python-runner-input .python-input-counter.is-warning{background:#493614;color:#ffd778}.python-runner-input textarea{width:100%;resize:vertical;padding:12px;border:1px solid #3c3c44;border-radius:10px;background:#0d0d10;color:#fff;font:14px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace}.python-runner-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.python-runner-toolbar>div{display:flex;gap:8px}.python-runner pre{min-height:112px;max-height:280px;margin:0;padding:14px;overflow:auto;border:1px solid #303038;border-radius:10px;background:#09090b;color:#e7e7e9;font:14px/1.55 ui-monospace,SFMono-Regular,Menlo,monospace;white-space:pre-wrap;word-break:break-word}.python-runner pre.is-success{border-color:#277b59;color:#72e4b6}.python-runner pre.is-error{border-color:#963845;color:#ff9ca7}.python-safety-note{grid-column:1/-1;margin:0;padding:12px 14px;border-radius:11px;background:#202a27;color:#acd1c3;font-size:13px;line-height:1.5}@media(max-width:800px){.python-runner{grid-template-columns:1fr}.python-runner-toolbar{align-items:flex-start;flex-direction:column}.python-safety-note{grid-column:auto}}
.python-learning-layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;align-items:start}.python-main-column{min-width:0;border-right:1px solid var(--line)}.python-help{position:sticky;top:0;max-height:calc(100vh - 30px);overflow:auto;background:#1c1c20}.python-help-heading{position:sticky;z-index:2;top:0;padding:18px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid #3a3a40;background:#1c1c20}.python-help-heading small{color:#f0c94d;font-weight:900;font-size:10px;letter-spacing:.08em}.python-help-heading h2{margin:4px 0 0;font-size:1.15rem}.python-help-heading button{width:32px;height:32px;border:1px solid #45454d;border-radius:9px;background:#29292f;color:#fff;font-size:19px;cursor:pointer}.python-help-body{padding:16px}.python-help-body>label{display:block;margin-bottom:7px;color:#ddd;font-size:13px;font-weight:850}.python-help-body>input{width:100%;padding:11px 12px;border:1px solid #44444d;border-radius:10px;background:#111115;color:#fff}.python-help-filters{margin:12px 0;display:flex;gap:6px;overflow-x:auto;padding-bottom:4px}.python-help-filters button{padding:7px 10px;border:1px solid #42424a;border-radius:999px;background:#25252a;color:#bbb;white-space:nowrap;cursor:pointer}.python-help-filters button.is-active{border-color:#dc2033;background:#dc2033;color:#fff}.python-help-list{display:grid;gap:11px}.python-help-card{padding:14px;border:1px solid #3b3b43;border-radius:13px;background:#151519}.python-help-card>span{color:#f0c94d;font-size:10px;font-weight:900;text-transform:uppercase}.python-help-card h3{margin:5px 0 7px;font-size:1rem}.python-help-card p{margin:0 0 10px;color:#b7b7bf;font-size:13px;line-height:1.45}.python-help-card code{display:block;max-height:120px;padding:10px;overflow:auto;border-radius:8px;background:#09090c;color:#7fe4b8;font:12px/1.45 ui-monospace,SFMono-Regular,Menlo,monospace;white-space:pre}.python-help-card button{width:100%;margin-top:10px;padding:8px;border:1px solid #565660;border-radius:8px;background:#28282e;color:#fff;font-weight:800;cursor:pointer}.python-help-card button:hover{border-color:#dc2033;background:#3a2226}.python-help-empty{padding:16px;border-radius:10px;background:#29251b;color:#e5cc82;font-size:13px}.python-help.is-collapsed{max-height:none}.python-help.is-collapsed .python-help-body{display:none}@media(max-width:1100px){.python-learning-layout{grid-template-columns:1fr}.python-main-column{border-right:0}.python-help{position:static;max-height:none;border-top:1px solid var(--line)}}
.lesson-editor-shortcut{margin-top:28px;border-color:#705b24;background:linear-gradient(110deg,#302819,#211f1a)}.lesson-editor-shortcut>div{display:grid;gap:5px}.lesson-editor-shortcut small{color:#f0c94d;font-weight:900;letter-spacing:.05em}.lesson-editor-shortcut p{margin:0}.lesson-editor-shortcut .button{white-space:nowrap}@media(max-width:650px){.lesson-editor-shortcut{align-items:flex-start;flex-direction:column}.lesson-editor-shortcut .button{width:100%;text-align:center}}
.python-scored-tests{grid-column:1/-1;padding:16px;display:grid;grid-template-columns:1fr auto;gap:14px;align-items:center;border:1px solid #705b24;border-radius:14px;background:#302819}.python-scored-tests small{display:block;color:#f0c94d;font-weight:900}.python-scored-tests strong{display:block;margin-top:4px}.python-scored-tests p{margin:4px 0 0;color:#c9c0a1;font-size:13px}.python-scored-tests>[data-python-test-results]{grid-column:1/-1;display:grid;gap:8px}.python-scored-tests>[data-python-test-results]>div:not(.algorithm-points-earned){padding:10px 12px;display:flex;gap:10px;border:1px solid #4b4650;border-radius:10px}.python-scored-tests .is-pass{border-color:#277b59!important;background:#17352b}.python-scored-tests .is-fail{border-color:#963845!important;background:#3b2025}.python-scored-tests span{display:grid}.python-scored-tests span strong{font-size:13px}@media(max-width:700px){.python-scored-tests{grid-template-columns:1fr}.python-scored-tests .button{width:100%}}
.algorithm-block-help{margin:0 0 18px;padding:18px;border:1px solid #34343a;border-radius:16px;background:#1d1d20}.algorithm-block-help>div:first-child small{color:#f1bd20;font-weight:800}.algorithm-block-help h2{margin:5px 0 14px}.algorithm-block-help>div:last-child{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.algorithm-block-help article{padding:14px;border:1px solid #3a3a40;border-radius:12px;background:#242428}.algorithm-block-help article strong{color:#fff}.algorithm-block-help article p{margin:6px 0 0;color:#b9b9bf;line-height:1.45}@media(max-width:800px){.algorithm-block-help>div:last-child{grid-template-columns:1fr}}
.dashboard-greeting{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.ranking-points{display:inline-flex;align-items:center;gap:5px;padding:7px 12px;border:1px solid #725b20;border-radius:999px;background:#332a14;color:#f1c842;font-size:.85rem;font-weight:850;white-space:nowrap}.ranking-points b{font-size:1.05rem;color:#ffd85b}
.ranking-main{max-width:1250px}.ranking-header{display:flex;align-items:flex-start;justify-content:space-between;gap:28px}.ranking-header h1{margin:12px 0 8px;font-size:clamp(2.2rem,5vw,3.5rem);letter-spacing:-.04em}.ranking-header p{max-width:700px;margin:0;color:var(--muted);font-size:1.05rem;line-height:1.55}.ranking-podium{margin-top:42px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;align-items:end}.ranking-podium article{min-height:210px;padding:26px;display:grid;justify-items:center;align-content:center;text-align:center;border:1px solid var(--line);border-radius:20px;background:linear-gradient(145deg,#242428,#19191c)}.ranking-podium .podium-1{min-height:245px;order:2;border-color:#866b20;background:radial-gradient(circle at top,#544315,#242018 60%)}.ranking-podium .podium-2{order:1}.ranking-podium .podium-3{order:3}.podium-medal{font-size:2.5rem}.ranking-podium small{margin-top:10px;color:#aaa;font-weight:900}.ranking-podium h2{margin:7px 0 11px;font-size:1.35rem}.ranking-podium strong{color:#ffd34c;font-size:2rem}.ranking-podium em{font-size:.85rem;font-style:normal}.ranking-board{margin-top:28px;padding:24px;border:1px solid var(--line);border-radius:20px;background:var(--panel)}.ranking-board-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:20px}.ranking-board-heading h2{margin:0;font-size:1.55rem}.ranking-board-heading p{margin:5px 0 0;color:var(--muted)}.ranking-board-heading>span{padding:7px 11px;border-radius:999px;background:#2c2c31;color:#bbb;font-size:.8rem;font-weight:800}.ranking-table-wrap{overflow:auto;border:1px solid #36363b;border-radius:14px}.ranking-table{background:#171719}.ranking-table th{color:#aaa;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em}.ranking-table td{height:70px}.ranking-table td:nth-child(3){color:#aaa}.ranking-table td:last-child{text-align:right}.ranking-table td:last-child b{color:#ffd34c;font-size:1.05rem}.ranking-table th:last-child{text-align:right}.ranking-table tr:last-child td{border-bottom:0}.ranking-table tr.is-current-user{background:#382a16}.ranking-table td:nth-child(2) small{display:inline-block;margin-left:9px;padding:4px 7px;border-radius:999px;background:#dc2033;color:#fff;font-size:.65rem;font-weight:900}.ranking-position{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:#2c2c31;font-weight:900}.ranking-table .ranking-place-1 .ranking-position{background:#7a5d0b;color:#ffe688}.ranking-table .ranking-place-2 .ranking-position{background:#4b4b51;color:#eee}.ranking-table .ranking-place-3 .ranking-position{background:#623d23;color:#ffc49d}.ranking-empty{padding:50px 20px;text-align:center}.ranking-empty>span{font-size:2.5rem}.ranking-empty h3{margin:10px 0 5px}.ranking-empty p{margin:0;color:var(--muted)}@media(max-width:800px){.ranking-header{display:grid}.ranking-header .button{width:100%}.ranking-podium{grid-template-columns:1fr}.ranking-podium .podium-1,.ranking-podium .podium-2,.ranking-podium .podium-3{min-height:180px;order:initial}.ranking-board{padding:15px}.ranking-table th:nth-child(3),.ranking-table td:nth-child(3){display:none}}

.blockly-workspace{overscroll-behavior:contain;touch-action:none}.blocklyWidgetDiv input,.blocklyWidgetDiv textarea{touch-action:auto}

/* Wspólne ćwiczenie kończące poradnik */
.tutorial-validated-exercise{margin-top:34px;padding:26px;border:1px solid #4d4d55;border-radius:20px;background:linear-gradient(145deg,#202024,#18181b);box-shadow:0 18px 45px #0004}.tutorial-exercise-score{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:12px}.tutorial-exercise-score span{color:#e3bd39;font-size:.75rem;font-weight:900;letter-spacing:.08em}.tutorial-exercise-score strong{padding:7px 11px;border-radius:999px;background:#263e31;color:#71e5a2}.tutorial-validated-exercise h2{margin:0 0 10px}.tutorial-exercise-task{font-size:1.05rem;color:#f3f3f4}.tutorial-validated-exercise ol{padding-left:22px;color:var(--muted);line-height:1.65}.tutorial-validated-exercise label{display:grid;gap:8px;margin-top:18px}.tutorial-validated-exercise label>span{font-weight:800}.tutorial-validated-exercise textarea{width:100%;box-sizing:border-box;padding:14px;border:1px solid #4b4b52;border-radius:12px;background:#101012;color:#f4f4f5;font:14px/1.55 ui-monospace,SFMono-Regular,Menlo,monospace;resize:vertical}.tutorial-validated-exercise textarea:focus{outline:2px solid #d51e32;outline-offset:2px}.tutorial-exercise-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:14px}.tutorial-exercise-actions span{color:var(--muted);font-size:.88rem}.tutorial-exercise-result{min-height:24px;margin:14px 0 0;font-weight:750}.tutorial-exercise-result.is-good{color:#71e5a2}.tutorial-exercise-result.is-bad{color:#ff919c}@media(max-width:640px){.tutorial-validated-exercise{padding:20px}.tutorial-exercise-score{align-items:flex-start}.tutorial-exercise-actions .button{width:100%}}
.algorithm-test-example[hidden],.game-challenge-mode .project-editor-tabs{display:none!important}
.game-challenge-mode .block-preview-panel{overflow-y:auto}.game-challenge-mode .block-preview-panel iframe{min-height:360px;flex:0 0 360px}.game-challenge-mode .algorithm-test-panel{flex:0 0 auto}

/* Punktacja opublikowanych gier */
.project-score-chip{margin-top:12px;padding:9px 11px;display:flex;align-items:center;gap:7px;border:1px solid #5f5224;border-radius:11px;background:#2d2819;color:#f1cb4c}.project-score-chip span{font-size:1rem}.project-score-chip b{font-size:.84rem}.project-score-chip small{margin-left:auto;color:#afa681;font-size:.7rem}.project-score-chip.compact{width:max-content;margin:8px 0}.new-project-points-note{padding:13px 14px;display:grid;gap:4px;border:1px solid #625426;border-radius:12px;background:#2e2818}.new-project-points-note b{color:#f1cb4c}.new-project-points-note span{color:#c7bea0;font-size:.82rem;line-height:1.45}.project-score-panel{margin:0 0 22px;padding:22px;border:1px solid #4a4532;border-radius:19px;background:linear-gradient(135deg,#242219,#1d1d20)}.project-score-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.project-score-heading small{color:#e7bd35;font-weight:900;letter-spacing:.06em}.project-score-heading h2{margin:5px 0 4px;font-size:1.55rem}.project-score-heading p{margin:0;color:var(--muted)}.project-score-heading>strong{padding:9px 13px;border-radius:999px;background:#3b3218;color:#ffd75a;white-space:nowrap}.project-score-progress{height:9px;margin:17px 0;overflow:hidden;border-radius:999px;background:#303035}.project-score-progress i{height:100%;display:block;border-radius:inherit;background:linear-gradient(90deg,#d88d1a,#31c48d);transition:width .25s ease}.project-score-list{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.project-score-list>div{min-height:112px;padding:12px;display:grid;grid-template-columns:auto 1fr;gap:6px 9px;align-content:start;border:1px solid #39383d;border-radius:12px;background:#1a1a1d;color:#85858c}.project-score-list>div>span{width:23px;height:23px;display:grid;place-items:center;border-radius:50%;background:#29292e;font-weight:900}.project-score-list p{margin:0}.project-score-list b{display:block;color:#c1c1c5;font-size:.82rem}.project-score-list small{display:block;margin-top:4px;line-height:1.35}.project-score-list>div>strong{grid-column:2;color:#aaa;font-size:.78rem}.project-score-list .is-ready{border-color:#725b20;background:#2b2618}.project-score-list .is-ready>span{background:#6d5615;color:#ffd75a}.project-score-list .is-earned{border-color:#297656;background:#182d26;color:#aad4c5}.project-score-list .is-earned>span{background:#277a58;color:#fff}.project-score-list .is-earned b,.project-score-list .is-earned>strong{color:#70e2b4}.project-score-note{margin:15px 0 0;padding:12px;border-radius:10px;background:#302819;color:#e5cf88}.project-score-panel>form{margin-top:16px}@media(max-width:1000px){.project-score-list{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.project-score-heading{flex-direction:column}.project-score-list{grid-template-columns:1fr}}
.block-panel-title{height:auto;min-height:74px;flex:0 0 auto;flex-wrap:wrap;overflow:visible}.block-panel-title>div{min-width:0;flex:1 1 220px}.block-panel-title .button{position:relative;z-index:2;flex:0 0 auto;white-space:normal;text-align:center}.blocklyTreeLabel{color:#f5f5f6!important;text-shadow:0 1px 2px #000}.blocklyTreeSelected .blocklyTreeLabel{color:#fff!important}

/* WKP — objaśnienie odpowiedzi */
.wkp-result-wrap{width:min(780px,calc(100% - 32px));margin:6vh auto}.wkp-learning-step{margin:16px 0;padding:22px 24px;border:1px solid #344052;border-radius:17px;background:#111722;text-align:left}.wkp-learning-step small{color:#75e6b5;font-weight:900;letter-spacing:.08em}.wkp-learning-step h2{margin:7px 0 8px;font-size:1.22rem}.wkp-learning-step p{margin:0}.wkp-learning-step.is-choice{border-color:#64423d;background:#261a1a}.wkp-learning-step.is-choice small{color:#ffae9f}.wkp-learning-step.is-answer{border-color:#326353;background:#11241f}.wkp-memory{padding:14px 18px;border-left:4px solid #75e6b5;background:#111722;text-align:left}.wkp-memory b{color:#fff}

/* Blockly 12: czytelna paleta i poprawne ukrywanie zakładek edytora. */
.blocklyToolboxDiv,.blocklyToolbox{background:#15171c!important}
.blocklyTreeRow,.blocklyToolboxCategory{min-height:40px!important;padding:7px 10px!important;box-sizing:border-box}
.blocklyTreeLabel,.blocklyToolboxCategoryLabel{color:#f5f5f6!important;font-family:system-ui,sans-serif!important;font-size:14px!important;font-weight:700!important;text-shadow:0 1px 2px #000}
.blocklyToolboxSelected .blocklyToolboxCategoryLabel{color:#fff!important}
.block-editor-grid[hidden],.python-editor-panel[hidden]{display:none!important}
.wkp-learning-step p,.wkp-visual-result p{white-space:pre-line}
.student-state-legend{margin-top:16px;display:flex;align-items:center;flex-wrap:wrap;gap:8px}.student-state-legend>span:last-child{margin-left:5px;color:#8f8f96;font-size:.82rem}.teacher-matrix-subtitle{margin:0;padding:18px 20px 12px;border-top:1px solid var(--line);background:#19191c;color:#d7d7db;font-size:1rem}.teacher-student-section>.teacher-matrix-subtitle:first-of-type{border-top:0}
.teacher-code-title{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 10px 8px 14px;border:1px solid #37373d;border-bottom:0;border-radius:12px 12px 0 0;background:#242428}.teacher-code-files .teacher-code-title h3{padding:0;border:0;background:transparent}.teacher-lab-shell{width:min(1700px,calc(100% - 28px))}.teacher-lab-head small,.teacher-lab-page .editor-head small{display:block;margin:0 0 7px;color:#f4c52c;font-weight:900;letter-spacing:.08em}.teacher-lab-actions{position:sticky;top:0;z-index:10;margin-bottom:12px;padding:10px;display:flex;align-items:center;flex-wrap:wrap;gap:9px;border:1px solid #3a3a40;border-radius:13px;background:#17171aee;backdrop-filter:blur(12px)}.teacher-lab-actions>span{margin-left:auto;color:#7fd8af;font-size:.82rem}.teacher-lab-grid{display:grid;grid-template-columns:minmax(420px,1fr) minmax(420px,1fr);gap:14px}.teacher-lab-editors{display:grid;gap:14px}.teacher-lab-editors article{min-width:0}.teacher-lab-editors h2{margin:0;color:#facc15;font-size:1rem}.teacher-lab-editors textarea{display:block;width:100%;min-height:340px;padding:15px;resize:vertical;border:1px solid #475569;border-radius:0 0 12px 12px;background:#020617;color:#d1fae5;font:14px/1.55 ui-monospace,SFMono-Regular,Menlo,monospace;tab-size:2}.teacher-lab-preview{position:sticky;top:76px;height:max-content;padding:16px;border:1px solid var(--line);border-radius:16px;background:var(--panel)}.teacher-lab-preview>div>h2{margin:0}.teacher-lab-preview>div>p{margin:5px 0 13px;color:var(--muted)}.teacher-lab-preview .teacher-game-frame{height:560px}.teacher-lab-python{margin-top:14px}.teacher-lab-python label{display:grid;gap:7px}.teacher-lab-python textarea{min-height:90px;padding:12px;border:1px solid #475569;border-radius:10px;background:#0b0e14;color:#fff}.teacher-lab-python pre{min-height:110px;padding:14px;white-space:pre-wrap;border-radius:10px;background:#080b10}@media(max-width:950px){.teacher-lab-grid{grid-template-columns:1fr}.teacher-lab-preview{position:static}.teacher-lab-actions>span{width:100%;margin-left:0}}

/* Czytelny, nieedytowalny widok całej pracy wybranego ucznia. */
.teacher-student-link,.teacher-owner-link{display:block;width:max-content;margin-top:7px;color:#f4c52c;text-decoration:none;font-size:.78rem;font-weight:800}.teacher-owner-link{margin-top:0;font-size:inherit}.teacher-student-layout{min-height:100vh;display:grid;grid-template-columns:280px minmax(0,1fr);background:#101012}.teacher-student-sidebar{height:100vh;position:sticky;top:0;padding:28px 22px;display:flex;flex-direction:column;border-right:1px solid #333338;background:#19191c}.teacher-student-person{margin-top:32px;padding:16px;display:grid;grid-template-columns:44px 1fr;gap:3px 12px;border:1px solid #34343a;border-radius:14px;background:#222226}.teacher-student-person>span{grid-row:1/3;width:44px;height:44px;display:grid;place-items:center;border-radius:50%;background:linear-gradient(135deg,#e12d37,#dba91d);font-weight:900}.teacher-student-person small{min-width:0;overflow:hidden;text-overflow:ellipsis;color:#9999a0}.teacher-student-sidebar nav{margin-top:24px;display:grid;gap:6px}.teacher-student-sidebar nav a{padding:12px 14px;border-radius:10px;color:#b5b5bb;text-decoration:none;font-weight:750}.teacher-student-sidebar nav a:hover{background:#302126;color:#fff}.teacher-student-sidebar>p{margin-top:auto;color:#85858c;font-size:.78rem;line-height:1.5}.teacher-student-main{min-width:0;width:min(1320px,100%);padding:38px 44px 70px}.teacher-student-main>header{display:flex;justify-content:space-between;align-items:end;gap:25px}.teacher-student-main>header a{color:#aaaab1}.teacher-student-main>header small{display:block;margin-top:22px;color:#f4c52c;font-weight:900;letter-spacing:.09em}.teacher-student-main>header h1{margin:7px 0;font-size:2.5rem}.teacher-student-main>header p{margin:0;color:var(--muted)}.teacher-student-main>header>strong{padding:14px 18px;border-radius:13px;background:#32290d;color:#facc15;font-size:1.4rem}.teacher-student-section{margin-top:28px;scroll-margin-top:18px;border:1px solid var(--line);border-radius:18px;background:var(--panel)}.teacher-student-section-head{padding:20px;display:flex;align-items:center;gap:14px;border-bottom:1px solid var(--line)}.teacher-student-section-head>span{width:42px;height:42px;display:grid;place-items:center;border-radius:11px;background:#3a1b20;color:#ff8290;font-size:1.3rem}.teacher-student-section-head h2{margin:0 0 4px}.teacher-student-section-head p{margin:0;color:var(--muted)}.teacher-matrix{width:100%;border-collapse:collapse;background:#151518}.teacher-matrix th,.teacher-matrix td{padding:13px 15px;border-bottom:1px solid #303035;text-align:left;vertical-align:middle}.teacher-matrix th{position:sticky;top:0;background:#232327;color:#a8a8ae;font-size:.75rem;text-transform:uppercase}.teacher-matrix td:first-child{min-width:300px}.teacher-matrix td small{display:block;margin-top:4px;color:#85858b}.teacher-matrix td>a{color:#f4c52c;text-decoration:none;font-weight:800;white-space:nowrap}.student-state{display:inline-flex;min-width:92px;justify-content:center;padding:6px 9px;border-radius:999px;font-size:.72rem;font-weight:900}.student-state.done{background:#123f31;color:#65e0b4}.student-state.working{background:#4a390d;color:#f0c958}.student-empty{padding:30px!important;text-align:center!important;color:var(--muted)}@media(max-width:850px){.teacher-student-layout{grid-template-columns:1fr}.teacher-student-sidebar{height:auto;position:static}.teacher-student-sidebar nav{display:flex;overflow:auto}.teacher-student-sidebar nav a{flex:0 0 auto}.teacher-student-sidebar>p{margin-top:18px}.teacher-student-main{padding:28px 16px 60px}.teacher-student-main>header{align-items:start}.teacher-matrix td:first-child{min-width:240px}}

/* Panel nauczyciela: kolejka gier i trzy widoki projektu ucznia. */
.teacher-section-tabs{display:flex;gap:8px;margin-top:26px;padding:6px;overflow:auto;border:1px solid var(--line);border-radius:14px;background:#17171a}.teacher-section-tabs a{flex:0 0 auto;padding:10px 16px;border-radius:9px;color:#aaaab0;text-decoration:none;font-weight:800}.teacher-section-tabs a:hover{color:#fff;background:#26262b}.teacher-section-tabs a.active{color:#15100a;background:#f3bf2d}.teacher-section-tabs b{margin-left:5px;padding:2px 7px;border-radius:999px;background:#b91c1c;color:#fff;font-size:.72rem}.review-status{display:inline-flex;align-items:center;width:max-content;padding:6px 10px;border-radius:999px;background:#34343a;color:#d4d4d8;font-size:.75rem;font-weight:900}.review-status.published,.review-status.is-waiting{background:#4a330a;color:#facc15}.review-status.is-approved{background:#123f31;color:#65e0b4}.teacher-review-shell{width:min(1450px,calc(100% - 40px))}.teacher-review-head p{max-width:800px;color:var(--muted)}.teacher-review-tabs{display:flex;gap:8px;margin-top:24px;padding:6px;border:1px solid var(--line);border-radius:14px;background:#17171a}.teacher-review-tabs button{padding:11px 17px;border:0;border-radius:9px;background:transparent;color:#aaaab0;font:inherit;font-weight:850;cursor:pointer}.teacher-review-tabs button:hover{color:#fff;background:#26262b}.teacher-review-tabs button.active{color:#15100a;background:#f3bf2d}.teacher-review-panel{margin-top:14px;overflow:hidden;border:1px solid var(--line);border-radius:18px;background:var(--panel)}.teacher-review-panel[hidden]{display:none!important}.teacher-review-panel-head{min-height:76px;padding:16px 20px;display:flex;align-items:center;justify-content:space-between;gap:18px;border-bottom:1px solid var(--line)}.teacher-review-panel-head h2{margin:0 0 4px}.teacher-review-panel-head p{margin:0;color:var(--muted)}.teacher-game-frame{display:block;width:100%;height:620px;border:0;background:#111827}.teacher-block-frame{display:block;width:100%;height:760px;border:0;background:#101012}.teacher-code-files{display:grid;gap:16px;padding:20px}.teacher-code-files article{min-width:0}.teacher-code-files h3{margin:0;padding:10px 14px;border:1px solid #37373d;border-bottom:0;border-radius:12px 12px 0 0;background:#242428;color:#facc15}.teacher-code-files .code-readonly{max-height:520px;margin:0;border-radius:0 0 12px 12px;overflow:auto}.teacher-block-embed .block-editor-shell{width:100%;padding:0}.teacher-block-embed .block-editor-head,.teacher-block-embed .success,.teacher-block-embed .warning,.teacher-block-embed .project-score-panel,.teacher-block-embed .block-image-upload,.teacher-block-embed .project-editor-tabs,.teacher-block-embed .block-preview-panel,.teacher-block-embed .python-editor-panel{display:none!important}.teacher-block-embed .block-editor-grid{height:760px;min-height:760px;margin:0;grid-template-columns:1fr}.teacher-block-embed .block-workspace-panel{border:0;border-radius:0}.teacher-block-embed .block-panel-title{min-height:62px}.teacher-block-embed .blockly-workspace{height:698px}@media(max-width:700px){.teacher-review-shell{width:min(100% - 20px,1450px)}.teacher-review-head,.teacher-review-panel-head{display:grid}.teacher-review-tabs{overflow:auto}.teacher-game-frame{height:520px}.teacher-block-frame{height:650px}}

/* Diagnostyka schematów algorytmicznych. */
.algorithm-teacher-banner{position:sticky;top:0;z-index:50;padding:10px 18px;display:flex;align-items:center;gap:16px;border-bottom:1px solid #7a6118;background:#33290e;color:#f8df82}.algorithm-teacher-banner span{color:#ddd2ad;font-size:.84rem}.algorithm-teacher-banner a{margin-left:auto;color:#fff;font-weight:850}.algorithm-test-note{margin:0 0 12px;color:#aaaab1;font-size:.84rem;line-height:1.5}.teacher-algorithm-frame{display:block;width:100%;height:1050px;border:0;background:#101012}.algorithm-validation ul{padding-left:20px}.algorithm-validation li{margin:6px 0}.algorithm-validation p b{color:#f1c75b}@media(max-width:800px){.algorithm-teacher-banner{align-items:flex-start;display:grid}.algorithm-teacher-banner a{margin-left:0}.teacher-algorithm-frame{height:1250px}}

/* Zgłaszanie problemów przez ucznia i kolejka nauczyciela. */
.problem-report-button{position:fixed;right:18px;bottom:18px;z-index:900;padding:11px 16px;display:flex;align-items:center;gap:8px;border:1px solid #e24a57;border-radius:999px;background:#b91c2c;color:#fff;box-shadow:0 14px 38px #0009;font:inherit;font-weight:900;cursor:pointer}.problem-report-button:hover{background:#d2293b;transform:translateY(-1px)}.problem-report-dialog{width:min(620px,calc(100% - 28px));padding:0;border:1px solid #4b4b52;border-radius:20px;background:#1b1b1f;color:#f7f7f8;box-shadow:0 28px 90px #000c}.problem-report-dialog::backdrop{background:#050507c7;backdrop-filter:blur(5px)}.problem-report-dialog form{position:relative;padding:28px;display:grid;gap:16px}.problem-report-dialog small{color:#ff7b88;font-weight:900;letter-spacing:.09em}.problem-report-dialog h2{margin:-8px 0 0;font-size:1.7rem}.problem-report-dialog p{margin:0;color:#b7b7bd;line-height:1.55}.problem-report-dialog label{display:grid;gap:7px;font-weight:800}.problem-report-dialog select,.problem-report-dialog textarea{width:100%;box-sizing:border-box;padding:12px;border:1px solid #4b4b52;border-radius:11px;background:#101012;color:#fff;font:inherit}.problem-report-dialog textarea{resize:vertical;line-height:1.5}.problem-report-check{grid-template-columns:auto 1fr!important;align-items:start;color:#c6c6ca;font-size:.86rem;font-weight:600!important}.problem-report-check input{margin-top:3px}.problem-report-close{position:absolute;right:15px;top:13px;width:35px;height:35px;border:0;border-radius:50%;background:#303036;color:#fff;font-size:1.4rem;cursor:pointer}.problem-report-actions{display:flex;justify-content:flex-end;gap:9px}.problem-report-result{min-height:22px;font-weight:800}.problem-report-result.is-good{color:#65e0b4}.problem-report-result.is-bad{color:#ff8d99}.problem-filter-tabs{margin:18px 0;display:flex;gap:8px;flex-wrap:wrap}.problem-filter-tabs a{padding:8px 12px;border:1px solid #3d3d43;border-radius:999px;color:#aaaab1;text-decoration:none;font-weight:800}.problem-filter-tabs a.active{border-color:#e4b72d;background:#3c310e;color:#ffe178}.problem-report-table td small{display:block;margin-top:5px;color:#8f8f96}.report-state{display:inline-flex;padding:6px 9px;border-radius:999px;background:#34343a;color:#ddd;font-size:.74rem;font-weight:900}.report-state.open{background:#5a2028;color:#ff9ca6}.report-state.reviewing{background:#4a390d;color:#f4d26a}.report-state.resolved{background:#123f31;color:#65e0b4}.problem-detail-grid{margin-top:22px;display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:18px}.problem-detail-main{display:grid;gap:15px}.problem-detail-main>article,.problem-snapshot,.problem-teacher-actions{padding:22px;border:1px solid var(--line);border-radius:16px;background:var(--panel)}.problem-student-message small{color:#ff8d99;font-weight:900}.problem-student-message h2{margin:7px 0}.problem-student-message p{color:#eee;line-height:1.65}.problem-open-work{display:flex;align-items:center;justify-content:space-between;gap:18px}.problem-open-work h2{margin:0}.problem-open-work p{margin:5px 0 0;color:var(--muted)}.problem-diagnostics h2{margin-top:0}.problem-diagnostics ul{padding-left:20px}.problem-diagnostics li{margin:11px 0}.problem-diagnostics code{display:block;margin-top:5px;color:#ffb0b7;white-space:pre-wrap}.problem-snapshot summary{cursor:pointer;font-weight:900}.problem-snapshot p{color:var(--muted)}.problem-snapshot pre{max-height:620px;overflow:auto;padding:15px;border-radius:11px;background:#08080a;color:#c9f8dc;white-space:pre-wrap}.problem-teacher-actions{height:max-content;position:sticky;top:16px}.problem-teacher-actions h2{margin-top:0}.problem-teacher-actions form,.problem-teacher-actions label{display:grid;gap:8px}.problem-teacher-actions form{gap:14px}.problem-teacher-actions select,.problem-teacher-actions textarea{width:100%;box-sizing:border-box;padding:11px;border:1px solid #46464c;border-radius:10px;background:#111114;color:#fff}.problem-teacher-actions hr{margin:20px 0;border:0;border-top:1px solid #38383d}.problem-teacher-actions>a{display:block;margin-top:6px;overflow-wrap:anywhere;color:#f4c52c}@media(max-width:800px){.problem-report-button{right:10px;bottom:10px}.problem-report-dialog form{padding:23px 18px}.problem-report-actions{display:grid}.problem-detail-grid{grid-template-columns:1fr}.problem-teacher-actions{position:static}.problem-open-work{align-items:flex-start;display:grid}}

@media(max-width:700px){.dashboard-header,.ranking-header{display:grid;gap:18px}.dashboard-header-actions{justify-content:flex-start}.dashboard-header-actions .button{flex:1 1 auto;text-align:center}.dashboard-logout-button{min-width:130px}}

/* Zwijane menu pulpitu na telefonach i tabletach. */
.sidebar-menu-toggle{display:none}
@media(max-width:980px){.dashboard-sidebar{position:relative;z-index:100;display:grid;grid-template-columns:1fr auto;align-items:center;gap:14px;overflow:visible}.sidebar-menu-toggle{min-width:118px;padding:11px 14px;display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid #494950;border-radius:11px;background:#242428;color:#fff;font:inherit;font-weight:850;cursor:pointer}.sidebar-menu-toggle:hover{border-color:#e04453;background:#351b20}.sidebar-menu-toggle i{font-style:normal;transition:transform .2s}.sidebar-menu-toggle[aria-expanded="true"] i{transform:rotate(180deg)}.dashboard-sidebar .sidebar-nav{grid-column:1/-1;width:100%;max-height:min(68vh,620px);margin:0;padding:8px;display:none;overflow-y:auto;border:1px solid #3b3b41;border-radius:14px;background:#161619;box-shadow:0 20px 55px #0009}.dashboard-sidebar .sidebar-nav.is-open{display:grid;gap:5px}.dashboard-sidebar .sidebar-nav a{width:100%;padding:12px 14px;white-space:normal}.dashboard-sidebar .sidebar-user{display:none}}
@media(max-width:700px){.dashboard-sidebar{padding:14px 16px}.dashboard-sidebar .brand strong{display:inline}.sidebar-menu-toggle{min-width:108px}.dashboard-sidebar .sidebar-nav a span{display:inline-block}.dashboard-sidebar .sidebar-nav{overflow-y:auto}}

/* Pulpit ucznia — profil, zadania i kolekcja osiągnięć */
.student-dash-header{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:28px}.student-dash-header h1{margin:0;font-size:clamp(2rem,3vw,3.25rem);letter-spacing:-.045em}.student-dash-header p{margin:5px 0 0;color:#a7a7b0;font-size:1.08rem}.student-dash-score{display:flex;align-items:center;gap:9px;padding:10px 12px 10px 16px;border:1px solid #34343b;border-radius:16px;background:#1b1b1f}.student-dash-score>span{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:#5b4610;color:#ffd955}.student-dash-score>b{font-size:1.25rem}.student-dash-score>small{margin-right:8px;color:#aaaab2}.student-profile-hero{min-height:230px;padding:27px 31px;position:relative;display:grid;grid-template-columns:auto minmax(260px,1fr) minmax(210px,.65fr);align-items:center;gap:30px;overflow:hidden;border:1px solid #44444d;border-radius:24px;background:radial-gradient(circle at 90% 20%,#5d121d55,transparent 36%),linear-gradient(135deg,#1d1e23,#131418);box-shadow:0 20px 55px #0003}.student-profile-hero:after{content:"";width:320px;height:160px;position:absolute;right:-30px;bottom:-70px;border:2px solid #c9344444;border-radius:50%;transform:rotate(-8deg);box-shadow:0 0 0 18px #b52a3730,0 0 0 38px #a7222e1b}.student-avatar-wrap{width:164px;height:164px;position:relative;z-index:1;display:grid;place-items:center;border:4px solid #f14050;border-radius:50%;background:linear-gradient(145deg,#e44a55,#a50d23);box-shadow:0 0 30px #f12d4650}.student-avatar-wrap>img{width:100%;height:100%;object-fit:cover;border-radius:inherit}.student-avatar-wrap>span{font-size:3.5rem;font-weight:950}.student-avatar-wrap form{position:absolute;left:50%;bottom:-18px;transform:translateX(-50%)}.student-avatar-wrap label{min-width:140px;padding:9px 12px;display:flex;align-items:center;justify-content:center;gap:7px;border:1px solid #f34b58;border-radius:11px;background:#25171bcc;color:#fff;box-shadow:0 8px 24px #0008;font-weight:850;cursor:pointer;white-space:nowrap}.student-avatar-wrap label:hover{background:#5a1b24}.student-avatar-wrap input{width:1px;height:1px;position:absolute;opacity:0}.student-profile-copy{position:relative;z-index:1}.student-profile-copy>small,.student-section-head small,.latest-achievement>small,.student-side-card small{color:#e44150;font-size:.7rem;font-weight:950;letter-spacing:.13em}.student-profile-copy h2{margin:5px 0 13px;font-size:clamp(1.8rem,3vw,2.6rem)}.student-level{display:inline-block;padding:7px 14px;border:1px solid #de3342;border-radius:999px;background:#40151c;color:#ffadb4;font-weight:900}.student-xp{max-width:420px;height:10px;margin-top:20px;overflow:hidden;border-radius:99px;background:#3a3a42}.student-xp i,.student-weekly i{height:100%;display:block;border-radius:inherit;background:linear-gradient(90deg,#ed283b,#ff5061)}.student-profile-copy p{margin:8px 0 0;color:#b9b9c0;font-size:.84rem}.student-profile-motto{position:relative;z-index:1;justify-self:end;text-align:right;color:#fff}.student-profile-motto b{font-size:1.25rem;line-height:1.35}.student-profile-motto span{width:62px;height:62px;margin:13px 0 0 auto;display:grid;place-items:center;border:1px solid #cc9832;border-radius:50%;background:#47300e;color:#ffd46d;font-size:1.65rem}.student-dashboard-grid{margin-top:24px;display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:22px}.student-dash-section,.latest-achievement,.student-side-card{border:1px solid #34343c;border-radius:20px;background:#1a1a1e}.student-dash-section{margin-bottom:22px;padding:22px}.student-section-head{margin-bottom:17px;display:flex;align-items:end;justify-content:space-between;gap:18px}.student-section-head h2{margin:3px 0 0;font-size:1.55rem}.student-section-head>a,.student-section-head>b{color:#ef5360;text-decoration:none;font-size:.82rem}.student-task-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.student-task-card{min-height:225px;padding:20px;display:flex;flex-direction:column;border:1px solid #45333a;border-radius:17px;background:linear-gradient(145deg,#27161a,#1b171a)}.student-task-card.blue{border-color:#2c4d7d;background:linear-gradient(145deg,#142840,#161c26)}.student-task-card.gold{border-color:#725514;background:linear-gradient(145deg,#332611,#201c17)}.student-task-card>span{color:#ff6975;font-weight:900;font-size:.83rem}.student-task-card.blue>span{color:#68a8ff}.student-task-card.gold>span{color:#f4bf3e}.student-task-card h3{margin:18px 0 8px;font-size:1.16rem;line-height:1.25}.student-task-card p{margin:0 0 18px;color:#aaaab2;font-size:.86rem;line-height:1.45}.student-task-card .button{width:100%;margin:auto 0 0;text-align:center}.achievements-board{background:radial-gradient(circle at 58% 20%,#6a431b24,transparent 30%),#1a1a1e}.achievement-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}.achievement{text-align:center}.achievement>span{width:82px;height:92px;margin:0 auto 12px;position:relative;display:grid;place-items:center;clip-path:polygon(25% 4%,75% 4%,100% 25%,100% 75%,75% 96%,25% 96%,0 75%,0 25%);background:linear-gradient(145deg,#ffbd34,#8b3d0b);filter:drop-shadow(0 8px 10px #0007)}.achievement:nth-child(2)>span{background:linear-gradient(145deg,#c252ff,#4b1583)}.achievement:nth-child(3)>span{background:linear-gradient(145deg,#ff7041,#952211)}.achievement:nth-child(4)>span{background:linear-gradient(145deg,#ffd85a,#9a610a);filter:drop-shadow(0 0 15px #f4b33270)}.achievement:nth-child(5)>span{background:linear-gradient(145deg,#ee4f5e,#7d1420)}.achievement:nth-child(6)>span{background:linear-gradient(145deg,#51b6a1,#145348)}.achievement>span>b{width:61px;height:69px;display:grid;place-items:center;clip-path:inherit;background:#18181caa;font-size:1.85rem}.achievement>span>i{position:absolute;z-index:2;top:0;padding:3px 7px;border-radius:999px;background:#ee3143;color:#fff;font-size:.58rem;font-style:normal;font-weight:950}.achievement strong,.achievement small{display:block}.achievement strong{font-size:.78rem;line-height:1.2}.achievement small{margin-top:5px;color:#888892;font-size:.64rem;line-height:1.25}.achievement.locked{filter:grayscale(1);opacity:.48}.achievement.locked>span{background:#4b4b53}.student-project-list{display:grid;gap:8px}.student-project-list>a{padding:12px 14px;display:flex;align-items:center;gap:13px;border:1px solid #313138;border-radius:13px;background:#151518;color:#fff;text-decoration:none}.student-project-list>a:hover{border-color:#e13a49;background:#211619}.student-project-list>a>span{width:40px;height:40px;display:grid;place-items:center;border-radius:11px;background:#302126}.student-project-list>a>div{margin-right:auto}.student-project-list strong,.student-project-list small{display:block}.student-project-list small{margin-top:3px;color:#8d8d96;font-size:.74rem}.student-dashboard-rail{display:grid;align-content:start;gap:16px}.latest-achievement{padding:24px;text-align:center;border-color:#8c6515;background:radial-gradient(circle,#75460a55,transparent 58%),linear-gradient(145deg,#30210c,#1d1813)}.latest-achievement>span{width:125px;height:125px;margin:18px auto;display:grid;place-items:center;border:5px solid #f3bb35;border-radius:28px;background:linear-gradient(145deg,#9e5d0c,#50300a);box-shadow:0 0 35px #e79c2760;font-size:3.4rem;transform:rotate(45deg)}.latest-achievement>span::first-letter{transform:rotate(-45deg)}.latest-achievement h2{margin:8px 0;color:#ffd066;font-size:1.35rem}.latest-achievement p{margin:0;color:#d2c2a4;font-size:.84rem}.student-side-card{padding:18px;display:flex;align-items:center;gap:15px}.student-side-card>span{width:53px;height:53px;display:grid;place-items:center;border-radius:14px;background:#332127;font-size:1.65rem}.student-side-card h2{margin:4px 0;font-size:1.35rem}.student-side-card a{color:#ef5360;text-decoration:none;font-size:.75rem}.student-weekly{width:160px;height:8px;margin-top:10px;overflow:hidden;border-radius:99px;background:#37373d}
@media(max-width:1200px){.student-dashboard-grid{grid-template-columns:1fr}.student-dashboard-rail{grid-template-columns:repeat(3,1fr)}.latest-achievement{grid-row:span 2}.student-task-grid{grid-template-columns:repeat(2,1fr)}.student-task-card:last-child{grid-column:1/-1}.achievement-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:780px){.student-dash-header{align-items:flex-start}.student-dash-score{padding:8px}.student-dash-score small{display:none}.student-profile-hero{grid-template-columns:1fr;text-align:center}.student-avatar-wrap{margin:auto}.student-profile-copy{margin-top:14px}.student-profile-copy .student-xp{margin-inline:auto}.student-profile-motto{display:none}.student-task-grid,.student-dashboard-rail{grid-template-columns:1fr}.student-task-card:last-child{grid-column:auto}.latest-achievement{grid-row:auto}.achievement-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.student-dash-header{display:grid}.student-dash-score{width:100%}.student-dash-score .dashboard-logout-button{margin-left:auto}.student-profile-hero{padding:24px 18px}.student-avatar-wrap{width:138px;height:138px}.student-dash-section{padding:17px}.student-section-head{align-items:flex-start}.achievement-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.achievement>span{width:72px;height:80px}.student-section-head .button{padding:9px 10px;font-size:.72rem}}
.latest-achievement>span>b{display:block;transform:rotate(-45deg)}
.sidebar-today{margin:23px 0 14px;padding-top:18px;display:grid;gap:7px;border-top:1px solid #343439}.sidebar-today>strong{padding:0 8px 4px;color:#777780;font-size:.64rem;letter-spacing:.13em}.sidebar-today>a{padding:9px 10px;display:flex;align-items:center;gap:10px;border:1px solid #2e2e34;border-radius:11px;background:#151518;color:#e5e5e8;text-decoration:none}.sidebar-today>a:hover{border-color:#71303a;background:#27181c}.sidebar-today>a>span{width:31px;height:31px;display:grid;place-items:center;border-radius:9px;background:#342027}.sidebar-today>a>div{min-width:0}.sidebar-today b,.sidebar-today small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-today b{font-size:.75rem}.sidebar-today small{margin-top:3px;color:#777780;font-size:.62rem}
@media(max-width:980px){.sidebar-today{display:none}}
.student-avatar-wrap form{position:static;transform:none}.student-avatar-edit{position:absolute;inset:0;z-index:3;display:grid;place-items:center;align-content:center;gap:4px;border:0;border-radius:50%;background:#09090bd6;color:#fff!important;opacity:0;cursor:pointer;transition:opacity .2s}.student-avatar-edit b{font-size:1.45rem}.student-avatar-edit span{font-size:.78rem;font-weight:900}.student-avatar-wrap:hover .student-avatar-edit,.student-avatar-wrap:focus-within .student-avatar-edit{opacity:1}.avatar-dialog{width:min(880px,calc(100% - 28px));max-height:min(90vh,820px);padding:0;overflow:auto;border:1px solid #45454d;border-radius:22px;background:#18181c;color:#fff;box-shadow:0 30px 100px #000c}.avatar-dialog::backdrop{background:#050506d9;backdrop-filter:blur(5px)}.avatar-dialog-head{padding:25px 27px 19px;display:flex;align-items:flex-start;justify-content:space-between;gap:20px;border-bottom:1px solid #34343b}.avatar-dialog-head small{color:#ed4654;font-size:.68rem;font-weight:950;letter-spacing:.13em}.avatar-dialog-head h2{margin:4px 0;font-size:1.7rem}.avatar-dialog-head p{margin:0;color:#9999a2}.avatar-dialog-head button{border:0;background:transparent;color:#aaa;font-size:2rem;cursor:pointer}.avatar-groups{padding:22px 27px;display:grid;gap:22px}.avatar-groups h3{margin:0 0 11px;font-size:.9rem;color:#d5d5da}.avatar-options{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.avatar-options button{width:100%;padding:4px;position:relative;overflow:hidden;border:2px solid #36363d;border-radius:16px;background:#222228;cursor:pointer}.avatar-options button:hover,.avatar-options button:focus{border-color:#f04453;box-shadow:0 0 20px #e52d4345}.avatar-options img{width:100%;aspect-ratio:1;display:block;object-fit:cover;border-radius:11px}.avatar-options span{position:absolute;inset:auto 8px 8px;padding:6px;border-radius:8px;background:#121216dd;color:#fff;font-weight:900;opacity:0;transition:opacity .18s}.avatar-options button:hover span,.avatar-options button:focus span{opacity:1}.avatar-upload-choice{margin:0 27px;padding:16px;border:1px dashed #52525a;border-radius:14px;background:#202025}.avatar-upload-choice label{display:flex;align-items:center;justify-content:space-between;gap:15px;cursor:pointer}.avatar-upload-choice b{color:#ff7883}.avatar-upload-choice small{color:#96969e}.avatar-upload-choice input{width:1px;height:1px;position:absolute;opacity:0}.avatar-privacy-note{margin:12px 27px 25px;color:#82828b;font-size:.74rem}
@media(max-width:680px){.avatar-options{grid-template-columns:repeat(3,1fr)}.avatar-upload-choice label{display:grid}.avatar-dialog-head,.avatar-groups{padding-inline:18px}.avatar-upload-choice,.avatar-privacy-note{margin-inline:18px}}
@media(hover:none){.student-avatar-edit{inset:auto 5px 5px auto;width:48px;height:48px;border:1px solid #f04453;background:#1b1014;opacity:1}.student-avatar-edit span{display:none}}

/* Wspólne tło po zalogowaniu: burgundowo-malinowa paleta GameLab. */
:root{
  --dashboard-wine-1:#622216;
  --dashboard-wine-2:#7b1b32;
  --dashboard-wine-3:#921442;
  --dashboard-wine-4:#ac0051;
}
.dashboard-page,
.teacher-page{
  min-height:100vh;
  background:
    radial-gradient(circle at 88% 6%,rgba(172,0,81,.82) 0,transparent 34%),
    radial-gradient(circle at 62% 88%,rgba(146,20,66,.72) 0,transparent 42%),
    linear-gradient(135deg,var(--dashboard-wine-1) 0%,var(--dashboard-wine-2) 36%,var(--dashboard-wine-3) 68%,var(--dashboard-wine-4) 100%);
  background-attachment:fixed;
}
.dashboard-page .dashboard-main,
.teacher-page .teacher-shell{position:relative;z-index:1}
.dashboard-sidebar{
  border-right-color:rgba(255,255,255,.14);
  background:
    radial-gradient(circle at 15% 8%,rgba(172,0,81,.55),transparent 34%),
    linear-gradient(165deg,#622216 0%,#751c2c 35%,#8c123e 69%,#ac0051 125%);
  box-shadow:14px 0 40px rgba(36,3,18,.2);
}
.dashboard-sidebar .sidebar-nav a{color:rgba(255,255,255,.78)}
.dashboard-sidebar .sidebar-nav a:hover,
.dashboard-sidebar .sidebar-nav a.active{
  color:#fff;
  background:rgba(255,255,255,.14);
  box-shadow:inset 3px 0 0 rgba(255,255,255,.7);
}
.dashboard-sidebar .sidebar-user,
.dashboard-sidebar .sidebar-today{border-color:rgba(255,255,255,.16)}
.dashboard-sidebar .sidebar-today>a{border-color:rgba(255,255,255,.13);background:rgba(37,4,19,.3)}
.dashboard-sidebar .sidebar-today>a:hover{border-color:rgba(255,255,255,.32);background:rgba(255,255,255,.12)}
.teacher-page .teacher-header,
.teacher-page .teacher-section-tabs,
.teacher-page .teacher-progress-tabs{color:#fff}
@media(max-width:980px){.dashboard-sidebar{border-bottom-color:rgba(255,255,255,.14)}}

/* Ranking i wielopoziomowe odznaki Akademii na pulpicie ucznia. */
.student-rank-trophy{padding:24px;position:relative;overflow:hidden;text-align:center;border:1px solid #8c6515;border-radius:20px;background:radial-gradient(circle at 50% 15%,#a56a1855,transparent 42%),linear-gradient(150deg,#30210c,#17171b)}.student-rank-trophy:after{content:"";width:140px;height:140px;position:absolute;right:-72px;bottom:-76px;border:18px solid #d79c2624;border-radius:50%}.student-rank-trophy .trophy-cup{display:block;font-size:3.4rem;filter:drop-shadow(0 7px 10px #0008)}.student-rank-trophy>small{display:block;margin-top:8px;color:#efc256;font-size:.68rem;font-weight:950;letter-spacing:.13em}.student-rank-trophy>h2{margin:2px 0 0;color:#ffe07b;font-size:3.25rem;line-height:1}.student-rank-trophy>p{margin:5px 0 17px;color:#d3c5aa}.student-rank-trophy>div{padding:12px;display:grid;gap:3px;border-top:1px solid #76581f66;border-bottom:1px solid #76581f66}.student-rank-trophy>div b{color:#fff;font-size:1.15rem}.student-rank-trophy>div span{color:#a99f8d;font-size:.72rem}.student-rank-trophy>a{margin-top:15px;position:relative;z-index:1;display:inline-block;color:#ffcf55;text-decoration:none;font-size:.78rem;font-weight:850}.academy-badge-board{background:radial-gradient(circle at 95% 0,#35235755,transparent 30%),#1a1a1e}.academy-badge-intro{max-width:760px;margin:-5px 0 18px;color:#a7a7b0;font-size:.85rem;line-height:1.55}.academy-grade-shelves{display:grid;gap:10px}.academy-grade-shelf{overflow:hidden;border:1px solid #37373f;border-radius:15px;background:#151518}.academy-grade-shelf>summary{padding:13px 15px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:13px;cursor:pointer;list-style:none}.academy-grade-shelf>summary::-webkit-details-marker{display:none}.academy-grade-shelf>summary>div strong,.academy-grade-shelf>summary>div small{display:block}.academy-grade-shelf>summary>div small{margin-top:3px;color:#898993;font-size:.72rem}.academy-grade-shelf>summary>b{color:#c8c8cd}.academy-grade-medal{width:43px;height:43px;display:grid;place-items:center;border-radius:13px;color:#111;font-size:1.25rem;font-weight:950;box-shadow:inset 0 0 0 2px #ffffff35}.academy-grade-medal.bronze{background:linear-gradient(145deg,#e29555,#7e421d)}.academy-grade-medal.silver{background:linear-gradient(145deg,#f1f4f7,#737985)}.academy-grade-medal.gold{background:linear-gradient(145deg,#ffe873,#af6e06)}.academy-grade-medal.platinum{background:linear-gradient(145deg,#d7ffff,#648e98)}.academy-grade-medal.diamond{background:linear-gradient(145deg,#b9f3ff,#8a66eb)}.academy-badge-grid{padding:0 13px 13px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.academy-badge{padding:12px;display:grid;grid-template-columns:auto 1fr;gap:11px;border:1px solid #393940;border-radius:12px;background:#1d1d21}.academy-badge-icon{width:42px;height:48px;display:grid;place-items:center;clip-path:polygon(50% 0,96% 23%,89% 78%,50% 100%,11% 78%,4% 23%);background:#66523a;font-size:1.2rem}.academy-badge.silver .academy-badge-icon{background:#8a8f99}.academy-badge.gold .academy-badge-icon{background:#b98715}.academy-badge.platinum .academy-badge-icon{background:#6c99a1}.academy-badge.diamond .academy-badge-icon{background:#745ad0}.academy-badge>div{min-width:0}.academy-badge strong,.academy-badge small,.academy-badge em{display:block}.academy-badge strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.78rem}.academy-badge small{margin-top:3px;color:#97979f;font-size:.67rem}.academy-badge-progress{height:5px;margin:8px 0 5px;overflow:hidden;border-radius:9px;background:#34343b}.academy-badge-progress i{height:100%;display:block;border-radius:inherit;background:linear-gradient(90deg,#df3545,#f0bd3f)}.academy-badge em{color:#d0a532;font-size:.65rem;font-style:normal;font-weight:850}.academy-badge.locked{opacity:.58;filter:grayscale(.45)}.academy-badge.earned{border-color:#7f6421;background:#262116}.academy-badge.earned em{color:#6fe0af}
@media(max-width:680px){.academy-badge-grid{grid-template-columns:1fr}.academy-grade-shelf>summary{grid-template-columns:auto 1fr}.academy-grade-shelf>summary>b{display:none}}

/* Skalowalne serie odznak aktywności. */
.badge-track{margin-top:24px;padding-top:20px;border-top:1px solid #36363d}.badge-track>header{display:flex;align-items:end;justify-content:space-between;gap:18px}.badge-track>header small{color:#ba8cff;font-size:.65rem;font-weight:950;letter-spacing:.12em}.badge-track>header h3{margin:4px 0 0;font-size:1.18rem}.badge-track>header p{margin:0;color:#96969f;font-size:.76rem}.badge-track>header p b{color:#fff}.badge-track-levels{margin-top:15px;display:grid;grid-template-columns:repeat(10,minmax(72px,1fr));gap:7px}.badge-track-level{min-height:125px;padding:9px 6px;position:relative;display:grid;grid-template-rows:auto auto 1fr auto;justify-items:center;align-items:start;text-align:center;border:1px solid #3b3b43;border-radius:12px;background:#151519}.badge-track-level>span{width:43px;height:47px;display:grid;place-items:center;clip-path:polygon(50% 0,95% 22%,88% 78%,50% 100%,12% 78%,5% 22%);background:#474750;font-size:1.05rem}.badge-track-level>b{width:21px;height:21px;margin-top:-8px;z-index:1;display:grid;place-items:center;border:2px solid #151519;border-radius:50%;background:#373740;color:#aaa;font-size:.62rem}.badge-track-level>strong{margin-top:6px;font-size:.62rem;line-height:1.2}.badge-track-level>small{color:#777780;font-size:.55rem}.badge-track-level.earned{border-color:#75572b;background:linear-gradient(150deg,#2f2316,#1d1917)}.badge-track-level.earned>span{background:linear-gradient(145deg,#f2c153,#8f5012);filter:drop-shadow(0 5px 8px #0008)}.badge-track-level:nth-child(n+4).earned>span{background:linear-gradient(145deg,#d18aff,#5b288f)}.badge-track-level:nth-child(n+7).earned>span{background:linear-gradient(145deg,#93f0e6,#267a75)}.badge-track-level:nth-child(10).earned>span{background:linear-gradient(145deg,#c9f5ff,#7757d8);filter:drop-shadow(0 0 10px #9b7fff88)}.badge-track-level.earned>b{background:#d49a2c;color:#17120b}.badge-track-level.locked{opacity:.45;filter:grayscale(1)}.badge-track-next{margin:13px 0 0;padding:10px 12px;border-radius:10px;background:#24202c;color:#b9a6cf;font-size:.75rem}.badge-track-next strong{color:#d6b3ff}.badge-track-next.is-complete{background:#173128;color:#83dfb7}
@media(max-width:1050px){.badge-track-levels{grid-template-columns:repeat(5,1fr)}}@media(max-width:580px){.badge-track>header{align-items:flex-start;display:grid}.badge-track-levels{grid-template-columns:repeat(2,1fr)}.badge-track-level{min-height:112px}}
/* Microsoft Teams classes */
.teams-picker-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px;margin:18px 0}.teams-picker-card{display:block;cursor:pointer}.teams-picker-card input{position:absolute;opacity:0;pointer-events:none}.teams-picker-card span{display:grid;gap:8px;min-height:130px;padding:18px;border:2px solid #3e4653;border-radius:16px;background:#17191e;transition:.18s ease}.teams-picker-card strong{font-size:1.05rem}.teams-picker-card small{color:#b8bec8;line-height:1.4}.teams-picker-card b{color:#77dfca;font-size:.8rem}.teams-picker-card input:checked+span{border-color:#55d7c8;background:#14312f;box-shadow:0 0 0 3px #55d7c833}.teams-picker-card input:focus-visible+span{outline:3px solid #ffd34d;outline-offset:3px}.teams-picker-card.disabled{cursor:not-allowed;opacity:.55}.teams-picker-card.disabled b{color:#d7a3aa}.teams-class-panel .review-status{display:inline-flex;margin-bottom:4px}
.teacher-class-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px}
.teacher-class-card{display:flex;flex-direction:column;gap:14px;padding:20px;border:1px solid rgba(148,163,184,.28);border-radius:18px;background:rgba(15,23,42,.72);color:inherit;text-decoration:none;transition:.18s ease}
.teacher-class-card:hover{transform:translateY(-2px);border-color:#55d7c8;box-shadow:0 12px 30px #0004}
.teacher-class-card h3{margin:10px 0 4px}.teacher-class-card p,.teacher-class-card small{margin:0;color:#cbd5e1}
.teacher-class-card dl{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0}.teacher-class-card dl div{padding:10px;border-radius:12px;background:rgba(148,163,184,.09)}
.teacher-class-card dt{font-size:.78rem;color:#94a3b8}.teacher-class-card dd{margin:3px 0 0;font-size:1.25rem;font-weight:800}
.teacher-class-open{margin-top:auto;text-align:center}

/* Jeden status i zapis we wszystkich trybach wspólnego edytora Python. */
.python-component-status{display:inline-flex;align-items:center;width:max-content;max-width:100%;margin:7px 0;padding:5px 9px;border:1px solid #3f4652;border-radius:999px;background:#171b22;color:#b9c2cf;font-size:.76rem;font-weight:800}.python-save-button{margin-left:8px}.python-safety-note{margin:10px 0 0;color:#9fa7b3;font-size:.78rem;line-height:1.45}@media(max-width:650px){.python-save-button{margin:8px 0 0;width:100%}.python-component-status{white-space:normal}}

/* Panel autora centralnego katalogu wiedzy. */
.knowledge-control-summary{margin:24px 0;display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.knowledge-control-summary a{padding:17px;display:grid;gap:5px;border:1px solid #38383f;border-radius:14px;background:#1d1d21;color:#fff;text-decoration:none}.knowledge-control-summary a:hover{border-color:#e3b92f}.knowledge-control-summary b{color:#facc15;font-size:1.7rem}.knowledge-control-summary span{color:#b7b7bd;font-size:.84rem}.knowledge-control-section{scroll-margin-top:18px}.knowledge-control-section>header{padding:18px 20px;display:flex;align-items:center;justify-content:space-between;gap:18px;border-bottom:1px solid var(--line)}.knowledge-control-section>header h2,.knowledge-control-section>header p{margin:0}.knowledge-control-section>header p{margin-top:5px;color:var(--muted)}.knowledge-control-section>header>b{min-width:42px;height:42px;display:grid;place-items:center;border-radius:50%;background:#3e330f;color:#facc15}.knowledge-control-list{display:grid}.knowledge-control-list article{padding:14px 20px;display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid #303035}.knowledge-control-list article:last-child{border-bottom:0}.knowledge-control-list article div{min-width:0}.knowledge-control-list small{display:block;margin-top:5px;color:#96969d;overflow-wrap:anywhere}@media(max-width:650px){.knowledge-control-list article{align-items:flex-start;display:grid}.knowledge-control-list .button{width:100%;text-align:center}}
/* Rankingi tygodniowe i miesięczne */
.period-ranking-grid{margin:0 0 22px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.period-ranking-card{padding:22px;border:1px solid #3d3525;border-radius:20px;background:linear-gradient(145deg,#211d16,#17171b);box-shadow:0 16px 35px #0003}.period-ranking-card>header{display:flex;align-items:center;gap:13px}.period-ranking-card>header>span{width:54px;height:54px;display:grid;place-items:center;border:1px solid #856522;border-radius:16px;background:#3a2b10;font-size:1.8rem}.period-ranking-card header small{display:block;color:#bda66d;font-size:.7rem;font-weight:850;letter-spacing:.08em}.period-ranking-card h2{margin:2px 0 0;color:#fff;font-size:1.25rem}.period-ranking-card>p{margin:15px 0;color:#aaa6a0;font-size:.8rem;line-height:1.55}.period-ranking-card>p strong{color:#e7c76f}.period-ranking-list{margin:0;padding:0;display:grid;gap:6px;list-style:none}.period-ranking-list li{padding:9px 10px;display:grid;grid-template-columns:30px minmax(0,1fr) auto auto;align-items:center;gap:8px;border:1px solid #333137;border-radius:10px;background:#1d1d21}.period-ranking-list li>b{width:26px;height:26px;display:grid;place-items:center;border-radius:8px;background:#303036;color:#d3d3d7;font-size:.72rem}.period-ranking-list li:nth-child(1)>b{background:#aa7618;color:#fff2b2}.period-ranking-list li:nth-child(2)>b{background:#777d87;color:#fff}.period-ranking-list li:nth-child(3)>b{background:#87522e;color:#ffe0c2}.period-ranking-list li>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#eee;font-size:.78rem;font-weight:760}.period-ranking-list li>strong{color:#fff;font-size:.77rem}.period-ranking-list li>em{color:#d8b553;font-size:.66rem;font-style:normal;font-weight:780}.period-ranking-list li.is-current-user{border-color:#d3a32e;background:#2a2416}.period-ranking-empty{padding:28px 15px;border:1px dashed #464249;border-radius:12px;color:#8e8b91;text-align:center;font-size:.8rem}.period-ranking-info{margin:0 0 24px;padding:16px 18px;display:grid;grid-template-columns:minmax(0,1.4fr) minmax(260px,.6fr);gap:20px;border:1px solid #343239;border-radius:16px;background:#19191d}.period-ranking-info>div:first-child{display:flex;align-items:flex-start;gap:12px}.period-ranking-info>div:first-child>span{font-size:1.4rem}.period-ranking-info p{margin:0;color:#aaa7ae;font-size:.8rem;line-height:1.55}.period-ranking-info p strong{color:#f1d174}.period-champions{display:grid;gap:4px}.period-champions>strong{margin-bottom:3px;color:#eee;font-size:.76rem}.period-champions>span{color:#a9a6ad;font-size:.68rem}.student-champion-titles{margin:10px 0 3px;display:flex;flex-wrap:wrap;gap:7px}.student-champion-titles span{padding:5px 9px;border:1px solid #9b762a;border-radius:999px;background:#332713;color:#f2cf72;font-size:.67rem;font-weight:850}
@media(max-width:900px){.period-ranking-grid,.period-ranking-info{grid-template-columns:1fr}.period-ranking-list li{grid-template-columns:30px minmax(0,1fr) auto}.period-ranking-list li>em{display:none}}
/* Kalendarz i kolejka prac Akademii w obrębie klasy */
.teacher-class-alerts{margin-top:12px;display:flex;flex-wrap:wrap;gap:7px}.teacher-class-alerts span{padding:6px 9px;border:1px solid #9a6f2a;border-radius:999px;background:#382817;color:#ffd978;font-size:.72rem;font-weight:850}.class-assignment-form{display:grid;grid-template-columns:minmax(260px,2fr) repeat(2,minmax(150px,1fr));gap:12px;align-items:end}.class-assignment-form label{display:grid;gap:6px}.class-assignment-form label>span{color:#b9b7be;font-size:.73rem;font-weight:800}.class-assignment-form .wide{grid-column:1/-1}.class-assignment-form button{justify-self:start}.class-assignment-list{margin-top:20px;display:grid;gap:9px}.class-assignment-list article{padding:13px 15px;display:grid;grid-template-columns:minmax(240px,1fr) auto auto auto auto;align-items:center;gap:15px;border:1px solid #37363d;border-radius:13px;background:#1b1b1f}.class-assignment-list article>form{margin:0}.class-assignment-list strong,.class-assignment-list small{display:block}.class-assignment-list small{margin-top:3px;color:#8f8d95;font-size:.69rem}.class-assignment-list article>span{color:#b7b3a8;font-size:.75rem}.class-assignment-list a{color:#e8c45e;font-size:.75rem;font-weight:800;text-decoration:none}.teacher-preview-banner{position:sticky;top:0;z-index:100;padding:10px 18px;display:flex;align-items:center;gap:14px;border-bottom:1px solid #9d7326;background:#30230d;color:#fff}.teacher-preview-banner b{color:#ffdb72}.teacher-preview-banner span{flex:1;color:#d9d1be;font-size:.76rem}.teacher-preview-banner button{padding:7px 11px;border:1px solid #ad8b48;border-radius:8px;background:#17130c;color:#fff;cursor:pointer}.teacher-student-preview input:disabled,.teacher-student-preview textarea:disabled,.teacher-student-preview select:disabled{opacity:.75;cursor:not-allowed}
@media(max-width:900px){.class-assignment-form{grid-template-columns:1fr}.class-assignment-form .wide{grid-column:auto}.class-assignment-list article{grid-template-columns:1fr}.teacher-preview-banner{align-items:flex-start;flex-wrap:wrap}.teacher-preview-banner span{flex-basis:100%}}
.student-state.overdue{background:#ffe4e4!important;color:#a61b1b!important}.student-state.scheduled{background:#e8eef7!important;color:#4f6078!important}

/* Lekcja algorytmu otwierana bez opuszczania edytora bloczkowego. */
.algorithm-lesson-help-button{border-color:#7569c9!important;background:#292442!important;color:#fff!important}.algorithm-lesson-help-button:hover{border-color:#b5aaff!important;background:#3b3460!important}.algorithm-lesson-dialog{width:min(1180px,calc(100vw - 32px));height:min(820px,calc(100dvh - 32px));max-width:none;max-height:none;margin:auto;padding:0;border:1px solid #55506f;border-radius:22px;background:#17171d;color:#f7f7fb;box-shadow:0 30px 90px #000c;overflow:hidden}.algorithm-lesson-dialog::backdrop{background:#07070bd9;backdrop-filter:blur(4px)}.algorithm-lesson-dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:20px 24px;border-bottom:1px solid #3b3948;background:#211f2a}.algorithm-lesson-dialog-head small{color:#b9afff;font-weight:900}.algorithm-lesson-dialog-head h2{margin:4px 0}.algorithm-lesson-dialog-head p{margin:0;color:#c3c0cc}.algorithm-lesson-dialog-close{flex:0 0 44px;width:44px;height:44px;border:1px solid #625d75;border-radius:50%;background:#302d3b;color:#fff;font-size:30px;line-height:1;cursor:pointer}.algorithm-lesson-dialog-close:hover{background:#493f5f}.algorithm-lesson-dialog-body{display:grid;grid-template-columns:minmax(270px,340px) minmax(0,1fr);height:calc(100% - 112px);min-height:0}.algorithm-lesson-steps{overflow:auto;padding:20px;border-right:1px solid #3b3948;background:#1d1b24}.algorithm-lesson-steps h3{margin:0 0 14px}.algorithm-lesson-steps ol{display:grid;gap:10px;margin:0;padding:0;list-style:none;counter-reset:lesson-step}.algorithm-lesson-steps li{counter-increment:lesson-step;padding:13px;border:1px solid #49445e;border-radius:13px;background:#282532}.algorithm-lesson-steps li::before{content:counter(lesson-step);display:grid;place-items:center;float:left;width:26px;height:26px;margin:0 9px 5px 0;border-radius:50%;background:#6c5fd0;color:#fff;font-weight:900}.algorithm-lesson-steps strong{display:block;color:#e4dfff}.algorithm-lesson-steps p{clear:both;margin:7px 0 0;color:#cfccd8;font-size:.88rem;line-height:1.5}.algorithm-lesson-frame-wrap{display:grid;grid-template-rows:auto minmax(0,1fr);min-width:0;background:#fff}.algorithm-lesson-frame-wrap>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;background:#292631;color:#fff}.algorithm-lesson-frame-wrap a{color:#ded8ff;font-weight:800}.algorithm-lesson-frame-wrap iframe{width:100%;height:100%;border:0;background:#fff}@media(max-width:760px){.algorithm-lesson-dialog{width:100vw;height:100dvh;border:0;border-radius:0}.algorithm-lesson-dialog-head{padding:14px 16px}.algorithm-lesson-dialog-head p{font-size:.82rem}.algorithm-lesson-dialog-body{grid-template-columns:1fr;grid-template-rows:auto minmax(360px,1fr);height:calc(100% - 126px);overflow:auto}.algorithm-lesson-steps{max-height:42dvh;border-right:0;border-bottom:1px solid #3b3948}.algorithm-lesson-frame-wrap{min-height:520px}}

/* Zamknięta pętla zgłoszenie → naprawa → test ucznia. */
.report-state.awaiting_student{background:#183c54;color:#8fd8ff}.problem-test-notice{margin:0 0 20px;padding:15px 18px;display:flex;align-items:center;gap:14px;border:1px solid #337da0;border-radius:15px;background:linear-gradient(120deg,#122c3b,#182027);color:#fff;text-decoration:none}.problem-test-notice>span{font-size:1.7rem}.problem-test-notice>div{margin-right:auto}.problem-test-notice strong,.problem-test-notice small{display:block}.problem-test-notice small{margin-top:4px;color:#b8ced9}.problem-test-notice>b{color:#8fd8ff}.problem-student-shell{width:min(1120px,calc(100% - 28px));margin:0 auto;padding:34px 0 70px}.problem-student-shell>header small{display:block;margin-top:24px;color:#58c7d9;font-weight:900;letter-spacing:.1em}.problem-student-shell>header h1{margin:5px 0;font-size:clamp(2rem,5vw,3.5rem)}.problem-student-shell>header p{max-width:760px;color:#b7b7bd;line-height:1.6}.problem-student-list{margin-top:25px;display:grid;gap:15px}.problem-student-card{padding:21px;display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,.7fr);gap:20px;border:1px solid #383840;border-radius:17px;background:#19191d}.problem-student-card.needs-test{border-color:#337da0;box-shadow:0 0 0 3px #337da022}.problem-student-card h2{margin:5px 0 8px}.problem-student-card>div>small{color:#8e8e97}.problem-student-card>div>p{color:#c6c6cc;line-height:1.55}.problem-student-card aside{padding:16px;border-radius:13px;background:#222228}.problem-student-card aside h3{margin:0 0 7px}.problem-student-card aside p{color:#c4c4ca;line-height:1.5}.problem-student-card aside form,.problem-student-card aside label{display:grid;gap:8px}.problem-student-card aside form{margin-top:14px}.problem-student-card aside textarea{padding:10px;border:1px solid #494951;border-radius:9px;background:#101013;color:#fff}.problem-student-card aside form>div{display:flex;gap:8px;flex-wrap:wrap}.problem-reward{display:inline-block;margin-left:8px;color:#ffe071}.platform-engineer{background:linear-gradient(145deg,#102b31,#171b1d);padding:18px;border-radius:16px}.platform-engineer .badge-track-level.earned>span{background:linear-gradient(145deg,#62e5db,#1e6b70)}
@media(max-width:720px){.problem-test-notice{align-items:flex-start}.problem-test-notice>b{display:none}.problem-student-card{grid-template-columns:1fr}.problem-student-card aside form>div .button{width:100%}}
.achievements-board,.badge-track{min-width:0}.badge-track-levels{max-width:100%;padding-bottom:12px;display:flex;grid-template-columns:none;gap:8px;overflow-x:auto;overflow-y:hidden;overscroll-behavior-inline:contain;scroll-snap-type:x proximity;scrollbar-width:auto;scrollbar-color:#8a64bd #292630}.badge-track-levels::-webkit-scrollbar{height:11px}.badge-track-levels::-webkit-scrollbar-track{border-radius:99px;background:#292630}.badge-track-levels::-webkit-scrollbar-thumb{border:2px solid #292630;border-radius:99px;background:#8a64bd}.badge-track-level{flex:0 0 116px;min-height:142px;scroll-snap-align:start}.platform-engineer .badge-track-level>strong{font-size:0}.platform-engineer .badge-track-level>strong::after{font-size:.68rem;line-height:1.2}.platform-engineer .badge-track-level:nth-child(1)>strong::after{content:"Czujny Obserwator"}.platform-engineer .badge-track-level:nth-child(2)>strong::after{content:"Tropiciel Usterek"}.platform-engineer .badge-track-level:nth-child(3)>strong::after{content:"Łowca Błędów"}.platform-engineer .badge-track-level:nth-child(4)>strong::after{content:"Diagnosta Platformy"}.platform-engineer .badge-track-level:nth-child(5)>strong::after{content:"Opiekun Jakości"}.platform-engineer .badge-track-level:nth-child(6)>strong::after{content:"Inżynier Napraw"}.platform-engineer .badge-track-level:nth-child(7)>strong::after{content:"Strażnik Stabilności"}.platform-engineer .badge-track-level:nth-child(8)>strong::after{content:"Ekspert Diagnostyki"}.platform-engineer .badge-track-level:nth-child(9)>strong::after{content:"Architekt Niezawodności"}.platform-engineer .badge-track-level:nth-child(10)>strong::after{content:"Mistrz Platformy"}@media(max-width:580px){.badge-track-levels{display:flex;grid-template-columns:none}.badge-track-level{flex-basis:108px;min-height:132px}}
.teacher-bonus-form{padding:18px;display:grid;grid-template-columns:minmax(220px,1fr) 170px;gap:14px;border:1px solid #4c4128;border-radius:14px;background:#211d15}.teacher-bonus-form label{display:grid;gap:6px;color:#d8d3c7;font-weight:800}.teacher-bonus-form .wide{grid-column:1/-1}.teacher-bonus-form select,.teacher-bonus-form textarea{width:100%;box-sizing:border-box;padding:11px;border:1px solid #575046;border-radius:9px;background:#121212;color:#fff;font:inherit}.teacher-bonus-form button{justify-self:start}.teacher-bonus-history{margin-top:18px}.teacher-bonus-history article{padding:12px 0;display:flex;gap:13px;border-top:1px solid #393940}.teacher-bonus-history article>span{height:max-content;padding:6px 9px;border-radius:9px;background:#4a370b;color:#ffe078;font-weight:900}.teacher-bonus-history p{margin:4px 0;color:#c4c4ca}.teacher-bonus-history small{color:#85858e}.student-bonus-notice{margin:0 0 20px;padding:18px;border:1px solid #80631f;border-radius:17px;background:linear-gradient(135deg,#30250e,#1c1915)}.student-bonus-notice header,.student-bonus-notice article{display:flex;align-items:flex-start;gap:13px}.student-bonus-notice header>span{font-size:1.7rem}.student-bonus-notice header small{color:#efc75c;font-weight:900;letter-spacing:.09em}.student-bonus-notice header h2{margin:3px 0 12px}.student-bonus-notice article{padding:11px 0;border-top:1px solid #55451e}.student-bonus-notice article>b{min-width:64px;color:#ffe078}.student-bonus-notice article p{margin:4px 0;color:#d0c9b8}.student-bonus-notice article small{color:#948b78}@media(max-width:650px){.teacher-bonus-form{grid-template-columns:1fr}.teacher-bonus-form .wide{grid-column:auto}.teacher-bonus-form button{width:100%}}

/* Pomoc kontekstowa w edytorze schematów algorytmicznych. */
.button-help{border:1px solid #c79416!important;background:#4b380c!important;color:#fff2a8!important}.button-help:hover{background:#654d12!important;color:#fff!important}.algorithm-explanation-dialog{width:min(1040px,calc(100vw - 32px));max-width:none;max-height:calc(100dvh - 32px);margin:auto;padding:0;border:1px solid #565161;border-radius:22px;background:#17181d;color:#f7f7f8;box-shadow:0 30px 100px #000d;overflow:hidden}.algorithm-explanation-dialog::backdrop{background:#05060bd9;backdrop-filter:blur(4px)}.algorithm-explanation-head{padding:22px 24px;display:flex;justify-content:space-between;gap:20px;border-bottom:1px solid #3b3d46;background:#202229}.algorithm-explanation-head small{color:#ffd45c;font-weight:900;letter-spacing:.08em}.algorithm-explanation-head h2{margin:5px 0 6px}.algorithm-explanation-head p{margin:0;color:#b9bbc4}.algorithm-explanation-head>button{flex:none;width:44px;height:44px;border:1px solid #5b5e69;border-radius:50%;background:#2e3038;color:#fff;font-size:1.8rem;cursor:pointer}.algorithm-explanation-steps{max-height:calc(100dvh - 245px);padding:22px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;overflow:auto}.algorithm-explanation-steps article{padding:18px;border:1px solid #40434d;border-radius:16px;background:#202229}.algorithm-explanation-step-title{display:flex;align-items:center;gap:10px}.algorithm-explanation-step-title span{padding:5px 8px;border-radius:8px;background:#24466d;color:#a9d5ff;font-size:.68rem;font-weight:900}.algorithm-explanation-step-title h3{margin:0;font-size:1.02rem}.algorithm-explanation-steps article>p,.algorithm-explanation-why p{color:#c8cad1;line-height:1.55}.algorithm-explanation-fields{padding:12px;border-radius:11px;background:#14151a}.algorithm-explanation-fields ul{margin:7px 0 0;padding-left:20px;color:#e5e5e8}.algorithm-explanation-fields li+li{margin-top:5px}.algorithm-explanation-notation{margin-top:10px;display:flex;align-items:center;justify-content:space-between;gap:12px}.algorithm-explanation-notation code{padding:8px 10px;border-radius:8px;background:#342c12;color:#ffe27d;font-size:.95rem}.algorithm-explanation-why{margin-top:12px;padding-top:12px;border-top:1px solid #3b3d46}.algorithm-explanation-why strong{color:#8fd6aa}.algorithm-explanation-why p{margin:6px 0 0}.algorithm-explanation-example{margin:0 22px 22px;padding:16px 18px;border:1px solid #81671f;border-radius:14px;background:#2c250f}.algorithm-explanation-example p{margin:6px 0 0;color:#eee5c6;line-height:1.55}@media(max-width:720px){.algorithm-explanation-dialog{width:100vw;max-height:100dvh;border:0;border-radius:0}.algorithm-explanation-steps{max-height:calc(100dvh - 260px);grid-template-columns:1fr;padding:14px}.algorithm-explanation-head{padding:16px}.algorithm-explanation-head p{font-size:.85rem}.algorithm-explanation-notation{align-items:flex-start;flex-direction:column}.algorithm-explanation-example{margin:0 14px 14px}}

/* Stały, jasny kontrast tekstu w ciemnych widokach algorytmów. */
.algorithm-page,.algorithm-lesson-page,.algorithm-explanation-dialog{color-scheme:dark;color:#f8fafc}
.algorithm-page h1,.algorithm-page h2,.algorithm-page h3,.algorithm-page strong,.algorithm-page b,
.algorithm-lesson-page h1,.algorithm-lesson-page h2,.algorithm-lesson-page h3,.algorithm-lesson-page strong,.algorithm-lesson-page b,
.algorithm-explanation-dialog h2,.algorithm-explanation-dialog h3,.algorithm-explanation-dialog strong{color:#f8fafc}
.algorithm-page p,.algorithm-page li,.algorithm-page label,.algorithm-page summary,
.algorithm-lesson-page p,.algorithm-lesson-page li,.algorithm-lesson-page label,
.algorithm-explanation-dialog p,.algorithm-explanation-dialog li{color:#d7dbe4}
.algorithm-page small,.algorithm-page .algorithm-panel-head p,.algorithm-page .algorithm-palette>p{color:#b8bec9}
.algorithm-page input,.algorithm-page select,.algorithm-page textarea{background:#0f1117;color:#f8fafc;border-color:#59606d}
.algorithm-page input::placeholder,.algorithm-page textarea::placeholder{color:#aeb5c1;opacity:1}
.algorithm-explanation-fields strong,.algorithm-explanation-notation strong,.algorithm-explanation-example strong{color:#fff}
.algorithm-explanation-fields li{color:#edf0f5}
.block-save-button{min-height:48px;padding:0 22px!important;border:2px solid #86efac!important;background:#22c55e!important;color:#07130b!important;font-size:1rem!important;font-weight:950!important;letter-spacing:.01em;box-shadow:0 0 0 3px #22c55e2e,0 8px 22px #0007}.block-save-button:hover{border-color:#bbf7d0!important;background:#4ade80!important;color:#041008!important;transform:translateY(-1px)}.block-save-button:focus-visible{outline:3px solid #fff!important;outline-offset:3px}
.class-assignment-legend{margin-top:10px!important;display:flex;flex-wrap:wrap;gap:8px}.class-assignment-legend span{padding:5px 9px;border-radius:999px;font-size:.72rem;font-weight:900}.class-assignment-legend .is-assigned{border:1px solid #ef4444;background:#3b1418;color:#fca5a5}.class-assignment-legend .is-unassigned{border:1px solid #22c55e;background:#103321;color:#86efac}.class-assignment-form option.is-assigned{background:#4a171c;color:#fecaca}.class-assignment-form option.is-unassigned{background:#123c25;color:#bbf7d0}.class-assignment-list article.is-assigned{border-color:#7f2931;background:#2a1518}.class-assignment-list article.is-assigned strong{color:#fecaca}

/* Algorytmy: wspólna kolorystyka strony tytułowej i wszystkich lekcji. */
.algorithm-lesson-page{--algorithm-bg:#110b32;--algorithm-panel:#25165c;--algorithm-panel-strong:#382071;--algorithm-line:#7655ce;--algorithm-pink:#f05ad5;--algorithm-cyan:#39d9eb;--algorithm-orange:#ffae45;--algorithm-text:#fff;--algorithm-muted:#d8d0ef;background:radial-gradient(circle at 78% 5%,#3c227a 0,transparent 28%),radial-gradient(circle at 16% 44%,#25105c 0,transparent 35%),linear-gradient(145deg,#120a31,#171044 48%,#0e0a2a);color:var(--algorithm-text)}
.algorithm-lesson-page:before{content:"";position:fixed;z-index:-1;inset:0;pointer-events:none;background-image:radial-gradient(#9d83ee55 1px,transparent 1px);background-size:32px 32px;mask-image:linear-gradient(#0008,transparent 72%)}
.algorithm-lesson-header{position:sticky;z-index:20;top:0;border-color:#8062cc55;background:#130d35ed;box-shadow:0 12px 30px #09021f66;backdrop-filter:blur(16px)}
.algorithm-lesson-header a{color:#e5def8}.algorithm-lesson-header a:hover{color:#fff}.algorithm-lesson-header span{border:1px solid #f0c67566;background:#53351f;color:#ffd47a}.algorithm-lesson-header strong{color:#fff}
.algorithm-lesson{width:min(1100px,calc(100% - 32px))}.lesson-simple-intro{margin-top:24px;border-color:#7655ce;background:linear-gradient(120deg,#3a2072,#241450);box-shadow:inset 0 1px #ffffff2b,0 16px 36px #08021d55}.lesson-simple-intro small,.lesson-hero small,.lesson-section>div:last-child>small,.lesson-task>small,.lesson-practice>small{color:#ff9ddf}.lesson-simple-intro p,.lesson-hero p,.lesson-section p,.lesson-task p,.lesson-practice p{color:var(--algorithm-muted)}
.lesson-hero{margin:22px 0 30px;padding:42px;border:1px solid #9f72f0;border-radius:26px;background:radial-gradient(circle at 88% 18%,#27d6df42,transparent 32%),linear-gradient(120deg,#5226a9,#6930cd 46%,#147fc0 115%);box-shadow:0 22px 55px #07031c88,inset 0 1px #ffffff44}.lesson-hero h1{color:#fff}.lesson-goals{border-color:#a687ec;background:#21134ecf;box-shadow:inset 0 1px #ffffff24}.lesson-goals ul{color:#e5def8}
.lesson-section{border-color:#7655ce66}.lesson-number{background:linear-gradient(145deg,#ff78d7,#c643c5);color:#fff;box-shadow:0 8px 22px #d94ec755}.lesson-section h2{color:#fff}.lesson-section code{border:1px solid #66d9e866;background:#131b45;color:#83eff5}
.lesson-problem,.lesson-two-columns article,.lesson-explain p,.lesson-order-item,.lesson-editor-steps,.lesson-practice-grid article,.selection-variables article,.selection-round,.selection-passes>div,.gcd-trace>div,.digit-trace-table,.euclid-map,.euclid-steps li{border-color:#6849aa;background:linear-gradient(145deg,#2e1a5e,#1c123e);box-shadow:inset 0 1px #ffffff18}
.lesson-note,.lesson-check,.lesson-universal-rule{border-color:var(--algorithm-orange);background:linear-gradient(115deg,#51361d,#291b3f);color:#fff}.lesson-note strong,.lesson-check strong,.lesson-universal-rule strong{color:#ffd27d}
.lesson-code{border-color:#5374c8;background:#090b25;color:#80eaf2;box-shadow:inset 0 0 28px #2289b321}.lesson-flow>div{box-shadow:inset 0 2px #ffffff55,0 10px 22px #07021f77}.lesson-flow .flow-start{background:#3c8de0}.lesson-flow .flow-end{background:#ed5aa4}.lesson-flow .flow-input{background:#20b9d0}.lesson-flow .flow-output{background:#7551da}.lesson-flow .flow-process{background:#e258c8}.lesson-flow i{color:#ffbd55}
.lesson-order-item:hover{border-color:#d660dc;background:#3b2071}.lesson-order-item .order-buttons button{border-color:#8067c9;background:#21144b;color:#fff}.lesson-order-item .order-buttons button:hover{background:#4f2c8f}.lesson-points-badge{background:linear-gradient(135deg,#ffb548,#ff7e51);color:#241034}.lesson-order-result.is-good{color:#68f1c8}.lesson-order-result.is-bad{color:#ff9fbd}
.lesson-task,.lesson-practice{border-color:#9a52cb;background:radial-gradient(circle at 12% 16%,#b33ca06b,transparent 42%),linear-gradient(135deg,#271351,#3d1760);box-shadow:0 18px 46px #08021d66}.lesson-task .button-primary,.lesson-editor-action .button-primary,.lesson-check-order{border:0;background:linear-gradient(135deg,#ffbc50,#ff8c3e);color:#241034;box-shadow:0 12px 24px #ff7b3944}.algorithm-lesson-page .button-outline{border-color:#e768dc;background:#4e2280;color:#fff}.algorithm-lesson-page .button-outline:hover{border-color:#39d9eb;background:#6332a2}
.algorithm-lesson-page table{border-color:#6849aa;background:#211344;color:#fff}.algorithm-lesson-page th{background:#39216f;color:#fff}.algorithm-lesson-page td{border-color:#604394;color:#ddd5f1}.algorithm-lesson-page input,.algorithm-lesson-page select,.algorithm-lesson-page textarea{border-color:#7655ce;background:#151035;color:#fff}.algorithm-lesson-page input::placeholder,.algorithm-lesson-page textarea::placeholder{color:#bcb2d4;opacity:1}
.algorithm-lesson-page .knowledge-context-strip{border-color:#7655ce;background:linear-gradient(135deg,#2d195e,#1d123e);box-shadow:inset 0 1px #ffffff1f}.algorithm-lesson-page .knowledge-context-strip>div:first-child small{color:#ff9ddf}.algorithm-lesson-page .knowledge-context-strip p{color:#d8d0ef}.algorithm-lesson-page .knowledge-context-strip a{border-color:#6548a3;background:#251650}.algorithm-lesson-page .knowledge-context-strip a:hover{border-color:#39d9eb;background:#30206a}.algorithm-lesson-page .knowledge-context-strip a small{color:#ffbd67}.algorithm-lesson-page .knowledge-context-strip a span,.algorithm-lesson-page .knowledge-context-strip a em{color:#d8d0ef}
.algorithm-lesson-page :is(.lesson-steps li,.lesson-trace>div,.lesson-editor-steps article,.lesson-field-demo,.practice-test,.decision-demo,.comparison-tests article,.connection-methods article,.connection-table>div,.connection-map,.minmax-visual>div,.minmax-cases article,.merge-diagram,.variable-boxes article,.operation-pair span,.connection-reasons li,.lesson-deep-explanation,.explanation-grid article,.value-journey,.child-reason-list li,.modulo-examples article,.modulo-reading,.place-value article,.digit-tools article,.digit-peeling,.unknown-digits span,.loop-variable-cards article,.loop-cycle,.loop-operation-list code,.loop-map,.loop-trace-table>div,.zero-case,.linear-search-demo>div,.index-demo>div,.search-tools article,.linear-flow-map,.lesson-block-primer,.lesson-block-primer article,.gcd-groups article,.euclid-steps>div,.selection-round-steps li,.algorithm-challenge-banner,.algorithm-test-example,.algorithm-challenge-guide,.algorithm-challenge-guide article){border-color:#6548a3;background:linear-gradient(145deg,#2d195e,#1b123d);color:#fff;box-shadow:inset 0 1px #ffffff17}
.algorithm-lesson-page :is(.lesson-trace span,.practice-test code,.comparison-visual em,.connection-table strong,.map-node,.merge-paths span,.value-journey span,.selection-round span,.selection-passes span,.algorithm-test-example span,.algorithm-challenge-banner li){border-color:#7655ce;background:#39236f;color:#fff}.algorithm-lesson-page :is(.connection-map,.merge-diagram,.digit-peeling,.loop-cycle,.loop-map,.linear-flow-map,.euclid-map){background:radial-gradient(circle at 80% 15%,#2bbdcc33,transparent 34%),linear-gradient(145deg,#251653,#171039)}
.algorithm-lesson-page :is(.digit-trace-table>div,.loop-trace-table>div,.gcd-trace>div,.selection-passes>div){background:#291855}.algorithm-lesson-page :is(.digit-trace-table>div:nth-child(even),.loop-trace-table>div:nth-child(even),.gcd-trace>div:nth-child(even)){background:#342069}.algorithm-lesson-page :is(.digit-trace-table>div:first-child,.loop-trace-table>div:first-child,.gcd-trace>div:first-child){background:#51306f;color:#fff}.algorithm-lesson-page :is(.editor-step-number,.digit-tools article>span,.lesson-block-primer article>span),.algorithm-lesson-page .connection-reasons li::before{background:linear-gradient(145deg,#ff78d7,#c643c5);color:#fff}
.algorithm-lesson-page :is(.step-example,.zero-case,.lesson-block-primer,.algorithm-score-note,.algorithm-test-hint,.lesson-points-badge){border-color:#d49449;background:linear-gradient(120deg,#51351d,#2b1945)}.algorithm-lesson-page :is(.answer-yes,.lesson-trace .is-result,.linear-search-demo .is-found,.euclid-steps .is-result,.gcd-trace .is-result,.selection-round .is-sorted,.selection-passes .done){border-color:#3fe0b2;background:#174c43;color:#b9ffeb}.algorithm-lesson-page :is(.answer-no,.lesson-order-item.is-wrong){border-color:#f06b98;background:#5a2148;color:#ffe3ee}
@media(max-width:760px){.lesson-hero{padding:28px 22px}.algorithm-lesson-header{position:relative}.algorithm-lesson{width:min(100% - 24px,1100px)}.lesson-section>div:last-child{min-width:0}.lesson-code{max-width:100%;overflow:auto}.selection-passes{max-width:100%;overflow-x:auto}.lesson-order-item{min-width:0}.lesson-order-item b,.lesson-order-item small{overflow-wrap:anywhere}}
.teacher-student-name-link{color:inherit;text-decoration:none}.teacher-student-name-link:hover{text-decoration:underline}

/* Kalendarz klasy: czytelna lista przydzielonych lekcji. */
.teacher-page .class-calendar .class-assignment-form label>span{color:#4f5b78}
.teacher-page .class-calendar .class-assignment-list article.is-assigned{padding:15px 16px;border:1px solid #c8d1e8;border-left:5px solid #6266d9;background:linear-gradient(135deg,#fbfcff,#edf1ff);color:#171b32;box-shadow:0 7px 18px #1d2c5b14}
.teacher-page .class-calendar .class-assignment-list article.is-assigned strong{color:#19213d;font-size:.94rem;line-height:1.3}
.teacher-page .class-calendar .class-assignment-list article.is-assigned small{color:#5b6681;font-size:.72rem;line-height:1.4}
.teacher-page .class-calendar .class-assignment-list article.is-assigned>span{color:#3f4a68;font-size:.78rem;font-weight:750;line-height:1.4}
.teacher-page .class-calendar .class-assignment-action,.teacher-page .class-calendar .class-assignment-remove{min-height:40px;padding:9px 12px;display:inline-flex;align-items:center;justify-content:center;border:1px solid transparent;border-radius:10px;font:inherit;font-size:.76rem;font-weight:850;line-height:1.2;text-decoration:none;white-space:nowrap;cursor:pointer}
.teacher-page .class-calendar .class-assignment-action.is-preview{border-color:#aebfe4;background:#fff;color:#27477f}
.teacher-page .class-calendar .class-assignment-action.is-preview:hover{border-color:#5879ba;background:#edf4ff;color:#193b77}
.teacher-page .class-calendar .class-assignment-action.is-progress{background:linear-gradient(135deg,#625cda,#447fd6);color:#fff;box-shadow:0 6px 14px #4d63c733}
.teacher-page .class-calendar .class-assignment-action.is-progress:hover{background:linear-gradient(135deg,#514bc5,#346ec3);color:#fff}
.teacher-page .class-calendar .class-assignment-remove{border-color:#e7a9b0;background:#fff1f2;color:#9f1d2d}
.teacher-page .class-calendar .class-assignment-remove:hover{border-color:#cf6672;background:#ffe4e6;color:#7f1422}
.teacher-page .class-calendar .class-assignment-action:focus-visible,.teacher-page .class-calendar .class-assignment-remove:focus-visible{outline:3px solid #67a4ff;outline-offset:2px}
@media(max-width:900px){.teacher-page .class-calendar .class-assignment-list article.is-assigned{padding:16px;gap:10px}.teacher-page .class-calendar .class-assignment-action,.teacher-page .class-calendar .class-assignment-remove,.teacher-page .class-calendar .class-assignment-list article>form{width:100%}.teacher-page .class-calendar .class-assignment-action,.teacher-page .class-calendar .class-assignment-remove{min-height:46px;font-size:.84rem}.teacher-page .class-calendar .class-assignment-list article.is-assigned strong{font-size:1rem}.teacher-page .class-calendar .class-assignment-list article.is-assigned>span{font-size:.82rem}}

/* UX v2: wspólna warstwa dla wszystkich widoków /teacher/. */
.teacher-page,.teacher-review-page,.teacher-lab-page{
  --tv2-ground:#202641;--tv2-ground-2:#3b4380;--tv2-surface:#f8f9ff;--tv2-surface-2:#eef1fb;
  --tv2-ink:#171b32;--tv2-muted:#65708d;--tv2-line:#d6dcef;--tv2-accent:#5b55d9;--tv2-accent-2:#3e78d6;
  min-height:100vh;background:radial-gradient(circle at 85% 4%,#6571c9 0,transparent 34%),linear-gradient(145deg,#282f4e,#4c58a8);color:var(--tv2-ink)
}
.teacher-page .teacher-shell,.teacher-page .teacher-review-shell,.teacher-review-page .teacher-review-shell,.teacher-lab-page .teacher-lab-shell{width:min(1380px,calc(100% - 32px));margin-inline:auto;padding:28px 0 64px}
.teacher-page .teacher-header,.teacher-page .teacher-review-head,.teacher-review-page .teacher-review-head,.teacher-lab-page .editor-head{padding:24px;border:1px solid #ffffff2b;border-radius:20px;background:#151a32d9;color:#fff;box-shadow:0 18px 48px #10142b42;backdrop-filter:blur(12px)}
.teacher-page .teacher-header h1,.teacher-page .teacher-review-head h1,.teacher-review-page .teacher-review-head h1,.teacher-lab-page .editor-head h1{margin:6px 0;font-size:clamp(1.8rem,4vw,2.55rem);letter-spacing:-.025em;color:#fff}
.teacher-page .teacher-header p,.teacher-page .teacher-review-head p,.teacher-review-page .teacher-review-head p,.teacher-lab-page .editor-head p{color:#d8dcf2}
.teacher-page .teacher-header a,.teacher-page .teacher-review-head a,.teacher-review-page .teacher-review-head a,.teacher-lab-page .editor-head a{color:#cfd6ff;font-weight:750}
.teacher-page .teacher-header small,.teacher-page .teacher-review-head small,.teacher-review-page .teacher-review-head small{color:#9edcff;font-weight:850;letter-spacing:.1em}
.teacher-page .teacher-section-tabs,.teacher-page .teacher-progress-tabs,.teacher-page .teacher-review-tabs{margin-top:14px;border-color:#ffffff38;background:#171c38d9;box-shadow:0 10px 28px #14183135}
.teacher-page .teacher-section-tabs a,.teacher-page .teacher-progress-tabs a,.teacher-page .teacher-review-tabs button{color:#d6dbf0}
.teacher-page .teacher-section-tabs a:hover,.teacher-page .teacher-progress-tabs a:hover,.teacher-page .teacher-review-tabs button:hover{background:#ffffff18;color:#fff}
.teacher-page .teacher-section-tabs a.active,.teacher-page .teacher-progress-tabs a.active,.teacher-page .teacher-review-tabs button.active{background:linear-gradient(135deg,#766ff0,#4d8de7);color:#fff}
.teacher-page :is(.teacher-projects,.teacher-panel,.teacher-student-section,.teacher-review-panel,.portfolio-panel,.onboarding-card,.knowledge-control-section){border-color:var(--tv2-line);background:var(--tv2-surface);color:var(--tv2-ink);box-shadow:0 14px 38px #11162d2e}
.teacher-page :is(.teacher-projects,.teacher-panel,.teacher-student-section,.teacher-review-panel){margin-top:18px;border-radius:18px}
.teacher-page :is(.teacher-projects,.teacher-panel) h2,.teacher-page :is(.teacher-projects,.teacher-panel) h3{color:var(--tv2-ink)}
.teacher-page :is(.teacher-projects,.teacher-panel) p,.teacher-page .teacher-toolbar p,.teacher-page .teacher-empty{color:var(--tv2-muted)}
.teacher-page :is(.teacher-table,.teacher-matrix){background:var(--tv2-surface);color:var(--tv2-ink)}
.teacher-page :is(.teacher-table,.teacher-matrix) th{border-color:var(--tv2-line);background:#e7ebf8;color:#46506d}
.teacher-page :is(.teacher-table,.teacher-matrix) td{border-color:var(--tv2-line);color:var(--tv2-ink)}
.teacher-page :is(.teacher-table,.teacher-matrix) td small{color:var(--tv2-muted)}
.teacher-page .table-wrap{border:1px solid var(--tv2-line);border-radius:14px;background:var(--tv2-surface);overflow:auto}
.teacher-page :is(input,select,textarea){border:1px solid #bcc6df;border-radius:10px;background:#fff;color:#171b32}
.teacher-page :is(input,select,textarea):focus{border-color:#6d70e4;outline:3px solid #6d70e426}
.teacher-page .button-primary{border-color:transparent;background:linear-gradient(135deg,var(--tv2-accent),var(--tv2-accent-2));color:#fff}
.teacher-page .button-outline{border-color:#aeb8d5;background:#fff;color:#303a5b}
.teacher-page .button-outline:hover{border-color:#6b70dc;background:#eef0ff;color:#25295c}
.teacher-page :is(.success,.warning,.dashboard-notice){border-radius:13px}
.teacher-page .teacher-stats article{border-color:var(--tv2-line);background:var(--tv2-surface);color:var(--tv2-ink)}
.teacher-page .teacher-stats b{color:#534fc7}.teacher-page .teacher-stats span{color:var(--tv2-muted)}
.teacher-page .teacher-student-layout{background:transparent}.teacher-page .teacher-student-sidebar{border-color:#ffffff25;background:#161b35e8;color:#fff}.teacher-page .teacher-student-sidebar nav a{color:#d8dcf1}.teacher-page .teacher-student-sidebar nav a:hover{background:#ffffff16}
.teacher-page .teacher-student-main>header{padding:22px;border:1px solid #ffffff2b;border-radius:18px;background:#151a32d9;color:#fff}.teacher-page .teacher-student-main>header p{color:#d8dcf2}
.teacher-page .review-status{background:#e9edf7;color:#4b5571}.teacher-page .review-status.is-approved{background:#dcfce7;color:#166534}.teacher-page .review-status.is-waiting,.teacher-page .review-status.published{background:#fef3c7;color:#92400e}
.teacher-page .teacher-practice-review,.teacher-page .problem-report-card{border-color:var(--tv2-line);background:var(--tv2-surface-2);color:var(--tv2-ink)}
.teacher-page .onboarding-head{padding:22px;border:1px solid #ffffff2b;border-radius:20px;background:#151a32d9}.teacher-page .onboarding-head p{color:#d8dcf2}.teacher-page .onboarding-head li{color:#c7cee8}.teacher-page .onboarding-head li.active{border-color:#8edcff;background:#294c7d}
.teacher-page .subject-choice-grid span{border-color:#c8d0e5;background:#f2f4fb;color:#202640}.teacher-page .subject-choice-grid input:checked+span{border-color:#5d64dc;background:#e8e9ff;box-shadow:inset 0 0 0 1px #5d64dc}
@media(max-width:760px){.teacher-page .teacher-shell,.teacher-page .teacher-review-shell,.teacher-review-page .teacher-review-shell,.teacher-lab-page .teacher-lab-shell{width:min(100% - 20px,1380px);padding-top:12px}.teacher-page .teacher-header,.teacher-page .teacher-review-head,.teacher-review-page .teacher-review-head,.teacher-lab-page .editor-head{padding:18px}.teacher-page .teacher-section-tabs,.teacher-page .teacher-progress-tabs{border-radius:12px}.teacher-page .teacher-projects,.teacher-page .teacher-panel{padding:15px}}
.student-work-shell{max-width:none}.student-work-map{overflow:hidden}.student-work-scroll{overflow:auto;max-width:100%;padding-bottom:.5rem}.student-work-scroll table{border-collapse:separate;border-spacing:10px;min-width:max-content;width:100%}.student-work-scroll th,.student-work-scroll td{vertical-align:top}.student-work-scroll thead th{background:#17213a;color:#fff;padding:14px 16px;text-align:left;border-radius:12px}.student-work-scroll tbody>tr>th{position:sticky;left:0;z-index:2;width:190px;max-width:190px;background:#eef3ff;color:#15213b;padding:16px;border-radius:12px;text-align:left}.student-work-scroll td{width:230px;max-width:230px}.student-work-card{display:flex;min-height:132px;height:100%;flex-direction:column;gap:7px;padding:14px;border:1px solid #cbd7ef;border-radius:14px;background:#fff;color:#14213d;text-decoration:none;box-shadow:0 5px 16px rgba(26,43,76,.08);transition:.16s ease}.student-work-card:hover,.student-work-card:focus-visible{border-color:#326fc4;transform:translateY(-2px);box-shadow:0 10px 24px rgba(26,65,125,.16)}.student-work-card strong{font-size:15px;line-height:1.25}.student-work-card small{color:#62708a;line-height:1.35}.student-work-card span{margin-top:auto;color:#155e44;font-weight:800;font-size:12px}.student-work-shell .teacher-header>div>small{display:block;margin:10px 0 3px;color:#64748b;font-weight:800;letter-spacing:.12em}@media(max-width:720px){.student-work-scroll tbody>tr>th{width:145px;max-width:145px}.student-work-scroll td{width:205px;max-width:205px}.student-work-card{min-height:120px}}

/* Konkursy i olimpiady — wspólne standardy UX dla wszystkich kursów. */
.am-page{--am-bg:#111b36;--am-panel:#182541;--am-line:#3b4d70;--am-text:#f7faff;--am-muted:#bdc8dc;--am-teal:#45ddc8;--am-yellow:#ffd56a;background:radial-gradient(circle at 85% 2%,#315d8f 0,transparent 34%),linear-gradient(145deg,#17213d,#24345d 54%,#182944)!important}.am-top{height:auto;min-height:66px;border-color:#ffffff24!important;background:#101a32e8!important;box-shadow:0 10px 30px #0810203d;backdrop-filter:blur(16px)}.am-top a{min-height:42px;padding:9px 12px;display:inline-flex;align-items:center;border-radius:10px;font-weight:800}.am-top a:hover{background:#ffffff12;color:#fff}.am-hero,.am-modules article,.am-module-head,.am-questions article{box-shadow:0 16px 38px #07102035}.am-modules article{transition:transform .18s,border-color .18s}.am-modules article:hover{transform:translateY(-2px);border-color:#45ddc8}.am-modules a,.am-next a{min-height:44px;display:inline-flex;align-items:center;justify-content:center}.am-page :focus-visible{outline:3px solid #6debd8;outline-offset:3px}
.logic-page{--logic-bg:#eef1fb;--logic-ink:#171b32;--logic-muted:#626d89;--logic-card:#fff;--logic-line:#ccd4e8;--logic-accent:#5b55d9;min-height:100vh;background:radial-gradient(circle at 90% 0,#d8d9ff 0,transparent 34%),linear-gradient(145deg,#f7f8ff,#e9edf8)!important}.logic-topbar{min-height:68px;height:auto;border-color:#d3daec;background:#f9faffed;box-shadow:0 9px 25px #1d2b5a14}.logic-topbar a{min-height:42px;padding:9px 11px;display:inline-flex;align-items:center;border-radius:10px;font-weight:800}.logic-topbar a:hover{background:#e9ebff;color:#3f39b1}.logic-hero{background:radial-gradient(circle at 90% 0,#7e82ef 0,transparent 35%),linear-gradient(135deg,#202746,#3e4380 58%,#4d4595)}.logic-edition-card,.logic-principles article,.logic-stage,.logic-exercise-card,.logic-task-card,.logic-score-info{box-shadow:0 12px 30px #26345d12}.logic-edition-card,.logic-exercise-card{transition:transform .18s,border-color .18s,box-shadow .18s}.logic-edition-card:hover,.logic-exercise-card:hover{transform:translateY(-2px);border-color:#8f8ae6;box-shadow:0 15px 34px #3f438526}.logic-exercise-card{min-height:72px}.logic-answer-label input,.logic-choices span{min-height:50px}.logic-page :focus-visible{outline:3px solid #6c72e8;outline-offset:3px}
.wkp-page :is(.wkp-exam-intro,.wkp-exam-list article,.wkp-exam-sidebar,.wkp-exam-question,.wkp-exam-result>section,.wkp-ranking-hero,.wkp-ranking-table,.wkp-ranking-empty){border-color:#ffffff24!important;background:linear-gradient(145deg,#182540e8,#111a30ed)!important;box-shadow:0 14px 36px #07102030}.wkp-page .wkp-exam-intro{background:radial-gradient(circle at 92% 0,#31bca638,transparent 42%),linear-gradient(145deg,#192a49,#111a30)!important}.wkp-page .wkp-exam-list article{margin-bottom:12px}.wkp-page .wkp-exam-number{background:#17453e;color:#8cf0d8}.wkp-page :is(.wkp-exam-meta span,.wkp-result-breakdown article,.wkp-exam-sidebar nav a){background:#0d172a;color:#c5d2e6}.wkp-page .wkp-exam-options span{min-height:54px;background:#0f192c}.wkp-page .wkp-exam-options input:checked+span{border-color:#75e6cf;background:#17443d}.wkp-page .wkp-exam-input input{min-height:52px;background:#0b1426}.wkp-page :is(.wkp-exam-controls .button,.wkp-exam-cta .button,.wkp-result-actions .button){min-height:46px}.wkp-page .wkp-ranking-table tr.is-current{background:#17443d}.wkp-page .wkp-ranking-table th{color:#c3cee0}.wkp-page .wkp-ranking-table td{color:#f7faff}
@media(max-width:720px){.am-top{position:relative;padding:10px 12px;align-items:stretch;flex-direction:column}.am-top a{justify-content:center;border:1px solid #ffffff20;background:#ffffff0b}.am-wrap{padding:22px 12px 55px}.am-hero{padding:24px;border-radius:21px}.am-groups{padding-bottom:3px;overflow-x:auto}.am-groups a{min-width:max-content}.am-info{padding:16px}.am-modules article{padding:16px}.logic-topbar{position:relative;height:auto;padding:10px 12px;align-items:stretch;flex-direction:column}.logic-topbar nav{display:grid;grid-template-columns:1fr 1fr;gap:8px}.logic-topbar a{justify-content:center;border:1px solid #d6dcef;background:#fff}.logic-hero{padding:27px;border-radius:22px}.logic-hero-actions{align-items:stretch;flex-direction:column}.logic-hero-actions .button{width:100%;min-height:48px}.wkp-page .wkp-exam-list article{padding:18px;gap:14px}.wkp-page :is(.wkp-exam-controls .button,.wkp-exam-cta .button){width:100%;justify-content:center}.wkp-page .wkp-ranking-hero{padding:25px}.wkp-page .wkp-ranking-table :is(th,td){padding:13px 12px;white-space:nowrap}}

/* Szkoły, przedmioty i kreator zajęć */
.onboarding-page,.subject-choice-page{min-height:100vh;background:radial-gradient(circle at 80% 10%,#7144c955,transparent 36%),linear-gradient(145deg,#11152d,#24205a 55%,#173a68);color:#fff}.onboarding-shell{width:min(1180px,calc(100% - 32px));padding:44px 0}.onboarding-head{margin-bottom:24px}.onboarding-head>span,.subject-choice-shell header small{color:#8ddaff;font-size:.74rem;font-weight:950;letter-spacing:.16em}.onboarding-head h1,.subject-choice-shell h1{margin:6px 0 8px;font-size:clamp(2rem,5vw,3.6rem);letter-spacing:-.045em}.onboarding-head p,.subject-choice-shell header p{max-width:720px;color:#c6cce5}.onboarding-head ol{margin:28px 0 0;padding:0;display:flex;gap:10px;list-style:none}.onboarding-head li{padding:9px 15px;display:flex;align-items:center;gap:8px;border:1px solid #ffffff24;border-radius:999px;color:#9299bc}.onboarding-head li b{width:25px;height:25px;display:grid;place-items:center;border-radius:50%;background:#ffffff12}.onboarding-head li.active{border-color:#6fdcff;background:#173e6c;color:#fff}.onboarding-card{padding:26px;border:1px solid #ffffff25;border-radius:24px;background:#11162cdd;box-shadow:0 22px 60px #05081866}.onboarding-card h2{margin:0 0 7px;font-size:1.7rem}.onboarding-card>p{margin:0 0 22px;color:#aeb6d7}.subject-choice-grid{margin-bottom:24px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.subject-choice-grid label{cursor:pointer}.subject-choice-grid input{position:absolute;opacity:0}.subject-choice-grid span{min-height:74px;padding:12px;display:flex;align-items:center;gap:11px;border:1px solid #3b426a;border-radius:14px;background:#181d3a}.subject-choice-grid i{font-size:1.45rem;font-style:normal}.subject-choice-grid input:checked+span{border-color:#63d9ff;background:linear-gradient(135deg,#164b79,#3a2782);box-shadow:inset 0 0 0 1px #63d9ff}.class-subject-list{margin-bottom:24px;display:grid;gap:13px}.class-subject-list fieldset{padding:18px;border:1px solid #3c456c;border-radius:16px}.class-subject-list legend{padding:0 10px}.class-subject-list legend small{margin-left:10px;color:#9fa8ca}.class-subject-list label{margin:7px 14px 4px 0;display:inline-flex;gap:7px;align-items:center}.class-subject-list input{accent-color:#55d6ff}.subject-choice-shell{width:min(1040px,calc(100% - 32px));margin:auto;padding:8vh 0 40px}.subject-choice-shell header{text-align:center}.student-subject-grid{margin:34px 0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.student-subject-card{min-height:160px;padding:21px;display:grid;grid-template-columns:auto 1fr;gap:15px;border:1px solid #ffffff25;border-radius:21px;background:linear-gradient(145deg,#20294cdd,#161a36dd);color:#fff;text-align:left;cursor:pointer;box-shadow:0 15px 35px #06081755}.student-subject-card:hover,.student-subject-card.selected{border-color:#68dcff;transform:translateY(-3px);background:linear-gradient(145deg,#215e8e,#3b2a82)}.student-subject-card>i{width:58px;height:58px;display:grid;place-items:center;border-radius:16px;background:#ffffff13;font-size:2rem;font-style:normal}.student-subject-card span b,.student-subject-card span small{display:block}.student-subject-card span b{font-size:1.15rem}.student-subject-card span small{margin-top:6px;color:#c4cae4}.student-subject-card em{grid-column:1/-1;color:#8ce4ff;font-size:.8rem;font-style:normal;font-weight:850}.subject-choice-empty{margin:34px auto;padding:38px;max-width:620px;border:1px solid #ffffff22;border-radius:22px;background:#131936cc;text-align:center}.subject-choice-empty>span{font-size:3rem}.subject-choice-logout{display:block;color:#bcc5e4;text-align:center}.active-subject-banner{margin-bottom:14px;padding:18px 20px;display:flex;align-items:center;justify-content:space-between;gap:20px;border:1px solid #616bd5;border-radius:18px;background:linear-gradient(110deg,#2b2c74,#374ba5 58%,#266fa4);box-shadow:0 14px 30px #0b102844}.active-subject-banner>div{display:flex;align-items:center;gap:14px}.active-subject-banner>div>span{width:54px;height:54px;display:grid;place-items:center;border-radius:15px;background:#ffffff18;font-size:1.8rem}.active-subject-banner small{color:#aee8ff;font-size:.68rem;font-weight:900;letter-spacing:.13em}.active-subject-banner h2{margin:3px 0 2px}.active-subject-banner p{margin:0;color:#d1d6ef;font-size:.82rem}.subject-resource-strip{margin-bottom:22px;display:flex;gap:10px;overflow-x:auto}.subject-resource-strip>a{min-width:210px;padding:13px 15px;display:flex;align-items:center;gap:11px;border:1px solid #3d4369;border-radius:14px;background:#181c35;color:#fff;text-decoration:none}.subject-resource-strip>a:hover{border-color:#6775e4;background:#232953}.subject-resource-strip i{font-size:1.5rem;font-style:normal}.subject-resource-strip b,.subject-resource-strip small{display:block}.subject-resource-strip small{margin-top:3px;color:#979fbe;font-size:.67rem}
@media(max-width:850px){.subject-choice-grid,.student-subject-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.active-subject-banner{align-items:flex-start;flex-direction:column}.onboarding-head ol{overflow-x:auto}}
@media(max-width:560px){.subject-choice-grid,.student-subject-grid{grid-template-columns:1fr}.onboarding-card{padding:18px}.onboarding-head li{padding:8px 10px;font-size:.75rem}}
.class-context-strip{margin:18px 0;padding:15px 18px;display:flex;align-items:center;justify-content:space-between;gap:18px;border:1px solid #39415f;border-radius:16px;background:#171b2d}.class-context-strip small{display:block;margin-bottom:7px;color:#8d9bc8;font-size:.68rem;font-weight:900;letter-spacing:.12em}.class-subject-badges{display:flex;flex-wrap:wrap;gap:7px}.class-subject-badges span{padding:6px 10px;border:1px solid #5362a6;border-radius:999px;background:#27336a;color:#e8ecff;font-size:.75rem;font-weight:800}.class-subject-badges span.missing{border-color:#805c21;background:#3c2d16;color:#ffd88c}.import-schema-help{margin-top:28px;padding:18px;border:1px solid #353944;border-radius:15px;background:#15161a}.import-schema-help h2{margin-top:0}.import-schema-help code{padding:4px 7px;border-radius:6px;background:#292b32;color:#a8dbff}@media(max-width:640px){.class-context-strip{align-items:flex-start;flex-direction:column}}
.workbook-tabs{display:flex;gap:4px;padding:12px 12px 0;background:#171b27}.workbook-tabs button{padding:9px 17px;border:1px solid #47516c;border-bottom:0;border-radius:9px 9px 0 0;background:#252b3b;color:#aab3cb;font:inherit;font-size:.78rem;font-weight:800}.workbook-tabs button.active{background:#f5f8ff;color:#15213b}.workbook-legend{padding:10px 13px;display:flex;flex-wrap:wrap;gap:8px;border-bottom:1px solid #d7deed;background:#f5f8ff}.workbook-legend span{padding:4px 8px;border-radius:5px;color:#172033;font-size:.68rem;font-weight:850}.workbook-legend .reviewed{background:#b9efcf}.workbook-legend .working{background:#ffe49a}.workbook-legend .waiting,.workbook-legend .overdue{background:#ffc1c6}.workbook-legend .voluntary{background:#bcdcff}.workbook-legend .assigned{background:#dde2eb}.student-work-map .student-work-scroll{padding:0;background:#eef2f8}.student-work-map .student-work-scroll table{border-spacing:1px;margin:0;background:#c9d2e2}.student-work-map .student-work-scroll thead th{border-radius:0;background:#243251;padding:11px 12px}.student-work-map .student-work-scroll tbody>tr>th{width:175px;max-width:175px;border-radius:0;background:#dce5f4;padding:10px 12px;font-size:.78rem}.student-work-map .student-work-scroll td{width:150px;max-width:150px;padding:0;background:#fff}.student-work-cell{min-height:72px;padding:8px 9px;display:flex;flex-direction:column;justify-content:space-between;gap:5px;color:#14213d;text-decoration:none}.student-work-cell strong{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;font-size:.72rem;line-height:1.25}.student-work-cell span{font-size:.74rem;font-weight:950}.student-work-cell.reviewed{background:#c6f2d7}.student-work-cell.working{background:#ffeba9}.student-work-cell.waiting,.student-work-cell.overdue{background:#ffc7cb}.student-work-cell.voluntary{background:#c9e3ff}.student-work-cell.assigned{background:#e5e8ee}.student-work-cell:hover{outline:2px solid #326fc4;position:relative;z-index:1;filter:brightness(.98)}
