.runner-root{--space: 8px;--radius: 6px;--font-size: 13px;--font-mono: "Monaco", "Menlo", "Ubuntu Mono", monospace}div.runner-root{background:var(--paper);border-radius:calc(var(--radius) / 2)}div.runner-root .toolbar{gap:calc(var(--space) / 2);padding:calc(var(--space) / 2);background:var(--paper-shade);border:1px solid var(--paper-border);border-radius:var(--radius);box-shadow:var(--shadow)}div.runner-root .toolbar input[type=range]{-moz-appearance:none;appearance:none;-webkit-appearance:none;height:calc(var(--space) * 2);background:transparent;border:none;cursor:pointer}div.runner-root .toolbar input[type=range]::-webkit-slider-runnable-track{height:calc(var(--space) / 2);background:var(--paper);border:1px solid var(--paper-border);border-radius:calc(var(--radius) / 2)}div.runner-root .toolbar input[type=range]::-moz-range-track{height:calc(var(--space) / 2);background:var(--paper);border:1px solid var(--paper-border);border-radius:calc(var(--radius) / 2)}div.runner-root .toolbar input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:calc(var(--space) * 1.5);height:calc(var(--space) * 1.5);margin-top:calc(var(--space) / -2);border-radius:50%;background:linear-gradient(145deg,var(--blue) 0%,var(--ink-blue) 100%);border:1px solid var(--paper);box-shadow:var(--shadow);cursor:pointer}div.runner-root .toolbar input[type=range]::-moz-range-thumb{width:calc(var(--space) * 1.5);height:calc(var(--space) * 1.5);border-radius:50%;background:linear-gradient(145deg,var(--blue) 0%,var(--ink-blue) 100%);border:1px solid var(--paper);box-shadow:var(--shadow);cursor:pointer}div.runner-root .toolbar input[type=range]::-moz-range-progress{height:calc(var(--space) / 2);background:var(--blue);border-radius:calc(var(--radius) / 2)}div.runner-root .editor-container,div.runner-root .debug-bar,div.runner-root .test-bar,div.runner-root .case-bar,div.runner-root .stack-frame{background:var(--paper);border-radius:var(--radius);border:1px solid var(--paper-border);box-shadow:var(--shadow)}div.runner-root .debug-bar,div.runner-root .test-bar,div.runner-root .case-bar{padding:var(--space);background:var(--paper-shade);animation:fadeIn .3s ease-out}div.runner-root .console-output{color:var(--paper-text);padding:0;border-radius:var(--radius);font-family:var(--font-mono);font-size:var(--font-size);animation:fadeIn .3s ease-out}div.runner-root .console-input{background:var(--paper-shade);border:1px solid var(--paper-border);border-radius:var(--radius);padding:calc(var(--space) / 2);margin-top:calc(var(--space) / 2);box-shadow:var(--shadow);gap:calc(var(--space) / 2);animation:fadeIn .3s ease-out}div.runner-root .console-input input[type=text]{padding:calc(var(--space) / 2) var(--space);border:1px solid var(--red);border-radius:calc(var(--radius) / 2);background:var(--paper);color:var(--paper-text);font-family:var(--font-mono);font-size:var(--font-size);transition:all .2s ease;flex:1}div.runner-root .console-input input[type=text]:focus{outline:none;border-color:var(--ink-blue);box-shadow:0 0 0 2px #2563eb26}div.runner-root .console-input input[type=text]::placeholder{color:var(--red);font-style:italic}div.runner-root .console-output span.hl{background-color:#fc03;color:var(--paper-text);border-radius:4px;padding:0 2px}div.runner-root .stack-frame{margin-bottom:var(--space);transition:all .2s ease;animation:slideIn .3s ease-out}div.runner-root .stack-frame:hover{box-shadow:var(--shadow-strong)}div.runner-root .frame-header th{background:var(--paper);padding:0;border-bottom:1px solid var(--paper-border)}div.runner-root .function-name{padding:calc(var(--space) / 2) var(--space)}div.runner-root .variable-value:before{color:var(--paper-muted)}div.runner-root .function-name,div.runner-root .variable-name{color:var(--ink-blue);font-family:var(--font-mono);font-weight:700;font-size:var(--font-size)}div.runner-root .line-number{display:flex;align-items:center;color:var(--paper);font-family:var(--font-mono);font-size:calc(var(--font-size) - 1px);background:var(--ink-orange);padding:calc(var(--space) / 2) var(--space);font-weight:600}div.runner-root .variable-entry td{background:var(--paper);color:var(--paper-text);padding:calc(var(--space) / 2) var(--space);border-bottom:1px solid var(--paper-border)}div.runner-root .variable-entry:last-child td{border-bottom:none}div.runner-root .variable-entry:hover td{background:var(--paper-shade)}div.runner-root .variable-name{color:var(--ink-purple)}div.runner-root .val-number{color:var(--ink-green)}div.runner-root .val-string{color:var(--red-dark)}div.runner-root .val-bool{color:var(--ink-blue)}div.runner-root .val-none{color:var(--paper-muted)}div.runner-root .val-ref{color:var(--ink-purple)}div.runner-root .variable-entry.changed td{background:#f39c1226}div.runner-root .variable-entry.changed .variable-name{box-shadow:inset 3px 0 0 var(--ink-orange)}div.runner-root .variable-value{color:var(--paper-text);font-family:var(--font-mono);font-size:var(--font-size);font-weight:600}div.runner-root .hl-currentline{background-color:#11996f26}div.runner-root .hl-currentline-glyph:before{content:"▶";color:var(--ink-green);font-size:var(--font-size)}div.runner-root .hl-error{background-color:#dc262626}div.runner-root .hl-error-glyph:before{content:"✖";color:var(--red-dark);font-size:var(--font-size)}div.runner-root span.stdin{color:var(--ink-purple)}div.runner-root span.exception{color:var(--red-dark)}div.runner-root span.test-OK{background-color:#11996f80}div.runner-root span.test-WF{background-color:#ccba1880}div.runner-root span.test-WA{background-color:#b91c1c80}div.runner-root span.test-MA{background-color:#96057780}div.runner-root span.test-RE{background-color:#2563eb80}div.runner-root button{background:linear-gradient(145deg,var(--paper-muted) 0%,var(--paper-text) 100%);border:1px solid var(--paper-muted);color:var(--paper);border-radius:var(--radius);padding:calc(var(--space) / 2) calc(var(--space) / 1.5);gap:calc(var(--space) / 2);font-weight:600;font-size:calc(var(--font-size) - 1px);transition:all .2s ease;box-shadow:var(--shadow)}div.runner-root button:hover:not(:disabled){box-shadow:0 0 12px #0003}div.runner-root button:disabled{opacity:.5;cursor:not-allowed}div.runner-root button.green{background:linear-gradient(145deg,var(--accent-green) 0%,var(--ink-green) 100%);border-color:var(--ink-green)}div.runner-root button.blue{background:linear-gradient(145deg,var(--blue) 0%,var(--ink-blue) 100%);border-color:var(--ink-blue)}div.runner-root button.red{background:linear-gradient(145deg,var(--red) 0%,var(--red-dark) 100%);border-color:var(--red-dark)}div.runner-root button.file-tab{border:1px solid transparent;background:transparent;color:var(--paper-muted);cursor:pointer;border-radius:6px}div.runner-root button.file-tab:hover{background:#0000000a;color:var(--paper-text)}div.runner-root button.file-tab.hl{background:var(--paper);color:var(--paper-text);border-color:var(--paper-border)}div.runner-root button.test-selector{background:linear-gradient(145deg,var(--paper-muted) 0%,var(--paper-text) 100%);border:1px solid transparent;color:var(--paper);border-radius:calc(var(--radius) / 2);padding:calc(var(--space) / 2) calc(var(--space) / 4);font-weight:600;font-size:calc(var(--font-size) - 1px);transition:all .2s ease;box-shadow:0 1px 3px #0000004d;min-width:32px;text-align:center}div.runner-root button.test-selector:hover:not(:disabled){border-color:transparent;box-shadow:0 0 6px #00000059}div.runner-root button.test-selector.hl{background:var(--paper-shade);border:1px solid var(--ink-blue);color:var(--paper-text);box-shadow:var(--shadow);font-weight:700}div.runner-root button.test-selector.hl:hover{transform:none}div.runner-root .column-header{color:var(--paper-muted);font-weight:700;font-size:calc(var(--font-size) - 2px);text-align:left}div.runner-root button.test-OK{background:linear-gradient(145deg,var(--accent-green) 0%,var(--ink-green) 100%)}div.runner-root button.test-WA{background:linear-gradient(145deg,var(--red) 0%,var(--red-dark) 100%)}div.runner-root button.test-RE{background:linear-gradient(145deg,var(--blue) 0%,var(--ink-blue) 100%)}div.runner-root button.test-MA{background:linear-gradient(145deg,var(--accent-purple) 0%,var(--ink-purple) 100%)}div.runner-root button.test-WF{background:linear-gradient(145deg,var(--yellow-dark) 0%,var(--ink-orange) 100%)}div.runner-root .inspect-panel,div.runner-root div.test-summary{animation:fadeIn .3s ease-out}div.runner-root div.test-summary>h2:first-child{text-align:center;background:linear-gradient(145deg,var(--blue) 0%,var(--ink-blue) 100%);color:var(--paper);text-shadow:0 1px 2px rgba(0,0,0,.3);border-radius:var(--radius)}div.runner-root div.test-summary .table-scroll{border:1px solid var(--paper-border);border-radius:var(--radius)}div.runner-root div.test-summary table.test-summary-table{width:100%}div.runner-root div.test-summary table.test-summary-table tr.test-table-header td{background-color:var(--paper-border);font-weight:700;color:var(--paper-text);text-align:right}div.runner-root div.test-summary td.test-score{font-weight:700}div.runner-root .test-bar,div.runner-root .case-bar{background:var(--paper-shade);border-bottom:1px solid var(--paper-border);padding:calc(var(--space) / 2);gap:calc(var(--space) / 2)}.module-root .page-panel.sidebars{--space: 8px;--radius: 6px;--font: 14px}.module-root .page-panel.sidebars h1{color:var(--paper-text)}.module-root .page-panel.sidebars h2{color:var(--text);font-size:1.3em}.module-root .page-panel.sidebars .panel{border-bottom:2px solid var(--paper-border)}.module-root .page-panel.sidebars .panel>h1:first-child{background:var(--accent-green);color:var(--surface);border-bottom:2px solid var(--paper-border)}.module-root .page-panel.sidebars .panel>h2:first-child{background:#394156;color:var(--surface);border-bottom:2px solid var(--paper-border)}.module-root .page-panel.sidebars img{border-radius:var(--radius);border:3px solid var(--paper-muted);box-shadow:var(--shadow);transition:all .2s ease}.module-root .page-panel.sidebars .table-scroll{box-shadow:var(--shadow)}.module-root .page-panel.sidebars .table-scroll table{font-size:var(--font);background:var(--surface)}.module-root .page-panel.sidebars .table-scroll th{background:var(--paper-muted);color:var(--surface);font-weight:700;text-shadow:0 1px 2px rgba(0,0,0,.3)}.module-root .page-panel.sidebars .table-scroll td{background:var(--surface);color:var(--paper-text)}.module-root .page-panel.sidebars .table-scroll tr:last-child td{border-bottom:none}.module-root .page-panel.sidebars .table-scroll tr:nth-child(odd) td{background:var(--paper-shade)}.module-root .page-panel.sidebars .infobox{border-radius:var(--radius);background:var(--paper-shade);box-shadow:var(--shadow);border:2px solid var(--paper-border);transition:all .2s ease}.module-root .page-panel.sidebars .infobox.definition{border-left:5px solid var(--blue);border-right:5px solid var(--blue)}.module-root .page-panel.sidebars .infobox.definition .header{color:var(--ink-blue)}.module-root .page-panel.sidebars .infobox.warning{border-left:5px solid var(--yellow);border-right:5px solid var(--yellow)}.module-root .page-panel.sidebars .infobox.warning .header{color:var(--ink-orange)}.module-root .page-panel.sidebars .infobox.example{border-left:5px solid var(--accent-green);border-right:5px solid var(--accent-green)}.module-root .page-panel.sidebars .infobox.example .header{color:var(--ink-green)}.module-root .page-panel.sidebars .infobox.hint{border-left:5px solid var(--accent-green);border-right:5px solid var(--accent-green)}.module-root .page-panel.sidebars .infobox.hint .header{color:var(--ink-green)}.module-root .page-panel.sidebars .infobox.hint .hint-placeholder{color:var(--ink-blue)}.module-root .page-panel.sidebars .infobox.hint .hint-content{color:var(--ink-green)}.module-root .page-panel.sidebars .infobox.hint.hidden:hover{background-color:#dbeafe;border-color:var(--blue)}.module-root .page-panel.sidebars .infobox.hint.revealed{cursor:default;border-style:solid;display:block}.module-root .page-panel.sidebars code:not(pre code){font-family:Monaco,Menlo,Ubuntu Mono,monospace;background:var(--paper-shade);color:var(--ink-purple);padding:2px 4px;border-radius:calc(var(--radius) / 2);border:1px solid var(--paper-border);font-weight:600;font-size:calc(var(--font) - 1px);box-shadow:inset 0 1px 2px #0000001a}.module-root .page-panel.sidebars pre{background:var(--paper-shade);color:var(--paper-text);padding:var(--space);border-radius:var(--radius);border:2px solid var(--paper-border);box-shadow:var(--shadow);overflow-x:auto}.module-root .page-panel.sidebars a{color:var(--ink-blue);text-decoration:underline;font-weight:600;transition:all .2s ease}.module-root .page-panel.sidebars a:hover{color:var(--blue);text-shadow:0 1px 2px rgba(37,99,235,.3)}.module-root .page-panel.sidebars blockquote{background:var(--paper-shade);border-left:4px solid var(--accent-purple);margin:calc(var(--space) * 2) 0;padding:var(--space) calc(var(--space) * 2);border-radius:0 var(--radius) var(--radius) 0;box-shadow:var(--shadow-light);font-style:italic;color:var(--paper-text)}.module-root .page-panel.sidebars ul,.module-root .page-panel.sidebars ol{padding-left:calc(var(--space) * 2)}.module-root .page-panel.sidebars li{margin-bottom:calc(var(--space) / 2);color:var(--paper-text)}.module-root .page-panel.sidebars li::marker{color:var(--blue);font-weight:700}.logo{--logo-body: #52be6d;--logo-tongue: #f43f5e;aspect-ratio:183 / 41}.logo .logo-body{fill:none;stroke:var(--logo-body);transition:stroke .3s ease}.logo .logo-head{fill:var(--logo-body);transition:fill .3s ease}.logo .logo-tongue{fill:none;stroke:var(--logo-tongue);transition:stroke .3s ease}.logo-inline{display:inline-block;height:.56em;width:auto;margin-left:.2em}.navbar{position:relative;display:flex;flex-direction:row;justify-content:space-between;align-items:center;flex-wrap:wrap;flex-shrink:0;box-sizing:border-box;gap:24px;width:100%;max-width:100%;padding:10px 30px;background:var(--navy);border-bottom:3px solid var(--navy-dark)}.brand-link{color:var(--brand-idle);font-family:Gluten,cursive;font-weight:700;font-size:28px;white-space:nowrap;text-decoration:none;flex-shrink:0}.brand-link .brand-snake{--logo-body: #95a5a6;--logo-tongue: #95a5a6;display:inline-block;height:.41em;width:auto;margin-left:.08em;vertical-align:.07em}.brand-link:hover .brand-snake{--logo-body: var(--brand);--logo-tongue: #f43f5e}.nav-link{color:var(--bar-link);text-decoration:none;font-weight:550;padding:8px 12px;border-radius:var(--corner-sm);transition:all .4s ease}.nav-link:hover{color:var(--brand)}.nav-link.active{color:var(--brand-idle)}.navbar-links{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:center;align-items:center;width:fit-content;flex:1;gap:18px}.nav-dropdown{position:relative}.nav-dropdown-toggle{display:flex;align-items:center;gap:4px;background:none;border:none;font:inherit;font-weight:550;cursor:pointer}.nav-dropdown-toggle svg{transition:transform .3s ease}.nav-dropdown.open .nav-dropdown-toggle svg{transform:rotate(180deg)}.nav-dropdown-menu{display:none;position:absolute;top:calc(100% + 8px);left:50%;transform:translate(-50%);flex-direction:column;min-width:180px;padding:8px;background:var(--navy-dark);border-radius:var(--corner-sm);box-shadow:0 4px 12px #0000004d;z-index:100}.nav-dropdown-menu .nav-link{white-space:nowrap}.nav-dropdown.open .nav-dropdown-menu{display:flex}.footer{box-sizing:border-box;padding:40px 30px;width:100%;background:var(--navy);border-top:3px solid var(--bar-accent);color:var(--bar-text);display:flex;flex-direction:row;justify-content:flex-end;align-items:center}.footer a,.footer a:visited{color:var(--bar-accent);transition:all .3s ease;font-weight:550;position:relative}.footer a:hover{color:var(--brand)}.footer-info-box{text-align:right;display:flex;flex-direction:column;gap:12px}.footer-info-box p{margin:0}.footer-info-box p:first-child{font-weight:600;color:var(--bar-text)}.navbar-toggle{display:none;background:none;border:none;color:var(--text-on-dark);cursor:pointer}@media (max-width: 768px){.navbar-links{gap:6px}.navbar{gap:6px;padding:6px}.nav-link{padding:6px}}@media (max-width: 600px){.navbar-toggle{display:block;order:100}.navbar-links{display:none;position:absolute;top:100%;right:0;background-color:var(--navy-dark);width:200px;padding:1rem;z-index:100}.navbar-links.open{display:flex;flex-direction:column}.nav-dropdown{display:flex;flex-direction:column;align-items:center}.nav-dropdown-menu{position:static;transform:none;min-width:0;padding:0;box-shadow:none;align-items:center}}.loading-container{width:fit-content;height:fit-content;display:flex;flex-direction:column;align-items:center;justify-content:center}.loading-container.loading-overlay{position:absolute;top:0;left:0;right:0;bottom:0;z-index:10;width:100%;height:100%}.page-loading{position:relative;flex-grow:1;width:100%}.loading-container.loading-overlay{background:#ffffff65;color:var(--text-strong);border-radius:var(--corner-sm);font-size:13px;font-weight:600;animation:fadeIn .3s ease-out}.loading-container .loading-spinner{--logo-body: var(--navy);height:22px;width:auto;margin-bottom:6px}.loading-spinner.loading-spinner-crazy{animation:crazySpinner 1s linear infinite}@keyframes crazySpinner{0%{transform:rotate(0) scale(1);border-radius:50%}25%{transform:rotate(90deg) scale(1.5);border-radius:30%;border-top-color:#ff6b6b;border-right-color:#4ecdc4}50%{transform:rotate(180deg) scale(.8);border-radius:10%;border-bottom-color:#45b7d1;border-left-color:#f9ca24}75%{transform:rotate(270deg) scale(1.2);border-radius:70%;border-top-color:#6c5ce7;border-right-color:#ff9ff3}to{transform:rotate(360deg) scale(1);border-radius:50%;border-bottom-color:#54a0ff;border-left-color:#5f27cd}}.login-root .page-panel{display:flex;flex-direction:column;align-items:center;padding:0 8px 15vh}.login-root .page-panel form{display:flex;flex-direction:column;gap:15px;width:100%}.login-root .page-panel h2{text-align:left;font-weight:700;margin-top:0;margin-bottom:20px}.login-root .page-panel .panel{max-width:500px;min-width:300px;padding:40px;display:flex;flex-direction:column;align-items:center;gap:20px}.login-root .page-panel .panel :last-child{margin-bottom:0}.login-root .page-panel .login-panel{max-width:450px;padding:50px}.login-root .page-panel .verification-panel{align-items:flex-start;gap:0;margin-bottom:20px}.login-root .page-panel .verification-panel p{margin:0 0 12px}.login-root .page-panel input{border:2px solid var(--border-soft);box-sizing:border-box;padding:15px 10px;border-radius:var(--corner-sm);font-size:15px;width:100%;transition:all .3s ease}.login-root .page-panel input:focus{outline:none;border-color:var(--blue);background:var(--surface)}.login-root .page-panel input::placeholder{color:var(--text-soft)}.login-root .page-panel .checkbox-group{display:flex;flex-direction:row;justify-content:space-between;align-items:center;padding:0}.login-root .page-panel .checkbox-group input[type=checkbox]{width:18px;height:18px;padding:0;margin-right:15px;display:inline}.login-root .page-panel .checkbox-group p{margin:0}.login-root .page-panel .error-message{color:var(--red);font-weight:700}.login-root .page-panel .success-message{color:var(--green-dark);font-weight:700}.login-root .page-panel .auth-divider{margin:30px 0;text-align:center;position:relative;color:var(--text-soft);font-weight:500}.login-root .page-panel hr{width:90%;color:var(--border-soft);border-radius:2px;margin-top:35px;margin-bottom:35px}.login-root .page-panel .section{width:100%;margin-bottom:40px}.login-root .page-panel .section.user-actions .username-box p{margin:5px}.login-root .page-panel .section.user-actions .logout-container{margin-top:50px}.login-root .page-panel .section.user-actions .error-message{margin-top:25px}.login-root .page-panel .info-row{display:flex;margin-bottom:8px;justify-content:space-between}.login-root .page-panel .info-row .info-label{font-weight:700}.login-root .page-panel .logout-container{display:flex;flex-direction:row;justify-content:center;gap:20px}.login-root .page-panel .input-button-row{display:flex;gap:8px}.login-root .page-panel .input-button-row input{flex:1}@media (max-width: 480px){.login-root.page-root .panel{padding:30px 20px;margin:10px 0;font-size:small}.login-root.page-root h2{font-size:1.5rem}.login-root.page-root input{padding:12px 16px}}.about-root .page-panel,.legal-root .page-panel{max-width:950px;display:flex;flex-direction:column;align-items:center;padding:8px 8px 20vh}.about-root .page-panel .about-hero,.legal-root .page-panel .about-hero{background:linear-gradient(135deg,var(--navy),var(--page-gradient-top));color:var(--text-on-dark);text-align:center;padding:clamp(32px,7vw,60px) 20px}.about-root .page-panel .about-hero h1,.legal-root .page-panel .about-hero h1{margin:0 0 15px;font-size:clamp(1.7rem,4vw,2.6rem);font-weight:800;line-height:1.15;overflow-wrap:break-word}.about-root .page-panel .about-hero p,.legal-root .page-panel .about-hero p{font-size:clamp(.95rem,1.6vw,1.05rem);line-height:1.6;opacity:.9;margin:0 auto;max-width:600px}.about-root .page-panel .features-grid-about,.legal-root .page-panel .features-grid-about{display:flex;flex-direction:column;gap:25px;margin-top:25px}.about-root .page-panel .feature-item,.legal-root .page-panel .feature-item{display:flex;align-items:flex-start;gap:20px}.about-root .page-panel .feature-item h3,.legal-root .page-panel .feature-item h3{margin:0 0 8px}.about-root .page-panel .feature-item p,.legal-root .page-panel .feature-item p{margin:0}.about-root .page-panel .feature-icon-about,.legal-root .page-panel .feature-icon-about{width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--text-on-dark)}.about-root .page-panel .feature-icon-about.bg-blue,.legal-root .page-panel .feature-icon-about.bg-blue{background:var(--blue)}.about-root .page-panel .feature-icon-about.bg-orange,.legal-root .page-panel .feature-icon-about.bg-orange{background:var(--yellow-dark)}.about-root .page-panel .feature-icon-about.bg-green,.about-root .page-panel .step-number.step-1,.legal-root .page-panel .feature-icon-about.bg-green,.legal-root .page-panel .step-number.step-1{background:var(--green)}.about-root .page-panel .step-number.step-2,.legal-root .page-panel .step-number.step-2{background:var(--page-gradient-bottom)}.about-root .page-panel .step-number.step-3,.legal-root .page-panel .step-number.step-3{background:var(--brand-hover)}.about-root .page-panel .how-it-works-container,.legal-root .page-panel .how-it-works-container{margin-top:25px}.about-root .page-panel .step-item,.legal-root .page-panel .step-item{display:flex;align-items:flex-start;gap:20px;margin-bottom:25px}.about-root .page-panel .step-item .step-number,.legal-root .page-panel .step-item .step-number{width:48px;height:48px;border-radius:50%;color:var(--text-on-dark);display:flex;align-items:center;justify-content:center;flex-shrink:0}.about-root .page-panel .step-item h3,.legal-root .page-panel .step-item h3{margin:0 0 8px}.about-root .page-panel .step-item p,.legal-root .page-panel .step-item p{margin:0}.about-root .page-panel .tech-panel ul,.legal-root .page-panel .tech-panel ul{color:var(--text-soft);line-height:1.5;padding-left:15px}.about-root .page-panel .cta-panel,.legal-root .page-panel .cta-panel{text-align:center;padding:clamp(24px,5vw,40px) clamp(18px,4vw,30px)}.about-root .page-panel .cta-panel p,.legal-root .page-panel .cta-panel p{margin-bottom:20px}.lesson-icon{--li-depth: var(--navy);--li-face: var(--surface);--li-ink: var(--navy);--li-soft: #c3ccd5;--li-shine: #e3e8ed;--li-flag: var(--green);width:100%;height:100%;overflow:visible}.lesson-icon--done{--li-depth: #13994a;--li-face: var(--green);--li-ink: var(--text-on-dark);--li-soft: #a7ecc3;--li-shine: #5fd890;--li-flag: var(--text-on-dark)}.lesson-icon .li-depth{fill:var(--li-depth)}.lesson-icon .li-face{fill:var(--li-face);stroke:var(--li-depth);stroke-linejoin:round}.lesson-icon .li-line{stroke:var(--li-depth);stroke-linecap:round}.lesson-icon .li-ink{fill:var(--li-ink)}.lesson-icon .li-ink-line{fill:none;stroke:var(--li-ink);stroke-linecap:round}.lesson-icon .li-soft{stroke:var(--li-soft);stroke-linecap:round}.lesson-icon .li-shine{fill:none;stroke:var(--li-shine);stroke-linecap:round}.lesson-icon .li-snow{fill:var(--li-soft)}.lesson-icon .li-flag{fill:var(--li-flag)}.lesson-icon .li-check{fill:none;stroke:var(--li-ink);stroke-linecap:round;stroke-linejoin:round}.lesson-icon .li-num{fill:var(--li-ink);font-family:inherit;font-weight:800;text-anchor:middle;dominant-baseline:central}.learning-root .page-panel.sidebars{width:100%;gap:10px;padding:8px 8px 20vh}.learning-root .page-panel.sidebars .page-panel-mid{display:flex;flex-direction:column;align-items:center;gap:4rem;position:relative;padding:2rem 0 40vh;max-width:500px}.learning-root .page-panel.sidebars .progress-percentage{font-size:2rem;font-weight:700;border-radius:var(--corner);border:solid var(--text-strong) 2px;padding:10px 30px;text-align:center;background-color:var(--surface);color:var(--green)}.learning-root .page-panel.sidebars .module-node{position:relative;width:130px;height:auto;display:flex;flex-direction:column;align-items:center;gap:10px;transition:transform .3s ease;z-index:2}.learning-root .page-panel.sidebars .module-link{text-decoration:none;color:inherit;display:flex;flex-direction:column;align-items:center;justify-content:center;width:110px;height:101px}.learning-root .page-panel.sidebars .module-title-path{text-align:center;font-size:14px;max-width:130px;word-wrap:break-word}.learning-root .page-panel.sidebars .module-link:hover{transform:scale(1.05);filter:drop-shadow(0 6px 12px rgba(0,0,0,.15))}.learning-root .page-panel.sidebars .module-node--left{align-self:flex-start}.learning-root .page-panel.sidebars .module-node--right{align-self:flex-end}.learning-root .page-panel.sidebars .module-description{position:absolute;top:50px;transform:translateY(-50%);width:200px;padding:8px 12px;border-radius:var(--corner-sm);background:var(--surface);color:var(--text);box-shadow:var(--shadow);font-size:.85rem;line-height:1.35;opacity:0;pointer-events:none;transition:opacity .2s ease;z-index:3}.learning-root .page-panel.sidebars .module-node--left .module-description{left:calc(100% + 20px)}.learning-root .page-panel.sidebars .module-node--right .module-description{right:calc(100% + 20px)}.learning-root .page-panel.sidebars .module-link:hover~.module-description{opacity:1}.learning-root .page-panel.sidebars .module-title-path{font-size:.9rem;font-weight:600;color:var(--text-on-dark);text-shadow:var(--text-shadow-bg);line-height:1.2}@media (max-width: 768px){.learning-root .page-panel.sidebars .module-link{width:70px;height:64px}.learning-root .page-panel.sidebars .module-description{top:32px;width:160px}.learning-root .page-panel.sidebars .progress-percentage{font-size:1rem;padding:10px}}.home-root .page-panel{display:flex;flex-direction:column;align-items:center;padding:0 0 20vh}.home-root .page-panel>:not(.hero-panel){box-sizing:border-box;width:min(934px,calc(100% - 16px))}.home-root .page-panel .hero-panel{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:clamp(24px,4vw,40px);text-align:left;padding:clamp(28px,5vw,56px) max(clamp(28px,5vw,56px),calc((100% - 934px)/2));margin:0 0 clamp(28px,6vw,60px) 0;border-radius:0;color:var(--text-on-dark);background:var(--navy);box-shadow:0 0 8px #0003;overflow:hidden}.home-root .page-panel .hero-panel h1{font-size:clamp(1.7rem,4vw,2.6rem);font-weight:800;line-height:1.15;margin:0 0 16px;overflow-wrap:break-word}.home-root .page-panel .hero-panel p{font-size:clamp(.95rem,1.6vw,1.05rem);line-height:1.6;margin:0 0 24px}.home-root .page-panel .hero-buttons{display:flex;flex-wrap:wrap;gap:12px}.home-root .page-panel .hero-buttons .hero-button-primary,.home-root .page-panel .hero-buttons .hero-button-secondary{padding:6px 30px;border:none;border-radius:var(--corner-sm);font-weight:700;color:var(--text-on-dark);cursor:pointer;transition:box-shadow .2s ease}.home-root .page-panel .hero-buttons .hero-button-primary:hover,.home-root .page-panel .hero-buttons .hero-button-secondary:hover{box-shadow:0 0 16px #0000004d}.home-root .page-panel .hero-buttons .hero-button-primary{background-color:#36a033}.home-root .page-panel .hero-buttons .hero-button-secondary{background-color:#3a87c8}.home-root .page-panel .hero-demo{position:relative;display:flex;flex-direction:column;gap:8px;padding:8px;border-radius:var(--corner);background:var(--paper);box-shadow:0 8px 24px #00000059;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:13px;color:inherit;text-decoration:none}.home-root .page-panel .hero-demo-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;display:flex;align-items:center;justify-content:center;border-radius:inherit;background:#1a252fb8;color:var(--text-on-dark);font-family:Nunito,sans-serif;font-weight:700;font-size:1rem;opacity:0;transition:opacity .25s ease;pointer-events:none}.home-root .page-panel .hero-demo-overlay span{display:inline-flex;align-items:center;gap:8px;transform:translateY(8px);transition:transform .25s ease}.home-root .page-panel .hero-demo:hover .hero-demo-overlay,.home-root .page-panel .hero-demo:focus-visible .hero-demo-overlay{opacity:1}.home-root .page-panel .hero-demo:hover .hero-demo-overlay span,.home-root .page-panel .hero-demo:focus-visible .hero-demo-overlay span{transform:translateY(0)}.home-root .page-panel .hero-demo-bar,.home-root .page-panel .hero-demo-code,.home-root .page-panel .hero-demo-output{position:relative;z-index:1}.home-root .page-panel .hero-demo-bar{display:flex;align-items:center;gap:4px;padding:4px;background:var(--paper-shade);border:1px solid var(--paper-border);border-radius:var(--corner-sm);box-shadow:0 2px 6px #0000001a}.home-root .page-panel .hero-demo-run{display:inline-flex;align-items:center;gap:4px;padding:4px 6px;border-radius:4px;border:1px solid var(--green-dark);background:linear-gradient(145deg,var(--green) 0%,var(--green-dark) 100%);color:var(--paper);font-family:Nunito,sans-serif;font-weight:600;font-size:12px}.home-root .page-panel .hero-demo-spacer{flex-grow:1}.home-root .page-panel .hero-demo-tab{padding:4px 6px;border:1px solid var(--paper-border);border-radius:var(--corner-sm);background:var(--paper);color:var(--paper-text);font-size:12px}.home-root .page-panel .hero-demo-code,.home-root .page-panel .hero-demo-output{padding:8px;border:1px solid var(--paper-border);border-radius:var(--corner-sm);background:var(--paper);box-shadow:0 2px 6px #0000001a;color:var(--paper-text);line-height:1.6;white-space:pre;overflow-x:auto}.home-root .page-panel .hero-demo-code{counter-reset:line}.home-root .page-panel .hero-demo-code>div{counter-increment:line}.home-root .page-panel .hero-demo-code>div:before{content:counter(line);display:inline-block;width:2ch;margin-right:12px;text-align:right;color:var(--paper-muted)}.home-root .page-panel .hero-demo-stream{margin:-4px 0 4px;color:var(--paper-muted);font-size:12px}.home-root .page-panel .code-keyword{color:var(--ink-blue)}.home-root .page-panel .code-literal{color:var(--ink-green)}.home-root .page-panel .code-call{color:var(--ink-purple)}.home-root .page-panel .code-name{color:var(--paper-text)}.home-root .page-panel .features-intro{max-width:620px;margin-bottom:clamp(20px,4vw,32px);text-align:center;color:var(--text-on-dark);text-shadow:var(--text-shadow-bg)}.home-root .page-panel .features-intro h2{font-size:clamp(1.4rem,3vw,1.9rem);font-weight:800;line-height:1.2;margin:0 0 10px}.home-root .page-panel .features-intro p{font-size:clamp(.95rem,1.6vw,1.05rem);line-height:1.6;margin:0}.home-root .page-panel .features-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr));gap:clamp(16px,3vw,24px)}.home-root .page-panel .features-grid .panel{display:flex;flex-direction:column;margin:0;padding:clamp(18px,3vw,24px);text-align:left;transition:all .2s ease}.home-root .page-panel .features-grid .panel:hover{transform:translateY(-4px);box-shadow:0 8px 20px #0003}.home-root .page-panel .features-grid .feature-icon{width:44px;height:44px;margin-bottom:14px;border-radius:var(--corner-sm);background-color:var(--surface-tint);color:var(--green);display:flex;align-items:center;justify-content:center}.home-root .page-panel .features-grid .feature-title{font-size:1.15rem;font-weight:700;margin:0 0 8px}.home-root .page-panel .features-grid .feature-description{margin:0 0 12px;color:var(--text);font-size:.95rem;line-height:1.6}.home-root .page-panel .features-grid .feature-note{margin:auto 0 0;padding-top:12px;border-top:1px solid var(--border-faint);color:var(--text-soft);font-size:.875rem;line-height:1.55}@media (max-width: 768px){.home-root .page-panel .hero-panel{grid-template-columns:1fr}.home-root .page-panel .hero-copy{text-align:center}.home-root .page-panel .hero-buttons{justify-content:center}}.runner-root{padding:0;gap:8px;position:relative}.runner-root .toolbar{display:flex;flex-direction:row;align-items:center;flex-wrap:wrap}.runner-root .toolbar .status{display:flex}.runner-root .toolbar input[type=range],.runner-root .spacer{flex-grow:1}.runner-root .step-controls{display:flex;flex-direction:row;align-items:center;gap:4px}.runner-root .two-side-panel{position:relative;display:flex;flex-direction:row}.runner-root .two-side-panel>.main-bar{flex:1 1 content;min-width:0;overflow:hidden}.runner-root .two-side-panel>.secondary-bar{flex:0 1 content;min-width:200px}.runner-root .inspect-panel{flex:0 1 content}.runner-root .editor-container{overflow:hidden}.runner-root.debugging .editor-container .margin{cursor:pointer}.runner-root .console-header,.runner-root .column-header{padding:3px}.runner-root .console-output{min-height:0;flex:1 1 content;font-family:monospace;white-space:pre-wrap;word-break:break-word}.runner-root .debug-bar{width:240px;max-width:240px;overflow:hidden;min-height:0;white-space:pre-wrap;word-break:break-word}.runner-root .test-bar{width:240px;overflow:hidden;min-height:0;display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start}.runner-root .case-bar{flex:0 0 auto;width:84px;overflow:hidden;min-height:0;display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start}.runner-root .test-toolbar{display:flex;flex-direction:row;justify-content:flex-start;align-items:center}.runner-root .test-bar button{flex:0 1 auto}.runner-root .test-summary>h2{margin:0}.runner-root .table-scroll{width:100%;overflow-x:auto}.runner-root .console-input{display:flex;justify-content:space-between;align-items:stretch}.runner-root .console-input input[type=text]{flex:1;box-sizing:border-box}.runner-root .current-line-glyph:before{content:"▶";position:relative}.runner-root .error-line-glyph:before{content:"✖";position:relative}.runner-root .error-line{font-family:monospace;white-space:pre-wrap;word-break:break-word}.runner-root .stack-frame{width:100%;overflow:hidden;border-collapse:separate;border-spacing:0}.runner-root .frame-header-row{display:flex;justify-content:space-between;align-items:stretch;gap:8px}.runner-root .variable-value:before{content:"= "}.runner-root .variable-name{width:1%;white-space:nowrap;vertical-align:top}.runner-root .variable-value{white-space:pre-wrap;word-break:break-word;vertical-align:top}.runner-root:focus{outline:none}@keyframes slideIn{0%{transform:translate(20px)}to{transform:translate(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@media (max-width: 768px){.runner-root .two-side-panel{flex-direction:column}.runner-root .debug-bar,.runner-root .test-bar,.runner-root .case-bar{width:auto;max-width:none}}.module-root .page-panel.sidebars{padding:8px 8px 40vh}.module-root .page-panel.sidebars .page-panel-mid{display:flex;flex-direction:column;align-items:center}.module-root .page-panel.sidebars .page-panel-mid .panel>h1:first-child,.module-root .page-panel.sidebars .page-panel-mid .panel>h2:first-child,.module-root .page-panel.sidebars .page-panel-mid .panel>h3:first-child{text-align:center;margin-top:-16px;margin-left:-15px;margin-right:-15px;padding:4px 2px;border-radius:var(--corner)}.module-root .page-panel.sidebars .page-panel-mid .panel>h1:first-child{font-size:1.6em;padding:8px 2px;font-weight:800}.module-root .page-panel.sidebars .page-panel-mid .panel>h2:first-child{font-size:1.1em;padding:6px 30px;text-align:left}.module-root .page-panel.sidebars .page-panel-mid .panel>h3:first-child{font-size:1em}.module-root .page-panel.sidebars .page-panel-right .panel{margin:0;overflow:hidden}.module-root .page-panel.sidebars .page-panel-right .panel .return-button-container{margin:5px}.module-root .page-panel.sidebars .page-panel-right .panel .return-button-container button{width:100%}.module-root .page-panel.sidebars .page-panel-right .panel>h3:first-child{margin-top:0;text-align:center}.module-root .page-panel.sidebars .task-wrapper{display:contents}.module-root .page-panel.sidebars .runner-wrapper{width:100%;height:fit-content;position:relative}.module-root .page-panel.sidebars .checkmark-wrapper{background-color:var(--green);border-radius:50%;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 0 8px #9efff2a2;opacity:0;transform:scale(0);animation:popIn .5s cubic-bezier(.175,.885,.32,1.275) forwards}.module-root .page-panel.sidebars .checkmark-icon{color:var(--text-on-dark)}.module-root .page-panel.sidebars .checkmark-icon path{stroke-dasharray:24;stroke-dashoffset:24;animation:drawStroke .4s ease-out forwards;animation-delay:.2s}.module-root .page-panel.sidebars .info-icon-container{position:relative;display:inline-flex;align-items:center;vertical-align:middle;cursor:help}.module-root .page-panel.sidebars .info-icon-icon{color:var(--text-soft)}.module-root .page-panel.sidebars .info-icon-tooltip{visibility:hidden;position:absolute;top:100%;left:100%;padding:4px 6px;border-radius:4px;min-width:80px;max-width:280px;width:max-content;z-index:100;opacity:0;background-color:var(--text-soft);color:var(--text-on-dark);font-size:12px;font-weight:400;transition:opacity .3s}.module-root .page-panel.sidebars .info-icon-container:hover .info-icon-tooltip{visibility:visible;opacity:1}.module-root .page-panel.sidebars h1,.module-root .page-panel.sidebars h2{text-align:center}.module-root .page-panel.sidebars img{max-width:min(100%,420px);height:auto;border-width:3px}.module-root .page-panel.sidebars .table-scroll{width:100%;overflow-x:auto;border-radius:var(--corner-sm);border:1px solid var(--border)}.module-root .page-panel.sidebars .table-scroll table{width:100%;border-collapse:separate;border-spacing:0}.module-root .page-panel.sidebars .table-scroll table th,.module-root .page-panel.sidebars .table-scroll table td{min-width:7ch}.module-root .page-panel.sidebars .table-scroll table th{padding:5px 15px;text-align:left;font-weight:700;border-bottom:1px solid var(--border)}.module-root .page-panel.sidebars .table-scroll table td{padding:7px 15px;border-bottom:1px solid var(--border-soft)}.module-root .page-panel.sidebars .panel>.table-scroll{margin:16px 0}.module-root .page-panel.sidebars .infobox{margin:15px 0;padding:15px;border-left:5px solid;border-right:5px solid;display:block}.module-root .page-panel.sidebars .infobox .header{font-weight:700;margin-bottom:10px}.module-root .page-panel.sidebars .infobox.hint.hidden{cursor:pointer;display:flex;flex-direction:column;align-items:center}.module-root .page-panel.sidebars .infobox.hint.hidden .header{width:fit-content}.module-root .page-panel.sidebars code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}@keyframes popIn{0%{opacity:0;transform:scale(0)}to{opacity:1;transform:scale(1)}}@keyframes drawStroke{to{stroke-dashoffset:0}}@media (max-width: 768px){.module-root .page-body .page-panel.sidebars .table-scroll table{font-size:small}.module-root .page-body .page-panel.sidebars .table-scroll table th{padding:2px 6px;font-weight:400}.module-root .page-body .page-panel.sidebars .table-scroll table td{padding:2px 6px}.module-root .page-body .page-panel.sidebars .table-scroll table td code{background:none;border:none;box-shadow:none}}.exercises-root .page-body .page-panel{max-width:1000px;margin:0 auto;padding:2rem}.exercises-root .page-body .exercises-header{text-align:center;margin-bottom:3rem}.exercises-root .page-body .exercises-header h1{font-size:2.5rem;margin-bottom:.5rem;color:var(--text-on-dark);text-shadow:var(--text-shadow-bg)}.exercises-root .page-body .exercises-header p{color:var(--text-on-dark);text-shadow:var(--text-shadow-bg);font-size:1.1rem}.exercises-root .page-body .exercises-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem}.exercises-root .page-body .exercise-card{background:var(--surface);border:1px solid var(--border-faint);border-radius:var(--corner);padding:1.5rem;text-decoration:none;color:inherit;transition:all .2s ease;display:flex;flex-direction:column;min-height:150px;position:relative}.exercises-root .page-body .exercise-card:hover{transform:translateY(-2px);box-shadow:0 8px 16px #0000001a;border-color:var(--border-soft)}.exercises-root .page-body .exercise-card-content{flex:1}.exercises-root .page-body .exercise-title{font-size:1.25rem;font-weight:600;margin-bottom:.5rem;color:var(--text-strong)}.exercises-root .page-body .exercise-description{color:var(--text-soft);font-size:.9rem;line-height:1.5}.exercises-root .page-body .exercise-tag{width:fit-content;align-self:flex-end;background:var(--yellow);color:var(--tag-text);padding:.25rem .75rem;margin:2px;border-radius:var(--corner-sm)}.exercises-root .page-body .exercises-filter{margin-top:1.5rem;display:flex;align-items:center;justify-content:left;gap:.5rem}.exercises-root .page-body .exercises-filter label{font-size:1rem;font-weight:600;color:var(--text-on-dark);text-shadow:var(--text-shadow-bg)}.exercises-root .page-body .tag-dropdown{padding:.5rem 1rem;font-size:1rem;border:1px solid var(--border-faint);border-radius:var(--corner-sm);background:var(--surface);cursor:pointer;transition:border-color .2s}.exercises-root .page-body .tag-dropdown:hover{border-color:var(--border-soft)}.exercises-root .page-body .tag-dropdown:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px #2563eb1a}.dashboard-root .page-body .page-panel{max-width:1000px;margin:0 auto;padding:2rem}.dashboard-root .page-body .dashboard-header{text-align:center;margin-bottom:2rem}.dashboard-root .page-body .dashboard-header h1{font-size:2.5rem;margin-bottom:.5rem;color:var(--text-on-dark);text-shadow:var(--text-shadow-bg)}.dashboard-root .page-body .dashboard-header p{color:var(--text-on-dark);text-shadow:var(--text-shadow-bg);font-size:1.1rem;margin:0}.dashboard-root .page-body .dashboard-notice{border-radius:var(--corner-sm);padding:.75rem 1rem;margin-bottom:1rem;color:var(--text-on-dark);box-shadow:0 2px 5px #00000026}.dashboard-root .page-body .dashboard-notice.ok{background-color:var(--green)}.dashboard-root .page-body .dashboard-notice.error{background-color:var(--red)}.dashboard-root .page-body .dashboard-panel h2{margin:0 0 1rem;font-size:1.4rem;color:var(--text-strong)}.dashboard-root .page-body .dashboard-empty{color:var(--text-soft);margin:0}.dashboard-root .page-body .dashboard-form{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.75rem;margin-bottom:1rem}.dashboard-root .page-body .dashboard-form input,.dashboard-root .page-body .dashboard-form select{box-sizing:border-box;padding:.5rem .75rem;font-size:1rem;font-family:inherit;border:1px solid var(--border-soft);border-radius:var(--corner-sm);background:var(--surface);color:var(--text)}.dashboard-root .page-body .dashboard-form input:focus,.dashboard-root .page-body .dashboard-form select:focus{outline:none;border-color:var(--blue)}.dashboard-root .page-body .dashboard-form button{gap:.4rem}.dashboard-root .page-body .assign-form label{display:flex;flex-direction:column;gap:.25rem;font-size:.9rem;font-weight:600;color:var(--text-soft)}.dashboard-root .page-body .assign-form label.grow{flex:1 1 14rem;min-width:0}.dashboard-root .page-body .assign-form label.grow select{width:100%}.dashboard-root .page-body .table-scroll{width:100%;overflow-x:auto}.dashboard-root .page-body .dashboard-table{width:100%;min-width:34rem;border-collapse:collapse;font-size:.95rem}.dashboard-root .page-body .dashboard-table th{text-align:left;font-weight:700;color:var(--text-soft);border-bottom:1px solid var(--border-soft);padding:.5rem .6rem;white-space:nowrap}.dashboard-root .page-body .dashboard-table td{padding:.5rem .6rem;border-bottom:1px solid var(--border-faint);color:var(--text);vertical-align:middle}.dashboard-root .page-body .dashboard-table tr:last-child td{border-bottom:none}.dashboard-root .page-body .dashboard-table .cell-actions{width:1%;text-align:right}.dashboard-root .page-body .content-link{display:inline-flex;align-items:center;gap:.4rem;color:var(--blue);text-decoration:none;font-weight:600}.dashboard-root .page-body .content-link:hover{text-decoration:underline}.dashboard-root .page-body .status-badge{display:inline-flex;align-items:center;gap:.3rem;padding:.15rem .55rem;border-radius:var(--corner-sm);font-size:.85rem;font-weight:600;white-space:nowrap;color:var(--text-on-dark)}.dashboard-root .page-body .status-badge.done{background-color:var(--green)}.dashboard-root .page-body .status-badge.pending{background-color:var(--blue)}.dashboard-root .page-body .status-badge.overdue{background-color:var(--red)}.dashboard-root .page-body .student-group{margin-bottom:1.5rem}.dashboard-root .page-body .student-group:last-child{margin-bottom:0}.dashboard-root .page-body .student-group h3{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.5rem;margin:0 0 .5rem;font-size:1.05rem;color:var(--text-strong)}.dashboard-root .page-body .group-count{font-size:.9rem;font-weight:600;color:var(--text-soft)}.dashboard-root .page-body .dashboard-stats{display:flex;flex-wrap:wrap;gap:1rem}.dashboard-root .page-body .stat{flex:1 1 8rem;display:flex;flex-direction:column;gap:.2rem;padding:.75rem 1rem;background:var(--paper-shade);border-radius:var(--corner-sm)}.dashboard-root .page-body .stat-value{font-size:1.6rem;font-weight:700;color:var(--text-strong)}.dashboard-root .page-body .stat-label{font-size:.85rem;color:var(--text-soft)}.dashboard-root .page-body .dashboard-teachers{margin:1rem 0 0;color:var(--text-soft);font-size:.9rem}@media (max-width: 600px){.dashboard-root .page-body .page-panel{padding:1rem}.dashboard-root .page-body .dashboard-header h1{font-size:2rem}.dashboard-root .page-body .dashboard-form input,.dashboard-root .page-body .dashboard-form select,.dashboard-root .page-body .assign-form label,.dashboard-root .page-body .dashboard-form button{width:100%}}:root{--navy: #2c3e50;--navy-dark: #1a252f;--page-gradient-top: #405ba3;--page-gradient-bottom: #5b8cc5;--page-bg: #4e7091;--surface: #ffffff;--surface-tint: rgba(26, 192, 95, .12);--border: #6b7280;--border-soft: #d1d5db;--border-faint: #e5e7eb;--text: #34495e;--text-strong: #1f2937;--text-soft: #6b7280;--text-on-dark: #ffffff;--brand: #7cea66;--brand-hover: #9861cf;--brand-idle: #85c1e9;--bar-text: #ecf0f1;--bar-link: #bdc3c7;--bar-accent: #3498db;--green: #1ac05f;--green-dark: #27ae60;--blue: #2563eb;--blue-dark: #1d4ed8;--red: #dc2626;--red-dark: #b91c1c;--yellow: #f1c40f;--yellow-dark: #f39c12;--ink-blue: #1e3a8a;--ink-green: #047857;--ink-purple: #6b21a8;--ink-orange: #c2410c;--accent-green: #11996f;--accent-purple: #7c3aed;--tag-text: #58280c;--paper: #f8f6f3;--paper-shade: #f0ede8;--paper-border: #c8c4bd;--paper-text: #1a1a1a;--paper-muted: #7a746c;--corner-lg: 14px;--corner: 10px;--corner-sm: 6px;--shadow-light: 0 1px 3px rgba(0, 0, 0, .1);--shadow: 0 2px 6px rgba(0, 0, 0, .15);--shadow-strong: 0 4px 12px rgba(0, 0, 0, .2);--text-shadow-bg: 0 1px 3px rgba(0, 0, 0, .45)}html,body,#root{height:100%;width:100%;overflow:hidden;margin:0;padding:0;font-family:Nunito,sans-serif;background-color:var(--navy)}.page-root{display:flex;flex-direction:column;align-items:center;width:100%;height:100%;overflow:hidden}.page-body{box-sizing:border-box;width:100%;height:100%;padding:0;margin:0;display:flex;flex-direction:column;align-items:center;justify-content:space-between;overflow-y:auto;overflow-x:hidden;overscroll-behavior-y:none;background:var(--page-bg)}.page-panel{width:100%;overflow-x:visible;box-sizing:border-box}.page-panel.sidebars{width:100%;display:flex;flex-direction:row;flex-wrap:nowrap;align-items:flex-start;justify-content:center;gap:10px}.page-panel.sidebars .page-panel-left{flex:0 1 auto;height:fit-content;width:fit-content;min-width:100px;min-height:100px}.page-panel.sidebars .page-panel-mid{flex:1 1 auto;width:fit-content;height:fit-content;max-width:930px;min-width:250px}.page-panel.sidebars .page-panel-right{flex:0 1 auto;height:fit-content;width:fit-content;min-width:100px;min-height:100px;max-width:220px;position:sticky;top:15px}.sidebar-toggle,.sidebar-scrim{display:none}@media (max-width: 768px){.page-panel.sidebars .page-panel-right{position:fixed;top:0;right:0;bottom:0;z-index:60;box-sizing:border-box;width:min(320px,85vw);max-width:none;min-width:0;height:auto;padding:12px 12px 84px;overflow-y:auto;overscroll-behavior:contain;background:var(--navy);box-shadow:-4px 0 16px #00000059;transform:translate(100%);transition:transform .25s ease}.page-panel.sidebars .page-panel-right.open{transform:translate(0)}.sidebar-scrim{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#00000073}.page-root:has(.page-panel-right.open) .page-body{overflow:hidden}.sidebar-toggle{display:inline-flex;position:fixed;right:16px;bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:70;width:52px;height:52px;padding:0;border:none;border-radius:50%;background:var(--green);color:var(--text-on-dark);box-shadow:0 4px 12px #00000059}.sidebar-toggle:hover{background:var(--green-dark)}}.panel{display:block;box-sizing:border-box;width:100%;height:fit-content;overflow:visible;padding:15px;margin:10px 0;background-color:var(--surface);color:var(--text);border-radius:var(--corner);box-shadow:0 0 8px #0003}.invisible-container{display:contents}button{border-radius:var(--corner-sm);border:1px solid var(--border);cursor:pointer;padding:6px 15px;font-family:inherit;font-size:16px;box-shadow:0 2px 5px #00000026;color:var(--text);display:inline-flex;align-items:center;justify-content:center}.snake-icon{display:inline-block;height:.56em;aspect-ratio:183 / 41;margin-left:.1em;background-color:currentColor;-webkit-mask:url(/snake-mono.svg) center / contain no-repeat;mask:url(/snake-mono.svg) center / contain no-repeat}button:disabled{opacity:.5;cursor:not-allowed}button.exit{padding:7px}button.green{background-color:var(--green);color:var(--text-on-dark)}button.green:hover{background-color:var(--green-dark)}button.blue{background-color:var(--blue);color:var(--text-on-dark)}button.blue:hover{background-color:var(--blue-dark)}button.red{background-color:var(--red);color:var(--text-on-dark)}button.red:hover{background-color:var(--red-dark)}button.yellow{background-color:var(--yellow);color:var(--text-on-dark)}button.yellow:hover{background-color:var(--yellow-dark)}button.action{padding:6px 30px;border:none;font-weight:700;color:var(--text-on-dark);transition:box-shadow .2s ease}button.action:hover:not(:disabled){box-shadow:0 0 16px #0000004d}button.action-blue{background-color:var(--blue)}button.action-red{background-color:var(--red)}button.action-navy{background-color:var(--navy)}
