:root{--bg:#16181d;--panel:#1e2128;--border:#2c3038;--text:#dfe3ea;--muted:#8b929e;--accent:#4a9eff;--error:#ff6b6b;--ok:#4ade80}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font:14px/1.5 ui-sans-serif,system-ui,Noto Sans KR,sans-serif}button{font:inherit;color:var(--text);background:var(--panel);border:1px solid var(--border);cursor:pointer;border-radius:6px;padding:6px 12px}button:hover:not(:disabled){border-color:var(--accent)}button:disabled{opacity:.45;cursor:not-allowed}button.primary{background:var(--accent);border-color:var(--accent);color:#0b1220;font-weight:600}button.link{color:var(--muted);background:0 0;border:none;text-decoration:underline}button.tab{color:var(--muted);background:0 0;border:none}button.tab.active{color:var(--text);border-bottom:2px solid var(--accent);border-radius:0}input{font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:8px 10px}input:focus{border-color:var(--accent);outline:none}.muted{color:var(--muted)}.error{color:var(--error)}.spacer{flex:1}.centered{place-items:center;min-height:100vh;display:grid}.card{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:28px}.auth{flex-direction:column;gap:8px;width:320px;display:flex}.auth h1{margin:0;font-size:22px}.auth p{margin:0 0 12px}.auth label{color:var(--muted);margin-top:6px;font-size:12px}.auth button[type=submit]{margin-top:16px}.workspace{flex-direction:column;height:100vh;display:flex}.workspace header{border-bottom:1px solid var(--border);align-items:center;gap:14px;padding:10px 16px;display:flex}.workspace header nav{gap:4px;display:flex}.toolbar{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:8px 16px;display:flex}.toolbar .message{color:var(--muted);font-size:13px}.dot{background:var(--accent);vertical-align:middle;border-radius:50%;width:6px;height:6px;display:inline-block}.workspace main{flex:1;min-height:0;display:grid}.workspace .editor{border-right:1px solid var(--border);min-height:0}.workspace aside{min-height:0;overflow:auto}.panel{flex-direction:column;gap:10px;min-height:100%;padding:12px 16px;display:flex}.panel-head{align-items:center;gap:10px;display:flex}.status{border:1px solid var(--border);border-radius:999px;padding:2px 8px;font-size:12px}.status-succeeded{color:var(--ok);border-color:var(--ok)}.status-failed,.status-timed_out{color:var(--error);border-color:var(--error)}.status-running,.status-queued{color:var(--accent);border-color:var(--accent)}.artifacts{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.artifacts li{align-items:center;gap:8px;font-size:13px;display:flex}.artifacts .seq{color:var(--muted);text-align:right;width:18px}.log{resize:vertical;background:var(--bg);border:1px solid var(--border);white-space:pre-wrap;word-break:break-word;border-radius:6px;flex:none;min-height:200px;max-height:60vh;margin:0;padding:10px;font:12px/1.5 ui-monospace,monospace;overflow:auto}.result{flex-direction:column;gap:10px;display:flex}.scrubber,.controls{align-items:center;gap:8px;font-size:12px;display:flex}.scrubber input[type=range]{accent-color:var(--accent);flex:1}.scrubber label,.controls label{color:var(--muted);white-space:nowrap}select{font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:4px 8px}.surface{aspect-ratio:4/3;border:1px solid var(--border);background:var(--bg);cursor:crosshair;border-radius:6px;width:100%;display:block}.chart{margin:0}.chart svg{width:100%;height:auto;display:block}.chart .grid{stroke:var(--border);stroke-width:1px}.chart .tick,.chart .axis-label{fill:var(--muted);font-size:10px}.chart .surface-line{stroke:var(--muted);stroke-width:1px;stroke-dasharray:3 3}.chart figcaption{color:var(--muted);flex-wrap:wrap;gap:10px;font-size:12px;display:flex}.legend{gap:10px;display:flex}.legend span{align-items:center;gap:4px;display:flex}.legend i{border-radius:2px;width:10px;height:3px}.legend i.band{border:1px solid var(--border);border-radius:2px;height:10px}.legend.materials{color:var(--muted)}.auth .hint{margin:2px 0 0;font-size:12px}.admin{border-bottom:1px solid var(--border);background:var(--panel);flex-direction:column;gap:12px;padding:14px 16px;display:flex}.admin header{align-items:center;gap:12px;display:flex}.admin h2{margin:0;font-size:15px}.admin .issue{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.admin .issue label{color:var(--muted);font-size:12px}.admin .issue input{width:72px}.issued{border:1px solid var(--accent);border-radius:8px;flex-direction:column;gap:8px;padding:12px;display:flex}.issued .warn{color:var(--accent);margin:0;font-size:13px}.issued .code-row{align-items:center;gap:8px;display:flex}.issued code{background:var(--bg);border:1px solid var(--border);word-break:break-all;-webkit-user-select:all;user-select:all;border-radius:6px;flex:1;padding:8px 10px;font:13px/1.4 ui-monospace,monospace}.issued p.muted{margin:0;font-size:12px}.invites{border-collapse:collapse;font-size:13px}.invites th,.invites td{text-align:left;padding:6px 12px 6px 0}.invites th{color:var(--muted);font-size:12px;font-weight:500}.invites tr.spent{color:var(--muted)}.docs{border-right:1px solid var(--border);flex-direction:column;gap:10px;min-height:0;padding:12px 14px;display:flex;overflow:auto}.docs header{align-items:center;gap:10px;display:flex}.docs h2{margin:0;font-size:15px}.docs h3{margin:0 0 2px;font-size:14px}.docs h4{color:var(--accent);letter-spacing:.04em;margin:12px 0 4px;font-size:12px}.docs-search{gap:6px;display:flex}.docs-search input{flex:1}.docs-hits{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.docs-hits li p{margin:2px 0 0;font-size:12px}.reference{flex-direction:column;gap:10px;min-height:0;display:flex}.reference-filter input{box-sizing:border-box;width:100%}.reference details{border-top:1px solid var(--border);padding-top:6px}.reference summary{cursor:pointer;letter-spacing:.04em;color:var(--accent);font-size:12px;font-weight:600}.reference .note{margin:4px 0 6px;font-size:11px}.reference ul{margin:0;padding:0;list-style:none}.reference li{grid-template-columns:1fr auto;margin-bottom:8px;display:grid}.reference li code{font-size:12px}.reference li .count{font-variant-numeric:tabular-nums;font-size:11px}.reference li p{grid-column:1/-1;margin:1px 0 0;font-size:11px;line-height:1.4}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.docs pre{white-space:pre-wrap;word-break:break-word;color:var(--text);margin:0;font:12px/1.5 ui-monospace,monospace}.docs .tabs{border-bottom:1px solid var(--border);gap:2px;display:flex}.docs .tabs .tab{padding:6px 10px;font-size:13px}.params{border-collapse:collapse;width:100%;font-size:12px}.params th,.params td{text-align:left;vertical-align:top;border-bottom:1px solid var(--border);padding:6px 8px 6px 0}.params th{color:var(--muted);font-weight:500}.params code{color:var(--text);font:12px/1.4 ui-monospace,monospace}.params tr.unreachable{opacity:.55}.params .constraint{color:var(--muted);margin-top:3px;font-size:11px}.badge{vertical-align:middle;cursor:help;border-radius:4px;margin-left:5px;padding:1px 5px;font-size:10px;display:inline-block}.badge.warn{color:#ff9f43;background:#4a3a1a}.badge.error{color:var(--error);background:#4a1f1f}.badge.group{background:var(--border);color:var(--muted)}.splitter{cursor:col-resize;background:var(--border);border:none;flex:none;width:7px;padding:0}.splitter:hover,.splitter:focus-visible{background:var(--accent);outline:none}body.resizing{-webkit-user-select:none;user-select:none;cursor:col-resize}.log.expanded{flex:1;max-height:none}.quantities{border:1px solid var(--border);border-radius:6px;flex-wrap:wrap;gap:4px 14px;margin:0;padding:6px 10px 8px;font-size:12px;display:flex}.quantities legend{color:var(--muted);padding:0 4px}.quantities label{align-items:center;gap:4px;display:flex}
