.btn{justify-content:center;align-items:center;gap:var(--s-2);border-radius:var(--ctl-radius);font-family:var(--font-ui);white-space:nowrap;transition:background var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);border:1px solid #0000;font-weight:500;display:inline-flex}.btn--full{width:100%}.btn--link,.btn--link:hover{text-decoration:none}.btn-label{display:inline-block}.btn-icon{flex:none}.btn--sm{height:var(--ctl-h-sm);padding:0 var(--s-3);font-size:var(--t-caption-size)}.btn--md{height:var(--ctl-h-md);padding:0 var(--s-4);font-size:var(--t-label-size)}.btn--lg{height:var(--ctl-h-lg);padding:0 var(--s-5);font-size:var(--t-body-size)}.btn--primary{background:var(--accent);color:var(--accent-on);font-weight:600}.btn--primary:hover:not(:disabled){background:var(--accent-hover)}.btn--primary:active:not(:disabled){background:var(--accent-active)}.btn--secondary{background:var(--bg-surface);color:var(--text);border-color:var(--border-strong)}.btn--secondary:hover:not(:disabled){background:var(--bg-hover);border-color:var(--n-400)}.btn--secondary:active:not(:disabled){background:var(--bg-active)}.btn--ghost{color:var(--text-muted);background:0 0}.btn--ghost:hover:not(:disabled){background:var(--bg-hover);color:var(--text)}.btn--ghost:active:not(:disabled){background:var(--bg-active)}.btn--danger{background:var(--danger);color:var(--text-on-fill);font-weight:600}.btn--danger:hover:not(:disabled){background:var(--danger-hover)}.btn:disabled{background:var(--bg-sunken);color:var(--text-faint);border-color:var(--border);opacity:1}.btn--ghost:disabled{background:0 0;border-color:#0000}.btn-spinner{animation:.72s linear infinite btn-spin}@keyframes btn-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.btn-spinner{opacity:.6;animation:none}}.icon-btn{border-radius:var(--ctl-radius);color:var(--text-muted);transition:background var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);border:1px solid #0000;flex:none;justify-content:center;align-items:center;display:inline-flex}.icon-btn--sm{width:var(--ctl-h-sm);height:var(--ctl-h-sm)}.icon-btn--md{width:var(--ctl-h-md);height:var(--ctl-h-md)}.icon-btn--ghost:hover:not(:disabled){background:var(--bg-hover);color:var(--text)}.icon-btn--secondary{background:var(--bg-surface);border-color:var(--border-strong);color:var(--text)}.icon-btn--secondary:hover:not(:disabled){background:var(--bg-hover)}.icon-btn--danger{color:var(--danger)}.icon-btn--danger:hover:not(:disabled){background:var(--danger-wash)}.icon-btn:disabled{color:var(--text-faint)}@media (pointer:coarse){.icon-btn{position:relative}.icon-btn:after{content:"";width:44px;height:44px;position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%)}}.badge{align-items:center;gap:var(--s-1);padding:2px var(--s-2);border-radius:var(--r-full);font-size:var(--t-caption-size);white-space:nowrap;border:1px solid #0000;font-weight:500;line-height:18px;display:inline-flex}.badge-icon{flex:none}.badge--ok{background:var(--status-ok-wash);color:var(--status-ok-fg);border-color:var(--status-ok-border)}.badge--active{background:var(--status-active-wash);color:var(--status-active-fg);border-color:var(--status-active-border)}.badge--wait{background:var(--status-wait-wash);color:var(--status-wait-fg);border-color:var(--status-wait-border)}.badge--stop{background:var(--status-stop-wash);color:var(--status-stop-fg);border-color:var(--status-stop-border)}.badge--idle{background:var(--status-idle-wash);color:var(--status-idle-fg);border-color:var(--status-idle-border)}.badge--accent{background:var(--accent-wash);color:var(--accent);border-color:var(--accent-border)}.status-dot{border-radius:var(--r-full);flex:none;width:8px;height:8px;display:inline-block}.status-dot--ok{background:var(--status-ok-fg)}.status-dot--active{background:var(--status-active-fg)}.status-dot--wait{background:var(--status-wait-fg)}.status-dot--stop{background:var(--status-stop-fg)}.status-dot--idle{background:var(--n-400)}.card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--card-radius)}.card--padded{padding:var(--card-pad)}.card-header{justify-content:space-between;align-items:flex-start;gap:var(--s-4);margin-bottom:var(--s-4);display:flex}.card-header-text{min-width:0}.card-title{align-items:center;gap:var(--s-2);font-size:var(--t-subtitle-size);line-height:var(--t-subtitle-lh);font-weight:var(--t-subtitle-w);letter-spacing:-.006em;color:var(--text-strong);display:flex}.card-title-icon{color:var(--text-muted);flex:none}.card-description{margin-top:var(--s-1);font-size:var(--t-caption-size);line-height:var(--t-caption-lh);color:var(--text-muted)}.card-header-action{flex:none}.stat-card{gap:var(--s-1);padding:var(--s-4);background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--card-radius);flex-direction:column;min-width:0;display:flex}.stat-card--link{transition:border-color var(--dur-fast) var(--ease-out), background var(--dur-fast) var(--ease-out);text-decoration:none}.stat-card--link:hover{border-color:var(--border-strong);background:var(--n-25);text-decoration:none}.stat-top{justify-content:space-between;align-items:center;gap:var(--s-2);display:flex}.stat-label{font-size:var(--t-label-size);line-height:var(--t-label-lh);color:var(--text-muted);font-weight:500}.stat-icon{color:var(--n-400);flex:none}.stat-value{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:var(--t-metric-size);line-height:var(--t-metric-lh);font-weight:var(--t-metric-w);letter-spacing:-.02em;color:var(--text-strong)}.stat-value--wait{color:var(--status-wait-fg)}.stat-value--stop{color:var(--status-stop-fg)}.stat-value--ok{color:var(--status-ok-fg)}.stat-value--loading{width:3ch;height:var(--t-metric-lh);background:var(--bg-sunken);border-radius:var(--r-xs);display:block}.stat-sub{font-size:var(--t-caption-size);line-height:var(--t-caption-lh);color:var(--text-muted)}.stat-grid{gap:var(--s-4);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}@media (width<=1024px){.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=480px){.stat-grid{grid-template-columns:1fr}}.menu{z-index:var(--z-modal);min-width:184px;padding:var(--s-1);background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--el-3);animation:menu-in var(--dur-fast) var(--ease-out)}.menu-item{align-items:center;gap:var(--s-3);height:var(--ctl-h-md);padding:0 var(--s-3);border-radius:var(--r-sm);font-size:var(--t-label-size);color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none;outline:none;display:flex}.menu-item[data-highlighted]{background:var(--bg-hover);color:var(--text-strong)}.menu-item[data-disabled]{color:var(--text-faint);cursor:not-allowed}.menu-item-icon{color:var(--text-muted);flex:none}.menu-item[data-highlighted] .menu-item-icon{color:var(--text)}.menu-item--danger,.menu-item--danger .menu-item-icon{color:var(--danger)}.menu-item--danger[data-highlighted]{background:var(--danger-wash);color:var(--danger)}.menu-item--danger[data-highlighted] .menu-item-icon{color:var(--danger)}.menu-label{padding:var(--s-2) var(--s-3);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);font-size:11px;font-weight:500}.menu-separator{height:1px;margin:var(--s-1) calc(var(--s-1) * -1);background:var(--border)}.tooltip{z-index:var(--z-modal);max-width:240px;padding:var(--s-2) var(--s-3);background:var(--n-900);color:var(--n-0);border-radius:var(--r-sm);font-size:var(--t-caption-size);line-height:var(--t-caption-lh);box-shadow:var(--el-2);animation:menu-in var(--dur-fast) var(--ease-out);font-weight:500}.tooltip-arrow{fill:var(--n-900)}@keyframes menu-in{0%{opacity:0;transform:scale(.97)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.menu,.tooltip{animation:none}}
