@font-face{font-family:Onest;src:url(/assets/Onest-Regular-5lZaK-lA.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Onest;src:url(/assets/Onest-SemiBold-BAFX7XIk.woff2) format("woff2");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:Onest;src:url(/assets/Onest-Bold-DgW15mUu.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}:root{--bg: #ffffff;--bg2: #f7f9f8;--bg3: #f5f5f5;--green: #01a97d;--green-hover: #029f76;--green-light: #ecfbf8;--fg: #1e1e1e;--muted: #999999;--border: #e9e9e9;--border-light: #f5f5f5;--danger: #ee1a24;--radius: 10px;--radius-input: 9px}*{box-sizing:border-box}body{margin:0;background-color:var(--bg);color:var(--fg);font-family:Onest,-apple-system,Segoe UI,Roboto,sans-serif;font-weight:400;font-size:16px;line-height:1.3em}h1,h2,h3,h4,h5,h6{margin:0;font-weight:700;line-height:1.25em}a{color:var(--fg);text-decoration:none;transition:color .2s}a:hover{color:var(--green)}button{margin:0;cursor:pointer;outline:0;background-color:transparent;font-family:inherit;font-size:1em;display:inline-block;text-align:center;padding:1em 1.1875em;line-height:1.5em;border:none;border-radius:var(--radius);color:#fff;background:var(--green);transition:background-color .2s}button:disabled{opacity:.45;cursor:default}button:hover{background-color:var(--green-hover)}button:disabled:hover{background:var(--green)}button.primary{background:var(--green)}button.danger{background:transparent;border:1px solid var(--danger);color:var(--danger)}button.danger:hover{background:#fdeeee}button.ghost{background:transparent;border:1px solid var(--border);color:var(--fg)}button.ghost:hover{background:var(--bg3);border-color:var(--border)}button.active{outline:2px solid var(--green);outline-offset:-2px;background:var(--green)}input,textarea{width:100%;padding:.9em 1em;border:1px solid #999999;border-radius:var(--radius-input);font-family:inherit;font-size:1em;color:var(--fg);background:#fff;outline:0;transition:border-color .2s ease}input:focus,textarea:focus{border-color:var(--green)}input::placeholder,textarea::placeholder{color:var(--muted)}.muted{color:var(--muted)}.small{font-size:.875em}.error{color:var(--danger)}.accent{color:var(--green)}main.center{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:20px}main.home{max-width:1170px;margin:0 auto;padding:3.125em 20px 6.25em;display:flex;flex-direction:column;gap:1.875em}main.home h1{font-size:2.25em;line-height:1.25em}main.home h1 .accent{color:var(--green)}.site-header{display:flex;align-items:center;justify-content:space-between;padding:1em 0;border-bottom:.063em solid var(--border-light)}.site-header__link{font-size:.9375em;font-weight:600}.site-header__link:hover{color:var(--green)}main.home{width:81.25%}.logo{display:inline-flex;align-items:center;gap:.625em}.logo__badge{width:40px;height:40px;border-radius:50%;background:#f5f5f5;color:var(--fg);font-weight:700;font-size:1.125em;display:flex;align-items:center;justify-content:center}.logo__text{font-weight:700;letter-spacing:.05em}.logo__chip{background:var(--green-light);color:var(--green);font-size:.6875em;font-weight:600;padding:.2em .75em;border-radius:1em;letter-spacing:.08em}.hero{display:flex;flex-direction:column;gap:.625em}.hero__desc{font-size:1.125em;line-height:1.4em;max-width:46em}.card{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:1.875em;display:flex;flex-direction:column;gap:1em;max-width:560px}.card h2{font-size:1.375em}.join-card{min-width:min(380px,92vw)}.row{display:flex;gap:.625em}.row input{flex:1}main.room,main.replay{height:100vh;display:flex;flex-direction:column;overflow:hidden}.room-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:.875em 1.25em;background:var(--bg);border-bottom:1px solid var(--border);flex-wrap:wrap}.room-header strong{font-weight:700}.room-title{display:flex;align-items:center;gap:.75em;flex-wrap:wrap}.room-title .logo__badge{width:32px;height:32px;font-size:.9em}.room-title .logo__chip{font-size:.5625em;padding:.15em .6em}.header-right{display:flex;align-items:center;gap:.625em;flex-wrap:wrap}.header-right button{padding:.55em 1em;font-size:.875em}.banner{background:#fdf3e7;color:#b25e09;padding:.625em 1.25em;border-bottom:1px solid #f3ddc3;font-size:.9375em}.banner-inline{margin-left:10px;color:#b25e09;font-size:.8125em}.room-body{flex:1;display:flex;min-height:0}.editor-wrap{flex:1;min-width:0;display:flex;flex-direction:column;border-right:1px solid var(--border)}.editor-host{flex:1;min-height:0;overflow:auto;background:#fff}.editor-host .cm-editor{height:100%}.editor-host .cm-editor .cm-scroller{overflow:auto;font-family:SF Mono,ui-monospace,Menlo,Consolas,monospace}.editor-host .cm-gutters{border-right:1px solid var(--border-light);background:var(--bg2)}.editor-host .cm-activeLine{background:#01a97d12}.editor-host .cm-activeLineGutter{background:#ddf3ec}main.candidate .room-body{background:var(--bg2)}main.candidate .editor-wrap{max-width:900px;margin:1.25em auto;width:100%;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;height:calc(100% - 2.5em)}.col-resizer{flex:0 0 6px;cursor:col-resize;background:transparent;position:relative;z-index:5;align-self:stretch;transition:background-color .15s}.col-resizer:after{content:"";position:absolute;top:0;right:2px;bottom:0;left:2px}.col-resizer:hover,.col-resizer:active{background:var(--green);opacity:.45}body.col-resizing{cursor:col-resize;-webkit-user-select:none;user-select:none}.col-side{border-left:1px solid var(--border);background:var(--bg);padding:.875em 1em;overflow-y:auto;display:flex;flex-direction:column;gap:.75em;min-width:0;flex-shrink:0}.col-title{margin:0;font-size:.875em;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.col-log .chat{flex:1;min-height:0}.chat-list{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:.5em;padding-right:2px}.chat-msg{max-width:88%;border-radius:12px;padding:.45em .75em;font-size:.875em;display:flex;flex-direction:column;gap:.15em}.question-card{border:1px solid var(--border);border-left:3px solid var(--green);border-radius:var(--radius-input);background:#fff;padding:.5em .75em;font-size:.875em;display:flex;flex-direction:column;gap:.35em}.question-card.ok{border-left-color:var(--green);background:var(--green-light)}.question-card.fail{border-left-color:var(--danger);background:#fdf2f2}.question-actions{display:flex;gap:.5em;flex-wrap:wrap}.question-actions button{padding:.35em .7em;font-size:.85em}.ok-btn{border-color:var(--green);color:#027a5c}.ok-btn:hover{background:var(--green-light)}.fail-btn{border-color:var(--danger);color:var(--danger)}.fail-btn:hover{background:#fdf2f2}.question-actions button.selected{background:var(--green-light);box-shadow:0 0 0 2px var(--green) inset}.fail-btn.selected{background:#fdf2f2;box-shadow:0 0 0 2px var(--danger) inset}.question-comment{background:var(--bg3);border-radius:6px;padding:.35em .6em;font-size:.9em;white-space:pre-wrap}.question-comment-input{margin-top:.15em;display:flex;gap:.5em;align-items:flex-end}.question-comment-input textarea{font-size:.9em;padding:.45em .65em;resize:none;overflow:hidden;min-height:2em}.question-comment-input button{padding:.35em .65em}.verdict{font-weight:700;font-size:.85em;display:flex;align-items:center;gap:.35em}.question-comment{display:flex;gap:.4em;align-items:baseline}.question-comment-text{flex:1;white-space:pre-wrap}.question-comment-actions{display:none;gap:.1em}.question-comment:hover .question-comment-actions{display:inline-flex}.verdict.ok{color:#027a5c}.verdict.fail{color:var(--danger)}.chat-msg.s{align-self:center;max-width:96%;background:var(--bg2);border:1px dashed var(--border);border-radius:10px;color:var(--muted);font-size:.8125em;text-align:center;padding:.4em .7em}.chat-msg.s .chat-time{margin:0;display:block;font-size:.6875em}.chat-msg.s .chat-text{white-space:pre-wrap;font-size:.92em;text-align:left}.chat-msg.p{border-style:solid;border-color:var(--border)}.chat-msg.p.alert{border-color:var(--danger);background:#fdf2f2;color:#a13a3a}.chat-msg.q{align-self:flex-end;background:var(--green);color:#fff;border-bottom-right-radius:4px}.chat-send-row{display:flex;gap:.5em}.chat-send-row button{flex:1;padding:.6em .5em;font-size:.875em}.chat-send-row button.compile-chat-btn{flex:0 0 auto;padding:.6em .9em}.task-sep{margin-top:.3em;text-transform:uppercase;letter-spacing:.05em;font-size:.72em}.question-card.task{border-left-color:#e07b39}.question-card.task.solved{border-left-color:var(--green);background:var(--green-light)}.question-card.task.hinted{border-left-color:#b8860b;background:#fdf8ec}.question-card.task.failed{border-left-color:var(--danger);background:#fdf2f2}.small-action{align-self:flex-start;padding:.3em .7em;font-size:.78em}.task-solution{margin:0;background:var(--bg3);border:1px solid var(--border);border-radius:var(--radius-input);padding:.5em .7em;font-family:SF Mono,ui-monospace,Menlo,Consolas,monospace;font-size:.78em;overflow-x:auto;white-space:pre-wrap;max-height:300px;overflow-y:auto}.hint-btn{border-color:#b8860b;color:#9a6f00}.hint-btn:hover{background:#fdf8ec}.hint-btn.selected{background:#fdf8ec;box-shadow:0 0 0 2px #b8860b inset}.verdict.hint{color:#9a6f00}.chat-msg.c{align-self:flex-end;background:var(--green-light);border:1px solid #d5f0e8;border-bottom-right-radius:4px}.chat-msg.c .chat-meta span:first-child{color:#027a5c;font-weight:600}.chat-msg.a{align-self:flex-start;background:var(--bg3);border:1px solid var(--border);border-bottom-left-radius:4px}.chat-meta{font-size:.6875em;display:flex;gap:.4em;align-items:baseline}.chat-msg.q .chat-time{color:#ffffffbf}.chat-time{margin-left:auto;font-variant-numeric:tabular-nums}.question-delete{margin-left:.4em;background:none;border:none;padding:0 .3em;color:var(--muted);font-size:1em;line-height:1;display:inline}.question-delete:hover{color:var(--danger);background:none}.chat-text{white-space:pre-wrap}.col-tools .task-list{max-height:none}.sidebar{width:340px;border-left:1px solid var(--border);background:var(--bg);padding:1em 1.25em;overflow-y:auto;display:flex;flex-direction:column;gap:.75em}.sidebar h3{margin:.5em 0 .25em;font-size:.875em;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.participants{display:flex;gap:.375em;flex-wrap:wrap}.chip{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--border);border-radius:20px;padding:.2em .75em;font-size:.8125em;background:var(--bg2)}.chip em{color:var(--muted);font-style:normal}.dot{width:8px;height:8px;border-radius:50%}.panel{display:flex;flex-direction:column;gap:.5em}.mode-switch{display:flex;gap:.5em}.mode-switch button{flex:1;padding:.55em 1em;font-size:.875em}.panel textarea{font-size:.9375em}.panel button.primary{align-self:flex-start;padding:.7em 1.1875em;font-size:.9375em}.timeline-feed{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:.375em;padding-right:2px}.proctor-list{display:flex;flex-direction:column;gap:.375em;max-height:240px;overflow-y:auto}.proctor-item{background:var(--bg2);border:1px solid var(--border-light);border-radius:var(--radius-input);padding:.4em .7em;font-size:.8125em;display:flex;gap:.5em;align-items:baseline;flex-wrap:wrap}.proctor-item.alert{border-color:var(--danger);background:#fdf2f2}.proctor-time{color:var(--muted);font-variant-numeric:tabular-nums}.llm-entry{border:1px solid var(--border);border-radius:var(--radius-input);padding:.55em .75em;font-size:.8125em;display:flex;flex-direction:column;gap:.25em}.llm-q{color:var(--muted)}.llm-a{white-space:pre-wrap}.compile-result pre{margin:0;background:var(--bg3);border:1px solid var(--border);border-radius:var(--radius-input);padding:.55em .75em;font-family:SF Mono,ui-monospace,Menlo,Consolas,monospace;font-size:.75em;overflow-x:auto;white-space:pre-wrap}pre.stderr{color:var(--danger)}pre.stdout{color:#027a5c}.timeline{display:flex;align-items:center;gap:.75em;padding:.625em 1.25em;background:var(--bg);border-bottom:1px solid var(--border)}.timeline input[type=range]{flex:1;padding:0;border:none;accent-color:var(--green);height:1.25em}.editor-host .cm-editor .cm-selectionBackground,.editor-host .cm-editor.cm-focused .cm-selectionBackground{background:#33669961}.editor-host .cm-editor .cm-cursor,.editor-host .cm-editor.cm-focused .cm-cursor{border-left-color:#1e1e1e;border-left-width:2px}.cm-remote-cursor{display:inline-block;width:0;height:1.15em;vertical-align:text-bottom;border-left:2px solid var(--muted);pointer-events:none;margin-left:-1px}.cm-remote-sel.c0{background:#4f8ef738}.cm-remote-cursor.c0{border-color:#4f8ef7}.cm-remote-sel.c1{background:#e07b3938}.cm-remote-cursor.c1{border-color:#e07b39}.cm-remote-sel.c2{background:#43a04738}.cm-remote-cursor.c2{border-color:#43a047}.cm-remote-sel.c3{background:#8e44ad33}.cm-remote-cursor.c3{border-color:#8e44ad}.cm-remote-sel.c4{background:#e539352e}.cm-remote-cursor.c4{border-color:#e53935}.cm-remote-sel.c5{background:#00acc138}.cm-remote-cursor.c5{border-color:#00acc1}.tabs{display:flex;flex-wrap:wrap;gap:.375em}.tab{padding:.45em .8em;font-size:.8125em}.tabs .tab.active{background:var(--green);border-color:var(--green);color:#fff}.small-actions button{padding:.35em .7em;font-size:.78em}.notes-list{max-height:420px}.note-item{background:var(--green-light);border:1px solid #d5f0e8;border-radius:var(--radius-input);padding:.45em .7em;font-size:.875em;display:flex;flex-direction:column;gap:.2em}.proctor-item.note{background:var(--green-light);border-color:#d5f0e8}.note-text{white-space:pre-wrap}.task-list{display:flex;flex-direction:column;gap:.5em;max-height:460px;overflow-y:auto}.task-item{border:1px solid var(--border);border-radius:var(--radius-input);padding:.6em .75em;display:flex;flex-direction:column;gap:.35em;font-size:.875em}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#1e1e1e73;display:flex;align-items:center;justify-content:center;z-index:50;padding:20px}.modal{background:#fff;border-radius:var(--radius);max-width:640px;width:100%;max-height:85vh;overflow-y:auto;padding:1.25em 1.5em;display:flex;flex-direction:column;gap:.75em}.modal h3{margin:0}.modal pre{background:var(--bg3);border:1px solid var(--border);border-radius:var(--radius-input);padding:.6em .75em;font-family:SF Mono,ui-monospace,Menlo,Consolas,monospace;font-size:.8125em;overflow-x:auto;white-space:pre-wrap}.modal details summary{cursor:pointer;font-weight:600;margin-bottom:.25em}.modal details{margin-bottom:.5em}.task-content{font-size:.9375em}.task-content p{margin:0 0 .5em}.task-content code{background:var(--bg3);border-radius:4px;padding:.1em .35em;font-family:SF Mono,ui-monospace,Menlo,Consolas,monospace;font-size:.9em}.theory-card{border:1px solid var(--border);border-radius:var(--radius-input);padding:.75em;display:flex;flex-direction:column;gap:.4em}.theory-q{font-weight:600;font-size:.9375em}.theory-a{color:#027a5c;font-size:.875em;white-space:pre-wrap}select{width:100%;padding:.7em .75em;border:1px solid #999999;border-radius:var(--radius-input);font-family:inherit;font-size:.9375em;background:#fff;color:var(--fg)}.banner.ok{background:var(--green-light);color:#027a5c;border-color:#d5f0e8}.rec-pass{background:#fff;border:1px solid #d5f0e8;border-radius:6px;padding:.05em .4em;font-family:SF Mono,ui-monospace,Menlo,Consolas,monospace;font-weight:700}button.link-like{background:none;border:none;padding:0;color:#027a5c;text-decoration:underline;display:inline}.button-like{border:1px solid var(--border);color:var(--fg);border-radius:var(--radius);padding:.55em 1em;font-size:.875em;transition:background-color .2s,color .2s}.button-like:hover{background:var(--green-light);border-color:var(--green);color:var(--green)}
