:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0a0e15;--bg-grad:radial-gradient(120% 80% at 15% -10%, #16203a 0%, transparent 60%), radial-gradient(90% 70% at 100% 0%, #1a1630 0%, transparent 55%);--surface:#111725;--surface-2:#161e2e;--surface-3:#1c2536;--line:#263043;--line-soft:#1d2534;--fg:#e8edf6;--fg-dim:#a6b1c4;--fg-mut:#7c8798;--acc:#5b8cff;--acc-2:#38d6c8;--acc-grad:linear-gradient(135deg, #5b8cff 0%, #7a6cff 55%, #38d6c8 130%);--acc-soft:#5b8cff24;--ok:#3ecf8e;--warn:#f0b429;--bad:#ff6b6b;--r-sm:8px;--r:12px;--r-lg:18px;--shadow:0 1px 2px #0006, 0 8px 24px -12px #0009;--shadow-lift:0 2px 4px #00000059, 0 18px 40px -18px #000000bf;--ring:0 0 0 3px var(--acc-soft);--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:24px;--sp-6:32px;--font:"Inter var", "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, "SF Mono", Menlo, Consolas, monospace;--t-fast:.12s cubic-bezier(.2, .7, .3, 1);--t:.2s cubic-bezier(.2, .7, .3, 1)}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f4f6fb;--bg-grad:radial-gradient(120% 80% at 10% -10%, #e2e9ff 0%, transparent 60%), radial-gradient(90% 70% at 100% 0%, #e6f7f5 0%, transparent 55%);--surface:#fff;--surface-2:#f7f9fd;--surface-3:#eef2f9;--line:#d8e0ee;--line-soft:#e6ebf4;--fg:#101828;--fg-dim:#475467;--fg-mut:#667085;--acc:#3563e9;--acc-soft:#3563e91a;--ok:#12a06a;--warn:#b7791f;--bad:#d92d20;--shadow:0 1px 2px #1018280f, 0 8px 24px -12px #1018282e;--shadow-lift:0 2px 4px #10182814, 0 18px 40px -18px #10182847}*{box-sizing:border-box}html,body{min-height:100%}body{font:16px/1.5 var(--font);color:var(--fg);background:var(--bg);background-image:var(--bg-grad);-webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums;background-attachment:fixed;margin:0}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}h1,h2,h3{letter-spacing:-.01em;margin:0;font-weight:600}.h-page{font-size:20px}.small{font-size:14px}.tiny{font-size:12.5px}.muted{color:var(--fg-dim)}.dim{color:var(--fg-mut)}.mono{font-family:var(--mono);font-size:13px}button,input,select,textarea{font:inherit;color:var(--fg)}button{align-items:center;gap:var(--sp-2);border-radius:var(--r-sm);border:1px solid var(--line);background:var(--surface-2);cursor:pointer;transition:background var(--t-fast), border-color var(--t-fast), transform var(--t-fast), box-shadow var(--t-fast);white-space:nowrap;padding:8px 14px;display:inline-flex}button:hover:not(:disabled){background:var(--surface-3);border-color:color-mix(in oklab, var(--acc) 45%, var(--line))}button:active:not(:disabled){transform:translateY(1px)}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible{box-shadow:var(--ring);border-color:var(--acc);outline:none}button.primary{background:var(--acc-grad);color:#fff;box-shadow:0 6px 18px -10px var(--acc);border-color:#0000;font-weight:550}button.primary:hover:not(:disabled){filter:brightness(1.08)}button.ghost{color:var(--fg-dim);background:0 0;border-color:#0000}button.ghost:hover:not(:disabled){background:var(--surface-2);color:var(--fg)}button.danger{border-color:color-mix(in oklab, var(--bad) 40%, var(--line));color:var(--bad)}button.icon{justify-content:center;min-width:38px;padding:8px}button:disabled{opacity:.45;cursor:not-allowed}input,select,textarea{border-radius:var(--r-sm);border:1px solid var(--line);background:var(--surface);transition:border-color var(--t-fast), box-shadow var(--t-fast);padding:8px 12px}input::placeholder,textarea::placeholder{color:var(--fg-mut)}input[type=range]{accent-color:var(--acc);background:0 0;border:none;padding:0}input[type=checkbox]{accent-color:var(--acc);vertical-align:-2px;width:16px;height:16px}label{color:var(--fg-dim);align-items:center;gap:6px;font-size:14px;display:inline-flex}a{color:var(--acc);-webkit-text-decoration-color:color-mix(in oklab, var(--acc) 40%, transparent);text-decoration-color:color-mix(in oklab, var(--acc) 40%, transparent);text-underline-offset:3px}.app{flex-direction:column;min-height:100vh;display:flex}.topbar{align-items:center;gap:var(--sp-4);row-gap:var(--sp-2);padding:10px var(--sp-5);background:color-mix(in oklab, var(--surface) 82%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--line-soft);z-index:20;flex-wrap:wrap;display:flex;position:sticky;top:0}.brand{align-items:center;gap:var(--sp-2);letter-spacing:-.015em;white-space:nowrap;font-weight:650;display:flex}.brand .mark{background:var(--acc-grad);width:30px;height:30px;box-shadow:0 6px 16px -8px var(--acc);border-radius:9px;place-items:center;font-size:16px;display:grid}.nav{gap:var(--sp-1);flex-wrap:wrap;display:flex}.nav a{color:var(--fg-dim);transition:background var(--t-fast), color var(--t-fast);border-radius:999px;padding:7px 14px;font-size:15px;text-decoration:none}.nav a:hover{background:var(--surface-2);color:var(--fg)}.nav a.active{color:var(--fg);background:var(--acc-soft);box-shadow:inset 0 0 0 1px color-mix(in oklab, var(--acc) 35%, transparent)}.topbar-actions{align-items:center;gap:var(--sp-3);min-width:0;margin-left:auto;display:flex}.topbar-actions .pill{text-overflow:ellipsis;white-space:nowrap;max-width:40vw;overflow:hidden}.grow{flex:1}.page{padding:var(--sp-5);gap:var(--sp-5);align-items:start;width:100%;max-width:1600px;margin:0 auto;display:grid}.page.split{grid-template-columns:minmax(280px,340px) minmax(0,1fr)}@media (width<=1000px){.page.split{grid-template-columns:1fr}}.col{gap:var(--sp-5);align-items:start;min-width:0;display:grid}.card{background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--r-lg);min-width:0;padding:var(--sp-4) var(--sp-4) var(--sp-4);box-shadow:var(--shadow)}.card>header{align-items:center;gap:var(--sp-3);margin:0 0 var(--sp-3);flex-wrap:wrap;min-width:0;display:flex}.card>header h2{color:var(--fg);font-size:15px}.card>header .sub{color:var(--fg-mut);font-size:13px}.row{gap:var(--sp-2);flex-wrap:wrap;align-items:center;display:flex}.row+.row{margin-top:var(--sp-3)}.toolbar{gap:var(--sp-2);padding:var(--sp-2);border-radius:var(--r);background:var(--surface-2);border:1px solid var(--line-soft);flex-wrap:wrap;align-items:center;display:flex}.sep{background:var(--line);width:1px;margin:2px var(--sp-1);align-self:stretch}.pill{color:var(--fg-dim);border:1px solid var(--line);background:var(--surface-2);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:3px 10px;font-size:13px;display:inline-flex}.pill.mono{font-family:var(--mono);font-size:12.5px}.badge{border:1px solid var(--line);color:var(--fg-dim);border-radius:999px;align-items:center;gap:5px;padding:2px 9px;font-size:12.5px;font-weight:550;display:inline-flex}.badge.ok{color:var(--ok);border-color:color-mix(in oklab, var(--ok) 40%, transparent);background:color-mix(in oklab, var(--ok) 12%, transparent)}.badge.bad{color:var(--bad);border-color:color-mix(in oklab, var(--bad) 40%, transparent);background:color-mix(in oklab, var(--bad) 12%, transparent)}.badge.warn{color:var(--warn);border-color:color-mix(in oklab, var(--warn) 40%, transparent);background:color-mix(in oklab, var(--warn) 12%, transparent)}.dot{border-radius:50%;flex:none;width:9px;height:9px;display:inline-block}.dot.online{background:var(--ok);box-shadow:0 0 0 3px color-mix(in oklab, var(--ok) 22%, transparent)}.dot.offline{background:var(--bad);box-shadow:0 0 0 3px color-mix(in oklab, var(--bad) 22%, transparent)}.dot.busy{background:var(--warn);box-shadow:0 0 0 3px color-mix(in oklab, var(--warn) 22%, transparent)}.devices{gap:var(--sp-2);display:grid}.device{align-items:center;gap:var(--sp-3);text-align:left;border-radius:var(--r);border:1px solid var(--line-soft);background:var(--surface-2);width:100%;transition:border-color var(--t-fast), background var(--t-fast), transform var(--t-fast);grid-template-columns:auto minmax(0,1fr) auto;padding:11px 12px;display:grid}.device:hover{border-color:color-mix(in oklab, var(--acc) 45%, var(--line));transform:translateY(-1px)}.device.selected{border-color:var(--acc);background:linear-gradient(180deg, var(--acc-soft), transparent), var(--surface-2);box-shadow:inset 0 0 0 1px color-mix(in oklab, var(--acc) 30%, transparent)}.device .name{text-overflow:ellipsis;white-space:nowrap;font-weight:550;overflow:hidden}.phone-icon{flex:none;align-items:center;display:inline-flex}.device .serial{font-family:var(--mono);color:var(--fg-mut);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:12px;display:block;overflow:hidden}.device .meta{color:var(--fg-mut);flex-wrap:wrap;align-items:center;gap:8px;font-size:13px;display:flex}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{border:1px solid var(--line);color:var(--fg-dim);background:0 0;border-radius:999px;padding:4px 11px;font-size:13.5px}.chip.on{color:var(--fg);background:var(--acc-soft);border-color:color-mix(in oklab, var(--acc) 35%, transparent)}.stage{gap:var(--sp-5);flex-wrap:wrap;align-items:flex-start;display:flex}.phone-wrap{gap:var(--sp-2);flex:none;justify-items:center;padding:0 22px;display:grid}.phone{background:linear-gradient(160deg, var(--surface-3), var(--surface));border:1px solid var(--line);box-shadow:var(--shadow-lift);border-radius:26px;flex:none;padding:10px;position:relative}.hard-keys{gap:10px;display:grid;position:absolute;top:86px}.hard-keys.right{right:-13px}.hard-keys.left{left:-13px}.phone-wrap{padding:0 20px}button.hard{width:26px;min-width:0;height:54px;color:var(--fg-dim);background:linear-gradient(90deg, var(--surface-3), var(--surface-2));border:1px solid var(--line);border-radius:8px;justify-content:center;padding:0;font-size:13px;position:relative;box-shadow:inset 0 1px #ffffff0f,0 2px 6px -3px #000000b3}button.hard:hover:not(:disabled){background:var(--acc);border-color:var(--acc)}button.hard>span{pointer-events:none}button.hard:hover:not(:disabled)>span{color:#fff}.navbar{gap:var(--sp-5);background:var(--surface-2);border:1px solid var(--line-soft);border-radius:999px;justify-content:center;padding:6px 18px;display:flex}.navbar button{color:var(--fg-dim);background:0 0;border:none;padding:4px 10px;font-size:17px}.navbar button:hover:not(:disabled){color:var(--fg);background:var(--surface-3)}.diag{justify-items:start;gap:6px;display:grid}.phone .screen-wrap{background:#000;border-radius:18px;line-height:0;position:relative;overflow:hidden}canvas.screen{touch-action:none;cursor:crosshair;max-width:100%;max-height:min(74vh,900px);display:block}canvas.screen.waiting{cursor:progress}.overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#dbe4f3;font-family:var(--mono);opacity:0;transition:opacity var(--t);pointer-events:none;background:#060a129e;border-radius:999px;align-items:center;gap:6px;padding:4px 9px;font-size:12px;display:flex;position:absolute;bottom:10px;left:10px}.phone:hover .overlay,.overlay.show{opacity:1}.startup{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);place-content:center;gap:var(--sp-3);padding:var(--sp-5);text-align:center;color:var(--fg-dim);background:#060a12bd;justify-items:center;line-height:1.45;display:grid;position:absolute;inset:0}.bar{background:var(--surface-3);border-radius:999px;width:min(220px,60%);height:4px;overflow:hidden}.bar>i{background:var(--acc-grad);height:100%;transition:width var(--t);border-radius:999px;display:block}.side{gap:var(--sp-3);flex:300px;align-content:start;min-width:260px;max-width:520px;display:grid}.keys{gap:var(--sp-2);display:grid}.keys .group{gap:var(--sp-2);flex-wrap:wrap;display:flex}.log{background:color-mix(in oklab, var(--bg) 70%, #000);border:1px solid var(--line-soft);border-radius:var(--r);white-space:pre-wrap;height:240px;font-family:var(--mono);color:var(--fg-dim);padding:10px 12px;font-size:12.5px;line-height:1.5;overflow:auto}table.grid{border-collapse:separate;border-spacing:0;width:100%;font-size:14.5px}table.grid th{text-align:left;color:var(--fg-mut);border-bottom:1px solid var(--line);background:var(--surface);padding:8px 12px;font-size:13px;font-weight:500;position:sticky;top:0}table.grid td{border-bottom:1px solid var(--line-soft);padding:10px 12px}table.grid tr:last-child td{border-bottom:none}table.grid tbody tr:hover td{background:var(--surface-2)}.scroll-x{border-radius:var(--r);min-width:0;max-width:100%;overflow-x:auto}.event{gap:var(--sp-2);border-bottom:1px solid var(--line-soft);align-items:baseline;padding:7px 2px;font-size:14px;display:flex}.event .ts{color:var(--fg-mut);font-family:var(--mono);margin-left:auto;font-size:12px}.banner{gap:var(--sp-3);border:1px solid color-mix(in oklab, var(--warn) 40%, transparent);background:color-mix(in oklab, var(--warn) 10%, transparent);border-radius:var(--r);align-items:flex-start;padding:11px 13px;font-size:14.5px;display:flex}.banner.bad{border-color:color-mix(in oklab, var(--bad) 40%, transparent);background:color-mix(in oklab, var(--bad) 10%, transparent)}.empty{gap:var(--sp-2);color:var(--fg-dim);padding:var(--sp-3) 0;justify-items:start;font-size:14.5px;display:grid}.hero{gap:var(--sp-3);text-align:center;padding:var(--sp-6) var(--sp-5);color:var(--fg-dim);justify-items:center;display:grid}.hero .glyph{background:var(--surface-2);border:1px solid var(--line);width:64px;height:64px;box-shadow:var(--shadow);border-radius:20px;place-items:center;font-size:30px;display:grid}.hero strong{color:var(--fg);font-size:17px}.hero p{max-width:56ch;margin:0;font-size:14.5px}.toasts{right:var(--sp-5);bottom:var(--sp-5);z-index:50;gap:var(--sp-2);max-width:380px;display:grid;position:fixed}.toast{gap:var(--sp-3);border-radius:var(--r);background:var(--surface-3);border:1px solid var(--line);box-shadow:var(--shadow-lift);animation:rise var(--t);align-items:flex-start;padding:11px 13px;font-size:14.5px;display:flex}.toast.bad{border-color:color-mix(in oklab, var(--bad) 45%, transparent)}@keyframes rise{0%{opacity:0;transform:translateY(8px)}}.skeleton{border-radius:var(--r);background:linear-gradient(90deg, var(--surface-2), var(--surface-3), var(--surface-2));background-size:200% 100%;height:58px;animation:1.3s linear infinite shimmer}@keyframes shimmer{to{background-position:-200% 0}}kbd{font-family:var(--mono);border:1px solid var(--line);color:var(--fg-dim);background:var(--surface-2);border-bottom-width:2px;border-radius:5px;padding:1px 5px;font-size:11.5px}select.lang{background:var(--surface-2);padding:6px 8px;font-size:13.5px}.scrim{z-index:60;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);padding:var(--sp-4);background:#04070c9e;place-items:center;display:grid;position:fixed;inset:0}.dialog{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-lift);padding:var(--sp-5);gap:var(--sp-3);width:min(520px,100%);display:grid}.dialog h3{font-size:17px}.dialog .warn-box{border:1px solid color-mix(in oklab, var(--bad) 40%, transparent);background:color-mix(in oklab, var(--bad) 9%, transparent);border-radius:var(--r);gap:var(--sp-2);padding:11px 13px;font-size:14.5px;display:grid}.dialog .gate{gap:var(--sp-2);display:grid}.dialog .actions{gap:var(--sp-2);margin-top:var(--sp-2);justify-content:flex-end;display:flex}button.destructive{background:var(--bad);border-color:var(--bad);color:#fff;font-weight:550}button.destructive:hover:not(:disabled){filter:brightness(1.08);border-color:var(--bad)}.sublist{gap:var(--sp-2);margin:var(--sp-2) 0 var(--sp-3);padding-left:var(--sp-4);border-left:2px solid var(--line-soft);display:grid}.subrow{align-items:center;gap:var(--sp-3);border:1px solid var(--line-soft);border-radius:var(--r);background:var(--surface-2);padding:8px 10px;display:flex}.panel{border:1px solid var(--line-soft);border-radius:var(--r);background:var(--surface-2);padding:var(--sp-2);gap:var(--sp-2);display:grid}.panel-row{gap:var(--sp-2);flex-wrap:wrap;align-items:center;display:flex}.panel-row.telemetry{border-top:1px dashed var(--line);padding-top:var(--sp-2);gap:6px}.app-name{align-items:center;gap:var(--sp-2);display:flex}.app-icon{border-radius:var(--r-sm);border:1px solid var(--line-soft);background:var(--surface-3);object-fit:cover;flex:0 0 28px;width:28px;height:28px}.app-icon--none{letter-spacing:.02em;color:var(--fg-mut);-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;font-size:11px;font-weight:600;line-height:1;display:flex}.badge{white-space:nowrap}table.grid th.col-state,table.grid td.col-state{min-width:210px}table.grid th.col-narrow,table.grid td.col-narrow{white-space:nowrap}.build-form{gap:var(--sp-3);display:grid}.field{align-items:start;gap:6px;display:grid}.field-label{font:600 11.5px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--fg-mut)}.chosen{align-items:center;gap:var(--sp-3);padding:var(--sp-3);border:1px solid var(--line-soft);border-radius:var(--r-sm);background:var(--surface-2);flex-wrap:wrap;display:flex}.chosen-text{flex:220px;min-width:0}.chosen-facts{gap:var(--sp-3);flex-wrap:wrap;align-items:center;display:flex}.build-actions{align-items:center;gap:var(--sp-3);padding-top:var(--sp-2);border-top:1px dashed var(--line);flex-wrap:wrap;display:flex}.seg{border:1px solid var(--line);border-radius:var(--r-sm);display:inline-flex;overflow:hidden}.seg-item{background:var(--surface);color:var(--fg-dim);border:none;border-radius:0;padding:7px 14px;font-size:14px}.seg-item+.seg-item{border-left:1px solid var(--line)}.seg-item.is-on{background:var(--acc-soft);color:var(--fg);box-shadow:inset 0 0 0 1px color-mix(in oklab, var(--acc) 35%, transparent)}.seg-item:disabled{opacity:.4}.picker{position:relative}.picker>input{width:100%}.picker-list{z-index:30;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-sm);max-height:340px;box-shadow:var(--shadow-lift);gap:2px;padding:4px;display:grid;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto}.picker-row{align-items:center;gap:var(--sp-2);text-align:left;background:0 0;border:none;border-radius:6px;width:100%;padding:6px 8px;display:flex}.picker-row:hover{background:var(--surface-2)}.picker-row.is-selected{background:var(--acc-soft)}.picker-text{flex:1;min-width:0;display:grid}.picker-name{white-space:nowrap;text-overflow:ellipsis;font-weight:550;overflow:hidden}.picker-state{white-space:nowrap;font-family:var(--mono)}.picker-state.warn{color:var(--warn)}.picker-empty{padding:8px}table.grid td .repo-cell{text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom;max-width:320px;display:inline-block;overflow:hidden}table.grid th.col-machine,table.grid td.col-machine{white-space:nowrap;min-width:108px}.picker{align-items:stretch;gap:0;display:flex;position:relative}.picker>input{border-top-right-radius:0;border-bottom-right-radius:0;flex:1}.picker-toggle{border:1px solid var(--line);background:var(--surface-2);color:var(--fg-dim);border-left:none;border-top-left-radius:0;border-bottom-left-radius:0;padding:0 12px}.picker-toggle:hover{background:var(--surface-3);color:var(--fg)}.dialog{white-space:normal}table.grid th.col-types,table.grid td.col-types{white-space:nowrap;min-width:190px}table.grid td.col-types .seg-item{padding:4px 8px;font-size:12px}.phone-choices{gap:6px;display:grid}.phone-choice{align-items:center;gap:var(--sp-2);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-sm);text-align:left;justify-content:flex-start;padding:7px 11px;display:flex}.phone-choice.is-on{background:var(--acc-soft);box-shadow:inset 0 0 0 1px color-mix(in oklab, var(--acc) 35%, transparent)}.phone-choice:disabled{opacity:.5}.ok-text{color:var(--ok)}.phone-trigger{align-items:center;gap:var(--sp-2);text-align:left;border-top-right-radius:0;border-bottom-right-radius:0;flex:1;justify-content:flex-start;display:flex}.picker-state.ok{color:var(--ok)}.scenario{gap:var(--sp-2);display:grid}.scenario-row{align-items:center;gap:var(--sp-2);border:1px solid var(--line-soft);border-radius:var(--r-sm);background:var(--surface-2);flex-wrap:wrap;padding:6px 8px;display:flex}.scenario-field{width:108px}.scenario-field.grow{flex:1;width:auto;min-width:160px}button.ghost.tiny{padding:4px 9px;font-size:12.5px}.run-form{gap:var(--sp-4);display:grid}.run-settings{gap:var(--sp-3);grid-template-columns:1fr;display:grid}@media (width>=720px){.run-settings{grid-template-columns:repeat(3,minmax(0,1fr))}}.scenario{border:1px solid var(--line-soft);border-radius:var(--r);background:var(--surface-2);padding:var(--sp-3)}.scenario-head,.scenario-foot{align-items:center;gap:var(--sp-2);flex-wrap:wrap;display:flex}.scenario-head{padding-bottom:var(--sp-2)}.scenario-foot{padding-top:var(--sp-2);border-top:1px dashed var(--line)}.scenario .scenario-row{background:var(--surface)}.step-no{background:var(--surface-3);width:22px;height:22px;color:var(--fg-mut);font:600 11.5px/1 var(--mono);border-radius:999px;flex:none;place-items:center;display:grid}.scenario textarea{resize:vertical;background:var(--surface);width:100%;min-height:220px}.stored{margin-top:var(--sp-3);border:1px solid var(--line);border-radius:var(--r);background:var(--surface-2);padding:var(--sp-3);gap:var(--sp-2);flex-direction:column;display:flex}.stored-row{align-items:center;gap:var(--sp-2);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-sm);padding:var(--sp-2) var(--sp-3);flex-wrap:wrap;display:flex}.button-like{border-radius:var(--r-sm);border:1px solid var(--line);background:var(--surface-3);color:var(--fg);font:600 13px/1.2 var(--sans);flex:none;padding:6px 12px;text-decoration:none}.button-like:hover{background:var(--acc-grad);color:#fff;border-color:#0000}.button-like:focus-visible{outline:2px solid var(--acc);outline-offset:2px}@media (width<=1180px){table.grid .col-framework,table.grid .col-repo{display:none}}table.grid .col-package{max-width:340px}.app-name-text{min-width:0}table.grid .col-package .app-name-text b,table.grid .col-package .app-name-text .mono{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.scroll-x{background:radial-gradient(farthest-side at 0 50%, color-mix(in oklab, var(--acc) 22%, transparent), transparent) 0 0 / 14px 100% no-repeat, radial-gradient(farthest-side at 100% 50%, color-mix(in oklab, var(--acc) 22%, transparent), transparent) 100% 0 / 14px 100% no-repeat;background-attachment:scroll,scroll}.toolchains{margin-top:var(--sp-2);padding-top:var(--sp-2);border-top:1px dashed var(--line-soft);gap:var(--sp-2);flex-direction:column;display:flex}.toolchains label.pill{cursor:pointer;gap:var(--sp-2)}.toolchains label.pill input{margin:0}.tool-grid{gap:var(--sp-2) var(--sp-3);grid-template-columns:max-content minmax(0,auto) minmax(0,1fr) max-content;align-items:center;display:grid}.tool-name{color:var(--fg-mut);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;font-size:12px}.tool-have,.tool-news,.tool-act{align-items:center;gap:var(--sp-2);flex-wrap:wrap;min-width:0;display:flex}.tool-act{justify-content:flex-end}.tool-news{font-size:13px}@media (width<=900px){.tool-grid{grid-template-columns:max-content minmax(0,1fr)}.tool-news,.tool-act{grid-column:2;justify-content:flex-start}}.btn-sm{border:1px solid var(--line);background:var(--surface-3);color:var(--fg);white-space:nowrap;border-radius:999px;padding:3px 10px;font-size:12.5px;font-weight:550}.btn-sm:hover:not(:disabled){border-color:var(--acc);color:var(--fg)}.btn-sm.primary{background:var(--acc-grad);color:#fff;border-color:#0000}.requirements{margin-top:var(--sp-3);padding:var(--sp-3);border:1px solid color-mix(in oklab, var(--warn,#d9a441) 35%, transparent);border-radius:var(--r);background:color-mix(in oklab, var(--warn,#d9a441) 7%, transparent)}.log-line{white-space:pre-wrap}.log-error{color:var(--bad);font-weight:550}.log-warn{color:var(--warn,#d9a441)}.log-ok{color:var(--ok,#4ade80)}.log-step{color:var(--fg);font-weight:550}.log-muted{color:var(--fg-mut);opacity:.65}.job-phase{flex-wrap:wrap;align-items:center;gap:8px;min-width:0;display:inline-flex}.job-phase-bar{background:var(--line,#7f7f7f40);border-radius:3px;width:120px;max-width:40vw;height:6px;display:inline-block;overflow:hidden}.job-phase-fill{background:var(--accent,#6366f1);border-radius:3px;height:100%;transition:width .3s;display:block}.job-phase-count{font-variant-numeric:tabular-nums}@media (prefers-reduced-motion:reduce){.job-phase-fill{transition:none}}.build-failure{margin-top:var(--sp-3);padding:var(--sp-3);border-radius:var(--radius-2,8px);border-left:3px solid var(--warn,#d97706);background:color-mix(in srgb, var(--warn,#d97706) 8%, transparent)}.build-failure-app{border-left-color:var(--bad,#dc2626);background:color-mix(in srgb, var(--bad,#dc2626) 20%, transparent);border:1px solid color-mix(in srgb, var(--bad,#dc2626) 45%, transparent);border-left-width:4px}.build-failure-machine{border-left-color:var(--warn,#d97706);background:color-mix(in srgb, var(--warn,#d97706) 18%, transparent);border:1px solid color-mix(in srgb, var(--warn,#d97706) 40%, transparent);border-left-width:4px}.build-failure-unknown{border-left-color:var(--line,#71717a);background:color-mix(in srgb, var(--fg,#a1a1aa) 8%, transparent)}.build-failure-app .build-failure-tag,.build-failure-app .build-failure-summary strong{color:var(--bad,#f87171)}.build-failure-machine .build-failure-tag,.build-failure-machine .build-failure-summary strong{color:var(--warn,#fbbf24)}.build-failure-head{align-items:baseline;gap:var(--sp-2,8px);margin-bottom:var(--sp-2,8px);flex-wrap:wrap;display:flex}.build-failure-tag{text-transform:uppercase;letter-spacing:.06em;font-size:.75rem;font-weight:600}.build-failure-who{opacity:.75;font-size:.85rem}.build-failure-summary{max-width:78ch;margin:0;line-height:1.5}.build-failure-excerpt{margin:var(--sp-2,8px) 0 0;padding:var(--sp-2,8px);border-radius:var(--radius-1,6px);background:color-mix(in srgb, var(--fg,#a1a1aa) 8%, transparent);white-space:pre-wrap;word-break:break-word;font-size:.85rem;overflow-x:auto}.device .meta .on-machine{background:color-mix(in srgb, var(--accent,#6366f1) 22%, transparent);border:1px solid color-mix(in srgb, var(--accent,#6366f1) 45%, transparent);color:var(--fg,#e4e4e7);letter-spacing:.01em;white-space:nowrap;border-radius:999px;padding:1px 7px;font-weight:600;display:inline-block}.build-failure-summary strong{color:var(--fg,#f4f4f5);font-weight:700}.build-failure-summary code{border-radius:var(--radius-1,5px);background:color-mix(in srgb, var(--fg,#a1a1aa) 12%, transparent);word-break:break-word;padding:1px 5px;font-size:.92em}.install-row{align-items:center;gap:var(--sp-2);flex-wrap:wrap;min-width:0;display:flex}.install-label{color:var(--fg-dim)}.install-pick{min-width:140px;max-width:220px}.warn-text{color:var(--warn)}.confirm-remove{align-items:center;gap:var(--sp-2);margin-top:var(--sp-2);padding:var(--sp-3);border:1px solid var(--warn);border-radius:var(--r);background:color-mix(in srgb, var(--warn) 12%, transparent);flex-wrap:wrap;display:flex}.confirm-remove>span{flex:20ch;min-width:0}.confirm-remove button{flex:none}.picker-framework{margin-left:var(--sp-2);border:1px solid var(--line-soft);background:var(--surface-3);color:var(--fg-mut);white-space:nowrap;border-radius:999px;flex:none;padding:1px 7px;font-size:11px;font-weight:500}.picker-title{align-items:center;min-width:0;display:flex}.declared-versions{margin-top:var(--sp-1);display:block}.drop{gap:var(--sp-1);text-align:center;padding:var(--sp-6) var(--sp-4);margin-top:var(--sp-3);border:1.5px dashed var(--line);border-radius:var(--r);color:var(--fg-dim);cursor:pointer;transition:border-color var(--t), background var(--t);justify-items:center;display:grid}.drop:hover,.drop.over{border-color:var(--acc);background:var(--acc-soft);color:var(--fg)}.uploads{gap:var(--sp-2);margin-top:var(--sp-3);display:grid}.upload-row{align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);border:1px solid var(--line-soft);border-radius:var(--r-sm);background:var(--surface-2);display:flex}.job-phase-fill.indeterminate{animation:1.1s ease-in-out infinite alternate sweep;width:40%!important}@keyframes sweep{0%{transform:translate(-100%)}to{transform:translate(250%)}}.job-phase-fill{background:var(--acc)}.chip.account-chip{font-family:var(--mono);font-size:12.5px}.chip.account-chip:not(.on){color:var(--fg-mut);border-style:dashed}table.grid tr.is-selected td{background:var(--acc-soft)}.log-own{color:var(--acc-2);font-weight:550}.log-marker{color:var(--fg-mut);font-style:italic}.log-plain{color:var(--fg-dim)}.dim label,label.dim{opacity:.6}
