.nx-center{min-height:60vh;display:grid;place-items:center;padding:20px}.appr-grid{display:grid;grid-template-columns:minmax(260px,340px) minmax(0,1fr);gap:16px;align-items:start}.appr-row{all:unset;display:block;width:100%;box-sizing:border-box;padding:12px 14px;cursor:pointer;border-bottom:1px solid var(--border)}.appr-row.on{background:var(--accent-soft)}.appr-row:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.appr-snip{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media(max-width:820px){.appr-grid{grid-template-columns:minmax(0,1fr)}}.camp-row{all:unset;display:block;cursor:pointer;border:1px solid var(--border);border-radius:12px;background:var(--surface)}.camp-row:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.drawer:has(.agent-drawer){width:min(820px,100vw)}.drawer:has(.so-drawer){width:min(880px,100vw)}.geo-multi{position:relative;display:grid;gap:8px}.geo-more{border:0;cursor:pointer;padding:4px 10px;font-weight:600}.geo-ms-btn{text-align:left;cursor:pointer}.geo-ms-pop{position:absolute;z-index:30;top:calc(100% + 4px);left:0;right:0;max-width:420px;display:grid;gap:8px;padding:10px;background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow-lg, 0 10px 30px rgba(0,0,0,.18))}.geo-ms-acts{gap:6px;align-items:center}.geo-ms-list{max-height:260px;overflow:auto;display:grid}.geo-ms-opt{display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:center;padding:6px;border-radius:6px;cursor:pointer}.geo-ms-opt:hover{background:var(--hover, var(--accent-soft))}.ds-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}.ds-cell{display:grid;gap:2px;padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:var(--surface-2)}.ds-cell b{font-size:18px}.ds-cell span{font-size:12px;color:var(--text-3)}.ds-card .card-h h3{display:flex;align-items:center;gap:8px}.live-board .lb-head{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}.lb-mode{display:inline-flex;align-items:center;gap:7px;padding:4px 11px;border-radius:99px;font-weight:700;font-size:12px;text-transform:uppercase;letter-spacing:.04em;background:var(--surface-3);color:var(--text-2)}.lb-mode .lb-dot{width:8px;height:8px;border-radius:50%;background:currentColor}.lb-mode.run{background:color-mix(in srgb,var(--success) 15%,transparent);color:var(--success)}.lb-mode.test{background:color-mix(in srgb,var(--accent) 15%,transparent);color:var(--accent-text)}.lb-mode.wait{background:color-mix(in srgb,var(--warn) 15%,transparent);color:var(--warn)}.lb-mode.run .lb-dot,.lb-mode.test .lb-dot{animation:lbPulse 1.4s ease-in-out infinite}@keyframes lbPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(1.5)}}.lb-stat{font-size:12px;color:var(--text-3)}.lb-stat b{font-size:15px;color:var(--text);margin-right:3px}.lb-stat.bad b{color:var(--danger)}.lb-grid{display:grid;gap:4px;overflow-x:auto}.lb-axis,.lb-lane{display:grid;grid-template-columns:minmax(150px,210px) minmax(240px,1fr) minmax(150px,260px);gap:10px;align-items:center}.lb-axis{font-size:11px;color:var(--text-3)}.lb-track{position:relative;height:26px;border-radius:6px;background:var(--surface-2)}.lb-ticks{background:none;height:16px}.lb-ticks span{position:absolute;transform:translate(-50%);white-space:nowrap}.lb-ticks span:first-child{transform:none}.lb-ticks .lb-now-l{transform:translate(-100%);font-weight:700;color:var(--accent-text)}.lb-lane{min-height:38px;padding:4px 0;border-top:1px solid var(--border)}.lb-who{display:flex;align-items:center;gap:8px;min-width:0}.lb-who>div{min-width:0}.lb-who b{font-size:13px}.lb-who .faint{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lb-av{flex:none;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;color:#fff;font-weight:700;font-size:12px}.lb-av.sm{width:24px;height:24px}.lb-av svg{width:13px;height:13px}.lb-lane.st-off .lb-who,.lb-lane.st-paused .lb-who{opacity:.55}.lb-blk{position:absolute;top:4px;bottom:4px;min-width:3px;border-radius:4px;opacity:.85}.lb-blk.failed{background:var(--danger)}.lb-blk.cancelled{background:var(--text-3)}.lb-blk.test{outline:1px dashed color-mix(in srgb,var(--text) 35%,transparent);outline-offset:-1px}.lb-blk.running{opacity:1;background-image:repeating-linear-gradient(45deg,rgba(255,255,255,.35) 0 6px,transparent 6px 12px)!important;background-size:17px 17px;animation:lbRun .8s linear infinite;box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 35%,transparent)}@keyframes lbRun{to{background-position:17px 0}}.lb-now{position:absolute;right:-1px;top:-3px;bottom:-3px;width:2px;background:var(--accent);border-radius:2px}.lb-next{display:flex;align-items:center;gap:4px;min-width:0}.lb-chip{display:inline-flex;align-items:center;gap:6px;min-width:0;max-width:100%;padding:3px 8px;border:1px solid var(--border);border-radius:99px;font-size:12px;color:var(--text);text-decoration:none;background:var(--surface)}.lb-chip svg{width:12px;height:12px;flex:none}.lb-chip-t{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.lb-chip .faint{white-space:nowrap;flex:none}.lb-chip.late .faint{color:var(--danger)}.lb-chip.late{border-color:color-mix(in srgb,var(--danger) 45%,transparent)}.lb-tp .lb-track{height:42px;background:none;border-bottom:1px solid var(--border);border-radius:0}.lb-list{list-style:none;margin:0;padding:0;display:grid;gap:6px;max-height:330px;overflow:auto}.lb-list li{display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:center;padding:6px 8px;border:1px solid var(--border);border-radius:8px}.lb-list li b{font-size:13px}.lb-list .faint{font-size:11px}.lb-when{white-space:nowrap}.lb-when.late,.lb-list li.late .lb-when{color:var(--danger)}.lb-spin{width:14px;height:14px;border-radius:50%;border:2px solid var(--border);border-top-color:var(--accent);animation:lbSpin .8s linear infinite}@keyframes lbSpin{to{transform:rotate(360deg)}}@media(max-width:720px){.lb-ticks span:not(:first-child):not(.lb-now-l){display:none}.lb-axis,.lb-lane{grid-template-columns:120px minmax(160px,1fr)}.lb-next,.lb-axis>span:last-child{display:none}.lb-tp>div:last-child{display:none}}
