@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:400;src:url("./dm-sans-latin-ext-400-normal-2ZR6XYBL.woff2") format("woff2"),url("./dm-sans-latin-ext-400-normal-TBIAKTDR.woff") format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:400;src:url("./dm-sans-latin-400-normal-PK6QQEPM.woff2") format("woff2"),url("./dm-sans-latin-400-normal-MGJ5Z327.woff") format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:500;src:url("./dm-sans-latin-ext-500-normal-26EY6OLJ.woff2") format("woff2"),url("./dm-sans-latin-ext-500-normal-7LSA2WRE.woff") format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:500;src:url("./dm-sans-latin-500-normal-EEBZRNR6.woff2") format("woff2"),url("./dm-sans-latin-500-normal-DXK3D23C.woff") format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:600;src:url("./dm-sans-latin-ext-600-normal-I7LCOF75.woff2") format("woff2"),url("./dm-sans-latin-ext-600-normal-EPKCPTQL.woff") format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:600;src:url("./dm-sans-latin-600-normal-VVAUUCVV.woff2") format("woff2"),url("./dm-sans-latin-600-normal-RFO53SGX.woff") format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:700;src:url("./dm-sans-latin-ext-700-normal-YO5Z2BEM.woff2") format("woff2"),url("./dm-sans-latin-ext-700-normal-MVCRPVDV.woff") format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:700;src:url("./dm-sans-latin-700-normal-3NSIJ7YI.woff2") format("woff2"),url("./dm-sans-latin-700-normal-X22FQDE6.woff") format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url("./jetbrains-mono-cyrillic-ext-400-normal-C7IFWGF6.woff2") format("woff2"),url("./jetbrains-mono-cyrillic-ext-400-normal-PWXUA557.woff") format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url("./jetbrains-mono-cyrillic-400-normal-C5JECUCT.woff2") format("woff2"),url("./jetbrains-mono-cyrillic-400-normal-FGCZYWMY.woff") format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url("./jetbrains-mono-greek-400-normal-O7JTTR3P.woff2") format("woff2"),url("./jetbrains-mono-greek-400-normal-JJNQZMPZ.woff") format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url("./jetbrains-mono-vietnamese-400-normal-KU7YLUPA.woff2") format("woff2"),url("./jetbrains-mono-vietnamese-400-normal-7ULXAK72.woff") format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url("./jetbrains-mono-latin-ext-400-normal-JVR3IR4Z.woff2") format("woff2"),url("./jetbrains-mono-latin-ext-400-normal-55RNMRQS.woff") format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url("./jetbrains-mono-latin-400-normal-3OOWLGQ2.woff2") format("woff2"),url("./jetbrains-mono-latin-400-normal-WDD34GPP.woff") format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{font-family:DM Sans,sans-serif;color:#252637;background:#f8f9fb;font-synthesis:none;font-size:14px;--accent:#5654d6;--accent-dark:#4542be;--accent-soft:#efeffd;--muted:#7e8292;--border:#e7e8ef;--green:#318a6d;--dark:#1c1e2b;--problem-width:40%}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button,a,input,summary{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:default;opacity:.48}a{color:inherit;text-decoration:none}button{border:0}button:focus-visible,a:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid #a8a1fa;outline-offset:4px}input:focus{outline:2px solid #beb9ff;outline-offset:1px;border-color:var(--accent)}button svg,a svg{flex-shrink:0}svg{vertical-align:middle;flex-shrink:0}h1,h2,h3,p{margin:0}button{touch-action:manipulation}::selection{background:#e0ddff}pre,code,kbd{font-family:JetBrains Mono,monospace}pre{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}[hidden]{display:none!important}.boot{padding:48px;text-align:center;color:var(--muted)}.skip-link{position:fixed;top:-70px;left:20px;padding:14px;background:#fff;z-index:100}.skip-link:focus{top:10px}.site-header{height:48px;border-bottom:1px solid var(--border);padding:0 20px;display:flex;align-items:center;justify-content:flex-end;background:#ffffffd9;position:relative;z-index:5;gap:24px}.header-right{display:flex;gap:11px;align-items:center}.avatar{display:grid;place-items:center;width:31px;height:31px;border-radius:50%;background:#efedf9;font-size:10px;font-weight:700;color:#7060a9}.header-name{font-size:12px;color:#5d6174;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.connection{color:var(--green);margin-right:8px}.connection.offline{color:#b28141}.icon-button{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:6px;background:transparent;color:#888c9c;padding:0}.icon-button:hover{background:#eeeff5;color:var(--accent)}.eyebrow{font-size:10px;font-weight:700;letter-spacing:1.8px;color:var(--accent);display:inline-flex;gap:10px;align-items:center}.button{display:inline-flex;align-items:center;justify-content:center;gap:11px;border-radius:8px;font-weight:600;font-size:12px;min-height:41px;padding:11px 17px;border:1px solid transparent;transition:background .15s,box-shadow .15s,transform .15s;white-space:nowrap}.button:hover:not(:disabled){transform:translateY(-1px)}.button.primary{background:var(--accent);color:#fff;box-shadow:0 3px 6px #40369d10}.button.primary:hover:not(:disabled){background:var(--accent-dark);box-shadow:0 4px 12px #40369d25}.button.secondary{background:#fff;color:#525569;border-color:#dddfe9}.button.secondary:hover{background:#f4f4fa}.button.running{color:#ad525f;border-color:#eac6cb;background:#fff5f6}.text-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;background:transparent;color:#72758a;font-size:11px;font-weight:500;padding:8px}.text-button:hover{color:var(--accent)}.separator{color:#c6c8d2;margin:0 5px}.live-dot,.session-dot,.warning-dot{display:inline-block;width:6px;height:6px;background:#51a78d;border-radius:50%;vertical-align:middle;flex-shrink:0}.warning-dot{background:#c99850}.session-dot{box-shadow:0 0 0 4px #e5f4ee}.muted{color:#9699a8}.join-card{margin-top:34px;background:#fff;border:1px solid var(--border);box-shadow:0 7px 26px #23224404;padding:22px;border-radius:12px;max-width:425px}.join-fields{display:grid;grid-template-columns:1.55fr 1fr;gap:12px}label{display:block;font-size:10px;color:#777c8c;margin-bottom:8px;font-weight:500}input{border:1px solid #e1e3ec;border-radius:6px;background:#fdfdfe;padding:11px 12px;color:#313449;min-width:0;width:100%;font-size:11px}input::placeholder{color:#acafbc}.input-wrap{position:relative}.input-wrap>svg{position:absolute;left:11px;top:10px;color:#8c91a5}.input-wrap>input{padding-left:38px}.join-button{width:100%;margin-top:6px;justify-content:space-between;padding:12px 15px}.form-error{color:#bc4b5a;font-size:11px;line-height:1.5}.form-error:not(:empty){margin:12px 0}body:has(.workspace){overflow:hidden}.site-header:has(+.workspace){height:48px;padding:0 20px}.workspace{height:calc(100dvh - 48px);display:flex;background:#fff}.task-rail{width:56px;flex-shrink:0;border-right:1px solid var(--border);background:#fafbfc;display:flex;align-items:center;flex-direction:column;gap:8px;padding:14px 8px;overflow:auto}.rail-task{display:flex;flex-direction:column;align-items:center;justify-content:center;background:none;color:#8a8fa3;width:36px;min-height:36px;border:1px solid transparent;border-radius:9px;padding:8px}.rail-task>span{font-family:JetBrains Mono,monospace;font-size:12px;display:flex;align-items:center;justify-content:center;height:21px}.rail-task small{font-size:7px;margin-top:5px;letter-spacing:.2px}.rail-task svg{width:14px;height:14px}.rail-task.active{background:#eeeefa;color:#6359c9;border-color:#e4e1f7}.rail-task.complete{color:#388967}.rail-task:not(:disabled):hover{background:#f0effa}.rail-task:disabled{opacity:.5}.workspace-main{min-width:0;flex:1;display:flex;flex-direction:column}.work-panels{display:grid;grid-template-columns:minmax(290px,var(--problem-width)) 5px minmax(360px,1fr);flex:1;min-height:0;min-width:0}.problem-panel{overflow-y:auto;padding:27px 32px 24px;min-width:0;scrollbar-width:thin;scrollbar-color:#dcddea transparent}.problem-topline{display:flex;align-items:center;justify-content:space-between;gap:10px}.pill{font-size:9px;background:#eeedfa;color:#7362b9;border-radius:5px;padding:5px 8px}.task-counter{font-family:JetBrains Mono,monospace;font-size:9px;color:#a3a6b8}.problem-panel h1{font-size:27px;font-weight:600;letter-spacing:-1px;margin-top:20px;line-height:1.2}.task-subtitle{font-size:11px;color:#9598a9;margin-top:8px;line-height:1.6}.tag-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:17px}.tag-row span{font-family:JetBrains Mono,monospace;font-size:8px;color:#85899b;border:1px solid #e9eaf0;border-radius:4px;padding:4px 6px}.task-intro{font-size:12px;color:#6b7084;line-height:1.9;margin:24px 0}.problem-panel h2{font-size:12px;font-weight:600;margin:23px 0 13px}.requirements{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:13px}.requirements li{display:flex;gap:12px;align-items:flex-start}.requirements li>span{border:1px solid #e6e5f2;background:#faf9ff;color:#8a7eb7;border-radius:5px;width:19px;height:19px;font-size:9px;display:grid;place-items:center;flex-shrink:0;margin-top:2px}.requirements p{font-size:11px;line-height:1.8;color:#73788c}.examples{display:flex;flex-direction:column;gap:10px}.example{border:1px solid #e8e9f1;border-radius:8px;padding:12px 14px;background:#fcfcfe}.example-label{font-size:7px;letter-spacing:1px;color:#a0a3b4;font-weight:600;margin-bottom:12px}.example-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.example-grid>div+div{padding-left:15px;border-left:1px solid #e7e8f0}.example-grid>div>span{font-size:9px;color:#969aac}.example-grid pre{font-size:11px;line-height:1.9;margin-top:5px;color:#64637c}.example>p{margin-top:10px;font-size:9px;line-height:1.6;color:#9da1b2}.hint,.bonus{margin-top:18px;border-radius:7px;border:1px solid #e8e6f3;background:#f9f8fe;padding:0 12px}.hint summary,.bonus summary{font-size:10px;display:flex;align-items:center;gap:8px;cursor:pointer;padding:12px 0;color:#8370b4;list-style:none}.hint summary::-webkit-details-marker,.bonus summary::-webkit-details-marker{display:none}.hint summary svg,.bonus summary svg{width:14px;height:14px}.hint summary svg:last-child,.bonus summary svg:last-child{margin-left:auto;width:12px;height:12px}.hint p,.bonus p{font-size:11px;line-height:1.8;color:#80758f;padding:1px 0 12px}.bonus{background:#fff;border-color:var(--border);margin-top:9px}.bonus summary{color:#9693a7}.panel-divider{cursor:col-resize;background:#eff0f5;border-left:1px solid #e4e6ef;border-right:1px solid #e4e6ef;touch-action:none}.panel-divider:hover,.panel-divider.dragging{background:#b1a9ee}.coding-panel{min-width:0;min-height:0;display:flex;flex-direction:column;background:var(--dark)}.editor-host{flex:1;min-height:130px;overflow:hidden}.editor-status{height:27px;display:flex;align-items:center;gap:15px;flex-shrink:0;background:#20222f;padding:0 15px;font-size:8px;color:#6f768d;border-top:1px solid #2b2e3e}.editor-status>span:first-child{margin-right:auto;color:#8d94a7;display:flex;align-items:center;gap:5px}.editor-status svg{width:11px;height:11px}.console-panel{height:31%;min-height:180px;max-height:400px;display:flex;flex-direction:column;flex-shrink:0;background:#181a25;border-top:1px solid #37394a}.console-tabs{height:39px;display:flex;flex-shrink:0;gap:17px;border-bottom:1px solid #2b2e3d;padding:0 15px}.console-tabs>button:not(.clear-console){display:flex;align-items:center;gap:7px;background:transparent;color:#788299;font-size:10px;border-bottom:2px solid transparent;border-radius:0;padding:0 2px;position:relative}.console-tabs>button.selected{color:#ccc4ed;border-bottom-color:#a695df}.console-tabs svg{width:13px;height:13px}.clear-console{margin-left:auto;background:none;color:#737b92}.has-feedback{width:5px;height:5px;background:#8ccbae;border-radius:50%;margin-left:2px}#console-view{display:flex;flex-direction:column;flex:1;min-height:0}.console-output{padding:12px 17px;overflow:auto;flex:1;min-height:0;font-family:JetBrains Mono,monospace;font-size:11px;line-height:1.85;white-space:pre-wrap;overflow-wrap:anywhere;color:#c6ccdb;scrollbar-width:thin;scrollbar-color:#363a50 transparent}.console-status{color:#748099;font-size:10px}.console-success{color:#96cdb0;font-size:10px}.console-stderr{color:#e9a0a8}.console-input{color:#b6a6f2}.console-empty{height:100%;min-height:62px;display:flex;align-items:center;justify-content:center;flex-direction:column;color:#5e687f;gap:8px;font-family:DM Sans,sans-serif;white-space:normal}.console-empty>svg{width:21px;height:21px;color:#515a71}.console-empty>span{font-size:11px}.console-empty>small{font-size:9px;color:#525c73}.stdin-form{height:36px;display:flex;align-items:center;gap:7px;padding:0 12px;border-top:1px solid #282b39;color:#8d7acb;flex-shrink:0}.stdin-form input{font-family:JetBrains Mono,monospace;background:transparent;border:0;font-size:10px;padding:7px 3px;color:#c0c5d6;border-radius:0}.stdin-form input::placeholder{color:#626b82}.stdin-form input:focus{outline:0}.stdin-form .icon-button{width:23px;height:23px;color:#8983ba}.stdin-form .icon-button:hover{background:#2a2c40}.stdin-form .icon-button svg{width:13px;height:13px}.eof-button{font-family:JetBrains Mono,monospace;background:#282a3a;border:1px solid #3a3c50;border-radius:4px;color:#8e95a9;font-size:8px;padding:3px 5px}.editor-fullscreen .problem-panel,.editor-fullscreen .panel-divider,.editor-fullscreen .task-rail{display:none}.editor-fullscreen .work-panels{grid-template-columns:1fr}#feedback-view{flex:1;overflow:auto;min-height:0;background:#fdfdff;scrollbar-width:thin}.feedback-empty,.grading-state{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:9px;padding:25px 20px;text-align:center;min-height:160px;color:#8c87a9}.feedback-empty>svg,.grading-state>svg{color:#b3a6d5;width:24px;height:24px}.feedback-empty strong,.grading-state strong{font-size:12px;font-weight:500;color:#777187}.feedback-empty p,.grading-state p{font-size:10px;line-height:1.7;color:#9b96ab}.grading-state small{font-size:9px;color:#aaa5b7}.feedback-content{padding:18px 20px 22px}.feedback-heading{display:flex;gap:10px;align-items:flex-start}.feedback-heading>svg{width:21px;height:21px}.feedback-heading.success{color:#449a77}.feedback-heading.revise{color:#b08857}.feedback-heading h3{font-size:13px;margin-bottom:5px}.feedback-heading p{font-size:11px;line-height:1.7;color:#878397}.notice{font-size:10px;color:#9c8b61;background:#fbf8ee;border:1px solid #eee7d3;border-radius:5px;padding:9px 11px;margin:12px 0;line-height:1.7}.test-summary{margin-top:17px}.test-summary>strong{display:block;font-size:10px;color:#8b869b;font-weight:500;margin-bottom:8px}.test-row{border-bottom:1px solid #eeedf3;padding:8px 0}.test-row summary{font-size:10px;color:#817c91;display:flex;align-items:center;gap:7px;list-style:none;cursor:pointer}.test-row summary::-webkit-details-marker{display:none}.test-row summary>span{margin-left:auto;font-size:8px;color:#a4a0af}.test-row.pass summary>svg{color:#5b9b7b}.test-row.fail summary>svg{color:#bd7680}.test-row summary>svg{width:13px;height:13px}.test-row>p{font-size:10px;color:#9691a4;margin:8px 0;line-height:1.6}.test-comparison{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:9px 0;background:#f6f5f9;border-radius:4px;padding:9px}.test-comparison small{font-size:7px;letter-spacing:1px;color:#a39caf}.test-comparison pre,.test-stderr{font-size:10px;margin-top:5px;line-height:1.7;color:#786e8c}.test-stderr{color:#ad6672}.criteria{padding:0;list-style:none;margin:14px 0}.criteria li{font-size:10px;color:#8a8399;margin:8px 0;display:flex;align-items:flex-start;gap:7px;line-height:1.7}.criteria svg{width:12px;height:12px;margin-top:3px;color:#8a78b0}.feedback-issues p{font-size:11px;color:#958290;margin:9px 0;line-height:1.7}.feedback-issues p>span{font-size:9px;border-radius:3px;background:#f4eef4;padding:3px 5px;color:#aa7993}.feedback-hints{background:#f2effa;border-radius:6px;padding:12px 13px;margin:12px 0}.feedback-hints strong{font-size:10px;font-weight:500;color:#8970af;display:flex;align-items:center;gap:6px}.feedback-hints strong svg{width:13px;height:13px}.feedback-hints p{font-size:10px;line-height:1.8;color:#94869f;margin-top:6px}.feedback-content>.button{margin-top:13px;font-size:10px;min-height:33px;padding:8px 12px}.compiler-error{margin:13px 0;background:#fff4f5;border:1px solid #f3dde1;border-radius:6px;padding:10px;color:#ac7282}.compiler-error summary{font-size:10px;cursor:pointer}.compiler-error pre{font-size:10px;line-height:1.7;margin-top:8px}.waiting-page{min-height:calc(100dvh - 48px);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:50px 24px 44px;background:radial-gradient(ellipse at 50% 35%,#eeecfb70,transparent 52%)}.waiting-page h1{font-size:42px;letter-spacing:-1.5px;font-weight:500;margin:16px 0}.waiting-page>p{font-size:12px;line-height:1.9;color:#9392a4;max-width:490px}.waiting-progress{display:flex;align-items:center;margin:34px 0;gap:9px}.waiting-progress>span{width:31px;height:31px;border:1px solid #e3e1ec;border-radius:9px;display:grid;place-items:center;color:#b9b4c8;font-family:JetBrains Mono,monospace;font-size:9px;background:#fff}.waiting-progress>span.done{background:#eaf4ef;color:#75a48e;border-color:#d8eade}.waiting-progress>span.current{border-color:#b3a7d3;color:#9a88bd;background:#f4f0fa}.waiting-progress>span svg{width:14px;height:14px}.waiting-progress>b{height:1px;width:15px;background:#e5e1ee}.waiting-status{display:flex;align-items:center;gap:10px;border:1px solid #e6e1ef;border-radius:8px;background:#fff;padding:15px 20px;color:#9690a6;font-size:11px;box-shadow:0 3px 10px #74609604}.pulse-dot{width:5px;height:5px;border-radius:50%;background:#b2a1ca;box-shadow:0 0 0 4px #f4eff9;animation:pulse 2s infinite}.mini-label{font-size:7px;padding:3px 5px;background:#f6f2fa;border-radius:3px;color:#b6a5cc;letter-spacing:1px}.waiting-page>.text-button{margin-top:17px}.summary-count{display:flex;flex-direction:column;gap:7px}.summary-count strong{font-size:22px;color:#807196;font-weight:500}.summary-count span{font-size:11px;color:#a598b1}.admin-page{max-width:1190px;margin:auto;padding:24px 45px 30px}.join-link-card{border:1px solid #e5e1ee;background:#fff;border-radius:11px;padding:20px 28px;display:flex;align-items:center;flex-direction:column;min-width:205px}.join-link-card>span{font-size:8px;letter-spacing:1.8px;color:#ada4be}.join-link-card .text-button{margin-top:7px;font-size:9px;color:#a18faf}.join-link-card svg{width:12px;height:12px}.course-status-card{background:#f0edf9;border:1px solid #e6e0f2;border-radius:9px;padding:18px 20px;display:flex;align-items:center;justify-content:space-between;gap:20px}.course-status-copy{display:grid;grid-template-columns:8px 1fr;column-gap:11px;row-gap:5px;align-items:center}.course-status-card strong{font-size:12px;font-weight:500;color:#7a6994}.course-status-copy>span:last-child{grid-column:2;font-size:10px;color:#a397b4}.course-status-card .button{font-size:10px;min-height:35px}.admin-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:23px;margin-top:29px}.admin-flow,.class-panel{background:#fff;border:1px solid var(--border);border-radius:10px;overflow:hidden}.section-heading{height:56px;padding:0 21px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:10px}.section-heading h2{font-size:12px;font-weight:600;color:#757085}.section-heading>span{font-size:8px;color:#aca6b9;display:flex;gap:5px;align-items:center}.count-badge{font-size:9px;background:#f3eff8;border-radius:4px;color:#a598b6;padding:3px 6px;margin-left:5px;font-weight:400}.admin-task{padding:16px 20px;display:flex;align-items:center;gap:13px;border-bottom:1px solid #f0edf5}.admin-task:last-child{border-bottom:none}.admin-task.current{background:#faf8ff}.admin-task-number{font-family:JetBrains Mono,monospace;width:30px;height:30px;display:grid;place-items:center;font-size:10px;border:1px solid #eae4f1;border-radius:8px;color:#b3a8c1;flex-shrink:0}.admin-task-number.released{background:#edf5ef;border-color:#e1ede4;color:#8db399}.admin-task-number svg{width:14px;height:14px}.admin-task-topic{font-size:8px;color:#b0a4bd}.admin-task h3{font-size:11px;font-weight:500;color:#82738e;margin-top:3px}.admin-task p{font-size:8px;color:#bbb0c5;margin-top:5px}.admin-task p span{margin:0 5px}.release-label{margin-left:auto;font-size:8px;color:#b4a4c3}.admin-task.current .release-label{color:#9980b1}.class-panel{display:flex;flex-direction:column;min-width:0}.class-empty{display:flex;align-items:center;flex-direction:column;justify-content:center;padding:70px 20px;color:#c0b6ca}.class-empty>svg{width:32px;height:32px}.class-empty h3{font-size:13px;font-weight:500;color:#a18eae;margin:17px 0 8px}.class-empty p{text-align:center;line-height:1.9;font-size:10px;color:#b5a5be}.class-legend{margin-top:auto;display:flex;flex-wrap:wrap;gap:12px;padding:17px 19px;border-top:1px solid #efeaf3;font-size:7px;color:#b4a6bf}.class-legend>span{display:flex;align-items:center;gap:5px}.legend-dot{width:5px;height:5px;border-radius:50%;background:#c8bae0}.legend-dot.passed{background:#7aaf95}.legend-dot.tests_passed{background:#b2a4d3}.student-table-head{display:flex;justify-content:space-between;padding:17px 18px 10px;font-size:7px;letter-spacing:.6px;color:#b2a5be}.student-table-head>div,.student-progress{display:grid;grid-template-columns:repeat(6,21px);gap:5px;text-align:center}.student-table-head>div{font-family:JetBrains Mono,monospace;letter-spacing:0}.student-row{display:flex;justify-content:space-between;align-items:center;padding:12px 18px;border-top:1px solid #f5f0f7;gap:15px}.student-name{display:flex;gap:9px;align-items:center;min-width:0;color:#91809f;font-size:10px}.student-name>span:last-child{overflow:hidden;text-overflow:ellipsis;max-width:140px}.student-name small{display:block;font-size:7px;color:#bdaec5;margin-top:4px}.student-avatar{width:27px;height:27px;border-radius:50%;background:#f5eff8;color:#ab93bb;display:grid;place-items:center;font-size:8px;flex-shrink:0}.progress-dot{border-radius:5px;border:1px solid #eae3f0;background:#fbf9fd;color:#d1c7dc;width:21px;height:21px;display:grid;place-items:center;padding:0}.progress-dot:disabled{opacity:1}.progress-dot.editing{background:#f4ecfa;color:#b79dcb;border-color:#e9def3}.progress-dot.tests_passed{background:#eee8f9;color:#a38abd;border-color:#e5dcf2}.progress-dot.passed{background:#e5f2e9;color:#7aa990;border-color:#d6e9dd}.progress-dot.revise,.progress-dot.error{background:#fcf1ec;color:#c69d8f;border-color:#f1ddd3}.progress-dot.running,.progress-dot.queued{background:#f8f3e9;color:#c3ae87;border-color:#eee3ca}.progress-dot svg{width:11px;height:11px}.admin-bottom{display:flex;justify-content:space-between;align-items:center;margin-top:25px;font-size:9px;color:#b2a6bc;gap:20px}.admin-bottom #system-status{display:flex;gap:7px;align-items:center}.admin-bottom .live-dot,.admin-bottom .warning-dot{width:5px;height:5px}#toast{position:fixed;bottom:25px;left:50%;transform:translate(-50%,20px);background:#2e293e;color:#efebf7;border:1px solid #4b405f;border-radius:9px;box-shadow:0 10px 30px #27203325;padding:13px 20px;font-size:11px;z-index:99;max-width:min(90vw,520px);line-height:1.6;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s}#toast.show{opacity:1;transform:translate(-50%)}.dialog{border:1px solid #e4ddef;border-radius:14px;box-shadow:0 25px 80px #24203c25;padding:30px;max-width:580px;width:calc(100% - 40px);max-height:85dvh;color:#6e5c83}.dialog::backdrop{background:#241a3f50;backdrop-filter:blur(4px)}.dialog-close{position:absolute;right:13px;top:13px}.dialog h2{font-size:23px;letter-spacing:-.7px;font-weight:500;margin:14px 0}.dialog>p{font-size:12px;line-height:1.9;color:#a291ae}.modal-icon{color:#a58abd;display:inline-flex;background:#f3edf9;border-radius:10px;padding:11px}.dialog-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:25px}.submission-code{background:#211d2f;color:#d5c9e5;border-radius:8px;padding:18px;max-height:50vh;overflow:auto;line-height:1.8;font-size:11px;margin-top:20px}.copy-link-input{margin-top:18px}.spin{animation:spin 1.3s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@keyframes blink{50%{opacity:0}}@keyframes pulse{50%{box-shadow:0 0 0 6px #f4eff920}}@media(min-width:1500px){.problem-panel{padding:32px 40px}.problem-panel h1{font-size:30px}.task-intro,.requirements p{font-size:13px}.problem-panel h2{font-size:14px}}@media(max-width:1150px){.problem-panel{padding:23px}.problem-panel h1{font-size:24px}.student-table-head>div,.student-progress{grid-template-columns:repeat(6,18px);gap:3px}.progress-dot{width:18px;height:18px}.admin-page{padding:35px 30px}.admin-grid{gap:17px}.student-name>span:last-child{max-width:100px}}@media(max-width:850px){.site-header{height:48px;padding:0 20px}.join-card{padding:17px}.join-fields{grid-template-columns:1fr}.task-rail{width:56px;padding:14px 8px}.rail-task{width:36px;min-height:36px}.work-panels{grid-template-columns:minmax(240px,40%) 4px minmax(320px,1fr)}.problem-panel{padding:22px 18px}.problem-panel h1{font-size:22px}.task-intro{font-size:11px}.requirements p{font-size:10px}.admin-grid{grid-template-columns:1fr}.class-empty{padding:45px 20px}.student-table-head>div,.student-progress{grid-template-columns:repeat(6,25px);gap:9px}.progress-dot{width:25px;height:25px}.join-link-card{padding:18px 20px}.header-name{display:none}}@media(max-width:650px){.site-header{height:48px;padding:0 16px;gap:10px}.join-card{max-width:none;margin-top:27px;padding:20px}.join-fields{grid-template-columns:1.4fr 1fr}.site-header:has(+.workspace){padding:0 16px;height:48px}body:has(.workspace){overflow:auto}.workspace{height:auto;min-height:calc(100dvh - 48px);display:block}.task-rail{width:100%;height:52px;flex-direction:row;justify-content:center;overflow:hidden;gap:10px;padding:8px 12px;border-right:0;border-bottom:1px solid var(--border)}.rail-task{width:36px;min-height:36px;padding:5px}.rail-task small{font-size:6px;margin-top:2px}.rail-task>span{font-size:10px;height:17px}.rail-task svg{width:12px;height:12px}.work-panels{display:flex;flex-direction:column}.panel-divider{display:none}.problem-panel{max-height:none;padding:25px 23px}.problem-panel h1{font-size:27px}.task-intro{font-size:12px}.requirements p{font-size:11px}.examples{display:grid;grid-template-columns:1fr}.coding-panel{height:650px;min-height:580px}.editor-status{font-size:7px}.console-panel{height:210px;max-height:none}.editor-fullscreen .coding-panel{height:calc(100dvh - 48px);min-height:500px}.waiting-page{padding:40px 20px;min-height:calc(100dvh - 48px)}.waiting-page h1{font-size:35px}.waiting-page>p{font-size:11px}.waiting-progress{gap:6px}.waiting-progress>b{width:10px}.waiting-progress>span{width:29px;height:29px}.admin-page{padding:30px 20px}.join-link-card{width:100%;display:grid;grid-template-columns:1fr 1fr;justify-items:start;min-width:0;padding:15px 18px;gap:5px}.join-link-card .text-button{grid-column:2;align-self:center;justify-self:end;margin:0}.course-status-card{flex-direction:column;align-items:stretch;padding:16px}.course-status-card .button{width:100%}.course-status-copy>span:last-child{font-size:9px;line-height:1.7}.student-table-head>div,.student-progress{grid-template-columns:repeat(6,20px);gap:4px}.progress-dot{width:20px;height:20px}.student-row{padding:12px}.student-table-head{padding:15px 12px 9px}.student-name{gap:6px}.student-name>span:last-child{max-width:84px}.class-legend{gap:9px;padding:13px 12px;font-size:6px}.admin-bottom{flex-direction:column;align-items:flex-start;gap:12px;font-size:8px}.admin-task{padding:14px 17px}.section-heading{padding:0 17px}.release-label{font-size:7px}.dialog{padding:27px 22px}.dialog h2{font-size:21px}}.task-intro{font-size:13px;color:#60667a}.requirements p{font-size:12px;color:#686d80}.problem-panel h2{font-size:13px}.example>p{font-size:10px;color:#808597}.hint p,.bonus p{color:#736782}.admin-task h3{color:#675672}.admin-task-topic{color:#8a7698}.admin-task p{color:#91839d}.release-label{color:#8b789e}.student-name{color:#756181}.student-name small{color:#97859f}.class-empty p{color:#918299}.class-legend{color:#897694}.section-heading>span{color:#8b7d96}.course-status-copy>span:last-child{color:#87739b}.join-link-card .text-button{color:#897199}.feedback-heading p{color:#756b85}.test-row summary{color:#71617f}.feedback-hints p{color:#776085}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}.login-page{min-height:100dvh;display:grid;place-items:center;padding:24px}.login-page .join-card{width:100%;max-width:425px;margin:0;padding:24px}.login-page .join-fields{grid-template-columns:1fr;gap:18px}.login-page .join-button{margin-top:22px}.admin-topbar{display:flex;justify-content:flex-end;margin-bottom:24px}.admin-topbar .join-link-card{width:100%;min-width:0;display:grid;grid-template-columns:1fr auto;gap:6px 20px;align-items:center;padding:16px 20px}.admin-topbar .join-link-card .text-button{grid-column:2;margin:0}.site-header .header-right>.text-button{margin-right:12px}.rail-task{flex-shrink:0}@media(max-width:650px){.site-header .header-right{gap:8px}.site-header .header-right>.text-button{margin-right:0}.connection{margin-right:0}.admin-page{padding-top:20px}}.site-header:has(.header-actions){display:grid;grid-template-columns:1fr auto 1fr;gap:16px}.header-actions{grid-column:2;display:flex;align-items:center;gap:8px}.site-header:has(.header-actions) .header-right{grid-column:3;justify-self:end}.header-actions .button{min-height:32px;padding:6px 13px;font-size:11px}.header-actions .button svg{width:14px;height:14px}.coding-panel{position:relative}.editor-menu{position:absolute;right:12px;top:10px;z-index:4}.editor-menu>summary{list-style:none;cursor:pointer;display:grid;place-items:center;width:30px;height:30px;border:1px solid #3a3d50;border-radius:7px;background:#252735;color:#9da3b9}.editor-menu>summary::-webkit-details-marker{display:none}.editor-menu>summary:hover,.editor-menu[open]>summary{color:#e1e4ed;background:#303346}.editor-menu-options{position:absolute;top:36px;right:0;display:flex;gap:5px;padding:8px;background:#252735;border:1px solid #3a3d50;border-radius:8px;box-shadow:0 8px 22px #0003}.editor-menu-options .icon-button{color:#b0b6cc}.editor-menu-options .icon-button:hover{background:#393c50;color:#fff}@media(max-width:850px){.site-header:has(.header-actions){grid-template-columns:1fr auto;gap:8px}.header-actions{grid-column:1;justify-self:center}.site-header:has(.header-actions) .header-right{grid-column:2}.site-header:has(.header-actions) .connection{display:none}}@media(max-width:650px){.site-header:has(.header-actions){height:92px;grid-template-columns:1fr;grid-template-rows:44px 48px;gap:0}.site-header:has(.header-actions) .header-right{grid-column:1;grid-row:1}.header-actions{grid-row:2;grid-column:1;justify-self:center}.workspace{min-height:calc(100dvh - 92px)}.editor-fullscreen .coding-panel{height:calc(100dvh - 92px)}}.admin-login-link{display:flex;width:100%;margin-top:12px}.course-actions{flex-shrink:0;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}@media(max-width:650px){.course-actions{flex-direction:column}}@media(min-width:651px)and (max-width:1000px){.course-status-card{flex-wrap:wrap}.course-actions{margin-left:auto}}.admin-task-actions{margin-left:auto;display:flex;flex-direction:column;align-items:flex-end;gap:6px;flex-shrink:0}.admin-task-actions .text-button{font-size:9px;padding:4px 0}.admin-task-actions .text-button svg{width:13px;height:13px}.code-dialog{max-width:920px}.code-dialog .submission-code{font-size:12px;line-height:1.8;max-height:55dvh;white-space:pre;overflow:auto}.last-submission{margin-top:20px}.last-submission summary{cursor:pointer;font-size:12px}.last-submission>p{font-size:11px;margin-top:12px;line-height:1.7}#draft-live-status{font-size:11px}.progress-dot:not(:disabled):hover{outline:2px solid #a598cf;outline-offset:2px}
