:root{--bg: #0f141b;--panel: #151b24;--panel-border: #232c38;--text: #d7dde6;--muted: #8b96a5;--accent: #4cc2ff;--green: #5ad17a;--yellow: #f2c14e;--red: #ff6b6b;--font: system-ui, -apple-system, "Apple SD Gothic Neo", "Malgun Gothic", sans-serif;--mono: "SF Mono", Menlo, Consolas, "Liberation Mono", monospace}*{box-sizing:border-box}html,body{margin:0;height:100%;background:var(--bg);color:var(--text);font-family:var(--font);font-size:14px}#app{display:flex;flex-direction:column;height:100vh}#toolbar{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 10px;border-bottom:1px solid var(--panel-border);background:var(--panel)}.toolbar-left,.toolbar-right{display:flex;align-items:center;gap:8px;min-width:0}.toolbar-title{font-weight:600;margin-left:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sync-status{font-size:12px;color:var(--muted)}.sync-synced{color:var(--green)}.sync-offline,.sync-unauthorized{color:var(--yellow)}.persist-warning{color:var(--red);font-size:12px}button{background:#1f2937;color:var(--text);border:1px solid var(--panel-border);border-radius:6px;padding:5px 10px;font:inherit;cursor:pointer}button:hover:not(:disabled){border-color:var(--accent)}button:disabled{opacity:.45;cursor:default}button.danger{border-color:var(--red);color:var(--red)}#layout{flex:1;min-height:0;display:grid;grid-template-columns:260px 340px minmax(320px,1fr) 320px;grid-template-rows:minmax(0,1fr) 230px;grid-template-areas:"list details editor bytecode" "output output output output";gap:1px;background:var(--panel-border)}#problem-list{grid-area:list}#details{grid-area:details}#editor{grid-area:editor}#bytecode{grid-area:bytecode}#output{grid-area:output}.panel{background:var(--panel);min-height:0;min-width:0;display:flex;flex-direction:column;overflow:hidden}.panel-title{flex:none;font-size:12px;color:var(--muted);padding:6px 10px;border-bottom:1px solid var(--panel-border)}.panel>:not(.panel-title){flex:1;min-height:0;overflow:auto}@media(max-width:1100px){#layout{grid-template-columns:1fr;grid-template-rows:auto;grid-template-areas:"list" "details" "editor" "bytecode" "output"}.panel{max-height:60vh}#editor{min-height:320px}}.muted{color:var(--muted)}.error{color:var(--red)}code,pre{font-family:var(--mono);font-size:12.5px}pre{margin:4px 0;white-space:pre-wrap;word-break:break-word}.code-block{background:#0d1117;border:1px solid var(--panel-border);border-radius:6px;padding:8px}.list-controls{display:flex;gap:6px;padding:8px;border-bottom:1px solid var(--panel-border);flex:none!important}.list-controls input,.list-controls select{background:#0d1117;color:var(--text);border:1px solid var(--panel-border);border-radius:6px;padding:5px 8px;font:inherit;min-width:0}.list-controls input{flex:1}.problem-row{display:grid;grid-template-columns:18px 1fr auto auto;gap:6px;align-items:center;padding:6px 10px;cursor:pointer;border-left:3px solid transparent}.problem-row:hover{background:#1b2330}.problem-row.selected{background:#1d2a3a;border-left-color:var(--accent)}.problem-row .mark.solved{color:var(--green)}.problem-row .title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.problem-row .cat{color:var(--muted);font-size:12px}.diff{font-size:12px}.diff.easy{color:var(--green)}.diff.medium{color:var(--yellow)}.diff.hard{color:var(--red)}.empty{padding:10px}.details-body{padding:10px 14px}.details-body h2{margin:0 0 6px;font-size:18px}.details-body h3{margin:14px 0 6px;font-size:13px;color:var(--muted)}.badges{display:flex;gap:10px;margin:0 0 8px}.description p{line-height:1.5}.description code{background:#0d1117;padding:1px 4px;border-radius:4px}.description ul{padding-left:18px}.test-line{padding:3px 0}.test-line .mark{display:inline-block;width:14px;color:var(--muted)}.test-line.pass .mark{color:var(--green)}.test-line.fail .mark{color:var(--red)}.test-line .note{margin-left:6px}.expected-stdout{margin-left:20px}.editor-host{display:flex}.editor-host .cm-editor{flex:1;height:100%;font-size:13px}.editor-host .cm-scroller{overflow:auto}.cm-error-line{background:#ff6b6b2e!important}.bytecode-body{padding:6px 0}table.bytecode{border-collapse:collapse;width:100%;margin-bottom:10px;font-family:var(--mono);font-size:12px}table.bytecode th{text-align:left;color:var(--muted);font-weight:400;padding:2px 8px}table.bytecode th.fn-name{color:var(--accent);font-weight:600;padding-top:6px}table.bytecode td{padding:1px 8px;white-space:nowrap}table.bytecode td:first-child,table.bytecode td:nth-child(2){color:var(--muted)}table.bytecode .op{color:#c792ea}table.bytecode tr.current td{background:#1d2a3a}.output-body{padding:8px 12px}.banner{padding:8px 12px;border-radius:6px;margin-bottom:8px;font-weight:600}.banner.success{background:#5ad17a2e;color:var(--green)}.banner.info{background:#4cc2ff26;color:var(--accent)}.row{padding:4px 0;border-bottom:1px solid var(--panel-border)}.row .mark{display:inline-block;width:16px}.row.pass .mark{color:var(--green)}.row.fail .mark,.row.error .mark,.row.timeout .mark{color:var(--red)}.row.skipped{color:var(--muted)}.row .label{color:var(--muted);margin-right:4px}.detail{margin:2px 0 2px 20px}.stdout{margin-left:20px}.stdout summary{cursor:pointer;color:var(--muted);font-size:12px}.summary{padding-top:6px}dialog.settings{background:var(--panel);color:var(--text);border:1px solid var(--panel-border);border-radius:10px;min-width:360px}dialog.settings::backdrop{background:#00000080}dialog.settings h2{margin-top:0}dialog.settings h3{margin:16px 0 6px;font-size:13px;color:var(--muted)}dialog.settings label{display:flex;flex-direction:column;gap:4px}dialog.settings input[type=password]{background:#0d1117;color:var(--text);border:1px solid var(--panel-border);border-radius:6px;padding:6px 8px;font:inherit}dialog.settings .actions{display:flex;gap:8px;margin-top:8px;flex-wrap:wrap}.toast-container{position:fixed;bottom:16px;left:50%;transform:translate(-50%);display:flex;flex-direction:column;gap:6px;z-index:100}.toast{background:#1f2937;border:1px solid var(--panel-border);border-radius:8px;padding:8px 14px;box-shadow:0 4px 16px #0006}.fatal{padding:40px;text-align:center}
