:root{--r-sm:4px;--r-md:6px;--r-lg:8px;--r-xl:12px;--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:20px;--s-6:24px;--s-8:32px;--s-10:40px;--s-12:48px;--font-ui:"Inter", "Noto Sans SC", -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--font-mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--t-fast:.12s cubic-bezier(.2,.8,.2,1);--t-med:.2s cubic-bezier(.2,.8,.2,1);--sidebar-w:232px;--sidebar-w-collapsed:56px;--header-h:48px}.theme-light{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:oklch(98.5% .001 286);--bg-raised:#fff;--bg-sunken:oklch(97% .001 286);--surface:#fff;--surface-hover:oklch(97.5% .002 286);--border:oklch(91.8% .004 286);--border-strong:oklch(86% .005 286);--fg:oklch(18% .005 286);--fg-muted:oklch(48% .008 286);--fg-subtle:oklch(62% .008 286);--shadow-sm:0 1px 2px #1118270a, 0 1px 1px #11182708;--shadow-md:0 4px 12px #1118270f, 0 1px 2px #1118270a;--shadow-pop:0 8px 28px #1118271a, 0 2px 4px #1118270f;--accent:oklch(55% .2 260);--accent-fg:#fff;--accent-bg:oklch(96% .03 260);--ok:oklch(62% .15 155);--ok-bg:oklch(96% .03 155);--warn:oklch(70% .17 75);--warn-bg:oklch(97% .04 85);--bad:oklch(58% .22 25);--bad-bg:oklch(96% .03 25);--info:oklch(58% .18 250);--info-bg:oklch(96% .03 250);--violet:oklch(56% .2 300);--violet-bg:oklch(96% .03 300);--grid-line:oklch(94% .003 286)}.theme-dark{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:oklch(14.5% .003 286);--bg-raised:oklch(18% .003 286);--bg-sunken:oklch(12.5% .003 286);--surface:oklch(18% .003 286);--surface-hover:oklch(21.5% .004 286);--border:oklch(25.5% .005 286);--border-strong:oklch(33% .006 286);--fg:oklch(93% .003 286);--fg-muted:oklch(66% .006 286);--fg-subtle:oklch(50% .006 286);--shadow-sm:0 1px 2px #0006;--shadow-md:0 4px 14px #00000080, 0 1px 2px #0000004d;--shadow-pop:0 12px 36px #0009, 0 2px 4px #0006;--accent:oklch(68% .18 260);--accent-fg:oklch(15% 0 0);--accent-bg:oklch(28% .07 260);--ok:oklch(72% .16 155);--ok-bg:oklch(26% .06 155);--warn:oklch(78% .16 75);--warn-bg:oklch(27% .08 80);--bad:oklch(68% .22 25);--bad-bg:oklch(27% .09 25);--info:oklch(70% .17 250);--info-bg:oklch(27% .07 250);--violet:oklch(70% .18 300);--violet-bg:oklch(27% .09 300);--grid-line:oklch(23% .004 286)}*{box-sizing:border-box}html{height:100dvh;margin:0;padding:0;overflow:hidden}body{height:100%;margin:0;padding:0;overflow:hidden}#root{height:100%}@supports (-webkit-touch-callout:none){input,select,textarea{font-size:max(16px,1em)}}body{font-family:var(--font-ui);color:var(--fg);background:var(--bg);font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;font-size:14px;line-height:1.5}button,input,textarea,select{font-family:inherit;font-size:inherit;color:inherit}a{color:inherit;text-decoration:none}.app{grid-template-columns:var(--sidebar-w) 1fr;background:var(--bg);grid-template-rows:100dvh;height:100dvh;display:grid;overflow:hidden}.app.sidebar-collapsed,.app.variant-b{grid-template-columns:var(--sidebar-w-collapsed) 1fr}.app.variant-b.sidebar-expanded{grid-template-columns:var(--sidebar-w) 1fr}@media (width<=900px){.app,.app.sidebar-collapsed,.app.variant-b,.app.variant-b.sidebar-expanded{grid-template-columns:1fr}.sidebar{display:none!important}.sidebar.mobile-open{z-index:60;width:240px;box-shadow:var(--shadow-pop);position:fixed;top:0;bottom:0;left:0;display:flex!important}.mobile-scrim{display:none}.mobile-scrim.on{z-index:55;background:#00000080;display:block;position:fixed;inset:0}}.sidebar{background:var(--bg-raised);border-right:1px solid var(--border);flex-direction:column;grid-area:1/1;min-height:0;display:flex;position:relative}.sidebar-brand{height:var(--header-h);border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:10px;padding:12px 14px;display:flex}.sidebar-brand .logo{background:linear-gradient(135deg, var(--fg) 0%, oklch(35% 0 0) 100%);width:26px;height:26px;color:var(--bg-raised);font-size:14px;font-weight:700;font-family:var(--font-mono);border-radius:7px;flex-shrink:0;place-items:center;display:grid}.theme-dark .sidebar-brand .logo{background:linear-gradient(135deg, var(--fg) 0%, oklch(78% 0 0) 100%);color:var(--bg)}.sidebar-brand .name{letter-spacing:-.01em;font-weight:600}.sidebar-brand .env{background:var(--accent-bg);color:var(--accent);font-size:11px;font-family:var(--font-mono);border-radius:4px;margin-left:auto;padding:2px 6px;font-weight:500}.sidebar-search{flex-shrink:0;padding:10px 10px 6px}.sidebar-search button{background:var(--bg-sunken);border:1px solid var(--border);border-radius:var(--r-md);width:100%;color:var(--fg-muted);cursor:pointer;transition:background var(--t-fast), border-color var(--t-fast);align-items:center;gap:8px;padding:6px 10px;font-size:13px;display:flex}.sidebar-search button:hover{background:var(--surface-hover);border-color:var(--border-strong)}.sidebar-search button .k{font-family:var(--font-mono);background:var(--surface);border:1px solid var(--border);color:var(--fg-subtle);border-radius:3px;margin-left:auto;padding:1px 5px;font-size:11px}.sidebar-nav{flex:1;padding:4px 8px 12px;overflow-y:auto}.sidebar-nav::-webkit-scrollbar{width:8px}.sidebar-nav::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}.sidebar-nav::-webkit-scrollbar-track{background:0 0}.sidebar-user{border-top:1px solid var(--border);flex-shrink:0;padding:8px}.sidebar-user-row{border-radius:var(--r-md);transition:background var(--t-fast);color:var(--fg-muted);align-items:center;gap:8px;padding:6px 8px;font-size:14px;display:flex}.sidebar-user-row:hover{background:var(--surface-hover);color:var(--fg)}.sidebar-user-row .avatar{background:var(--surface-hover);border:1px solid var(--border);border-radius:50%;flex-shrink:0;place-items:center;width:26px;height:26px;font-size:12px;font-weight:600;display:grid}.sidebar-user-row .uname{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.sidebar-user-actions{opacity:0;transition:opacity var(--t-fast);flex-shrink:0;gap:2px;display:flex}.sidebar-user-row:hover .sidebar-user-actions{opacity:1}.sidebar-user-action{cursor:pointer;border-radius:var(--r-sm);width:24px;height:24px;color:var(--fg-muted);transition:background var(--t-fast), color var(--t-fast);background:0 0;border:none;place-items:center;display:grid}.sidebar-user-action:hover{background:color-mix(in oklch, var(--fg) 10%, transparent);color:var(--fg)}.app.sidebar-collapsed .sidebar-user-row .uname,.app.sidebar-collapsed .sidebar-user-actions{display:none}.app.sidebar-collapsed .sidebar-user-row{justify-content:center}.nav-section-title{color:var(--fg-subtle);text-transform:uppercase;letter-spacing:.06em;padding:12px 10px 6px;font-size:11px;font-weight:500}.nav-item{border-radius:var(--r-md);color:var(--fg-muted);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background var(--t-fast), color var(--t-fast);text-align:left;background:0 0;border:none;align-items:center;gap:11px;width:100%;padding:8px 12px;font-size:15px;display:flex;position:relative}.nav-item:hover{background:var(--surface-hover);color:var(--fg)}.nav-item.active{background:var(--surface-hover);color:var(--fg);font-weight:500}.nav-item.active:before{content:"";background:var(--fg);border-radius:0 2px 2px 0;width:2px;position:absolute;top:7px;bottom:7px;left:0}.nav-item .icon{flex-shrink:0;width:17px;height:17px}.nav-item .label{white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.nav-item .badge-count{font-family:var(--font-mono);background:var(--bg-sunken);color:var(--fg-muted);border:1px solid var(--border);border-radius:3px;padding:1px 5px;font-size:11px}.nav-item .dot{background:var(--bad);border-radius:50%;flex-shrink:0;width:6px;height:6px;animation:2s infinite pulse}.app.sidebar-collapsed .sidebar,.app.variant-b:not(.sidebar-expanded) .sidebar{align-items:stretch}.app.sidebar-collapsed .nav-item .label,.app.sidebar-collapsed .nav-item .badge-count,.app.sidebar-collapsed .nav-section-title,.app.sidebar-collapsed .sidebar-brand .name,.app.sidebar-collapsed .sidebar-brand .env,.app.sidebar-collapsed .sidebar-search button .k,.app.sidebar-collapsed .sidebar-search button .t,.app.variant-b:not(.sidebar-expanded) .nav-item .label,.app.variant-b:not(.sidebar-expanded) .nav-item .badge-count,.app.variant-b:not(.sidebar-expanded) .nav-section-title,.app.variant-b:not(.sidebar-expanded) .sidebar-brand .name,.app.variant-b:not(.sidebar-expanded) .sidebar-brand .env,.app.variant-b:not(.sidebar-expanded) .sidebar-search button .k,.app.variant-b:not(.sidebar-expanded) .sidebar-search button .t{display:none}.app.sidebar-collapsed .nav-item,.app.variant-b:not(.sidebar-expanded) .nav-item{justify-content:center;padding:8px 0}.app.sidebar-collapsed .sidebar-brand,.app.variant-b:not(.sidebar-expanded) .sidebar-brand{justify-content:center;padding:11px 0}.app.sidebar-collapsed .sidebar-search,.app.variant-b:not(.sidebar-expanded) .sidebar-search{padding:8px}.app.sidebar-collapsed .sidebar-search button,.app.variant-b:not(.sidebar-expanded) .sidebar-search button{justify-content:center;padding:6px}.header{background:var(--bg);border-bottom:1px solid var(--border);height:var(--header-h);z-index:20;grid-area:header;align-items:center;gap:10px;padding:0 16px;display:flex;position:sticky;top:0}.icon-btn{border-radius:var(--r-md);width:28px;height:28px;color:var(--fg-muted);cursor:pointer;transition:background var(--t-fast), color var(--t-fast), border-color var(--t-fast);background:0 0;border:1px solid #0000;place-items:center;display:grid}.icon-btn:hover{background:var(--surface-hover);color:var(--fg);border-color:var(--border)}.icon-btn.active{background:var(--surface-hover);color:var(--fg)}.header .crumbs{color:var(--fg-muted);align-items:center;gap:8px;font-size:14px;display:flex}.header .crumbs .sep{color:var(--fg-subtle)}.header .crumbs .cur{color:var(--fg);font-weight:500}.header .right{align-items:center;gap:4px;margin-left:auto;display:flex}.live-pill{background:var(--bg-sunken);border:1px solid var(--border);color:var(--fg-muted);font-size:12px;font-family:var(--font-mono);border-radius:999px;align-items:center;gap:6px;padding:3px 8px;display:inline-flex}.live-pill .ldot{background:var(--ok);border-radius:50%;width:6px;height:6px;animation:2s infinite pulse}@keyframes spin{to{transform:rotate(360deg)}}.spin{animation:.8s linear infinite spin}.main{background:var(--bg);flex-direction:column;grid-area:1/2;min-width:0;min-height:0;display:flex}.main>.content{flex:1;min-height:0;overflow-y:auto}.page{max-width:1600px;padding:20px 24px 56px}@media (width<=640px){.page{padding:16px 16px 40px}.page--fill{padding:12px 12px 0}.page--fill .page-body{gap:8px}}.page--fill{flex-direction:column;min-width:0;height:100%;padding:20px 24px 0;display:flex}.page--fill .page-body{flex-direction:column;flex:1;gap:12px;min-width:0;min-height:0;display:flex}.page--fill .table-wrap{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.page--fill .table-toolbar,.page--fill .batch-bar{flex-shrink:0;min-width:0}.page--fill .pagination{flex-shrink:0}.page--fill .table-scroll{flex:1;min-width:0;min-height:0;overflow:auto}.page--fill .tab-panel{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.page--fill .tab-panel[hidden]{display:none}.page--fill .table-card,.page--fill .table-tab-panel{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.page--fill .table-tab-panel[hidden]{display:none}.page--fill .chart-card,.page--fill .table-card>.card-tab-header{flex-shrink:0}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:16px;display:flex}.page-head .title-block h1{letter-spacing:-.015em;margin:0;font-size:20px;font-weight:600}.page-head .title-block p{color:var(--fg-muted);margin:3px 0 0;font-size:14px}.page-head .actions{flex-wrap:wrap;gap:6px;display:flex}.devices-page .page-head{gap:16px;margin-bottom:16px}.devices-page .page-head .title-block h1{text-wrap:balance}.devices-page .page-head .title-block p{text-wrap:pretty}.devices-page .page-head .actions{gap:6px}table.data tbody tr{outline:none}table.data tbody tr:focus-visible td{background:color-mix(in oklch, var(--accent-bg) 62%, var(--surface))}.devices-sheet{flex-direction:column;gap:14px;display:flex}.devices-sheet-hero{border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow-sm);padding:12px 14px}.devices-sheet-hero-status{gap:8px;margin-bottom:10px}.devices-sheet-hero-meta{color:var(--fg-muted);gap:12px;font-size:13px}.devices-sheet-tabs{padding-bottom:2px;overflow-x:auto}.devices-sheet-tabs::-webkit-scrollbar{display:none}.devices-sheet-tabs .tabs{width:max-content;min-width:100%}.devices-sheet-tabs .tabs .tab{flex-shrink:0}.devices-sheet .info-row .v{font-family:var(--font-ui);word-break:break-word}.devices-sheet .info-row .v .num,.devices-sheet .info-row .v .mono{font-family:var(--font-mono)}.devices-log-card{border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-raised);padding:10px 12px}.devices-log-head,.devices-command-head,.devices-risk-head{justify-content:space-between;gap:8px;margin-bottom:4px}.devices-command-head{margin-bottom:6px}.devices-log-chip-row{gap:8px}.devices-log-time,.devices-log-note,.devices-risk-text{font-size:12px}.devices-risk-text{font-size:13px}.devices-command-title{font-weight:600}.devices-command-meta{color:var(--fg-muted);flex-wrap:wrap;gap:12px;font-size:12px}.devices-inline-switch{gap:8px}.devices-action-row{flex-wrap:wrap;align-items:center;gap:8px}.devices-ops-section{margin-bottom:14px}.devices-ops-section:last-child{border-top:1px solid var(--border);margin-bottom:0;padding-top:12px}.devices-ops-section+.devices-ops-section{border-top:1px solid var(--border);padding-top:12px}.devices-ops-label{color:var(--fg-muted);margin-bottom:8px;font-size:12px;font-weight:500}.screenshot-body{min-height:240px;position:relative}.screenshot-img{object-fit:contain;border:1px solid var(--border);border-radius:var(--r-md);cursor:zoom-in;width:100%;height:auto;max-height:calc(100dvh - 220px);transition:opacity .12s;display:block}.screenshot-placeholder{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:56px 16px;display:flex}.screenshot-placeholder-text{color:var(--fg);font-size:14px}.screenshot-placeholder-sub{font-size:12px}.screenshot-spinner{border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:28px;height:28px;animation:.7s linear infinite screenshot-spin}@keyframes screenshot-spin{to{transform:rotate(360deg)}}.screenshot-progress{background:var(--border);border-top-left-radius:var(--r-md);border-top-right-radius:var(--r-md);z-index:2;height:2px;position:absolute;top:0;left:0;right:0;overflow:hidden}.screenshot-progress:after{content:"";background:var(--accent);width:40%;height:100%;animation:1.2s cubic-bezier(.2,.6,.2,1) infinite screenshot-indet;display:block}@keyframes screenshot-indet{0%{transform:translate(-100%)}to{transform:translate(300%)}}.screenshot-fullscreen{z-index:100;background:#000000eb;flex-direction:column;display:flex;position:fixed;inset:0}.screenshot-fullscreen-bar{color:#fff;gap:8px;padding:12px;display:flex}.screenshot-fullscreen-btn{color:#fff;border-radius:var(--r-md);cursor:pointer;background:#ffffff1f;border:none;padding:6px 14px;font-size:13px;transition:background .12s}.screenshot-fullscreen-btn:hover{background:#fff3}.screenshot-fullscreen-stage{flex:1;justify-content:center;align-items:center;display:flex;overflow:hidden}.screenshot-fullscreen-stage img{object-fit:contain;max-width:95vw;max-height:88vh}.push-form{flex-direction:column;gap:18px;display:flex}.push-section{flex-direction:column;gap:10px;display:flex}.push-section+.push-section{border-top:1px solid var(--border);padding-top:18px}.push-section-head{align-items:center;gap:8px;display:flex}.push-section-title{color:var(--fg);font-size:13px;font-weight:600}.push-device-summary{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:10px 12px}.push-pkg-chip{border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-raised);color:var(--fg);cursor:pointer;padding:8px 14px;font-size:13px;transition:background .12s,border-color .12s,color .12s,opacity .12s}.push-pkg-chip:hover:not(:disabled){background:var(--surface-hover);border-color:var(--border-strong)}.push-pkg-chip.is-active{background:var(--accent-bg);border-color:var(--accent);color:var(--accent);font-weight:500}.push-pkg-chip.is-disabled,.push-pkg-chip:disabled{opacity:.5;cursor:not-allowed}.push-artifact-scroll{border:1px solid var(--border);border-radius:var(--r-md);max-height:320px}.devices-cooling-row,.devices-execution-breakdown-row{justify-content:space-between;width:100%}.devices-cooling-clear-all,.devices-execution-breakdown{margin-top:12px}.devices-risk-card{border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-sunken);padding:10px 12px}.devices-date-range-row{gap:10px}.devices-stat-value{font-size:24px}.devices-dialog{flex-direction:column;gap:12px;display:flex}.devices-qr-panel{text-align:center;align-items:center}.devices-qr-frame{border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);background:#fff;justify-content:center;align-items:center;padding:12px;display:inline-flex}.devices-dialog-actions{justify-content:center}.devices-bind-dialog .big-num{letter-spacing:.14em}.devices-selection-summary{font-size:13px}.devices-actions-row{flex-wrap:wrap;gap:10px}.devices-action-option{cursor:pointer;gap:6px;min-width:90px}.devices-user-list{max-height:260px;overflow-y:auto}.devices-user-card{text-align:left;transition:border-color var(--t-fast), background var(--t-fast), box-shadow var(--t-fast)}.card.active,.devices-user-card.active{border-color:var(--fg);background:var(--surface-hover);box-shadow:var(--shadow-sm)}.devices-user-row{justify-content:space-between;gap:8px}.devices-battery-cell{gap:6px;min-width:86px}.devices-battery-bar-wrap{flex:1;min-width:48px}.devices-battery-value{min-width:28px;font-size:12px}.btn{border-radius:var(--r-md);background:var(--surface);height:28px;color:var(--fg);border:1px solid var(--border);cursor:pointer;transition:background var(--t-fast), border-color var(--t-fast), color var(--t-fast);white-space:nowrap;align-items:center;gap:6px;padding:0 10px;font-size:13px;font-weight:500;display:inline-flex}.btn:hover{background:var(--surface-hover);border-color:var(--border-strong)}.btn:focus-visible{border-color:var(--fg);box-shadow:0 0 0 3px color-mix(in oklch, var(--fg) 15%, transparent);outline:none}.btn.btn-ghost{color:var(--fg-muted);background:0 0;border-color:#0000}.btn.btn-ghost:hover{background:var(--surface-hover);color:var(--fg);border-color:#0000}.btn.btn-primary{background:var(--fg);color:var(--bg-raised);border-color:var(--fg)}.btn.btn-primary:hover{background:oklch(from var(--fg) calc(l + .05) c h)}.theme-dark .btn.btn-primary{background:var(--fg);color:var(--bg);border-color:var(--fg)}.btn.btn-danger{background:var(--bad);color:#fff;border-color:var(--bad)}.btn.btn-sm{height:24px;padding:0 8px;font-size:12px}.btn.btn-lg{height:34px;padding:0 14px;font-size:14px}.btn.btn-icon{justify-content:center;width:28px;padding:0}.btn .icon{width:14px;height:14px}.chip{background:var(--bg-sunken);color:var(--fg-muted);font-size:12px;font-weight:500;font-family:var(--font-mono);white-space:nowrap;border:1px solid #0000;border-radius:4px;align-items:center;gap:4px;padding:2px 7px;display:inline-flex}.chip.ok{background:var(--ok-bg);color:var(--ok)}.chip.warn{background:var(--warn-bg);color:var(--warn)}.chip.bad{background:var(--bad-bg);color:var(--bad)}.chip.info{background:var(--info-bg);color:var(--info)}.chip.violet{background:var(--violet-bg);color:var(--violet)}.chip.solid-fg{background:var(--fg);color:var(--bg-raised)}.chip .d{background:currentColor;border-radius:50%;width:5px;height:5px}.kbd{font-family:var(--font-mono);background:var(--bg-sunken);border:1px solid var(--border);color:var(--fg-subtle);border-radius:3px;padding:1px 5px;font-size:11px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg)}.card-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:12px 14px;display:flex}.card-head h3{letter-spacing:-.005em;margin:0;font-size:14px;font-weight:600}.card-head .sub{color:var(--fg-muted);margin-top:1px;font-size:12px}.card-body{padding:14px}.card-body.pad-none{padding:0}.input{background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--r-md);height:28px;color:var(--fg);min-width:0;padding:0 10px;font-size:13px}.input:focus,.input:focus-visible{border-color:var(--fg);box-shadow:0 0 0 3px color-mix(in oklch, var(--fg) 15%, transparent);outline:none}.input-search{align-items:center;display:inline-flex;position:relative}.input-search:focus-within .icon{color:var(--fg)}.input-search .icon{width:14px;height:14px;color:var(--fg-subtle);pointer-events:none;position:absolute;left:8px}.input-search input{width:240px;padding-left:28px}.tabs{background:var(--bg-sunken);border-radius:var(--r-md);border:1px solid var(--border);flex-shrink:0;align-self:flex-start;gap:2px;padding:3px;display:inline-flex}.tabs .tab{color:var(--fg-muted);cursor:pointer;transition:background var(--t-fast), color var(--t-fast);background:0 0;border:none;border-radius:4px;padding:3px 10px;font-size:13px;font-weight:500}.tabs .tab:hover{color:var(--fg)}.tabs .tab.active{background:var(--surface);color:var(--fg);box-shadow:var(--shadow-sm)}.tabs .tab:focus-visible{color:var(--fg);box-shadow:0 0 0 3px color-mix(in oklch, var(--fg) 12%, transparent);outline:none}.select{align-items:center;font-size:13px;display:inline-flex;position:relative}.select-trigger{background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--r-md);height:28px;color:var(--fg);cursor:pointer;transition:border-color var(--t-fast), background var(--t-fast);align-items:center;gap:6px;min-width:0;padding:0 8px 0 10px;font-family:inherit;font-size:13px;display:inline-flex}.select-trigger:hover{border-color:var(--border-strong)}.select.open .select-trigger{border-color:var(--border-strong);background:var(--bg)}.select-trigger:focus-visible{border-color:var(--fg);box-shadow:0 0 0 3px color-mix(in oklch, var(--fg) 15%, transparent);outline:none}.select .val{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.select .chev{width:12px;height:12px;color:var(--fg-subtle);transition:transform var(--t-fast);margin-left:2px}.select.open .chev{transform:rotate(180deg)}.select .lbl{color:var(--fg-muted);margin-right:2px;font-size:12px}.select-menu{z-index:1000;min-width:100%;max-height:var(--select-menu-max-height,260px);background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-pop);animation:selectMenuIn var(--t-fast) ease-out;overscroll-behavior:contain;flex-direction:column;gap:1px;padding:4px;display:flex;position:absolute;top:calc(100% + 4px);left:0;overflow-y:auto}@keyframes selectMenuIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.select-menu.placement-top{animation:selectMenuInTop var(--t-fast) ease-out;top:auto;bottom:calc(100% + 4px)}@keyframes selectMenuInTop{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.select-option{cursor:pointer;min-height:28px;color:var(--fg);text-align:left;border-radius:calc(var(--r-md) - 2px);white-space:nowrap;transition:background var(--t-fast);background:0 0;border:none;justify-content:space-between;align-items:center;gap:8px;padding:6px 10px;font-family:inherit;font-size:13px;display:flex}.select-option:hover{background:var(--bg-muted)}.select-option.focus,.select-option:focus-visible{background:var(--bg-muted);box-shadow:inset 0 0 0 1px var(--border-strong);outline:none}.adv-count{background:var(--accent);color:#fff;font-variant-numeric:tabular-nums;border-radius:999px;justify-content:center;align-items:center;min-width:16px;height:16px;margin-left:4px;padding:0 5px;font-size:11px;font-weight:600;display:inline-flex}.switch{background:var(--border);cursor:pointer;width:28px;height:16px;transition:background var(--t-med);border-radius:999px;flex-shrink:0;position:relative}.switch:after{content:"";width:12px;height:12px;transition:left var(--t-med);background:#fff;border-radius:50%;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #0003}.switch.on{background:var(--fg)}.switch.on:after{left:14px}.switch.disabled{opacity:.5;cursor:not-allowed}.stat-strip{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);grid-template-columns:repeat(auto-fit,minmax(160px,1fr));display:grid;overflow:hidden}.stat-strip .stat{border-right:1px solid var(--border);cursor:pointer;transition:background var(--t-fast);padding:14px 16px;position:relative}.stat-strip .stat:last-child{border-right:none}.stat-strip .stat:hover{background:var(--surface-hover)}.stat-strip .stat.active{background:var(--bg-sunken)}.stat-strip .stat.active:before{content:"";background:var(--fg);height:2px;position:absolute;top:0;left:0;right:0}.stat .s-label{color:var(--fg-muted);align-items:center;gap:6px;margin-bottom:6px;font-size:12px;font-weight:500;display:flex}.stat .s-label .icon{width:13px;height:13px}.stat .s-value{letter-spacing:-.02em;color:var(--fg);font-size:22px;font-weight:600;line-height:1.1}.stat .s-value.mono{font-family:var(--font-mono)}.stat .s-delta{color:var(--fg-muted);align-items:center;gap:3px;margin-top:4px;font-size:12px;display:inline-flex}.stat .s-delta.up{color:var(--ok)}.stat .s-delta.down{color:var(--bad)}.kpi-section-anim{opacity:1;grid-template-rows:1fr;margin-bottom:0;transition:grid-template-rows .3s,opacity .3s,margin-bottom .3s;display:grid}.kpi-section-anim>.kpi-grid{min-height:0;overflow:hidden}.kpi-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;display:grid}.kpi-tile{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);cursor:pointer;transition:background var(--t-fast), border-color var(--t-fast);padding:14px;position:relative;overflow:hidden}.kpi-tile:hover{background:var(--surface-hover);border-color:var(--border-strong)}.kpi-tile.active{border-color:var(--fg)}.kpi-tile .k-label{color:var(--fg-muted);justify-content:space-between;align-items:center;margin-bottom:8px;font-size:12px;font-weight:500;display:flex}.kpi-tile .k-label .icon{width:14px;height:14px}.kpi-tile .k-value{letter-spacing:-.02em;font-size:26px;font-weight:600;line-height:1.1}.kpi-tile .k-value.mono{font-family:var(--font-mono)}.kpi-tile .k-delta{align-items:center;gap:4px;margin-top:6px;font-size:12px;display:inline-flex}.kpi-tile .k-delta.up{color:var(--ok)}.kpi-tile .k-delta.down{color:var(--bad)}.kpi-tile .k-spark{opacity:.85;width:80px;height:28px;position:absolute;bottom:10px;right:10px}@keyframes valueFlash{0%{background:color-mix(in oklch, var(--info) 10%, transparent)}to{background:0 0}}.value-flash{animation:.6s ease-out valueFlash}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.75)}}.chart-wrap{width:100%;position:relative}.chart-wrap svg{width:100%;height:auto;display:block}.chart-annot{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--r-md);box-shadow:var(--shadow-sm);pointer-events:none;white-space:nowrap;padding:6px 8px;font-size:12px;position:absolute}.chart-annot .k{color:var(--fg-muted);font-size:11px}.chart-annot .v{font-weight:600;font-family:var(--font-mono)}.table-wrap{border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface)}.table-toolbar{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:8px;padding:10px 12px;display:flex}.table-toolbar .spacer{flex:1}.table-toolbar .hits{color:var(--fg-muted);font-size:12px;font-family:var(--font-mono)}.table-scroll table.data th:first-child{z-index:3;background:var(--bg-sunken);position:sticky;left:0}.table-scroll table.data td:first-child{z-index:2;background:var(--surface);position:sticky;left:0}.table-scroll table.data tr:hover td:first-child{background:var(--surface-hover)}.table-scroll table.data tr.selected td:first-child{background:var(--accent-bg)}.table-toolbar .toolbar-meta{align-items:center;gap:8px;display:flex}.table-toolbar .toolbar-filters{display:contents}.table-toolbar .select{flex-shrink:1;min-width:0}.table-toolbar .select .select-trigger{min-width:0}.table-toolbar .select .select-trigger .val{max-width:120px}table.data{border-collapse:separate;border-spacing:0;width:100%;min-width:600px;font-size:13px}table.data thead th{background:var(--bg-sunken);color:var(--fg-muted);text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;padding:8px 12px;font-size:12px;font-weight:500;position:sticky;top:0}table.data tbody td{border-bottom:1px solid var(--border);vertical-align:middle;padding:10px 12px}table.data tbody tr:last-child td{border-bottom:none}table.data tbody tr{transition:background var(--t-fast);cursor:pointer}table.data tbody tr:hover{background:var(--surface-hover)}table.data .num{font-family:var(--font-mono)}table.data .muted{color:var(--fg-muted)}table.data td .btn{box-shadow:0 1px 3px #00000014}@keyframes rowFlash{0%{background:color-mix(in oklch, var(--info) 12%, transparent)}to{background:0 0}}.pagination{border-top:1px solid var(--border);color:var(--fg-muted);align-items:center;gap:8px;padding:10px 12px;font-size:13px;display:flex}.pagination .spacer{flex:1}.scrim{z-index:50;background:#00000059;animation:.15s ease-out fadeIn;position:fixed;inset:0}.theme-dark .scrim{background:#0009}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.sheet{z-index:51;background:var(--bg-raised);border-left:1px solid var(--border);width:min(540px,100vw);box-shadow:var(--shadow-md);will-change:transform;flex-direction:column;animation:.2s cubic-bezier(.2,.8,.2,1) slideIn;display:flex;position:fixed;top:0;bottom:0;right:0}.sheet--mounting{opacity:0;animation:none;transform:translate(20px)}@keyframes slideIn{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}.sheet-head{border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:10px;padding:14px 16px;display:flex}.sheet-title-block{flex:1}.sheet-head h3{margin:0;font-size:15px;font-weight:600}.sheet-head .sub{color:var(--fg-muted);font-size:12px;font-family:var(--font-mono);margin:2px 0 0}.sheet-body{overscroll-behavior:contain;flex:1;padding:16px;overflow-y:auto}.sheet-foot{border-top:1px solid var(--border);flex-shrink:0;justify-content:flex-end;gap:8px;padding:12px 16px;display:flex}.dialog{z-index:51;pointer-events:none;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.dialog-box{background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-md);pointer-events:auto;flex-direction:column;width:100%;max-width:480px;max-height:calc(100dvh - 32px);animation:.15s cubic-bezier(.2,.8,.2,1) dialogIn;display:flex}@keyframes dialogIn{0%{opacity:0;transform:translateY(8px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.dialog-head{flex-shrink:0;padding:16px 16px 8px}.dialog-head h3{text-wrap:balance;margin:0;font-size:16px;font-weight:600}.dialog-head p{color:var(--fg-muted);text-wrap:pretty;word-break:break-word;margin:4px 0 0;font-size:13px}.dialog-body{overscroll-behavior:contain;flex-direction:column;flex:1;min-height:0;padding:8px 16px 16px;display:flex;overflow-y:auto}.dag-body{padding:8px 12px 12px;overflow:hidden}.dialog-foot{border-top:1px solid var(--border);flex-shrink:0;justify-content:flex-end;gap:8px;padding:12px 16px;display:flex}.dialog-box--wide{max-width:min(1060px,100vw - 32px);height:min(680px,100dvh - 32px)}.dag-shell{border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-sunken);flex:1;min-height:0;display:flex;overflow:hidden}.dag-shell .dag-surface{cursor:grab;flex:1;position:relative;overflow:hidden}.dag-shell .dag-surface:active{cursor:grabbing}.dag-canvas-content{transform-origin:0 0;will-change:transform;position:absolute;top:0;left:0}.dag-palette{border-right:1px solid var(--border);background:var(--surface);flex-direction:column;gap:3px;width:140px;min-width:140px;padding:10px 8px;display:flex;overflow-y:auto}.pal-title{color:var(--fg-muted);text-transform:uppercase;letter-spacing:.08em;padding:0 4px 8px;font-size:10px;font-weight:600}.pal-item{border-radius:var(--r-sm);cursor:pointer;color:var(--fg);text-align:left;background:0 0;border:1px solid #0000;align-items:center;gap:7px;width:100%;padding:6px 8px;font-size:12px;display:flex}.dag-inspector{border-left:1px solid var(--border);background:var(--surface);flex-direction:column;gap:0;width:200px;min-width:200px;padding:10px 12px;display:flex;overflow-y:auto}.dag-svg{-webkit-user-select:none;user-select:none}.dag-svg .dag-node.editable{cursor:grab;will-change:transform}.dag-svg .dag-node.failed rect{stroke:var(--bad)!important}.insp-field{flex-direction:column;gap:3px;display:flex}.insp-label{color:var(--fg-muted);text-transform:uppercase;letter-spacing:.04em;font-size:10px;font-weight:500}.insp-input{box-sizing:border-box;width:100%;font-size:11px;font-family:var(--font-mono);background:var(--bg-sunken);border:1px solid var(--border);border-radius:var(--r-sm);color:var(--fg);outline:none;padding:4px 7px;line-height:1.4}.insp-input:focus{border-color:var(--info)}textarea.insp-input{resize:vertical;min-height:54px}.insp-select{box-sizing:border-box;background:var(--bg-sunken);border:1px solid var(--border);border-radius:var(--r-sm);width:100%;color:var(--fg);cursor:pointer;outline:none;padding:4px 7px;font-size:12px}.insp-select:focus{border-color:var(--info)}.dialog-form{flex-direction:column;gap:14px;width:100%;display:flex}.dialog-field{flex-direction:column;gap:6px;width:100%;display:flex}.dialog-label{color:var(--fg-muted);font-size:12px;font-weight:500;line-height:1.4}.dialog-note{color:var(--fg-muted);font-size:12px;line-height:1.5}.dialog-form .input,.dialog-form input[type=date],.dialog-form input[type=number]{width:100%}.dialog-form .select{width:100%;display:flex}.dialog-form .select .select-trigger{justify-content:space-between;width:100%}.users-dialog-note{border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-sunken);padding:10px 12px}.users-sheet .info-row .v .num{word-break:break-all}.users-sheet-hero{border:1px solid var(--border);border-radius:var(--r-lg);background:linear-gradient(180deg, var(--bg-sunken), color-mix(in oklch, var(--bg-sunken) 75%, var(--bg-raised)));box-shadow:var(--shadow-sm);padding:12px 14px}.users-sheet-hero .meta{color:var(--fg-muted);text-wrap:pretty;word-break:break-word;min-width:0;font-size:12px}.cmdk{z-index:100;background:#00000059;place-items:flex-start center;padding-top:12vh;animation:.12s ease-out fadeIn;display:grid;position:fixed;inset:0}.cmdk-box{background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--r-lg);width:min(640px,94vw);box-shadow:var(--shadow-md);animation:.15s cubic-bezier(.2,.8,.2,1) dialogIn;overflow:hidden}.cmdk-input{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:14px 16px;display:flex}.cmdk-input input{color:var(--fg);background:0 0;border:none;outline:none;flex:1;font-size:15px}.cmdk-list{max-height:420px;padding:6px;overflow-y:auto}.cmdk-group{padding:4px 0}.cmdk-group-title{text-transform:uppercase;letter-spacing:.06em;color:var(--fg-subtle);padding:6px 10px;font-size:11px}.cmdk-item{border-radius:var(--r-md);cursor:pointer;transition:background var(--t-fast);align-items:center;gap:10px;padding:8px 10px;font-size:14px;display:flex}.cmdk-item:hover,.cmdk-item.active{background:var(--surface-hover)}.cmdk-item .icon{width:14px;height:14px;color:var(--fg-muted)}.cmdk-item .label{flex:1}.cmdk-item .hint{color:var(--fg-subtle);font-size:12px;font-family:var(--font-mono)}.toasts{top:calc(var(--header-h) + 10px);z-index:200;pointer-events:none;flex-direction:column;align-items:center;gap:8px;display:flex;position:fixed;left:50%;transform:translate(-50%)}.toast{background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-pop);pointer-events:auto;align-items:center;gap:8px;min-width:220px;max-width:420px;padding:10px 16px;font-size:13px;animation:.2s cubic-bezier(.2,.8,.2,1) toastIn;display:flex}.toast.ok{border-color:color-mix(in oklch, var(--ok) 40%, var(--border))}.toast.ok .icon{color:var(--ok)}.toast.bad{border-color:color-mix(in oklch, var(--bad) 40%, var(--border))}.toast.bad .icon{color:var(--bad)}.toast.info{border-color:color-mix(in oklch, var(--info) 30%, var(--border))}.toast.info .icon{color:var(--info)}@keyframes toastIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.empty{text-align:center;color:var(--fg-muted);padding:40px 20px}.empty .title{color:var(--fg);margin-bottom:4px;font-size:14px;font-weight:500}.empty .sub{margin-bottom:14px;font-size:13px}.empty .icon-wrap{border-radius:var(--r-lg);background:var(--bg-sunken);border:1px solid var(--border);width:40px;height:40px;color:var(--fg-subtle);place-items:center;margin:0 auto 10px;display:grid}.skeleton{background:linear-gradient(90deg, var(--bg-sunken) 0%, var(--surface-hover) 50%, var(--bg-sunken) 100%);border-radius:var(--r-sm);background-size:200% 100%;animation:1.4s infinite shimmer}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.view-toggle{z-index:40;background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-md);gap:2px;padding:4px;font-size:12px;display:flex;position:fixed;bottom:18px;left:18px}.view-toggle button{color:var(--fg-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:4px 10px;font-weight:500}.view-toggle button:hover{color:var(--fg)}.view-toggle button.on{background:var(--fg);color:var(--bg-raised)}.grid-3{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.grid-4{grid-template-columns:repeat(4,1fr);gap:12px;display:grid}.col-span-2{grid-column:span 2}@media (width<=1100px){.grid-4{grid-template-columns:repeat(2,1fr)}}@media (width<=900px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}.col-span-2{grid-column:auto}}.muted{color:var(--fg-muted)}.big-num{letter-spacing:-.02em;font-size:28px;font-weight:600;font-family:var(--font-mono);font-variant-numeric:tabular-nums;line-height:1.1}.backdrop{z-index:55;background:#00000080;position:fixed;inset:0}.reasons{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;display:grid}.reason-card{background:var(--bg-sunken);border:1px solid var(--border);border-radius:var(--r-md);transition:border-color var(--t-fast), background var(--t-fast);padding:14px}.reason-card:hover{border-color:var(--border-strong);background:var(--surface)}.dag-surface{background:var(--bg-sunken);border:1px solid var(--border);border-radius:var(--r-md);background-image:radial-gradient(circle, var(--grid-line) 1px, transparent 1px);background-size:16px 16px;padding:10px;overflow-x:auto}.dag-svg{width:100%;min-width:900px;height:280px;display:block}.dag-svg .dag-node rect{fill:var(--surface);stroke:var(--border);stroke-width:1px;transition:stroke var(--t-fast)}.dag-svg .dag-node.done rect{stroke:var(--ok)}.dag-svg .dag-node.running rect{stroke:var(--info);stroke-width:1.5px}.dag-svg .dag-node.pending rect{stroke-dasharray:3 3}.dag-svg .ntitle{fill:var(--fg);font-size:13px;font-weight:500;font-family:var(--font-ui)}.dag-svg .nmeta{fill:var(--fg-muted);font-size:11px;font-family:var(--font-mono)}.dag-svg .ndot{r:4}.dag-svg .ndot-done{fill:var(--ok)}.dag-svg .ndot-running{fill:var(--info)}.dag-svg .ndot-pending{fill:var(--fg-subtle)}@keyframes dashflow{to{stroke-dashoffset:-16px}}.dag-svg .edge-flow{animation:1s linear infinite dashflow}.stream .evt .ns-tasks{color:var(--info)}.stream .evt .ns-devices{color:var(--violet)}.stream .evt .ns-accounts{color:var(--warn)}.stream .evt .ns-dashboard{color:var(--ok)}.stream .evt.fresh{animation:.7s ease-out rowFlash}.header .live-pill.paused .ldot{background:var(--fg-subtle);animation:none}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.row-tight{align-items:center;gap:4px;display:flex}.date-preset{border-radius:var(--r-sm);height:28px;padding:0 10px}.chip-inline{align-items:center;gap:4px;display:inline-flex}.chip-clear{cursor:pointer;color:inherit;background:0 0;border:0;align-items:center;padding:0;line-height:1;display:inline-flex}.sortable-head{cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}.sort-indicator{color:var(--fg-subtle);opacity:.4;margin-left:3px;font-size:10px}.sort-indicator.active{color:var(--accent);opacity:1}.w-120{width:120px}.empty-cell{text-align:center;color:var(--fg-muted);padding:48px}.row-actions{flex-wrap:nowrap;gap:4px}.row-center{align-items:center;gap:12px}.row-gap-sm{gap:6px}.row-wrap-sm{flex-wrap:wrap;gap:6px}.table-page-num{font-family:var(--font-mono);font-size:12px}.text-12{font-size:12px}.text-13{font-size:13px}.filter-id-input{width:140px;height:28px}.w-70{width:70px}.w-80{width:80px}.w-200{width:200px}.kpi-row{grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:4px;display:grid}.kpi{border:1px solid var(--border);background:var(--bg-card);border-radius:10px;flex-direction:column;gap:4px;padding:12px 16px;display:flex}.kpi-lbl{color:var(--fg-muted);font-size:12px}.kpi-val{font-size:22px;font-weight:600;font-family:var(--font-mono)}.kpi-val.ok{color:var(--ok)}.row-gap-md{gap:8px}.row-wrap-actions{flex-wrap:wrap;gap:4px}.text-ok{color:var(--c-ok)}.text-bad{color:var(--c-bad)}.error-panel{color:var(--danger,#c0392b);padding:16px}.w-60{width:60px}.w-280{width:280px}.up-kpi-row{grid-template-columns:repeat(4,1fr);gap:10px;display:grid}.up-kpi{background:var(--bg-card);border:1px solid var(--border);cursor:pointer;text-align:left;border-radius:10px;flex-direction:column;align-items:flex-start;gap:4px;padding:12px 14px;transition:border-color .15s,background .15s;display:flex}.up-kpi:hover:not(:disabled){border-color:var(--accent)}.up-kpi--active{border-color:var(--accent);background:var(--bg-soft)}.up-kpi--static{cursor:default}.up-kpi__lbl{color:var(--fg-muted);font-size:12px}.up-kpi__val{font-size:22px;font-weight:600;font-family:var(--font-mono)}.up-kpi__val--ok{color:var(--c-ok)}.up-kpi__val--warn{color:var(--c-warn)}.up-kpi__val--bad{color:var(--c-bad)}.up-kpi__val--info{color:var(--c-info)}@media (width<=768px){.up-kpi-row{grid-template-columns:repeat(2,1fr)}}.up-table-wrap{max-height:min(520px,60vh);overflow:auto}.up-table-wrap .data{border-collapse:collapse;width:100%;min-width:1100px}.up-table-wrap .data th,.up-table-wrap .data td{border-bottom:1px solid var(--border);vertical-align:middle;padding:8px 10px;font-size:13px}.up-table-wrap .data th{color:var(--fg-muted);text-align:left;background:var(--bg-soft);font-weight:500}.up-table-wrap .data .r{text-align:right}.up-table-wrap .data .num{font-family:var(--font-mono)}.up-table-wrap .data .small{font-size:12px}.up-table-wrap .data .name{text-overflow:ellipsis;white-space:nowrap;max-width:160px;overflow:hidden}.up-table-wrap .data .sn{font-family:var(--font-mono);background:var(--bg-soft);border-radius:4px;padding:1px 6px;font-size:12px}.up-table-wrap .data .muted{color:var(--fg-muted)}.field .hint{color:var(--fg-muted);font-size:11px}.field .err{color:var(--c-bad);font-size:12px}.grid-2{grid-template-columns:1fr 1fr;gap:10px;display:grid}.up-textarea{border:1px solid var(--border);background:var(--bg-card);width:100%;color:var(--fg);font-family:var(--font-mono);resize:vertical;border-radius:6px;padding:8px 10px;font-size:12px}.up-textarea:focus{border-color:var(--accent);outline:none}.up-log-list{flex-direction:column;gap:10px;display:flex}.up-log-card{border:1px solid var(--border);background:var(--bg-card);border-radius:8px;flex-direction:column;gap:6px;padding:10px;display:flex}.up-log-head{align-items:center;gap:6px;display:flex}.up-log-stats{grid-template-columns:repeat(3,1fr);gap:8px;font-size:12px;display:grid}.up-log-stats>div{flex-direction:column;align-items:center;gap:2px;display:flex}.up-log-stats span{color:var(--fg-muted)}.up-log-stats b{font-family:var(--font-mono);font-weight:600}.up-log-time{font-family:var(--font-mono);color:var(--fg-muted);font-size:11px}.up-log-err{background:var(--bg-soft);color:var(--c-bad);word-break:break-all;border-radius:4px;padding:6px 8px;font-size:12px}.up-goods-bar{padding:6px 0}.up-goods-stats{flex-wrap:wrap;align-items:center;gap:8px;font-size:13px;display:flex}.up-goods-stats b{font-family:var(--font-mono)}.up-goods-filter{grid-template-columns:1fr 120px;gap:8px;padding:8px 0 12px;display:grid}.up-goods-list{flex-direction:column;gap:6px;display:flex}.up-goods-row{border:1px solid var(--border);background:var(--bg-card);border-radius:6px;flex-direction:column;gap:6px;padding:8px 10px;display:flex}.up-goods-row--off{opacity:.6}.up-goods-row__main{align-items:center;gap:8px;font-size:13px;display:flex}.up-goods-row__main .sn{font-family:var(--font-mono);background:var(--bg-soft);border-radius:4px;padding:1px 5px;font-size:11px}.up-goods-row__main .name{color:var(--fg);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.up-goods-row__meta{flex-wrap:wrap;align-items:center;gap:6px;font-size:12px;display:flex}.up-goods-row__meta .cost{font-family:var(--font-mono);color:var(--fg-muted)}.up-goods-row__meta .muted{color:var(--fg-muted)}.up-switch{border:1px solid var(--border);background:var(--bg-soft);border-radius:6px;flex-direction:row;align-items:flex-start;gap:10px;padding:10px}.up-switch input{margin-top:4px}.up-switch span{flex-direction:column;flex:1;gap:2px;display:flex}.up-switch small{color:var(--fg-muted);font-size:11px}.row-center-md{align-items:center;gap:8px}.row-filter-actions{align-items:center;gap:8px;margin-bottom:8px}.inline-check{cursor:pointer;align-items:center;gap:4px;font-size:12px;display:inline-flex}.bordered-scroll-360{border:1px solid var(--border);border-radius:var(--r-md);max-height:360px;overflow:auto}.scroll-max-320{max-height:320px;overflow:auto}.rollout-target-list{flex-direction:column;gap:2px;display:flex}.rollout-target-row{border-bottom:1px solid var(--border);flex-direction:column;gap:2px;padding:8px 12px;display:flex}.rollout-target-row:last-child{border-bottom:none}.rollout-target-row:hover{background:var(--surface-hover)}.rollout-target-line{align-items:center;gap:10px;display:flex}.rollout-target-check{flex:0 0 20px;justify-content:center;align-items:center;display:inline-flex}.rollout-target-sn{min-width:160px;font-family:var(--font-mono);letter-spacing:.02em;flex:none}.rollout-target-meta{padding-left:30px}.sheet--wide{width:min(90vw,1100px)}.rollout-detail-body{flex-direction:column;gap:10px;height:100%;display:flex}.rollout-info-grid{border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-raised);grid-template-columns:1fr 1fr;gap:6px 16px;padding:10px 12px;font-size:13px;display:grid}.rollout-info-grid>div{align-items:center;gap:6px;min-height:22px;display:flex}.rollout-info-grid .label{color:var(--fg-muted);flex:none;min-width:54px;font-size:12px}.rollout-target-table-wrap{border:1px solid var(--border);border-radius:var(--r-md);flex:1;min-height:240px;overflow:auto}.rollout-kpi-bar{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.rollout-kpi-chip{border-radius:var(--r-md);border:1px solid var(--border);cursor:pointer;-webkit-user-select:none;user-select:none;background:var(--bg-raised);align-items:center;gap:4px;padding:5px 12px;font-size:12px;font-weight:500;transition:background .12s,border-color .12s,color .12s;display:inline-flex}.rollout-kpi-chip:hover{background:var(--surface-hover);border-color:var(--border-strong)}.rollout-kpi-chip.is-active{background:var(--accent-bg);border-color:var(--accent);color:var(--accent);font-weight:600}.rollout-kpi-chip .num{font-variant-numeric:tabular-nums;font-weight:600}.rollout-detail-body .table-toolbar{background:0 0;border:none;padding:0}.rollout-detail-body .pagination{border-top:1px solid var(--border);padding:4px 0}.rollout-detail-body .batch-bar{margin:0}.rollout-target-progress{flex-direction:column;gap:3px;padding-left:30px;display:flex}.rollout-progress-track{background:var(--border);border-radius:2px;height:4px;overflow:hidden}.rollout-progress-fill{background:var(--accent);transform-origin:0;border-radius:2px;width:100%;height:100%;transition:transform .3s ease-out}.rollout-target-row--expanded{background:var(--bad-bg);padding-bottom:10px}.rollout-target-failure{color:var(--bad);background:var(--bg-raised);border-radius:var(--r-sm);font-size:12px;font-family:var(--font-mono);word-break:break-all;white-space:pre-wrap;margin-top:4px;padding:6px 8px}.full-width{width:100%}.w-40{width:40px}.clickable-row{cursor:pointer;opacity:1}.disabled-row{cursor:not-allowed;opacity:.45}.text-accent{color:var(--accent)}.text-11{font-size:11px}.no-margin{margin:0}.mt-6{margin-top:6px}.fw-500{font-weight:500}.nowrap{white-space:nowrap}.flex-1{flex:1}.flex-min-0{flex:1;min-width:0}.mt-4{margin-top:4px}.mt-8{margin-top:8px}.tabs-margin{margin-bottom:12px}.info-row-value{flex:1;align-items:flex-start;gap:6px;min-width:0;display:flex}.copy-icon{cursor:pointer;color:var(--fg-subtle);background:0 0;border:0;flex-shrink:0;padding:2px 0 0;display:flex}.copy-icon.ok{color:var(--ok)}.mono-break{font-family:var(--font-mono);word-break:break-all;font-size:11px;display:inline-block}.inspector-stack{flex-direction:column;gap:6px;font-size:12px;display:flex}.inspector-edit-stack{flex-direction:column;gap:8px;display:flex}.inspector-actions{gap:4px;display:flex}.stack-lg{flex-direction:column;gap:16px;display:flex}.section-skeleton{padding:16px}.help-text{margin-top:12px;font-size:12px}.w-90{width:90px}.w-100{width:100px}.w-110{width:110px}.w-130{width:130px}.w-140{width:140px}.form-grid{flex-direction:column;gap:14px;padding:4px 0;display:flex}.field{flex-direction:column;gap:6px;display:flex}.field .lbl{color:var(--fg-muted);font-size:12px}.rl-table-wrap{max-height:min(520px,60vh);overflow:auto}.rl-table-wrap .data{border-collapse:collapse;width:100%}.rl-table-wrap .data th,.rl-table-wrap .data td{border-bottom:1px solid var(--border);vertical-align:middle;padding:8px 12px;font-size:13px}.rl-table-wrap .data th{color:var(--fg-muted);text-align:left;background:var(--bg-soft);font-weight:500}.rl-table-wrap .data .r{text-align:right}.rl-table-wrap .data .num{font-family:var(--font-mono)}.stack{flex-direction:column;gap:12px;display:flex}.stack-sm{flex-direction:column;gap:6px;display:flex}.dot-lg{background:var(--fg-muted);vertical-align:middle;border-radius:50%;width:8px;height:8px;margin-right:6px;display:inline-block}.dot-lg.ok{background:var(--ok)}.dot-lg.warn{background:var(--warn)}.dot-lg.bad{background:var(--bad)}.dot-lg.info{background:var(--info)}.dot-lg.pulse{position:relative}.dot-lg.pulse:after{content:"";opacity:.4;border:2px solid;border-radius:50%;animation:1.8s infinite ping;position:absolute;inset:-3px}@keyframes ping{0%{opacity:.5;transform:scale(.8)}to{opacity:0;transform:scale(1.8)}}.info-row{border-bottom:1px dashed var(--border);grid-template-columns:120px 1fr;gap:10px;padding:8px 0;font-size:13px;display:grid}.info-row:last-child{border-bottom:none}.info-row .k{color:var(--fg-muted)}.info-row .v{color:var(--fg);font-family:var(--font-mono);word-break:break-all}.stream{font-family:var(--font-mono);background:var(--bg-sunken);border:1px solid var(--border);border-radius:var(--r-md);max-height:280px;font-size:12px;overflow-y:auto}.stream .evt{border-bottom:1px solid var(--border);grid-template-columns:90px 110px 1fr;gap:10px;padding:6px 10px;display:grid}.stream .evt:last-child{border-bottom:none}.stream .evt .t{color:var(--fg-subtle)}.stream .evt .ns{color:var(--info)}.stream .evt .msg{color:var(--fg)}.stream .evt.new{animation:.7s ease-out rowFlash}.dag-canvas{background:var(--bg-sunken);border:1px solid var(--border);border-radius:var(--r-lg);background-image:radial-gradient(circle, var(--grid-line) 1px, transparent 1px);background-size:16px 16px;min-height:340px;padding:20px;position:relative;overflow:auto}.dag-node{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);min-width:130px;box-shadow:var(--shadow-sm);cursor:grab;transition:border-color var(--t-fast), box-shadow var(--t-fast);padding:8px 10px;position:absolute}.dag-node:hover{border-color:var(--border-strong);box-shadow:var(--shadow-md)}.dag-node.running{border-color:var(--info);box-shadow:0 0 0 3px var(--info-bg)}.dag-node.done{border-color:var(--ok)}.dag-node.failed{border-color:var(--bad)}.dag-node .n-title{font-size:13px;font-weight:500}.dag-node .n-meta{color:var(--fg-muted);font-size:11px;font-family:var(--font-mono);margin-top:2px}.dag-node .n-dot{background:var(--ok);border:2px solid var(--surface);border-radius:50%;width:10px;height:10px;position:absolute;top:-4px;right:-4px}.dag-node.running .n-dot{background:var(--info);animation:1.4s infinite pulse}.dag-node.failed .n-dot{background:var(--bad)}.dag-node.pending .n-dot{background:var(--fg-subtle)}.progress{background:var(--bg-sunken);border-radius:999px;height:4px;overflow:hidden}.progress .bar{background:var(--fg);transform-origin:0;border-radius:999px;width:100%;height:100%;transition:transform .4s cubic-bezier(.2,.8,.2,1)}.progress .bar.ok{background:var(--ok)}.progress .bar.warn{background:var(--warn)}.progress .bar.bad{background:var(--bad)}.vp{border-radius:var(--r-lg);aspect-ratio:9/19.5;background:#000;max-width:260px;position:relative;overflow:hidden;box-shadow:0 0 0 6px oklch(25% 0 0),0 20px 40px #00000040}.vp .screen{color:#fff;background:linear-gradient(oklch(30% .02 260) 0%,oklch(20% .02 260) 100%);flex-direction:column;padding:20px 16px 16px;display:flex;position:absolute;inset:0}.vp .status-row{opacity:.9;font-size:11px;font-family:var(--font-mono);justify-content:space-between;display:flex}.vp .fake-ui{flex-direction:column;gap:8px;margin-top:16px;display:flex}.vp .fake-ui .bar{background:#ffffff1f;border-radius:4px;height:10px}.vp .fake-ui .bar.w2{width:70%}.vp .fake-ui .bar.w3{width:50%}.vp .reticle{border:2px solid var(--info);pointer-events:none;border-radius:50%;width:40px;height:40px;animation:2s infinite ping;position:absolute;top:40%;left:40%}@media (width<=640px){.input-search input{width:140px}.page-head h1{font-size:17px}}.rc-layout{grid-template-columns:minmax(280px,360px) 1fr;gap:16px;display:grid}@media (width<=1000px){.rc-layout{grid-template-columns:1fr}}.rc-phone-card{background:var(--bg-sunken)}.rc-phone-wrap{flex-direction:column;align-items:center;gap:14px;padding:20px;display:flex}.rc-phone{aspect-ratio:9/19.5;background:oklch(16% 0 0);border-radius:32px;width:260px;padding:10px;position:relative;box-shadow:0 0 0 2px oklch(30% 0 0),0 24px 48px #0000004d}.rc-notch{z-index:2;background:#000;border-radius:999px;width:90px;height:22px;position:absolute;top:10px;left:50%;transform:translate(-50%)}.rc-home-indicator{background:#fff6;border-radius:2px;width:90px;height:4px;position:absolute;bottom:6px;left:50%;transform:translate(-50%)}.rc-screen{color:oklch(20% 0 0);background:oklch(95% .005 250);border-radius:22px;flex-direction:column;width:100%;height:100%;font-size:12px;display:flex;position:relative;inset:0;overflow:hidden}.rc-status{font-family:var(--font-mono);z-index:3;justify-content:space-between;align-items:center;padding:6px 18px 4px;font-size:11px;font-weight:600;display:flex}.rc-scene{flex:1;padding:6px 10px 30px;overflow-y:auto}.rc-scene.wechat{background:oklch(96% .005 250)}.rc-scene.home{color:#fff;background:linear-gradient(135deg,oklch(35% .1 260),oklch(25% .1 290));flex-direction:column;padding:20px;display:flex}.rc-scene .rc-topbar{color:oklch(25% 0 0);justify-content:space-between;align-items:center;padding:6px 4px;font-size:13px;font-weight:600;display:flex}.rc-scene .rc-cover{background:linear-gradient(120deg,oklch(60% .12 240),oklch(40% .12 300));border-radius:4px;height:60px;margin:4px 0 10px}.rc-scene .rc-post{grid-template-columns:28px 1fr;gap:6px;padding:8px 4px;font-size:11px;display:grid}.rc-post .ava{background:oklch(70% .08 180);border-radius:6px;width:28px;height:28px}.rc-post .ava.alt{background:oklch(70% .08 60)}.rc-post .body .name{color:oklch(35% .15 260);margin-bottom:2px;font-size:11px;font-weight:600}.rc-post .body .txt{line-height:1.35}.rc-post .body .imgs{grid-template-columns:repeat(3,1fr);gap:2px;margin-top:4px;display:grid}.rc-post .body .imgs span{aspect-ratio:1;background:oklch(85% .03 250);border-radius:2px}.rc-post .body .meta{color:oklch(55% 0 0);margin-top:4px;font-size:10px}.rc-chatrow{border-bottom:1px solid oklch(88% 0 0);grid-template-columns:32px 1fr auto;align-items:center;gap:8px;padding:8px 4px;font-size:11px;display:grid}.rc-chatrow .ava{background:oklch(70% .08 180);border-radius:6px;width:32px;height:32px}.rc-chatrow .ava.alt{background:oklch(70% .08 60)}.rc-chatrow .name{margin-bottom:2px;font-size:12px;font-weight:600}.rc-chatrow .txt{color:oklch(55% 0 0)}.rc-chatrow .time{color:oklch(55% 0 0);font-size:10px}.rc-listrow{border-bottom:1px solid oklch(90% 0 0);align-items:center;gap:10px;padding:10px 6px;font-size:13px;display:flex}.rc-listrow .ico{background:oklch(85% .05 180);border-radius:4px;width:18px;height:18px}.rc-clock{text-align:center;margin:8px 0 18px;font-size:28px;font-weight:300}.rc-grid{grid-template-columns:repeat(4,1fr);gap:10px;display:grid}.app-icon{aspect-ratio:1;border-radius:10px}.rc-reticle{border:2px solid var(--info);pointer-events:none;z-index:3;border-radius:50%;width:40px;height:40px;animation:2s infinite ping;position:absolute;top:40%;left:40%}.rc-rec{z-index:3;font-family:var(--font-mono);color:var(--bad);background:#000000b3;border-radius:4px;padding:2px 6px;font-size:10px;animation:1.4s infinite pulse;position:absolute;top:36px;left:16px}.rc-scenebar{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);gap:4px;padding:3px;display:flex}.rc-scene-btn{color:var(--fg-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:4px 10px;font-size:12px}.rc-scene-btn:hover{color:var(--fg)}.rc-scene-btn.active{background:var(--fg);color:var(--bg-raised)}.rc-actions{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.rc-actions .btn{justify-content:flex-start}.rc-adb{gap:6px;margin-top:10px;display:flex}.rc-adb .input-search{flex:1}.rc-adb .input-search input{width:100%;font-family:var(--font-mono);font-size:12px}.wizard-steps{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);align-items:center;gap:4px;margin-bottom:14px;padding:14px;display:flex;overflow-x:auto}.wstep{border-radius:var(--r-md);flex-shrink:0;align-items:center;gap:10px;padding:6px 10px;display:flex}.wstep .num{background:var(--bg-sunken);width:22px;height:22px;color:var(--fg-muted);border:1px solid var(--border);border-radius:50%;place-items:center;font-size:12px;font-weight:600;display:grid}.wstep .title{font-size:13px;font-weight:500}.wstep .sub{color:var(--fg-muted);font-size:12px}.wstep.cur .num{background:var(--fg);color:var(--bg-raised);border-color:var(--fg)}.wstep.cur .title{color:var(--fg)}.wstep.done .num{background:var(--ok-bg);color:var(--ok);border-color:var(--ok)}.wline{background:var(--border);flex:1;min-width:20px;height:1px}.wline.done{background:var(--ok)}@media (width<=700px){.wstep .sub{display:none}}.wizard-body{margin-bottom:14px}.wizard-foot{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);align-items:center;gap:8px;padding:10px 14px;display:flex}.wizard-foot .spacer{flex:1}.wiz-device-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:8px;display:grid}.wiz-dev{background:var(--bg-sunken);border:1px solid var(--border);border-radius:var(--r-md);cursor:pointer;transition:border-color var(--t-fast), background var(--t-fast);padding:10px 12px;display:block;position:relative}.wiz-dev:hover{border-color:var(--border-strong)}.wiz-dev.on{border-color:var(--fg);background:var(--surface)}.wiz-dev input{position:absolute;top:10px;right:10px}.wiz-dev .sn{font-family:var(--font-mono);font-size:13px;font-weight:600}.wiz-dev .meta{color:var(--fg-muted);margin-top:2px;font-size:12px}.wiz-toggle{cursor:pointer;border-bottom:1px dashed var(--border);grid-template-columns:18px 1fr;gap:12px;padding:10px 4px;display:grid}.wiz-toggle:last-child{border-bottom:none}.wiz-toggle .l{font-size:14px;font-weight:500}.wiz-toggle .s{color:var(--fg-muted);margin-top:2px;font-size:12px}.wiz-progress-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:12px 14px;display:flex}.wiz-progress-list{max-height:420px;overflow-y:auto}.wiz-progress-row{border-bottom:1px solid var(--border);grid-template-columns:120px 1fr 50px auto;align-items:center;gap:12px;padding:10px 14px;font-size:13px;display:grid}.wiz-progress-row:last-child{border-bottom:none}.wiz-progress-row .sn{font-family:var(--font-mono);font-size:12px}.dag-shell{gap:10px;display:flex}.dag-shell.editing{align-items:stretch}.dag-palette,.dag-inspector{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);flex-shrink:0;width:180px;padding:10px}.pal-title{text-transform:uppercase;letter-spacing:.06em;color:var(--fg-subtle);padding:4px 4px 8px;font-size:11px}.pal-item{background:var(--bg-sunken);border:1px solid var(--border);border-radius:var(--r-md);cursor:pointer;width:100%;color:var(--fg);text-align:left;transition:background var(--t-fast);align-items:center;gap:8px;margin-bottom:4px;padding:6px 8px;font-size:13px;display:flex}.pal-item:hover{background:var(--surface-hover);border-color:var(--border-strong)}.pal-item .ic{color:var(--fg-muted)}.pal-item.tone-info .ic{color:var(--info)}.pal-item.tone-ok .ic{color:var(--ok)}.pal-item.tone-warn .ic{color:var(--warn)}.pal-item.tone-violet .ic{color:var(--violet)}.pal-item .l{flex:1}.pal-item .add{color:var(--fg-subtle)}.dag-svg .dag-node.editable{cursor:grab}.dag-svg .dag-node.editable:active{cursor:grabbing}.dag-svg .dag-node.sel rect{stroke:var(--fg);stroke-width:2px}@media (width<=900px){.dag-shell{flex-direction:column}.dag-palette,.dag-inspector{width:100%}.dag-svg{min-width:unset;height:240px}}@media (width<=700px){.header{gap:6px;padding:0 12px}.header .live-pill{display:none}.page-head .title-block h1{font-size:18px}.input-search input{width:100%;min-width:0}.table-toolbar .select,.table-toolbar .lbl{font-size:13px}.wiz-progress-row{grid-template-columns:90px 1fr auto}.wiz-progress-row .sn{font-size:11px}.rc-actions,.stat-strip{grid-template-columns:repeat(2,1fr)}.stat-strip .stat{border-right:1px solid var(--border);border-bottom:1px solid var(--border)}}.settings-layout{grid-template-columns:200px 1fr;align-items:start;gap:20px;display:grid}.settings-rail{top:calc(var(--header-h) + 12px);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);flex-direction:column;gap:2px;padding:8px;display:flex;position:sticky}.set-tab{border-radius:var(--r-md);color:var(--fg-muted);cursor:pointer;text-align:left;transition:background var(--t-fast), color var(--t-fast);background:0 0;border:none;align-items:center;gap:10px;width:100%;padding:7px 10px;font-size:13px;display:flex}.set-tab:hover{background:var(--surface-hover);color:var(--fg)}.set-tab.active{background:var(--bg-sunken);color:var(--fg);font-weight:500}.set-tab .icon{width:14px;height:14px;color:var(--fg-muted);flex-shrink:0}.set-tab.active .icon{color:var(--fg)}.settings-panel .stack>*+*{margin-top:14px}.settings-panel .stack{display:block}.setlist{flex-direction:column;display:flex}.setrow{border-bottom:1px solid var(--border);grid-template-columns:1fr auto;align-items:center;gap:18px;padding:14px 4px;display:grid}.setrow:last-child{border-bottom:none}.setrow:first-child{padding-top:4px}.setrow-title{color:var(--fg);font-size:14px;font-weight:500}.setrow-desc{color:var(--fg-muted);margin-top:3px;font-size:12px;line-height:1.45}.setrow-ctrl{justify-content:flex-end;align-items:center;gap:8px;display:flex}.setinput-mono{font-family:var(--font-mono);width:320px;max-width:100%;font-size:12px}.setinput-textarea{font-family:var(--font-mono);resize:vertical;width:280px;height:auto;padding:6px 10px;font-size:12px;line-height:1.5}.danger-card{border-color:color-mix(in oklch, var(--bad) 25%, var(--border))}.danger-card .card-head{background:color-mix(in oklch, var(--bad) 6%, transparent)}.audit-list{flex-direction:column;display:flex}.audit-row{border-bottom:1px solid var(--border);grid-template-columns:90px 120px 1fr 120px;align-items:center;gap:12px;padding:8px 4px;font-size:13px;display:grid}.audit-row:last-child{border-bottom:none}.audit-row .t{color:var(--fg-muted);font-family:var(--font-mono);font-size:12px}.audit-row .who{font-weight:500}.audit-row .act{color:var(--fg)}.audit-row .ip{color:var(--fg-subtle);font-family:var(--font-mono);text-align:right;font-size:12px}.setrow-ctrl input[type=range]{accent-color:var(--fg);height:4px}body.reduce-motion *,body.reduce-motion :before,body.reduce-motion :after{transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}body.density-compact{font-size:13px}body.density-compact table.data tbody td{padding:7px 10px}body.density-compact table.data thead th{padding:6px 10px}body.density-compact .nav-item{padding:4px 10px}body.density-compact .page{padding:14px 18px 44px}body.density-compact .page-head{margin-bottom:12px}body.density-comfortable{font-size:15px}body.density-comfortable table.data tbody td{padding:12px 14px}body.density-comfortable table.data thead th{padding:10px 14px}body.density-comfortable .nav-item{padding:8px 12px}body.density-comfortable .page{padding:28px 32px 60px}body.density-comfortable .page-head{margin-bottom:20px}.seg-ctrl{border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-sunken);display:inline-flex;overflow:hidden}.seg-opt{font-size:13px;font-family:var(--font-ui);color:var(--fg-muted);cursor:pointer;transition:background var(--t-fast), color var(--t-fast);white-space:nowrap;background:0 0;border:none;padding:5px 14px}.seg-opt:hover{color:var(--fg);background:var(--surface-hover)}.seg-opt--active{color:var(--fg);background:var(--bg-raised);box-shadow:var(--shadow-sm)}.settings-section{flex-direction:column;gap:20px;display:flex}.settings-group-title{color:var(--fg-muted);letter-spacing:.04em;text-transform:uppercase;font-size:12px;font-weight:600}.settings-card{border:1px solid var(--border);border-radius:var(--r-lg);background:var(--bg-raised);overflow:hidden}.setting-row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:16px;padding:14px 16px;display:flex}.setting-row:last-child{border-bottom:none}.setting-row-label{flex-direction:column;gap:2px;display:flex}.setting-row-label span:first-child{color:var(--fg);font-size:14px}.setting-row-ctrl{flex-shrink:0}.setting-row--block{flex-direction:column;align-items:flex-start;gap:12px}.font-picker{grid-template-columns:repeat(2,1fr);gap:8px;width:100%;display:grid}.font-card{border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-sunken);cursor:pointer;text-align:left;transition:border-color var(--t-fast), background var(--t-fast);flex-direction:column;gap:8px;padding:12px 14px;display:flex}.font-card:hover{border-color:var(--border-strong);background:var(--surface-hover)}.font-card--active{border-color:var(--accent);background:var(--accent-bg)}.font-card-preview{color:var(--fg);white-space:nowrap;text-overflow:ellipsis;font-size:14px;line-height:1.6;overflow:hidden}.font-card-meta{flex-direction:column;gap:2px;display:flex}.font-card-name{color:var(--fg);font-size:12px;font-weight:600}.font-card-hint{color:var(--fg-subtle);font-size:11px}@media (width<=900px){.main{grid-column:1}.header{gap:4px;padding:0 10px}.header .crumbs span:first-child,.header .crumbs .sep:first-of-type,.live-pill,.header .right .btn:nth-last-child(2){display:none}.sidebar.mobile-open,.app.variant-b .sidebar.mobile-open,.app.sidebar-collapsed .sidebar.mobile-open{width:260px;max-width:82vw}.app .sidebar.mobile-open .nav-item .label,.app .sidebar.mobile-open .nav-item .badge-count,.app .sidebar.mobile-open .nav-section-title,.app .sidebar.mobile-open .sidebar-brand .name,.app .sidebar.mobile-open .sidebar-brand .env,.app .sidebar.mobile-open .sidebar-search button .t,.app .sidebar.mobile-open .sidebar-search button .k{display:initial}.app .sidebar.mobile-open .nav-item{justify-content:flex-start;padding:8px 10px}.app .sidebar.mobile-open .sidebar-brand{justify-content:flex-start;padding:12px 14px}.app .sidebar.mobile-open .sidebar-search{padding:10px 10px 6px}.app .sidebar.mobile-open .sidebar-search button{justify-content:flex-start;padding:6px 10px}.settings-layout{grid-template-columns:1fr}.settings-rail{flex-direction:row;gap:4px;padding:6px;position:static;overflow-x:auto}.settings-rail::-webkit-scrollbar{display:none}.set-tab{flex-shrink:0}.set-tab .label{white-space:nowrap}.setrow{grid-template-columns:1fr;gap:8px;padding:12px 4px}.setrow-ctrl{flex-wrap:wrap;justify-content:flex-start}.setinput-mono,.setinput-textarea{width:100%}.audit-row{grid-template-columns:70px 1fr;gap:4px 10px;padding:10px 4px}.audit-row .t{grid-row:span 2}.audit-row .who{color:var(--fg-muted);font-size:12px}.audit-row .act{grid-column:2}.audit-row .ip{display:none}.sheet{border-left:none;width:100vw}.dialog{padding:12px}.cmdk{padding-top:6vh}}@media (width<=640px){.kpi-section-anim{opacity:0;pointer-events:none;grid-template-rows:0fr;margin-bottom:-12px}.table-toolbar .input-search{flex:1;min-width:0}.table-toolbar .input-search input{width:100%}.table-toolbar .toolbar-meta .hits{display:none}.kpi-grid{grid-template-columns:repeat(2,1fr);gap:8px}.kpi-tile{padding:12px}.kpi-tile .k-value{font-size:22px}.kpi-tile .k-spark{opacity:.6;width:56px;height:22px}.stat-strip{grid-template-columns:repeat(2,1fr)}.stat .s-value{font-size:18px}table.data{font-size:13px}table.data thead th{padding:6px 10px;font-size:12px}table.data tbody td{padding:9px 10px}.page-head{flex-wrap:wrap;align-items:flex-start;gap:8px;margin-bottom:12px}.page-head .title-block h1{font-size:17px}.page-head .actions{margin-left:auto}.devices-page .batch-bar{gap:6px;padding:10px}.devices-sheet-hero{padding:12px}.devices-sheet-hero-meta{gap:6px}.table-toolbar{gap:8px;padding:10px 12px}.table-toolbar .spacer{display:none}.wizard-steps{padding-bottom:4px;overflow-x:auto}.wizard-steps::-webkit-scrollbar{display:none}.wstep{flex-shrink:0}.set-tab .label{font-size:13px}}@media (width<=420px){.kpi-grid,.stat-strip{grid-template-columns:1fr}.header .right>.icon-btn:nth-child(2){display:none}.page{padding:12px 10px 40px}.page-head .title-block h1{font-size:16px}}@media (width<=1024px){.table-toolbar .toolbar-filters{display:none}}@media (height<=500px){.kpi-section-anim{opacity:0;pointer-events:none;grid-template-rows:0fr;margin-bottom:-12px}.page--fill{padding-top:10px}.page--fill .page-body{gap:6px}.page-head{margin-bottom:8px}.table-toolbar{padding:6px 10px}}.adv-filter{flex-direction:column;gap:20px;display:flex}.adv-section{flex-direction:column;gap:8px;display:flex}.adv-label{color:var(--fg-muted);letter-spacing:.02em;text-transform:uppercase;font-size:12px;font-weight:500}.adv-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.adv-row>.input,.adv-row input[type=date],.adv-row input[type=number]{flex:1;min-width:100px}.adv-dash{color:var(--fg-subtle);font-size:13px}.adv-chip-row{flex-wrap:wrap;gap:6px;display:flex}.adv-chip{background:var(--bg-raised);border:1px solid var(--border);height:28px;color:var(--fg);cursor:pointer;transition:background var(--t-fast), border-color var(--t-fast), color var(--t-fast);border-radius:999px;align-items:center;gap:6px;padding:0 11px;font-family:inherit;font-size:13px;display:inline-flex}.adv-chip:hover{border-color:var(--border-strong);background:var(--bg-muted)}.adv-chip.on{background:var(--accent-bg);border-color:var(--accent);color:var(--accent);font-weight:500}.adv-chip .dot{opacity:.7;background:currentColor;border-radius:50%;width:6px;height:6px}.adv-chip .dot.tone-ok{background:var(--ok);opacity:1}.adv-chip .dot.tone-warn{background:var(--warn);opacity:1}.adv-chip .dot.tone-info{background:var(--info);opacity:1}.adv-chip .dot.tone-bad{background:var(--bad);opacity:1}.adv-chip .dot.tone-violet{background:var(--violet);opacity:1}.adv-presets{flex-wrap:wrap;gap:6px;margin-top:2px;display:flex}.adv-preset{border:1px dashed var(--border);border-radius:var(--r-sm);height:24px;color:var(--fg-muted);cursor:pointer;transition:background var(--t-fast), border-color var(--t-fast), color var(--t-fast);white-space:nowrap;background:0 0;padding:0 8px;font-family:inherit;font-size:12px}.adv-preset:hover{border-style:solid;border-color:var(--accent);color:var(--accent)}.adv-preset.active{border-style:solid;border-color:var(--accent);background:var(--accent-bg);color:var(--accent);font-weight:500}.adv-switch-row{background:var(--bg-muted);border-radius:var(--r-md);justify-content:space-between;align-items:center;gap:16px;padding:10px 12px;display:flex}.adv-switch-label{color:var(--fg);font-size:14px;font-weight:500}.adv-switch-sub{color:var(--fg-muted);margin-top:2px;font-size:12px}.table-scroll{overflow-x:auto}table.data tbody tr.selected{background:var(--accent-bg)}tr.row-flash{animation:.7s ease-out rowFlash}.batch-bar{border-bottom:1px solid var(--border);background:var(--accent-bg);color:var(--accent);align-items:center;gap:8px;padding:8px 12px;font-size:13px;display:flex}.batch-bar .count{font-weight:600}.batch-bar .spacer{flex:1}.adv-count{background:var(--accent);color:#fff;border-radius:999px;justify-content:center;align-items:center;min-width:16px;height:16px;margin-left:4px;padding:0 5px;font-size:11px;font-weight:600;display:inline-flex}.app.variant-b:not(.sidebar-expanded) .sidebar-user-row .uname,.app.variant-b:not(.sidebar-expanded) .sidebar-user-actions{display:none}.app.variant-b:not(.sidebar-expanded) .sidebar-user-row{justify-content:center}.app .sidebar.mobile-open .sidebar-user-row .uname{display:initial}.app .sidebar.mobile-open .sidebar-user-actions{opacity:1;display:flex}.app .sidebar.mobile-open .sidebar-user-row{justify-content:flex-start}.app.variant-b.sidebar-expanded .sidebar-user-actions{opacity:1}.dashboard-shortcuts{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px;display:grid}.shortcut-btn{all:unset;border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);cursor:pointer;color:var(--fg-muted);text-align:center;transition:background var(--t-fast), border-color var(--t-fast), color var(--t-fast);flex-direction:column;align-items:center;gap:6px;padding:14px 8px;font-size:12px;display:flex}.shortcut-btn:hover{background:var(--surface-hover);border-color:var(--border-strong);color:var(--fg)}.shortcut-btn .s-icon{color:var(--accent)}.empty-guide{border:1px dashed var(--border);border-radius:var(--r-lg);text-align:center;color:var(--fg-muted);flex-direction:column;align-items:center;gap:12px;padding:32px 24px;display:flex}.empty-guide h3{color:var(--fg);margin:0;font-size:15px;font-weight:600}.empty-guide p{margin:0;font-size:13px}.table-scroll{-webkit-overflow-scrolling:touch;overflow-x:auto}.upload-dropzone{border:1.5px dashed var(--border-strong);border-radius:var(--r-lg);background:var(--surface);cursor:pointer;min-height:120px;transition:border-color var(--t-fast), background var(--t-fast);justify-content:center;align-items:center;padding:16px;display:flex;position:relative}.upload-dropzone:hover{border-color:var(--accent);background:var(--surface-hover)}.upload-dropzone.is-over{border-color:var(--accent);background:var(--accent-bg)}.upload-dropzone.has-file{border-style:solid;min-height:0;padding:12px 14px}.upload-hint{color:var(--fg-muted);text-align:center;flex-direction:column;align-items:center;gap:8px;font-size:13px;display:flex}.upload-hint>svg{color:var(--accent)}.upload-file{align-items:center;gap:10px;width:100%;display:flex}.upload-file>svg{color:var(--accent);flex-shrink:0}.upload-file-meta{flex:1;min-width:0}.upload-file-name{text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:500;overflow:hidden}.upload-file-size{margin-top:2px;font-size:12px}.upload-progress{background:var(--border);border-bottom-left-radius:var(--r-lg);border-bottom-right-radius:var(--r-lg);height:3px;position:absolute;bottom:0;left:0;right:0;overflow:hidden}.upload-progress-bar{background:var(--accent);transform-origin:0;width:100%;height:100%;transition:transform var(--t-fast)}.error-boundary{font-family:var(--font-mono);color:var(--bad);padding:40px}.error-boundary h2{margin:0 0 12px}.error-boundary p{color:var(--fg-muted);margin:0;font-size:14px}.error-boundary-retry{cursor:pointer;margin-top:16px;padding:8px 16px}.page-slot{display:none}.page-slot--active{display:contents}.page-skeleton-title{width:180px;height:26px;margin-bottom:8px}.page-skeleton-subtitle{width:280px;height:14px}.page-skeleton-body{gap:16px;display:grid}.page-skeleton-card{border-radius:12px;height:120px}.page-skeleton-table{border-radius:12px;height:320px}.not-found-page{justify-content:center;align-items:center;min-height:60vh;display:flex}.not-found-card{text-align:center;max-width:420px}.not-found-code{color:var(--fg-muted);margin-bottom:8px;font-size:56px;font-weight:600}.not-found-card h2{margin:0 0 8px;font-size:18px}.not-found-card p{color:var(--fg-muted);margin:0 0 24px;font-size:13px}.not-found-back{border-radius:8px;padding:8px 20px}.notif{position:relative}.notif-badge{background:var(--bad);color:#fff;text-align:center;pointer-events:none;border-radius:7px;min-width:14px;height:14px;padding:0 4px;font-size:10px;font-weight:600;line-height:14px;position:absolute;top:4px;right:4px}.notif-menu{background:var(--bg-raised);border:1px solid var(--border);width:360px;max-height:480px;box-shadow:var(--shadow-md);z-index:50;border-radius:10px;position:absolute;top:calc(100% + 6px);right:0;overflow:auto}.notif-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:12px 14px;display:flex}.notif-title{font-size:13px;font-weight:600}.notif-count{font-size:11px}.notif-empty{text-align:center;color:var(--fg-muted);padding:32px;font-size:13px}.notif-list{margin:0;padding:0;list-style:none}.notif-item{border-bottom:1px solid var(--border-soft,var(--border));align-items:flex-start;gap:10px;padding:10px 14px;display:flex}.notif-dot{background:var(--fg-muted);border-radius:50%;flex-shrink:0;width:6px;height:6px;margin-top:6px}.notif-dot.bad{background:var(--bad)}.notif-dot.warn{background:var(--warn)}.notif-dot.info{background:var(--info,var(--accent))}.notif-item-body{flex:1;min-width:0}.notif-item-title{text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:500;line-height:1.4;overflow:hidden}.notif-time{margin-top:2px;font-size:11px}.notif-foot{border-top:1px solid var(--border);text-align:center;padding:8px}.auth-stage{background:var(--bg);z-index:100;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0;overflow:auto}.auth-shell{flex-direction:column;justify-content:center;align-items:center;gap:18px;width:min(400px,100%);margin:auto;display:flex}.auth-brand{justify-content:center;align-items:center;gap:10px;width:100%;display:flex}.auth-logo{background:var(--fg);width:30px;height:30px;color:var(--bg);font-family:var(--font-mono);letter-spacing:-.02em;border-radius:8px;place-items:center;font-size:15px;font-weight:700;display:grid}.auth-brand-text .name{letter-spacing:-.01em;font-size:13px;font-weight:600}.auth-brand-text .tag{color:var(--fg-subtle);font-size:11px;font-family:var(--font-mono);margin-top:1px}.auth-card{background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--r-xl);width:100%;overflow:hidden;box-shadow:0 1px #00000005,0 8px 24px -12px #00000014}.auth-tabs{border-bottom:1px solid var(--border);background:var(--surface);grid-template-columns:1fr 1fr;display:grid}.auth-tabs button{color:var(--fg-muted);cursor:pointer;transition:color var(--t-fast), background var(--t-fast);background:0 0;border:none;border-bottom:2px solid #0000;padding:11px 12px;font-size:12.5px;font-weight:500}.auth-tabs button:hover{color:var(--fg)}.auth-tabs button.on{color:var(--fg);background:var(--bg-raised);border-bottom-color:var(--accent)}.auth-form{flex-direction:column;gap:14px;padding:24px;display:flex}.auth-head h1{letter-spacing:-.015em;margin:0;font-size:18px;font-weight:600}.auth-head p{color:var(--fg-muted);margin:5px 0 0;font-size:12.5px}.auth-err{background:var(--danger-bg,#dc262614);color:var(--danger,#dc2626);border:1px solid var(--danger-border,#dc262638);border-radius:var(--r-md);padding:8px 10px;font-size:12px;line-height:1.4}.auth-field{flex-direction:column;gap:6px;display:flex;position:relative}.auth-field .lbl{color:var(--fg-muted);letter-spacing:.01em;font-size:11.5px;font-weight:500}.auth-input{background:var(--bg);border:1px solid var(--border);border-radius:var(--r-md);width:100%;font-size:13px;font-family:var(--font-ui);color:var(--fg);transition:border-color var(--t-fast), box-shadow var(--t-fast);outline:none;padding:9px 11px}.auth-input::placeholder{color:var(--fg-subtle)}.auth-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg,#3b82f626)}.auth-input:read-only{background:var(--surface);color:var(--fg-muted)}.auth-note{color:var(--fg-muted);font-size:11px;line-height:1.4}.auth-field-hint{color:var(--fg-subtle);cursor:pointer;white-space:nowrap;background:0 0;border:none;padding:0;font-size:11px;line-height:1;position:absolute;top:0;right:0}.auth-field-hint:hover{color:var(--accent)}.auth-row{gap:10px;display:flex}.auth-submit{justify-content:center;width:100%;margin-top:4px;padding:9px 12px;font-size:13px}.auth-switch{text-align:center;color:var(--fg-muted);margin-top:-2px;font-size:12px}.auth-switch a{color:var(--accent);cursor:pointer;font-weight:500}.auth-switch a:hover{text-decoration:underline}.auth-demo{text-align:center;color:var(--fg-subtle);font-size:10.5px;font-family:var(--font-mono);margin-top:6px}.auth-demo .kbd{background:var(--surface);border:1px solid var(--border);letter-spacing:.08em;border-radius:3px;margin-right:4px;padding:1px 5px;font-size:9.5px;display:inline-block}.auth-foot{color:var(--fg-subtle);font-size:11px;font-family:var(--font-mono);align-items:center;gap:8px;display:flex}.auth-foot .dot{background:var(--fg-subtle);border-radius:50%;width:3px;height:3px;display:inline-block}.auth-foot a{cursor:pointer}.auth-foot a:hover{color:var(--fg)}.auth-input-wrap{position:relative}.auth-input-wrap .auth-input{padding-right:36px}.auth-eye{cursor:pointer;opacity:.55;transition:opacity var(--t-fast);background:0 0;border:none;padding:0;font-size:14px;line-height:1;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.auth-eye:hover{opacity:1}.pwd-strength{align-items:center;gap:8px;margin-top:2px;display:flex}.pwd-bars{gap:3px;display:flex}.pwd-bar{border-radius:2px;width:32px;height:4px;transition:background .2s}.bind-dialog{max-width:640px}.bind-head{position:relative;padding:16px 44px 12px 18px!important}.bind-head p code{background:var(--surface);border:1px solid var(--border);font-family:var(--font-mono);border-radius:3px;padding:1px 5px;font-size:11px}.bind-close{top:10px;right:10px;position:absolute!important}.bind-body{border-top:1px solid var(--border);grid-template-columns:1fr 1fr;gap:0;padding:4px 0 0;display:grid}@media (width<=560px){.bind-body{grid-template-columns:1fr}}.bind-qr-col{border-right:1px solid var(--border);background:var(--surface);flex-direction:column;align-items:center;gap:10px;padding:18px;display:flex}@media (width<=560px){.bind-qr-col{border-right:none;border-bottom:1px solid var(--border)}}.bind-qr-frame{border-radius:var(--r-md);border:1px solid var(--border);transition:border-color var(--t-med), box-shadow var(--t-med);background:#fff;padding:10px;position:relative}.bind-qr-frame.done{border-color:var(--success,#16a34a);box-shadow:0 0 0 4px color-mix(in srgb, var(--success,#16a34a) 14%, transparent)}.bind-qr-overlay{background:color-mix(in srgb, var(--success,#16a34a) 86%, transparent);color:#fff;border-radius:var(--r-md);place-items:center;animation:.2s ease-out fadeIn;display:grid;position:absolute;inset:0}.bind-code-row{justify-content:center;align-items:center;margin-top:2px;display:flex}.bind-code{font-family:var(--font-mono);font-variant-numeric:tabular-nums;gap:6px;display:inline-flex}.bind-code .d{text-align:center;background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--r-sm);letter-spacing:0;width:28px;padding:6px 0;font-size:18px;font-weight:600}.bind-code-actions{gap:6px;display:flex}.bind-valid{color:var(--fg-subtle);align-items:center;gap:4px;margin-top:2px;font-size:10.5px;display:flex}.bind-status-col{flex-direction:column;gap:12px;padding:18px;display:flex}.bind-status-title{text-transform:uppercase;letter-spacing:.06em;color:var(--fg-subtle);align-items:center;gap:8px;font-size:11px;font-weight:500;display:flex}.bind-status-dot{background:var(--fg-subtle);border-radius:50%;width:7px;height:7px;display:inline-block}.bind-status-dot[data-step="0"]{background:var(--fg-subtle)}.bind-status-dot[data-step="1"],.bind-status-dot[data-step="2"]{background:var(--warn,#f59e0b);animation:1.1s ease-in-out infinite pulse}.bind-status-dot[data-step="3"]{background:var(--success,#16a34a)}.bind-steps{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.bind-steps li{color:var(--fg-muted);grid-template-columns:18px 1fr;gap:9px;font-size:12px;display:grid;position:relative}.bind-steps li .bull{border:1.5px solid var(--border);background:var(--bg-raised);width:12px;height:12px;transition:background var(--t-med), border-color var(--t-med), box-shadow var(--t-med);border-radius:50%;margin-top:3px}.bind-steps li.active{color:var(--fg)}.bind-steps li.active .bull{border-color:var(--accent);background:var(--accent);box-shadow:0 0 0 3px var(--accent-bg,#3b82f626)}.bind-steps li.done .bull{border-color:var(--success,#16a34a);background:var(--success,#16a34a);box-shadow:0 0 0 3px color-mix(in srgb, var(--success,#16a34a) 20%, transparent)}.bind-steps li:before{content:"";background:var(--border);width:1px;position:absolute;top:18px;bottom:-10px;left:5.5px}.bind-steps li:last-child:before{display:none}.bind-steps li .t{font-weight:500}.bind-steps li .s{color:var(--fg-subtle);margin-top:2px;font-size:11px}.bind-fp{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);flex-direction:column;gap:4px;margin-top:auto;padding:10px 12px;animation:.2s ease-out fadeIn;display:flex}.bind-fp-row{align-items:center;gap:10px;font-size:12px;display:flex}.bind-fp-row .k{width:40px;color:var(--fg-subtle);text-transform:uppercase;letter-spacing:.04em;font-size:10.5px}.bind-fp-row code{font-family:var(--font-mono);font-size:11.5px}.bind-fp-row code.muted{color:var(--fg-muted)}.bind-empty{border:1px dashed var(--border);border-radius:var(--r-md);text-align:center;color:var(--fg-muted);background:0 0;flex-direction:column;align-items:center;gap:6px;margin-top:auto;padding:14px 10px;font-size:12.5px;display:flex}.bind-empty svg{color:var(--fg-subtle)}.bind-empty .sub{color:var(--fg-subtle);font-size:11px}.avatar-menu .avatar{background:var(--accent-bg,#3b82f61f);width:24px;height:24px;color:var(--accent,#3b82f6);cursor:pointer;transition:transform var(--t-fast), background var(--t-fast);border-radius:50%;place-items:center;font-size:11px;font-weight:600;display:grid}.avatar-menu .avatar:hover{background:var(--accent,#3b82f6);color:#fff;transform:scale(1.06)}.select{background:0 0;border:none;height:auto;padding:0;display:inline-flex;position:relative}.select .select-trigger{all:unset;background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--r-md);height:28px;color:var(--fg);cursor:pointer;transition:border-color var(--t-fast), background var(--t-fast);box-sizing:border-box;align-items:center;gap:6px;max-width:100%;padding:0 8px 0 10px;font-size:12.5px;display:inline-flex}.select .select-trigger:hover{border-color:var(--border-strong);background:var(--surface-hover)}.select.open .select-trigger{border-color:var(--fg);box-shadow:0 0 0 3px color-mix(in oklch, var(--fg) 12%, transparent)}.select .select-trigger .lbl{color:var(--fg-subtle);margin-right:1px;font-size:11.5px;font-weight:400}.select .select-trigger .val{color:var(--fg);white-space:nowrap;text-overflow:ellipsis;max-width:140px;font-size:12.5px;font-weight:500;overflow:hidden}.select .select-trigger .chev{width:12px;height:12px;color:var(--fg-subtle);transition:transform var(--t-fast);margin-left:2px}.select.open .select-trigger .chev{transform:rotate(180deg)}.select-menu{background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--r-md);width:max-content;min-width:100%;max-width:280px;max-height:320px;box-shadow:var(--shadow-pop);z-index:1000;padding:4px;animation:.12s cubic-bezier(.2,.8,.2,1) selectIn;position:absolute;top:calc(100% + 4px);left:0;overflow-y:auto}@keyframes selectIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.select-option{all:unset;border-radius:var(--r-sm);color:var(--fg-muted);cursor:pointer;box-sizing:border-box;align-items:center;gap:8px;min-height:26px;padding:6px 8px;font-size:12.5px;display:flex}.select-option .lab{white-space:nowrap;flex:1}.select-option .tick{width:13px;height:13px;color:var(--fg);flex-shrink:0}.select-option:hover{background:var(--surface-hover);color:var(--fg)}.select-option.on{background:var(--bg-sunken);color:var(--fg);font-weight:500}.chip{font-family:var(--font-ui);letter-spacing:0;border-radius:4px;padding:3px 7px;font-size:11px;line-height:1}.chip.ok:not(:has(.d)){background:color-mix(in oklch, var(--ok) 10%, transparent);color:var(--ok)}.chip.warn:not(:has(.d)){background:color-mix(in oklch, var(--warn) 12%, transparent);color:var(--warn)}.chip.bad:not(:has(.d)){background:color-mix(in oklch, var(--bad) 12%, transparent);color:var(--bad)}.chip.info:not(:has(.d)){background:color-mix(in oklch, var(--info) 12%, transparent);color:var(--info)}.chip.violet:not(:has(.d)){background:color-mix(in oklch, var(--violet) 12%, transparent);color:var(--violet)}.chip .d{width:5px;height:5px}table.data{font-variant-numeric:tabular-nums}table.data tbody td{white-space:nowrap;text-overflow:ellipsis;max-width:220px;padding:9px 12px;overflow:hidden}table.data tbody tr{transition:background var(--t-fast)}table.data tbody tr:hover{background:var(--surface-hover);cursor:pointer}table.data tbody tr+tr td{border-top:1px solid var(--border)}table.data td.wrap{white-space:normal}.table-toolbar{flex-wrap:nowrap;min-height:44px}.table-toolbar::-webkit-scrollbar{display:none}.table-toolbar .hits{white-space:nowrap;border-left:1px solid var(--border);flex-shrink:0;margin-left:2px;padding:0 6px}@media (width<=720px){.table-toolbar{flex-wrap:wrap;overflow:visible}}.pagination{font-variant-numeric:tabular-nums;gap:6px;padding:10px 14px}.pagination>span:first-child{color:var(--fg-subtle);font-size:11.5px;font-family:var(--font-mono)}.pagination .btn{min-width:28px}.pagination .btn[disabled]{opacity:.4;cursor:not-allowed}.set-tab{white-space:nowrap}.set-tab .label,.set-tab>:not(.icon){white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.page-head .actions{flex-shrink:0}.input:focus-visible{outline:none}.stat-strip .stat .s-label{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.sidebar [data-count],.sidebar .count-badge{font-family:var(--font-mono)}@media (height<=500px){.auth-stage{align-items:flex-start;padding:14px}.auth-brand{display:none}.auth-shell{gap:10px}.auth-form{gap:8px;padding:14px 16px}.auth-head h1{font-size:15px}.auth-head p{display:none}.auth-input{padding:7px 10px}.auth-submit{margin-top:2px;padding:8px 12px}}
