:root{--sidebar:#191a17;--sidebar-raised:#24251f;--sidebar-border:#32332d;--paper:#f7f6f2;--surface:#fff;--border:#dcd9d1;--border-strong:#c7c2b7;--text:#24241f;--muted:#6f7069;--accent:#a34429;--accent-hover:#84351f;--success:#416347;--editor:#20211d;--editor-border:#353630}*{box-sizing:border-box}html,body{height:100%}body{background:var(--paper);color:var(--text);margin:0;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:14px}button,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,textarea:focus-visible{outline-offset:2px;outline:2px solid #be6244}.app-shell{grid-template-columns:252px minmax(0,1fr);min-width:0;height:100dvh;display:grid}.sidebar{background:var(--sidebar);border-right:1px solid var(--sidebar-border);color:#f0efe9;flex-direction:column;min-height:0;display:flex}.brand{border-bottom:1px solid var(--sidebar-border);flex:0 0 64px;align-items:center;gap:10px;height:64px;padding:0 20px;display:flex}.brand svg{color:#ce6c4d}.brand strong{letter-spacing:-.01em;font-size:15px;display:block}.brand p{color:#9c9d94;margin:2px 0 0;font-size:12px}.section-nav{border-bottom:1px solid var(--sidebar-border);gap:4px;padding:12px;display:grid}.section-button{color:#b9bab2;cursor:pointer;text-align:left;background:0 0;border:1px solid #0000;border-radius:7px;align-items:center;gap:10px;width:100%;padding:9px 10px;transition:background-color .15s,color .15s;display:flex}.section-button:hover{color:#f0efe9;background:#20211d}.section-button.active{background:var(--sidebar-raised);color:#fff;border-color:#3a3b34}.question-index-heading{justify-content:space-between;align-items:center;padding:16px 16px 8px;display:flex}.question-index-heading strong{font-size:12px}.question-index-heading span{color:#85867e;font-size:11px}.question-index{flex:1;min-height:0;padding:0 8px 12px;overflow-y:auto}.question-link{color:#b8b9b1;cursor:pointer;text-align:left;background:0 0;border:0;border-left:2px solid #0000;gap:4px;width:100%;padding:10px 32px 10px 10px;transition:background-color .15s,color .15s;display:grid;position:relative}.question-link:hover{color:#fff;background:#20211d}.question-link.active{color:#fff;background:#252620;border-left-color:#c86042}.question-number{color:#85867f;font-size:11px}.question-link strong{text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:550;overflow:hidden}.question-chevron{color:#707169;position:absolute;top:22px;right:10px}.question-score{color:#91ae93;align-items:center;gap:4px;font-size:11px;display:flex;position:absolute;top:19px;right:10px}.sidebar-note{border-top:1px solid var(--sidebar-border);color:#777870;margin:0;padding:12px 16px;font-size:11px}.workspace{grid-template-rows:56px minmax(0,1fr);min-width:0;min-height:0;display:grid}.toolbar{border-bottom:1px solid var(--border);background:var(--surface);justify-content:space-between;align-items:center;gap:16px;min-width:0;padding:0 16px 0 20px;display:flex}.toolbar-title{align-items:baseline;gap:10px;min-width:0;display:flex}.toolbar-title strong{white-space:nowrap;font-size:14px}.toolbar-title span{color:var(--muted);font-size:12px}.toolbar-actions{align-items:center;gap:8px;display:flex}.timer{min-width:72px;color:var(--muted);font-variant-numeric:tabular-nums;align-items:center;gap:6px;display:flex}.button{cursor:pointer;border-radius:8px;justify-content:center;align-items:center;gap:7px;height:34px;padding:0 12px;font-size:13px;font-weight:600;transition:background-color .15s,border-color .15s,color .15s;display:inline-flex}.button:disabled{cursor:wait;opacity:.55}.button.secondary{border:1px solid var(--border-strong);color:#3b3b35;background:#fff}.button.secondary:hover:not(:disabled){background:#f1f0ec;border-color:#aaa69d}.button.primary{border:1px solid var(--accent);background:var(--accent);color:#fff}.button.primary:hover:not(:disabled){border-color:var(--accent-hover);background:var(--accent-hover)}.ide-grid{grid-template-columns:minmax(330px,390px) minmax(460px,1fr);min-width:0;min-height:0;display:grid}.question-pane{border-right:1px solid var(--border);background:var(--paper);padding:28px 24px 40px;overflow-y:auto}.question-heading{border-bottom:1px solid var(--border);padding-bottom:24px}.question-meta{color:var(--muted);flex-wrap:wrap;gap:8px 16px;margin-bottom:12px;font-size:12px;display:flex}.question-heading h1{letter-spacing:-.025em;margin:0;font-size:25px;line-height:1.2}.question-heading p{color:#5d5e57;margin:10px 0 0;font-size:14px;line-height:1.6}.task-block{padding:22px 0 0}.task-block h2{margin:0 0 12px;font-size:14px}.task-block ol{margin:0;padding-left:22px}.task-block li{color:#3f403a;padding-left:3px;line-height:1.55}.task-block li+li{margin-top:9px}.mark-preview{border-top:1px solid var(--border);margin-top:24px;padding-top:20px}.mark-row{color:#54554e;border-bottom:1px solid #e4e1da;grid-template-columns:minmax(0,1fr) 28px;gap:12px;padding:9px 0;font-size:13px;line-height:1.4;display:grid}.mark-row strong{color:var(--text);text-align:right}.source-note{border:1px solid var(--border);background:#eeece5;border-radius:8px;margin-top:24px;padding:14px}.source-note p{color:#61625b;margin:0 0 10px;font-size:12px;line-height:1.5}.source-note a{color:#763723;align-items:center;gap:6px;font-size:12px;font-weight:650;text-decoration:none;display:inline-flex}.source-note a:hover{color:var(--accent);text-decoration:underline}.editor-pane{background:var(--editor);grid-template-rows:40px minmax(260px,1fr) minmax(190px,33%);min-width:0;min-height:0;display:grid}.editor-filebar{border-bottom:1px solid var(--editor-border);color:#a7a89f;background:#292a25;justify-content:space-between;align-items:center;gap:16px;padding:0 14px;font-size:11px;display:flex}.editor-filebar span:first-child{color:#e6e5df;align-items:center;gap:7px;font-size:12px;display:flex}.editor-wrap{min-width:0;min-height:0;overflow:hidden}.editor-wrap>div,.editor-wrap .cm-editor,.editor-wrap .cm-scroller{height:100%}.editor-wrap .cm-editor{background:var(--editor);font-size:14px}.editor-wrap .cm-gutters{background:var(--editor);border-right:1px solid #2d2e29}.editor-wrap .cm-focused{outline:0}.lower-panel{border-top:1px solid var(--editor-border);color:#e7e6e0;background:#191a17;grid-template-rows:38px minmax(0,1fr);min-width:0;min-height:0;display:grid}.panel-tabs{border-bottom:1px solid var(--editor-border);gap:20px;padding:0 16px;display:flex}.panel-tabs button{color:#888a81;cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;padding:0;font-size:12px;position:relative}.panel-tabs button[aria-selected=true]{color:#fff;border-bottom-color:#c86042}.console-panel{grid-template-columns:minmax(180px,32%) minmax(0,1fr);min-width:0;min-height:0;display:grid}.stdin-field{border-right:1px solid var(--editor-border);padding:12px}.stdin-field label{color:#d1d0ca;margin-bottom:7px;font-size:11px;font-weight:650;display:block}.stdin-field label span{color:#7f8178;font-weight:400}.stdin-field textarea{resize:vertical;color:#f0efe9;background:#20211d;border:1px solid #3b3c36;border-radius:6px;width:100%;min-height:62px;padding:8px 9px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:12px;line-height:1.5}.stdin-field textarea::placeholder{color:#707168}.console-panel pre{color:#d5d5ce;white-space:pre-wrap;word-break:break-word;min-width:0;min-height:0;margin:0;padding:14px 16px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:12px;line-height:1.55;overflow:auto}.marking-panel{min-width:0;min-height:0;overflow-y:auto}.marking-empty{color:#8e9087;margin:0;padding:24px 16px;font-size:12px}.mark-total{border-bottom:1px solid var(--editor-border);justify-content:space-between;align-items:center;gap:24px;padding:14px 16px;display:flex}.mark-total>div{align-items:baseline;gap:10px;display:flex}.mark-total strong{font-size:22px}.mark-total span,.mark-total p{color:#96988e;font-size:12px}.mark-total p{margin:0}.criteria-results{display:grid}.criterion-result{border-bottom:1px solid #292a25;grid-template-columns:24px minmax(0,1fr) auto;align-items:center;gap:8px;padding:8px 16px;font-size:12px;display:grid}.criterion-result>strong{color:#c9cac2;font-variant-numeric:tabular-nums}.criterion-icon{color:#a9aaa2;border:1px solid #55574f;border-radius:6px;place-items:center;width:20px;height:20px;font-size:10px;font-weight:700;display:grid}.criterion-icon.passed{color:#d4e5d5;background:#334737;border-color:#526d56}@media (max-width:1120px){.app-shell{grid-template-columns:220px minmax(0,1fr)}.ide-grid{grid-template-columns:minmax(300px,340px) minmax(420px,1fr)}.editor-filebar span:last-child,.timer{display:none}}@media (max-width:850px){.app-shell{grid-template-columns:190px minmax(0,1fr)}.ide-grid{grid-template-rows:auto minmax(620px,1fr);grid-template-columns:100%;overflow:auto}.question-pane{border-right:0;border-bottom:1px solid var(--border);max-height:48vh}.toolbar-title span,.button.secondary:first-of-type{display:none}}@media (max-width:640px){.app-shell{height:auto;min-height:100dvh;display:block}.sidebar{border-right:0;border-bottom:1px solid var(--sidebar-border);height:auto}.brand{flex-basis:52px;height:52px}.section-nav{padding:8px;display:flex;overflow-x:auto}.section-button{flex:none;width:auto}.question-index-heading,.question-index,.sidebar-note{display:none}.workspace{grid-template-rows:auto auto;min-height:calc(100dvh - 113px)}.toolbar{flex-wrap:wrap;min-height:61px;padding:8px 10px}.toolbar-actions{gap:5px}.button{padding:0 9px}.button.secondary:first-of-type{display:none}.button.primary{font-size:0}.button.primary svg{margin:0}.question-pane{max-height:none;padding:22px 18px 30px}.editor-pane{grid-template-rows:40px minmax(360px,1fr) 280px;min-height:720px}.console-panel{grid-template-columns:1fr;overflow-y:auto}.stdin-field{border-right:0;border-bottom:1px solid var(--editor-border)}.mark-total{flex-direction:column;align-items:flex-start;gap:6px}}
