.admin .lab-brand{text-decoration:none}
.admin-main{width:100%;max-width:1180px;margin:0 auto;padding:24px 20px 60px;flex:1}
.env{background:var(--warn-bg);color:var(--warn-ink)}
.env.formal{background:#e4efe9;color:var(--ok)}
.crumbs{font-size:13px;color:var(--muted);margin-bottom:12px}
.crumbs a{color:inherit}
.head-row{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:18px}
.head-row h1{font-family:var(--serif);font-size:26px;flex:1;min-width:200px}
.tabs{display:flex;gap:6px;border-bottom:1px solid var(--line);margin-bottom:18px;overflow-x:auto}
.tabs a{padding:10px 16px;color:var(--muted);text-decoration:none;border-bottom:2px solid transparent;white-space:nowrap;font-size:14px}
.tabs a.active{color:var(--ink);border-color:var(--accent)}
.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:12px;background:var(--panel)}
table{border-collapse:collapse;width:100%;font-size:13px}
th,td{padding:10px 12px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}
th{font-weight:500;color:var(--muted);background:var(--paper);white-space:nowrap;position:sticky;top:0}
tr:last-child td{border-bottom:0}
tbody tr.clickable{cursor:pointer}
tbody tr.clickable:hover{background:var(--chip)}
td.mono,.mono{font-family:ui-monospace,'SF Mono',Menlo,monospace;font-size:12px}
td.wrap{max-width:420px;word-break:break-all}
.status{display:inline-block;padding:1px 9px;border-radius:6px;font-size:12px;background:var(--chip);color:var(--muted)}
.status[data-s=testing],.status[data-s=active]{background:#e7eefa;color:#3a5584}
.status[data-s=recruiting],.status[data-s=completed]{background:#e4efe9;color:var(--ok)}
.status[data-s=paused],.status[data-s=expired]{background:var(--warn-bg);color:var(--warn-ink)}
.status[data-s=closed],.status[data-s=withdrawn]{background:#f3e6e6;color:var(--bad)}
@media (prefers-color-scheme:dark){.status[data-s=testing],.status[data-s=active]{background:#24324a;color:#a9c0e6}.status[data-s=recruiting],.status[data-s=completed]{background:#20362d;color:var(--ok)}.status[data-s=closed],.status[data-s=withdrawn]{background:#3b2525;color:var(--bad)}}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}
.stat{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px 18px}
.stat strong{display:block;font-size:26px;font-weight:400;font-variant-numeric:tabular-nums}
.stat span{font-size:12px;color:var(--muted)}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:18px 20px;margin-bottom:16px}
.panel h2{font-size:16px;font-weight:500;margin-bottom:10px}
.row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.field{display:grid;gap:4px;font-size:13px;color:var(--muted)}
input[type=text],input[type=password],input[type=number],input:not([type]){padding:9px 12px;border-radius:10px;border:1px solid var(--line);background:var(--paper);min-width:0}
textarea.code-editor{font:12.5px/1.6 ui-monospace,'SF Mono',Menlo,monospace;min-height:520px;white-space:pre;tab-size:2}
.errors{margin:10px 0 0;padding:10px 14px 10px 30px;border-radius:10px;background:#f6e8e8;color:var(--bad);font-size:13px}
@media (prefers-color-scheme:dark){.errors{background:#3b2525}}
.ok{color:var(--ok);font-size:13px}
.link-box{display:flex;gap:8px;align-items:center;margin-top:10px}
.link-box input{flex:1;font-family:ui-monospace,Menlo,monospace;font-size:12px}
.login{max-width:380px;margin:8vh auto 0}
.login .field{margin-top:14px}
pre.payload{margin:0;white-space:pre-wrap;word-break:break-all;font-size:12px}
.lock{font-size:13px;color:var(--warn-ink);background:var(--warn-bg);padding:8px 12px;border-radius:8px;margin-top:10px}
dl.kv{display:grid;grid-template-columns:max-content 1fr;gap:6px 16px;font-size:13px;margin:0}
dl.kv dt{color:var(--muted)}
dl.kv dd{margin:0;word-break:break-all}
@media (max-width:700px){.admin-main{padding:14px 10px 40px}.head-row h1{font-size:22px}textarea.code-editor{min-height:380px}}
.chain-panel .head-row{margin-bottom:12px}.chain-panel .head-row h2{margin:0;margin-right:auto}.chain-timeline{list-style:none;padding:8px 0 0;margin:0;display:grid;gap:0}.chain-timeline>li{display:grid;grid-template-columns:70px 1fr;gap:14px;padding:0 0 24px;position:relative}.chain-generation{font-size:12px;color:var(--muted);padding-top:3px;border-right:1px solid var(--line)}.chain-generation-body{min-width:0}.chain-generation-body details{font-size:12px;color:var(--muted);margin:10px 0}.chain-generation-body summary{cursor:pointer}.chain-text{font-size:13px;line-height:1.9;white-space:pre-wrap;overflow-wrap:anywhere;padding:12px 15px;background:var(--paper);border:1px solid var(--line);border-radius:6px;margin-top:10px}.empty-state{text-align:center;padding:40px 24px}.status[data-s=ready]{background:var(--warn-bg);color:var(--warn-ink)}.status[data-s=broken]{background:var(--chip);color:var(--bad)}
@media(max-width:650px){.admin .lab-header{flex-wrap:wrap}.admin .lab-brand>span{display:none}.env{font-size:10px}.chain-timeline>li{grid-template-columns:52px 1fr;gap:10px}.panel{padding:16px}.link-box{flex-wrap:wrap}.link-box input{flex-basis:100%}.tabs a{padding:10px 12px}}
.status{white-space:nowrap}.chain-panel .head-row h2{flex:none}.row>select{width:auto;max-width:100%}
