:root{color-scheme:dark;--bg: #08090f;--bg-2: #0b0d14;--surface: #11131c;--surface-2: #171a25;--surface-3: #1f2331;--surface-4: #272c3c;--border: #242939;--border-soft: rgba(255, 255, 255, .055);--hairline: rgba(255, 255, 255, .08);--lit: rgba(255, 255, 255, .045);--text: #e9ebf3;--text-2: #b6bccd;--muted: #8f97ad;--faint: #666d82;--accent: #7b74ff;--accent-2: #a78bfa;--accent-strong: #6459f5;--accent-fg: #cdc9ff;--accent-soft: rgba(123, 116, 255, .13);--accent-line: rgba(123, 116, 255, .42);--green: #33d17f;--green-soft: rgba(51, 209, 127, .13);--red: #ff5c6c;--red-soft: rgba(255, 92, 108, .12);--yellow: #ffc14d;--yellow-soft: rgba(255, 193, 77, .13);--magenta: #c58cff;--magenta-soft: rgba(197, 140, 255, .13);--cyan: #4fd8e8;--font: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, "Cascadia Mono", monospace;--fs-micro: 11px;--fs-xs: 12px;--fs-sm: 13px;--fs-md: 14px;--fs-lg: 16px;--fs-xl: 19px;--fs-2xl: 24px;--fs-3xl: 30px;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--sp-7: 32px;--sp-8: 40px;--caption-gap: 6px;--caption-h: calc(var(--fs-xs) * 1.55 + var(--caption-gap));--r-xs: 6px;--r-sm: 8px;--r-md: 10px;--r-lg: 14px;--r-xl: 18px;--r-2xl: 24px;--r-full: 999px;--radius: var(--r-md);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow-md: 0 2px 4px rgba(0, 0, 0, .3), 0 8px 24px -8px rgba(0, 0, 0, .6);--shadow-lg: 0 4px 12px rgba(0, 0, 0, .35), 0 24px 60px -16px rgba(0, 0, 0, .75);--shadow-glow: 0 0 0 1px var(--accent-line), 0 8px 28px -10px rgba(123, 116, 255, .55);--ease: cubic-bezier(.2, .8, .2, 1);--fast: .12s;--base: .18s;--sidebar-w: 244px;--topbar-h: 56px;--gutter: 32px;--content-max: 1440px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}*{box-sizing:border-box}html,body{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);font-size:var(--fs-md);line-height:1.55;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;background-image:radial-gradient(1100px 600px at 12% -10%,rgba(123,116,255,.07),transparent 65%),radial-gradient(900px 500px at 100% 0%,rgba(79,216,232,.035),transparent 60%);background-attachment:fixed}h1,h2,h3,h4{letter-spacing:-.015em;font-weight:600;color:var(--text)}h2{font-size:var(--fs-xl)}h3{font-size:var(--fs-lg)}h4{font-size:var(--fs-md)}a{color:var(--accent-fg);text-decoration:none;transition:color var(--fast) var(--ease)}a:hover{color:var(--accent-2);text-decoration:none}code,kbd,samp{font-family:var(--mono)}::selection{background:#7b74ff59;color:#fff}td,th,.count,.stat .value,.hud,time{font-variant-numeric:tabular-nums}*{scrollbar-width:thin;scrollbar-color:var(--surface-4) transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--surface-4);border:3px solid transparent;background-clip:content-box;border-radius:var(--r-full)}::-webkit-scrollbar-thumb:hover{background:#333a4e;background-clip:content-box}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}button{font:inherit;font-weight:500;display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);min-height:34px;padding:0 14px;background:var(--surface-2);color:var(--text);border:1px solid var(--hairline);border-radius:var(--r-md);box-shadow:inset 0 1px 0 var(--lit);cursor:pointer;white-space:nowrap;transition:background var(--fast) var(--ease),border-color var(--fast) var(--ease),color var(--fast) var(--ease),box-shadow var(--fast) var(--ease),transform var(--fast) var(--ease)}button:hover:not(:disabled){background:var(--surface-3);border-color:var(--border);color:var(--text)}button:active:not(:disabled){transform:translateY(.5px)}button:disabled{opacity:.45;cursor:not-allowed}button.primary{background:linear-gradient(180deg,var(--accent) 0%,var(--accent-strong) 100%);border-color:transparent;color:#fff;box-shadow:inset 0 1px #ffffff38,0 6px 18px -8px #6459f5e6}button.primary:hover:not(:disabled){background:linear-gradient(180deg,#8b85ff 0%,var(--accent) 100%);border-color:transparent;color:#fff}button.danger{color:var(--red)}button.danger:hover:not(:disabled){background:var(--red-soft);border-color:#ff5c6c66;color:var(--red)}button.ghost{background:transparent;border-color:transparent;box-shadow:none;color:var(--muted)}button.ghost:hover:not(:disabled){background:var(--surface-2);color:var(--text);border-color:transparent}a.button{font:inherit;font-weight:500;display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);min-height:34px;padding:0 14px;background:var(--surface-2);color:var(--text);border:1px solid var(--hairline);border-radius:var(--r-md);box-shadow:inset 0 1px 0 var(--lit);cursor:pointer;white-space:nowrap;text-decoration:none;transition:background var(--fast) var(--ease),border-color var(--fast) var(--ease),color var(--fast) var(--ease),box-shadow var(--fast) var(--ease),transform var(--fast) var(--ease)}a.button:hover{background:var(--surface-3);border-color:var(--border);color:var(--text)}a.button:active{transform:translateY(.5px)}a.button.primary{background:linear-gradient(180deg,var(--accent) 0%,var(--accent-strong) 100%);border-color:transparent;color:#fff;box-shadow:inset 0 1px #ffffff38,0 6px 18px -8px #6459f5e6}a.button.primary:hover{background:linear-gradient(180deg,#8b85ff 0%,var(--accent) 100%);border-color:transparent;color:#fff}a.button.primary .muted{color:#ffffffc7}:where(button,input,select,textarea,a,[tabindex]):focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--r-sm)}input,select,textarea{font:inherit;width:100%;min-height:36px;padding:7px 11px;background:var(--bg-2);color:var(--text);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:inset 0 1px 2px #00000047;transition:border-color var(--fast) var(--ease),box-shadow var(--fast) var(--ease),background var(--fast) var(--ease)}input::placeholder,textarea::placeholder{color:var(--faint)}input:hover:not(:disabled),select:hover:not(:disabled),textarea:hover:not(:disabled){border-color:var(--surface-4)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent-line);background:var(--bg);box-shadow:inset 0 1px 2px #00000047,0 0 0 3px var(--accent-soft)}input:disabled,select:disabled,textarea:disabled{opacity:.55;cursor:not-allowed}textarea{font-family:var(--mono);font-size:var(--fs-sm);line-height:1.6;resize:vertical;padding:10px 12px}select{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:30px;background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);background-position:calc(100% - 16px) calc(50% + 1px),calc(100% - 11px) calc(50% + 1px);background-size:5px 5px;background-repeat:no-repeat}input[type=color]{padding:3px;min-height:34px;cursor:pointer}input[type=checkbox],input[type=radio]{width:16px;height:16px;min-height:0;accent-color:var(--accent);box-shadow:none;cursor:pointer}.icon-btn{display:inline-grid;place-items:center;width:34px;height:34px;min-height:0;padding:0;background:transparent;border-color:transparent;box-shadow:none;color:var(--muted)}.icon-btn:hover:not(:disabled){background:var(--surface-3);color:var(--text);border-color:transparent}.toolgroup{display:inline-flex;gap:2px;padding:3px;background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-lg);box-shadow:inset 0 1px 0 var(--lit)}.toolgroup button{min-height:28px;gap:6px;background:transparent;border-color:transparent;box-shadow:none;color:var(--muted);padding:0 11px;border-radius:var(--r-md);font-size:var(--fs-sm)}.toolgroup button:hover:not(:disabled){background:var(--surface-2);color:var(--text);border-color:transparent}.toolgroup button.on{background:var(--surface-3);color:var(--text);box-shadow:inset 0 1px #ffffff0f,0 1px 2px #0006}.toolgroup button.on.rec{color:var(--red);background:var(--red-soft);box-shadow:inset 0 0 0 1px #ff5c6c59}.seg{width:fit-content}.lang-switch{display:inline-flex;gap:2px;padding:3px;background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-full)}.lang-switch.floating{position:fixed;top:16px;right:18px;z-index:100;box-shadow:var(--shadow-md)}.lang-switch button{min-height:26px;background:transparent;border-color:transparent;box-shadow:none;color:var(--muted);padding:0 11px;border-radius:var(--r-full);font-size:var(--fs-xs);font-weight:600;letter-spacing:.05em}.lang-switch button:hover:not(:disabled){color:var(--text);border-color:transparent;background:var(--surface-2)}.lang-switch button.on{background:var(--surface-3);color:var(--text)}.shell{display:grid;grid-template-columns:var(--sidebar-w) minmax(0,1fr);min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;padding:var(--sp-4) var(--sp-3) var(--sp-3);background:linear-gradient(180deg,rgba(255,255,255,.022),transparent 220px),var(--bg-2);border-right:1px solid var(--border-soft);z-index:30}.brand{display:flex;align-items:center;gap:10px;padding:4px 8px var(--sp-5);min-width:0}.brand-mark{flex:none;display:grid;place-items:center;border-radius:var(--r-md);background:linear-gradient(145deg,var(--accent-2),var(--accent-strong));color:#fff;box-shadow:inset 0 1px #ffffff59,0 6px 18px -8px #6459f5e6}.brand-text{min-width:0;display:flex;flex-direction:column;line-height:1.2}.brand-name{font-size:var(--fs-sm);font-weight:650;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.brand-sub{font-size:var(--fs-micro);color:var(--faint);letter-spacing:.07em;text-transform:uppercase}.nav{display:flex;flex-direction:column;gap:2px;min-height:0;overflow-y:auto}.nav-group{display:flex;flex-direction:column;gap:2px}.nav-label{margin:var(--sp-3) 0 var(--sp-2);padding:0 10px;font-size:var(--fs-micro);font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--faint)}.nav-group:first-child .nav-label{margin-top:0}.nav-item{position:relative;display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--r-md);color:var(--muted);font-size:var(--fs-sm);font-weight:500;transition:background var(--fast) var(--ease),color var(--fast) var(--ease)}.nav-item svg{flex:none;opacity:.85}.nav-item span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-item:hover{background:var(--surface-2);color:var(--text)}.nav-item.active{background:var(--accent-soft);color:var(--accent-fg)}.nav-item.active svg{opacity:1;color:var(--accent-2)}.nav-item.active:before{content:"";position:absolute;left:-12px;top:50%;transform:translateY(-50%);width:3px;height:20px;border-radius:0 3px 3px 0;background:var(--accent);box-shadow:0 0 12px 1px #7b74ff99}.sidebar .spacer{flex:1;min-height:var(--sp-4)}.sidebar-foot{display:flex;flex-direction:column;gap:var(--sp-2);padding-top:var(--sp-3);border-top:1px solid var(--border-soft)}.sign-out{justify-content:flex-start;background:transparent;border-color:transparent;box-shadow:none;color:var(--muted);font-size:var(--fs-sm)}.sign-out:hover:not(:disabled){background:var(--surface-2);color:var(--text);border-color:transparent}.main{display:flex;flex-direction:column;min-width:0}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:var(--sp-3);height:var(--topbar-h);padding:0 var(--gutter);background:color-mix(in srgb,var(--bg) 78%,transparent);backdrop-filter:blur(14px) saturate(140%);-webkit-backdrop-filter:blur(14px) saturate(140%);border-bottom:1px solid var(--border-soft)}.topbar .spacer{flex:1}.crumbs{display:flex;align-items:center;gap:var(--sp-2);min-width:0;font-size:var(--fs-sm);color:var(--faint)}.crumbs .sep{color:var(--surface-4)}.crumbs strong{color:var(--text-2);font-weight:550;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-toggle{display:none;margin-left:-8px}.support-badge{display:inline-flex;align-items:center;gap:var(--sp-2);min-width:0;padding:3px 4px 3px 12px;border-radius:var(--r-full);background:var(--yellow-soft);border:1px solid rgba(255,193,77,.35);color:var(--yellow);font-size:var(--fs-xs);line-height:1.7}.support-badge strong{font-weight:600;white-space:nowrap}.support-badge .support-who{min-width:0;color:var(--text-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.support-badge button{padding:0 10px;min-height:22px;border-radius:var(--r-full);font-size:var(--fs-xs)}.content{flex:1;min-width:0;width:100%;max-width:var(--content-max);padding:var(--sp-7) var(--gutter) var(--sp-8)}.page-header{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--sp-4);margin-bottom:var(--sp-6);flex-wrap:wrap}.page-header h2,.stack>header h2{margin:0;font-size:var(--fs-2xl);letter-spacing:-.025em}.page-header>div:first-child,.stack>header>div:first-child{min-width:0}.page-sub,.stack>header p,.page-header>div>p{margin:6px 0 0;color:var(--muted);font-size:var(--fs-sm);max-width:72ch}.page-header .row-actions,.page-header>button{flex:none}.login{display:grid;place-items:center;min-height:100vh;padding:var(--sp-6);background:radial-gradient(760px 460px at 50% -4%,rgba(123,116,255,.12),transparent 62%),var(--bg)}.login form{width:min(380px,100%)}.login-card .brand{padding:0;margin-bottom:var(--sp-1)}.login-card{display:flex;flex-direction:column;gap:var(--sp-4);padding:var(--sp-6);background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-xl);box-shadow:var(--shadow-lg),inset 0 1px 0 var(--lit)}.login-card h2{margin:0;font-size:var(--fs-xl);letter-spacing:-.02em}.login-card .login-lede{margin:-10px 0 0;color:var(--muted);font-size:var(--fs-sm)}.login-card label{display:flex;flex-direction:column;gap:6px;font-size:var(--fs-sm);font-weight:500;color:var(--text-2)}.login-card button[type=submit]{min-height:40px;margin-top:var(--sp-1)}.login-error{display:flex;gap:var(--sp-2);margin:0;padding:10px 12px;border-radius:var(--r-md);background:var(--red-soft);border:1px solid rgba(255,92,108,.3);color:#ffb8c0;font-size:var(--fs-sm)}.card{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-lg);padding:var(--sp-5);box-shadow:var(--shadow-sm),inset 0 1px 0 var(--lit)}.card>h3:first-child{margin-top:0}.card>strong:first-child{display:block;margin:0 0 var(--sp-2);font-size:var(--fs-lg);font-weight:600;letter-spacing:-.015em}.card>strong:first-child+p{margin-top:0}.grid{display:grid;gap:var(--sp-4)}.grid.cols-4{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}.grid.cols-3{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.stat{display:flex;flex-direction:column;gap:2px}.stat .value{font-size:var(--fs-3xl);font-weight:620;letter-spacing:-.03em;line-height:1.1}.stat .label{color:var(--muted);font-size:var(--fs-micro);text-transform:uppercase;letter-spacing:.09em;font-weight:600}.table-wrap{overflow-x:auto;border-radius:var(--r-lg)}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:12px 16px;border-bottom:1px solid var(--border-soft)}thead th{position:sticky;top:0;background:var(--surface-2);color:var(--muted);font-weight:600;font-size:var(--fs-micro);text-transform:uppercase;letter-spacing:.08em;white-space:nowrap;border-bottom:1px solid var(--border)}tbody tr{transition:background var(--fast) var(--ease)}tbody tr:hover{background:#ffffff06}tbody tr:last-child td{border-bottom:none}.badge{display:inline-flex;align-items:center;padding:2px 10px;border-radius:var(--r-full);font-size:var(--fs-xs);font-weight:550;line-height:1.6;background:var(--surface-3);color:var(--muted);border:1px solid transparent}.badge.online,.badge.passed,.badge.ready{background:var(--green-soft);color:var(--green)}.badge.failed,.badge.error{background:var(--red-soft);color:var(--red)}.badge.busy,.badge.running,.badge.needs_attention,.badge.queued,.badge.allocating,.badge.building{background:var(--yellow-soft);color:var(--yellow)}.badge.offline,.badge.cancelled,.badge.skipped,.badge.pending{background:var(--surface-3);color:var(--muted)}.badge.quarantined{background:var(--magenta-soft);color:var(--magenta)}.badge.tenant-active{background:var(--green-soft);color:var(--green)}.badge.tenant-suspended{background:var(--magenta-soft);color:var(--magenta)}.badge.console-blocked{background:var(--yellow-soft);color:var(--yellow)}.chip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--hairline);background:var(--surface-2);border-radius:var(--r-full);padding:3px 11px;font-size:var(--fs-xs);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:240px}.alert{display:flex;gap:var(--sp-3);background:var(--red-soft);border:1px solid rgba(255,92,108,.32);border-radius:var(--r-md);padding:10px 14px;color:#ffbcc3;font-size:var(--fs-sm)}.alert p{margin:0}.notice{display:flex;flex-direction:column;gap:var(--sp-2)}.muted{color:var(--muted)}.error-text{color:var(--red)}.warning-text{color:var(--yellow)}.small{font-size:var(--fs-xs)}.mono{font-family:var(--mono);font-size:var(--fs-sm)}.nowrap{white-space:nowrap}.selectable{-webkit-user-select:all;user-select:all;word-break:break-all}.row{display:flex;gap:var(--sp-3);align-items:center}.col{display:flex;flex-direction:column;gap:var(--sp-4)}.stack{display:flex;flex-direction:column;gap:var(--sp-5)}.stack>header{margin-bottom:0}.row-actions{display:flex;gap:var(--sp-1);justify-content:flex-end;white-space:nowrap}td.row-actions{display:table-cell;text-align:right}td.row-actions button+button{margin-left:var(--sp-1)}.tenant-table thead th{white-space:normal}.row-actions button:not(.primary){min-height:30px;padding:0 10px;background:transparent;border-color:transparent;box-shadow:none;color:var(--muted);font-size:var(--fs-sm)}.row-actions button:not(.primary):hover:not(:disabled){color:var(--text);background:var(--surface-3);border-color:transparent}.row-actions button.danger:hover:not(:disabled){color:var(--red);background:var(--red-soft)}.confirm-row td{background:var(--red-soft)}.confirm-row .spacer{flex:1}.empty-row td{padding:var(--sp-8) var(--sp-4);text-align:center}.fields{display:flex;flex-wrap:wrap;gap:var(--sp-2) var(--sp-5);align-items:flex-start}.field{display:flex;flex-direction:column;gap:6px;flex:1 1 220px;min-width:0}.field.grow{flex:2 1 300px}.field.fixed{flex:0 0 auto}.field-label{font-size:var(--fs-xs);font-weight:600;color:var(--text-2);letter-spacing:.01em}.field-label em{font-style:normal;font-weight:400;color:var(--faint);margin-left:6px}.field-hint{font-size:var(--fs-xs);color:var(--faint);min-height:18px}.field-hint.error{color:var(--red)}.field input[aria-invalid=true]{border-color:var(--red);box-shadow:0 0 0 3px var(--red-soft)}.unit-input{display:flex;align-items:center;gap:var(--sp-2)}.unit-input input{width:130px}.unit-input span{color:var(--muted);font-size:var(--fs-sm)}.form-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:var(--sp-2)}form.row{flex-wrap:wrap;align-items:flex-start}form.row>label:not(.row){display:flex;flex-direction:column;gap:var(--caption-gap);flex:1 1 220px;min-width:0;font-size:var(--fs-xs);font-weight:600;color:var(--text-2)}form.row>label:not(.row) input,form.row>label:not(.row) select{font-size:var(--fs-md);font-weight:400;color:var(--text)}form.row>label:not(.row) .muted{font-weight:400}form.row>button,form.row>label.row{margin-top:var(--caption-h)}form.row>label.row{flex:none;align-items:center;gap:var(--sp-2);min-height:36px;font-size:var(--fs-sm)}.drawer{position:fixed;inset:0 0 0 auto;width:min(480px,100%);background:var(--surface);border-left:1px solid var(--hairline);padding:var(--sp-6);overflow-y:auto;z-index:60;box-shadow:var(--shadow-lg);animation:drawer-in var(--base) var(--ease)}@keyframes drawer-in{0%{transform:translate(24px);opacity:0}}.drawer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0405099e;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:59;animation:fade-in var(--base) var(--ease)}@keyframes fade-in{0%{opacity:0}}.drawer h3{margin-top:0}.drawer label{display:block;margin-bottom:var(--sp-3);font-size:var(--fs-sm);color:var(--text-2)}.drawer input,.drawer select,.drawer textarea{width:100%;margin-top:5px}.preset-row{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:var(--sp-3)}.preset-row button.on{border-color:var(--accent-line);background:var(--accent-soft);color:var(--accent-fg)}.danger-zone{border-color:#ff5c6c4d;background:linear-gradient(180deg,var(--red-soft),transparent 60%),var(--surface)}.danger-zone h3{color:var(--red);margin-top:0}.devices-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-4)}.search-box{position:relative;flex:1 1 280px;max-width:440px;min-width:200px}.search-box input{padding-right:34px}.search-box input[type=search]::-webkit-search-cancel-button{-webkit-appearance:none}.search-clear{position:absolute;top:50%;right:5px;transform:translateY(-50%);width:26px;height:26px;min-height:0;padding:0;background:transparent;border-color:transparent;box-shadow:none;color:var(--muted);font-size:var(--fs-xs)}.search-clear:hover:not(:disabled){color:var(--text);background:var(--surface-3);border-color:transparent}.devices-toolbar .count{margin-left:5px;padding:0;background:transparent;font-size:var(--fs-xs);color:var(--faint)}.devices-toolbar button.on .count{color:var(--text-2)}.devices-toolbar button.zero:not(.on){opacity:.42}.devices-toolbar .toolgroup{flex-wrap:wrap}.devices-count{color:var(--faint);font-size:var(--fs-xs);margin:var(--sp-3) 2px 0}.device-table td{vertical-align:top;padding-top:13px;padding-bottom:13px}.device-table .nowrap{white-space:nowrap}.device-table th a{color:inherit}.device-table th a:hover{color:var(--accent-2)}.device-row{cursor:pointer}.device-row:focus-within{background:#ffffff06}.device-row.open>td{border-bottom-color:transparent}.row-toggle{flex:none;display:inline-grid;place-items:center;width:22px;min-height:22px;padding:0;margin-left:-4px;border:none;background:transparent;box-shadow:none;color:var(--faint)}.row-toggle:hover:not(:disabled){background:var(--surface-3);color:var(--text-2)}.row-toggle svg{transition:transform var(--fast) var(--ease)}.device-row.open .row-toggle{color:var(--text-2)}.device-row.open .row-toggle svg{transform:rotate(90deg)}.device-name{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}.device-name a{font-weight:550;color:var(--text)}.device-name a:hover{color:var(--accent-2)}.new-dot{flex:none;width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 0 3px var(--green-soft);cursor:help}.attention-icon{display:inline-flex;color:var(--yellow);cursor:help}.device-status{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px var(--sp-2)}.device-status .muted{font-size:var(--fs-xs);white-space:nowrap}.status-dot{display:inline-flex;align-items:center;gap:8px;white-space:nowrap;font-weight:500}.status-dot i{flex:none;width:8px;height:8px;border-radius:50%;background:var(--muted)}.status-dot.online i{background:var(--green);box-shadow:0 0 0 3px var(--green-soft)}.status-dot.busy i,.status-dot.needs_attention i{background:var(--yellow);box-shadow:0 0 0 3px var(--yellow-soft)}.status-dot.quarantined i{background:var(--magenta);box-shadow:0 0 0 3px var(--magenta-soft)}.status-dot.needs_attention{color:var(--yellow)}.status-dot.quarantined{color:var(--magenta)}.status-dot.offline{color:var(--muted)}.status-dot.offline i{background:transparent;box-shadow:inset 0 0 0 1.5px var(--faint)}.perm-icons{display:flex;align-items:center;gap:var(--sp-2)}.perm-icon{display:inline-flex;cursor:help}.perm-icon.on{color:var(--muted)}.perm-icon.missing{color:var(--red)}.perm-icon.off{color:var(--surface-4)}.perm-list{display:flex;flex-direction:column;gap:var(--sp-2);margin:0;padding:0;list-style:none;font-size:var(--fs-sm)}.perm-list li{display:grid;grid-template-columns:14px minmax(0,1fr);column-gap:var(--sp-2);align-items:baseline;color:var(--text-2)}.perm-list i{justify-self:center;font-style:normal;font-weight:700;color:var(--green)}.perm-list li>span{font-weight:500}.perm-list em{grid-column:2;margin-top:1px;font-style:normal;font-size:var(--fs-xs);line-height:1.45;color:var(--muted)}.perm-list .missing i,.perm-list .missing>span{color:var(--red)}.perm-list .off i{color:var(--faint)}.perm-list .off>span{color:var(--muted)}.device-table .analyzes{min-width:150px;max-width:280px}.analyze-hits{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-1) var(--sp-4);margin:0;padding:0;list-style:none}.analyze-hits li{display:inline-flex;align-items:center;gap:7px;min-width:0;max-width:100%;font-size:var(--fs-sm);cursor:help}.analyze-hits .pip{flex:none;width:8px;height:8px;border-radius:50%;box-shadow:inset 0 0 0 1.5px currentColor}.analyze-hits .name{min-width:0;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.analyze-hits .on{color:var(--green)}.analyze-hits .on .pip{background:var(--green);box-shadow:none}.analyze-hits .off{color:var(--faint)}.analyze-pips{display:flex;align-items:center;gap:7px;margin:0;padding:0;list-style:none}.analyze-pips li{display:inline-flex;cursor:help;color:var(--faint)}.analyze-pips .pip{width:9px;height:9px;border-radius:50%;box-shadow:inset 0 0 0 1.5px currentColor}.analyze-pips .on{color:var(--green)}.analyze-pips .on .pip{background:var(--green);box-shadow:none}.device-detail-row>td{padding:0 var(--sp-4) var(--sp-4);background:#ffffff04}.device-detail{border-radius:var(--r-md);background:var(--surface-2);border:1px solid var(--border-soft);font-size:var(--fs-sm)}.device-detail h4{margin:0 0 var(--sp-3);font-size:var(--fs-micro);font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--faint)}.device-detail p{margin:0}.detail-head{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-3) var(--sp-5);padding:var(--sp-3) var(--sp-5);border-bottom:1px solid var(--border-soft)}.detail-vitals{display:flex;flex-wrap:wrap;gap:var(--sp-2) var(--sp-6);margin:0}.detail-vitals .vital{display:flex;flex-direction:column;gap:2px}.detail-vitals dt{font-size:var(--fs-xs);color:var(--faint);white-space:nowrap}.detail-vitals dd{margin:0;color:var(--text);white-space:nowrap;font-variant-numeric:tabular-nums}.detail-alert{display:inline-flex;align-items:center;gap:var(--sp-2);padding:6px 10px;border-radius:var(--r-sm);border:1px solid rgba(255,92,108,.28);background:var(--red-soft);color:var(--red)}.detail-alert svg{flex:none}.detail-link{display:inline-flex;align-items:center;gap:4px;margin-left:auto;padding:6px 8px 6px 12px;border-radius:var(--r-sm);border:1px solid var(--border);background:var(--surface);color:var(--text-2);font-weight:500;white-space:nowrap;transition:color var(--fast) var(--ease),border-color var(--fast) var(--ease)}.detail-link:hover{color:var(--text);border-color:var(--accent-line)}.detail-body{display:grid;grid-template-columns:fit-content(340px) minmax(260px,1.5fr) minmax(180px,1fr);padding:var(--sp-4) var(--sp-5)}.detail-body>*{min-width:0;padding:0 var(--sp-5)}.detail-body>:nth-child(1){padding-left:0}.detail-body>:nth-child(3){padding-right:0}.detail-body>*+*{border-left:1px solid var(--border-soft)}.detail-body .stack{display:flex;flex-direction:column;gap:var(--sp-5)}.detail-body .wide{grid-column:1 / -1;margin-top:var(--sp-4);padding:var(--sp-4) 0 0;border-left:0;border-top:1px solid var(--border-soft)}.detail-body dl{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:6px var(--sp-4);margin:0}.detail-body dt{color:var(--faint);white-space:nowrap}.detail-body dd{margin:0;color:var(--text-2);overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.detail-body .analyze-hits{flex-direction:column;align-items:flex-start;gap:6px;margin:0}.detail-body .analyze-hits .name{max-width:none}.detail-body .module-chips{margin:0}.locale{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px var(--sp-2);white-space:nowrap}.locale .country{cursor:help}.locale .muted{font-size:var(--fs-xs)}.toggle{min-width:62px;min-height:28px;padding:0 10px;font-size:var(--fs-micro);font-weight:600;text-transform:uppercase;letter-spacing:.06em}.toggle.on{color:var(--green);background:var(--green-soft);border-color:#33d17f4d}.toggle.off{color:var(--muted);background:transparent;border-style:dashed;border-color:var(--border)}.content:has(.device-page){padding:var(--sp-5) var(--sp-5) var(--sp-4);max-width:none}.device-page{display:flex;flex-direction:column;gap:var(--sp-3);height:calc(100vh - var(--topbar-h) - 36px)}.panel-topbar{display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap}.panel-topbar h2{margin:0;font-size:var(--fs-xl);letter-spacing:-.02em}.panel-topbar .title{display:flex;align-items:center;gap:var(--sp-2);min-width:0}.panel-topbar .spacer{flex:1}.panel-topbar .meta{display:flex;gap:6px;align-items:center;color:var(--muted);font-size:var(--fs-xs);min-width:0}.live{display:inline-flex;align-items:center;gap:7px;font-size:var(--fs-xs);color:var(--muted)}.live .dot{width:7px;height:7px;border-radius:50%;background:var(--faint)}.live.on .dot{background:var(--green);animation:live-pulse 2s ease-in-out infinite}.live.stalled .dot{background:var(--yellow);animation:none}.hud{font-size:var(--fs-xs);color:var(--muted);white-space:nowrap}@keyframes live-pulse{0%,to{box-shadow:0 0 #33d17f80}50%{box-shadow:0 0 0 5px #33d17f00}}.panel{display:flex;gap:var(--sp-4);flex:1;min-height:0}.stage{flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--sp-3);padding:var(--sp-4);border:1px solid var(--hairline);border-radius:var(--r-2xl);box-shadow:var(--shadow-md),inset 0 1px 0 var(--lit);background:radial-gradient(90% 70% at 50% 0%,rgba(123,116,255,.09),transparent 68%),var(--surface)}.stage-body{flex:1;min-height:0;display:flex}.screen-wrap{--rail-gap: 12px;--key-w: 64px;flex:1;min-width:0;min-height:0;display:flex;align-items:center;justify-content:center;gap:var(--rail-gap);container-type:size}.phone{--aspect: .4615;--corner: 0;--bezel: 9px;--screen-w: min( calc(100cqw - var(--key-w) - var(--rail-gap) - 2 * var(--bezel)), calc((100cqh - 2 * var(--bezel)) * var(--aspect)) );--screen-h: calc(var(--screen-w) / var(--aspect));--screen-radius: calc(var(--corner) * min(var(--screen-w), var(--screen-h)));flex:none;padding:calc(var(--bezel) - 1px);border:1px solid var(--surface-4);border-radius:max(14px,calc(var(--screen-radius) + var(--bezel)));background:linear-gradient(180deg,#15171f,#090a0e);box-shadow:inset 0 1px #ffffff12,0 30px 70px #0009;transition:border-color var(--base) var(--ease),box-shadow var(--base) var(--ease)}.phone.is-recording{border-color:var(--red);box-shadow:inset 0 1px #ffffff12,0 0 0 1px #ff5c6c59,0 30px 70px #0009}.screen{position:relative;width:var(--screen-w);height:var(--screen-h);border-radius:var(--screen-radius);background:#000;overflow:hidden;cursor:crosshair;-webkit-user-select:none;user-select:none;touch-action:none}.screen img{width:100%;height:100%;object-fit:fill;display:block}.screen .placeholder{display:grid;place-items:center;height:100%;color:var(--muted);padding:var(--sp-4);text-align:center}.screen .placeholder .notice{align-items:center;gap:var(--sp-3);max-width:34ch;font-size:var(--fs-sm);line-height:1.5}.screen .placeholder .notice p{margin:0;color:var(--text-2)}.screen .placeholder .notice p.muted{color:var(--muted);font-size:var(--fs-xs)}.screen .highlight{position:absolute;border:2px solid var(--accent);border-radius:3px;box-shadow:0 0 0 9999px #04050947;pointer-events:none}.keypad{flex:none;align-self:stretch;display:flex;flex-direction:column;gap:6px;justify-content:center;overflow-y:auto}.keypad button{width:var(--key-w, 64px);height:52px;min-height:0;padding:0;flex-direction:column;gap:3px;background:var(--surface-2);color:var(--muted);font-size:10px;font-weight:500;line-height:1.15;text-align:center;border-radius:var(--r-md)}.keypad button:hover:not(:disabled){color:var(--text);background:var(--surface-3)}.keypad-sep{height:1px;margin:var(--sp-1) 12px;background:var(--border)}.stage-foot{display:flex;gap:var(--sp-2);align-items:center;flex-wrap:wrap}.stage-foot input{flex:1 1 200px;min-width:140px}.stage-foot .hint{color:var(--faint);font-size:var(--fs-xs)}.side{flex:0 0 348px;width:348px;display:flex;flex-direction:column;min-height:0;background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-2xl);box-shadow:var(--shadow-md),inset 0 1px 0 var(--lit);overflow:hidden}.tabs{display:flex;gap:2px;padding:7px;border-bottom:1px solid var(--border-soft)}.tabs button{flex:1;min-height:30px;background:transparent;border-color:transparent;box-shadow:none;color:var(--muted);padding:0 8px;font-size:var(--fs-xs);font-weight:550;border-radius:var(--r-sm)}.tabs button:hover:not(:disabled){color:var(--text);border-color:transparent;background:var(--surface-2)}.tabs button.on{background:var(--surface-3);color:var(--text)}.count{display:inline-block;margin-left:6px;padding:0 6px;border-radius:var(--r-full);background:var(--bg-2);font-size:var(--fs-micro)}.side-body{flex:1;min-height:0;overflow-y:auto;padding:var(--sp-4);display:flex;flex-direction:column;gap:var(--sp-3)}.side-body h3{margin:0;font-size:var(--fs-micro);text-transform:uppercase;letter-spacing:.09em;color:var(--faint);font-weight:700}.armed{display:flex;flex-direction:column;gap:var(--sp-2)}.app-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--sp-1)}.app-list button{width:100%;min-height:0;justify-content:flex-start;text-align:left;gap:10px;padding:8px 10px;background:transparent;border-color:transparent;box-shadow:none}.app-list button:hover:not(:disabled){background:var(--surface-2);border-color:transparent}.app-list .app-icon{width:36px;height:36px;flex:none;border-radius:var(--r-sm);background:var(--surface-3);object-fit:contain}.app-list .app-icon.placeholder{display:grid;place-items:center;font-size:var(--fs-md);font-weight:600;color:var(--muted)}.app-list .app-meta{min-width:0;display:flex;flex-direction:column;gap:1px}.app-list .app-meta span{overflow-wrap:anywhere}.app-list .pkg{font-size:var(--fs-micro);color:var(--faint);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.trigger-table td{vertical-align:top}.trigger-table .name{font-weight:600;white-space:nowrap}.trigger-table .desc{color:var(--muted);font-size:var(--fs-xs);margin-top:3px;max-width:240px}.trigger-table .nowrap{white-space:nowrap}.trigger-table tr.editing td{background:var(--accent-soft);box-shadow:inset 2px 0 0 var(--accent)}.trigger-cond{display:flex;flex-direction:column;gap:4px;min-width:180px}.trigger-cond .kind{font-size:var(--fs-micro);text-transform:uppercase;letter-spacing:.08em;font-weight:600;color:var(--faint)}.trigger-cond code{font-size:var(--fs-sm);overflow-wrap:anywhere}.armed-list{display:flex;flex-wrap:wrap;gap:5px}.device-chip{display:inline-flex;align-items:center;gap:7px;max-width:200px;padding:2px 10px 2px 9px;border:1px solid var(--hairline);border-radius:var(--r-full);background:var(--surface-2);color:var(--text-2);font-size:var(--fs-xs);line-height:1.7}.device-chip:hover{border-color:var(--accent-line);color:var(--text)}.device-chip span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.device-chip i{flex:none;width:7px;height:7px;border-radius:50%;background:var(--faint)}.device-chip.online i{background:var(--green)}.device-chip.busy i,.device-chip.needs_attention i{background:var(--yellow)}.device-chip.quarantined i{background:var(--magenta)}.trigger-form{display:flex;flex-direction:column;gap:var(--sp-4);margin-top:var(--sp-5)}.trigger-form-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3)}.trigger-form h3{margin:0;font-size:var(--fs-lg)}.trigger-preview{margin:0;padding:12px 14px;border:1px dashed var(--border);border-radius:var(--r-md);background:var(--bg-2);color:var(--muted);font-size:var(--fs-sm)}.trigger-preview strong{color:var(--text);font-weight:600}.trigger-actions{flex-wrap:wrap}.account-badge{padding:10px 12px;border-radius:var(--r-md);background:var(--surface-2);border:1px solid var(--border-soft);border-left:3px solid var(--surface-4)}.account-name{font-weight:600;font-size:var(--fs-sm);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-access{font-size:var(--fs-xs);color:var(--muted);margin-top:2px}.account-badge[data-tone=warning]{border-left-color:var(--yellow);background:linear-gradient(90deg,var(--yellow-soft),transparent 70%),var(--surface-2)}.account-badge[data-tone=warning] .account-access{color:var(--yellow)}.account-badge[data-tone=error]{border-left-color:var(--red);background:linear-gradient(90deg,var(--red-soft),transparent 70%),var(--surface-2)}.account-badge[data-tone=error] .account-access{color:var(--red)}.credentials{border-color:#ffc14d73;background:linear-gradient(180deg,var(--yellow-soft),transparent 70%),var(--surface)}.credentials dl{display:grid;grid-template-columns:auto 1fr auto;gap:var(--sp-2) var(--sp-3);align-items:center;margin:var(--sp-3) 0 0}.credentials dt{color:var(--muted);font-size:var(--fs-sm)}.credentials dd{margin:0}.expiry-chip{display:inline-flex;padding:2px 10px;border-radius:var(--r-full);font-size:var(--fs-xs);font-weight:550;background:var(--surface-3);white-space:nowrap;color:var(--muted)}.expiry-chip.soon{background:var(--yellow-soft);color:var(--yellow)}.expiry-chip.gone{background:var(--red-soft);color:var(--red)}.design-cards{grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}.design-cards .design-card{display:flex;flex-direction:column;gap:var(--sp-3);align-items:center;transition:border-color var(--base) var(--ease),transform var(--base) var(--ease)}.design-cards .design-card:hover{border-color:var(--accent-line);transform:translateY(-2px)}.design-card-thumb{flex:none}.design-card-body{width:100%;min-width:0}.design-card-body h3{margin:0 0 3px;font-size:var(--fs-lg)}.design-card-body .row-actions{flex-wrap:wrap;justify-content:flex-start;margin-top:var(--sp-2);margin-left:-10px}.content:has(.design-editor){max-width:none;padding:var(--sp-4) var(--sp-5)}.design-editor{display:flex;flex-direction:column;gap:var(--sp-3);height:calc(100vh - var(--topbar-h) - var(--sp-4) * 2);min-height:0}.design-toolbar{flex:none;display:flex;align-items:center;gap:var(--sp-2);min-height:40px}.design-title{flex:1 1 auto;display:flex;align-items:center;gap:var(--sp-2);min-width:0}.design-name{flex:0 1 auto;width:auto;min-width:140px;max-width:420px;min-height:34px;padding:4px 9px;font-size:var(--fs-lg);font-weight:620;letter-spacing:-.02em;background:transparent;border-color:transparent;box-shadow:none;text-overflow:ellipsis}.design-name:hover:not(:focus){background:var(--surface-2);border-color:var(--hairline)}.design-name:focus{background:var(--bg-2)}.design-default-badge{flex:none;padding:2px 9px;border-radius:var(--r-full);background:var(--accent-soft);border:1px solid var(--accent-line);color:var(--accent-fg);font-size:var(--fs-micro);font-weight:600;white-space:nowrap}.design-toolbar-actions{flex:none;display:flex;align-items:center;gap:var(--sp-2);margin-left:auto}.design-history{display:flex;gap:2px;padding-right:var(--sp-2);border-right:1px solid var(--hairline)}.design-state{padding:0 var(--sp-1);font-size:var(--fs-xs);color:var(--muted);white-space:nowrap}.design-state[data-state=unsaved]{color:var(--yellow)}.design-state[data-state=issues]{color:var(--red)}.design-next{background:var(--accent-soft);border-color:var(--accent-line);color:var(--accent-fg)}.design-next:hover:not(:disabled){background:#7b74ff33;border-color:var(--accent);color:var(--accent-fg)}.design-next span{opacity:.65}.design-overflow{position:relative}.design-menu{position:absolute;top:calc(100% + 6px);right:0;z-index:40;min-width:200px;display:flex;flex-direction:column;gap:2px;padding:var(--sp-1);background:var(--surface-2);border:1px solid var(--hairline);border-radius:var(--r-md);box-shadow:var(--shadow-lg);animation:fade-in var(--fast) var(--ease)}.design-menu button{width:100%;justify-content:flex-start;background:transparent;border-color:transparent;box-shadow:none;font-size:var(--fs-sm)}.design-menu button:hover:not(:disabled){background:var(--surface-3);border-color:transparent}.design-workspace{flex:1 1 auto;min-height:0;display:grid;grid-template-columns:268px minmax(0,1fr) 320px;gap:var(--sp-3)}.design-panel{display:flex;flex-direction:column;min-height:0;min-width:0;padding:0;overflow:hidden}.design-panel-head{flex:none;display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-1) var(--sp-1) var(--sp-1) var(--sp-3);border-bottom:1px solid var(--hairline)}.design-panel-head h3{flex:1;min-width:0;margin:0;font-size:var(--fs-md);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.design-panel-icon{flex:none;display:grid;place-items:center;width:26px;height:26px;border-radius:var(--r-sm);background:var(--surface-3);color:var(--accent-2)}.design-panel-actions{flex:none;display:flex;gap:2px}.design-panel-body{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;padding:var(--sp-4)}.design-stage{position:relative;display:flex;flex-direction:column;gap:var(--sp-2);min-height:0;min-width:0;outline:none}.design-canvas{flex:1 1 auto;min-height:0;display:flex;overflow:auto;padding:var(--sp-3) var(--sp-4) 48px;border:1px solid var(--border-soft);border-radius:var(--r-xl);background-color:var(--bg-2);background-image:radial-gradient(75% 55% at 50% 0%,rgba(123,116,255,.075),transparent 70%),radial-gradient(circle at 1px 1px,rgba(255,255,255,.05) 1px,transparent 0);background-size:auto,24px 24px;background-repeat:no-repeat,repeat}.design-canvas>.design-phone{flex:none;margin:auto}.design-zoom{position:absolute;right:var(--sp-3);bottom:var(--sp-3);z-index:3;display:flex;align-items:center;gap:var(--sp-1);padding:3px;border-radius:var(--r-lg);background:color-mix(in srgb,var(--bg) 70%,transparent);backdrop-filter:blur(10px) saturate(140%);-webkit-backdrop-filter:blur(10px) saturate(140%)}.design-zoom .toolgroup{border-color:transparent;background:transparent;box-shadow:none;padding:0}.design-zoom-value{min-width:44px;text-align:center;font-size:var(--fs-xs);color:var(--muted);font-variant-numeric:tabular-nums}.design-note{display:inline-grid;place-items:center;width:26px;height:26px;color:var(--faint);cursor:help;transition:color var(--fast) var(--ease)}.design-note:hover{color:var(--text-2)}.design-banner{flex:none;display:flex;gap:var(--sp-3);align-items:center;flex-wrap:wrap;padding:var(--sp-3) var(--sp-4)}.design-banner p{margin:0;font-size:var(--fs-sm)}.design-banner-error{padding:0}.design-phone{box-sizing:content-box;position:relative;overflow:hidden;border:8px solid #262b3a;border-radius:30px;box-shadow:inset 0 1px #ffffff0f,0 18px 50px #0000008c;background:#000}.design-phone-screen{transform-origin:top left;position:relative;overflow:hidden}.design-phone-stack,.design-phone-column{display:flex;flex-direction:column;height:100%;box-sizing:border-box;overflow:hidden}.design-phone-column>.design-phone-stack{flex:0 0 auto;height:auto}.design-preview-block{flex:none;position:relative}.design-preview-block[data-drop-slot]:after,.design-block-list li[data-drop-slot]:after{content:"";position:absolute;left:0;right:0;height:2px;border-radius:2px;background:var(--accent);box-shadow:0 0 0 1px #00000073}.design-preview-block[data-drop-slot=before]:after,.design-block-list li[data-drop-slot=before]:after{top:-5px}.design-preview-block[data-drop-slot=after]:after,.design-block-list li[data-drop-slot=after]:after{bottom:-5px}.design-block-list li{position:relative}.design-preview-block[data-pending=true]{animation:design-pending 1.2s var(--ease) infinite}@keyframes design-pending{50%{opacity:.55}}.design-phone.on{outline:2px dashed var(--accent);outline-offset:4px}.design-drop-caption{position:absolute;z-index:2;left:50%;top:var(--sp-4);transform:translate(-50%);margin:0;padding:6px 12px;border-radius:999px;background:var(--accent);color:#fff;font-size:var(--fs-xs);font-weight:550;white-space:nowrap;pointer-events:none}.design-preview-missing{display:grid;place-items:center;border:1px dashed rgba(255,255,255,.35);border-radius:var(--r-sm);color:#ffffff8c;font-size:var(--fs-xs)}.design-preview-tag{position:absolute;left:0;bottom:calc(100% + 4px);z-index:4;padding:1px 7px;border-radius:var(--r-xs) var(--r-xs) var(--r-xs) 0;background:var(--accent);color:#fff;font-family:var(--font);font-size:11px;font-weight:600;line-height:1.5;letter-spacing:0;white-space:nowrap;pointer-events:none;transform:scale(var(--design-unscale, 1));transform-origin:0 100%}.design-frame-empty{flex:1 1 auto;display:grid;place-items:center;margin:0;border:1.5px dashed rgba(255,255,255,.3);border-radius:var(--r-lg);color:#ffffff9e;font-family:var(--font);text-align:center;pointer-events:none}.design-frame-empty span{display:block;max-width:210px;padding:0 12px;font-size:13px;line-height:1.45;transform:scale(var(--design-unscale, 1))}.design-build{display:flex;flex-direction:column;gap:var(--sp-5)}.design-section{display:flex;flex-direction:column;gap:var(--sp-2)}.design-section-label,.design-group-label{margin:0;font-size:var(--fs-micro);font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--faint)}.design-hint{margin:0;line-height:1.45}.design-palette{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-1)}.design-tile{flex-direction:column;gap:5px;min-height:58px;padding:9px 6px 7px;background:var(--surface-2);border-radius:var(--r-md);color:var(--text-2);font-size:var(--fs-micro);font-weight:550;line-height:1.25;cursor:grab}.design-tile:hover:not(:disabled){background:var(--surface-3);border-color:var(--accent-line);color:var(--text);transform:translateY(-1px)}.design-tile:active:not(:disabled){cursor:grabbing;transform:none}.design-tile svg{color:var(--accent-2);opacity:.9}.design-tile span{max-width:100%;white-space:normal;overflow-wrap:anywhere;text-align:center}.design-screen-row{width:100%;min-height:0;justify-content:flex-start;gap:var(--sp-2);padding:6px 9px;background:var(--surface-2);border-radius:var(--r-md);text-align:left}.design-screen-row.on{background:var(--accent-soft);border-color:var(--accent-line)}.design-screen-row svg{flex:none;color:var(--accent-2)}.design-block-list{list-style:none;display:flex;flex-direction:column;gap:1px;margin:var(--sp-1) 0 0;padding:0}.design-block-list li{position:relative;display:flex;align-items:center;gap:1px;padding:1px 2px 1px 0;border-radius:var(--r-md);transition:background var(--fast) var(--ease)}.design-block-list li:hover{background:var(--surface-2)}.design-block-list li.on{background:var(--accent-soft);box-shadow:inset 2px 0 0 var(--accent)}.design-block-list li[data-block-id]{cursor:grab}.design-block-handle{flex:none;display:grid;place-items:center;width:16px;height:30px;color:var(--faint)}.design-block-list li:hover .design-block-handle{color:var(--muted)}.design-block-pick{flex:1;min-width:0;min-height:0;gap:var(--sp-2);justify-content:flex-start;padding:5px 4px;background:transparent;border-color:transparent;box-shadow:none;text-align:left}.design-block-pick:hover:not(:disabled){background:transparent;border-color:transparent}.design-block-pick>svg{flex:none;color:var(--muted)}.design-block-list li.on .design-block-pick>svg{color:var(--accent-2)}.design-block-text{min-width:0;display:flex;flex-direction:column;line-height:1.3}.design-block-kind{font-weight:550;font-size:var(--fs-sm)}.design-block-summary{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--fs-xs)}.design-block-actions{flex:none;display:flex;opacity:0;pointer-events:none;transition:opacity var(--fast) var(--ease)}.design-block-list li:hover .design-block-actions,.design-block-list li:focus-within .design-block-actions,.design-block-list li.on .design-block-actions{opacity:1;pointer-events:auto}.design-block-actions .icon-btn{width:26px;height:26px}.design-stack-hint{margin:var(--sp-2) 0 0;line-height:1.4}.design-inspector-body{display:flex;flex-direction:column;gap:var(--sp-4)}.design-group{display:flex;flex-direction:column}.design-group-label{margin-bottom:var(--sp-2)}.design-group+.design-group{padding-top:var(--sp-3);border-top:1px solid var(--hairline)}.design-group>:last-child{margin-bottom:0}.design-group .design-hint:not(:last-child){margin-bottom:var(--sp-3)}.design-stop-actions{gap:var(--sp-2);margin-bottom:var(--sp-3)}.design-field{display:block;margin-bottom:var(--sp-3)}.design-field-label{display:block;color:var(--muted);font-size:var(--fs-xs);font-weight:550;margin-bottom:4px}.design-toggle{display:flex;align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-3);font-size:var(--fs-sm)}.design-position{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--sp-2) var(--sp-4);margin-bottom:0;padding-bottom:var(--sp-4);border-bottom:1px solid var(--hairline)}.design-position .design-field{margin-bottom:0}.design-segments{display:flex}.design-segments button{min-height:30px;padding:0 10px;border-radius:0;font-size:var(--fs-xs);font-weight:500}.design-segments button+button{margin-left:-1px}.design-segments button:first-child{border-top-left-radius:var(--r-md);border-bottom-left-radius:var(--r-md)}.design-segments button:last-child{border-top-right-radius:var(--r-md);border-bottom-right-radius:var(--r-md)}.design-segments button.on{z-index:1;background:var(--accent-soft);border-color:var(--accent);color:var(--text)}.design-toggle input{width:auto}.design-color{display:flex;gap:var(--sp-2);align-items:center}.design-color input[type=color]{width:40px;flex:none;height:34px}.design-invalid{border-color:var(--red)}.design-action-hint{margin:-6px 0 var(--sp-3);font-size:var(--fs-xs)}.design-params{margin-bottom:var(--sp-3);padding-left:var(--sp-3);border-left:2px solid var(--hairline)}.design-params .design-field:last-child{margin-bottom:0}.design-params input[type=checkbox]{margin-top:2px}.design-issues{margin-bottom:var(--sp-4);padding:var(--sp-3);border-radius:var(--r-md);background:var(--red-soft);border:1px solid rgba(255,92,108,.25)}.design-issues h4{margin:0 0 6px;font-size:var(--fs-sm);color:var(--red)}.design-issues ul{list-style:none;margin:0;padding:0}.design-issue{width:100%;min-height:0;justify-content:flex-start;text-align:left;display:block;white-space:normal;overflow-wrap:anywhere;background:transparent;border-color:transparent;box-shadow:none;color:#ffb8c0;font-size:var(--fs-xs);padding:4px 6px}.design-issue:hover:not(:disabled){background:#ff5c6c24;border-color:transparent;color:#ffd2d7}.design-restore,.design-stale{display:flex;gap:var(--sp-3);align-items:center;flex-wrap:wrap}.design-restore p,.design-stale p{margin:0}.design-assets{display:flex;flex-direction:column;gap:var(--sp-2)}.design-asset-grid{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin-bottom:var(--sp-2)}.design-asset-slot{position:relative;display:inline-flex}.design-asset{width:62px;height:62px;min-height:0;padding:3px;display:grid;place-items:center;overflow:hidden;border-radius:var(--r-md)}.design-asset.on{border-color:var(--accent-line);box-shadow:0 0 0 3px var(--accent-soft)}.design-asset img{max-width:100%;max-height:100%;object-fit:contain}.design-asset-remove{position:absolute;top:-7px;right:-7px;width:20px;height:20px;min-height:0;padding:0;line-height:1;border-radius:50%;background:var(--surface-3);border-color:var(--border);font-size:var(--fs-micro)}.design-drop{border:1px dashed var(--border);border-radius:var(--r-md);padding:var(--sp-3);display:flex;flex-direction:column;gap:6px;align-items:flex-start;transition:border-color var(--fast) var(--ease),background var(--fast) var(--ease)}.design-drop.on{border-color:var(--accent);background:var(--accent-soft)}.design-apk-thumb{margin-top:var(--sp-3)}.module-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:var(--sp-4)}.module-card{display:flex;flex-direction:column;gap:var(--sp-2)}.module-card p{margin:0}.module-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-3)}.module-head h3{margin:0}.module-head p{margin:2px 0 0}.module-toggle{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-sm);white-space:nowrap}.module-toggle input{width:auto}.module-permissions{list-style:none;margin:0;padding:var(--sp-2) var(--sp-3);border-radius:var(--r-md);background:var(--surface-2);font-size:var(--fs-xs)}.module-permissions li+li{margin-top:4px}.module-optional{margin-left:var(--sp-2);padding:1px 6px;border:1px solid var(--border);border-radius:var(--r-sm);color:var(--muted);font-size:var(--fs-xs);cursor:help}.module-chips{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.module-chip{padding:1px 7px;border-radius:999px;font-size:var(--fs-xs);border:1px solid var(--border);background:var(--surface-2);color:var(--text-2)}.module-chip.ok{border-color:#33d17f4d;background:var(--green-soft);color:var(--green)}.module-chip.needs_permission{border-color:#ffc14d4d;background:var(--yellow-soft);color:var(--yellow)}.module-chip.failed{border-color:#ff5c6c4d;background:var(--red-soft);color:var(--red)}.module-beat+.module-beat{margin-top:var(--sp-4);padding-top:var(--sp-4);border-top:1px solid var(--border-soft)}.module-state{font-size:var(--fs-xs);color:var(--muted)}.module-state.ok{color:var(--green)}.module-state.needs_permission{color:var(--yellow)}.module-state.failed{color:var(--red)}.module-values{list-style:none;margin:0 0 var(--sp-2);padding:0;font-size:var(--fs-sm)}.module-values li{display:flex;justify-content:space-between;gap:var(--sp-3);padding:2px 0}.module-commands{flex-wrap:wrap;gap:6px}.module-command-form{display:flex;flex-direction:column;gap:var(--sp-2);margin-top:var(--sp-2);padding:var(--sp-3);border-radius:var(--r-md);background:var(--surface-2)}.module-command-form .field{flex:0 0 auto}.module-ack{margin:0;max-height:220px;overflow:auto;padding:var(--sp-2);border-radius:var(--r-sm);background:var(--bg-2);white-space:pre-wrap;word-break:break-word}.design-warnings{background:var(--yellow-soft);border-color:#ffc14d40}.design-warnings h4{color:var(--yellow)}.design-warnings .design-issue{color:#ffdc9b}.design-warnings .design-issue:hover:not(:disabled){background:#ffc14d24;color:#ffe9c2}.design-module-banner a{color:inherit;text-decoration:underline}.design-module-banner{align-self:stretch;margin:0;padding:var(--sp-2) var(--sp-3);border-radius:var(--r-md);background:var(--yellow-soft);border:1px solid rgba(255,193,77,.25);color:#ffdc9b;font-size:var(--fs-xs)}.design-rows{margin-bottom:var(--sp-3)}.design-row-choice{display:flex;align-items:center;gap:var(--sp-2);padding:2px 0;font-size:var(--fs-sm)}.design-row-choice input{width:auto}@media(max-width:1180px){.content:has(.design-editor){padding:var(--sp-5) var(--gutter) var(--sp-7)}.design-editor{height:auto;gap:var(--sp-4)}.design-toolbar{flex-wrap:wrap}.design-workspace{grid-template-columns:minmax(0,1fr);gap:var(--sp-4)}.design-stage{order:-1;height:min(70vh,620px)}.design-panel,.design-panel-body{overflow:visible}}@media(max-width:1100px){.device-page{height:auto}.panel{flex-direction:column}.side{flex:none;width:100%;max-height:60vh}.stage-body{flex:none;height:min(70vh,620px)}}@media(max-width:960px){.detail-body{grid-template-columns:minmax(0,1fr);row-gap:var(--sp-4)}.detail-body>*{padding:0;border-left:0}.detail-body>*+*{padding-top:var(--sp-4);border-top:1px solid var(--border-soft)}.detail-body .wide{margin-top:0}}@media(max-width:900px){:root{--gutter: 20px}.shell{grid-template-columns:minmax(0,1fr)}.sidebar{position:fixed;inset:0 auto 0 0;width:272px;transform:translate(-100%);transition:transform var(--base) var(--ease);box-shadow:var(--shadow-lg);z-index:70}.sidebar.open{transform:none}.nav-toggle{display:inline-grid}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:65;background:#04050999;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:fade-in var(--base) var(--ease)}.content{padding-top:var(--sp-5)}.support-badge .support-who{display:none}}@media(max-width:640px){:root{--gutter: 16px;--fs-2xl: 21px}.page-header{align-items:flex-start}.card{padding:var(--sp-4)}.content:has(.device-page){padding:var(--sp-3)}.content:has(.design-editor){padding:var(--sp-4) var(--gutter) var(--sp-6)}.design-stage{height:min(66vh,520px)}}.dropzone{border:1.5px dashed var(--border);background:var(--surface-1);box-shadow:none;transition:border-color var(--fast) var(--ease),background var(--fast) var(--ease)}.dropzone.dragging{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,var(--surface-1))}button.link{background:none;border:none;box-shadow:none;padding:0;min-height:0;color:var(--accent);text-decoration:underline;text-underline-offset:2px}button.link:hover:not(:disabled){background:none;color:var(--accent-strong)}
