:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0b0e13;--bg-raised:#111827;--bg-elev:#1a2235;--panel:#151d2b;--panel-hover:#1a2538;--line:#1e293b;--line-light:#273548;--ink:#e2e8f0;--ink-secondary:#94a3b8;--muted:#64748b;--brand:#3b82f6;--brand-rgb:59, 130, 246;--brand-strong:#60a5fa;--brand-dim:rgba(var(--brand-rgb), .12);--brand-navy:#1e4f8c;--accent:#3b82f6;--cta:#f97316;--cta-dim:#f9731626;--ok:#10b981;--ok-dim:#10b9811f;--warn:#f59e0b;--warn-dim:#f59e0b1f;--danger:#ef4444;--danger-dim:#ef44441f;--err:#ef4444;--surface:var(--panel);--surface-raised:var(--bg-raised);--surface-hover:var(--panel-hover);--surface-muted:var(--panel-hover);--border:var(--line);--primary:var(--brand);--accent-dim:var(--brand-dim);--text:var(--ink);--text-secondary:var(--ink-secondary);--text-muted:var(--muted);--fg-muted:var(--muted);--muted-fg:var(--muted);--line-soft:var(--line);--panel-2:var(--panel-hover);--bg-sunken:var(--bg);--font-mono:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--mono:var(--font-mono);--radius:10px;--radius-md:8px;--radius-sm:6px;--ai-grad-1:#8b5cf6;--ai-grad-2:#3b82f6;--ai-grad-3:#22d3ee;--ai-grad-4:#ec4899}*{box-sizing:border-box}html,body{background:var(--bg);max-width:100%;min-height:100dvh;color:var(--ink);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overscroll-behavior:none;touch-action:manipulation;-webkit-user-select:none;user-select:none;caret-color:#0000;margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;overflow-x:hidden}input,textarea,[contenteditable=true],.messages p,.message-card p,.bubble,.var-value,.metric-line,.estado-var-info,.tab-content p{-webkit-user-select:text;user-select:text;caret-color:var(--brand)}body:before{content:"";background-image:radial-gradient(circle, rgba(var(--brand-rgb), .04) 1px, transparent 1px);pointer-events:none;z-index:0;background-size:24px 24px;position:fixed;inset:0}button,input{font:inherit;color:inherit}input,textarea,select{font-size:max(16px,1em)}button{cursor:pointer}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.spin{animation:.8s linear infinite spin}@keyframes pulse-dot{0%,to{opacity:1;box-shadow:0 0 #10b98180}50%{opacity:.85;box-shadow:0 0 0 6px #10b98100}}@keyframes fadeSlideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes msgSlideIn{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes tabFadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes sendFlash{0%{box-shadow:0 0 #f9731699}50%{box-shadow:0 0 12px 4px #f973164d}to{box-shadow:0 0 #f9731600}}@keyframes typingBounce{0%,60%,to{opacity:.4;transform:translateY(0)}30%{opacity:1;transform:translateY(-6px)}}@keyframes varFlash{0%{background:var(--ok-dim)}to{background:0 0}}@keyframes shakeX{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-4px)}20%,40%,60%,80%{transform:translate(4px)}}@keyframes loginBgShift{0%{background-position:0%}50%{background-position:100%}to{background-position:0%}}@keyframes glowPulse{0%,to{opacity:.7}50%{opacity:1}}button:active{transform:scale(.97)}button{transition:transform .1s,background .12s,color .12s,opacity .12s}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--line-light);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--muted)}*{scrollbar-width:thin;scrollbar-color:var(--line-light) transparent}.loading-screen{background:var(--bg);min-height:100dvh;color:var(--brand);z-index:1;flex-direction:column;justify-content:center;align-items:center;gap:20px;display:flex;position:relative}.loading-brand{background:linear-gradient(135deg, var(--brand), #8b5cf6);color:#fff;border-radius:14px;place-items:center;width:56px;height:56px;font-size:20px;font-weight:800;animation:1.5s ease-in-out infinite pulse-dot;display:grid}.login-page{background:var(--bg);z-index:1;justify-content:center;align-items:center;min-height:100dvh;display:flex;position:relative;overflow:hidden}.login-bg-pattern{background:radial-gradient(ellipse 60% 40% at 20% 80%, rgba(var(--brand-rgb), .08), transparent), radial-gradient(ellipse 50% 50% at 80% 20%, #8b5cf60f, transparent), linear-gradient(135deg, #1e4f8c26 0%, #0b0e1300 30%, rgba(var(--brand-rgb), .08) 50%, #0b0e1300 70%, #8b5cf61a 100%);pointer-events:none;background-size:100% 100%,100% 100%,300% 300%;animation:15s ease-in-out infinite loginBgShift;position:absolute;inset:0}.login-container{width:100%;max-width:400px;padding:24px;animation:.5s ease-out fadeSlideUp;position:relative}.login-brand{text-align:center;margin-bottom:40px}.login-logo{background:linear-gradient(135deg, var(--brand-navy), var(--brand));color:#fff;border-radius:16px;place-items:center;width:64px;height:64px;margin-bottom:16px;display:inline-grid}.login-logo-img{object-fit:contain;max-width:200px;max-height:64px;margin-bottom:16px}.login-brand h1{letter-spacing:-.02em;margin:0 0 6px;font-size:24px;font-weight:700}.login-brand p{color:var(--muted);margin:0;font-size:14px}.login-form{gap:20px;display:grid}.login-field label{color:var(--ink-secondary);text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px;font-size:13px;font-weight:600;display:block}.login-input-wrap{align-items:center;display:flex;position:relative}.login-input-icon{color:var(--muted);pointer-events:none;transition:color .2s;position:absolute;left:14px}.login-input-wrap input{border:1px solid var(--line-light);border-radius:var(--radius);background:var(--bg-raised);width:100%;height:48px;color:var(--ink);padding:0 14px 0 44px;font-size:15px;transition:border-color .2s,box-shadow .2s}.login-input-wrap input:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-dim), 0 0 20px rgba(var(--brand-rgb), .1);outline:none}.login-input-wrap input:focus~.login-input-icon,.login-input-wrap input:focus+.login-input-icon,.login-input-wrap:focus-within .login-input-icon{color:var(--brand)}.login-input-wrap input::placeholder{color:var(--muted)}.login-eye{width:40px;height:40px;color:var(--muted);border-radius:var(--radius-sm);background:0 0;border:none;place-items:center;display:grid;position:absolute;right:4px}.login-eye:hover{color:var(--ink)}.login-error{background:var(--danger-dim);color:var(--danger);border-radius:var(--radius-sm);padding:10px 14px;font-size:14px;font-weight:500;animation:.5s ease-in-out shakeX}.login-submit{border-radius:var(--radius);background:linear-gradient(135deg, var(--brand), var(--cta));color:#fff;border:none;justify-content:center;align-items:center;gap:8px;height:48px;font-size:15px;font-weight:600;transition:opacity .15s,transform .1s,box-shadow .2s;display:flex}.login-submit:hover:not(:disabled){opacity:.9;box-shadow:0 4px 20px rgba(var(--brand-rgb), .3)}.login-submit:disabled{opacity:.5;cursor:not-allowed}.login-footer{text-align:center;margin-top:40px}.login-footer p{color:var(--muted);margin:0;font-size:12px}.app-shell{z-index:1;grid-template-columns:260px minmax(0,1fr);min-height:100dvh;display:grid;position:relative}.sidebar,.chat-main{min-width:0}.sidebar{background:var(--panel);border-right:1px solid var(--line);flex-direction:column;gap:12px;padding:20px 14px;display:flex;position:relative}.sidebar-toggle{border:1px solid var(--line);background:var(--bg);width:30px;height:30px;color:var(--muted);cursor:pointer;z-index:5;border-radius:8px;place-items:center;transition:color .15s,border-color .15s;display:grid;position:absolute;top:14px;right:10px}.sidebar-toggle:hover{color:var(--text);border-color:var(--brand)}.app-shell.sidebar-collapsed{grid-template-columns:72px minmax(0,1fr)}.sidebar-collapsed .sidebar{align-items:center;padding:16px 8px}.sidebar-collapsed .sidebar-toggle{margin:0 auto 6px;position:static;top:auto;right:auto}.sidebar-collapsed .brand{border-bottom:none;justify-content:center;padding:0 0 12px}.sidebar-collapsed .brand-text{display:none}.sidebar-collapsed .nav button{justify-content:center;gap:0;padding-left:0;padding-right:0;font-size:0}.sidebar-collapsed .nav button svg{width:20px;height:20px}.sidebar-collapsed .nav button{position:relative}.sidebar-collapsed .nav .nav-badge-wrap{flex:none;gap:0;width:0;font-size:0;position:static}.sidebar-collapsed .nav .badge-pro{display:none}.sidebar-collapsed .nav .sidebar-badge{border:2px solid var(--panel);border-radius:50%;width:9px;min-width:9px;height:9px;margin:0;padding:0;font-size:0;position:absolute;top:7px;right:13px}.sidebar-collapsed .tenant-card{text-align:center;align-items:center}.sidebar-collapsed .tenant-card .tenant-row{justify-content:center}.sidebar-collapsed .tenant-card p,.sidebar-collapsed .tenant-card .tenant-row strong,.sidebar-collapsed .version-label{display:none}.sidebar-collapsed .tenant-card .logout-btn{justify-content:center;gap:0;padding:8px;font-size:0}.sidebar-collapsed .tenant-card .logout-btn svg{width:18px;height:18px}.sidebar-collapsed .tenant-card .tenant-switcher{width:auto;margin:6px auto 0}.sidebar-collapsed .tenant-card .tenant-switcher-btn{gap:0;width:32px;padding:0}.sidebar-collapsed .tenant-card .tenant-switcher-label{display:none}.brand{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:0 4px 12px;display:flex}.brand-mark{background:linear-gradient(135deg, var(--brand-navy), var(--brand));color:#fff;border-radius:10px;flex-shrink:0;place-items:center;width:40px;height:40px;font-size:15px;font-weight:800;display:grid}.brand-logo-img{object-fit:contain;border-radius:10px;flex-shrink:0;width:40px;height:40px}.brand h1,.plant-title h2{letter-spacing:-.01em;margin:0}.brand h1{white-space:normal;overflow-wrap:anywhere;min-width:0;font-size:16px;font-weight:700;line-height:1.15}.brand-text{flex:1;min-width:0}.brand p,.status-row,.small,.message-time{color:var(--muted);margin:0;font-size:13px}.chat-feedback{border-top:1px solid color-mix(in srgb, var(--muted,#94a3b8) 18%, transparent);align-items:center;gap:6px;margin-top:10px;padding-top:8px;display:flex}.chat-feedback-label{color:var(--muted);margin-right:auto;font-size:12px}.chat-feedback-btn{width:26px;height:26px;color:var(--muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:7px;justify-content:center;align-items:center;padding:0;transition:color .12s,background .12s,border-color .12s;display:inline-flex}.chat-feedback-btn:hover{color:var(--text,#e2e8f0);background:color-mix(in srgb, var(--muted,#94a3b8) 14%, transparent)}.chat-feedback-btn:focus-visible{outline:2px solid var(--accent,#3b82f6);outline-offset:1px}.chat-feedback-btn.active.up{color:#10b981;background:#10b9811f;border-color:#10b98173}.chat-feedback-btn.active.down{color:#ef4444;background:#ef44441f;border-color:#ef444473}.nav{gap:4px;display:grid}.nav button,.quick button,.action-button,.notify-button{border-radius:var(--radius-sm);min-height:40px;color:var(--ink-secondary);background:0 0;border:1px solid #0000;align-items:center;gap:10px;padding:0 12px;font-size:14px;transition:background .12s,color .12s,transform .1s;display:flex}.nav button:hover{background:var(--panel-hover);color:var(--ink)}.nav button.active{background:var(--brand-dim);color:var(--brand-strong);font-weight:600}.nav-disabled{opacity:.45;pointer-events:none}.nav-locked{opacity:.5}.nav button.nav-locked:hover{opacity:.78}.badge-pro{text-transform:uppercase;letter-spacing:.06em;color:#a78bfa;background:#8b5cf633;border-radius:4px;margin-left:auto;padding:2px 6px;font-size:10px;font-weight:700}.nav button.nav-attention{opacity:.7;color:#d97706;cursor:not-allowed}.nav button.nav-attention:hover{background:#d977061f}.sidebar-spacer{flex:1}.tenant-card,.alarm-card,.message-card,.machine-card,.estado-var-row{background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--radius);transition:box-shadow .25s,border-color .25s}.machine-card:hover,.estado-var-row:hover{border-color:rgba(var(--brand-rgb), .25);box-shadow:0 2px 16px rgba(var(--brand-rgb), .08)}.tenant-card{gap:6px;padding:14px;display:grid}.tenant-row{align-items:center;gap:8px;display:flex}.logout-btn{border:1px solid var(--line-light);border-radius:var(--radius-sm);height:32px;color:var(--muted);background:0 0;justify-content:center;align-items:center;gap:6px;margin-top:6px;font-size:13px;transition:color .12s,border-color .12s,transform .1s;display:flex}.logout-btn:hover{color:var(--danger);border-color:var(--danger)}.online-dot{background:var(--ok);vertical-align:middle;border-radius:50%;width:6px;height:6px;display:inline-block}.version-label{text-align:center;color:var(--muted);letter-spacing:.04em;margin-top:4px;font-size:10px;display:block}.tenant-switcher{margin-top:6px;position:relative}.tenant-switcher-btn{border:1px solid var(--line-light);border-radius:var(--radius-sm);width:100%;height:32px;color:var(--ink-secondary);background:0 0;justify-content:center;align-items:center;gap:6px;font-size:12px;transition:color .12s,border-color .12s;display:flex}.tenant-switcher-btn:hover:not(:disabled){color:var(--brand);border-color:var(--brand)}.tenant-switcher-btn:disabled{opacity:.6;cursor:default}.tenant-switcher-label{text-overflow:ellipsis;white-space:nowrap;max-width:140px;overflow:hidden}.tenant-switcher-menu{background:var(--panel);border:1px solid var(--line-light);border-radius:var(--radius);z-index:30;gap:2px;padding:6px;display:grid;position:absolute;bottom:calc(100% + 6px);left:0;right:0;box-shadow:0 8px 24px #0006}.tenant-switcher-item{border-radius:var(--radius-sm);height:34px;color:var(--ink);text-align:left;background:0 0;border:none;justify-content:space-between;align-items:center;gap:8px;padding:0 10px;font-size:13px;display:flex}.tenant-switcher-item:hover:not(:disabled){background:rgba(var(--brand-rgb), .1)}.tenant-switcher-item:disabled{opacity:.6}.tenant-switcher-error{color:var(--danger);padding:4px 6px 0;font-size:11px}.chat-main{background:var(--bg);grid-template-rows:auto 1fr auto;grid-template-columns:minmax(0,1fr);min-height:100dvh;display:grid}.chat-main:has(>.shell-trial-banner){grid-template-rows:auto auto 1fr auto}.topbar{-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--line);background:#111827eb;justify-content:space-between;align-items:center;gap:16px;padding:14px 20px;display:flex;position:relative}.plant-title{gap:4px;display:grid}.plant-selector{align-items:center;gap:6px;display:flex}.plant-title h2{font-size:17px}.shield-icon{color:var(--ok)}.topbar-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}@media (max-width:700px){.topbar{gap:8px;padding:10px 12px}.topbar>:first-child{min-width:0;overflow:hidden}.topbar>:first-child h1,.topbar>:first-child h2,.topbar>:first-child .small{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.topbar-actions{gap:6px}}.mobile-user-btn{border:1px solid var(--cta);border-radius:var(--radius-sm);width:38px;height:38px;color:var(--cta);background:#f973161a;place-items:center;transition:color .12s,border-color .12s;display:none}.mobile-user-btn:hover,.mobile-user-btn:active{color:var(--brand);border-color:var(--brand)}.desktop-only{display:block}.mobile-user-menu{background:var(--panel);border:1px solid var(--line-light);border-radius:var(--radius);z-index:30;gap:10px;min-width:200px;padding:12px;display:grid;position:absolute;top:100%;right:12px;box-shadow:0 8px 24px #0006}.mobile-user-info{gap:2px;display:grid}.mobile-user-info strong{font-size:14px}.mobile-user-info .small{color:var(--ink-secondary);font-size:12px}.mobile-logout-btn{border:1px solid var(--danger);border-radius:var(--radius-sm);background:var(--danger-dim);height:36px;color:var(--danger);justify-content:center;align-items:center;gap:8px;font-size:13px;font-weight:500;transition:background .12s;display:flex}.mobile-logout-btn:hover,.mobile-logout-btn:active{background:var(--danger);color:#fff}.admin-viewing-label{color:var(--warn);background:var(--warn-dim);border-radius:4px;margin-left:4px;padding:1px 6px;font-size:11px;font-weight:600}.admin-exit-btn{border:1px solid var(--warn);border-radius:var(--radius-sm);background:var(--warn-dim);height:30px;color:var(--warn);white-space:nowrap;align-items:center;gap:4px;padding:0 10px;font-size:12px;font-weight:500;transition:background .12s,color .12s;display:flex}.admin-exit-btn:hover{background:var(--warn);color:#000}.admin-exit-text{display:inline}.status-dot{background:var(--ok);border-radius:50%;flex-shrink:0;width:8px;height:8px;animation:2s ease-in-out infinite pulse-dot;display:inline-flex}.status-dot.warn{background:var(--warn);animation-name:none}.status-dot.danger{background:var(--danger);animation-name:none}.status-dot.offline{background:var(--muted);animation:none}.status-row{align-items:center;gap:6px;font-size:12px;display:flex}.chat-pane{flex-direction:column;grid-row:2;min-height:0;display:flex}.messages{flex-direction:column;flex:1 1 0;gap:14px;min-height:0;padding:20px;display:flex;overflow-y:auto}.message{max-width:720px;animation:.3s ease-out both msgSlideIn}.message.user{align-self:flex-end}.bubble{background:var(--brand);color:#fff;border-radius:16px 16px 4px;align-items:flex-end;gap:10px;padding:12px 16px;font-size:14px;line-height:1.5;display:inline-flex}.bubble .message-time{color:#fff9;white-space:nowrap;font-size:11px}.message-card{border-radius:4px 16px 16px;grid-template-columns:minmax(0,1fr);gap:10px;min-width:0;padding:16px;animation:.35s ease-out both fadeSlideUp;display:grid}.message-card>*,.message{min-width:0}.bubble{overflow-wrap:anywhere;max-width:100%}.var-big-value{flex-wrap:wrap}.metric-line{min-width:0}.metric-line strong{overflow-wrap:anywhere;min-width:0}.message-card.typing{color:var(--muted);align-items:center;gap:10px;padding:12px 16px;font-size:14px;display:flex}.typing-dots{align-items:center;gap:4px;display:flex}.typing-dots span{background:var(--brand);border-radius:50%;width:7px;height:7px;animation:1.2s ease-in-out infinite typingBounce}.typing-dots span:nth-child(2){animation-delay:.15s}.typing-dots span:nth-child(3){animation-delay:.3s}.message-card header{color:var(--brand-strong);align-items:center;gap:8px;font-size:14px;font-weight:600;display:flex}.message-card p{color:var(--ink-secondary);margin:0;font-size:14px;line-height:1.5}.pro-card{background:linear-gradient(135deg, var(--bg-raised), #8b5cf614);border-color:#8b5cf64d}.error-card{border-color:#ef44444d}.error-card header{color:var(--danger)}.ai-notice{border:1px solid color-mix(in srgb, var(--accent,#3b82f6) 35%, transparent);background:color-mix(in srgb, var(--accent,#3b82f6) 8%, transparent);color:var(--text-secondary,#94a3b8);border-radius:10px;align-items:center;gap:10px;margin:8px 12px 4px;padding:8px 12px;font-size:12.5px;line-height:1.35;display:flex}.ai-notice svg{color:var(--accent,#3b82f6);flex-shrink:0}.ai-notice-close{border:1px solid color-mix(in srgb, var(--accent,#3b82f6) 45%, transparent);color:var(--accent,#3b82f6);cursor:pointer;background:0 0;border-radius:8px;flex-shrink:0;margin-left:auto;padding:4px 10px;font-size:12px;font-weight:600}.ai-notice-close:hover{background:color-mix(in srgb, var(--accent,#3b82f6) 14%, transparent)}.chat-welcome{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:20px;padding:40px 20px;animation:.5s ease-out fadeIn;display:flex}.chat-welcome-icon{background:linear-gradient(135deg, var(--brand-navy), var(--brand));color:#fff;border-radius:16px;place-items:center;width:64px;height:64px;display:grid}.chat-welcome h3{color:var(--ink);margin:0;font-size:18px;font-weight:700}.chat-welcome p{color:var(--muted);max-width:360px;margin:0;font-size:14px;line-height:1.5}.welcome-commands{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:4px;display:flex}.welcome-cmd{border:1px solid var(--line-light);background:var(--bg-raised);color:var(--ink-secondary);cursor:pointer;border-radius:20px;padding:8px 16px;font-size:13px;transition:background .15s,color .15s,border-color .15s,transform .1s}.welcome-cmd:hover{background:var(--brand-dim);color:var(--brand-strong);border-color:var(--brand)}.metric-list{gap:6px;display:grid}.metric-line{border-bottom:1px solid var(--line);justify-content:space-between;gap:16px;padding:6px 0;font-size:13px;display:flex}.metric-line:last-child{border-bottom:0;padding-bottom:0}.metric-line span{color:var(--ink-secondary)}.metric-line strong{color:var(--ink)}.status-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px;display:grid}.status-var{background:var(--bg);border-radius:var(--radius-sm);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:2px 8px;min-width:0;padding:8px 10px;font-size:13px;display:flex}.var-name{color:var(--ink-secondary);text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}.var-value{color:var(--ok);white-space:nowrap;font-weight:600}.var-stale-ago{text-align:right;color:var(--warn,#f59e0b);flex:1 0 100%;font-size:11px}.status-pill-ago{opacity:.85;font-weight:500}.chart-period-row{gap:6px;margin-bottom:12px;display:flex}.chart-period-btn{border:1px solid var(--line);background:var(--panel);color:var(--muted);cursor:pointer;font:inherit;border-radius:999px;padding:5px 12px;font-size:13px}.chart-period-btn.active{border-color:var(--brand);background:var(--brand-dim,rgba(var(--brand-rgb),.12));color:var(--brand);font-weight:600}.chart-stats-row{grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:14px;display:grid}.chart-stat{border:1px solid var(--line);background:var(--surface-2,#7f7f7f0f);border-radius:10px;flex-direction:column;gap:2px;padding:8px 10px;display:flex}.chart-stat-label{color:var(--muted);text-transform:uppercase;letter-spacing:.4px;font-size:11px}.chart-stat strong{font-size:15px}@media (max-width:520px){.chart-stats-row{grid-template-columns:repeat(2,1fr)}}.chat-bigchart-host{height:360px;position:relative}@media (max-width:600px){.chat-bigchart-host{height:300px}}.chat-fullchart-backdrop{z-index:2300;background:var(--bg,#0b1220);animation:.15s ease-out backdropFadeIn;position:fixed;inset:0}.chat-fullchart-modal{background:var(--bg);padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px);padding-left:env(safe-area-inset-left,0px);padding-right:env(safe-area-inset-right,0px);flex-direction:column;display:flex;position:absolute;inset:0}.chat-fullchart-header{border-bottom:1px solid var(--line);touch-action:none;flex-shrink:0;align-items:flex-start;gap:10px;padding:10px 14px 12px;display:flex}.chat-fullchart-drag{display:none}.chat-fullchart-title{flex:1;align-items:flex-start;gap:10px;min-width:0;display:flex}.chat-fullchart-title h3{text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:15px;line-height:1.3;overflow:hidden}.chat-fullchart-substats{color:var(--muted);flex-wrap:wrap;gap:10px;margin:3px 0 0;font-size:12px;display:flex}.chat-fullchart-substats strong,.chat-fullchart-substats span:first-child{font-weight:600}.chat-card-substats{border:1px solid var(--line);background:var(--surface-2,#7f7f7f0f);border-radius:10px;gap:8px;margin:6px 0 8px;padding:6px 10px;font-size:11px}@media (max-width:400px){.chat-card-substats{gap:6px;padding:5px 8px;font-size:10px}}.chat-fullchart-close{border:1px solid var(--line);border-radius:var(--radius-sm,10px);width:44px;height:44px;color:var(--ink-secondary);background:0 0;flex-shrink:0;justify-content:center;align-items:center;transition:background .15s;display:inline-flex}.chat-fullchart-close:hover{background:var(--brand-dim);color:var(--brand-strong)}.chat-fullchart-body{flex-direction:column;flex:1;min-height:0;padding:10px 8px 14px;display:flex}@media (max-width:640px){.chat-fullchart-header{flex-direction:column;gap:6px;padding:8px 10px 10px}.chat-fullchart-drag{background:var(--line);border-radius:999px;align-self:center;width:40px;height:4px;margin-bottom:2px;display:block}.chat-fullchart-title{width:100%}.chat-fullchart-close{top:calc(env(safe-area-inset-top,0px) + 6px);position:absolute;right:10px}.chat-fullchart-substats{gap:8px;font-size:11.5px}}@media (max-width:950px) and (orientation:landscape) and (max-height:500px){.chat-fullchart-header{flex-direction:row;align-items:center;padding:6px 10px}.chat-fullchart-drag{display:none}.chat-fullchart-title h3{font-size:13px}.chat-fullchart-substats{gap:6px;font-size:10.5px}.chat-fullchart-close{width:40px;height:40px;position:static}.chat-fullchart-body{padding:4px 6px 8px}}.var-value.changed{animation:1.5s ease-out varFlash}.var-detail{gap:4px;display:grid}.var-badges,.var-badges-sm{flex-wrap:wrap;gap:6px;margin-top:4px;display:flex}.var-badge{background:var(--line);color:var(--muted);border-radius:4px;padding:3px 8px;font-size:11px;font-weight:600}.var-badge.ok{background:var(--ok-dim);color:var(--ok)}.var-badge.locked{color:#a78bfa;background:#8b5cf626}.var-badge-sm{background:var(--line);color:var(--muted);border-radius:3px;padding:1px 5px;font-size:10px;font-weight:700}.var-badge-sm.ok{background:var(--ok-dim);color:var(--ok)}.alarm-list{gap:6px;display:grid}.alarm-row{background:var(--bg);border-radius:var(--radius-sm);align-items:center;gap:10px;padding:8px 10px;font-size:13px;display:flex}.alarm-row span:first-child{color:var(--ink-secondary);flex:1}.alarm-rules{color:var(--warn);font-size:11px;font-weight:600}.diag-card{gap:6px;margin-top:6px;display:grid}.diag-row,.diag-kv,.diag-event{background:var(--bg);border-radius:var(--radius-sm);align-items:center;gap:10px;padding:8px 10px;font-size:13px;display:flex}.diag-row span:first-child,.diag-kv span:first-child{color:var(--ink-secondary);flex:1}.diag-row .muted,.diag-kv .muted{text-align:right}.diag-anomaly{flex-direction:column;align-items:stretch;gap:2px}.diag-anomaly span:first-child{flex:none}.diag-rules{gap:4px;margin-top:2px;display:grid}.diag-rule{color:var(--ink-secondary);align-items:center;gap:6px;font-size:12px;display:flex}.diag-level{text-transform:uppercase;align-items:center;gap:4px;font-size:11px;font-weight:700;display:inline-flex}.diag-level.warning{color:var(--warn)}.diag-level.critical{color:var(--danger,#e5484d)}.plant-summary-row{flex-wrap:wrap;gap:8px;display:flex}.summary-chip{background:var(--bg);border-radius:var(--radius-sm);text-align:center;min-width:70px;padding:8px 12px}.summary-chip span{color:var(--brand-strong);font-size:20px;font-weight:700;display:block}.summary-chip small{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:11px}.summary-chip.plan span{text-transform:uppercase;color:var(--ok);font-size:14px}.composer{border-top:1px solid var(--line);background:var(--panel);min-width:0;padding:12px 20px 16px}.composer form{align-items:center;gap:10px;display:flex}.composer input{border:1px solid var(--line-light);border-radius:var(--radius);background:var(--bg-raised);width:100%;height:46px;padding:0 14px;font-size:14px;transition:border-color .2s,box-shadow .2s}.composer input:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-dim);outline:none}.composer input::placeholder{color:var(--muted)}.composer input:disabled{opacity:.5}.send-button{border-radius:var(--radius);background:var(--cta);color:#fff;border:0;flex-shrink:0;place-items:center;width:46px;height:46px;transition:background .12s,opacity .12s,transform .1s,box-shadow .3s;display:grid}.send-button:hover:not(:disabled){background:#ea580c}.send-button:disabled{opacity:.4;cursor:not-allowed}.send-button.flash{animation:.4s ease-out sendFlash}.quick{flex-wrap:wrap;gap:6px;margin-bottom:10px;display:flex}.quick button{background:var(--bg-raised);border:1px solid var(--line-light);min-height:32px;color:var(--ink-secondary);border-radius:20px;padding:0 12px;font-size:13px;transition:background .12s,color .12s,border-color .12s,transform .1s}.quick button:hover:not(:disabled){background:var(--brand-dim);color:var(--brand-strong);border-color:var(--brand)}.quick button:disabled{opacity:.4;cursor:not-allowed}.tab-content{contain:layout style paint;grid-row:2/4;padding:20px;animation:.25s ease-out tabFadeIn;overflow-y:auto}.tab-header{margin-bottom:20px}.tab-header h3{margin:0 0 4px;font-size:18px}.empty-state{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:60px 20px;display:flex}.empty-icon{color:var(--muted);opacity:.4}.empty-state p{color:var(--muted);max-width:300px;line-height:1.5}.pro-hint{color:#a78bfa;align-items:center;gap:6px;margin-top:8px;font-size:12px;display:flex}.action-button{border-radius:var(--radius);background:var(--brand);color:#fff;border:0;justify-content:center;align-items:center;gap:8px;min-height:42px;padding:0 20px;font-size:14px;font-weight:600;transition:background .12s,transform .1s;display:flex}.action-button:hover{background:#2563eb}.systems-list{gap:16px;display:grid}.system-group{gap:10px;animation:.35s ease-out both fadeSlideUp;display:grid}.line-name{color:var(--brand-strong);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--line);margin:0;padding-bottom:6px;font-size:14px}.machine-card{gap:10px;padding:14px;display:grid}.machine-header{color:var(--ink);align-items:center;gap:8px;display:flex}.machine-header .small{margin-left:auto}.machine-vars{gap:4px;display:grid}.machine-var-row{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:8px;padding:6px 0;font-size:13px;display:flex}.machine-var-row:last-child{border-bottom:0}.estado-summary{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;margin-bottom:24px;display:grid}.estado-card{background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--radius);text-align:center;padding:16px;transition:box-shadow .25s,border-color .25s;animation:.3s ease-out both fadeSlideUp}.estado-card:hover{border-color:rgba(var(--brand-rgb), .25);box-shadow:0 2px 16px rgba(var(--brand-rgb), .08)}.estado-card:nth-child(2){animation-delay:50ms}.estado-card:nth-child(3){animation-delay:.1s}.estado-card:nth-child(4){animation-delay:.15s}.estado-number{color:var(--ink);margin-bottom:4px;font-size:32px;font-weight:800;line-height:1}.estado-number.ok{color:var(--ok)}.estado-number.warn{color:var(--warn)}.estado-card span{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:12px}.estado-vars{gap:8px;display:grid}.estado-vars h4{color:var(--ink-secondary);text-transform:uppercase;letter-spacing:.04em;margin:0 0 8px;font-size:14px}.estado-var-row{justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.estado-var-info{gap:2px;min-width:0;display:grid;overflow:hidden}.estado-var-info strong{white-space:nowrap;text-overflow:ellipsis;font-size:14px;overflow:hidden}.estado-var-value{text-align:right;justify-items:flex-end;gap:4px;display:grid}.estado-var-value strong{color:var(--ok);white-space:nowrap;font-size:15px}.alarm-card{gap:10px;padding:14px;display:grid}.notify-button{background:var(--brand-dim);min-height:36px;color:var(--brand-strong);border-radius:var(--radius-sm);border:1px solid #0000;padding:0 12px;font-size:13px;font-weight:600}.nav-btn-wrap{place-items:center;display:grid;position:relative}.alarm-badge{background:var(--danger);color:#fff;border-radius:8px;place-items:center;min-width:16px;height:16px;padding:0 4px;font-size:9px;font-weight:700;line-height:1;display:grid;position:absolute;top:-2px;right:50%;transform:translate(14px)}.nav-badge-wrap{flex:1;align-items:center;gap:10px;display:flex;position:relative}.sidebar-badge{background:var(--danger);color:#fff;border-radius:9px;place-items:center;min-width:18px;height:18px;margin-left:auto;padding:0 5px;font-size:10px;font-weight:700;line-height:1;display:grid}@keyframes alarmPulse{0%,to{opacity:1}50%{opacity:.4}}@keyframes bellRing{0%,to{transform:rotate(0)}10%,30%,50%{transform:rotate(-12deg)}20%,40%,60%{transform:rotate(12deg)}70%,80%,90%{transform:rotate(0)}}.alarm-pulse{animation:1.4s ease-in-out infinite alarmPulse;background:var(--danger)!important;color:#fff!important}.bell-ringing{color:var(--danger);transform-origin:top;animation:1.6s ease-in-out infinite bellRing}.refresh-btn{border:1px solid var(--line-light);border-radius:var(--radius-sm);width:36px;height:36px;color:var(--muted);background:0 0;place-items:center;transition:color .15s,border-color .15s,transform .1s;display:grid}.refresh-btn:hover{color:var(--ink);border-color:var(--ink-secondary)}.refresh-btn.refreshing svg{animation:.6s linear infinite spin}.refresh-btn.sa-notif-bell{width:44px;height:44px}.bottom-nav{display:none}@media (max-width:1180px){.app-shell{grid-template-columns:240px minmax(0,1fr)}.app-shell.sidebar-collapsed{grid-template-columns:72px minmax(0,1fr)}}@media (max-width:760px){.app-shell,.app-shell.sidebar-collapsed{grid-template-columns:1fr;height:100lvh;padding-bottom:68px;position:relative}.sidebar{display:none}.topbar{padding:10px 12px;padding-top:calc(10px + env(safe-area-inset-top));padding-left:max(12px, env(safe-area-inset-left));padding-right:max(12px, env(safe-area-inset-right));z-index:20;background:var(--panel);position:sticky;top:0}.plant-title h2{font-size:14px}.mobile-user-btn{display:grid}.desktop-only{display:none!important}.messages{padding:14px 12px;padding-left:max(12px, env(safe-area-inset-left));padding-right:max(12px, env(safe-area-inset-right))}.message{max-width:94%}.status-grid{grid-template-columns:1fr}.composer{padding:10px 12px 14px;padding-bottom:calc(14px + env(safe-area-inset-bottom));padding-left:max(12px, env(safe-area-inset-left));padding-right:max(12px, env(safe-area-inset-right));margin-bottom:64px}.tab-content{padding:14px 12px;padding-bottom:calc(80px + env(safe-area-inset-bottom));padding-left:max(12px, env(safe-area-inset-left));padding-right:max(12px, env(safe-area-inset-right))}.bottom-nav{-webkit-backdrop-filter:blur(16px);border-top:1px solid var(--line);padding:4px max(4px, env(safe-area-inset-right)) max(4px, calc(env(safe-area-inset-bottom) - 8px)) max(4px, env(safe-area-inset-left));z-index:20;background:#151d2bd9;grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;display:grid;position:absolute;bottom:0;left:0;right:0}.bottom-nav button{min-width:0;min-height:52px;color:var(--muted);background:0 0;border:0;place-items:center;gap:2px;padding:6px 0;font-size:10px;transition:color .15s,transform .1s;display:grid;position:relative}.bottom-nav button.active{color:var(--brand)}.bottom-nav button.active:after{content:"";background:var(--brand);width:24px;height:3px;box-shadow:0 0 8px var(--brand), 0 0 16px rgba(var(--brand-rgb), .3);border-radius:2px;animation:2s ease-in-out infinite glowPulse;position:absolute;bottom:4px;left:50%;transform:translate(-50%)}.bottom-nav button span{white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:10px;overflow:hidden}}@media (max-width:360px){.bottom-nav button span{font-size:9px}}.more-sheet-backdrop{z-index:60;background:#00000073;align-items:flex-end;animation:.16s more-fade;display:flex;position:fixed;inset:0}.more-sheet{background:var(--panel,#17191f);width:100%;padding:8px 16px calc(20px + env(safe-area-inset-bottom));border-top-left-radius:18px;border-top-right-radius:18px;animation:.2s cubic-bezier(.2,.7,.2,1) more-slide;box-shadow:0 -8px 32px #0000004d}.more-sheet-grip{background:var(--line);border-radius:4px;width:40px;height:4px;margin:6px auto 14px}.more-sheet-grid{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.more-item{border:1px solid var(--line);min-height:84px;color:var(--ink);cursor:pointer;background:0 0;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:16px 8px;font-size:12px;font-weight:600;display:flex;position:relative}.more-item:active{background:var(--line-soft,var(--line))}.more-item .badge-pro{position:absolute;top:6px;right:6px}@keyframes more-fade{0%{opacity:0}to{opacity:1}}@keyframes more-slide{0%{transform:translateY(100%)}to{transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.more-sheet-backdrop,.more-sheet{animation:none}}.navcust-sheet{flex-direction:column;max-height:84vh;display:flex;overflow-y:auto}.navcust-head{padding:0 2px 10px}.navcust-list{position:relative;overflow:hidden}.navcust-row{box-sizing:border-box;background:var(--panel);color:var(--ink);border:1px solid var(--line);-webkit-user-select:none;user-select:none;cursor:grab;border-radius:12px;align-items:center;gap:12px;padding:0 14px;font-size:14px;font-weight:600;display:flex;position:absolute;left:0;right:0}.navcust-row.dragging{cursor:grabbing;z-index:5;border-color:var(--accent);transform:scale(1.02);box-shadow:0 10px 28px #00000047}.navcust-pos{text-align:center;width:20px;color:var(--muted);font-variant-numeric:tabular-nums;font-size:13px}.navcust-ico{color:var(--accent);display:inline-flex}.navcust-label{flex:1}.navcust-grip{color:var(--muted);flex-shrink:0}.navcust-divider{border-top:1px dashed var(--line-light,var(--line));pointer-events:none;align-items:center;height:0;display:flex;position:absolute;left:0;right:0}.navcust-divider span{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);background:var(--panel);margin-left:auto;padding:0 8px;font-size:10px;font-weight:700;transform:translateY(-1px)}.navcust-done{justify-content:center;width:100%;margin-top:14px}.navcust-open{justify-content:center;width:100%;margin-top:10px}.value-kpi-row{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:14px;margin-bottom:14px;display:grid}.value-kpi-row:empty{display:none}.alarm-header-count{color:var(--danger);font-size:14px;font-weight:500}.alarm-error{background:var(--danger-dim);color:var(--danger);border-radius:var(--radius-sm);align-items:center;gap:8px;margin:0 16px 12px;padding:10px 14px;font-size:13px;display:flex}.alarm-test-msg{background:var(--brand-dim);color:var(--brand);border-radius:var(--radius-sm);align-items:center;gap:8px;margin:0 0 12px;padding:10px 14px;font-size:13px;display:flex}.vcfg-gated{border:1px dashed var(--line);color:var(--muted);cursor:pointer;font:inherit;background:0 0;border-radius:8px;align-items:center;gap:6px;padding:8px 12px;font-size:13px;display:inline-flex}.vcfg-gated:hover{border-color:var(--brand);color:var(--ink)}.vcfg-write-mode{margin-top:10px}.vcfg-write-mode-label{color:var(--muted);margin-bottom:6px;font-size:12px;display:block}.vcfg-write-mode-opts{flex-wrap:wrap;gap:6px;display:flex}.vcfg-write-mode-opt{border:1px solid var(--line);background:var(--panel);color:var(--text);cursor:pointer;font:inherit;border-radius:8px;padding:6px 12px;font-size:13px}.vcfg-write-mode-opt.active{border-color:var(--brand);background:var(--brand-dim,rgba(var(--brand-rgb), .12));color:var(--brand)}.admin-hint{color:var(--muted);margin-top:4px;display:block}.widget-output{flex-direction:column;width:100%;height:100%;display:flex;overflow:hidden;container-type:size}.widget-output>.widget-bn-header{flex-shrink:0}.widget-output-body{flex-direction:column;flex:1;justify-content:center;align-items:center;gap:8px;min-height:0;padding:6px;display:flex;overflow:hidden}.widget-output-body>.output-feedback{flex-shrink:0}.output-switch{border:1px solid var(--line);background:var(--surface-2,#7f7f7f1a);cursor:pointer;color:var(--muted);border-radius:999px;flex-shrink:0;align-items:center;gap:10px;max-width:100%;padding:8px 16px;font-weight:700;display:inline-flex}.output-switch .output-switch-knob{background:var(--muted);border-radius:50%;width:18px;height:18px;transition:all .15s}.output-switch.on{color:#10b981;background:#10b98126;border-color:#10b981}.output-switch.on .output-switch-knob{background:#10b981}.output-switch:disabled{opacity:.5;cursor:not-allowed}.widget-setpoint-body{justify-content:flex-start;align-items:stretch;gap:8px}.setpoint-hero{flex-direction:column;flex:auto;justify-content:center;align-items:center;gap:1px;min-width:0;min-height:0;display:flex;overflow:hidden}.setpoint-eyebrow{text-transform:uppercase;letter-spacing:.6px;color:var(--ink-secondary);flex-shrink:0;font-size:10px;font-weight:600}.setpoint-value-row{justify-content:center;min-height:0}.widget-setpoint-body .setpoint-value{font-size:clamp(18px,min(15cqw,26cqh),48px)}.widget-setpoint-body .setpoint-unit-big{font-size:clamp(11px,min(6cqw,9cqh),18px)}.widget-setpoint-row{flex-wrap:nowrap;flex-shrink:0;align-items:center;gap:6px;width:100%;min-width:0;display:flex}.widget-setpoint-input{border:1px solid var(--line);background:var(--panel);min-width:34px;color:var(--text);font:inherit;border-radius:8px;flex:70px;padding:7px 9px;transition:border-color .12s,box-shadow .12s}.widget-setpoint-input:focus{border-color:var(--brand,#2563eb);outline:none;box-shadow:0 0 0 3px #2563eb26}.widget-setpoint-unit{color:var(--muted);flex-shrink:0;font-size:12px}.widget-setpoint-input.out-of-range{border-color:var(--danger,#dc2626)}.widget-setpoint-input.out-of-range:focus{box-shadow:0 0 0 3px #dc262626}.widget-setpoint-range{color:var(--muted);text-align:center;flex-shrink:0;font-size:11px}.widget-setpoint-range.bad{color:var(--danger,#dc2626);font-weight:600}.widget-stepper-body{justify-content:center;align-items:center;gap:8px}.widget-stepper-row{flex-shrink:0;justify-content:center;align-items:center;gap:12px;width:100%;min-height:0;display:flex}.stepper-arrow{border:1px solid var(--line);background:var(--panel);width:clamp(30px,15cqmin,42px);height:clamp(30px,15cqmin,42px);color:var(--text);cursor:pointer;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;transition:border-color .12s,background .12s;display:inline-flex}.stepper-arrow:hover:not(:disabled){border-color:var(--brand,#2563eb);background:#2563eb14}.stepper-arrow:disabled{opacity:.4;cursor:not-allowed}.stepper-value{text-align:center;min-width:0;font-size:clamp(16px,min(12cqw,20cqh),32px);font-weight:800;line-height:1}.stepper-value .stepper-unit{color:var(--muted);margin-left:3px;font-size:.55em;font-weight:600}.widget-slider-body{justify-content:center;align-items:stretch;gap:4px}.widget-slider-val{text-align:center;flex-shrink:0;font-size:clamp(15px,min(11cqw,18cqh),28px);font-weight:800}.widget-slider-input{width:100%;accent-color:var(--brand,#2563eb);cursor:pointer;flex-shrink:0}.widget-slider-input:disabled{opacity:.5;cursor:not-allowed}.widget-slider-ends{color:var(--muted);flex-shrink:0;justify-content:space-between;font-size:11px;display:flex}.output-send-btn,.output-command-btn{background:var(--brand);color:#fff;cursor:pointer;border:none;border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:8px 14px;font-weight:600;display:inline-flex}.output-command-btn{flex-shrink:0;width:100%;padding:12px;font-size:15px}.output-send-btn{flex-shrink:0;transition:filter .12s,box-shadow .12s}.output-send-btn:hover:not(:disabled),.output-command-btn:hover:not(:disabled){filter:brightness(1.08)}.output-send-btn:focus-visible,.output-command-btn:focus-visible{outline:none;box-shadow:0 0 0 3px #2563eb59}.output-send-btn:disabled,.output-command-btn:disabled{opacity:.5;cursor:not-allowed}.output-feedback{color:var(--muted);flex-shrink:0;align-items:center;gap:4px;font-size:12px;display:inline-flex}.output-feedback.ok{color:#10b981}.output-feedback.err{color:#ef4444}@container (max-height:150px){.widget-output-body{gap:5px;padding:4px}.output-send-btn{padding:7px 10px}.output-command-btn{padding:9px;font-size:13px}.output-switch{padding:6px 12px}}@container (max-width:190px){.widget-setpoint-row .output-send-btn{gap:0;padding:7px 8px;font-size:0}}@container (max-height:105px){.widget-output>.widget-bn-header{font-size:11px}.setpoint-eyebrow,.widget-setpoint-range{display:none}}.modal-card.write-confirm{max-width:420px}.write-confirm-body{padding:16px}.write-confirm-action{color:var(--ink);margin:0 0 6px;font-size:16px;font-weight:700}.write-confirm-detail{color:var(--muted);margin:0 0 12px;font-size:14px}.write-confirm-warn{color:#b45309;background:#f59e0b1f;border:1px solid #f59e0b66;border-radius:8px;margin:0;padding:10px 12px;font-size:13px}.write-confirm-actions{border-top:1px solid var(--line);justify-content:flex-end;gap:8px;padding:12px 16px;display:flex}.write-confirm-actions .btn-secondary{border:1px solid var(--line);background:var(--panel);color:var(--text);cursor:pointer;font:inherit;border-radius:8px;padding:8px 16px}.write-confirm-actions .btn-danger{color:#fff;cursor:pointer;font-weight:600;font:inherit;background:#dc2626;border:none;border-radius:8px;padding:8px 16px}.write-confirm-actions .btn-danger:disabled{opacity:.5;cursor:not-allowed}.confirm-dialog-card{max-width:440px}.confirm-dialog-object{background:var(--panel-2,#7f7f7f14);border:1px solid var(--line);color:var(--ink);overflow-wrap:anywhere;border-radius:8px;margin:0 0 10px;padding:8px 12px;font-size:15px;font-weight:700}.confirm-dialog-field{margin:12px 0 0;display:block}.confirm-dialog-label{color:var(--muted);margin:0 0 6px;font-size:13px;display:block}.confirm-dialog-label strong{color:var(--ink)}.confirm-dialog-input{box-sizing:border-box;border:1px solid var(--line);background:var(--panel);width:100%;color:var(--text);font:inherit;border-radius:8px;padding:9px 12px;font-size:15px}.confirm-dialog-input:focus{border-color:#dc2626;outline:none;box-shadow:0 0 0 3px #dc26262e}@media (prefers-reduced-motion:reduce){.confirm-dialog-backdrop{animation:none!important}}.confirm-choice-card{max-width:480px}.confirm-choice-actions{flex-wrap:wrap}.confirm-choice-actions .btn-primary{cursor:pointer;font-weight:600;font:inherit;border:none;border-radius:8px;padding:8px 16px}.chat-write-confirm{margin-top:8px}.chat-write-action{margin:0 0 6px;font-weight:700}.chat-write-warn{color:#b45309;background:#f59e0b1f;border:1px solid #f59e0b66;border-radius:8px;align-items:flex-start;gap:6px;margin:0 0 10px;padding:8px 10px;font-size:12px;display:flex}.chat-write-actions{gap:8px;display:flex}.chat-write-btn.danger{color:#fff;cursor:pointer;font-weight:600;font:inherit;background:#dc2626;border:none;border-radius:8px;padding:7px 16px}.chat-write-btn.danger:disabled{opacity:.6;cursor:not-allowed}.chat-write-done{color:#10b981;margin:6px 0 0;font-weight:600}.chat-write-err{color:#ef4444;margin:0 0 8px;font-size:12px}.chat-write-btn{border:1px solid var(--brand,#2563eb);background:var(--brand,#2563eb);color:#fff;cursor:pointer;font-weight:600;font:inherit;border-radius:8px;padding:7px 16px}.chat-write-btn:disabled{opacity:.55;cursor:not-allowed}.chat-conduct-confirm{margin-top:10px}.chat-conduct-confirm .chat-write-btn{align-items:center;gap:6px;display:inline-flex}.chat-conduct-actions{flex-wrap:wrap;gap:8px;display:flex}.chat-conduct-confirm.done .chat-conduct-actions{margin-top:6px}.ai-unavailable-card{border-color:var(--warn-dim)}.ai-unavailable-card header{color:var(--warn)}.chat-ai-unavailable{margin-top:10px}.chat-ai-unavailable .chat-write-btn{align-items:center;gap:6px;display:inline-flex}.chat-ai-unavailable-hint{color:var(--ink);margin:0 0 8px;font-size:13px;font-weight:600}.chat-ai-unavailable-menu{flex-wrap:wrap;gap:8px;display:flex}.chat-write-btn.ghost{color:var(--brand);border:1px solid var(--brand);background:0 0}.chat-write-btn.ghost:hover{background:var(--brand-dim)}.chat-write-picker{margin-top:8px}.chat-write-picker-hint{margin:0 0 8px;font-size:13px;font-weight:600}.chat-write-picker-list{flex-direction:column;gap:6px;display:flex}.chat-write-picker-item{border:1px solid var(--line,#0000001f);background:var(--surface,#fff);cursor:pointer;width:100%;font:inherit;text-align:left;border-radius:10px;align-items:center;gap:8px;padding:9px 11px;transition:border-color .12s,background .12s;display:flex}.chat-write-picker-item:hover{border-color:var(--brand,#2563eb);background:#2563eb0f}.chat-write-picker-item .cwp-name{flex:1;font-weight:600}.chat-write-picker-item .cwp-mode{letter-spacing:.02em;color:var(--brand,#2563eb);background:#2563eb1f;border-radius:999px;flex-shrink:0;padding:2px 8px;font-size:11px;font-weight:700}.chat-write-picker-back{color:var(--brand,#2563eb);cursor:pointer;font-weight:600;font:inherit;background:0 0;border:none;margin:0 0 8px;padding:4px 8px}.chat-setpoint-entry{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.chat-setpoint-entry input{border:1px solid var(--line,#00000026);min-width:120px;font:inherit;border-radius:8px;flex:1;padding:8px 10px}.chat-setpoint-range{width:100%;color:var(--ink-secondary,#6b7280);font-size:11px}.chat-write-output{flex-direction:column;gap:8px;margin-top:8px;display:flex}.chat-write-output .cwo-last{background:#2563eb14;border-radius:8px;align-items:center;gap:6px;padding:7px 10px;font-size:13px;display:flex}.chat-write-output .cwo-last-label{color:var(--ink-secondary,#6b7280)}.chat-write-output .cwo-last-val{margin-left:auto;font-weight:700}.vcfg-gated strong{color:var(--brand)}.pricing-section{flex-direction:column;gap:14px;display:flex}.pricing-tabs{border-bottom:1px solid var(--line);flex-wrap:wrap;gap:4px;display:flex}.pricing-tab{cursor:pointer;font:inherit;color:var(--ink-secondary);background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;gap:6px;margin-bottom:-1px;padding:9px 16px;font-size:14px;font-weight:600;display:inline-flex}.pricing-tab:hover{color:var(--ink)}.pricing-tab.active{color:var(--brand,#2563eb);border-bottom-color:var(--brand,#2563eb)}@media (max-width:640px){.pricing-tab{flex:auto;justify-content:center;padding:10px 8px}}.alarm-error.compact{margin:0 0 12px}.alarm-error button{color:var(--danger);background:0 0;border:0;margin-left:auto;padding:2px}.active-alarms-section{margin:0 16px 16px}.active-alarms-title{color:var(--danger);align-items:center;gap:8px;margin:0 0 10px;font-size:14px;font-weight:600;display:flex}.alarm-pulse{animation:1.2s ease-in-out infinite alarmPulse}.active-alarms-list{flex-direction:column;gap:8px;display:flex}.active-alarm-card{border-radius:var(--radius-sm);border-left:3px solid;padding:12px 14px}.active-alarm-card.severity-critical{background:var(--danger-dim);border-left-color:var(--danger)}.active-alarm-card.severity-warning{background:var(--warn-dim);border-left-color:var(--warn)}.active-alarm-card.severity-info{background:var(--brand-dim);border-left-color:var(--brand)}.active-alarm-header{align-items:center;gap:8px;margin-bottom:4px;display:flex}.active-alarm-name{font-size:14px;font-weight:600}.active-alarm-detail{color:var(--ink-secondary);flex-wrap:wrap;gap:8px 16px;font-size:13px;display:flex}.active-alarm-value{color:var(--ink);font-weight:600}.active-alarm-condition{color:var(--muted);font-size:12px}.severity-badge,.severity-badge-sm{text-transform:uppercase;letter-spacing:.02em;border-radius:10px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-flex}.severity-badge-sm{padding:1px 6px;font-size:10px}.severity-critical{background:var(--danger-dim);color:var(--danger)}.severity-warning{background:var(--warn-dim);color:var(--warn)}.severity-info{background:var(--brand-dim);color:var(--brand)}.alarm-rules-section{margin:0 16px}.rules-section-title{color:var(--ink-secondary);margin:0 0 10px;font-size:13px;font-weight:600}.alarm-rules-list{flex-direction:column;gap:12px;display:flex}.alarm-group{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.alarm-group-header{background:var(--bg-raised);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:10px 14px;display:flex}.alarm-group-header strong{font-size:14px}.alarm-rule-row{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:10px 14px;transition:background .15s;display:flex}.alarm-rule-row:last-child{border-bottom:0}.alarm-rule-row:hover{background:var(--panel-hover)}.alarm-rule-row.rule-active{background:var(--danger-dim)}.alarm-rule-row.rule-disabled{opacity:.5}.alarm-rule-row.rule-just-created{animation:2.5s ease-out alarmRuleJustCreated}@keyframes alarmRuleJustCreated{0%{background:color-mix(in srgb, var(--accent) 22%, transparent);box-shadow:0 0 0 1px var(--accent) inset}to{box-shadow:none;background:0 0}}.alarm-rule-info{flex-wrap:wrap;align-items:center;gap:10px;min-width:0;display:flex}.alarm-rule-name{font-size:13px;font-weight:500}.alarm-rule-condition{color:var(--ink-secondary);font-family:monospace;font-size:12px}.alarm-rule-actions{flex-shrink:0;align-items:center;gap:10px;display:flex}.thr-alarm-section{margin-top:16px}.thr-alarm-machine{color:var(--ink-secondary);font-weight:400}.thr-alarm-body{padding:10px 14px}.thr-alarm-bands{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.thr-alarm-band{text-transform:none;letter-spacing:0;white-space:nowrap;align-items:center;gap:5px;display:inline-flex}.thr-alarm-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px;display:inline-block}.thr-alarm-note{color:var(--ink-secondary);margin:8px 0 0}.alarm-history-section{margin:0}.alarm-header-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.action-button.secondary{background:var(--panel);color:var(--ink);border:1px solid var(--line)}.action-button.secondary:hover{border-color:var(--brand);color:var(--brand)}.alarm-history-btn{position:relative}.alarm-history-btn-badge{background:var(--danger,#ef4444);color:#fff;border-radius:9px;place-items:center;min-width:18px;height:18px;margin-left:2px;padding:0 5px;font-size:11px;font-weight:700;line-height:1;display:inline-grid}.alarm-history-modal{width:min(680px,96vw);max-height:88vh;max-height:min(var(--vvh,88dvh), 88dvh);flex-direction:column;display:flex}.alarm-history-modal-body{overscroll-behavior:contain;flex:auto;min-height:0;padding:4px 4px 8px;overflow-y:auto}.alarm-history-total{color:var(--muted)}.alarm-smart-btn{color:#a855f7;border-color:#a855f766}.alarm-smart-btn:hover{color:#a855f7;border-color:#a855f7}.smart-modal{width:min(720px,96vw);max-height:90vh;max-height:min(var(--vvh,90dvh), 90dvh);flex-direction:column;display:flex}.smart-embedded{max-width:920px;margin:0 auto;padding:16px}.smart-embedded .modal-head{padding:0 0 4px}.smart-embedded .smart-tabs{padding:10px 0 0}.smart-embedded .smart-body{flex:none;min-height:0;padding:12px 0;overflow:visible}.vigilancia-rules-block{max-width:920px;margin:0 auto}.vigilancia-rules-block.smart-embedded{border-top:1px solid var(--line-soft,var(--line));margin-top:22px;padding-top:16px}.vigilancia-rules-eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);align-items:center;gap:6px;font-size:12px;font-weight:700;display:inline-flex}.vigilancia-view{flex-direction:column;gap:12px;display:flex}.vigilancia-header{align-items:flex-start;gap:12px}.vigilancia-heading{min-width:0}.vigilancia-heading h3{margin-bottom:2px}.vigilancia-heading-copy{color:var(--muted);margin:0}.vigilancia-open-badge{background:var(--danger,#ef4444);margin-left:10px;font-size:11px}.vigilancia-header-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.vigilancia-segments{border:1px solid var(--line);background:var(--bg-raised,#ffffff08);border-radius:8px;align-items:center;gap:4px;padding:3px;display:inline-flex}.vigilancia-segment{color:var(--ink-secondary);cursor:pointer;font:inherit;touch-action:manipulation;background:0 0;border:0;border-radius:6px;padding:8px 10px;font-size:12px;font-weight:700;line-height:1}.vigilancia-segment.active{background:var(--brand);color:#fff}.vigilancia-segment:focus-visible,.vigilancia-filter:focus-visible{outline:2px solid color-mix(in srgb, var(--brand) 70%, white);outline-offset:2px}.vigilancia-map{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.vigilancia-map-step{border:1px solid var(--line-soft,var(--line));background:color-mix(in srgb, var(--panel) 78%, transparent);min-width:0;color:var(--ink-secondary);border-radius:8px;align-items:flex-start;gap:9px;padding:10px 12px;display:flex}.vigilancia-map-step.active{border-color:color-mix(in srgb, var(--brand) 52%, var(--line));background:color-mix(in srgb, var(--brand) 10%, var(--panel));color:var(--ink)}.vigilancia-map-step svg{color:var(--brand);flex:none}.vigilancia-map-step div{flex-direction:column;gap:2px;min-width:0;display:flex}.vigilancia-map-step strong{font-size:12px;line-height:1.2}.vigilancia-map-step span{color:var(--muted);overflow-wrap:anywhere;font-size:11.5px;line-height:1.25}.vigilancia-section{flex-direction:column;gap:12px;display:flex}.vigilancia-panel-head{border:1px solid var(--line-soft,var(--line));background:var(--bg-raised,#ffffff08);border-radius:8px;justify-content:space-between;align-items:flex-start;gap:12px;padding:10px 12px;display:flex}.vigilancia-panel-head>div:first-child{flex-direction:column;gap:2px;min-width:0;display:flex}.vigilancia-panel-head strong{font-size:13px}.vigilancia-panel-head span{color:var(--muted);font-size:12px;line-height:1.35}.vigilancia-filter-row{flex-wrap:wrap;flex:none;justify-content:flex-end;align-items:stretch;gap:6px;display:flex}.vigilancia-filter{border:1px solid var(--line);background:var(--panel);min-height:32px;color:var(--ink-secondary);cursor:pointer;font:inherit;touch-action:manipulation;border-radius:7px;align-items:center;gap:6px;padding:6px 9px;font-size:12px;font-weight:700;display:inline-flex}.vigilancia-filter.active{border-color:color-mix(in srgb, var(--brand) 70%, var(--line));background:color-mix(in srgb, var(--brand) 12%, var(--panel));color:var(--ink)}.vigilancia-filter strong{background:var(--bg);min-width:20px;height:20px;color:var(--ink);font-variant-numeric:tabular-nums;border-radius:10px;place-items:center;padding:0 5px;font-size:11px;display:inline-grid}.vigilancia-now-counters{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:12px;display:grid}.vigilancia-counter{border:1px solid var(--line-soft,var(--line));background:color-mix(in srgb, var(--panel) 78%, transparent);border-radius:8px;flex-direction:column;align-items:flex-start;gap:2px;min-width:0;padding:9px 12px;display:flex}.vigilancia-counter strong{font-variant-numeric:tabular-nums;font-size:18px;line-height:1.1}.vigilancia-counter span{color:var(--muted);font-size:11px;line-height:1.25}.vigilancia-counter.severity-critical strong{color:var(--danger,#ef4444)}.vigilancia-counter.severity-warning strong{color:var(--warn,#f59e0b)}.vigilancia-counter svg{color:var(--muted)}@media (max-width:820px){.vigilancia-header{flex-direction:column}.vigilancia-header-actions{justify-content:flex-start;width:100%}.vigilancia-map{grid-template-columns:1fr}.vigilancia-panel-head{flex-direction:column}.vigilancia-filter-row{justify-content:flex-start;width:100%}.vigilancia-now-counters{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:520px){.vigilancia-segments{width:100%}.vigilancia-segment{text-align:center;flex:1 1 0}.vigilancia-filter{flex:calc(50% - 6px);justify-content:space-between}.vigilancia-row{grid-template-columns:auto 1fr!important;row-gap:8px!important}.vigilancia-row>div:first-child{grid-row:1/3}.vigilancia-row>div:last-child{flex-wrap:wrap;grid-column:2;text-align:left!important;flex-direction:row!important;justify-content:flex-start!important;align-items:center!important}}.smart-anom-viz{align-items:center;gap:10px;margin:8px 0 2px;display:flex}.smart-anom-spark{background:var(--bg-raised,#ffffff08);border:1px solid var(--line);min-width:0;height:56px;color:var(--muted);border-radius:8px;flex:auto;position:relative;overflow:hidden}.smart-anom-spark svg{display:block}.smart-anom-spark-empty{height:100%;color:var(--muted);place-items:center;font-size:11px;display:grid}.smart-anom-spark-baselbl{letter-spacing:.04em;color:var(--muted);opacity:.8;text-transform:uppercase;font-size:9px;position:absolute;top:4px;left:6px}.smart-anom-chip{border:1px solid var(--line);white-space:nowrap;border-radius:8px;flex:none;align-items:center;gap:4px;padding:6px 10px;font-size:15px;font-weight:800;display:inline-flex}.smart-anom-chip.sev-warning{color:#f59e0b;background:#f59e0b1a;border-color:#f59e0b59}.smart-anom-chip.sev-critical{color:#ef4444;background:#ef44441f;border-color:#ef444466}@media (max-width:760px){.smart-embedded{padding-bottom:calc(96px + env(safe-area-inset-bottom))}}.smart-tabs{align-items:center;gap:8px;padding:10px 12px 0;display:flex}.smart-tab{color:var(--muted);cursor:pointer;font:inherit;background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;gap:6px;padding:10px 8px;font-weight:600;display:inline-flex}.smart-tab.active{color:var(--brand);border-bottom-color:var(--brand)}.smart-tabs-spacer{flex:1}.smart-badge{background:var(--danger,#ef4444);color:#fff;border-radius:9px;place-items:center;min-width:18px;height:18px;padding:0 5px;font-size:11px;font-weight:700;display:inline-grid}.smart-body{overscroll-behavior:contain;flex:auto;min-height:0;padding:12px;overflow-y:auto}.smart-anom-list,.smart-rule-list{flex-direction:column;gap:8px;display:flex}.smart-anom-row{background:var(--panel);border:1px solid var(--line);border-left:3px solid var(--line);border-radius:10px;align-items:center;gap:10px;padding:10px 12px;display:flex}.smart-anom-row.severity-critical{border-left-color:var(--danger,#ef4444)}.smart-anom-row.severity-warning{border-left-color:#f59e0b}.smart-anom-row.unread{background:#a855f70f}.smart-anom-main{flex:1;min-width:0}.smart-anom-top{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:2px;display:flex}.smart-anom-badge{color:#a855f7;align-items:center;gap:3px;font-size:11px;font-weight:600;display:inline-flex}.smart-anom-live{color:var(--danger,#ef4444);font-size:11px;font-weight:700}.smart-anom-expl{color:var(--ink);font-size:13px;font-weight:600}.smart-anom-meta{color:var(--muted);margin-top:2px;font-size:11px}.smart-anom-read{color:var(--muted);flex-shrink:0;align-items:center;gap:3px;font-size:12px;display:inline-flex}.smart-rule-row{background:var(--panel);border:1px solid var(--line);border-radius:10px;align-items:center;gap:8px;padding:10px 12px;display:flex}.smart-rule-info{flex-wrap:wrap;flex:1;align-items:center;gap:10px;min-width:0;display:flex}.smart-rule-engine{color:var(--muted);font-size:12px}.smart-rule-state{border-radius:10px;padding:2px 8px;font-size:11px;font-weight:600}.smart-rule-state.ok{color:var(--ok,#10b981);background:#10b9811f}.smart-rule-state.learning{color:#f59e0b;background:#f59e0b1f}.smart-rule-state.anom{color:var(--danger,#ef4444);background:#ef44441f}.smart-editor{flex-direction:column;gap:12px;display:flex}.smart-back{color:var(--muted);cursor:pointer;font:inherit;background:0 0;border:none;align-self:flex-start;align-items:center;gap:4px;display:inline-flex}.smart-field{flex-direction:column;gap:4px;display:flex}.smart-field>span{color:var(--muted);font-size:12px;font-weight:600}.smart-field select,.smart-field input{border:1px solid var(--line);background:var(--bg);color:var(--ink);font:inherit;border-radius:8px;padding:8px 10px}.smart-help{color:var(--muted);font-size:11px}.smart-type-hint{color:var(--muted);font-size:12px}.smart-reco{background:#a855f70d;border:1px solid #a855f733;border-radius:10px;padding:10px}.smart-reco-title{color:#a855f7;margin-bottom:8px;font-size:12px;font-weight:700}.smart-reco-cards{gap:8px;display:grid}.smart-reco-card{text-align:left;border:1px solid var(--line);background:var(--panel);cursor:pointer;border-radius:8px;flex-direction:column;gap:2px;padding:8px 10px;display:flex}.smart-reco-card.active{border-color:#a855f7;box-shadow:0 0 0 2px #a855f733}.smart-reco-card strong{color:var(--ink);font-size:13px}.smart-reco-card span{color:var(--muted);font-size:12px}.smart-engine-detects{color:var(--muted);margin-top:-4px;font-size:12px}.smart-params,.smart-row2{grid-template-columns:1fr 1fr;gap:10px;display:grid}.smart-adv-toggle{color:var(--brand);cursor:pointer;font:inherit;background:0 0;border:none;align-self:flex-start;font-size:12px}.smart-preview{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:10px;font-size:13px}.smart-preview.fire{background:#f59e0b14;border-color:#f59e0b}.smart-preview-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.smart-preview-row span{color:var(--muted);font-size:12px}.smart-preview-verdict{margin-top:6px;font-weight:600}.smart-editor-actions{justify-content:flex-end;gap:8px;display:flex}@media (max-width:560px){.smart-params,.smart-row2{grid-template-columns:1fr}}.smart-editor{min-width:0;max-width:100%}.smart-editor *,.smart-field{min-width:0}.smart-field select,.smart-field input{box-sizing:border-box;width:100%;max-width:100%}.smart-params,.smart-row2{min-width:0}.smart-reco-card span,.smart-engine-detects,.smart-help{overflow-wrap:anywhere}.smart-preview-row strong.delta-bad{color:#ef4444}.obs-window-picker{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:10px;display:flex}.obs-window-chip{border:1px solid var(--line);background:var(--panel);color:var(--ink);font:inherit;cursor:pointer;border-radius:999px;min-height:30px;padding:5px 12px;font-size:12px;font-weight:600;transition:background .15s,border-color .15s,color .15s}.obs-window-chip:hover:not(:disabled){border-color:var(--brand,#3b82f6)}.obs-window-chip.active{background:var(--brand,#3b82f6);border-color:var(--brand,#3b82f6);color:#fff}.obs-window-chip:disabled{opacity:.5;cursor:not-allowed}.obs-window-label{color:var(--muted);margin-left:2px;font-size:12px}.smart-preview-chart-frame{border:1px solid var(--line);background:var(--panel);border-radius:10px;flex-shrink:0;margin-bottom:8px;overflow:hidden}.smart-preview-chart-loading,.smart-preview-chart-empty{color:var(--muted);align-items:center;gap:8px;padding:16px;font-size:12px;display:flex}.smart-preview-chart-empty{color:#f59e0b}.smart-preview-verdict-badge{color:var(--ok,#10b981);border-bottom:1px solid var(--line);padding:8px 12px;font-size:12px;font-weight:700}.smart-preview-verdict-badge.fire{color:#f59e0b;background:#f59e0b14}.smart-preview-chart-stage{position:relative}.smart-preview-chart-stage .widget-chart{border:none;border-radius:0}.smart-preview-engine-note{color:var(--muted);border-top:1px solid var(--line);background:var(--bg-raised,#94a3b80f);align-items:flex-start;gap:6px;padding:8px 12px;font-size:11.5px;display:flex}.smart-preview-engine-note svg{color:#f59e0b;flex-shrink:0;margin-top:1px}@media (prefers-reduced-motion:reduce){.obs-window-chip{transition:none}}.smart-anom-main[role=button]{cursor:pointer}.smart-anom-detail-cue{color:var(--brand);font-weight:600}.smart-detail{width:min(760px,96vw);max-height:92vh;max-height:min(var(--vvh,92dvh), 92dvh);flex-direction:column;display:flex}.smart-detail-body{padding:14px 16px 18px;overflow-y:auto}.smart-detail-sub{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px;display:flex}.smart-detail-expl{margin:0 0 12px;font-size:15px;font-weight:600}.smart-detail-chart{border:1px solid var(--line);background:var(--bg-raised,#ffffff08);border-radius:10px;padding:4px 0;position:relative;overflow:hidden}.smart-detail-chart svg{display:block}.sdc-ylbl{color:var(--muted);background:var(--bg);border-radius:3px;padding:0 3px;font-size:11px;position:absolute;left:8px}.sdc-ylbl.sdc-top{top:6px}.sdc-ylbl.sdc-bot{bottom:22px}.sdc-xlbl{color:var(--muted);font-size:10px;position:absolute;bottom:5px}.sdc-xlbl.sdc-left{left:8px}.sdc-xlbl.sdc-right{right:8px}.sdc-xlbl.sdc-evalmark{color:#ef4444;opacity:.8;right:70px}.smart-detail-legend{color:var(--muted);flex-wrap:wrap;gap:6px 14px;padding:8px 2px 2px;font-size:11px;display:flex}.smart-detail-legend i{vertical-align:middle;width:14px;height:0;margin-right:4px;display:inline-block}.smart-detail-legend .lg-mean{border-top:2px dashed #22c55e}.smart-detail-legend .lg-band{background:#22c55e2e;border:1px solid #22c55e66;height:10px}.smart-detail-legend .lg-bad{border-top:2px solid #ef4444}.smart-detail-stats{grid-template-columns:repeat(2,1fr);gap:8px;margin-top:12px;display:grid}.smart-detail-stats>div{background:var(--panel);border:1px solid var(--line);border-radius:8px;flex-direction:column;gap:2px;padding:8px 10px;display:flex}.smart-detail-stats span{color:var(--muted);font-size:11px}.smart-detail-stats strong{font-size:15px}.smart-detail-stats strong.delta-bad{color:#ef4444}.smart-detail-foot{color:var(--muted);margin-top:12px;font-size:12px;line-height:1.5}@media (min-width:560px){.smart-detail-stats{grid-template-columns:repeat(4,1fr)}}.alarm-history-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.alarm-history-header .rules-section-title{align-items:center;gap:6px;margin:0;display:flex}.action-button.compact{gap:4px;padding:5px 10px;font-size:12px}.alarm-history-filters{flex-wrap:wrap;align-items:center;gap:12px;margin:10px 0;display:flex}.alarm-history-filters .form-select{width:auto;min-width:150px}.history-filter-check{color:var(--ink-secondary);cursor:pointer;align-items:center;gap:6px;font-size:13px;display:flex}.alarm-history-list{flex-direction:column;gap:8px;display:flex}.alarm-history-row{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);border-left-width:3px;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;display:flex}.alarm-history-row.severity-critical{border-left-color:#ef4444}.alarm-history-row.severity-warning{border-left-color:#f59e0b}.alarm-history-row.unread{background:var(--danger-dim,#ef444414)}.alarm-history-main{flex-direction:column;gap:4px;min-width:0;display:flex}.alarm-history-top{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.alarm-history-varname{font-size:14px;font-weight:600}.alarm-ongoing-badge{color:#ef4444;background:#ef44441f;border-radius:10px;padding:2px 7px;font-size:11px;font-weight:600}.alarm-history-meta{color:var(--ink-secondary);flex-wrap:wrap;align-items:center;gap:6px;font-size:12px;display:flex}.alarm-history-meta .dot-sep{opacity:.5}.alarm-history-peak{font-family:monospace}.alarm-history-actions{flex-shrink:0}.alarm-read-tag{color:var(--ink-secondary);opacity:.7;align-items:center;gap:4px;font-size:12px;display:inline-flex}@media (max-width:540px){.alarm-history-row{flex-direction:column;align-items:flex-start}.alarm-history-actions{align-self:flex-end}}.toggle-switch{cursor:pointer;width:36px;height:20px;display:inline-block;position:relative}.toggle-switch.small{width:32px;height:18px}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{background:var(--line-light);border-radius:20px;transition:background .2s;position:absolute;inset:0}.toggle-slider:before{content:"";background:var(--ink);border-radius:50%;width:16px;height:16px;transition:transform .2s;position:absolute;top:2px;left:2px}.toggle-switch.small .toggle-slider:before{width:14px;height:14px}.toggle-switch input:checked+.toggle-slider{background:var(--brand)}.toggle-switch input:checked+.toggle-slider:before{transform:translate(16px)}.toggle-switch.small input:checked+.toggle-slider:before{transform:translate(14px)}.icon-btn{border-radius:var(--radius-sm);width:30px;height:30px;color:var(--ink-secondary);background:0 0;border:0;justify-content:center;align-items:center;transition:background .15s,color .15s;display:flex}.icon-btn:hover{background:var(--panel-hover);color:var(--ink)}.icon-btn.danger:hover{background:var(--danger-dim);color:var(--danger)}.icon-btn-sm{width:24px;height:24px;color:var(--muted);background:0 0;border:0;border-radius:4px;justify-content:center;align-items:center;display:flex}.modal-overlay{z-index:100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0009;justify-content:center;align-items:flex-end;animation:.15s fadeIn;display:flex;position:fixed;inset:0}@media (min-width:768px){.modal-overlay{align-items:center}}.modal-content{background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--radius) var(--radius) 0 0;width:100%;max-width:480px;max-height:90vh;max-height:min(var(--vvh,90dvh), 90dvh);animation:.2s fadeSlideUp;overflow-y:auto}@media (min-width:768px){.modal-content{border-radius:var(--radius)}}.modal-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.modal-header h3{margin:0;font-size:16px}.modal-body{flex-direction:column;gap:16px;padding:20px;display:flex}.modal-footer{border-top:1px solid var(--line);justify-content:flex-end;gap:10px;padding:16px 20px;display:flex}.form-group{flex-direction:column;gap:6px;display:flex}.form-group label{color:var(--ink-secondary);text-transform:uppercase;letter-spacing:.02em;font-size:12px;font-weight:600}.form-input,.form-select{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--ink);outline:none;padding:10px 12px;font-size:14px;transition:border-color .15s}.form-input:focus,.form-select:focus{border-color:var(--brand)}.form-select{cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%2394a3b8' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;padding-right:30px}.form-row{gap:12px;display:flex}.flex-1{flex:1}.var-selector{position:relative}.var-select-btn{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-sm);width:100%;color:var(--ink);text-align:left;justify-content:space-between;align-items:center;padding:10px 12px;font-size:14px;transition:border-color .15s;display:flex}.var-select-btn:hover{border-color:var(--brand)}.var-select-btn .placeholder{color:var(--muted)}.var-dropdown{z-index:10;background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--radius-sm);flex-direction:column;max-height:240px;display:flex;position:absolute;top:calc(100% + 4px);left:0;right:0;box-shadow:0 8px 24px #0006}.var-search{border:0;border-bottom:1px solid var(--line);color:var(--ink);background:0 0;outline:none;padding:10px 12px;font-size:13px}.var-options{flex:1;overflow-y:auto}.var-option{border:0;border-bottom:1px solid var(--line);width:100%;color:var(--ink);text-align:left;background:0 0;justify-content:space-between;align-items:center;padding:8px 12px;font-size:13px;transition:background .1s;display:flex}.var-option:hover{background:var(--panel-hover)}.var-option.selected{background:var(--brand-dim)}.var-option-name{font-weight:500}.var-option-value{color:var(--ink-secondary);font-family:monospace;font-size:12px}.var-option-stale-dot{background:var(--muted);vertical-align:middle;border-radius:999px;width:6px;height:6px;margin-right:6px;display:inline-block}.var-option-stale-label{color:#f59e0b;font-family:inherit}.btn-primary{background:var(--brand);color:#fff;border-radius:var(--radius-sm);border:0;align-items:center;gap:6px;padding:10px 18px;font-size:14px;font-weight:600;transition:opacity .15s;display:flex}.btn-primary:hover:not(:disabled){opacity:.9}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{background:var(--panel);color:var(--ink-secondary);border:1px solid var(--line);border-radius:var(--radius-sm);align-items:center;gap:6px;padding:10px 18px;font-size:14px;transition:background .15s;display:flex}.btn-secondary:hover{background:var(--panel-hover)}.btn-sm{border-radius:var(--radius-sm);border:0;align-items:center;gap:4px;padding:5px 10px;font-size:12px;font-weight:600;transition:opacity .15s;display:inline-flex}.btn-sm:disabled{opacity:.5;cursor:not-allowed}.btn-ok{background:var(--ok-dim);color:var(--ok)}.btn-warn{background:var(--warn-dim);color:var(--warn)}.btn-danger{background:var(--danger-dim);color:var(--danger)}.var-limit-bar{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-sm);margin:0 0 8px;padding:8px 12px}.var-limit-info{justify-content:space-between;align-items:center;margin-bottom:5px;font-size:13px;display:flex}.catalog-candidates-panel{border:1px dashed var(--line);border-radius:var(--radius-sm);background:var(--panel);margin:0 0 10px}.catalog-candidates-toggle{width:100%;color:var(--text);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:6px;padding:8px 12px;font-size:13px;display:flex}.catalog-candidates-toggle:hover{background:var(--panel-hover,#ffffff08)}.catalog-candidates-count{background:var(--warn-dim,#f59e0b26);color:var(--warn);border-radius:999px;margin-left:auto;padding:1px 8px;font-size:11px;font-weight:600}.catalog-candidates-body{border-top:1px dashed var(--line);padding:0 12px 12px}.catalog-candidates-hint{color:var(--muted);margin:8px 0}.catalog-candidates-controls{align-items:center;gap:12px;margin-bottom:8px;display:flex}.catalog-candidates-checkbox{color:var(--muted);align-items:center;gap:5px;font-size:12px;display:flex}.catalog-candidates-table-wrap{overflow-x:auto}.catalog-candidates-table{border-collapse:collapse;width:100%;font-size:12px}.catalog-candidates-table th{text-align:left;color:var(--muted);border-bottom:1px solid var(--line);white-space:nowrap;padding:4px 8px;font-weight:600}.catalog-candidates-table td{border-bottom:1px solid var(--line);white-space:nowrap;padding:4px 8px}.catalog-candidates-table tr.vigencia-retired{opacity:.55}.catalog-candidates-badge{border-radius:999px;padding:1px 8px;font-size:11px;font-weight:600}.catalog-candidates-badge.vigencia-current{background:var(--ok-dim,#10b98126);color:var(--ok)}.catalog-candidates-badge.vigencia-stale{background:var(--warn-dim,#f59e0b26);color:var(--warn)}.catalog-candidates-badge.vigencia-retired{background:var(--danger-dim,#ef444426);color:var(--danger)}.var-pending-badge{background:var(--warn-dim);color:var(--warn);border-radius:10px;padding:2px 8px;font-size:11px;font-weight:600}.var-limit-track{background:var(--line);border-radius:3px;height:6px;overflow:hidden}.var-limit-fill{background:var(--brand);border-radius:3px;height:100%;transition:width .3s}.var-limit-fill.near-limit{background:var(--warn)}.var-toolbar{gap:8px;margin:0 0 6px;display:flex}.var-search-wrap{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--muted);flex:1;align-items:center;gap:8px;padding:0 12px;display:flex}.var-search-input{color:var(--ink);background:0 0;border:0;outline:none;flex:1;padding:8px 0;font-size:14px}.filter-btn{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-sm);width:40px;height:40px;color:var(--ink-secondary);justify-content:center;align-items:center;transition:background .15s,color .15s;display:flex}.filter-btn:hover,.filter-btn.active{background:var(--brand-dim);color:var(--brand);border-color:var(--brand)}.var-filters{flex-wrap:wrap;gap:6px;margin:0 16px 12px;display:flex}.filter-chip{background:var(--panel);border:1px solid var(--line);color:var(--ink-secondary);border-radius:20px;padding:5px 12px;font-size:12px;transition:all .15s}.filter-chip:hover{border-color:var(--brand)}.filter-chip.active{background:var(--brand-dim);border-color:var(--brand);color:var(--brand);font-weight:600}.var-list{flex-direction:column;gap:2px;margin:0 16px;padding-bottom:80px;display:flex}.var-row{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-sm);transition:border-color .15s;overflow:hidden}.var-row:hover{border-color:var(--line-light)}.var-row.expanded{border-color:var(--brand)}.var-row-main{cursor:pointer;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;display:flex}.var-row-left{flex:1;align-items:center;gap:8px;min-width:0;display:flex}.var-row-name{white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:500;overflow:hidden}.var-row-meta{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.var-row-right{flex-shrink:0;align-items:center;gap:10px;display:flex}.var-row-value{color:var(--brand-strong);font-family:monospace;font-size:13px;font-weight:600}.var-status-badge{text-transform:uppercase;letter-spacing:.02em;border-radius:10px;padding:2px 8px;font-size:10px;font-weight:700}.status-active{background:var(--ok-dim);color:var(--ok)}.status-pending{background:var(--warn-dim);color:var(--warn)}.status-discovered{background:var(--brand-dim);color:var(--brand)}.status-disabled{color:var(--muted);background:#64748b1f}.status-archived{color:var(--muted);background:#64748b14;text-decoration:line-through}.var-row-detail{border-top:1px solid var(--line);padding:0 14px 14px;animation:.15s fadeSlideUp}.var-detail-grid{grid-template-columns:1fr 1fr;gap:10px;padding:12px 0;display:grid}.var-detail-item{flex-direction:column;gap:2px;display:flex}.var-detail-item code{color:var(--ink-secondary);background:var(--bg);word-break:break-all;border-radius:4px;padding:2px 6px;font-size:12px}.var-detail-actions{border-top:1px solid var(--line);flex-direction:column;gap:12px;padding-top:12px;display:flex}.var-toggles{flex-wrap:wrap;gap:16px;display:flex}.var-toggle-label{color:var(--ink-secondary);cursor:pointer;align-items:center;gap:6px;font-size:13px;display:flex}.var-status-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.empty-state.compact{padding:32px 16px}.empty-state.compact p{margin:0}.admin-panel{height:100%;padding:16px;overflow-y:auto}.admin-loading{height:200px;color:var(--ink-secondary);justify-content:center;align-items:center;gap:12px;display:flex}.admin-nav{background:var(--bg-raised);border-radius:var(--radius);border:1px solid var(--line);flex-wrap:wrap;gap:4px;margin-bottom:16px;padding:4px;display:flex}.admin-nav button{color:var(--ink-secondary);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:none;align-items:center;gap:6px;padding:8px 16px;font-size:13px;font-weight:500;transition:all .15s;display:flex}.admin-nav button:hover{background:var(--panel-hover);color:var(--ink)}.admin-nav button.active{background:var(--brand-dim);color:var(--brand-strong)}.admin-section{margin-bottom:24px}.admin-section h3{margin:0 0 16px;font-size:18px;font-weight:600}.admin-section-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:12px;display:flex}.admin-section-header h3,.admin-section-header h4{margin:0}.admin-section-header h3>svg,.admin-section-header h4>svg{vertical-align:-3px;margin-right:4px}.admin-subsection{border-top:1px solid var(--line);margin-top:24px;padding-top:16px}.netdev-controls{border:1px solid var(--line);border-radius:var(--radius,12px);background:var(--panel);flex-wrap:wrap;align-items:flex-end;gap:12px;margin-top:16px;padding:12px;display:flex}.netdev-control{flex-direction:column;gap:4px;display:flex}.netdev-control-label{text-transform:uppercase;letter-spacing:.5px;color:var(--muted);font-size:11px;font-weight:700}.netdev-input{background:var(--bg);border:1px solid var(--line);border-radius:var(--radius-sm,8px);color:var(--ink);font:inherit;box-sizing:border-box;outline:none;width:100%;padding:9px 11px;font-size:14px;transition:border-color .15s}.netdev-input:focus{border-color:var(--brand)}.netdev-primary-actions{border:1px solid var(--line);border-radius:var(--radius,12px);background:var(--panel);flex-wrap:wrap;align-items:flex-end;gap:10px;margin-top:16px;padding:12px;display:flex}.netdev-primary-actions>.admin-btn{flex:220px;justify-content:center}.netdev-advanced-panel{margin-top:10px}.netdev-progress-panel{border:1px dashed var(--line);border-radius:var(--radius-sm,8px);background:var(--panel);margin-top:10px;padding:10px 14px}.netdev-progress-panel h4{text-transform:uppercase;letter-spacing:.5px;color:var(--muted);margin:0 0 6px;font-size:12px;font-weight:700}.netdev-progress-panel ul{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.netdev-progress-panel li{font-size:13px}.netdev-progress-when{color:var(--muted);font-size:12px}.netdev-toast{z-index:1100;background:var(--bg-raised,#1a1f2b);border:1px solid var(--brand);max-width:min(92vw,520px);color:var(--ink);text-align:center;border-radius:10px;padding:10px 16px;position:fixed;bottom:24px;left:50%;transform:translate(-50%);box-shadow:0 10px 30px #00000080}.netdev-row{cursor:pointer}.netdev-filterbar{flex-wrap:wrap;align-items:center;gap:12px;margin-top:16px;display:flex}.netdev-th-sort{cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}.netdev-th-sort:hover{color:var(--brand)}.netdev-badges{flex-wrap:wrap;gap:4px;display:inline-flex}.netdev-badge-port{background:var(--brand,#2563eb)}.netdev-badge-ok{background:#22c55e}.netdev-badge-err{background:#ef4444}.netdev-badge-proto{background:#6366f1}.netdev-badge-online{background:#22c55e}.netdev-badge-offline{background:#ef4444}.netdev-unclassified{color:var(--muted);font-style:italic}.netdev-machine-chip{color:#10b981;white-space:nowrap;vertical-align:middle;background:#10b9811f;border:1px solid #10b98159;border-radius:999px;align-items:center;gap:4px;margin-left:8px;padding:1px 8px;font-size:11px;font-style:normal;font-weight:600;display:inline-flex}.netdev-machine-chip--hint{color:var(--muted);border-style:dashed;border-color:var(--line);background:0 0;font-weight:500}.netdev-machine-suggest{text-transform:none;letter-spacing:normal;color:var(--muted);font-size:12px;font-weight:400;line-height:1.4}.netdev-kv{justify-content:space-between;gap:10px;padding:4px 0;font-size:13px;display:flex}.netdev-kv-label{color:var(--muted);flex-shrink:0}.netdev-pre{background:var(--bg);border:1px solid var(--line);border-radius:var(--radius-sm,8px);white-space:pre-wrap;word-break:break-word;max-height:240px;margin:0;padding:10px;font-size:12px;line-height:1.5;overflow:auto}.netdev-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.netdev-field{flex-direction:column;gap:4px;display:flex}.netdev-field>span{text-transform:uppercase;letter-spacing:.5px;color:var(--muted);font-size:11px;font-weight:700}.netdev-field--full{grid-column:1/-1}.netdev-actions{flex-wrap:wrap;gap:10px;display:flex}@media (max-width:640px){.netdev-form{grid-template-columns:1fr}}.netdev-remote-block{border-top:1px dashed var(--line);margin-top:10px;padding-top:10px}.netdev-remote-actions{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}.netdev-remote-register{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.netdev-remote-register .netdev-kv-label{flex-shrink:0}.netdev-remote-register select.netdev-input{flex:200px;min-width:160px}@media (max-width:640px){.netdev-remote-register,.netdev-remote-actions{flex-direction:column;align-items:stretch}.netdev-remote-register select.netdev-input,.netdev-remote-register>.admin-btn,.netdev-remote-actions>.admin-btn{width:100%}}.netdev-header-actions{flex-wrap:wrap;gap:8px;display:flex}.netdev-intel-head{flex-wrap:wrap;justify-content:flex-start;align-items:center;gap:8px;display:flex}.netdev-intel-head h4{flex:100%;margin:0 0 4px}.netdev-intel-head .admin-btn{flex:auto;justify-content:center}@media (max-width:640px){.netdev-controls,.netdev-add-controls,.netdev-filterbar,.netdev-primary-actions{flex-direction:column;align-items:stretch}.netdev-control,.netdev-controls>.admin-btn,.netdev-filterbar>.netdev-input,.netdev-filterbar>*,.netdev-primary-actions>.admin-btn{width:100%}.netdev-intel-head .admin-btn{flex:100%}}.netdev-intel-head h4{align-items:center;gap:6px;margin:0;display:inline-flex}.netdev-intel-empty{flex-wrap:wrap;align-items:center;gap:12px;margin-top:8px;display:flex}.netdev-intel-empty p{color:var(--muted);margin:0;font-style:italic}.netdev-intel{flex-direction:column;gap:14px;margin-top:8px;display:flex}.netdev-intel-title{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.netdev-intel-type{font-size:15px;font-weight:700}.netdev-badge-source,.netdev-source-ai{background:#8b5cf6}.netdev-source-catalog{background:#0ea5e9}.netdev-source-catalog-heuristic{background:#14b8a6}.netdev-intel-block{border-top:1px solid var(--line);flex-direction:column;gap:6px;padding-top:8px;display:flex}.netdev-intel-block-head{text-transform:uppercase;letter-spacing:.5px;color:var(--muted);align-items:center;gap:6px;font-size:11px;font-weight:700;display:inline-flex}.netdev-intel-detail{color:var(--muted);margin:0}.netdev-badge-cred-needed{background:#f59e0b}.netdev-badge-acceso-bloqueado{background:#991b1b}.netdev-badge-cred-none{background:#6b7280}.netdev-badge-node{background:#0f766e}.netdev-node-ok{background:#15803d}.netdev-node-missing{background:#b45309}.netdev-node-missing-summary{color:#f59e0b;font-weight:600}.netdev-intel-muted{opacity:.7}.netdev-comms{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.netdev-comms li{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.netdev-comms-how{font-size:13px}.netdev-vars-table{font-size:12px}.netdev-vars-table th,.netdev-vars-table td{padding:4px 8px}.netdev-var-note{color:var(--muted)}.netdev-intel-notes{color:var(--muted);margin:0;font-style:italic}.netdev-vars-table{table-layout:auto;width:100%}.netdev-vars-table input[type=checkbox]{margin:0}.netdev-reg-input{box-sizing:border-box;width:64px;min-width:56px;padding:3px 6px;font-size:12px}.netdev-row-sel{background:color-mix(in srgb, var(--accent) 10%, transparent)}.netdev-add-controls{flex-wrap:wrap;gap:14px;margin:12px 0 6px;display:flex}.netdev-add-controls label{flex-direction:column;gap:3px;display:flex}.netdev-presence-toggle{align-items:flex-start;gap:8px;margin:12px 0;line-height:1.35;display:flex}.netdev-presence-toggle input{flex-shrink:0;margin-top:2px}.netdev-add-btn{width:100%;margin-top:8px}.netdev-template-banner{border:1px solid color-mix(in srgb, var(--accent) 35%, transparent);background:color-mix(in srgb, var(--accent) 8%, transparent);border-radius:8px;align-items:flex-start;gap:10px;margin:4px 0 14px;padding:10px 12px;display:flex}.netdev-template-banner svg{color:var(--accent);flex-shrink:0;margin-top:2px}.netdev-template-banner-body{flex-direction:column;flex:1;gap:2px;min-width:180px;display:flex}.netdev-template-banner-actions{flex-wrap:wrap;align-items:flex-start;gap:8px;display:flex}@media (max-width:560px){.netdev-template-banner{flex-wrap:wrap}.netdev-vars-table th,.netdev-vars-table td{padding:4px 5px}.netdev-reg-input{width:56px;min-width:48px}}.admin-subsection h4{margin:0;font-size:15px;font-weight:600}.admin-url-row{flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px;display:flex}.admin-url{background:var(--surface-2,#7f7f7f14);border:1px solid var(--line);overflow-wrap:anywhere;border-radius:8px;flex:240px;min-width:0;padding:8px 12px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px}.admin-url-status{color:var(--muted);margin:8px 0 0;font-size:13px}.admin-stats-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;display:grid}.admin-stat-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);text-align:center;color:var(--ink-secondary);padding:16px}button.admin-stat-card{cursor:pointer;font:inherit;width:100%;transition:border-color .12s,box-shadow .12s,transform 80ms}button.admin-stat-card:hover{border-color:var(--brand,#2563eb)}button.admin-stat-card:active{transform:translateY(1px)}.admin-stat-card.is-active{border-color:var(--brand,#2563eb);box-shadow:0 0 0 2px var(--brand,#2563eb) inset}.admin-stat-card svg{color:var(--brand-strong);margin-bottom:4px}.admin-stat-card.alarm svg{color:var(--warn)}.admin-stat-value{color:var(--ink);font-size:28px;font-weight:700;line-height:1.2}.admin-stat-card.alarm .admin-stat-value{color:var(--warn)}.admin-stat-label{margin-top:2px;font-size:12px}.admin-cards{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;display:grid}.admin-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:14px;transition:border-color .15s}.admin-card:hover{border-color:var(--line-light)}.admin-card.compact{padding:12px}.admin-card-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.admin-card-header strong{font-size:14px}.admin-card-body{color:var(--ink-secondary);flex-direction:column;gap:4px;font-size:13px;display:flex}.admin-card-stats{color:var(--muted);gap:12px;margin-top:6px;font-size:12px;display:flex}.admin-card-stats span{align-items:center;gap:3px;display:flex}.admin-card-actions{border-top:1px solid var(--line);gap:4px;margin-top:10px;padding-top:8px;display:flex}.admin-badge{color:#fff;text-transform:uppercase;letter-spacing:.5px;border-radius:100px;padding:2px 8px;font-size:10px;font-weight:700;display:inline-block}.admin-slug{color:var(--muted);word-break:break-word;margin-left:6px;font-size:12px}.admin-table-wrap{-webkit-overflow-scrolling:touch;overflow-x:auto}.user-cards{display:none}.user-card{background:var(--panel);border:1px solid var(--line);border-radius:12px;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.user-card-main{flex:1;min-width:0}.user-card-top{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.user-card-top strong{font-size:15px}.user-card-email{color:var(--muted);word-break:break-all;margin-top:2px;font-size:13px}.user-card-meta{color:var(--muted);margin-top:4px;font-size:11px}.user-card-actions{flex:none;gap:6px;display:flex}@media (max-width:760px){.user-table-wrap{display:none}.user-cards{flex-direction:column;gap:10px;display:flex}}@media (max-width:980px){.cost-calc-grid{grid-template-columns:1fr!important}}.pub-list-cards,.pub-pending-cards{display:none}.pub-card,.pub-req-card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px}.pub-card-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.pub-card-head strong{font-size:15px}.pub-card-pending{color:#fff;background:#c0392b;border-radius:999px;flex:none;padding:2px 8px;font-size:11px;font-weight:700}.pub-card-meta{color:var(--muted);flex-direction:column;gap:3px;margin-top:8px;font-size:12.5px;display:flex}.pub-card-meta code{word-break:break-all}.pub-card-btn{width:100%;margin-top:12px;padding:11px;font-size:15px}.pub-card-actions{gap:8px;display:flex}.pub-card-actions .pub-card-btn{flex:1}.pub-req-card-hl{border-color:#c0392b;box-shadow:inset 0 0 0 1px #c0392b}.pub-req-name{font-size:16px;font-weight:700}.pub-req-meta{color:var(--muted);flex-direction:column;gap:3px;margin-top:6px;font-size:13px;display:flex}.pub-req-meta a{color:var(--brand);word-break:break-all;text-decoration:none}.pub-req-actions{gap:10px;margin-top:14px;display:flex}.pub-req-actions button{flex:1;min-height:48px;padding:14px 12px;font-size:16px;font-weight:600}.pub-req-deny{color:#c0392b}.pub-url{flex-wrap:wrap;align-items:center;gap:8px;display:inline-flex}.pub-url-text{word-break:break-all}.pub-url-copy{padding:4px 10px;font-size:12px;line-height:1.4}@media (max-width:760px){.pub-list-table{display:none}.pub-list-cards{flex-direction:column;gap:10px;display:flex}.pub-pending-table{display:none}.pub-pending-cards{flex-direction:column;gap:12px;display:flex}}.admin-table{border-collapse:collapse;width:100%;min-width:720px;font-size:13px}.admin-table.catalog-table{min-width:880px}.sa-gw-table{min-width:820px}.admin-review-table{min-width:700px}.admin-table th{text-align:left;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);border-bottom:1px solid var(--line);padding:8px 10px;font-size:11px;font-weight:600}.admin-table td{border-bottom:1px solid var(--line);color:var(--ink-secondary);overflow-wrap:anywhere;padding:10px}.admin-table tr:hover td{background:var(--panel-hover)}.admin-table .admin-mono{word-break:break-all;font-family:SF Mono,Monaco,Consolas,monospace;font-size:12px}.admin-table.netdev-table{min-width:1180px}.netdev-table td{overflow-wrap:normal;vertical-align:middle}.netdev-table th{vertical-align:bottom;white-space:nowrap}.netdev-table .admin-mono{word-break:normal;white-space:nowrap}.netdev-table .admin-badge{white-space:nowrap}.netdev-table td:nth-child(3){white-space:nowrap;text-overflow:ellipsis;max-width:200px;overflow:hidden}.admin-actions-cell{gap:4px;display:flex}.admin-empty{text-align:center;color:var(--muted);padding:24px!important}.admin-empty-card{text-align:center;color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:40px 24px;font-size:13px;display:flex}.admin-empty-card .empty-icon{color:var(--muted);opacity:.4}.admin-empty-card p{max-width:340px;margin:0;line-height:1.5}.admin-status{align-items:center;gap:4px;font-size:12px;font-weight:600;display:inline-flex}.admin-status.online{color:var(--ok)}.admin-status.online svg{animation:2s infinite pulse-glow}@keyframes pulse-glow{0%,to{opacity:1}50%{opacity:.5}}.admin-status.offline{color:var(--danger)}.admin-btn{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel);color:var(--ink);cursor:pointer;align-items:center;gap:6px;padding:8px 16px;font-size:13px;font-weight:500;transition:all .15s;display:inline-flex}.admin-btn:hover{background:var(--panel-hover);border-color:var(--line-light)}.admin-btn.primary{background:var(--brand);border-color:var(--brand);color:#fff}.admin-btn.primary:hover{background:var(--brand-strong)}.admin-btn.primary:disabled{opacity:.5;cursor:not-allowed}.admin-btn.small{padding:6px 12px;font-size:12px}.admin-icon-btn{border-radius:var(--radius-sm);width:30px;height:30px;color:var(--ink-secondary);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;transition:all .15s;display:inline-flex}.admin-icon-btn:hover{background:var(--panel-hover);color:var(--ink)}.admin-icon-btn.danger:hover{background:var(--danger-dim);color:var(--danger)}@media (max-width:640px){.admin-icon-btn{width:40px;height:40px}}.admin-back-btn{border-radius:var(--radius-sm);background:var(--panel);color:var(--ink-secondary);cursor:pointer;border:none;align-items:center;gap:4px;margin-bottom:12px;padding:6px 12px;font-size:13px;transition:all .15s;display:inline-flex}.admin-back-btn:hover{background:var(--panel-hover);color:var(--ink)}.admin-modal-overlay{-webkit-backdrop-filter:blur(6px);z-index:1000;background:#000000c7;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.admin-modal{background:var(--bg-raised);border:1px solid var(--line-light);border-radius:var(--radius);width:100%;max-width:440px;max-height:min(var(--vvh,90dvh), 90dvh);opacity:1;isolation:isolate;overflow-y:auto;box-shadow:0 24px 80px #0009}@media (max-width:640px){.admin-modal-overlay{padding-top:max(12px, env(safe-area-inset-top));align-items:flex-start}}.admin-modal-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:16px;display:flex}.admin-modal-header h3{margin:0;font-size:16px}.admin-form{flex-direction:column;gap:12px;padding:16px;display:flex}.admin-form label{color:var(--ink-secondary);flex-direction:column;gap:4px;font-size:12px;font-weight:500;display:flex}.admin-form input,.admin-form select{background:var(--bg);border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--ink);outline:none;padding:8px 12px;font-size:14px;transition:border-color .15s}.admin-form input:focus,.admin-form select:focus{border-color:var(--brand)}.admin-form select{cursor:pointer}.admin-error{color:var(--danger);margin:0;font-size:13px}.admin-api-key-banner{background:var(--warn-dim);border:1px solid var(--warn);border-radius:var(--radius);justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;padding:12px 16px;display:flex}.admin-api-key-banner strong{color:var(--warn);margin-bottom:4px;font-size:12px;display:block}.admin-api-key-banner code{color:var(--ink);word-break:break-all;font-family:SF Mono,Monaco,Consolas,monospace;font-size:13px}@media (max-width:768px){.admin-stats-grid{grid-template-columns:repeat(2,1fr)}.admin-cards{grid-template-columns:1fr}.admin-table{font-size:12px}.admin-table th,.admin-table td{padding:6px 8px}}.sa-gw-section{position:relative}.sa-gw-pending-banner{background:var(--warn-dim,#eab3081f);border:1px solid var(--warn,#eab308);width:100%;color:var(--warn,#eab308);border-radius:var(--radius);text-align:left;cursor:pointer;align-items:center;gap:8px;margin-bottom:12px;padding:10px 14px;font-size:13px;font-weight:600;transition:background .15s;display:flex}.sa-gw-pending-banner:hover{background:#eab30833}.sa-gw-toolbar{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px;display:flex}.sa-gw-search{background:var(--bg);border:1px solid var(--line);border-radius:var(--radius-sm);flex:220px;align-items:center;gap:6px;min-width:150px;padding:6px 10px;display:flex}.sa-gw-search input{color:var(--ink);background:0 0;border:none;outline:none;width:100%;font-size:13px}.sa-gw-chips{flex-wrap:wrap;gap:4px;display:flex}.sa-gw-chip{background:var(--panel);border:1px solid var(--line);color:var(--ink-secondary);cursor:pointer;border-radius:100px;padding:5px 10px;font-size:12px;font-weight:500;transition:all .15s}.sa-gw-chip:hover{background:var(--panel-hover);color:var(--ink)}.sa-gw-chip.active{background:var(--brand-dim);border-color:var(--brand);color:var(--brand-strong)}.sa-gw-toolbar-actions{gap:6px;margin-left:auto;display:flex}.sa-gw-refreshing svg{animation:.8s linear infinite spin}.sa-gw-counts{color:var(--ink-secondary);flex-wrap:wrap;gap:12px;margin-bottom:12px;font-size:12px;display:flex}.sa-gw-count{align-items:center;gap:5px;display:inline-flex}.sa-gw-count.muted{color:var(--muted);margin-left:auto}.sa-gw-dot{border-radius:50%;width:8px;height:8px;display:inline-block}.sa-gw-dot.online{background:var(--ok,#22c55e);box-shadow:0 0 6px #22c55e80}.sa-gw-dot.offline{background:var(--muted,#6b7280)}.sa-gw-dot.pending{background:var(--warn,#eab308)}.sa-gw-table-wrap{-webkit-overflow-scrolling:touch;overflow-x:auto}.sa-gw-table{width:100%}.sa-gw-table tbody tr.sa-gw-row{cursor:pointer}.sa-gw-table tbody tr.sa-gw-row.pending td{background:#eab3080a}.sa-gw-table tbody tr.sa-gw-row.active td{background:var(--brand-dim)}.sa-gw-pill{white-space:nowrap;border-radius:100px;align-items:center;gap:4px;padding:3px 8px;font-size:11px;font-weight:600;display:inline-flex}.sa-gw-pill.online{color:var(--ok,#22c55e);background:#22c55e26}.sa-gw-pill.offline{color:var(--muted,#6b7280);background:#6b728026}.sa-gw-pill.pending{color:var(--warn,#eab308);background:#eab3082e}.sa-gw-pill.sin-datos{color:var(--warn,#eab308);background:#eab3082e;border:1px solid #eab30873}.sa-gw-pill.hidden{color:#c4b5fd;background:#a855f72e;border:1px dashed #a855f773}.sa-gw-pill.archived{color:#94a3b8;background:#94a3b829;border:1px dashed #94a3b873}.sa-gw-row.archived td{opacity:.55}.sa-gw-row.archived td.sa-gw-actions-cell{opacity:1}.sa-gw-restore-btn{white-space:nowrap;margin-right:6px}.sa-gw-pill.warn{color:var(--warn,#eab308);background:#eab3082e}.sa-gw-chip.warn{color:var(--warn,#eab308);background:#eab3082e;border-color:#eab30866}.sa-gw-breakdown{flex-wrap:wrap;gap:6px;margin-top:4px;display:flex}.sa-gw-breakdown .sa-gw-chip{cursor:default}.sa-gw-var-summary{color:var(--ink-secondary);margin:0 0 8px;font-size:13px}.sa-gw-var-summary strong{color:var(--brand-strong,var(--brand))}.sa-gw-host-list{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.sa-gw-host-list li{justify-content:space-between;align-items:center;gap:8px;font-size:12px;display:flex}.sa-gw-name-cell{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.sa-gw-name-cell strong{color:var(--ink);font-size:13px}.sa-gw-extid{color:var(--muted);word-break:break-all;overflow-wrap:anywhere;flex-basis:100%;font-size:11px}.sa-gw-rename-icon{width:20px;height:20px;color:var(--ink-secondary);cursor:pointer;opacity:0;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;transition:opacity .15s,background .15s;display:inline-flex}.sa-gw-row:hover .sa-gw-rename-icon{opacity:1}.sa-gw-rename-icon:hover{background:var(--panel-hover);color:var(--ink)}.sa-gw-name-input{background:var(--bg);border:1px solid var(--brand);border-radius:var(--radius-sm);color:var(--ink);outline:none;min-width:180px;padding:4px 8px;font-size:13px}.sa-gw-loc{flex-wrap:wrap;gap:6px;font-size:12px;display:inline-flex}.sa-gw-tenant-link,.sa-gw-plant-link{background:rgba(var(--brand-rgb), .12);color:#3b82f6;border-radius:4px;padding:2px 8px;font-weight:500}.sa-gw-loc-sep{color:var(--muted)}.sa-gw-cell-time{color:var(--muted);white-space:nowrap;font-size:12px}.sa-gw-actions-cell{text-align:right;position:relative}.sa-gw-kebab{border-radius:var(--radius-sm);width:28px;height:28px;color:var(--ink-secondary);cursor:pointer;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;transition:all .15s;display:inline-flex}.sa-gw-kebab:hover{background:var(--panel-hover);border-color:var(--line);color:var(--ink)}.sa-gw-menu{z-index:50;background:var(--bg-raised,#1a1f2b);border:1px solid var(--line-light,#ffffff26);border-radius:var(--radius);flex-direction:column;gap:1px;min-width:220px;margin-top:4px;padding:4px;display:flex;position:absolute;top:100%;right:4px;box-shadow:0 12px 40px #00000080}.sa-gw-menu-item{border-radius:var(--radius-sm);color:var(--ink);text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;gap:8px;padding:8px 10px;font-size:13px;transition:background .12s;display:inline-flex}.sa-gw-menu-item:hover{background:var(--panel-hover)}.sa-gw-menu-item.primary{color:var(--brand-strong)}.sa-gw-menu-item.danger{color:var(--danger,#ef4444)}.sa-gw-menu-item.danger:hover{background:var(--danger-dim,#ef44441f)}.sa-gw-menu-sep{background:var(--line);height:1px;margin:4px 0}.sa-gw-logs-row td{background:var(--bg);padding:0!important}.sa-gw-logs-panel{border:1px solid var(--line);white-space:pre-wrap;max-height:220px;color:var(--ink-secondary);background:#00000040;border-radius:6px;margin:6px;padding:8px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;overflow-y:auto}.sa-gw-sec-list{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.sa-gw-sec{border-left:3px solid var(--ink-secondary);background:#0000000a;border-radius:6px;grid-template-columns:auto 1fr auto;align-items:baseline;gap:8px;padding:6px 8px;font-size:12px;display:grid}.sa-gw-sec.sev-warn,.sa-gw-sec.sev-warning{border-left-color:#f59e0b}.sa-gw-sec.sev-critical{background:#dc26260f;border-left-color:#ef4444}.sa-gw-sec-type{font-family:ui-monospace,Menlo,monospace;font-weight:700}.sa-gw-sec-detail{color:var(--ink)}.sa-gw-sec-time{color:var(--ink-secondary);white-space:nowrap}.sa-gw-danger{background:#dc26260d;border-color:#dc262666!important}.admin-btn.danger{color:#ef4444;background:#dc26261f;border-color:#dc262680}.admin-btn.danger:hover:not(:disabled){background:#dc262638}@keyframes alarm-nudge-pulse{0%,to{border-color:var(--err,#ef4444);box-shadow:0 0 #ef444400}50%{border-color:#f87171;box-shadow:0 0 0 4px #ef444440}}.alarm-push-nudge{border:1px solid var(--err,#ef4444);color:var(--ink);background:#ef44441f;border-radius:10px;align-items:center;gap:10px;margin:10px 12px 0;padding:10px 14px;font-size:13px;font-weight:600;animation:1.3s ease-in-out infinite alarm-nudge-pulse;display:flex}.alarm-push-nudge-btn{background:var(--err,#ef4444);color:#fff;cursor:pointer;border:none;border-radius:8px;flex-shrink:0;padding:7px 12px;font-size:12.5px;font-weight:700}.alarm-push-nudge-btn:disabled{opacity:.6;cursor:default}.sa-gw-detail-backdrop{-webkit-backdrop-filter:blur(4px);z-index:950;background:#0000008c;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.sa-gw-detail-panel{width:100%;max-width:min(820px,100vw - 20px);max-height:min(var(--vvh,90dvh), 90dvh);background:var(--bg-raised,#1a1f2b);border:1px solid var(--line-light);border-radius:var(--radius,12px);flex-direction:column;animation:.18s sa-gw-pop-in;display:flex;overflow:hidden;box-shadow:0 24px 64px #0000008c}@keyframes sa-gw-pop-in{0%{opacity:0;transform:translateY(14px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.sa-gw-detail-header{border-bottom:1px solid var(--line);flex-shrink:0;justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.sa-gw-detail-header h3{margin:0;font-size:16px}.sa-gw-detail-header>div:first-child{flex-wrap:wrap;align-items:baseline;gap:4px 10px;min-width:0;display:flex}.sa-gw-refreshed{color:var(--muted,#64748b);white-space:nowrap;align-items:center;gap:4px;font-size:11px;line-height:1;display:inline-flex}.sa-gw-refreshed svg{opacity:.75}.sa-gw-detail-body{box-sizing:border-box;flex:1;grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;gap:12px;max-width:100%;padding:14px;display:grid;overflow:hidden auto}.sa-gw-detail-body>*{min-width:0}.sa-gw-detail-body .admin-table-wrap,.sa-gw-detail-body .netdev-vars-table{max-width:100%}.sa-gw-detail-body .admin-mono,.sa-gw-detail-body .netdev-kv span{overflow-wrap:anywhere;word-break:break-word}.sa-gw-tabs{border-bottom:1px solid var(--line);background:var(--bg-raised);flex-wrap:wrap;gap:4px;padding:8px 14px 0;display:flex}.sa-gw-tab{appearance:none;color:var(--ink-secondary);font:inherit;cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;border-radius:8px 8px 0 0;align-items:center;gap:6px;margin-bottom:-1px;padding:8px 12px 10px;font-size:.82rem;font-weight:600;transition:color .15s,background .15s,border-color .15s;display:inline-flex}.sa-gw-tab:hover{color:var(--ink);background:var(--panel-hover)}.sa-gw-tab[aria-selected=true]{color:var(--brand-strong);border-bottom-color:var(--brand);background:var(--panel)}.sa-gw-tab .sa-gw-tab-count{background:var(--line-light);min-width:16px;height:16px;color:var(--ink-secondary);border-radius:8px;justify-content:center;align-items:center;padding:0 4px;font-size:.7rem;font-weight:700;display:inline-flex}.sa-gw-tab[aria-selected=true] .sa-gw-tab-count{background:var(--brand-dim);color:var(--brand-strong)}.sa-gw-tab.sa-gw-tab-alert .sa-gw-tab-count{color:#fca5a5;background:#ef44442e}.sa-gw-detail-body[data-tab]>[data-cat]{display:none}.sa-gw-detail-body[data-tab=resumen]>[data-cat~=resumen],.sa-gw-detail-body[data-tab=conectividad]>[data-cat~=conectividad],.sa-gw-detail-body[data-tab=variables]>[data-cat~=variables],.sa-gw-detail-body[data-tab=acciones]>[data-cat~=acciones],.sa-gw-detail-body[data-tab=seguridad]>[data-cat~=seguridad]{display:block}.sa-gw-catwrap{grid-column:1/-1}.netdev-page-backdrop{background:var(--bg,#0e1116);z-index:960;position:fixed;inset:0;overflow:hidden auto}.netdev-page-panel{box-sizing:border-box;flex-direction:column;width:100%;max-width:1280px;min-height:100%;margin:0 auto;display:flex}.netdev-page-header{z-index:5;border-bottom:1px solid var(--line);background:var(--bg,#0e1116);align-items:center;gap:14px;padding:12px 20px;display:flex;position:sticky;top:0}.netdev-page-title{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.netdev-page-title h3{margin:0;font-size:17px}.netdev-page-body{flex:none;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));padding:18px 20px 40px;overflow:visible}.netdev-page-body .sa-gw-card--full{grid-column:1/-1}.netdev-table-fullwidth{grid-column:1/-1;width:100%}.netdev-table-fullwidth .admin-table-wrap{overflow-x:auto}.netdev-table-fullwidth .netdev-vars-table{min-width:900px}.netdev-opentable-cta{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.netdev-opentable-cta .admin-btn{padding:10px 18px;font-size:15px}@media (max-width:760px){.netdev-page-body{grid-template-columns:1fr;padding:12px 12px 32px}.netdev-page-header{padding:10px 12px}}.sa-gw-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);min-width:0;padding:12px}.sa-gw-detail-body .admin-badge{white-space:normal;overflow-wrap:anywhere}.sa-gw-detail-body .netdev-comms-how,.sa-gw-detail-body .netdev-intel-detail{overflow-wrap:anywhere}.sa-gw-detail-body .admin-table-wrap{max-width:100%;overflow-x:auto}.sa-gw-card--full{grid-column:1/-1}.sa-gw-sms-ctl{border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-raised);flex-direction:column;gap:10px;padding:10px 12px;display:flex}.sa-gw-sms-ctl-row{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.sa-gw-sms-ctl-row>div{min-width:0}.sa-gw-sms-ctl-row strong{font-size:.85rem}.sa-gw-sms-ctl-row p{margin:2px 0 0}.sa-gw-sms-ctl-row button{flex-shrink:0}.sa-gw-card h4{text-transform:uppercase;letter-spacing:.04em;color:var(--ink-secondary);margin:0 0 8px;font-size:12px;font-weight:700}.sa-gw-card-row{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:8px;padding:6px 0;font-size:13px;display:flex}.sa-gw-card-row:last-child{border-bottom:none}.sa-gw-card-label{color:var(--muted);font-size:12px}.sa-gw-meter-wrap{font-variant-numeric:tabular-nums;align-items:center;gap:8px;font-size:12px;display:flex}.sa-gw-meter{background:var(--line);border-radius:4px;flex:none;width:90px;height:6px;display:inline-block;overflow:hidden}.sa-gw-meter-fill{background:var(--accent,#2e7d32);border-radius:4px;height:100%;transition:width .3s;display:block}.sa-gw-meter-fill.warn{background:#d98a00}.sa-gw-meter-fill.crit{background:#c62828}.sa-gw-temp.warn{color:#d98a00;font-weight:600}.sa-gw-temp.crit{color:#c62828;font-weight:600}.sa-gw-truncate{text-overflow:ellipsis;white-space:nowrap;max-width:220px;font-size:11px;overflow:hidden}.sa-gw-quick{flex-wrap:wrap;gap:6px;display:flex}.sa-gw-cmd-list{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.sa-gw-cmd-list li{background:var(--bg);border-radius:var(--radius-sm);justify-content:space-between;padding:6px 8px;font-size:12px;display:flex}.sa-gw-cmd-type{color:var(--brand-strong);font-weight:600}.sa-gw-cmd-time{color:var(--muted)}.sa-gw-vars{flex-direction:column;gap:4px;max-height:260px;display:flex;overflow-y:auto}.sa-gw-var{background:var(--bg);border-radius:var(--radius-sm);padding:8px;font-size:12px}.sa-gw-var-name{flex-direction:column;gap:2px;display:flex}.sa-gw-var-name strong{color:var(--ink);font-size:13px}.sa-gw-var-meta{color:var(--muted);gap:8px;margin-top:4px;font-size:11px;display:flex}.sa-gw-muted{color:var(--muted);margin:0}.sa-gw-ok{color:var(--ok);margin:0}.sa-gw-err{color:var(--danger);margin:0}.sa-gw-toast{background:var(--ink,#fff);color:var(--bg,#0b0e13);text-align:center;z-index:9999;border-radius:8px;max-width:90%;padding:8px 14px;font-size:12px;position:fixed;bottom:24px;left:50%;transform:translate(-50%);box-shadow:0 4px 14px #00000040}.sa-gw-toast-undo{align-items:center;gap:12px;display:flex}.sa-gw-toast-undo button{cursor:pointer;color:var(--accent,#3b82f6);white-space:nowrap;background:0 0;border:none;padding:0;font-size:12px;font-weight:700;text-decoration:underline}@media (max-width:1024px){.sa-gw-detail-body{grid-template-columns:1fr}}@media (max-width:768px){.sa-gw-detail-backdrop{padding:10px;padding-top:max(10px, env(safe-area-inset-top));align-items:flex-start}.sa-gw-detail-panel{max-width:100%;max-height:calc(100svh - 20px)}.sa-gw-tabs{-webkit-overflow-scrolling:touch;scrollbar-width:none;touch-action:pan-x;overscroll-behavior:contain;flex-wrap:nowrap;overflow-x:auto}.sa-gw-tabs::-webkit-scrollbar{display:none}.sa-gw-detail-body{grid-template-columns:1fr}.sa-gw-toolbar-actions{width:100%;margin-left:0}}.lvl-ok{color:#22c55e}.lvl-warn{color:#eab308}.lvl-crit{color:#ef4444}.lvl-muted{color:var(--ink-secondary)}.sa-diag-modal{max-width:900px}.sa-diag-body{padding:14px 16px 18px}.sa-diag-statusbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;display:flex}.sa-diag-status{border:1px solid var(--line-light);background:var(--bg);border-radius:999px;align-items:center;gap:6px;padding:5px 10px;font-size:12px;font-weight:600;display:inline-flex}.sa-diag-status-waiting{color:var(--accent)}.sa-diag-status-ready{color:#22c55e;border-color:#22c55e44}.sa-diag-status-error{color:#ef4444;border-color:#ef444444}.sa-diag-empty{text-align:center;color:var(--ink-secondary);flex-direction:column;align-items:center;gap:10px;padding:40px 16px;display:flex}.sa-diag-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;display:grid}.sa-diag-card{background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);min-width:0;padding:12px 14px}.sa-diag-card-wide{grid-column:1/-1}.sa-diag-card-title{text-transform:uppercase;letter-spacing:.04em;color:var(--ink-secondary);align-items:center;gap:6px;margin:0 0 10px;font-size:12px;font-weight:700;display:flex}.sa-hh-card{grid-column:1/-1}.sa-hh-toggle{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;display:inline-flex}.sa-hh-toggle input{opacity:0;width:0;height:0;position:absolute}.sa-hh-toggle-track{background:var(--line);border-radius:999px;flex:none;width:34px;height:18px;transition:background .15s;position:relative}.sa-hh-toggle-track:after{content:"";background:var(--panel,#fff);border-radius:50%;width:14px;height:14px;transition:transform .15s;position:absolute;top:2px;left:2px}.sa-hh-toggle input:checked+.sa-hh-toggle-track{background:var(--brand,#3b82f6)}.sa-hh-toggle input:checked+.sa-hh-toggle-track:after{transform:translate(16px)}.sa-hh-toggle-label{font-size:13px;font-weight:600}.sa-hh-hint{color:var(--ink-secondary);margin:8px 0 0;font-size:11.5px}.sa-hh-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px 16px;margin-top:12px;display:grid}.sa-hh-metric{min-width:0}.sa-hh-metric-head{justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:4px;display:flex}.sa-hh-metric-name{color:var(--ink-secondary);text-overflow:ellipsis;white-space:nowrap;font-size:11.5px;overflow:hidden}.sa-hh-metric-val{color:var(--brand,#3b82f6);flex:none;font-size:12px;font-weight:700}.sa-hh-spark{width:100%;height:46px;display:block}.sa-hh-metric-empty{height:46px;color:var(--ink-secondary);justify-content:center;align-items:center;font-size:11px;display:flex}.sa-diag-metrics{grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:12px 14px;display:grid}.sa-diag-metric{align-items:flex-start;gap:8px;min-width:0;display:flex}.sa-diag-metric-icon{background:var(--bg-raised);width:24px;height:24px;color:var(--ink-secondary);border-radius:7px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.sa-diag-metric-icon.lvl-ok{color:#22c55e}.sa-diag-metric-icon.lvl-warn{color:#eab308}.sa-diag-metric-icon.lvl-crit{color:#ef4444}.sa-diag-metric-label{text-transform:uppercase;letter-spacing:.03em;color:var(--ink-secondary);font-size:10px}.sa-diag-metric-value{color:var(--ink);word-break:break-word;font-size:14px;font-weight:700}.sa-diag-metric-sub{color:var(--ink-secondary);font-size:11px;font-weight:500}.sa-diag-versions{flex-direction:column;gap:1px;font-size:12px;font-weight:600;display:flex}.sa-diag-foot{border-top:1px dashed var(--line);color:var(--ink-secondary);word-break:break-all;margin-top:10px;padding-top:8px;font-size:11px}.sa-diag-bar{background:var(--line);border-radius:4px;height:6px;margin-top:5px;overflow:hidden}.sa-diag-bar.tall{height:10px}.sa-diag-bar-fill{background:#22c55e;border-radius:4px;height:100%;transition:width .3s}.sa-diag-bar-fill.lvl-ok{background:#22c55e}.sa-diag-bar-fill.lvl-warn{background:#eab308}.sa-diag-bar-fill.lvl-crit{background:#ef4444}.sa-diag-queue-head{justify-content:space-between;font-size:12px;font-weight:600;display:flex}.sa-diag-queue{margin-bottom:12px}.sa-diag-kvs{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:6px 14px;display:grid}.sa-diag-kv{border-bottom:1px dotted var(--line);justify-content:space-between;gap:8px;padding-bottom:3px;font-size:12px;display:flex}.sa-diag-kv>span:first-child{color:var(--ink-secondary)}.sa-diag-bad{color:#ef4444}.sa-diag-tag{background:var(--bg-raised);border:1px solid var(--line-light);color:var(--ink-secondary);border-radius:999px;align-items:center;gap:4px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-flex}.sa-diag-tag.ok{color:#22c55e;border-color:#22c55e55}.sa-diag-tag.warn{color:#eab308;border-color:#eab30855}.sa-diag-sends{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.sa-diag-send{align-items:center;gap:4px;font-size:11px;font-weight:600;display:inline-flex}.sa-diag-send.ok{color:#22c55e}.sa-diag-send.err{color:#ef4444}.sa-diag-errmsg{color:#ef4444;word-break:break-word;background:#ef44441a;border-radius:6px;margin-top:6px;padding:5px 8px;font-size:11px}.sa-diag-summary{flex-wrap:wrap;gap:8px;margin-bottom:10px;display:flex}.sa-diag-devlist{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.sa-diag-dev{border-bottom:1px dotted var(--line);align-items:center;gap:8px;padding:4px 0;font-size:12px;display:flex}.sa-diag-dev.muted{color:var(--ink-secondary);border:none}.sa-diag-dev-name{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:600;overflow:hidden}.sa-diag-dev-type{text-transform:uppercase;letter-spacing:.03em;color:var(--ink-secondary);background:var(--bg-raised);border-radius:4px;flex-shrink:0;padding:1px 5px;font-size:10px}.sa-diag-dev-state{flex-shrink:0;font-size:11px}.sa-diag-dev-state.ok{color:#22c55e}.sa-diag-dev-state.bad{color:#ef4444}.sa-diag-led{background:#475569;border-radius:50%;flex-shrink:0;width:9px;height:9px}.sa-diag-led.on{background:#22c55e;box-shadow:0 0 6px #22c55e88}.sa-diag-led.off{background:#ef4444;box-shadow:0 0 6px #ef444488}.sa-diag-readings{color:var(--ink-secondary);flex-wrap:wrap;align-items:baseline;gap:6px;margin-top:10px;font-size:12px;display:flex}.sa-diag-logs{border:1px solid var(--line);color:#cbd5e1;white-space:pre-wrap;word-break:break-word;background:#05070b;border-radius:8px;max-height:240px;padding:10px 12px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11.5px;line-height:1.55;overflow:auto}.sa-diag-logs>div:nth-child(odd){opacity:.92}.sa-cfg-note{color:var(--ink-secondary);margin-bottom:4px}.sa-cfg-section{margin-bottom:14px}.sa-cfg-section-title{text-transform:uppercase;letter-spacing:.04em;color:var(--ink-secondary);border-bottom:1px solid var(--border,#00000014);margin:0 0 8px;padding-bottom:4px;font-size:12px;font-weight:700}.sa-cfg-grid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;display:grid}.sa-cfg-field{flex-direction:column;gap:2px;display:flex}.sa-cfg-label{color:var(--ink);font-size:13px;font-weight:600}.sa-cfg-hint{color:var(--ink-secondary);font-size:11px}.sa-cfg-field input{margin-top:4px}.sa-cfg-toggle{border:1px solid var(--line);background:var(--bg);cursor:pointer;border-radius:8px;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;display:flex}.sa-cfg-toggle-text{flex-direction:column;gap:1px;min-width:0;display:flex}.sa-cfg-toggle input[type=checkbox]{width:18px;height:18px;accent-color:var(--accent);cursor:pointer;flex-shrink:0}.sa-health-grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px;display:grid}.sa-health-card{background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);border-left-width:3px;flex-direction:column;gap:6px;min-width:0;padding:12px 14px;transition:border-color .15s,transform .1s;display:flex}.sa-health-card[role=button]{cursor:pointer}.sa-health-card[role=button]:hover{transform:translateY(-1px)}.sa-health-card.lvl-ok{border-left-color:#22c55e}.sa-health-card.lvl-warn{border-left-color:#eab308}.sa-health-card.lvl-crit{border-left-color:#ef4444}.sa-health-card.lvl-muted{border-left-color:var(--line-light)}.sa-health-head{align-items:center;gap:7px;display:flex}.sa-health-led{background:#475569;border-radius:50%;flex-shrink:0;width:9px;height:9px}.sa-health-led.on{background:#22c55e;box-shadow:0 0 6px #22c55e88}.sa-health-led.off{background:#ef4444;box-shadow:0 0 6px #ef444488}.sa-health-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:13px;font-weight:700;overflow:hidden}.sa-health-pill{text-transform:uppercase;letter-spacing:.03em;border-radius:999px;flex-shrink:0;padding:2px 7px;font-size:10px;font-weight:700}.sa-health-pill.lvl-ok{color:#22c55e;background:#22c55e1a}.sa-health-pill.lvl-warn{color:#eab308;background:#eab3081a}.sa-health-pill.lvl-crit{color:#ef4444;background:#ef44441a}.sa-health-pill.lvl-muted{color:var(--ink-secondary);background:var(--bg-raised)}.sa-health-tenant{color:var(--ink-secondary)}.sa-health-metrics{grid-template-columns:repeat(4,1fr);gap:6px;margin-top:2px;display:grid}.sa-health-metric{color:var(--ink);background:var(--bg-raised);text-align:center;border-radius:7px;flex-direction:column;align-items:center;gap:1px;padding:6px 2px;font-size:13px;font-weight:700;display:flex}.sa-health-metric.mid{color:#eab308}.sa-health-metric.bad{color:#ef4444}.sa-health-metric svg{opacity:.8}.sa-health-mlabel{text-transform:uppercase;letter-spacing:.03em;color:var(--ink-secondary);font-size:9px;font-weight:600}.sa-health-tags{flex-wrap:wrap;gap:5px;display:flex}.sa-health-tag{background:var(--bg-raised);border:1px solid var(--line-light);color:var(--ink-secondary);border-radius:999px;padding:2px 7px;font-size:10px;font-weight:600}.sa-health-tag.ok{color:#22c55e;border-color:#22c55e44}.sa-health-tag.mid{color:#eab308;border-color:#eab30844}.sa-health-tag.bad{color:#ef4444;border-color:#ef444444}.sa-health-foot{color:var(--ink-secondary);margin-top:2px}@media (max-width:768px){.sa-diag-modal{max-width:100%}.sa-diag-body{padding-bottom:calc(18px + env(safe-area-inset-bottom))}.sa-cfg-form{padding-bottom:calc(16px + env(safe-area-inset-bottom))}}@media (max-width:640px){.sa-diag-grid{grid-template-columns:1fr}.sa-diag-metrics{grid-template-columns:repeat(2,1fr)}.sa-diag-kvs{grid-template-columns:1fr 1fr}.sa-health-grid,.sa-cfg-grid{grid-template-columns:1fr}.sa-health-metrics{grid-template-columns:repeat(2,1fr)}.sa-diag-statusbar{align-items:stretch}.sa-diag-statusbar .admin-btn{justify-content:center}}.plant-selector-wrap{display:inline-block;position:relative}.plant-selector-btn{border-radius:var(--radius-sm);cursor:pointer;color:inherit;text-align:left;background:0 0;border:1px solid #0000;align-items:center;gap:6px;margin:-4px -8px;padding:4px 8px;transition:background .12s,border-color .12s;display:flex}.plant-selector-btn:hover{background:var(--panel-hover,#ffffff0a);border-color:var(--line,#ffffff14)}.plant-selector-btn h2{margin:0;font-size:17px}.plant-selector-menu{background:var(--bg-raised,#1a1f2b);border:1px solid var(--line,#ffffff14);border-radius:var(--radius,10px);z-index:50;flex-direction:column;gap:4px;min-width:280px;max-width:360px;max-height:70vh;padding:6px;display:flex;position:absolute;top:calc(100% + 6px);left:0;overflow-y:auto;box-shadow:0 12px 32px #00000073}.plant-selector-group+.plant-selector-group{border-top:1px solid var(--line,#ffffff0f);margin-top:4px;padding-top:4px}.plant-selector-group-header{text-transform:uppercase;letter-spacing:.06em;color:var(--ink-secondary,#9aa3b2);align-items:center;gap:6px;padding:8px 10px 4px;font-size:11px;font-weight:600;display:flex}.plant-selector-item{border-radius:var(--radius-sm,6px);width:100%;color:var(--ink,#e5e7eb);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:10px;padding:8px 10px;font-size:14px;transition:background .1s;display:flex}.plant-selector-item:hover{background:var(--panel-hover,#ffffff0d)}.plant-selector-item.active{background:var(--brand-dim,rgba(var(--brand-rgb), .14));color:var(--brand,#60a5fa)}.plant-selector-item-name{white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.plant-selector-check{color:var(--brand,#60a5fa);flex-shrink:0}.notif-banner{background:var(--brand-dim,rgba(var(--brand-rgb), .12));border:1px solid var(--brand,#3b82f6);border-radius:var(--radius,10px);color:var(--ink,#e5e7eb);align-items:center;gap:10px;margin:12px 16px 0;padding:10px 14px;font-size:13px;display:flex}.notif-banner-warn{background:var(--warn-dim,#facc151a);border-color:var(--warn,#facc15)}.notif-banner>span{flex:1}.notif-banner-btn{background:var(--brand,#3b82f6);border-radius:var(--radius-sm,6px);color:#fff;cursor:pointer;border:none;align-items:center;gap:6px;padding:6px 12px;font-size:12px;font-weight:600;transition:background .12s;display:inline-flex}.notif-banner-btn:hover:not(:disabled){filter:brightness(1.1)}.notif-banner-btn:disabled{opacity:.5;cursor:default}.notif-banner-link{color:var(--warn,#facc15);cursor:pointer;background:0 0;border:none;font-size:12px;font-weight:600;text-decoration:underline}.notif-banner-close{color:inherit;cursor:pointer;opacity:.6;background:0 0;border:none;padding:4px;display:inline-flex}.notif-banner-close:hover{opacity:1}.offline-banner{z-index:300;padding:6px 14px;padding-top:calc(6px + env(safe-area-inset-top));background:var(--warn,#facc15);color:#1c1917;justify-content:center;align-items:center;gap:8px;font-size:13px;font-weight:600;animation:.18s offline-banner-in;display:flex;position:fixed;top:0;left:0;right:0;box-shadow:0 2px 8px #00000040}.offline-banner svg{flex-shrink:0}@keyframes offline-banner-in{0%{transform:translateY(-100%)}to{transform:translateY(0)}}.push-prompt-overlay{-webkit-backdrop-filter:blur(4px);z-index:2000;background:#000000b3;justify-content:center;align-items:center;padding:20px;animation:.2s ease-out pushFadeIn;display:flex;position:fixed;inset:0}@keyframes pushFadeIn{0%{opacity:0}to{opacity:1}}.push-prompt-modal{background:var(--bg-raised,#1a1f2b);border:1px solid var(--line,#ffffff1a);text-align:center;border-radius:16px;width:100%;max-width:400px;padding:32px 24px 24px;animation:.25s cubic-bezier(.16,1,.3,1) pushSlideIn;position:relative;box-shadow:0 20px 50px #00000080}@keyframes pushSlideIn{0%{opacity:0;transform:translateY(10px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.push-prompt-close{color:var(--ink-secondary,#9aa3b2);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:6px;display:inline-flex;position:absolute;top:12px;right:12px}.push-prompt-close:hover{background:var(--panel-hover,#ffffff0f);color:var(--ink,#e5e7eb)}.push-prompt-icon{background:var(--brand-dim,rgba(var(--brand-rgb), .15));width:64px;height:64px;color:var(--brand,#60a5fa);border-radius:50%;justify-content:center;align-items:center;margin:0 auto 16px;display:flex}.push-prompt-modal h3{color:var(--ink,#e5e7eb);margin:0 0 8px;font-size:18px}.push-prompt-modal p{color:var(--ink-secondary,#9aa3b2);margin:0 0 20px;font-size:14px;line-height:1.5}.push-prompt-actions{flex-direction:column;gap:8px;display:flex}.push-prompt-btn{border-radius:var(--radius-sm,8px);cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;width:100%;padding:12px;font-size:14px;font-weight:600;transition:background .12s,border-color .12s;display:inline-flex}.push-prompt-btn.primary{background:var(--brand,#3b82f6);color:#fff}.push-prompt-btn.primary:hover:not(:disabled){filter:brightness(1.1)}.push-prompt-btn.primary:disabled{opacity:.6;cursor:default}.push-prompt-btn.secondary{border-color:var(--line,#ffffff1f);color:var(--ink-secondary,#9aa3b2);background:0 0}.push-prompt-btn.secondary:hover{background:var(--panel-hover,#ffffff0a);color:var(--ink,#e5e7eb)}.settings-view{flex-direction:column;gap:20px;width:100%;max-width:760px;margin:0 auto;padding:20px;display:flex;overflow-y:auto}.settings-header h3{color:var(--ink,#e5e7eb);margin:0 0 4px;font-size:20px}.settings-section{background:var(--panel,#161b25);border:1px solid var(--line,#ffffff14);border-radius:var(--radius,10px);flex-direction:column;gap:12px;padding:16px;display:flex}.settings-section-header{border-bottom:1px solid var(--line,#ffffff0f);align-items:flex-start;gap:10px;padding-bottom:8px;display:flex}.settings-section-header>svg{color:var(--brand,#60a5fa);flex-shrink:0;margin-top:2px}.settings-section-header h4{color:var(--ink,#e5e7eb);margin:0;font-size:15px}.settings-section-header p{margin:2px 0 0;font-size:12px}.ingest-toggle-row{justify-content:space-between;align-items:center;gap:16px;margin-top:12px;display:flex}.settings-status{margin:8px 0 0}.settings-status.ok{color:#10b981}.settings-status.err{color:#ef4444}.settings-row{justify-content:space-between;align-items:center;gap:12px;padding:6px 0;display:flex}.settings-row-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.settings-row-info strong{color:var(--ink,#e5e7eb);font-size:14px}.settings-toggle{background:var(--line,#ffffff26);cursor:pointer;border:none;border-radius:999px;flex-shrink:0;width:44px;height:24px;transition:background .18s;position:relative}.settings-toggle:disabled{opacity:.4;cursor:not-allowed}.settings-toggle-knob{background:#fff;border-radius:50%;width:18px;height:18px;transition:transform .18s;position:absolute;top:3px;left:3px}.settings-toggle.on{background:var(--brand,#3b82f6)}.settings-toggle.on .settings-toggle-knob{transform:translate(20px)}.settings-btn{background:var(--panel-hover,#ffffff0a);border:1px solid var(--line,#ffffff1a);border-radius:var(--radius-sm,6px);color:var(--ink,#e5e7eb);cursor:pointer;flex-shrink:0;align-items:center;gap:6px;padding:8px 14px;font-size:13px;font-weight:500;transition:background .12s,border-color .12s;display:inline-flex}.settings-btn:hover:not(:disabled){border-color:var(--brand,#3b82f6);background:#ffffff14}.settings-btn:disabled{opacity:.5;cursor:not-allowed}.settings-btn.danger{color:var(--danger,#ef4444);border-color:var(--danger);background:#ef444414;align-self:flex-start}.settings-btn.danger:hover:not(:disabled){background:#ef44442e}.settings-warn{background:var(--warn-dim,#facc1514);border:1px solid var(--warn,#facc15);border-radius:var(--radius-sm,6px);color:var(--warn,#facc15);align-items:center;gap:8px;padding:8px 12px;font-size:12px;display:flex}.settings-pill{background:var(--panel-hover,#ffffff0d);color:var(--ink-secondary,#9aa3b2);text-transform:uppercase;letter-spacing:.04em;border-radius:999px;flex-shrink:0;padding:4px 10px;font-size:11px;font-weight:600}.settings-pill.muted{opacity:.7}.settings-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.settings-field{flex-direction:column;gap:4px;min-width:0;display:flex}.settings-field input{box-sizing:border-box;border:1px solid var(--line);background:var(--bg-raised,var(--panel));width:100%;color:var(--ink);border-radius:8px;padding:8px 10px;font-size:14px}.avisos-form{flex-wrap:wrap;align-items:flex-end;gap:8px;display:flex}.avisos-bridge-warn{color:#b45309;background:#f59e0b1f;border:1px solid #f59e0b73;border-radius:8px;align-items:flex-start;gap:8px;margin:4px 0 12px;padding:9px 12px;font-size:.82rem;line-height:1.35;display:flex}.avisos-bridge-warn svg{color:#f59e0b;flex:none;margin-top:1px}@media (prefers-color-scheme:dark){.avisos-bridge-warn{color:#fcd34d}}.avisos-field{flex-direction:column;flex:160px;gap:2px;min-width:0;display:flex}.avisos-field input,.avisos-field select{box-sizing:border-box;border:1px solid var(--line);background:var(--bg-raised,var(--panel));width:100%;color:var(--ink);border-radius:8px;padding:8px 10px;font-size:14px}@media (max-width:640px){.avisos-field{flex-basis:100%}.avisos-form>button{justify-content:center;width:100%}}.settings-grid>div{flex-direction:column;gap:2px;min-width:0;display:flex}.settings-grid>div>span.small{align-items:center;gap:4px;display:inline-flex}.settings-grid>div>strong{color:var(--ink,#e5e7eb);word-break:break-word;font-size:14px}.settings-color-row{align-items:center;gap:8px;display:inline-flex}.settings-color-swatch{border:1px solid var(--line,#ffffff26);border-radius:4px;flex-shrink:0;width:18px;height:18px}@media (max-width:640px){.settings-grid{grid-template-columns:1fr}.plant-selector-menu{min-width:240px;max-width:calc(100vw - 32px)}.notif-banner{flex-wrap:wrap;margin:8px 12px 0;font-size:12px}.notif-banner>span{flex-basis:100%}}.superadmin-dashboard{background:var(--bg);min-height:100dvh;color:var(--ink);grid-template-columns:260px 1fr;display:grid;position:relative}.superadmin-sidebar{background:var(--panel);border-right:1px solid var(--line);flex-direction:column;gap:18px;padding:20px 14px;display:flex;position:relative;overflow-y:auto}.superadmin-collapse-toggle{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg-raised);width:30px;height:30px;color:var(--ink-secondary);cursor:pointer;flex-shrink:0;justify-content:center;align-self:flex-end;align-items:center;display:inline-flex}.superadmin-collapse-toggle:hover{color:var(--ink);background:var(--panel-hover)}@media (min-width:901px){.superadmin-dashboard.sa-collapsed{grid-template-columns:76px 1fr}.sa-collapsed .superadmin-sidebar{align-items:center;padding:20px 10px}.sa-collapsed .superadmin-collapse-toggle{align-self:center}.sa-collapsed .superadmin-brand{flex-direction:column;justify-content:center;gap:0;width:100%;padding:4px 0 12px}.sa-collapsed .superadmin-brand h1,.sa-collapsed .superadmin-brand p{display:none}.sa-collapsed .superadmin-nav{align-items:stretch;width:100%}.sa-collapsed .superadmin-nav button{justify-content:center;padding:10px 0}.sa-collapsed .superadmin-nav button span,.sa-collapsed .sa-nav-group-title{display:none}.sa-collapsed .sa-nav-group+.sa-nav-group{border-top:1px solid var(--line);margin-top:8px;padding-top:8px}.sa-collapsed .sa-nav-zone-title,.sa-collapsed .sa-nav-zone-hint{display:none}.sa-collapsed .sa-nav-zone-head{justify-content:center;margin-bottom:6px;padding:0}.sa-collapsed .sa-nav-zone:not(.sa-nav-zone-client) .sa-nav-zone-head svg{display:none}.sa-collapsed .sa-nav-zone:not(.sa-nav-zone-client) .sa-nav-zone-head{background:var(--line);border-radius:1px;height:1px;min-height:1px;margin:2px 14px 10px;overflow:hidden}.sa-collapsed .superadmin-brand-mark{display:none}.sa-collapsed .sa-nav-zone+.sa-nav-zone{margin-top:10px;padding-top:10px}.sa-collapsed .superadmin-user-card{display:none}}.superadmin-brand{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:4px 6px 12px;display:flex}.superadmin-brand h1{letter-spacing:.02em;margin:0;font-size:15px}.superadmin-brand p{color:var(--ink-secondary);text-transform:uppercase;letter-spacing:.06em;margin:2px 0 0;font-size:11px}.superadmin-brand-mark{color:#fff;background:linear-gradient(135deg,#a855f7,#6366f1);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;display:flex}.superadmin-mobile-close{color:var(--ink-secondary);background:0 0;border:none;margin-left:auto;padding:4px;display:none}.superadmin-nav{flex-direction:column;gap:2px;display:flex}.superadmin-nav button{border-radius:var(--radius-sm);color:var(--ink-secondary);text-align:left;background:0 0;border:1px solid #0000;align-items:center;gap:10px;padding:9px 12px;font-size:14px;font-weight:500;transition:background .12s,color .12s,border-color .12s;display:flex}.superadmin-nav button:hover{background:var(--panel-hover);color:var(--ink)}.superadmin-nav button.active{background:var(--brand-dim);color:var(--brand-strong);border-color:#6366f14d}.sa-nav-group{flex-direction:column;gap:2px;display:flex}.sa-nav-group+.sa-nav-group{margin-top:12px}.sa-nav-group-title{text-transform:uppercase;letter-spacing:.08em;color:var(--ink-secondary);opacity:.7;margin:0 0 4px;padding:0 12px;font-size:10px;font-weight:600}.sa-nav-zone{flex-direction:column;gap:2px;display:flex}.sa-nav-zone+.sa-nav-zone{border-top:1px solid var(--line);margin-top:18px;padding-top:14px}.sa-nav-zone-head{color:var(--ink-secondary);align-items:center;gap:7px;margin-bottom:8px;padding:0 12px;display:flex}.sa-nav-zone-head svg{opacity:.75;flex:none}.sa-nav-zone-title{text-transform:uppercase;letter-spacing:.09em;white-space:nowrap;text-overflow:ellipsis;font-size:11px;font-weight:700;overflow:hidden}.sa-nav-zone-client.has-client .sa-nav-zone-head{color:var(--brand-strong)}.sa-nav-zone-client.has-client .sa-nav-zone-head svg{opacity:1}.sa-nav-zone-client.has-client .sa-nav-zone-title{text-transform:none;letter-spacing:.01em;font-size:13px}.sa-nav-zone.is-dimmed .sa-nav-zone-head{opacity:.55}.sa-nav-zone-hint{color:var(--muted);margin:-4px 0 8px;padding:0 12px;font-size:11px;font-style:italic}.superadmin-sidebar-spacer{flex:1}.superadmin-user-card{background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;gap:4px;padding:12px;display:flex}.superadmin-user-row{color:var(--ink);align-items:center;gap:6px;display:flex}.superadmin-user-card .small{color:var(--ink-secondary);margin:0;font-size:11px}.superadmin-user-card .logout-btn{margin-top:8px}.superadmin-main{background:var(--bg);flex-direction:column;min-width:0;min-height:100dvh;display:flex}.superadmin-topbar{padding:max(14px, env(safe-area-inset-top)) 22px 14px;border-bottom:1px solid var(--line);background:var(--panel);z-index:10;align-items:center;gap:12px;display:flex;position:sticky;top:0}.superadmin-topbar-title{color:var(--ink);align-items:center;gap:6px;font-size:14px;font-weight:600;display:flex}.superadmin-topbar-title svg{color:#a855f7}.superadmin-topbar-user{align-items:center;gap:10px;margin-left:auto;display:flex}.superadmin-topbar-name{color:var(--ink-secondary);white-space:nowrap;text-overflow:ellipsis;max-width:160px;overflow:hidden}@media (max-width:600px){.superadmin-topbar{padding:max(12px, env(safe-area-inset-top)) 14px 12px;gap:8px}.superadmin-topbar-name{display:none}}.sa-present-toggle{background:var(--bg-raised);border:1px solid var(--line-light);border-radius:var(--radius-sm);color:var(--ink-secondary);font:inherit;cursor:pointer;white-space:nowrap;align-items:center;gap:6px;padding:6px 10px;font-size:13px;font-weight:600;transition:border-color .12s,background .12s,color .12s;display:inline-flex}.sa-present-toggle svg{flex:none}.sa-present-toggle:hover{border-color:var(--warn);color:var(--ink)}.sa-present-toggle:focus-visible{outline:2px solid var(--warn);outline-offset:2px}.sa-present-toggle.is-active{background:var(--warn-dim);border-color:var(--warn);color:var(--warn)}.sa-present-banner{background:var(--warn-dim);border-bottom:1px solid color-mix(in srgb, var(--warn) 45%, transparent);color:var(--ink);align-items:center;gap:10px;padding:9px 22px;font-size:13px;line-height:1.35;display:flex}.sa-present-banner-ico{color:var(--warn);flex:none}.sa-present-banner-text{flex:auto;min-width:0}.sa-present-banner-text strong{color:var(--warn);font-weight:700}.sa-present-banner-exit{border:1px solid var(--warn);border-radius:var(--radius-sm);color:var(--warn);font:inherit;cursor:pointer;background:0 0;flex:none;padding:4px 12px;font-size:12px;font-weight:600;transition:background .12s}.sa-present-banner-exit:hover{background:color-mix(in srgb, var(--warn) 16%, transparent)}.sa-present-banner-exit:focus-visible{outline:2px solid var(--warn);outline-offset:2px}@media (max-width:600px){.sa-present-toggle-lbl{display:none}.sa-present-banner{gap:8px;padding:8px 14px;font-size:12px}}.superadmin-mobile-toggle{border:1px solid var(--line-light);border-radius:var(--radius-sm);color:var(--ink);background:0 0;padding:6px 8px;display:none}.logout-btn-sm{border-radius:var(--radius-sm);border:1px solid var(--line-light);background:var(--bg-raised);width:32px;height:32px;color:var(--ink-secondary);justify-content:center;align-items:center;transition:background .12s,color .12s;display:inline-flex}.logout-btn-sm:hover{background:var(--danger);color:#fff;border-color:var(--danger)}.superadmin-content{background:var(--bg);flex:1;padding:24px;overflow-y:auto}.superadmin-mobile-backdrop{z-index:40;cursor:pointer;background:#0006;border:none;position:fixed;inset:0}.admin-stat-card.clickable{cursor:pointer;text-align:left;border:1px solid var(--line)}.admin-stat-card.clickable:hover{border-color:var(--brand);background:var(--panel-hover)}.admin-stat-sub{gap:6px;margin-top:6px;display:flex}.admin-stat-pill{background:var(--bg);border-radius:999px;align-items:center;gap:3px;padding:2px 6px;font-size:10px;font-weight:600;display:inline-flex}.admin-stat-pill.ok{background:var(--ok-dim);color:var(--ok)}.admin-stat-pill.danger{background:var(--danger-dim);color:var(--danger)}.admin-quick-links{margin-top:24px}.admin-quick-links h4{text-transform:uppercase;letter-spacing:.06em;color:var(--ink-secondary);margin:0 0 10px;font-size:13px}.admin-quick-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;display:grid}.admin-quick-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);color:var(--ink);text-align:left;flex-direction:column;align-items:flex-start;gap:4px;padding:14px;transition:border-color .12s,background .12s,transform .12s;display:flex}.admin-quick-card:hover{border-color:var(--brand);background:var(--panel-hover);transform:translateY(-1px)}.admin-quick-card svg{color:var(--brand-strong);margin-bottom:4px}.admin-quick-card strong{font-size:14px}.admin-quick-card .small{color:var(--ink-secondary);font-size:12px}.sa-crumb-wrap{align-items:center;gap:6px;min-width:0;display:inline-flex}.sa-crumb-back{background:var(--bg-raised);border:1px solid var(--line-light);border-radius:var(--radius-sm);width:34px;height:34px;color:var(--ink-secondary);cursor:pointer;flex:none;justify-content:center;align-items:center;transition:border-color .12s,background .12s,color .12s;display:inline-flex}.sa-crumb-back:hover{border-color:var(--brand);background:var(--panel-hover);color:var(--brand-strong)}.sa-crumb-back:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.sa-crumb{min-width:0;position:relative}.sa-crumb-btn{background:var(--bg-raised);border:1px solid var(--line-light);border-radius:var(--radius-sm);max-width:100%;color:var(--ink);font:inherit;cursor:pointer;align-items:center;gap:6px;padding:7px 10px;font-size:14px;font-weight:600;transition:border-color .12s,background .12s;display:inline-flex}.sa-crumb-btn:hover{border-color:var(--brand);background:var(--panel-hover)}.sa-crumb-btn:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.sa-crumb-ico{color:var(--brand-strong);flex:none}.sa-crumb-tenant{white-space:nowrap;text-overflow:ellipsis;max-width:40vw;overflow:hidden}.sa-crumb-sep{color:var(--muted);flex:none}.sa-crumb-plant{color:var(--ink-secondary);white-space:nowrap;text-overflow:ellipsis;max-width:30vw;font-weight:500;overflow:hidden}.sa-crumb-section{border-left:1px solid var(--line);color:var(--muted);white-space:nowrap;margin-left:4px;padding-left:10px;font-size:13px;font-weight:500}.sa-crumb-caret{color:var(--muted);flex:none}@media (max-width:700px){.sa-crumb-section{display:none}.sa-crumb-tenant{max-width:46vw}}.sa-crumb-menu{z-index:60;background:var(--panel);border:1px solid var(--line-light);border-radius:var(--radius);min-width:260px;max-width:min(92vw,340px);max-height:min(70vh,460px);padding:6px;position:absolute;top:calc(100% + 6px);left:0;overflow-y:auto;box-shadow:0 16px 40px #00000080}.sa-crumb-group{text-transform:uppercase;letter-spacing:.5px;color:var(--muted);padding:8px 10px 4px;font-size:11px;font-weight:700}.sa-crumb-empty{color:var(--muted);padding:8px 10px;font-size:13px}.sa-crumb-item{border-radius:var(--radius-sm);width:100%;min-height:42px;color:var(--ink);font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;gap:9px;padding:10px;font-size:14px;transition:background .12s;display:flex}.sa-crumb-item>span{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.sa-crumb-item>svg{color:var(--ink-secondary);flex:none}.sa-crumb-item:hover{background:var(--panel-hover)}.sa-crumb-item:focus-visible{outline:2px solid var(--brand);outline-offset:-2px}.sa-crumb-item.active{background:var(--brand-dim);color:var(--brand-strong)}.sa-crumb-item.active>svg{color:var(--brand-strong)}.sa-crumb-check{color:var(--brand-strong);flex:none}.sa-home-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;display:grid}@media (max-width:560px){.sa-home-grid{grid-template-columns:1fr}}.sa-tenant-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);color:var(--ink);text-align:left;font:inherit;cursor:pointer;flex-direction:column;gap:14px;padding:16px;transition:border-color .12s,background .12s,transform .1s,box-shadow .12s;display:flex}.sa-tenant-card:hover{border-color:var(--brand);background:var(--panel-hover);transform:translateY(-2px);box-shadow:0 10px 26px #00000047}.sa-tenant-card:active{transform:translateY(0)}.sa-tenant-card:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.sa-tenant-card-head{align-items:center;gap:11px;display:flex}.sa-tenant-avatar{background:var(--brand-dim);width:38px;height:38px;color:var(--brand-strong);border-radius:10px;flex:none;justify-content:center;align-items:center;font-size:17px;font-weight:700;display:inline-flex}.sa-tenant-card-id{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.sa-tenant-card-id strong{text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:600;overflow:hidden}.sa-tenant-slug{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.sa-tenant-chev{color:var(--muted);flex:none;transition:transform .12s,color .12s}.sa-tenant-card:hover .sa-tenant-chev{color:var(--brand-strong);transform:translate(2px)}.sa-tenant-metrics{flex-wrap:wrap;gap:7px;display:flex}.sa-metric{background:var(--bg);border:1px solid var(--line);color:var(--ink-secondary);border-radius:999px;align-items:center;gap:5px;padding:5px 9px;font-size:12px;display:inline-flex}.sa-metric>svg{color:var(--muted)}.sa-metric-val{color:var(--ink);font-weight:700}.sa-metric-lbl{color:var(--muted)}.sa-tone-ok{background:var(--ok-dim);border-color:color-mix(in srgb, var(--ok) 35%, transparent)}.sa-tone-ok>svg,.sa-tone-ok .sa-metric-val{color:var(--ok)}.sa-tone-warn{background:var(--warn-dim);border-color:color-mix(in srgb, var(--warn) 35%, transparent)}.sa-tone-warn>svg,.sa-tone-warn .sa-metric-val{color:var(--warn)}.sa-tone-danger{background:var(--danger-dim);border-color:color-mix(in srgb, var(--danger) 35%, transparent)}.sa-tone-danger>svg,.sa-tone-danger .sa-metric-val{color:var(--danger)}.sa-tone-muted{opacity:.85}.sa-home-empty-cta{background:var(--brand);border-radius:var(--radius-sm);color:#fff;cursor:pointer;border:none;align-items:center;gap:7px;margin-top:4px;padding:10px 16px;font-size:14px;font-weight:600;transition:filter .12s;display:inline-flex}.sa-home-empty-cta:hover{filter:brightness(1.08)}.sa-home-empty-cta:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.sa-home-tools{border-top:1px solid var(--line);margin-top:28px;padding-top:20px}.sa-tenant-card--skel{cursor:default;pointer-events:none}.sa-tenant-card--skel:hover{border-color:var(--line);background:var(--panel);box-shadow:none;transform:none}.sa-skel-line,.sa-skel-chip{background:linear-gradient(100deg, var(--line) 30%, var(--line-light) 50%, var(--line) 70%);background-size:200% 100%;border-radius:6px;animation:1.4s ease-in-out infinite sa-skel-shimmer}.sa-skel-line--title{width:60%;height:16px}.sa-skel-line--wide{width:85%;height:12px}.sa-skel-chip{border-radius:999px;width:74px;height:24px}@keyframes sa-skel-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.sa-portal{flex-direction:column;gap:22px;display:flex}.sa-portal-hero{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:18px 20px;display:flex}.sa-portal-hero-id{align-items:center;gap:14px;min-width:0;display:flex}.sa-portal-avatar{border-radius:12px;width:48px;height:48px;font-size:22px}.sa-portal-hero-titles{flex-direction:column;gap:2px;min-width:0;display:flex}.sa-portal-eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--brand-strong);font-size:11px;font-weight:700}.sa-portal-hero-titles h3{text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:20px;font-weight:700;line-height:1.15;overflow:hidden}.sa-portal-scope{color:var(--muted);align-items:center;gap:5px;font-size:12px;display:inline-flex}.sa-portal-scope>svg{color:var(--muted)}.sa-portal-metrics{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.sa-portal-metrics-empty{color:var(--muted)}.sa-portal-group{flex-direction:column;gap:10px;display:flex}.sa-portal-group-title{letter-spacing:.04em;text-transform:uppercase;color:var(--ink-secondary);margin:0;font-size:12px;font-weight:600}.sa-portal-tiles{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;display:grid}.sa-portal-tile{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);color:var(--ink);text-align:left;font:inherit;cursor:pointer;align-items:center;gap:13px;padding:15px 16px;transition:border-color .12s,background .12s,transform .1s,box-shadow .12s;display:flex}.sa-portal-tile:hover{border-color:var(--brand);background:var(--panel-hover);transform:translateY(-2px);box-shadow:0 10px 26px #00000047}.sa-portal-tile:active{transform:translateY(0)}.sa-portal-tile:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.sa-portal-tile-ico{background:var(--brand-dim);width:42px;height:42px;color:var(--brand-strong);border-radius:11px;flex:none;justify-content:center;align-items:center;transition:transform .12s;display:inline-flex}.sa-portal-tile:hover .sa-portal-tile-ico{transform:scale(1.05)}.sa-portal-tile-body{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.sa-portal-tile-body strong{font-size:15px;font-weight:600}.sa-portal-tile-body .small{color:var(--ink-secondary);font-size:12px}.sa-portal-tile-count{background:var(--brand-dim);min-width:24px;height:24px;color:var(--brand-strong);border-radius:999px;flex:none;justify-content:center;align-items:center;padding:0 8px;font-size:12px;font-weight:700;display:inline-flex}.sa-portal-tile-chev{color:var(--muted);flex:none;transition:transform .12s,color .12s}.sa-portal-tile:hover .sa-portal-tile-chev{color:var(--brand-strong);transform:translate(2px)}@media (max-width:560px){.sa-portal-hero{align-items:flex-start}.sa-portal-metrics{width:100%}.sa-portal-tiles{grid-template-columns:1fr}}.sa-loose{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;gap:12px;padding:16px 18px;display:flex}.sa-loose-head{align-items:center;gap:9px;display:flex}.sa-loose-ico{color:var(--brand-strong);display:inline-flex}.sa-loose-title{letter-spacing:.04em;text-transform:uppercase;color:var(--ink-secondary);margin:0;font-size:13px;font-weight:700}.sa-loose-badge{background:var(--warn-dim);min-width:22px;height:22px;color:var(--warn);border:1px solid color-mix(in srgb, var(--warn) 35%, transparent);border-radius:999px;justify-content:center;align-items:center;margin-left:auto;padding:0 7px;font-size:12px;font-weight:700;display:inline-flex}.sa-loose-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.sa-loose-row{background:var(--bg);border:1px solid var(--line);border-radius:var(--radius-sm);width:100%;color:var(--ink);text-align:left;font:inherit;cursor:pointer;align-items:center;gap:13px;padding:12px 14px;transition:border-color .12s,background .12s,transform .1s;display:flex}.sa-loose-row:hover{border-color:var(--brand);background:var(--panel-hover);transform:translate(2px)}.sa-loose-row:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.sa-loose-count{background:var(--bg-raised);border:1px solid var(--line-light);min-width:30px;height:30px;color:var(--ink);font-variant-numeric:tabular-nums;border-radius:9px;flex:none;justify-content:center;align-items:center;padding:0 8px;font-size:14px;font-weight:700;display:inline-flex}.sa-loose-row.sa-tone-warn .sa-loose-count{background:var(--warn-dim);border-color:color-mix(in srgb, var(--warn) 35%, transparent);color:var(--warn)}.sa-loose-row.sa-tone-danger .sa-loose-count{background:var(--danger-dim);border-color:color-mix(in srgb, var(--danger) 35%, transparent);color:var(--danger)}.sa-loose-body{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.sa-loose-body strong{font-size:14px;font-weight:600}.sa-loose-body .small{color:var(--ink-secondary);font-size:12px}.sa-loose-action{color:var(--muted);flex:none;align-items:center;gap:3px;font-size:12px;font-weight:600;transition:color .12s,transform .12s;display:inline-flex}.sa-loose-row:hover .sa-loose-action{color:var(--brand-strong);transform:translate(2px)}.sa-loose-ok{border-radius:var(--radius-sm);background:var(--ok-dim);border:1px solid color-mix(in srgb, var(--ok) 30%, transparent);align-items:center;gap:11px;padding:12px 14px;display:flex}.sa-loose-ok>svg{color:var(--ok);flex:none}.sa-loose-ok strong{color:var(--ink);font-size:14px;display:block}.sa-loose-ok .small{color:var(--ink-secondary);font-size:12px}.sa-loose-empty{color:var(--muted)}.sa-gwq-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.sa-gwq-row{background:var(--bg);border:1px solid var(--line);border-radius:var(--radius-sm);align-items:center;gap:10px;padding:10px 12px;display:flex}.sa-gwq-name{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.sa-gwq-name strong{font-size:14px;font-weight:600}.sa-gwq-name .small{color:var(--ink-secondary);font-size:12px}.sa-skel-row{border-radius:var(--radius-sm);background:linear-gradient(100deg, var(--line) 30%, var(--line-light) 50%, var(--line) 70%);background-size:200% 100%;height:54px;animation:1.4s ease-in-out infinite sa-skel-shimmer}@media (max-width:560px){.sa-loose-action span{display:none}}@media (prefers-reduced-motion:reduce){.sa-loose-row,.sa-loose-row:hover,.sa-loose-row:hover .sa-loose-action{transform:none}.sa-skel-row{animation:none}}.admin-search-input{background:var(--bg-raised);border:1px solid var(--line-light);border-radius:var(--radius-sm);height:32px;color:var(--ink);outline:none;min-width:200px;padding:0 10px;font-size:13px}.admin-search-input:focus{border-color:var(--brand)}.admin-header-tools{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.admin-header-tools .admin-search-input{flex:160px;min-width:120px;height:36px}.admin-header-tools .refresh-btn{flex-shrink:0}.admin-header-tools .admin-btn{white-space:nowrap;flex-shrink:0}@media (max-width:480px){.admin-header-tools{width:100%}.admin-header-tools .admin-btn{height:34px}}.plant-card-admin-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px;margin-top:6px;display:grid}.plant-card-admin{background:linear-gradient(180deg, var(--panel), var(--bg-raised));border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;gap:14px;padding:18px;transition:border-color .15s,transform .15s,box-shadow .15s;display:flex}.plant-card-admin:hover{border-color:var(--brand);transform:translateY(-2px);box-shadow:0 8px 24px #0000004d}.plant-card-admin-header{justify-content:space-between;align-items:center;gap:8px;display:flex}.plant-card-admin-title{align-items:center;gap:8px;min-width:0;display:flex}.plant-card-admin-title svg{color:var(--brand-strong);flex-shrink:0}.plant-card-admin-title h4{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:18px;overflow:hidden}.plant-card-admin-plan{letter-spacing:.04em;text-transform:uppercase;color:#fff;border-radius:999px;flex-shrink:0;padding:2px 8px;font-size:11px;font-weight:700}.plant-card-admin-tenant{color:var(--ink-secondary);align-items:center;gap:6px;margin-top:-4px;font-size:12px;display:flex}.plant-card-kpi-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}@media (max-width:480px){.plant-card-kpi-grid{grid-template-columns:1fr}}.plant-card-kpi{background:var(--bg);border:1px solid var(--line);border-radius:var(--radius-sm);align-items:center;gap:10px;padding:10px;display:flex}.plant-card-kpi-icon{background:var(--brand-dim);width:30px;height:30px;color:var(--brand-strong);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.plant-card-kpi-icon.ok{background:var(--ok-dim);color:var(--ok)}.plant-card-kpi-icon.danger{background:var(--danger-dim);color:var(--danger)}.plant-card-kpi-icon.muted{background:var(--line);color:var(--ink-secondary)}.plant-card-kpi-icon.warn{color:#f59e0b;background:#f59e0b29}.plant-card-gateway-status .status-dot.partial{background:#f59e0b}.plant-card-kpi-info{flex-direction:column;min-width:0;display:flex}.plant-card-kpi-label{text-transform:uppercase;letter-spacing:.05em;color:var(--ink-secondary);font-size:10px}.plant-card-kpi-value{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.plant-card-kpi-value.danger{color:var(--danger)}.plant-card-kpi-value.warn{color:#f59e0b}.plant-card-gateway-status{align-items:center;gap:5px;font-size:13px;display:inline-flex}.plant-card-admin-actions{gap:8px;margin-top:4px;display:flex}.plant-card-admin-actions .admin-btn{flex:1;justify-content:center;height:38px;font-size:14px;font-weight:600}.app-shell.with-viewing-banner{--view-banner-h:calc(40px + env(safe-area-inset-top));--app-height:calc(var(--vvh,100dvh) - var(--view-banner-h))}.viewing-banner{top:env(safe-area-inset-top);z-index:60;color:#fff;background:linear-gradient(90deg,#6d28d9,#4f46e5);justify-content:space-between;align-items:center;gap:12px;padding:9px 18px;font-size:13px;display:flex;position:fixed;left:0;right:0;box-shadow:0 2px 8px #0000004d}.app-shell.with-viewing-banner:before{content:"";height:env(safe-area-inset-top);background:var(--bg,#0c1220);z-index:61;pointer-events:none;position:fixed;top:0;left:0;right:0}.viewing-banner-info{flex-wrap:wrap;align-items:center;gap:8px;min-width:0;display:flex}.viewing-banner-info svg{flex-shrink:0}.viewing-banner-label{opacity:.85;font-weight:500}.viewing-banner-plant{font-size:14px;font-weight:700}.viewing-banner-tenant{opacity:.8;font-size:12px}.viewing-banner-exit{border-radius:var(--radius-sm);color:#fff;white-space:nowrap;background:#ffffff26;border:1px solid #ffffff4d;align-items:center;gap:4px;padding:6px 12px;font-size:12px;font-weight:600;transition:background .12s;display:inline-flex}.viewing-banner-exit:hover{background:#ffffff47}@media (max-width:900px){.superadmin-dashboard{grid-template-columns:1fr}.superadmin-sidebar{z-index:50;width:280px;transition:transform .2s;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}.superadmin-sidebar.open{transform:translate(0)}.superadmin-mobile-toggle,.superadmin-mobile-close{display:inline-flex}.superadmin-collapse-toggle{display:none}}@media (max-width:768px){.plant-card-admin-grid{grid-template-columns:1fr}.superadmin-content{padding:16px}.viewing-banner{flex-wrap:wrap;padding:8px 14px;font-size:12px}.viewing-banner-info{flex:1;min-width:0}.app-shell.with-viewing-banner{--view-banner-h:calc(60px + env(safe-area-inset-top));padding-top:var(--view-banner-h)}}.var-bulk-bar{background:var(--accent-dim,#0ea5a41f);border:1px solid var(--accent,#0ea5a4);border-radius:8px;justify-content:space-between;align-items:center;gap:12px;margin:8px 0;padding:8px 12px;font-size:13px;display:flex}.var-bulk-bar>span{align-items:center;gap:6px;display:inline-flex}.var-source-badge{letter-spacing:.4px;text-transform:uppercase;background:var(--accent-dim,#0ea5a42e);color:var(--accent,#0ea5a4);vertical-align:middle;border-radius:6px;margin-left:8px;padding:1px 7px;font-size:10px;font-weight:600;display:inline-block}.var-row-context{flex-wrap:wrap;gap:6px;margin-top:4px;display:flex}.var-ctx-chip{background:var(--bg-elev,#ffffff0d);color:var(--fg-muted,#9ca3af);border:1px solid var(--border,#ffffff14);border-radius:10px;align-items:center;gap:4px;padding:2px 7px;font-size:11px;display:inline-flex}.var-ctx-chip.muted{opacity:.7}.var-discovery-panel{background:var(--bg-elev,#0ea5a40d);border:1px dashed var(--accent,#0ea5a4);border-radius:8px;margin:8px 0 14px;padding:10px 12px}.var-discovery-title{text-transform:uppercase;letter-spacing:.6px;color:var(--accent,#0ea5a4);align-items:center;gap:6px;margin-bottom:6px;font-size:11px;font-weight:600;display:inline-flex}.vm-section{margin-bottom:16px}.vm-section-title{text-transform:uppercase;letter-spacing:.06em;color:var(--ink-secondary);align-items:center;gap:6px;margin-bottom:8px;padding:6px 0;font-size:11px;font-weight:700;display:flex}.vm-section-title.pending{color:var(--warn)}.vm-section-title.active{color:var(--ok)}.vm-section-title.archived{color:var(--muted)}.vm-flow-group{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel);margin-bottom:10px;overflow:hidden}.vm-flow-header{background:var(--bg-raised);border-bottom:1px solid var(--line);cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;gap:10px;padding:8px 12px;transition:background .12s;display:flex}.vm-flow-header:hover{background:var(--panel-hover)}.vm-flow-left{color:var(--ink);align-items:center;gap:6px;font-size:13px;display:flex}.vm-flow-vars{flex-direction:column;display:flex}.vm-flow-actions{align-items:center;gap:6px;display:inline-flex}.vm-section-title-row{justify-content:space-between;align-items:center;gap:8px;display:flex}.vm-section-title-row>span{align-items:center;gap:6px;display:inline-flex}.vm-row{border-bottom:1px solid var(--line);padding:10px 12px;transition:background .12s}.vm-row:hover{background:var(--panel-hover)}.vm-row:last-child{border-bottom:0}.vm-row-main{justify-content:space-between;align-items:center;gap:12px;display:flex}.vm-row-left{flex:1;min-width:0}.vm-row-name-wrap{align-items:center;gap:6px;min-width:0;display:flex}.vm-row-name{white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:500;overflow:hidden}.vm-row-meta{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-size:11px;overflow:hidden}.vm-row-right{flex-shrink:0;align-items:center;gap:8px;display:flex}.vm-row-value{color:var(--brand-strong);text-align:right;min-width:60px;font-family:monospace;font-size:13px;font-weight:600}.vm-row-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px;display:flex}.vm-config-btn{background:var(--bg-raised);color:var(--ink-secondary);border:1px solid var(--line)}.vm-config-btn:hover:not(:disabled){border-color:var(--brand);color:var(--brand-strong)}@media (max-width:640px){.vm-row-main{flex-direction:column;align-items:stretch;gap:8px}.vm-row-right{justify-content:space-between}}.vcfg-overlay{z-index:200;-webkit-backdrop-filter:blur(6px);background:#000000b3;justify-content:center;align-items:stretch;animation:.15s ease-out fadeIn;display:flex;position:fixed;inset:0}body.has-modal-overlay .dashboard-widget,body.has-modal-overlay .widget-scene,body.has-modal-overlay .dashboard-widget-alarm-badge,body.has-modal-overlay .widget-bignumber.in-alarm .widget-bn-value,body.has-modal-overlay .widget-gauge.in-alarm .widget-gauge-svg,html[data-tab-hidden="1"] *{animation-play-state:paused!important}.vcfg-modal{background:var(--bg);width:100%;max-width:760px;height:var(--app-height,100dvh);border-left:1px solid var(--line);border-right:1px solid var(--line);flex-direction:column;animation:.2s ease-out fadeSlideUp;display:flex}@media (min-width:768px){.vcfg-overlay{align-items:center;padding:24px}.vcfg-modal{border-radius:var(--radius);border:1px solid var(--line);height:min(92dvh,900px)}}.vcfg-header{border-bottom:1px solid var(--line);background:var(--panel);padding:16px 20px;padding-top:calc(16px + env(safe-area-inset-top));justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.vcfg-title h2{color:var(--ink);margin:0 0 6px;font-size:18px;font-weight:700}.vcfg-subtitle{color:var(--ink-secondary);flex-wrap:wrap;align-items:center;gap:8px;font-size:12px;display:flex}.vcfg-subtitle code{background:var(--bg-raised);color:var(--ink-secondary);overflow-wrap:anywhere;border-radius:4px;padding:2px 6px}.vcfg-current-pill{border:1px solid;border-radius:14px;padding:2px 10px;font-size:11px;font-weight:600}.vcfg-tabs{background:var(--panel);border-bottom:1px solid var(--line);gap:0;padding:0 8px;display:flex;overflow-x:auto}.vcfg-tab{color:var(--ink-secondary);white-space:nowrap;background:0 0;border:0;border-bottom:2px solid #0000;align-items:center;gap:6px;padding:10px 14px;font-size:13px;font-weight:500;transition:color .12s,border-color .12s;display:flex}.vcfg-tab.active{color:var(--brand-strong);border-bottom-color:var(--brand)}.vcfg-tab:hover:not(.active){color:var(--ink)}.vcfg-body{flex:1;padding:20px;overflow-y:auto}.vcfg-tab-content{flex-direction:column;gap:16px;display:flex}.vcfg-ingest-rate{color:var(--muted);background:var(--bg-raised);border:1px solid var(--line);border-radius:10px;padding:9px 12px;font-size:12.5px;line-height:1.5}.vcfg-ingest-rate strong{color:var(--text);font-weight:700}.vcfg-ingest-drop{color:#f59e0b}.vcfg-field{flex-direction:column;gap:6px;min-width:0;display:flex}.vcfg-field>input,.vcfg-field>select,.vcfg-field>textarea{box-sizing:border-box;width:100%}.vcfg-label{color:var(--ink-secondary);text-transform:uppercase;letter-spacing:.04em;justify-content:space-between;align-items:center;gap:8px;font-size:11px;font-weight:600;display:flex}.vcfg-input{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-sm);width:100%;color:var(--ink);outline:none;padding:10px 12px;font-size:14px;transition:border-color .15s}.vcfg-input:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-dim)}.vcfg-color-pick{align-items:center;gap:8px;display:flex}.vcfg-color-pick input[type=color]{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel);cursor:pointer;flex:none;width:42px;height:38px;padding:2px}.vcfg-color-pick .vcfg-input{flex:auto}.vcfg-input-sm{padding:6px 10px;font-size:13px}.vcfg-input-mono{font-family:SF Mono,Monaco,Consolas,monospace;font-size:13px}.policy-sel{flex-direction:column;gap:8px;display:flex}.policy-sel-label{color:var(--ink-secondary);text-transform:uppercase;letter-spacing:.04em;font-size:11px;font-weight:600}.policy-sel-segmented{background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--radius-sm);flex-wrap:wrap;gap:4px;padding:3px;display:flex}.policy-sel-seg{border-radius:calc(var(--radius-sm) - 2px);min-width:64px;min-height:36px;color:var(--ink-secondary);cursor:pointer;background:0 0;border:0;flex:auto;padding:7px 10px;font-size:12.5px;font-weight:600;transition:background .12s,color .12s}.policy-sel-seg.active{background:var(--brand);color:#fff}.policy-sel-seg:hover:not(.active):not(:disabled){background:var(--surface-2,#7f7f7f1a);color:var(--ink)}.policy-sel-seg:disabled{opacity:.5;cursor:not-allowed}.policy-sel-hint{color:var(--ink-secondary);margin:0}.policy-sel-advanced{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel);padding:2px 12px}.policy-sel-advanced summary{cursor:pointer;color:var(--ink-secondary);-webkit-user-select:none;user-select:none;padding:8px 0;font-size:12.5px;font-weight:600}.policy-sel-advanced[open] summary{color:var(--ink)}.policy-sel-advanced-body{flex-direction:column;gap:10px;padding:4px 0 12px;display:flex}.policy-sel-row{gap:10px;display:flex}.policy-sel-row .policy-sel-field{flex:1 1 0}.policy-sel-field{color:var(--ink-secondary);flex-direction:column;gap:4px;min-width:0;font-size:12.5px;display:flex}.policy-sel-check{color:var(--ink-secondary);cursor:pointer;align-items:center;gap:8px;font-size:12.5px;display:flex}.policy-sel-push-note{color:#f59e0b;margin-top:2px}@media (max-width:480px){.policy-sel-row{flex-direction:column}.policy-sel-seg{min-width:52px;padding:8px 6px;font-size:11.5px}}.vcfg-textarea{resize:vertical;min-height:70px;font-family:inherit}.vcfg-readonly{background:var(--bg-raised);border-radius:var(--radius-sm);color:var(--ink-secondary);word-break:break-all;padding:8px 10px;font-family:monospace;font-size:13px;display:inline-block}.vcfg-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.vcfg-row>*{min-width:0}@media (max-width:540px){.vcfg-row{grid-template-columns:1fr}}.vcfg-chip-row{flex-wrap:wrap;gap:6px;margin-top:6px;display:flex}.vcfg-chip{background:var(--bg-raised);border:1px solid var(--line);color:var(--ink-secondary);cursor:pointer;border-radius:12px;align-items:center;gap:6px;padding:4px 10px;font-size:12px;transition:all .12s;display:inline-flex}.vcfg-chip:hover{border-color:var(--brand);color:var(--brand-strong)}.vcfg-chip.active{background:var(--brand-dim);color:var(--brand-strong);border-color:var(--brand)}.vcfg-chip-x{color:inherit;cursor:pointer;opacity:.7;background:0 0;border:0;align-items:center;display:inline-flex}.vcfg-chip-x:hover{opacity:1}.vcfg-icon-grid{grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:6px;display:grid}.vcfg-icon-btn{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--ink-secondary);flex-direction:column;align-items:center;gap:4px;padding:10px 6px;font-size:11px;transition:all .12s;display:flex}.vcfg-icon-btn:hover{border-color:var(--brand)}.vcfg-icon-btn.active{background:var(--brand-dim);color:var(--brand-strong);border-color:var(--brand)}.vcfg-radio-row{flex-wrap:wrap;gap:8px;display:flex}.vcfg-radio{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-sm);cursor:pointer;color:var(--ink-secondary);align-items:center;gap:6px;padding:8px 14px;font-size:13px;transition:all .12s;display:flex}.vcfg-radio.active{background:var(--brand-dim);color:var(--brand-strong);border-color:var(--brand)}.vcfg-radio input{display:none}.vcfg-role-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:6px;display:grid}.vcfg-role-check{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-sm);cursor:pointer;color:var(--ink-secondary);align-items:center;gap:8px;padding:8px 10px;font-size:13px;transition:all .12s;display:flex}.vcfg-role-check.active{background:var(--brand-dim);color:var(--brand-strong);border-color:var(--brand)}.vcfg-toggle-wrap{cursor:pointer;align-items:center;gap:10px;display:flex}.vcfg-readonly-block{background:var(--bg-raised);border:1px dashed var(--line-light);border-radius:var(--radius-sm);flex-direction:column;gap:4px;padding:10px 12px;display:flex}.vcfg-readonly-title{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin-bottom:2px;font-size:11px;font-weight:600}.vcfg-readonly-row{color:var(--ink-secondary);justify-content:space-between;font-size:12px;display:flex}.vcfg-readonly-row strong{color:var(--ink)}.vcfg-tag-input-row{align-items:stretch;gap:6px;display:flex}.vcfg-tag-input-row .vcfg-input{flex:1}.vcfg-threshold-bar{background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--radius-sm);margin:8px 0 4px;padding:18px 0 8px;position:relative}.vcfg-bar-segments{border-radius:4px;height:38px;margin:0 12px;display:flex;overflow:hidden}.vcfg-bar-segment{justify-content:center;align-items:flex-end;padding-bottom:4px;font-size:10px;font-weight:700;display:flex;position:relative}.vcfg-bar-label{font-family:monospace}.vcfg-bar-marker{pointer-events:none;border-radius:2px;width:4px;animation:1.6s ease-in-out infinite glowPulse;position:absolute;top:0;bottom:0;transform:translate(-50%)}.vcfg-current-readout{background:var(--panel);border-radius:var(--radius-sm);align-items:center;gap:10px;padding:8px 12px;font-size:13px;display:flex}.vcfg-current-readout strong{font-family:monospace;font-size:15px}.vcfg-current-readout>span:first-child{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:11px}.vcfg-badge{border-radius:10px;margin-left:auto;padding:2px 8px;font-size:11px;font-weight:600}.vcfg-band-list{flex-direction:column;gap:8px;display:flex}.vcfg-band{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-sm);padding:10px 12px}.vcfg-band-top{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.vcfg-band-key{text-transform:uppercase;letter-spacing:.04em;color:var(--ink-secondary);font-size:12px;font-weight:700}.vcfg-band-grid{grid-template-columns:1fr 60px 1.5fr;align-items:end;gap:8px;display:grid}.vcfg-band-grid label{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;flex-direction:column;gap:4px;font-size:11px;display:flex}.vcfg-band-alarm{grid-column:1/-1;margin-top:4px;color:var(--ink-secondary)!important;text-transform:none!important;letter-spacing:0!important;flex-direction:row!important;align-items:center!important;gap:8px!important;font-size:12px!important}.vcfg-color{border:1px solid var(--line);border-radius:var(--radius-sm);cursor:pointer;background:0 0;width:100%;height:36px;padding:2px}.vcfg-range{width:100%;accent-color:var(--brand)}.vcfg-add-band{flex-wrap:wrap;align-items:center;gap:6px;padding:8px 0;display:flex}.vcfg-empty{color:var(--muted);text-align:center;flex-direction:column;align-items:center;gap:12px;padding:40px 20px;display:flex}.vcfg-preset-grid{flex-direction:column;gap:8px;width:100%;max-width:280px;display:flex}.vcfg-preset-row{flex-wrap:wrap;align-items:center;gap:6px;padding:4px 0 10px;display:flex}.vcfg-alert{border-radius:var(--radius-sm);align-items:center;gap:8px;margin:0 20px;padding:8px 12px;font-size:13px;display:flex}.vcfg-alert.error{background:var(--danger-dim);color:var(--danger)}.vcfg-alert.success{background:var(--ok-dim);color:var(--ok)}.vcfg-footer{padding:14px 20px;padding-bottom:calc(14px + env(safe-area-inset-bottom));background:var(--panel);border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.vcfg-footer-info{flex:1;min-width:200px}.vcfg-active-info{color:var(--ok);align-items:center;gap:4px;display:inline-flex}.vcfg-warn{color:var(--warn);font-weight:600}.vcfg-footer-actions{flex-wrap:wrap;gap:8px;display:flex}.vcfg-btn{border-radius:var(--radius-sm);cursor:pointer;border:1px solid #0000;align-items:center;gap:6px;padding:8px 14px;font-size:13px;font-weight:600;transition:all .12s;display:inline-flex}.vcfg-btn:disabled{opacity:.5;cursor:not-allowed}.vcfg-btn-primary{background:var(--brand);color:#fff}.vcfg-btn-primary:hover:not(:disabled){background:var(--brand-strong)}.vcfg-btn-secondary{background:var(--bg-raised);color:var(--ink-secondary);border-color:var(--line)}.vcfg-btn-secondary:hover:not(:disabled){border-color:var(--ink-secondary);color:var(--ink)}.vcfg-btn-danger{background:var(--danger-dim);color:var(--danger)}.vcfg-btn-danger:hover:not(:disabled){background:var(--danger);color:#fff}.vcfg-btn-sm{padding:4px 8px;font-size:11px}.status-var{transition:background .25s,border-color .25s}.dashboard-loading{color:var(--ink-secondary);justify-content:center;align-items:center;padding:64px 24px;display:flex}.dashboard-list-view{flex-direction:column;gap:16px;height:100%;padding:16px;display:flex;position:relative;overflow-y:auto}.dashboard-list-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.dashboard-list-header h3{color:var(--ink);margin:0;font-size:18px}.dashboard-cards-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;display:grid}.dashboard-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;gap:10px;padding:14px;transition:border-color .15s,transform .15s;display:flex}.dashboard-card:hover{border-color:var(--brand);transform:translateY(-1px)}.dashboard-card-thumb{background:linear-gradient(135deg, var(--brand-dim), var(--bg-raised));border-radius:var(--radius-sm);height:76px;color:var(--brand);justify-content:center;align-items:center;display:flex;position:relative}.dashboard-card-widget-count{color:var(--ink-secondary);background:var(--bg);border:1px solid var(--line);border-radius:4px;padding:2px 6px;font-size:10px;font-weight:600;position:absolute;top:6px;right:6px}.dashboard-card-body h4{color:var(--ink);margin:0 0 4px;font-size:15px}.dashboard-card-body p{color:var(--ink-secondary);margin:0;font-size:12px;line-height:1.4}.dashboard-card-meta{color:var(--muted);margin-top:4px}.dashboard-card-actions{align-items:center;gap:8px;margin-top:auto;display:flex}.dashboard-card-actions .vcfg-btn-primary{flex:1}.dashboard-fab{background:var(--brand);color:#fff;width:56px;height:56px;box-shadow:0 8px 24px rgba(var(--brand-rgb), .4);z-index:60;border:none;border-radius:50%;justify-content:center;align-items:center;transition:transform .15s,background .15s;display:flex;position:fixed;bottom:88px;right:24px}.dashboard-fab:hover{background:var(--brand-strong);transform:scale(1.05)}.dashboard-fab:active{transform:scale(.95)}@media (min-width:769px){.dashboard-fab{bottom:24px}}.dashboard-view{flex-direction:column;height:100%;display:flex;overflow:hidden}.dashboard-toolbar{border-bottom:1px solid var(--line);background:var(--panel);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:8px 12px;padding:12px 16px;display:flex}.dashboard-back-btn{border:1px solid var(--line);color:var(--ink);border-radius:var(--radius-sm);background:0 0;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;transition:background .12s;display:flex}.dashboard-back-btn:hover{background:var(--bg-raised)}.dashboard-toolbar-title{flex:1;min-width:0}.dashboard-toolbar-title h2{color:var(--ink);align-items:center;min-width:0;margin:0;font-size:16px;display:flex}.dashboard-title-text{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.dashboard-title-rename-btn{width:24px;height:24px;color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;margin-left:4px;display:inline-flex}.dashboard-title-rename-btn:hover{background:var(--surface-2,#7f7f7f1f);color:var(--ink)}.dashboard-title-input{min-width:60px;max-width:420px;font:inherit;font-weight:inherit;color:var(--ink);background:var(--panel);border:1px solid var(--brand,#2563eb);border-radius:6px;flex:auto;padding:2px 8px}.dashboard-title-input:focus{outline:none;box-shadow:0 0 0 3px #2563eb26}.dashboard-toolbar-title p{color:var(--ink-secondary);margin:2px 0 0}.dashboard-toolbar-actions{flex-wrap:wrap;flex-shrink:1;align-items:center;gap:8px;min-width:0;display:flex}.dashboard-toolbar-actions>*{flex-shrink:0}@media (max-width:700px){.dashboard-edit-toggle span,.dashboard-toolbar-actions button>span:not([class]){display:none}.dashboard-preset-picker{justify-content:center;width:38px;position:relative;overflow:hidden}.dashboard-preset-picker select{opacity:0;width:100%;position:absolute;inset:0}.dashboard-view.editing .dashboard-toolbar>.dashboard-back-btn{display:none}.dashboard-view.editing .dashboard-toolbar{gap:6px 8px;padding:8px 12px}.dashboard-view.editing .dashboard-toolbar [title^=Actualizar],.dashboard-view.editing .dashboard-toolbar [aria-label=Modo\ presentacion],.dashboard-view.editing .dashboard-toolbar [aria-label=Modo\ rebobinar],.dashboard-view.editing .dashboard-toolbar [aria-label=Atajos],.dashboard-view.editing .dashboard-toolbar [aria-label=Pantalla\ completa],.dashboard-view.editing .dashboard-toolbar [aria-label="Salir de pantalla completa"],.dashboard-view.editing .dashboard-refresh-hint,.dashboard-view.editing .dashboard-toolbar-title{display:none}}.dashboard-saved-hint{color:var(--ok);background:#10b9811f;border:1px solid #10b9814d;border-radius:999px;padding:4px 10px;font-size:11px;font-weight:600;animation:1.5s ease-out savedHint}@keyframes savedHint{0%{opacity:0;transform:translateY(-6px)scale(.94)}20%,80%{opacity:1;transform:translateY(0)scale(1)}to{opacity:0;transform:translateY(-4px)scale(.96)}}.dashboard-share-badge{vertical-align:middle;letter-spacing:.02em;text-transform:uppercase;color:var(--muted-fg,#94a3b8);background:#94a3b81f;border:1px solid #94a3b847;border-radius:999px;align-items:center;gap:4px;margin-left:8px;padding:2px 7px;font-size:10px;font-weight:600;display:inline-flex}.dashboard-share-badge.shared{color:var(--accent,#3b82f6);background:rgba(var(--brand-rgb), .12);border-color:rgba(var(--brand-rgb), .32)}.dashboard-edit-toggle{background:var(--bg-raised);border:1px solid var(--line);color:var(--ink);border-radius:var(--radius-sm);align-items:center;gap:4px;padding:6px 10px;font-size:12px;font-weight:600;transition:all .12s;display:flex}.dashboard-edit-toggle.active{background:var(--brand);color:#fff;border-color:var(--brand)}.dashboard-edit-toggle:hover:not(.active){border-color:var(--brand);color:var(--brand)}.dashboard-scroll{flex:1;padding:16px;overflow:hidden auto}.dashboard-grid{grid-template-columns:repeat(12,1fr);grid-auto-rows:60px;gap:12px;min-height:200px;display:grid;position:relative}.dashboard-grid.reflow{grid-auto-rows:64px;grid-auto-flow:dense}@media (max-width:480px){.dashboard-grid.reflow{grid-auto-rows:72px;gap:10px}}.dashboard-grid.edit-grid{background-image:linear-gradient(to right, rgba(var(--brand-rgb), .08) 1px, transparent 1px), linear-gradient(to bottom, rgba(var(--brand-rgb), .08) 1px, transparent 1px);border-radius:var(--radius);background-position:0 0;background-size:calc(8.33333% + 1px) 72px;padding-bottom:150px}.dashboard-widget{background:var(--panel);border:1px solid var(--line);touch-action:pan-y;will-change:transform;border-radius:16px;flex-direction:column;transition:transform .28s cubic-bezier(.2,.9,.25,1.1),border-color .15s,box-shadow .2s,opacity .2s,scale .2s;display:flex;position:relative;overflow:hidden;box-shadow:0 1px 2px #0003,0 12px 30px -16px #00000073,inset 0 1px #ffffff0d}.dashboard-view.editing .dashboard-widget{touch-action:none;border-color:var(--brand-dim)}.dashboard-widget.pressing{border-color:var(--brand,#2563eb);transition:transform .35s cubic-bezier(.2,.9,.25,1.1),box-shadow .2s;transform:scale(1.035);box-shadow:0 0 0 3px #2563eb2e,0 12px 30px -16px #00000080}.dashboard-grid.scene-preset-industrial{background-image:linear-gradient(to right, var(--line) 1px, transparent 1px), linear-gradient(to bottom, var(--line) 1px, transparent 1px);background-blend-mode:normal;background-size:26px 26px;gap:9px}.dashboard-grid.scene-preset-industrial .dashboard-widget{background:var(--bg-raised);border-color:var(--line-light);box-shadow:0 1px 0 #00000059, inset 0 1px 0 #ffffff0a, inset 0 0 0 1px var(--line);border-radius:10px}.dashboard-grid.scene-preset-clean{gap:16px}.dashboard-grid.scene-preset-clean .dashboard-widget{background:var(--panel);border-color:#0000;border-radius:20px;box-shadow:0 8px 24px -18px #00000080}.dashboard-grid.scene-preset-clean .dashboard-widget:hover{border-color:var(--line)}.dashboard-grid.scene-preset-wall{gap:14px}.dashboard-grid.scene-preset-wall .dashboard-widget{background:var(--bg-raised);border-color:var(--brand-dim);box-shadow:0 0 0 1px var(--brand-dim), 0 18px 40px -20px #000000b3}@media (prefers-reduced-motion:reduce){.dashboard-grid[class*=scene-preset-] .dashboard-widget{transition:none}}.dashboard-preset-picker{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel);color:var(--ink-secondary);align-items:center;gap:6px;padding:4px 8px;display:inline-flex}.dashboard-preset-picker select{color:var(--ink);background:0 0;border:0;outline:none;max-width:160px;font-size:13px}@media (max-width:640px){.dashboard-preset-picker select{max-width:110px}}.widget-scene .scene-flow{stroke-linecap:round}.widget-scene [data-var-color]{transition:fill .5s,stroke .5s}.widget-scene .scene-crit-pulse{animation:1.4s ease-in-out infinite scene-crit-pulse}.widget-scene text.scene-crit-pulse{fill:var(--danger);font-weight:700}@keyframes scene-crit-pulse{0%,to{opacity:1}50%{opacity:.45}}@media (prefers-reduced-motion:reduce){.dashboard-widget.in-alarm,.dashboard-widget.in-alarm:before,.widget-scene .scene-crit-pulse{animation:none!important}.widget-scene [data-var-color]{transition:none}}.dashboard-widget.entering{animation:.32s cubic-bezier(.2,.9,.3,1.15) widget-enter}.dashboard-widget.exiting{animation:.2s ease-out forwards widget-exit}@keyframes widget-enter{0%{opacity:0;transform:scale(.92)}60%{opacity:1;transform:scale(1.02)}to{opacity:1;transform:scale(1)}}@keyframes widget-exit{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.92)}}.dashboard-widget.dragging{z-index:10;box-shadow:0 12px 32px #00000052, 0 0 0 1px var(--brand);cursor:grabbing;transform:scale(1.025);transition:none!important}.dashboard-widget-ghost{border:2px dashed var(--brand);border-radius:var(--radius);background:rgba(var(--brand-rgb), .08);pointer-events:none;z-index:4;animation:1.2s ease-in-out infinite ghost-pulse}@keyframes ghost-pulse{0%,to{opacity:.7}50%{opacity:1}}.dashboard-view.drop-flash .dashboard-grid:after{content:"";background:radial-gradient(circle at center, rgba(var(--brand-rgb), .1), transparent 60%);pointer-events:none;animation:.28s ease-out drop-flash;position:absolute;inset:0}@keyframes drop-flash{0%{opacity:1}to{opacity:0}}.dashboard-widget-content{flex-direction:column;flex:1;min-height:0;padding:12px;display:flex;position:relative;overflow:hidden}.widget-error{text-align:center;width:100%;min-height:0;color:var(--muted,#94a3b8);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:6px;padding:8px;display:flex}.widget-error-icon{color:#ef4444;background:#ef444424;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;font-size:14px;font-weight:700;line-height:1;display:inline-flex}.widget-error-text{letter-spacing:.2px;font-size:11px}.dashboard-widget-content.widget-type-bignumber,.dashboard-widget-content.widget-type-status{padding:12px 14px}.dashboard-widget-content.widget-type-status{container-type:size}.dashboard-widget-content.widget-type-text{padding:8px 12px}.dashboard-widget-content.widget-type-image{padding:0}.dashboard-widget-content.widget-type-gauge{padding:10px 12px}.dashboard-widget-content.loading-pulse:before{content:"";pointer-events:none;border-radius:var(--radius);background:linear-gradient(90deg,#0000,#ffffff0a,#0000);animation:1.4s ease-in-out infinite loading-sweep;position:absolute;inset:0}@keyframes loading-sweep{0%{transform:translate(-100%)}to{transform:translate(100%)}}.dashboard-widget-overlay{pointer-events:none;z-index:5;position:absolute;inset:0}.dashboard-widget-overlay>*{pointer-events:auto}.dashboard-widget-overlay-actions{gap:4px;display:flex;position:absolute;top:4px;right:4px}.dashboard-widget-handle{background:var(--bg-raised);border:1px solid var(--brand-dim);width:24px;height:24px;color:var(--brand);cursor:grab;touch-action:none;border-radius:6px;justify-content:center;align-items:center;transition:background .15s,transform .15s;display:flex;position:absolute;top:4px;left:4px}.dashboard-widget-handle:hover{background:var(--brand-dim)}.dashboard-widget-handle:active{cursor:grabbing;transform:scale(.94)}.dashboard-widget-btn{background:var(--bg-raised);border:1px solid var(--line);width:24px;height:24px;color:var(--ink-secondary);border-radius:6px;justify-content:center;align-items:center;transition:all .12s;display:flex}.dashboard-widget-btn:hover{color:var(--brand);border-color:var(--brand);transform:translateY(-1px)}.dashboard-widget-btn.danger:hover{color:var(--danger);border-color:var(--danger)}.dashboard-widget-select-check{z-index:5;color:var(--ink-secondary);cursor:pointer;justify-content:flex-start;align-items:flex-start;padding:6px;display:flex;position:absolute;inset:0}.dashboard-widget.selected{border-color:var(--brand,#2563eb);box-shadow:0 0 0 2px #2563eb59}.dashboard-widget.selected .dashboard-widget-select-check{color:var(--brand,#2563eb)}.bulk-select-bar{z-index:6000;background:color-mix(in oklab, var(--panel) 94%, transparent);-webkit-backdrop-filter:blur(14px)saturate(120%);border:1px solid var(--line);border-radius:999px;align-items:center;gap:14px;padding:10px 16px;display:flex;position:fixed;bottom:20px;left:50%;transform:translate(-50%);box-shadow:0 12px 30px -10px #0006}.bulk-select-count{color:var(--ink);white-space:nowrap;font-size:12.5px;font-weight:600}.bulk-select-actions{gap:8px;display:flex}.bulk-select-btn{border:1px solid var(--line);background:var(--bg-raised,#ffffff0a);color:var(--ink);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:7px 12px;font-size:12.5px;font-weight:600;transition:all .12s;display:inline-flex}.bulk-select-btn:hover:not(:disabled){color:var(--brand);border-color:var(--brand)}.bulk-select-btn.danger:hover:not(:disabled){color:var(--danger);border-color:var(--danger)}.bulk-select-btn:disabled{opacity:.45;cursor:not-allowed}.xboard-chip-clickable{font:inherit;cursor:pointer}.xboard-chip-clickable:hover:not(:disabled){border-color:var(--brand);background:color-mix(in oklab, var(--brand) 18%, var(--panel));transform:scale(1.04)}.xboard-chip-clickable:disabled{opacity:.5;cursor:not-allowed}.dashboard-widget-resize{background:var(--brand);color:#fff;border-radius:6px 0 var(--radius) 0;cursor:se-resize;touch-action:none;opacity:.9;border:none;justify-content:center;align-items:center;width:26px;height:26px;transition:opacity .15s,transform .15s;display:flex;position:absolute;bottom:2px;right:2px;box-shadow:-1px -1px 4px #00000040}.dashboard-widget-resize:hover{opacity:1;transform:scale(1.06)}.dashboard-widget-resize:after{content:"";pointer-events:none;background:repeating-linear-gradient(45deg,#0000 0 2px,#fff9 2px 3px);width:10px;height:10px;position:absolute;bottom:4px;right:4px}.dashboard-empty{color:var(--ink-secondary);text-align:center;background:var(--bg-raised);border:2px dashed var(--line);border-radius:var(--radius);flex-direction:column;grid-column:1/-1;justify-content:center;align-items:center;gap:14px;min-height:240px;padding:56px 24px;animation:.3s ease-out fadeIn;display:flex}.dashboard-empty-icon{opacity:.4}.widget-bn-title{color:var(--ink-secondary);text-transform:uppercase;letter-spacing:.5px;white-space:nowrap;text-overflow:ellipsis;flex-shrink:0;margin-bottom:6px;font-size:11px;font-weight:600;overflow:hidden}.widget-bignumber{flex-direction:column;height:100%;min-height:0;display:flex}.widget-bn-body{flex-direction:column;flex:1;justify-content:center;min-height:0;display:flex}.widget-bn-value-row{flex-wrap:nowrap;align-items:baseline;gap:6px;min-width:0;display:flex}.widget-bn-value{font-variant-numeric:tabular-nums;white-space:nowrap;text-overflow:ellipsis;flex:0 auto;min-width:0;font-size:clamp(20px,4.2vw,38px);font-weight:700;line-height:1.05;transition:color .3s;overflow:hidden}.widget-bn-unit{opacity:.7;white-space:nowrap;font-size:clamp(11px,1.6vw,14px);font-weight:600}.widget-bn-trend{flex-shrink:0;align-items:center;margin-left:auto;display:flex}.widget-bn-trend.trend-up{color:var(--ok)}.widget-bn-trend.trend-down{color:var(--danger)}.widget-bn-trend.trend-flat{color:var(--ink-secondary)}.widget-bn-label{opacity:.75;white-space:nowrap;text-overflow:ellipsis;margin-top:4px;font-size:11px;overflow:hidden}.dashboard-widget-content.widget-type-kpi{padding:10px 12px;container-type:size}.widget-kpi{flex-direction:column;gap:4px;height:100%;min-height:0;display:flex}.widget-kpi-head{flex-shrink:0;align-items:center;gap:5px;min-width:0;display:flex}.widget-kpi-icon{opacity:.8;flex-shrink:0}.widget-kpi-title{color:var(--ink-secondary);text-transform:uppercase;letter-spacing:.5px;white-space:nowrap;text-overflow:ellipsis;font-size:clamp(9px,3.4cqw,12px);font-weight:600;overflow:hidden}.widget-kpi-readout{flex-wrap:nowrap;align-items:baseline;gap:5px;min-width:0;display:flex}.widget-kpi-value{font-variant-numeric:tabular-nums;white-space:nowrap;text-overflow:ellipsis;min-width:0;font-size:clamp(20px,min(16cqw,34cqh),48px);font-weight:700;line-height:1;transition:color .3s;overflow:hidden}.widget-kpi-unit{opacity:.7;white-space:nowrap;flex-shrink:0;font-size:clamp(10px,4cqw,14px);font-weight:600}.widget-kpi-delta{font-variant-numeric:tabular-nums;white-space:nowrap;flex-shrink:0;align-items:center;gap:1px;margin-left:auto;font-size:clamp(10px,3.6cqw,13px);font-weight:700;display:inline-flex}.widget-kpi-delta svg{flex-shrink:0}.widget-kpi-delta-span{letter-spacing:.2px;color:var(--ink-secondary);opacity:.75;white-space:nowrap;flex-shrink:0;align-self:flex-end;margin-top:-2px;font-size:clamp(8px,2.8cqw,10px);font-weight:600}.widget-kpi-spark{flex:1;align-items:stretch;min-height:0;margin-top:2px;display:flex}.widget-kpi-spark-svg{width:100%;height:100%;display:block}.widget-kpi-spark-empty{text-align:center;width:100%;color:var(--ink-secondary);opacity:.7;align-self:center;font-size:11px}.widget-gauge{flex-direction:column;height:100%;min-height:0;display:flex}.widget-gauge-svg-wrap{flex:1;justify-content:center;align-items:center;width:100%;min-height:0;display:flex;position:relative}.widget-gauge-svg{aspect-ratio:1;width:auto;max-width:100%;height:100%;max-height:100%;display:block}.widget-tank{border-radius:16px;flex-direction:column;height:100%;min-height:0;display:flex}.widget-tank-body{flex:1;align-items:stretch;gap:8px;min-height:0;padding:4px 2px;display:flex}.widget-tank-svg{flex:60%;width:auto;min-width:0;height:100%}.widget-tank-readout{flex-direction:column;flex:none;justify-content:center;align-items:flex-end;min-width:0;padding-right:6px;display:flex}.widget-tank-pct{font-variant-numeric:tabular-nums;font-size:22px;font-weight:800;line-height:1}.widget-tank-value{color:var(--ink-secondary);font-variant-numeric:tabular-nums;white-space:nowrap;margin-top:2px;font-size:12px}.widget-tank-unit{color:var(--muted)}.widget-tank-label{text-align:center;padding-bottom:4px;font-size:11px;font-weight:600}.widget-tank.in-alarm,.widget-progress.in-alarm,.widget-bar.in-alarm{animation:1.4s ease-in-out infinite alarmPulse}.widget-bar{flex-direction:column;height:100%;min-height:0;display:flex;container-type:size}.widget-bar-body{flex-direction:column;flex:1;justify-content:center;gap:8px;min-height:0;padding:4px 2px;display:flex}.widget-bar-value{font-variant-numeric:tabular-nums;font-size:24px;font-weight:700;line-height:1}.widget-bar-unit{color:var(--muted);font-size:.55em;font-weight:600}.widget-bar-track-wrap{align-items:center;gap:6px;display:flex}.widget-bar-track{border-radius:10px;flex:1;height:clamp(16px,16cqb,52px);position:relative;overflow:hidden}.widget-bar-fill{border-radius:8px;transition:width .3s,height .3s;position:absolute;bottom:0;left:0}.widget-bar-mark{opacity:.7;width:2px;height:100%;position:absolute;top:0;transform:translate(-1px)}.widget-bar-limit{color:var(--muted);font-variant-numeric:tabular-nums;flex:none;font-size:10px}.widget-bar-vertical .widget-bar-track-wrap{flex-direction:column-reverse;height:100%}.widget-bar-vertical .widget-bar-track{flex:1;width:clamp(18px,22cqi,64px);height:100%}.widget-bar-vertical .widget-bar-mark{width:100%;height:2px;top:auto;left:0;transform:translateY(1px)}.widget-bullet{flex-direction:column;height:100%;min-height:0;display:flex}.widget-bullet-body{flex-direction:column;flex:1;justify-content:center;gap:10px;min-height:0;padding:4px 2px;display:flex}.widget-bullet-readout{flex-wrap:wrap;align-items:baseline;gap:10px;display:flex}.widget-bullet-value{font-variant-numeric:tabular-nums;font-size:24px;font-weight:700;line-height:1}.widget-bullet-unit{color:var(--muted);font-size:.55em;font-weight:600}.widget-bullet-target-tag{color:var(--muted);border:1px solid var(--line);font-variant-numeric:tabular-nums;border-radius:999px;padding:2px 7px;font-size:11px;font-weight:600}.widget-bullet-target-tag.reached{color:var(--ok,#10b981);border-color:var(--ok,#10b981)}.widget-bullet-track-wrap{flex-direction:column;gap:4px;display:flex}.widget-bullet-track{background:var(--line);border-radius:8px;width:100%;height:clamp(14px,12cqb,28px);position:relative;overflow:hidden}.widget-bullet-band{height:100%;position:absolute;top:0}.widget-bullet-measure{border-radius:6px;height:40%;transition:width .3s;position:absolute;top:50%;left:0;transform:translateY(-50%)}.widget-bullet-target{background:var(--ink);border-radius:2px;width:3px;height:calc(100% + 4px);position:absolute;top:-2px;transform:translate(-1.5px)}.widget-bullet-scale{color:var(--muted);font-variant-numeric:tabular-nums;justify-content:space-between;font-size:10px;display:flex}.widget-heatmap{flex-direction:column;height:100%;min-height:0;display:flex}.widget-hm-header{justify-content:space-between;align-items:center;gap:8px;display:flex}.widget-hm-title{color:var(--ink);align-items:center;gap:5px;min-width:0;font-size:13px;font-weight:600;display:flex}.widget-hm-title span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.widget-hm-agg{color:var(--muted);flex:none;font-size:10px}.widget-hm-body{flex-direction:column;flex:1;gap:4px;min-height:0;padding-top:6px;display:flex}.widget-hm-months{color:var(--muted);padding-left:14px;font-size:9px;display:grid}.widget-hm-month-label{text-align:left;white-space:nowrap;overflow:hidden}.widget-hm-grid-wrap{flex:1;gap:3px;min-height:0;display:flex}.widget-hm-weekdays{color:var(--muted);flex-direction:column;flex:none;justify-content:space-between;width:11px;font-size:8px;display:flex}.widget-hm-weekday{line-height:1}.widget-hm-grid{flex:1;gap:3px;min-width:0;display:grid}.widget-hm-col{grid-template-rows:repeat(7,1fr);gap:3px;display:grid}.widget-hm-cell{aspect-ratio:1;border:1px solid color-mix(in srgb, var(--line) 60%, transparent);border-radius:2px;min-height:6px}.widget-hm-legend{color:var(--muted);justify-content:flex-end;align-items:center;gap:3px;font-size:9px;display:flex}.widget-hm-legend-cell{border:1px solid color-mix(in srgb, var(--line) 60%, transparent);border-radius:2px;width:9px;height:9px}.widget-hm-empty{color:var(--muted);flex:1;justify-content:center;align-items:center;font-size:12px;display:flex}.widget-hm-tooltip{z-index:50;background:var(--panel);border:1px solid var(--line);pointer-events:none;border-radius:8px;flex-direction:column;gap:1px;padding:5px 8px;font-size:11px;display:flex;box-shadow:0 4px 14px #0000002e}.widget-hm-tooltip strong{color:var(--ink);font-variant-numeric:tabular-nums}.widget-hm-tooltip span{color:var(--muted)}.widget-kpitable{flex-direction:column;height:100%;min-height:0;display:flex}.widget-kpitable .widget-bn-title{flex:none}.widget-kpitable-wrap{flex:1;min-height:0;margin-top:6px;overflow:auto}.widget-kpitable table{border-collapse:collapse;width:100%;font-size:12px}.widget-kpitable td{border-bottom:1px solid color-mix(in srgb, var(--line) 60%, transparent);vertical-align:middle;padding:4px 6px}.widget-kpitable tr:last-child td{border-bottom:none}.widget-kpitable-led{width:14px}.widget-kpitable-dot{border-radius:50%;width:9px;height:9px;display:inline-block}.widget-kpitable-name{color:var(--ink);max-width:0}.widget-kpitable-name-wrap{align-items:center;gap:5px;min-width:0;display:flex}.widget-kpitable-name-wrap>span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.widget-kpitable-name-icon{color:var(--muted);flex:none}.widget-kpitable-value{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:600}.widget-kpitable-unit{color:var(--muted);font-size:.85em;font-weight:500}.widget-kpitable-spark{width:70px}.widget-kpitable-spark-svg{width:64px;height:18px;display:block}.widget-kpitable-spark-empty{color:var(--muted);font-size:11px}.widget-kpitable-empty{color:var(--muted);flex:1;justify-content:center;align-items:center;font-size:12px;display:flex}.widget-pareto{flex-direction:column;height:100%;min-height:0;display:flex}.widget-pareto .widget-bn-header{flex:none}.widget-pareto-agg{color:var(--muted);flex:none;font-size:10px}.widget-pareto-body{flex-direction:column;flex:1;gap:4px;min-height:0;padding-top:6px;display:flex}.widget-pareto-plot{flex:1;min-height:0;position:relative}.widget-pareto-bars{align-items:flex-end;gap:4px;display:flex;position:absolute;inset:0}.widget-pareto-bar-col{flex:1;align-items:flex-end;min-width:0;height:100%;display:flex}.widget-pareto-bar-track{align-items:flex-end;width:100%;height:100%;display:flex}.widget-pareto-bar{border-radius:3px 3px 0 0;width:100%;min-height:2px;transition:height .3s}.widget-pareto-line{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.widget-pareto-labels{flex:none;gap:4px;display:flex}.widget-pareto-label{flex-direction:column;flex:1;align-items:center;gap:1px;min-width:0;display:flex}.widget-pareto-label-name{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:9px;overflow:hidden}.widget-pareto-label-pct{color:var(--accent);font-variant-numeric:tabular-nums;font-size:10px;font-weight:600}.widget-pareto-empty{color:var(--muted);flex:1;justify-content:center;align-items:center;font-size:12px;display:flex}.widget-timeline{flex-direction:column;height:100%;min-height:0;display:flex}.widget-tl-header{flex:none}.widget-tl-title{color:var(--ink);align-items:center;gap:5px;min-width:0;font-size:13px;font-weight:600;display:flex}.widget-tl-title span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.widget-tl-title-icon{color:var(--muted);flex:none}.widget-tl-body{flex-direction:column;flex:1;justify-content:center;gap:6px;min-height:0;padding-top:6px;display:flex}.widget-tl-track{background:var(--line);border-radius:6px;width:100%;height:clamp(16px,18cqb,34px);position:relative;overflow:hidden}.widget-tl-seg{height:100%;position:absolute;top:0}.widget-tl-scale{color:var(--muted);font-variant-numeric:tabular-nums;justify-content:space-between;font-size:10px;display:flex}.widget-tl-legend{color:var(--muted);gap:10px;font-size:10px;display:flex}.widget-tl-legend-item{align-items:center;gap:4px;display:flex}.widget-tl-legend-dot{border-radius:2px;width:8px;height:8px}.widget-tl-empty{color:var(--muted);flex:1;justify-content:center;align-items:center;font-size:12px;display:flex}.widget-tl-tooltip{z-index:50;background:var(--panel);border:1px solid var(--line);pointer-events:none;border-radius:8px;flex-direction:column;gap:1px;padding:5px 8px;font-size:11px;display:flex;box-shadow:0 4px 14px #0000002e}.widget-tl-tooltip strong{font-variant-numeric:tabular-nums}.widget-tl-tooltip span{color:var(--muted)}.widget-scatter{flex-direction:column;height:100%;min-height:0;display:flex}.widget-scatter .widget-bn-header{flex:none;justify-content:space-between;align-items:center;gap:8px;display:flex}.widget-scatter-r{font-variant-numeric:tabular-nums;flex:none;font-size:12px;font-weight:700}.widget-scatter-body{flex-direction:column;flex:1;gap:4px;min-height:0;padding-top:6px;display:flex}.widget-scatter-plot{flex:1;align-items:stretch;min-height:0;display:flex;position:relative}.widget-scatter-axis-y{writing-mode:vertical-rl;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;flex:none;align-self:center;max-height:100%;font-size:10px;overflow:hidden;transform:rotate(180deg)}.widget-scatter-svg{border-left:1px solid var(--line);border-bottom:1px solid var(--line);flex:1;width:100%;min-width:0;height:100%}.widget-scatter-foot{color:var(--muted);flex:none;justify-content:space-between;align-items:center;font-size:10px;display:flex}.widget-scatter-axis-x{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.widget-scatter-count{font-variant-numeric:tabular-nums;flex:none}.widget-scatter-empty{color:var(--muted);text-align:center;flex:1;justify-content:center;align-items:center;padding:8px;font-size:12px;display:flex}.widget-andon{flex-direction:column;height:100%;min-height:0;display:flex}.widget-andon-head{flex:none}.widget-andon-title{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;display:block;overflow:hidden}.widget-andon-grid{flex:1;grid-template-columns:repeat(auto-fit,minmax(clamp(120px,30cqw,220px),1fr));align-content:stretch;gap:clamp(6px,1.5cqw,14px);min-height:0;padding-top:8px;display:grid}.widget-andon-card{background:var(--panel);border:1px solid var(--line);border-left:4px solid var(--andon-color,var(--accent));border-radius:14px;flex-direction:column;justify-content:center;gap:4px;min-width:0;padding:clamp(8px,2cqw,18px);display:flex}.widget-andon-card.in-alarm{border-color:var(--danger);border-left-color:var(--danger);animation:1.1s ease-in-out infinite andon-alarm-pulse}@keyframes andon-alarm-pulse{0%,to{box-shadow:0 0 0 0 color-mix(in srgb, var(--danger) 40%, transparent)}50%{box-shadow:0 0 0 4px color-mix(in srgb, var(--danger) 0%, transparent)}}.widget-andon-card-head{align-items:center;gap:6px;min-width:0;display:flex}.widget-andon-dot{border-radius:50%;flex:none;width:clamp(8px,1.6cqw,14px);height:clamp(8px,1.6cqw,14px)}.widget-andon-name{min-width:0;color:var(--ink);align-items:center;gap:4px;font-size:clamp(11px,1.8cqw,16px);font-weight:600;display:flex}.widget-andon-name>span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.widget-andon-name-icon{color:var(--muted);flex:none}.widget-andon-value{font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap;font-size:clamp(28px,8cqw,72px);font-weight:800;line-height:1;overflow:hidden}.widget-andon-unit{color:var(--muted);margin-left:.18em;font-size:.42em;font-weight:600}.widget-andon-label{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:clamp(10px,1.6cqw,14px);overflow:hidden}.widget-andon-empty{color:var(--muted);flex:1;justify-content:center;align-items:center;font-size:12px;display:flex}.widget-spc{flex-direction:column;height:100%;min-height:0;display:flex}.widget-spc-header{flex:none;justify-content:space-between;align-items:center;gap:8px;display:flex}.widget-spc-title{color:var(--ink);align-items:center;gap:5px;min-width:0;font-size:13px;font-weight:600;display:flex}.widget-spc-title span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.widget-spc-title-icon{color:var(--muted);flex:none}.widget-spc-stats{color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap;flex:none;font-size:10px}.widget-spc-ooc-count{color:var(--danger);font-weight:700}.widget-spc-body{flex-direction:column;flex:1;gap:4px;min-height:0;padding-top:6px;display:flex}.widget-spc-svg{flex:1;width:100%;height:100%;min-height:0}.widget-spc-legend{color:var(--muted);flex:none;gap:12px;font-size:10px;display:flex}.widget-spc-legend-item{align-items:center;gap:4px;display:flex}.widget-spc-legend-line{border-top:1.5px dashed var(--muted);width:14px;height:0}.widget-spc-legend-line.ctrl{border-top-color:var(--danger)}.widget-spc-legend-line.warn{border-top-color:var(--warn)}.widget-spc-legend-line.mean{border-top-style:solid;border-top-color:var(--muted)}.widget-spc-empty{color:var(--muted);flex:1;justify-content:center;align-items:center;font-size:12px;display:flex}.widget-spc-tooltip{z-index:50;background:var(--panel);border:1px solid var(--line);pointer-events:none;border-radius:8px;flex-direction:column;gap:1px;padding:5px 8px;font-size:11px;display:flex;box-shadow:0 4px 14px #0000002e}.widget-spc-tooltip strong{font-variant-numeric:tabular-nums}.widget-spc-tooltip span{color:var(--muted)}.widget-spc-ooc-tag{font-weight:600;color:var(--danger)!important}.widget-progress{border-radius:16px;flex-direction:column;height:100%;min-height:0;display:flex}.widget-progress-body{flex:1;justify-content:center;align-items:center;min-height:0;padding:4px;display:flex}.widget-progress-svg{aspect-ratio:1;width:auto;max-width:100%;height:100%}.widget-oee{border-radius:16px;flex-direction:column;height:100%;min-height:0;display:flex}.widget-oee-body{flex:1;align-items:center;gap:10px;min-height:0;padding:6px 8px;display:flex}.widget-oee-ring{aspect-ratio:1;flex:none;justify-content:center;align-items:center;height:100%;max-height:140px;display:flex}.widget-oee-ring svg{aspect-ratio:1;width:auto;max-width:100%;height:100%}.widget-oee-bars{flex-direction:column;flex:1;justify-content:center;gap:8px;min-width:0;display:flex}.widget-oee-bar-row{grid-template-columns:1fr auto;align-items:center;gap:2px 6px;display:grid}.widget-oee-bar-label{color:var(--ink-secondary);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.widget-oee-bar-val{font-variant-numeric:tabular-nums;text-align:right;font-size:12px;font-weight:700}.widget-oee-bar-track{background:var(--line);border-radius:4px;grid-column:1/-1;height:7px;overflow:hidden}.widget-oee-bar-fill{border-radius:4px;height:100%;transition:width .5s,background .4s;display:block}.oee-slots{flex-direction:column;gap:6px;display:flex}.oee-slot-row{align-items:center;gap:8px;display:flex}.oee-slot-label{color:var(--ink-secondary);flex:0 0 110px;font-size:12px}.oee-slot-pick{text-align:left;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.oee-factor{border:1px solid var(--line);border-radius:10px;flex-direction:column;gap:8px;padding:8px 10px;display:flex}.oee-seg{flex-wrap:wrap}.oee-inline-field{flex-direction:column;gap:4px;display:flex}.oee-inline-field label{color:var(--ink-secondary);font-size:11px}.widget-oee-empty{text-align:center;min-height:0;color:var(--ink-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:4px;padding:8px;font-size:13px;display:flex}.widget-oee-empty-hint{color:var(--muted,#94a3b8);font-size:11px}.widget-oee-partial{color:var(--ink-secondary);text-align:center;white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-size:10px;overflow:hidden}.widget-donut{flex-direction:column;height:100%;min-height:0;display:flex}.widget-donut-body{flex:1;align-items:center;gap:10px;min-height:0;padding:4px;display:flex;overflow:hidden}.widget-donut-body-stack{flex-direction:column;align-items:stretch}.widget-donut-body-stack .widget-donut-svg{aspect-ratio:1;flex:none;align-self:center;width:100%;max-width:100%;height:auto;max-height:55%}.widget-donut-body-stack .widget-donut-legend{flex:none;overflow-y:auto}.widget-donut-svg{aspect-ratio:1;flex:none;width:auto;min-width:60px;max-width:55%;height:100%}.widget-donut-legend{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex;overflow-y:auto}.widget-donut-legend-item{align-items:center;gap:6px;min-width:0;font-size:11px;display:flex}.widget-donut-legend-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--ink-secondary);flex:1;overflow:hidden}.widget-donut-legend-item strong{font-variant-numeric:tabular-nums;white-space:nowrap}.widget-donut-empty{color:var(--muted);text-align:center;flex:1;justify-content:center;align-items:center;padding:16px;font-size:12px;display:flex}.widget-sparkline{flex-direction:column;height:100%;display:flex}.widget-sp-header{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.widget-sp-title{color:var(--ink-secondary);text-transform:uppercase;letter-spacing:.5px;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:11px;font-weight:600;overflow:hidden}.widget-sp-value{font-variant-numeric:tabular-nums;white-space:nowrap;font-size:16px;font-weight:700;transition:color .3s}.widget-sp-unit{opacity:.7;font-size:10px}.widget-sp-chart-wrap{flex:1;align-items:stretch;min-height:30px;margin-top:4px;display:flex}.widget-sp-chart{width:100%;height:100%}.widget-sp-empty{color:var(--muted);text-align:center;align-self:center;width:100%;font-size:11px}.widget-chart{flex-direction:column;height:100%;display:flex}.widget-chart-header{flex-direction:column;gap:4px;margin-bottom:6px;display:flex}.widget-chart-legend{flex-wrap:wrap;gap:10px;display:flex}.widget-chart-legend-item{color:var(--ink-secondary);align-items:center;gap:4px;min-width:0;max-width:100%;font-size:11px;display:flex}.legend-dot{border-radius:2px;flex-shrink:0;width:8px;height:8px;display:inline-block}.widget-chart-svg-wrap{flex:1;min-height:0;display:flex;position:relative}.chart-events-bar{align-items:center;gap:6px;padding:2px 4px 4px;display:flex}.chart-events-toggle,.chart-events-add{border:1px solid var(--border,#94a3b84d);color:var(--text-muted,#94a3b8);cursor:pointer;background:0 0;border-radius:999px;align-items:center;gap:4px;padding:3px 8px;font-size:11px;display:inline-flex}.chart-events-toggle.is-on{color:var(--brand,#3b82f6);border-color:var(--brand,#3b82f6);background:rgba(var(--brand-rgb), .08)}.chart-events-count{background:rgba(var(--brand-rgb), .18);border-radius:999px;padding:0 5px;font-size:10px;font-weight:700}.chart-events-add:hover{color:var(--text,#e2e8f0);border-color:var(--text-muted,#94a3b8)}.chart-events-lane{pointer-events:none;height:0;position:absolute;bottom:24px;left:0;right:0}.chart-event-marker{pointer-events:auto;cursor:pointer;filter:drop-shadow(0 1px 1px #00000059);background:0 0;border:none;padding:2px;line-height:0;position:absolute;bottom:0;transform:translate(-50%)}.chart-event-marker:hover{transform:translate(-50%)scale(1.25)}.chart-event-tip{z-index:6;background:var(--surface,#0e1116);border:1px solid var(--border,#94a3b84d);pointer-events:auto;border-radius:8px;min-width:150px;max-width:230px;padding:7px 9px;font-size:12px;position:absolute;bottom:34px;transform:translate(-50%);box-shadow:0 6px 18px #00000059}.chart-event-tip-head{align-items:center;gap:5px;font-size:11px;display:flex}.chart-event-tip-dot{border-radius:999px;flex:none;width:8px;height:8px}.chart-event-tip-time{color:var(--text-muted,#94a3b8);margin-left:auto;font-size:10px}.chart-event-tip-title{margin-top:3px;font-weight:600}.chart-event-tip-desc{color:var(--text-muted,#94a3b8);margin-top:2px;font-size:11px}.chart-event-tip-del{color:#ef4444;cursor:pointer;background:0 0;border:none;align-items:center;gap:3px;margin-top:6px;padding:0;font-size:10px;display:inline-flex}.chart-event-tip-confirm{border-top:1px solid var(--border,#94a3b840);margin-top:7px;padding-top:7px}.chart-event-tip-confirm-q{color:var(--text,#e2e8f0);margin-bottom:6px;font-size:11px;line-height:1.35;display:block}.chart-event-tip-confirm-actions{justify-content:flex-end;gap:6px;display:flex}.chart-event-tip-confirm-no,.chart-event-tip-confirm-yes{cursor:pointer;border:1px solid var(--border,#94a3b84d);border-radius:6px;align-items:center;gap:3px;padding:4px 8px;font-size:11px;display:inline-flex}.chart-event-tip-confirm-no{color:var(--text-muted,#94a3b8);background:0 0}.chart-event-tip-confirm-yes{color:#fff;background:#ef4444;border-color:#ef4444}.chart-event-modal-backdrop{z-index:1000;background:#00000080;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.chart-event-modal{background:var(--surface,#0e1116);border:1px solid var(--border,#94a3b84d);width:100%;max-width:380px;max-height:90vh;max-height:min(var(--vvh,90dvh), 90dvh);border-radius:14px;padding:16px;overflow-y:auto}.chart-event-modal-head{font-size:15px;font-weight:700}.chart-event-modal-help{color:var(--text-muted,#94a3b8);margin:4px 0 12px;font-size:12px;line-height:1.4}.chart-event-field{flex-direction:column;gap:4px;margin-bottom:10px;font-size:12px;display:flex}.chart-event-field>span{color:var(--text-muted,#94a3b8)}.chart-event-field input,.chart-event-field select,.chart-event-field textarea{background:var(--bg,#0b0e13);border:1px solid var(--border,#94a3b84d);color:var(--text,#e2e8f0);border-radius:8px;width:100%;padding:7px 9px;font-size:13px}.chart-event-modal-error{color:#ef4444;margin-bottom:8px;font-size:12px}.chart-event-modal-actions{justify-content:flex-end;gap:8px;margin-top:6px;display:flex}[data-mode=light] .chart-event-tip,[data-mode=light] .chart-event-modal{background:#fff}.mbridge .mbridge-note{background:rgba(var(--brand-rgb), .08);border:1px solid rgba(var(--brand-rgb), .25);color:var(--text-muted,#94a3b8);border-radius:10px;align-items:flex-start;gap:8px;margin-bottom:14px;padding:10px 12px;font-size:12px;line-height:1.45;display:flex}.mbridge .mbridge-note code{background:#94a3b826;border-radius:4px;padding:1px 4px;font-size:11px}.mbridge-err{color:#ef4444;margin-bottom:10px;font-size:13px}.mbridge-card{border:1px solid var(--border,#94a3b840);border-radius:12px;margin-bottom:16px;padding:14px}.mbridge-card h3{margin:0 0 4px;font-size:14px}.mbridge-help{color:var(--text-muted,#94a3b8);margin:0 0 10px;font-size:12px;line-height:1.4}.mbridge-form{align-items:center;gap:8px;margin-bottom:12px;display:flex}.mbridge-form.wrap{flex-wrap:wrap}.mbridge-form input,.mbridge-form select{background:var(--bg,#0b0e13);border:1px solid var(--border,#94a3b84d);color:var(--text,#e2e8f0);border-radius:8px;padding:7px 9px;font-size:13px}.mbridge-arrow{color:var(--text-muted,#94a3b8);font-weight:700}.mbridge-table{border-collapse:collapse;width:100%;font-size:13px}.mbridge-table th,.mbridge-table td{text-align:left;border-bottom:1px solid var(--border,#94a3b82e);padding:6px 8px}.mbridge-table th{color:var(--text-muted,#94a3b8);font-size:11px;font-weight:600}.mbridge-del{color:#ef4444;cursor:pointer;background:0 0;border:none;padding:2px}.mbridge-empty{color:var(--text-muted,#94a3b8);font-size:12px}.widget-chart-svg{touch-action:none;cursor:crosshair;width:100%;height:100%}.widget-chart-axis-y,.widget-chart-axis-x{pointer-events:none;position:absolute;inset:0}.widget-chart-axis-y-label{box-sizing:border-box;color:var(--muted);text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums;padding-right:6px;font-size:10px;line-height:1;position:absolute;left:0;transform:translateY(-50%)}.widget-chart-axis-x-label{color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums;font-size:10px;line-height:1;position:absolute;bottom:1px;transform:translate(-50%)}.widget-chart-axis-x-label:first-child{transform:translate(0)}.widget-chart-axis-x-label:last-child{transform:translate(-100%)}.widget-chart-axis-y-label-right{text-align:left;padding-left:6px;padding-right:0;left:auto;right:0}.widget-chart-axis-unit{letter-spacing:.02em;color:var(--muted);pointer-events:none;white-space:nowrap;opacity:.85;font-size:9px;font-weight:600;position:absolute;top:1px}.widget-chart-axis-unit-left{left:3px}.widget-chart-axis-unit-right{right:3px}.widget-chart-empty{color:var(--muted);text-align:center;flex:1;justify-content:center;align-items:center;padding:24px;font-size:12px;display:flex}.legend-name{overflow-wrap:anywhere;white-space:normal;text-align:left;line-height:1.25}.widget-chart-tooltip{background:var(--bg);border:1px solid var(--line);border-radius:var(--radius-sm);pointer-events:none;z-index:3;min-width:120px;padding:6px 8px;font-size:11px;animation:.12s ease-out fadeIn;position:absolute;top:4px;transform:translate(-50%);box-shadow:0 6px 20px #00000059}.widget-chart-tooltip-time{color:var(--ink-secondary);text-transform:uppercase;letter-spacing:.4px;margin-bottom:4px;font-size:10px;font-weight:600}.widget-chart-tooltip-row{align-items:center;gap:6px;padding:1px 0;display:flex}.widget-chart-tooltip-name{min-width:0;color:var(--ink);white-space:normal;overflow-wrap:anywhere;flex:1;line-height:1.25}.widget-status{flex-direction:column;height:100%;min-height:0;display:flex}.widget-status-row{flex:1;align-items:center;gap:14px;min-height:0;display:flex}.widget-status-dot{aspect-ratio:1;border-radius:50%;flex-shrink:0;width:clamp(28px,8%,44px);transition:background .3s,box-shadow .3s}.widget-status-dot.pulsing{animation:1.5s ease-in-out infinite status-pulse}@keyframes status-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.85;transform:scale(1.08)}}.widget-status-text{flex:1;min-width:0}.widget-status-label{text-overflow:ellipsis;white-space:nowrap;font-size:clamp(13px,1.8vw,16px);font-weight:700;transition:color .3s;overflow:hidden}.widget-status-value{color:var(--ink-secondary);font-variant-numeric:tabular-nums;white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-size:clamp(11px,1.4vw,13px);overflow:hidden}.widget-status-unit{opacity:.75}.widget-text{align-items:center;width:100%;height:100%;font-weight:600;display:flex;overflow:hidden}.widget-text-inner{text-overflow:ellipsis;white-space:nowrap;width:100%;display:block;overflow:hidden}.widget-text-small{font-size:clamp(12px,1.4vw,14px);font-weight:500}.widget-text-medium{font-size:clamp(15px,1.8vw,18px)}.widget-text-large{letter-spacing:-.2px;font-size:clamp(20px,3vw,28px);font-weight:700}.widget-image{border-radius:var(--radius);justify-content:center;align-items:stretch;width:100%;height:100%;display:flex;overflow:hidden}.widget-image img{width:100%;height:100%;display:block}.widget-image-empty{color:var(--muted);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:12px;font-size:11px}.widget-camera{border-radius:var(--radius);background:#0b0e13;justify-content:center;align-items:stretch;width:100%;height:100%;display:flex;position:relative;overflow:hidden}.widget-camera-media{cursor:pointer;border:0;width:100%;height:100%;display:block}iframe.widget-camera-media{cursor:auto}.widget-camera-empty,.widget-camera-warn{width:100%;height:100%;color:var(--muted);text-align:center;background:0 0;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:12px;font-size:11px;display:flex}.widget-camera-warn{color:#f59e0b}.widget-camera-warn strong{color:var(--ink);font-size:12px}.widget-camera-warn span{color:var(--ink-secondary);max-width:34ch}.widget-camera-badge{color:#fff;letter-spacing:.2px;pointer-events:none;white-space:nowrap;text-overflow:ellipsis;background:#00000080;border-radius:999px;max-width:70%;padding:2px 8px;font-size:10px;font-weight:700;position:absolute;top:8px;left:8px;overflow:hidden}.widget-camera-expand{color:#fff;cursor:pointer;opacity:0;background:#00000073;border:1px solid #ffffff2e;border-radius:8px;justify-content:center;align-items:center;width:26px;height:26px;transition:opacity .15s;display:flex;position:absolute;top:6px;right:6px}.widget-camera:hover .widget-camera-expand,.widget-camera-expand:focus-visible{opacity:1}@media (hover:none){.widget-camera-expand{opacity:.75}}.widget-camera-reconnect{color:#fbbf24;pointer-events:none;background:#0000008c;border-radius:999px;padding:3px 10px;font-size:10px;font-weight:600;position:absolute;bottom:8px;left:50%;transform:translate(-50%)}.widget-camera-full{z-index:2200;background:#000000eb;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.widget-camera-full-inner{background:#000;border-radius:12px;flex-direction:column;width:min(1280px,96vw);height:min(86vh,100%);display:flex;position:relative;overflow:hidden}.widget-camera-full-inner .widget-camera-media{cursor:auto;flex:1;min-height:0}.widget-camera-full-bar{color:#fff;background:#ffffff0f;justify-content:space-between;align-items:center;gap:8px;padding:8px 12px;font-size:13px;font-weight:600;display:flex}.widget-camera-full-close{color:#fff;cursor:pointer;background:#ffffff1f;border:0;border-radius:8px;justify-content:center;align-items:center;width:30px;height:30px;display:flex}.widget-camera-full-close:hover{background:#ffffff38}.widget-table{flex-direction:column;height:100%;display:flex}.widget-table-wrap{flex:1;min-height:0;overflow:auto}.widget-table table{border-collapse:collapse;width:100%;font-size:12px}.widget-table th{text-align:left;color:var(--ink-secondary);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--line);background:var(--panel);padding:4px 6px;font-size:10px;font-weight:600;position:sticky;top:0}.widget-table td{border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums;padding:6px}.widget-table-name{color:var(--ink)}.widget-table-unit{color:var(--ink-secondary);font-size:11px}.widget-table-dot{border-radius:50%;width:8px;height:8px;display:inline-block}.widget-table-empty{text-align:center;color:var(--muted);padding:24px 12px;font-size:12px}.modal-backdrop{z-index:200;overscroll-behavior:contain;background:#000000b3;justify-content:center;align-items:center;width:100%;height:100dvh;padding:16px;animation:.15s ease-out fadeIn;display:flex;position:fixed;top:0;left:0}.modal-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);width:100%;max-width:540px;max-height:90vh;max-height:min(var(--vvh,90dvh), 90dvh);flex-direction:column;animation:.28s cubic-bezier(.2,.9,.25,1.15) modalSpringUp;display:flex;box-shadow:0 20px 60px #00000080}.modal-card-large{max-width:620px}@keyframes modalSpringUp{0%{opacity:0;transform:translateY(28px)scale(.96)}60%{opacity:1;transform:translateY(-3px)scale(1.005)}to{opacity:1;transform:translateY(0)scale(1)}}@media (prefers-reduced-motion:reduce){.modal-card{animation:none!important}}.modal-header{border-bottom:1px solid var(--line);flex-shrink:0;justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.modal-header h3{color:var(--ink);margin:0;font-size:15px}.modal-close{color:var(--ink-secondary);border-radius:var(--radius-sm);background:0 0;border:none;justify-content:center;align-items:center;width:28px;height:28px;transition:all .12s;display:flex}.modal-close:hover{background:var(--bg-raised);color:var(--ink)}.modal-footer{border-top:1px solid var(--line);flex-shrink:0;justify-content:flex-end;align-items:center;gap:8px;padding:12px 16px;display:flex}.add-widget-grid{overscroll-behavior:contain;flex:auto;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px;min-height:0;padding:16px;display:grid;overflow-y:auto}.add-widget-card{background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--radius-sm);text-align:left;cursor:pointer;flex-direction:column;align-items:stretch;gap:4px;padding:8px 8px 10px;transition:all .15s;display:flex}.add-widget-card:hover{border-color:var(--brand);background:var(--brand-dim);transform:translateY(-1px)}.add-widget-demo{aspect-ratio:312/204;background:var(--panel);border:1px solid var(--line);pointer-events:none;border-radius:8px;max-height:220px;margin-bottom:6px;overflow:hidden}.add-widget-demo-fit{justify-content:center;align-items:center;width:100%;height:100%;display:flex;overflow:hidden}.add-widget-demo-scaler{transform-origin:50%;flex:none}.add-widget-demo-ai{color:var(--brand);background:var(--brand-dim);justify-content:center;align-items:center;display:flex}.add-widget-type{color:var(--ink);flex-wrap:wrap;align-items:center;gap:6px;font-size:13px;font-weight:600;display:flex}.add-widget-desc{color:var(--ink-secondary);font-size:11px;line-height:1.3}.add-widget-card-soon{cursor:default;opacity:.72}.add-widget-card-soon:hover{border-color:var(--line);background:var(--bg-raised);transform:none}.add-widget-soon-badge{text-transform:uppercase;letter-spacing:.4px;color:var(--brand);background:var(--brand-dim);border:1px solid var(--brand);border-radius:999px;padding:1px 6px;font-size:9px;font-weight:700}.widget-config-body{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;flex-direction:column;flex:auto;gap:12px;min-height:0;padding:16px;display:flex;overflow-y:auto}.form-row{flex-direction:column;gap:4px;display:flex}.form-row label{color:var(--ink-secondary);text-transform:uppercase;letter-spacing:.5px;font-size:11px;font-weight:600}.form-row input[type=text],.form-row input[type=number],.form-row select,.form-row textarea{background:var(--bg);border:1px solid var(--line);color:var(--ink);border-radius:var(--radius-sm);outline:none;padding:8px 10px;font-family:inherit;font-size:13px;transition:border-color .12s}.form-row input:focus,.form-row select:focus,.form-row textarea:focus{border-color:var(--brand)}.form-row input[type=checkbox]{width:18px;height:18px;accent-color:var(--brand)}.form-error{color:var(--danger);background:var(--danger-dim);border-radius:var(--radius-sm);padding:8px 10px;font-size:12px}.multi-select-search{background:var(--bg);border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--ink-secondary);align-items:center;gap:6px;padding:6px 10px;display:flex}.multi-select-search input{color:var(--ink);outline:none;flex:1;font-size:13px;background:0 0!important;border:none!important;padding:2px 0!important}.multi-select{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg);flex-direction:column;gap:2px;max-height:200px;padding:4px;display:flex;overflow-y:auto}.multi-select-item{cursor:pointer;border-radius:var(--radius-sm);align-items:center;gap:8px;padding:6px 8px;font-size:13px;transition:background .12s;display:flex}.multi-select-item:hover{background:var(--bg-raised)}.multi-select-item input{width:14px;height:14px;accent-color:var(--brand);flex-shrink:0}.multi-select-color{border-radius:2px;flex-shrink:0;width:10px;height:10px}.multi-select-name{text-overflow:ellipsis;white-space:nowrap;color:var(--ink);flex:1;overflow:hidden}.multi-select-unit{color:var(--ink-secondary);flex-shrink:0;font-size:11px}.multi-select-empty{text-align:center;color:var(--muted);padding:16px;font-size:12px}.form-row-2col{grid-template-columns:1fr 1fr;gap:12px;display:grid!important}.form-row-2col>div{flex-direction:column;gap:4px;display:flex}.form-row-inline{align-items:center;flex-direction:row!important;gap:10px!important}.form-label-inline{cursor:pointer;text-transform:none!important;letter-spacing:0!important;color:var(--ink)!important;font-size:13px!important;font-weight:500!important}.form-preview{background:var(--bg);border:1px dashed var(--line);border-radius:var(--radius-sm);flex-direction:column;gap:6px;padding:12px;display:flex}.form-preview-label{color:var(--ink-secondary);text-transform:uppercase;letter-spacing:.5px;font-size:10px;font-weight:600}.form-preview-gauge{align-items:center;gap:14px;display:flex}.form-preview-meta{color:var(--ink-secondary);flex-direction:column;gap:2px;font-size:12px;display:flex}@media (max-width:768px){.add-widget-grid{grid-template-columns:repeat(2,1fr)}.dashboard-cards-grid{grid-template-columns:1fr}.dashboard-scroll{padding:12px}.dashboard-grid{gap:8px}.form-row-2col{grid-template-columns:1fr}}@media (max-width:480px){.add-widget-grid{grid-template-columns:1fr}}@media (max-width:600px){.modal-backdrop{padding:8px;padding-top:max(8px, env(safe-area-inset-top));padding-bottom:max(8px, env(safe-area-inset-bottom));padding-left:max(8px, env(safe-area-inset-left));padding-right:max(8px, env(safe-area-inset-right))}.modal-card,.modal-card-large{max-width:100%;max-height:min(var(--vvh,94dvh), 94dvh)}}@media (max-width:768px){.dashboard-toolbar{flex-wrap:wrap;gap:8px 10px;padding:10px 14px}.dashboard-toolbar-title{flex-basis:100%;order:1;min-width:0}.dashboard-back-btn{order:2}.dashboard-toolbar-actions{order:3;margin-left:auto}.dashboard-refresh-hint{display:none}}@media (max-width:480px){.dashboard-toolbar{padding:10px 12px}.dashboard-toolbar-title h2{font-size:14px}.dashboard-edit-toggle span{display:none}.dashboard-edit-toggle{padding:6px 8px}.widget-chart-tooltip{min-width:100px;font-size:10px}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}[data-mode=light] body:before{background-image:radial-gradient(circle,#1e4f8c0d 1px,#0000 1px)}[data-mode=light] .sidebar,[data-mode=light] .topbar,[data-mode=light] .bottom-nav,[data-mode=light] .superadmin-sidebar,[data-mode=light] .superadmin-topbar{background:var(--bg-raised)!important;border-color:var(--line)!important}[data-mode=light] .bottom-nav{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-top:1px solid var(--line);box-shadow:0 -2px 12px #0000000a;background:#fffffff2!important}[data-mode=light] .bottom-nav button{color:var(--muted)}[data-mode=light] .bottom-nav button.active{color:var(--brand);font-weight:700}[data-mode=light] .bottom-nav button.active:after{background:var(--brand);box-shadow:0 0 12px var(--brand-dim)}[data-mode=light] .topbar{border-bottom:1px solid var(--line);color:var(--ink);background:var(--bg)!important}[data-mode=light] .topbar h2,[data-mode=light] .plant-title h2{color:var(--ink)!important}[data-mode=light] .plant-title .status-row{color:var(--ink-secondary)}[data-mode=light] .refresh-btn,[data-mode=light] .mobile-user-btn{background:var(--bg-raised);color:var(--ink-secondary);border-color:var(--line-light)}[data-mode=light] .refresh-btn:hover,[data-mode=light] .mobile-user-btn:hover{background:var(--brand-dim);color:var(--brand);border-color:var(--brand)}[data-mode=light] .mobile-user-btn{border-color:var(--cta);color:var(--cta);background:var(--cta-dim)}[data-mode=light] .messages,[data-mode=light] .chat-main,[data-mode=light] .tab-content,[data-mode=light] .vm-section,[data-mode=light] .vm-flow-group,[data-mode=light] .vm-row{background:var(--bg);color:var(--ink)}[data-mode=light] .message-card,[data-mode=light] .alarm-card,[data-mode=light] .plant-card-admin,[data-mode=light] .admin-stat-card{border:1px solid var(--line);color:var(--ink);box-shadow:0 1px 3px #0000000a;background:#fff!important}[data-mode=light] .bubble{background:var(--brand);color:#fff}[data-mode=light] .composer{background:var(--bg-raised);border-top:1px solid var(--line)}[data-mode=light] .composer input{border:1px solid var(--line-light);color:var(--ink);background:#fff}[data-mode=light] .composer input::placeholder{color:var(--muted)}[data-mode=light] .quick button{background:var(--bg-raised);color:var(--ink-secondary);border:1px solid var(--line)}[data-mode=light] .quick button:hover{background:var(--brand-dim);color:var(--brand);border-color:var(--brand)}[data-mode=light] .send-button{background:var(--cta);color:#fff}[data-mode=light] .send-button:hover:not(:disabled){background:var(--brand)}[data-mode=light] .nav button{color:var(--ink-secondary)}[data-mode=light] .nav button:hover{background:var(--brand-dim);color:var(--brand)}[data-mode=light] .nav button.active{background:var(--brand-dim);color:var(--brand);font-weight:600}[data-mode=light] .login-page{background:var(--bg)}[data-mode=light] .login-bg-pattern{background:radial-gradient(60% 40% at 20% 80%,#00963914,#0000),radial-gradient(50% 50% at 80% 20%,#003b7114,#0000)}[data-mode=light] .login-container{border:1px solid var(--line);background:#fff;border-radius:16px;box-shadow:0 8px 32px #00000014}[data-mode=light] .login-brand h1{color:var(--ink)}[data-mode=light] .login-brand p{color:var(--muted)}[data-mode=light] .login-input-wrap input{border:1px solid var(--line-light);color:var(--ink);background:#fff}[data-mode=light] .login-input-wrap input:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-dim)}[data-mode=light] .login-field label{color:var(--ink-secondary)}[data-mode=light] .login-input-icon,[data-mode=light] .login-eye{color:var(--muted)}[data-mode=light] .var-row,[data-mode=light] .estado-var-row,[data-mode=light] .alarm-row,[data-mode=light] .machine-var-row{border:1px solid var(--line);color:var(--ink);background:#fff}[data-mode=light] .vm-flow-group{background:var(--bg-raised);border:1px solid var(--line)}[data-mode=light] .vm-flow-group-header{background:var(--bg-raised);color:var(--ink)}[data-mode=light] .limit-bar{background:var(--bg-raised);border:1px solid var(--line);color:var(--ink)}[data-mode=light] .vm-search-input,[data-mode=light] .admin-search-input,[data-mode=light] .login-input-wrap input{color:var(--ink)!important;border-color:var(--line-light)!important;background:#fff!important}[data-mode=light] .vcfg-modal,[data-mode=light] .admin-modal,[data-mode=light] .push-prompt-modal{color:var(--ink);border:1px solid var(--line);background:#fff}[data-mode=light] .vcfg-tab.active{background:var(--brand-dim);color:var(--brand)}[data-mode=light] .scrollbar{background:var(--line-light)}[data-mode=light] ::-webkit-scrollbar-thumb{background:var(--line-light)}[data-mode=light] .online-dot{background:var(--ok)}.dashboard-widget{--widget-accent:transparent}.dashboard-widget:before{content:"";background:var(--widget-accent,transparent);opacity:.85;pointer-events:none;border-radius:var(--radius) 0 0 var(--radius);z-index:1;width:3px;transition:background .3s,opacity .3s;position:absolute;top:0;bottom:0;left:0}.dashboard-widget:hover{border-color:var(--line-light)}.dashboard-widget.in-alarm{border-color:var(--danger);animation:1.6s ease-in-out infinite widget-alarm-border}.dashboard-widget.in-alarm:before{background:var(--danger);opacity:1}@keyframes widget-alarm-border{0%,to{box-shadow:0 0 #ef444400,0 0 0 1px #ef444400}50%{box-shadow:0 0 18px 1px #ef444459,0 0 0 1px #ef444499}}.dashboard-widget-alarm-badge{background:var(--danger);color:#fff;z-index:4;pointer-events:none;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;animation:1.2s ease-in-out infinite widget-bell-pulse;display:flex;position:absolute;top:6px;right:8px;box-shadow:0 0 12px #ef444480}@keyframes widget-bell-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.dashboard-widget-updated{color:var(--ink-secondary);opacity:.55;pointer-events:none;font-variant-numeric:tabular-nums;letter-spacing:.2px;z-index:2;background:linear-gradient(to right, transparent, var(--panel) 30%);align-items:center;gap:4px;padding-left:12px;font-size:9px;display:inline-flex;position:absolute;bottom:4px;right:8px}.dashboard-widget-updated:before{content:"";background:#10b981;border-radius:50%;flex-shrink:0;width:6px;height:6px}.dashboard-widget-stagnant-warn{color:#f59e0b;opacity:.85;z-index:4;pointer-events:auto;cursor:help;justify-content:center;align-items:center;display:flex;position:absolute;top:6px;right:8px}.dashboard-widget-updated.is-stale{color:var(--danger);opacity:1;align-items:center;gap:4px;font-weight:700;animation:1.1s step-end infinite widget-stale-blink;display:flex}.dashboard-widget-updated.is-stale:before{content:"";background:var(--danger);border-radius:50%;width:6px;height:6px;box-shadow:0 0 6px #ef4444cc}@keyframes widget-stale-blink{0%,to{opacity:1}50%{opacity:.25}}.widget-bn-value{letter-spacing:-.5px;font-size:clamp(24px,5vw,44px)}.widget-bn-trend{font-variant-numeric:tabular-nums;gap:2px;font-size:11px;font-weight:600}.widget-bn-trend-pct{margin-left:1px}.widget-bn-spark{opacity:.85;width:100%;height:22px;margin-top:6px}.widget-bn-spark-svg{width:100%;height:100%;display:block}.widget-bignumber.in-alarm .widget-bn-value{animation:1.2s ease-in-out infinite alarm-tick}@keyframes alarm-tick{0%,to{text-shadow:0 0 #0000}50%{text-shadow:0 0 14px}}.widget-gauge-label{text-align:center;letter-spacing:.2px;opacity:.9;margin-top:-4px;margin-bottom:2px;font-size:11px;font-weight:600}.widget-gauge.in-alarm .widget-gauge-svg{animation:1.2s ease-in-out infinite alarm-tick}.widget-gauge-num-wrap{flex:1;justify-content:center;align-items:center;min-height:0;padding:4px;display:flex}.widget-gauge-num-value{text-align:center;font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:clamp(22px,28cqw,64px);font-weight:800;line-height:1;transition:color .3s;overflow:hidden}.widget-gauge-num-unit{opacity:.75;margin-left:.25em;font-size:.42em;font-weight:600}.widget-gauge-traffic{justify-content:center;align-items:center}.widget-gauge-lamps{flex-direction:column;flex:1;justify-content:center;align-items:center;gap:clamp(6px,4cqh,14px);min-height:0;padding:6px 0;display:flex}.widget-gauge-lamp{opacity:.22;filter:grayscale(.35);border-radius:50%;width:clamp(16px,12cqw,34px);height:clamp(16px,12cqw,34px);transition:opacity .3s,box-shadow .3s,filter .3s}.widget-gauge-lamp.active{opacity:1;filter:none;box-shadow:0 0 0 3px color-mix(in srgb, var(--lamp-glow) 28%, transparent), 0 0 14px 2px color-mix(in srgb, var(--lamp-glow) 55%, transparent)}.widget-gauge-traffic-value{text-align:center;font-variant-numeric:tabular-nums;padding-bottom:4px;font-size:clamp(14px,9cqw,22px);font-weight:700}.widget-gauge-bar-wrap{flex-direction:column;flex:1;justify-content:center;gap:8px;min-height:0;padding:6px 4px;display:flex}.widget-gauge-bar-track{background:var(--line);border-radius:999px;width:100%;height:clamp(12px,6cqh,22px);position:relative;overflow:hidden}.widget-gauge-bar-zone{opacity:.32;position:absolute;top:0;bottom:0}.widget-gauge-bar-fill{box-shadow:0 0 8px 0 color-mix(in srgb, currentColor 0%, transparent);border-radius:999px;transition:width .4s;position:absolute;top:0;bottom:0;left:0}.widget-gauge-bar-setpoint{background:var(--ink-secondary);width:2px;position:absolute;top:-2px;bottom:-2px;transform:translate(-1px)}.widget-gauge-bar-scale{color:var(--muted);font-variant-numeric:tabular-nums;justify-content:space-between;align-items:baseline;font-size:11px;display:flex}.widget-gauge-bar-value{font-size:clamp(13px,7cqw,18px);font-weight:700}.dashboard-widget-content.widget-type-gauge{container-type:size}.gauge-style-grid{grid-template-columns:repeat(auto-fit,minmax(74px,1fr));gap:6px;display:grid}.gauge-style-btn{border:1px solid var(--line);background:var(--bg-raised);color:var(--ink-secondary);cursor:pointer;border-radius:8px;padding:7px 6px;font-size:12px;font-weight:600;transition:border-color .15s,background .15s,color .15s}.gauge-style-btn:hover{border-color:var(--brand)}.gauge-style-btn.active{border-color:var(--brand);background:color-mix(in srgb, var(--brand) 16%, transparent);color:var(--ink)}.widget-sp-chart-wrap{position:relative}.widget-sp-axis{color:var(--ink-secondary);opacity:.6;pointer-events:none;font-variant-numeric:tabular-nums;flex-direction:column;justify-content:space-between;font-size:9px;display:flex;position:absolute;top:4px;bottom:4px;left:2px}.widget-sp-axis-max,.widget-sp-axis-min{background:var(--panel);border-radius:2px;padding:0 3px}.widget-sp-tooltip{background:var(--bg);border:1px solid var(--line);border-radius:var(--radius-sm);pointer-events:none;z-index:3;white-space:nowrap;flex-direction:column;gap:2px;padding:4px 8px;font-size:11px;display:flex;position:absolute;transform:translate(-50%,-120%);box-shadow:0 4px 14px #0006}.widget-sp-tooltip strong{font-variant-numeric:tabular-nums;font-size:12px}.widget-sp-tooltip span{color:var(--ink-secondary);font-size:10px}.widget-chart-legend-item{border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:1px solid #0000;padding:2px 6px;font-family:inherit;transition:background .12s,border-color .12s,opacity .12s}.widget-chart-legend-item:hover{background:var(--bg-raised);border-color:var(--line)}.widget-chart-legend-item.is-hidden{opacity:.4}.widget-chart-legend-item.is-hidden .legend-dot{background:var(--ink-secondary)!important}.widget-chart-legend-item strong{font-variant-numeric:tabular-nums;font-size:11px}.widget-status-dot-wrap{aspect-ratio:1;flex-shrink:0;justify-content:center;align-items:center;width:clamp(36px,9%,52px);display:flex;position:relative}.widget-status-dot{z-index:2;border-radius:50%;width:100%;height:100%;position:relative}.widget-status-dot-halo{opacity:.18;filter:blur(6px);z-index:1;border-radius:50%;animation:2.4s ease-in-out infinite status-halo;position:absolute;inset:-6px}@keyframes status-halo{0%,to{opacity:.18;transform:scale(.95)}50%{opacity:.32;transform:scale(1.08)}}.widget-status.in-alarm{animation:.6s cubic-bezier(.36,.07,.19,.97) status-shake}@keyframes status-shake{10%,90%{transform:translate(-1px)}20%,80%{transform:translate(2px)}30%,50%,70%{transform:translate(-3px)}40%,60%{transform:translate(3px)}}.form-section{border-top:1px solid var(--line);flex-direction:column;gap:8px;margin-top:4px;padding-top:10px;display:flex}.form-section-header{color:var(--ink);text-transform:uppercase;letter-spacing:.5px;align-items:center;gap:6px;font-size:11px;font-weight:700;display:flex}.form-section-toggle{cursor:pointer;text-align:left;background:0 0;border:none;width:100%;padding:0;font-family:inherit;font-size:11px}.form-section-toggle:hover{color:var(--brand)}.form-section-meta{color:var(--ink-secondary);text-transform:none;letter-spacing:0;margin-left:auto;font-size:10px;font-weight:500}.form-section-body{flex-direction:column;gap:8px;display:flex}.seg-control{background:var(--bg);border:1px solid var(--line);border-radius:var(--radius-sm);gap:2px;width:100%;padding:2px;display:inline-flex}.seg-btn{color:var(--ink-secondary);cursor:pointer;background:0 0;border:none;border-radius:4px;flex:1;padding:6px 8px;font-family:inherit;font-size:12px;transition:all .12s}.seg-btn:hover{color:var(--ink)}.seg-btn.active{background:var(--brand);color:#fff;font-weight:600}.color-preset-row{flex-wrap:wrap;gap:6px;display:flex}.color-preset{cursor:pointer;border:2px solid #0000;border-radius:8px;justify-content:center;align-items:center;width:28px;height:28px;padding:0;transition:transform .12s,border-color .12s,box-shadow .12s;display:flex;position:relative}.color-preset:hover{transform:translateY(-1px)}.color-preset.active{border-color:var(--ink);box-shadow:0 0 0 2px var(--panel), 0 0 0 4px var(--brand)}.color-preset-auto{color:var(--ink-secondary);text-transform:uppercase;letter-spacing:.3px;font-size:8px;font-weight:700}.color-preset-custom{background:var(--bg-raised);overflow:hidden;border:1px dashed var(--line-light)!important}.color-preset-custom input[type=color]{opacity:0;cursor:pointer;position:absolute;inset:0}.color-preset-plus{color:var(--ink-secondary);font-size:18px;line-height:1}.multi-select-color-pick{cursor:pointer;border:1px solid #ffffff2e;border-radius:3px;flex-shrink:0;justify-content:center;align-items:center;width:14px;height:14px;display:flex;position:relative;overflow:hidden}.multi-select-color-pick input[type=color]{opacity:0;cursor:pointer;border:none;width:calc(100% + 8px);height:calc(100% + 8px);padding:0;position:absolute;inset:-4px;background:0 0!important}.multi-select-reset{color:var(--ink-secondary);cursor:pointer;background:0 0;border:none;border-radius:3px;justify-content:center;align-items:center;padding:2px;display:flex}.multi-select-reset:hover{background:var(--bg-raised);color:var(--ink)}.threshold-grid{background:var(--bg);border:1px solid var(--line);border-radius:var(--radius-sm);flex-direction:column;gap:4px;padding:6px;display:flex}.threshold-row{border-left:2px solid #0000;border-radius:4px;grid-template-columns:16px 1fr 90px 22px;align-items:center;gap:8px;padding:4px 6px;font-size:12px;transition:background .12s;display:grid}.threshold-row:hover{background:var(--bg-raised)}.threshold-row.active{border-left-color:var(--th-color,var(--brand))}.threshold-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.threshold-label{color:var(--ink);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.threshold-input{color:var(--ink);font-variant-numeric:tabular-nums;outline:none;width:100%;font-family:inherit;background:var(--bg)!important;border:1px solid var(--line)!important;border-radius:4px!important;padding:4px 6px!important;font-size:12px!important}.threshold-input:focus{border-color:var(--brand)!important}.threshold-remove{color:var(--ink-secondary);cursor:pointer;background:0 0;border:none;border-radius:3px;justify-content:center;align-items:center;padding:2px;display:flex}.threshold-remove:hover{background:var(--danger-dim);color:var(--danger)}.threshold-actions{justify-content:flex-end;gap:8px;margin-top:4px;display:flex}@media (max-width:480px){.dashboard-widget-updated{font-size:8px}.dashboard-widget-alarm-badge{width:18px;height:18px}.dashboard-widget-handle,.dashboard-widget-btn,.dashboard-widget-resize{min-width:28px;min-height:28px}.widget-bn-value{font-size:clamp(22px,8vw,32px)}.threshold-row{grid-template-columns:14px 1fr 70px 20px;font-size:11px}.color-preset{width:26px;height:26px}.dashboard-widget-content{padding:10px}}.dashboard-grid{max-width:100%;overflow-x:hidden}.dashboards-shell{flex-direction:column;height:100%;min-height:0;display:flex;position:relative;overflow:hidden}.dashboards-shell.is-fullscreen{background:var(--bg)}.dashboard-tabs{border-bottom:1px solid var(--line);background:var(--panel);flex-shrink:0;align-items:center;gap:8px;padding:8px 12px 0;display:flex;position:relative}.dashboard-tabs-scroll{-webkit-overflow-scrolling:touch;scroll-behavior:smooth;flex:1;align-items:center;gap:6px;min-width:0;padding-bottom:8px;display:flex;overflow:auto hidden}.dashboard-tabs-actions{flex-shrink:0;align-items:center;gap:4px;padding-bottom:8px;display:flex}.dashboard-tab-action{border:1px solid var(--line);background:var(--panel);width:32px;height:32px;color:var(--text);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;display:inline-flex}.dashboard-tab-action:hover:not(:disabled){background:var(--surface-2,#7f7f7f1a)}.dashboard-tab-action:disabled{opacity:.4;cursor:not-allowed}.dashboard-tab-action.danger:hover:not(:disabled){color:#dc2626;background:#dc26261f;border-color:#dc262680}.hide-scrollbar{scrollbar-width:none;-ms-overflow-style:none}.hide-scrollbar::-webkit-scrollbar{display:none}.dashboard-tab{border:1px solid var(--line);color:var(--ink-secondary);letter-spacing:.01em;cursor:pointer;white-space:nowrap;background:0 0;border-radius:999px;flex-shrink:0;align-items:center;gap:6px;max-width:220px;padding:6px 12px;font-size:12px;font-weight:600;transition:background .15s,color .15s,border-color .15s,transform .12s;display:inline-flex}.dashboard-tab:hover{color:var(--ink);border-color:var(--line-light);background:var(--bg-raised)}.dashboard-tab.active{background:var(--brand);border-color:var(--brand);color:#fff;box-shadow:0 2px 12px rgba(var(--brand-rgb), .3)}.dashboard-tab.active:hover{background:var(--brand-strong,var(--brand))}.dashboard-tab-label{text-overflow:ellipsis;overflow:hidden}.dashboard-tab-count{color:inherit;opacity:.9;background:#ffffff2e;border-radius:999px;padding:1px 6px;font-size:10px}.dashboard-tab:not(.active) .dashboard-tab-count{background:var(--bg-raised);color:var(--ink-secondary)}.dashboard-tab-add{color:var(--brand);opacity:.95;border-style:dashed}.dashboard-tab-add:hover{background:rgba(var(--brand-rgb), .08);border-color:var(--brand)}.dashboard-host{flex:1;min-height:0;position:relative;overflow:hidden}.dashboard-host-slide{will-change:transform, opacity;flex-direction:column;min-height:0;animation:.32s cubic-bezier(.2,.85,.3,1) both hostSlideIn;display:flex;position:absolute;inset:0}.dashboard-host-slide.slide-left{animation-name:hostSlideInLeft}.dashboard-host-slide.slide-right{animation-name:hostSlideInRight}@keyframes hostSlideInLeft{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:translate(0)}}@keyframes hostSlideInRight{0%{opacity:0;transform:translate(-24px)}to{opacity:1;transform:translate(0)}}@keyframes hostSlideIn{0%{opacity:0}to{opacity:1}}.dashboard-icon-btn{background:var(--bg-raised);border:1px solid var(--line);width:32px;height:32px;color:var(--ink-secondary);border-radius:var(--radius-sm);flex-shrink:0;justify-content:center;align-items:center;transition:all .12s;display:inline-flex}.dashboard-icon-btn:hover{color:var(--brand);border-color:var(--brand);transform:translateY(-1px)}.dashboard-refresh-hint{white-space:nowrap;opacity:.75;padding:2px 0;font-size:10px}.dashboard-breadcrumb{opacity:.8;align-items:center;gap:4px;margin-bottom:2px;font-size:10px;display:inline-flex}.dashboard-breadcrumb strong{color:var(--ink);font-weight:600}.dashboard-help-fab{background:var(--panel);border:1px solid var(--line);width:32px;height:32px;color:var(--ink-secondary);z-index:55;opacity:.7;border-radius:50%;justify-content:center;align-items:center;transition:opacity .2s,transform .15s,color .15s,border-color .15s;display:flex;position:absolute;bottom:14px;right:14px;box-shadow:0 2px 8px #0000002e}.dashboard-help-fab:hover{opacity:1;color:var(--brand);border-color:var(--brand);transform:translateY(-1px)}.presentation-overlay{background:var(--bg);z-index:9000;flex-direction:column;animation:.24s ease-out presFadeIn;display:flex;position:fixed;inset:0;overflow:hidden}@keyframes presFadeIn{0%{opacity:0}to{opacity:1}}.presentation-progress-bar{background:var(--brand);transform-origin:0;z-index:10;width:100%;height:3px;box-shadow:0 0 12px rgba(var(--brand-rgb), .5);animation:linear forwards presProgress;position:absolute;top:0;left:0}@keyframes presProgress{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.presentation-name{letter-spacing:.04em;color:var(--ink);text-transform:uppercase;opacity:0;z-index:12;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--line);pointer-events:none;background:#00000052;border-radius:999px;padding:8px 18px;font-size:14px;font-weight:600;transition:opacity .6s,transform .6s;position:absolute;top:22px;left:50%;transform:translate(-50%)translateY(-4px)}.presentation-name.visible{opacity:1;transform:translate(-50%)translateY(0)}.presentation-exit{width:36px;height:36px;color:var(--ink);z-index:14;opacity:.5;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0006;border:1px solid #ffffff2e;border-radius:50%;justify-content:center;align-items:center;transition:opacity .2s,transform .15s;display:flex;position:absolute;top:16px;right:16px}.presentation-exit:hover{opacity:1;transform:scale(1.05)}.presentation-stage{flex:1;min-height:0;padding:36px 28px 48px;animation:.38s cubic-bezier(.2,.85,.3,1) both presStageIn;overflow:auto}.presentation-stage.slide-left{animation-name:presStageInLeft}.presentation-stage.slide-right{animation-name:presStageInRight}@keyframes presStageInLeft{0%{opacity:0;transform:translate(40px)scale(.985)}to{opacity:1;transform:translate(0)scale(1)}}@keyframes presStageInRight{0%{opacity:0;transform:translate(-40px)scale(.985)}to{opacity:1;transform:translate(0)scale(1)}}.presentation-grid{max-width:1600px;margin:0 auto}.presentation-indicator{letter-spacing:.06em;color:var(--ink-secondary);border:1px solid var(--line);z-index:12;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);white-space:nowrap;text-overflow:ellipsis;pointer-events:none;background:#0006;border-radius:999px;max-width:80vw;padding:5px 14px;font-size:11px;animation:4s ease-in-out infinite presIndicatorPulse;position:absolute;bottom:18px;left:50%;overflow:hidden;transform:translate(-50%)}@keyframes presIndicatorPulse{0%,to{opacity:.5}50%{opacity:.95}}.shortcuts-overlay{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:9500;background:#0000008c;justify-content:center;align-items:center;padding:24px;animation:.18s ease-out presFadeIn;display:flex;position:fixed;inset:0}.shortcuts-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);width:min(420px,100%);max-height:92vh;max-height:min(var(--vvh,92dvh), 92dvh);flex-direction:column;display:flex;overflow:auto;box-shadow:0 24px 80px #00000080}.shortcuts-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.shortcuts-header h3{color:var(--ink);margin:0;font-size:15px}.shortcuts-list{flex-direction:column;padding:8px 16px;display:flex}.shortcuts-row{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:8px 0;display:flex}.shortcuts-row:last-child{border-bottom:none}.shortcuts-label{color:var(--ink);font-size:13px}.shortcuts-keys{gap:4px;display:inline-flex}.shortcuts-kbd{min-width:24px;height:22px;color:var(--ink);background:var(--bg-raised);border:1px solid var(--line);border-bottom-width:2px;border-radius:5px;justify-content:center;align-items:center;padding:0 7px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;font-weight:600;display:inline-flex}.shortcuts-footer{border-top:1px solid var(--line);padding:10px 16px 14px;font-size:11px}.seg-control-wrap{flex-wrap:wrap;gap:6px}@media (max-width:480px){.dashboard-tabs{padding:6px 8px 0}.dashboard-tab{max-width:160px;padding:6px 10px;font-size:11px}.presentation-stage{padding:30px 12px 36px}.presentation-name{font-size:12px;top:16px}.dashboard-help-fab{bottom:80px;right:12px}}[data-mode=light] .dashboard-tab:not(.active){background:#fff}[data-mode=light] .presentation-name{color:#111;background:#ffffffb3}[data-mode=light] .presentation-exit{color:#111;background:#ffffffb3;border-color:#00000026}[data-mode=light] .shortcuts-overlay{background:#fff9}[data-mode=light] .presentation-indicator{color:#333;background:#ffffffb3}.planta-root{flex-direction:column;gap:14px;display:flex;position:relative;overflow-x:hidden}.planta-header{background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--radius);justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex;box-shadow:0 1px 3px #0000000a}.planta-header-left,.planta-header-title{align-items:center;gap:10px;min-width:0;display:flex}.planta-header-title h3{white-space:nowrap;text-overflow:ellipsis;max-width:60vw;margin:0;font-size:16px;line-height:1.1;overflow:hidden}.planta-header-title .small{color:var(--muted);margin-top:2px;font-size:12px}.planta-header-actions{align-items:center;gap:6px;display:flex}.planta-back-btn,.planta-icon-btn{border-radius:var(--radius-sm);border:1px solid var(--line);width:32px;height:32px;color:var(--ink-secondary);background:0 0;justify-content:center;align-items:center;transition:background .15s,transform .12s,color .15s;display:inline-flex}.planta-back-btn:hover,.planta-icon-btn:hover{background:var(--brand-dim);color:var(--brand-strong)}.planta-back-btn:active,.planta-icon-btn:active{transform:scale(.94)}.planta-breadcrumb{flex-wrap:wrap;align-items:center;gap:4px;padding:4px 4px 0;font-size:13px;display:flex}.planta-breadcrumb button{color:var(--brand-strong);background:0 0;border:0;border-radius:999px;align-items:center;gap:4px;padding:4px 8px;font-size:12px;font-weight:600;transition:background .15s;display:inline-flex}.planta-breadcrumb button:hover:not(:disabled){background:var(--brand-dim)}.planta-breadcrumb button:disabled{color:var(--ink);background:var(--line);cursor:default}.planta-crumb-current{background:var(--line);color:var(--ink);border-radius:999px;align-items:center;gap:4px;padding:4px 8px;font-size:12px;font-weight:600;display:inline-flex}.planta-crumb-sep{color:var(--muted)}.planta-kpi-strip{grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px;padding:0;display:grid}.planta-kpi{background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--radius);text-align:left;padding:12px 14px;transition:box-shadow .2s,border-color .2s;animation:.3s ease-out both fadeSlideUp}.planta-kpi:hover{border-color:rgba(var(--brand-rgb), .25);box-shadow:0 2px 12px rgba(var(--brand-rgb), .08)}.planta-kpi span{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px;font-size:11px;display:block}.planta-kpi strong{color:var(--ink);font-size:20px;font-weight:800;line-height:1}.planta-kpi.small strong{font-size:17px}.planta-kpi strong.ok{color:var(--ok)}.planta-kpi strong.danger{color:var(--danger)}.planta-kpi strong.warn{color:var(--warn)}.planta-level-kpis{-webkit-overflow-scrolling:touch;gap:8px;padding-bottom:4px;display:flex;overflow-x:auto}.planta-level-kpis .planta-kpi{flex:1 0 110px;padding:10px 12px}.planta-section-title{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin:4px 0 -2px;padding:0 2px;font-size:11px;font-weight:700}.planta-quick-actions{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px;display:grid}.planta-quick-card{text-align:left;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-raised);color:var(--ink);align-items:center;gap:12px;padding:12px 14px;transition:transform .12s,border-color .2s,box-shadow .2s;display:flex}.planta-quick-card:hover{border-color:var(--brand);box-shadow:0 4px 14px rgba(var(--brand-rgb), .12);transform:translateY(-1px)}.planta-quick-card:active{transform:scale(.98)}.planta-quick-card svg{color:var(--brand-strong);flex-shrink:0}.planta-quick-card strong{margin-bottom:2px;font-size:13px;font-weight:700;display:block}.planta-quick-card small{color:var(--muted);font-size:11px}.planta-favs{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:6px;display:grid}.planta-fav-chip{background:var(--bg-raised);border:1px solid var(--line);border-left:3px solid var(--brand);border-radius:var(--radius-sm);color:var(--ink);justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;font-size:12px;transition:background .15s,transform .12s;display:flex}.planta-fav-chip:hover{background:var(--brand-dim)}.planta-fav-chip:active{transform:scale(.97)}.planta-fav-name{text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:4px;min-width:0;font-weight:600;display:inline-flex;overflow:hidden}.planta-fav-chip strong{white-space:nowrap;font-size:12px}.planta-cards-grid{grid-template-columns:1fr;gap:10px;display:grid}@media (min-width:600px){.planta-cards-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width:1100px){.planta-cards-grid{grid-template-columns:repeat(3,1fr)}}.planta-line-card{text-align:left;background:var(--bg-raised);border:1px solid var(--line);border-left:4px solid var(--line);border-radius:var(--radius);color:var(--ink);cursor:pointer;flex-direction:column;gap:10px;padding:12px 14px;transition:transform .15s ease-out,box-shadow .2s,border-color .2s;animation:.35s ease-out both cardFadeIn;display:flex}.planta-line-card:hover{transform:translateY(-2px);box-shadow:0 6px 18px #0f172a14}.planta-line-card:active{transform:translateY(0)scale(.99)}.planta-line-card.compact{gap:6px}.planta-card-head{align-items:center;gap:10px;display:flex}.planta-card-icon{background:var(--brand-dim);width:32px;height:32px;color:var(--brand-strong);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;font-size:18px;display:inline-flex}.planta-card-title{flex:1;min-width:0}.planta-card-title strong{white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:700;display:block;overflow:hidden}.planta-card-title small{color:var(--muted);font-size:11px}.planta-card-title small .danger{color:var(--danger);font-weight:600}.planta-status-dot{background:var(--ok);border-radius:50%;flex-shrink:0;width:10px;height:10px;box-shadow:0 0 0 2px #0000000a}.planta-status-dot.small{width:8px;height:8px}.planta-status-dot.alarm{animation:1.4s ease-in-out infinite alarmPulse}.planta-card-highlights{border-radius:var(--radius-sm);background:#00000006;gap:4px;padding:8px 10px;display:grid}[data-mode=dark] .planta-card-highlights{background:#ffffff08}.planta-highlight{justify-content:space-between;align-items:baseline;gap:10px;font-size:12px;display:flex}.planta-highlight-name{color:var(--ink-secondary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.planta-highlight strong{white-space:nowrap;font-size:13px}.planta-card-foot{justify-content:space-between;align-items:center;gap:8px;font-size:12px;display:flex}.planta-card-cta{color:var(--brand-strong);align-items:center;gap:2px;font-size:12px;font-weight:600;display:inline-flex}.planta-sparkline{flex-shrink:0;width:120px;height:28px}.planta-slide{flex-direction:column;gap:12px;display:flex}.planta-slide.slide-fwd{animation:.28s cubic-bezier(.2,.7,.2,1) both plantaSlideFwd}.planta-slide.slide-back{animation:.28s cubic-bezier(.2,.7,.2,1) both plantaSlideBack}@keyframes plantaSlideFwd{0%{opacity:0;transform:translate(28px)}to{opacity:1;transform:translate(0)}}@keyframes plantaSlideBack{0%{opacity:0;transform:translate(-28px)}to{opacity:1;transform:translate(0)}}@keyframes cardFadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.planta-vars-list{gap:6px;display:grid}.planta-var-row{background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--radius-sm);align-items:stretch;transition:box-shadow .18s,transform .12s;animation:.3s ease-out both cardFadeIn;display:flex}.planta-var-row:hover{transform:translateY(-1px);box-shadow:0 2px 10px #0f172a0d}.planta-fav-btn{width:36px;color:var(--muted);background:0 0;border:0;justify-content:center;align-items:center;transition:color .15s,background .15s;display:inline-flex}.planta-fav-btn:hover{color:#f59e0b;background:#f59e0b14}.planta-var-body{text-align:left;color:var(--ink);background:0 0;border:0;flex:1;justify-content:space-between;align-items:center;gap:10px;min-width:0;padding:10px 12px;display:flex}.planta-var-info{flex:1;gap:2px;min-width:0;display:grid}.planta-var-info strong{white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}.planta-var-info small{color:var(--muted);font-size:11px}.planta-var-value{flex-shrink:0;align-items:center;gap:8px;display:flex}.planta-var-value strong{white-space:nowrap;font-size:14px}.planta-empty{text-align:center;color:var(--muted);border:1px dashed var(--line);border-radius:var(--radius);padding:28px 16px;font-size:13px}.planta-empty.error{color:var(--danger);border-color:#ef44444d}.planta-last-updated{text-align:center;color:var(--muted);padding-top:10px}.planta-modal-backdrop{z-index:100;background:#0f172a80;justify-content:center;align-items:center;padding:16px;animation:.18s ease-out backdropFadeIn;display:flex;position:fixed;inset:0}@keyframes backdropFadeIn{0%{opacity:0}to{opacity:1}}.planta-modal{background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;width:100%;max-width:540px;max-height:88vh;animation:.22s cubic-bezier(.2,.7,.2,1) modalEnter;display:flex;box-shadow:0 20px 50px #00000040}@keyframes modalEnter{0%{opacity:0;transform:translateY(16px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}.planta-modal-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex}.planta-modal-title{align-items:center;gap:10px;display:flex}.planta-modal-title svg{color:var(--brand-strong)}.planta-modal-title h3{margin:0;font-size:16px}.planta-modal-title .small{color:var(--muted);margin:0;font-size:12px}.planta-modal-actions{gap:6px;display:flex}.planta-modal-close{border:1px solid var(--line);border-radius:var(--radius-sm);width:30px;height:30px;color:var(--ink-secondary);background:0 0;justify-content:center;align-items:center;transition:background .15s;display:inline-flex}.planta-modal-close:hover{background:var(--brand-dim);color:var(--brand-strong)}@media (max-width:640px){.planta-modal-close{width:40px;height:40px}}.planta-conectores-summary{flex-wrap:wrap;gap:6px;padding:12px 16px 4px;display:flex}.planta-conectores-pill{color:var(--ok);background:#10b9811a;border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:12px;font-weight:600;display:inline-flex}.planta-conectores-pill.muted{background:var(--line);color:var(--muted)}.planta-conectores-list{gap:8px;padding:8px 16px 16px;display:grid;overflow-y:auto}.planta-gateway-card{background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--radius-sm);grid-template-columns:auto 1fr auto;align-items:start;gap:8px 14px;padding:14px 16px;transition:border-color .2s,background .18s;display:grid}.planta-gateway-card>.planta-gateway-extras{grid-column:1/-1}.planta-gateway-card.online{border-left:3px solid var(--ok)}.planta-gateway-card.offline{border-left:3px solid var(--muted);opacity:.85}.planta-gw-dot{border-radius:50%;width:10px;height:10px;display:inline-block}.planta-gw-dot.online{background:var(--ok);--pulse-color:#10b98180;animation:1.6s ease-in-out infinite alarmPulse}.planta-gw-dot.offline{background:var(--muted)}.planta-gateway-body{flex:1;min-width:0}.planta-gateway-name{flex-wrap:wrap;align-items:center;gap:8px;min-width:0;font-size:14px;display:flex}.planta-gateway-name strong{word-break:normal;overflow-wrap:anywhere;font-weight:700}.planta-gateway-ext{color:var(--muted);overflow-wrap:anywhere;font-family:ui-monospace,SF Mono,Consolas,monospace;font-size:11px}.planta-gateway-meta{color:var(--muted);flex-wrap:wrap;gap:4px 14px;margin-top:6px;font-size:11px;display:flex}.planta-gateway-meta span{white-space:nowrap}.planta-gateway-card.pending{background:#d9770612;border-left:3px solid #d97706}.planta-gateway-card .planta-gateway-actions{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:6px;min-width:130px;margin-left:0;display:flex}.planta-gateway-name-input{border:1px solid var(--line);background:var(--bg);color:inherit;border-radius:4px;min-width:160px;padding:2px 6px;font-family:inherit;font-size:13px;font-weight:700}.planta-gateway-edit-btn{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:3px;justify-content:center;align-items:center;padding:2px;display:inline-flex}.planta-gateway-edit-btn:hover{color:var(--text);background:var(--bg-raised)}.planta-gateway-edit-btn:disabled{opacity:.5;cursor:not-allowed}.planta-gateway-pending-pill{color:#fff;letter-spacing:.04em;background:#d97706;border-radius:3px;align-items:center;padding:1px 6px;font-size:10px;font-weight:700;display:inline-flex}.planta-gateway-approve-btn{color:#fff;cursor:pointer;background:#16a34a;border:1px solid #16a34a;border-radius:4px;align-items:center;gap:4px;padding:4px 8px;font-size:11px;font-weight:600;display:inline-flex}.planta-gateway-approve-btn:hover{filter:brightness(1.08)}.planta-gateway-approve-btn:disabled{opacity:.6;cursor:not-allowed}.planta-gateway-toggle{color:var(--muted);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;align-items:center;gap:6px;font-size:11px;display:inline-flex}.planta-gateway-toggle-label{white-space:nowrap}.planta-gateway-toggle input[type=checkbox]{accent-color:var(--ok,#16a34a)}.planta-gateway-row-error{color:#dc2626;margin-top:4px;font-size:11px}.planta-conectores-pill.pending{color:#92400e;background:#d977062e;border-color:#d9770680}.planta-conectores-btn-dot{width:8px;height:8px;box-shadow:0 0 0 2px var(--bg,#fff);background:#dc2626;border-radius:50%;position:absolute;top:-3px;right:-4px}.planta-spotlight-backdrop{z-index:110;background:#0f172a8c;justify-content:center;align-items:flex-start;padding:8vh 16px 16px;animation:.15s ease-out backdropFadeIn;display:flex;position:fixed;inset:0}.planta-spotlight{background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);width:100%;max-width:620px;max-height:min(var(--vvh,70dvh), 70dvh);flex-direction:column;animation:.2s cubic-bezier(.2,.7,.2,1) modalEnter;display:flex;box-shadow:0 20px 60px #0000004d}.planta-spotlight-input{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:12px 14px;display:flex}.planta-spotlight-input svg{color:var(--muted)}.planta-spotlight-input input{color:var(--ink);background:0 0;border:0;outline:none;flex:1;font-size:15px}.planta-spotlight-close{border:1px solid var(--line);border-radius:var(--radius-sm);width:26px;height:26px;color:var(--muted);background:0 0;justify-content:center;align-items:center;display:inline-flex}.planta-spotlight-results{flex:1;padding:6px;overflow-y:auto}.planta-spotlight-row{border-radius:var(--radius-sm);text-align:left;width:100%;color:var(--ink);background:0 0;border:0;align-items:center;gap:10px;padding:8px 10px;transition:background .12s;display:flex}.planta-spotlight-row.active,.planta-spotlight-row:hover{background:var(--brand-dim)}.planta-spotlight-icon{width:28px;height:28px;color:var(--brand-strong);justify-content:center;align-items:center;display:inline-flex}.planta-spotlight-name{flex-direction:column;flex:1;min-width:0;font-size:13px;font-weight:600;display:flex}.planta-spotlight-path{color:var(--muted);font-size:11px;font-weight:400}.planta-spotlight-value{white-space:nowrap;font-size:13px;font-weight:700}.planta-spotlight-kind{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);background:var(--line);border-radius:999px;padding:2px 6px;font-size:10px}.planta-spotlight-empty{text-align:center;color:var(--muted);padding:32px 12px;font-size:13px}.planta-spotlight-foot{border-top:1px solid var(--line);color:var(--muted);gap:18px;padding:8px 14px;font-size:11px;display:flex}.planta-spotlight-foot kbd{background:var(--line);color:var(--ink-secondary);border:1px solid #0000000d;border-radius:4px;margin:0 2px;padding:1px 5px;font-family:ui-monospace,SF Mono,Consolas,monospace;font-size:10px;display:inline-block}@media (max-width:599px){.planta-kpi-strip{grid-template-columns:repeat(2,1fr)}.planta-header-title h3{max-width:50vw;font-size:15px}.planta-card-foot .planta-sparkline{width:80px}}.planta-magic-actions{flex-wrap:wrap;gap:8px;margin:8px 0 4px;display:flex}.planta-magic-btn{background:linear-gradient(135deg, #8b5cf62e, rgba(var(--brand-rgb), .18));color:var(--ink);border-radius:var(--radius-sm);cursor:pointer;border:1px solid #8b5cf673;align-items:center;gap:6px;padding:7px 12px;font-size:12px;font-weight:600;transition:transform .12s,box-shadow .18s,background .18s;display:inline-flex;position:relative;overflow:hidden}.planta-magic-btn:hover{background:linear-gradient(135deg, #8b5cf647, rgba(var(--brand-rgb), .28));transform:translateY(-1px);box-shadow:0 6px 20px #8b5cf638}.planta-magic-btn:active{transform:translateY(0)}.planta-magic-btn svg{color:#a78bfa}.planta-magic-btn.compact{gap:4px;padding:4px 8px;font-size:11px}.auto-dash-preview{background:var(--bg-raised);border:1px dashed var(--line);border-radius:var(--radius-sm);margin:10px 0 4px;padding:10px 12px}.auto-dash-preview-title{color:var(--ink);align-items:center;gap:6px;margin-bottom:6px;font-size:12px;font-weight:600;display:flex}.auto-dash-preview-title svg{color:#a78bfa}.auto-dash-preview-chips{flex-wrap:wrap;gap:6px;display:flex}.auto-dash-chip{background:var(--panel);border:1px solid var(--line);color:var(--ink-secondary);border-radius:999px;align-items:center;gap:4px;padding:3px 8px;font-size:11px;display:inline-flex}.auto-dash-chip svg{color:var(--ink-secondary)}.form-row-toggle{margin-top:6px}.toggle-label{cursor:pointer;-webkit-user-select:none;user-select:none;color:var(--ink);align-items:center;gap:8px;font-size:12px;display:inline-flex}.auto-dash-generating{flex-direction:column;gap:14px;min-height:240px;padding:18px 16px 22px;display:flex}.auto-dash-gen-head{align-items:center;gap:10px;display:flex}.auto-dash-gen-head strong{color:var(--ink);font-size:14px}.auto-dash-gen-head .spin{color:#a78bfa}.auto-dash-gen-ok{color:var(--ok,#10b981);animation:.45s cubic-bezier(.2,.9,.25,1.4) autoDashPop}@keyframes autoDashPop{0%{opacity:0;transform:scale(.4)}60%{opacity:1;transform:scale(1.15)}to{transform:scale(1)}}.auto-dash-gen-grid{grid-template-columns:repeat(6,1fr);gap:6px;display:grid}.auto-dash-gen-cell{aspect-ratio:1.4;background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--ink-secondary);opacity:0;justify-content:center;align-items:center;transition:none;display:flex;transform:translateY(6px)scale(.92)}.auto-dash-gen-cell.in{animation:.35s ease-out forwards autoDashCell}@keyframes autoDashCell{0%{opacity:0;background:var(--bg-raised);transform:translateY(6px)scale(.92)}60%{opacity:1;background:linear-gradient(135deg, #8b5cf62e, rgba(var(--brand-rgb), .18));transform:translateY(-2px)scale(1.04)}to{opacity:1;background:var(--bg-raised);transform:translateY(0)scale(1)}}.auto-dash-gen-cell.type-text{aspect-ratio:12;grid-column:span 6}.auto-dash-gen-cell.type-chart{aspect-ratio:3;grid-column:span 6}.auto-dash-gen-cell.type-gauge{grid-column:span 2}.auto-dash-gen-cell svg{color:#a78bfa}@media (max-width:599px){.auto-dash-gen-grid{grid-template-columns:repeat(4,1fr)}.auto-dash-gen-cell.type-text,.auto-dash-gen-cell.type-chart{grid-column:span 4}}.ent-ac,.ent-ac-input-wrap{width:100%;position:relative}.ent-ac-ghost{pointer-events:none;font:inherit;white-space:pre;color:#0000;align-items:center;padding:0 12px;font-size:13px;line-height:1;display:flex;position:absolute;inset:0;overflow:hidden}.ent-ac-ghost-typed{visibility:hidden}.ent-ac-ghost-suffix{color:var(--muted);opacity:.7}.ent-ac-dropdown{z-index:50;background:var(--bg-raised);border:1px solid var(--line-light);border-radius:var(--radius-sm);flex-direction:column;max-height:280px;padding:4px;display:flex;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto;box-shadow:0 10px 30px #0006}.ent-ac-loading,.ent-ac-empty{color:var(--ink-secondary);align-items:center;gap:6px;padding:10px 12px;font-size:12px;display:flex}.ent-ac-row{text-align:left;cursor:pointer;color:var(--ink);background:0 0;border:0;border-radius:6px;align-items:center;gap:8px;width:100%;padding:8px 10px;font-size:13px;transition:background .1s;display:flex}.ent-ac-row.active,.ent-ac-row:hover{background:var(--panel-hover)}.ent-ac-name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.ent-ac-context{color:var(--ink-secondary);background:var(--bg);white-space:nowrap;border-radius:10px;padding:1px 6px;font-size:11px}.ent-ac-count{color:var(--muted);white-space:nowrap;font-size:11px}.ent-ac-create{border-top:1px solid var(--line);color:var(--brand-strong);margin-top:2px;padding-top:10px;font-weight:600}.ent-ac-create.active,.ent-ac-create:hover{background:var(--brand-dim)}.vwiz-overlay{z-index:220;-webkit-backdrop-filter:blur(6px);background:#000000b3;justify-content:center;align-items:stretch;animation:.15s ease-out fadeIn;display:flex;position:fixed;inset:0}.vwiz-modal{background:var(--bg);border-left:1px solid var(--line);border-right:1px solid var(--line);flex-direction:column;width:100%;max-width:880px;height:100dvh;display:flex}@media (min-width:768px){.vwiz-overlay{align-items:center;padding:24px}.vwiz-modal{border-radius:var(--radius);border:1px solid var(--line);height:min(90dvh,940px)}}.vwiz-header{border-bottom:1px solid var(--line);background:var(--panel);padding:16px 20px;padding-top:calc(16px + env(safe-area-inset-top));justify-content:space-between;align-items:center;gap:12px;display:flex}.vwiz-header h2{color:var(--ink);margin:0 0 4px;font-size:17px;font-weight:700}.vwiz-step-indicator{color:var(--ink-secondary);text-transform:uppercase;letter-spacing:.06em;font-size:11px}.vwiz-body{flex-direction:column;flex:1;gap:16px;padding:20px;display:flex;overflow-y:auto}.vwiz-footer{border-top:1px solid var(--line);background:var(--panel);padding:12px 20px;padding-bottom:calc(12px + env(safe-area-inset-bottom));justify-content:space-between;align-items:center;gap:12px;display:flex}.vwiz-footer-actions{gap:8px;margin-left:auto;display:flex}.vwiz-btn{border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--panel);color:var(--ink);cursor:pointer;align-items:center;gap:6px;padding:8px 14px;font-size:13px;font-weight:600;transition:background .12s,border-color .12s,color .12s;display:inline-flex}.vwiz-btn:hover:not(:disabled){border-color:var(--line-light)}.vwiz-btn:disabled{opacity:.5;cursor:not-allowed}.vwiz-btn-primary{background:var(--brand);border-color:var(--brand);color:#fff}.vwiz-btn-primary:hover:not(:disabled){background:var(--brand-strong);border-color:var(--brand-strong)}.vwiz-btn-ghost{color:var(--ink-secondary);background:0 0;border-color:#0000}.vwiz-section-title{text-transform:uppercase;letter-spacing:.06em;color:var(--ink-secondary);margin:0 0 6px;font-size:12px;font-weight:700}.vwiz-system-list{flex-direction:column;gap:6px;display:flex}.vwiz-system-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-sm);cursor:pointer;align-items:center;gap:12px;padding:12px 14px;transition:border-color .1s,background .1s;display:flex}.vwiz-system-card:hover{border-color:var(--line-light)}.vwiz-system-card.selected{border-color:var(--brand);background:var(--brand-dim)}.vwiz-system-card input[type=checkbox]{width:16px;height:16px;accent-color:var(--brand);flex-shrink:0}.vwiz-system-card-body{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.vwiz-system-card-name{color:var(--ink);font-size:14px;font-weight:600}.vwiz-system-card-meta{color:var(--ink-secondary);flex-wrap:wrap;gap:8px;font-size:11px;display:flex}.vwiz-pill{border-radius:10px;align-items:center;padding:1px 8px;font-size:11px;font-weight:600;display:inline-flex}.vwiz-pill.pending{background:var(--warn-dim);color:var(--warn)}.vwiz-pill.active{background:var(--ok-dim);color:var(--ok)}.vwiz-pill.total{background:var(--bg-raised);color:var(--ink-secondary)}.vwiz-system-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:12px;padding-bottom:8px;display:flex}.vwiz-system-header h3{color:var(--ink);margin:0 0 4px;font-size:16px}.vwiz-mode-toggle{background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--radius-sm);gap:2px;padding:2px;display:inline-flex}.vwiz-mode-toggle button{color:var(--ink-secondary);cursor:pointer;background:0 0;border:0;border-radius:4px;padding:5px 10px;font-size:12px}.vwiz-mode-toggle button.active{background:var(--brand);color:#fff}.vwiz-fields{grid-template-columns:1fr 1fr;gap:12px;display:grid}@media (max-width:600px){.vwiz-fields{grid-template-columns:1fr}}.vwiz-field{flex-direction:column;gap:4px;display:flex}.vwiz-field-label{color:var(--ink-secondary);text-transform:uppercase;letter-spacing:.04em;font-size:11px;font-weight:600}.vwiz-hint{color:var(--muted);background:var(--bg-raised);border-radius:var(--radius-sm);border-left:2px solid var(--warn);padding:8px 10px;font-size:11px;line-height:1.4}.vwiz-vars-table{background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--radius-sm);flex-direction:column;gap:2px;max-height:280px;padding:4px;display:flex;overflow-y:auto}.vwiz-vars-row{border-radius:6px;grid-template-columns:24px 1fr auto auto;align-items:center;gap:10px;padding:8px 10px;font-size:13px;display:grid}.vwiz-vars-row:hover{background:var(--panel)}.vwiz-vars-row input[type=checkbox]{accent-color:var(--brand)}.vwiz-vars-name{flex-direction:column;min-width:0;display:flex}.vwiz-vars-name strong{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.vwiz-vars-name code{color:var(--muted);overflow-wrap:anywhere;font-family:monospace;font-size:11px}.vwiz-vars-per-row{min-width:180px}.vwiz-summary-block{background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--radius-sm);padding:12px 14px}.vwiz-summary-block h4{color:var(--ink);margin:0 0 6px;font-size:13px}.vwiz-summary-block .vwiz-readonly-row{color:var(--ink-secondary);justify-content:space-between;padding:2px 0;font-size:12px;display:flex}.vwiz-summary-block .vwiz-readonly-row strong{color:var(--ink)}.vwiz-progress{color:var(--ink-secondary);align-items:center;gap:8px;font-size:13px;display:flex}.vwiz-result-ok{background:var(--ok-dim);border:1px solid var(--ok);color:var(--ok);border-radius:var(--radius-sm);align-items:center;gap:8px;padding:14px;font-size:13px;display:flex}.vwiz-result-err{background:var(--danger-dim);border:1px solid var(--danger);color:var(--danger);border-radius:var(--radius-sm);padding:12px;font-size:12px}.vwiz-tag-chip{background:var(--brand-dim);color:var(--brand-strong);border:1px solid var(--brand);border-radius:12px;align-items:center;gap:4px;padding:3px 8px;font-size:12px;display:inline-flex}.vwiz-tag-chip button{color:inherit;cursor:pointer;background:0 0;border:0;align-items:center;padding:0;display:inline-flex}.vwiz-tag-row{flex-wrap:wrap;gap:6px;min-height:22px;margin-top:6px;display:flex}.vwiz-empty{text-align:center;color:var(--ink-secondary);padding:20px;font-size:13px}.vtbl-wrap{flex-direction:column;gap:8px;margin:0 4px;padding-bottom:80px;display:flex}.vtbl-col-hidden{display:none!important}.vtbl-cols-wrap{display:inline-flex;position:relative}.vtbl-cols-menu{z-index:40;flex-direction:column;gap:2px;min-width:240px;max-height:60vh;padding:6px;display:flex;position:absolute;top:calc(100% + 4px);left:0;overflow-y:auto}.vtbl-cols-title{opacity:.6;text-transform:uppercase;letter-spacing:.04em;padding:4px 8px 6px;font-size:11px;font-weight:600}.vtbl-cols-item{cursor:pointer;border-radius:6px;align-items:center;gap:8px;padding:5px 8px;font-size:13px;display:flex}.vtbl-cols-item:hover{background:#7f7f7f1f}.vtbl-cols-item input{cursor:pointer}.vtbl-filters{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-sm);flex-direction:column;gap:8px;padding:10px 12px;display:flex}.vtbl-search{background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--ink-secondary);align-items:center;gap:6px;padding:6px 10px;display:flex}.vtbl-search input{color:var(--ink);background:0 0;border:0;outline:none;flex:1;font-size:13px}.vtbl-filter-row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.vtbl-filter-label{color:var(--ink-secondary);text-transform:uppercase;letter-spacing:.04em;margin-right:4px;font-size:11px}.vtbl-count{color:var(--ink-secondary);font-size:12px}.vtbl-filter-toggle-row{align-items:center;gap:8px;display:flex}.vtbl-filter-toggle{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg-raised);color:var(--ink);cursor:pointer;align-items:center;gap:6px;padding:5px 10px;font-size:13px;font-weight:500;transition:border-color .12s,background .12s;display:inline-flex}.vtbl-filter-toggle:hover{border-color:var(--brand)}.vtbl-filter-toggle.has-active{border-color:var(--brand);color:var(--brand-strong);background:var(--brand-dim)}.vtbl-filter-dot{background:var(--brand);border-radius:50%;width:7px;height:7px}.vtbl-filter-caret{transition:transform .15s}.vtbl-filter-toggle.open .vtbl-filter-caret{transform:rotate(180deg)}.vtbl-output-badge{letter-spacing:.04em;text-transform:uppercase;color:#a855f7;background:#a855f724;border:1px solid #a855f766;border-radius:4px;flex-shrink:0;padding:1px 5px;font-size:9px;font-weight:700}.vtbl-type-badge{letter-spacing:.03em;text-transform:uppercase;opacity:.85;background:0 0;border:1px solid;border-radius:4px;flex-shrink:0;padding:1px 5px;font-size:9px;font-weight:700}.vtbl-dtype-badge{letter-spacing:.04em;background:var(--bg-sunken,#7878781f);color:var(--ink-secondary);border:1px solid var(--line);border-radius:4px;flex-shrink:0;padding:1px 4px;font-size:9px;font-weight:700}.vtbl-bulk-bar{z-index:30;background:var(--brand-dim);border:1px solid var(--brand);border-radius:var(--radius-sm);color:var(--ink);flex-wrap:wrap;align-items:center;gap:8px;padding:8px 12px;display:flex;position:sticky;top:0}.vtbl-bulk-count{color:var(--brand-strong);font-size:13px;font-weight:600}.vtbl-bulk-err{color:var(--danger);font-size:12px}.vtbl-bulk-tag-wrap{align-items:center;gap:4px;width:220px;display:flex;position:relative}.vtbl-scroll{max-height:calc(var(--vvh,100dvh) - 230px);border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg-raised);overflow:auto}.vtbl-table{flex-direction:column;width:100%;min-width:1040px;font-size:13px;display:flex}.vtbl-header{z-index:20;background:var(--panel);border-bottom:1px solid var(--line-light);color:var(--ink-secondary);text-transform:uppercase;letter-spacing:.05em;height:36px;font-size:11px;font-weight:700;display:flex;position:sticky;top:0}.vtbl-header-cell{-webkit-user-select:none;user-select:none;align-items:center;gap:4px;padding-right:16px;display:flex}.vtbl-header-cell>span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.vtbl-sortable{cursor:pointer}.vtbl-sortable:hover{color:var(--ink)}.vtbl-row{border-bottom:1px solid var(--line);align-items:stretch;height:36px;transition:background .15s;display:flex}.vtbl-row-alt{background:#ffffff05}.vtbl-row:hover{background:var(--panel-hover)}.vtbl-row-selected{background:var(--brand-dim)!important}.vtbl-cell{text-overflow:ellipsis;white-space:nowrap;border-right:1px solid var(--line);align-items:center;padding:6px 10px;display:flex;position:relative;overflow:hidden}.vtbl-cell:last-child{border-right:0}.vtbl-sticky-left{z-index:5;background:var(--bg-raised);position:sticky;left:0}.vtbl-row-alt .vtbl-sticky-left{background:var(--panel)}.vtbl-row:hover .vtbl-sticky-left{background:var(--panel-hover)}.vtbl-row-selected .vtbl-sticky-left{background:rgba(var(--brand-rgb), .18)}.vtbl-header .vtbl-sticky-left{background:var(--panel);z-index:25}.vtbl-sticky-left-2{z-index:4;background:var(--bg-raised);position:sticky;left:40px}.vtbl-row-alt .vtbl-sticky-left-2{background:var(--panel)}.vtbl-row:hover .vtbl-sticky-left-2{background:var(--panel-hover)}.vtbl-row-selected .vtbl-sticky-left-2{background:rgba(var(--brand-rgb), .18)}.vtbl-header .vtbl-sticky-left-2{background:var(--panel);z-index:24}.vtbl-col-check{flex:0 0 40px;justify-content:center;width:40px}.vtbl-col-status{width:var(--vtbl-w-status,150px);flex:0 0 var(--vtbl-w-status,150px);gap:6px;position:relative;overflow:visible}.vtbl-resizer{cursor:col-resize;touch-action:none;z-index:6;border-radius:2px;width:12px;height:100%;position:absolute;top:0;right:0}.vtbl-resizer:after{content:"";background:var(--line);border-radius:2px;width:2px;height:70%;transition:background .12s,height .12s;position:absolute;top:15%;right:3px}.vtbl-resizer:hover:after,.vtbl-resizer:active:after{background:var(--brand);height:80%}.vtbl-cols-foot{border-top:1px solid var(--line);flex-direction:column;gap:6px;margin-top:8px;padding-top:8px;display:flex}.vtbl-cols-hint{color:var(--muted);font-size:11px;line-height:1.4}.vtbl-cols-reset-row{flex-wrap:wrap;gap:6px;display:flex}.vtbl-drag-handle{cursor:grab;color:var(--muted);flex-shrink:0}.vtbl-drag-handle:active{cursor:grabbing}.vtbl-col-dragging{opacity:.4}.vtbl-col-drop-target{box-shadow:inset 2px 0 0 var(--brand), inset -2px 0 0 var(--brand)}.vtbl-tx-badge{vertical-align:middle;border-radius:50%;flex-shrink:0;width:8px;height:8px;margin-left:2px;display:inline-block}.vtbl-tx-live{background:var(--ok);animation:1.8s ease-in-out infinite vtblTxPulse;box-shadow:0 0 #10b981b3}@keyframes vtblTxPulse{0%{box-shadow:0 0 #10b9818c}70%{box-shadow:0 0 0 6px #10b98100}to{box-shadow:0 0 #10b98100}}.vtbl-tx-stale{background:var(--warn);box-shadow:0 0 0 1px #f59e0b4d}.vtbl-tx-nodata{background:var(--muted);opacity:.6}.widget-stagnant-dot{box-sizing:border-box;vertical-align:middle;background:0 0;border:2px solid #f97316;border-radius:50%;flex-shrink:0;width:9px;height:9px;margin-left:6px;animation:2.4s ease-in-out infinite vtblTxStagnant;display:inline-block}.vtbl-tx-stagnant{box-sizing:border-box;background:0 0;border:2px solid #f97316;animation:2.4s ease-in-out infinite vtblTxStagnant;box-shadow:0 0 0 1px #f9731640}@keyframes vtblTxStagnant{0%,to{opacity:1}50%{opacity:.4}}.vtbl-tx-offline{background:#dc2626;box-shadow:0 0 0 1px #dc262659}.vtbl-tx-quality{background:var(--warn);box-shadow:0 0 0 1px #f59e0b59}.vtbl-value-time-offline{color:#dc2626}.vtbl-col-name{flex:1 1 var(--vtbl-w-name,320px);min-width:280px}.vtbl-col-system{width:var(--vtbl-w-system,160px);flex:0 0 var(--vtbl-w-system,160px);color:var(--ink)}.vtbl-col-line{width:var(--vtbl-w-line,140px);flex:0 0 var(--vtbl-w-line,140px)}.vtbl-col-machine{width:var(--vtbl-w-machine,140px);flex:0 0 var(--vtbl-w-machine,140px)}.vtbl-col-component{width:var(--vtbl-w-component,140px);flex:0 0 var(--vtbl-w-component,140px)}.vtbl-col-value{width:var(--vtbl-w-value,140px);flex:0 0 var(--vtbl-w-value,140px);flex-direction:column;justify-content:center;align-items:flex-start;gap:0}.vtbl-col-clearance{width:var(--vtbl-w-clearance,120px);flex:0 0 var(--vtbl-w-clearance,120px);justify-content:center}.vtbl-col-actions{flex:0 0 50px;justify-content:center;width:50px}.vtbl-col-tipo{flex:0 0 90px;gap:4px;width:90px;overflow:visible}.vtbl-col-dato{flex:0 0 60px;justify-content:center;width:60px}.vtbl-col-salida{flex:0 0 72px;justify-content:center;width:72px}.vtbl-col-indicadores{width:var(--vtbl-w-indicadores,112px);flex:0 0 var(--vtbl-w-indicadores,112px);flex-wrap:wrap;align-content:center;gap:4px;overflow:visible}.vtbl-col-gateway{width:var(--vtbl-w-gateway,130px);flex:0 0 var(--vtbl-w-gateway,130px);min-width:0;overflow:hidden}.vtbl-col-gateway .vtbl-gw-name{white-space:nowrap;text-overflow:ellipsis;max-width:100%;overflow:hidden}.vtbl-col-origen{width:var(--vtbl-w-origen,170px);flex:0 0 var(--vtbl-w-origen,170px);min-width:0;overflow:hidden}.vtbl-origen-ctx{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-family:monospace;font-size:10px;overflow:hidden}.vtbl-gw-line{align-items:center;gap:6px;margin-top:2px;font-size:10px;display:flex}.vtbl-gw-name{color:var(--ink-secondary)}.vtbl-gw-chip{background:var(--surface-muted,#78787826);color:var(--ink-secondary);text-transform:uppercase;letter-spacing:.03em;border-radius:4px;align-items:center;padding:0 5px;font-size:9px;display:inline-flex}.vtbl-clearance-btn{border:1px solid var(--border,#7878784d);width:28px;height:24px;color:var(--ink-secondary);cursor:pointer;background:0 0;border-radius:6px;justify-content:center;align-items:center;display:inline-flex}.vtbl-clearance-btn.is-visible{color:var(--ok,#16a34a);border-color:var(--ok,#16a34a)}.vtbl-clearance-btn:disabled{opacity:.5;cursor:default}.vtbl-muted{color:var(--ink-secondary)}.vtbl-fav-btn{cursor:pointer;background:0 0;border:0;border-radius:4px;flex:none;justify-content:center;align-items:center;margin-right:6px;padding:2px;display:inline-flex}.vtbl-fav-btn:hover{background:var(--panel-hover)}.vtbl-name-btn{text-align:left;cursor:pointer;background:0 0;border:0;flex-direction:column;justify-content:center;width:100%;padding:0;display:flex;overflow:hidden}.vtbl-name{color:var(--ink);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:600;line-height:1.2;overflow:hidden}.vtbl-name-btn:hover .vtbl-name{color:var(--brand-strong)}.vtbl-ext-id{color:var(--ink-secondary);white-space:nowrap;text-overflow:ellipsis;font-family:monospace;font-size:10px;line-height:1.2;overflow:hidden}.vtbl-edit-btn{text-align:left;cursor:pointer;color:var(--ink);white-space:nowrap;text-overflow:ellipsis;background:0 0;border:1px dashed #0000;border-radius:4px;align-items:center;gap:4px;width:100%;padding:2px 6px;font-size:13px;display:flex;overflow:hidden}.vtbl-edit-btn:hover:not(:disabled){border-color:var(--brand);background:var(--brand-dim)}.vtbl-edit-btn:disabled{cursor:default}.vtbl-hint{color:var(--warn);display:inline-flex}.vtbl-inline-edit{width:100%;position:relative}.vtbl-inline-input{background:var(--bg);border:1px solid var(--brand);width:100%;color:var(--ink);border-radius:4px;outline:none;padding:3px 6px;font-size:13px}.vtbl-tags-wrap{flex-wrap:nowrap;align-items:center;gap:4px;display:flex;overflow:hidden}.vtbl-tag-chip{background:var(--brand-dim);color:var(--brand-strong);border:1px solid var(--brand);white-space:nowrap;text-overflow:ellipsis;border-radius:10px;align-items:center;gap:3px;max-width:100px;padding:1px 6px;font-size:11px;display:inline-flex;overflow:hidden}.vtbl-tag-x{color:inherit;cursor:pointer;opacity:.5;background:0 0;border:0;align-items:center;padding:0;display:inline-flex}.vtbl-tag-x:hover{opacity:1;color:var(--danger)}.vtbl-tag-add{border:1px dashed var(--line-light);width:18px;height:18px;color:var(--ink-secondary);cursor:pointer;background:0 0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.vtbl-tag-add:hover{border-color:var(--brand);color:var(--brand)}.vtbl-value-wrap{align-items:center;gap:4px;line-height:1;display:flex}.vtbl-value-num{color:var(--brand-strong);font-family:monospace;font-size:13px;font-weight:600}.vtbl-value-stale{color:var(--ink-secondary);opacity:.75;font-size:12px;font-style:italic;font-weight:500}.vtbl-value-time{color:var(--ink-secondary);margin-top:2px;font-size:10px;line-height:1}.vtbl-menu-btn{cursor:pointer;align-items:center;gap:3px;display:inline-flex}.vtbl-col-actions{position:relative;overflow:visible}.vtbl-menu{z-index:1000;background:var(--bg-raised);border:1px solid var(--line-light);border-radius:var(--radius-sm);flex-direction:column;gap:1px;min-width:180px;padding:4px;display:flex;position:absolute;top:calc(100% + 2px);left:auto;right:4px;box-shadow:0 10px 30px #00000073}.vtbl-status-menu{left:4px}.vtbl-actions-menu{left:auto;right:4px}.vtbl-menu-up{top:auto;bottom:calc(100% + 2px)}.vtbl-menu-item{color:var(--ink);cursor:pointer;text-align:left;white-space:nowrap;background:0 0;border:0;border-radius:4px;align-items:center;gap:6px;padding:6px 10px;font-size:12px;display:flex}.vtbl-menu-item:hover:not(:disabled){background:var(--panel-hover)}.vtbl-menu-item:disabled{opacity:.4;cursor:not-allowed}.vtbl-menu-danger{color:var(--danger)}.vtbl-empty{text-align:center;color:var(--ink-secondary);flex-direction:column;align-items:center;gap:10px;padding:30px;font-size:13px;display:flex}.vtbl-link{color:var(--brand-strong);cursor:pointer;background:0 0;border:0;font-size:13px;text-decoration:underline}[data-mode=light] .vtbl-scroll{background:#fff}[data-mode=light] .vtbl-row-alt{background:#f8fafc}[data-mode=light] .vtbl-sticky-left,[data-mode=light] .vtbl-sticky-left-2{background:#fff}[data-mode=light] .vtbl-row-alt .vtbl-sticky-left,[data-mode=light] .vtbl-row-alt .vtbl-sticky-left-2{background:#f8fafc}[data-mode=light] .vtbl-header .vtbl-sticky-left,[data-mode=light] .vtbl-header .vtbl-sticky-left-2{background:var(--panel)}.vtbl-col-field{width:var(--vtbl-w-field,140px);flex:0 0 var(--vtbl-w-field,140px)}.vtbl-enum-dot{background:var(--ink-secondary);border-radius:50%;flex-shrink:0;width:8px;height:8px;margin-right:4px;display:inline-block}.vtbl-toggle{appearance:none;border:1px solid var(--line);background:var(--bg-raised);cursor:pointer;border-radius:999px;width:32px;height:16px;padding:0;transition:background .15s,border-color .15s;position:relative}.vtbl-toggle .vtbl-toggle-knob{background:var(--ink-secondary);border-radius:50%;width:12px;height:12px;transition:left .15s,background .15s;position:absolute;top:1px;left:1px}.vtbl-toggle-on{background:var(--ok-dim);border-color:var(--ok)}.vtbl-toggle-on .vtbl-toggle-knob{background:var(--ok);left:18px}.vtbl-toggle:disabled{opacity:.5;cursor:not-allowed}.vtbl-enum-edit{width:100%}.vtbl-chip-exclude.active{background:var(--danger-dim);border-color:var(--danger);color:var(--danger)}.vtbl-filter-bulk-bar{z-index:25;background:var(--bg-raised);border:1px solid var(--brand);border-radius:var(--radius-sm);color:var(--ink);flex-wrap:wrap;align-items:center;gap:8px;padding:8px 12px;font-size:13px;display:flex;position:sticky;top:0}.vtbl-filter-bulk-msg{color:var(--ink-secondary);align-items:center;gap:6px;display:inline-flex}.vtbl-filter-bulk-msg strong{color:var(--brand-strong)}.vtbl-filter-bulk-info{color:var(--ok);font-size:12px}.vtbl-filter-bulk-wrap{position:relative}.vtbl-filter-bulk-popover{z-index:60;background:var(--bg-raised);border:1px solid var(--line-light);border-radius:var(--radius-sm);flex-direction:column;gap:8px;width:320px;padding:8px;display:flex;position:absolute;top:calc(100% + 4px);right:0;box-shadow:0 12px 36px #00000073}.vtbl-fb-tabs{border-bottom:1px solid var(--line);align-items:center;gap:2px;padding-bottom:6px;display:flex}.vtbl-fb-tab{color:var(--ink-secondary);cursor:pointer;background:0 0;border:0;border-radius:4px;padding:4px 8px;font-size:12px}.vtbl-fb-tab:hover{color:var(--ink)}.vtbl-fb-tab.active{background:var(--brand-dim);color:var(--brand-strong)}.vtbl-fb-body{flex-direction:column;gap:6px;display:flex}.vtbl-fb-label{text-transform:uppercase;letter-spacing:.04em;color:var(--ink-secondary);font-size:11px}.vtbl-fb-help{color:var(--ink);margin:0;font-size:12px}.vtbl-fb-bool{color:var(--ink);align-items:center;gap:6px;font-size:13px;display:inline-flex}.vtbl-fb-actions{justify-content:flex-end;gap:6px;margin-top:4px;display:flex}.fs-edit-modal{flex-direction:column;gap:10px;width:720px;max-width:95vw;display:flex}.fs-edit-loading{color:var(--ink-secondary);justify-content:center;align-items:center;gap:8px;padding:30px;display:flex}.fs-edit-list{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel);flex-direction:column;gap:4px;max-height:50vh;padding:6px;display:flex;overflow:auto}.fs-edit-empty{text-align:center;color:var(--ink-secondary);padding:16px;font-size:13px}.fs-edit-row{background:var(--bg-raised);border:1px solid var(--line);border-radius:4px;align-items:center;gap:8px;padding:6px 8px;display:flex}.fs-edit-handle{flex-direction:column;gap:1px;display:flex}.fs-edit-enabled{cursor:pointer;align-items:center;display:inline-flex}.fs-edit-label-input{background:var(--bg);border:1px solid var(--line);color:var(--ink);border-radius:4px;outline:none;flex:1;min-width:100px;padding:5px 8px;font-size:13px}.fs-edit-label-input:focus{border-color:var(--brand)}.fs-edit-id{color:var(--ink-secondary);white-space:nowrap;font-family:monospace;font-size:11px}.fs-edit-type-badge{background:var(--brand-dim);color:var(--brand-strong);white-space:nowrap;text-transform:uppercase;letter-spacing:.04em;border-radius:999px;padding:2px 6px;font-size:10px}.fs-edit-type-entity{color:#3b82f6;background:#3b82f626}.fs-edit-type-enum{color:#a855f7;background:#a855f726}.fs-edit-type-text{color:#94a3b8;background:#64748b2e}.fs-edit-type-number{color:#f59e0b;background:#f59e0b26}.fs-edit-type-boolean{color:#10b981;background:#10b98126}.fs-edit-builtin{text-transform:uppercase;color:var(--ink-secondary);letter-spacing:.04em;font-size:10px}.fs-edit-remove{color:var(--danger)}.fs-edit-add-btn{align-self:flex-start}.fs-edit-add-form{border:1px dashed var(--brand);border-radius:var(--radius-sm);background:var(--brand-dim);flex-direction:column;gap:8px;padding:10px;display:flex}.fs-edit-add-row{align-items:center;gap:6px;display:flex}.fs-edit-type-select{background:var(--bg);border:1px solid var(--line);color:var(--ink);border-radius:4px;outline:none;padding:5px 8px;font-size:13px}.fs-edit-options{background:var(--bg-raised);border:1px solid var(--line);border-radius:4px;flex-direction:column;gap:4px;padding:6px;display:flex}.fs-edit-options-label{text-transform:uppercase;color:var(--ink-secondary);letter-spacing:.04em;font-size:11px}.fs-edit-option-row{color:var(--ink);align-items:center;gap:6px;font-size:12px;display:flex}.fs-edit-option-dot{border:1px solid var(--line);border-radius:50%;width:10px;height:10px;display:inline-block}.fs-edit-option-add{flex-wrap:wrap;gap:4px;display:flex}.fs-edit-option-add input{background:var(--bg);border:1px solid var(--line);min-width:80px;color:var(--ink);border-radius:4px;outline:none;flex:1;padding:4px 6px;font-size:12px}.fs-edit-option-add input:focus{border-color:var(--brand)}.fs-edit-add-actions{justify-content:flex-end;gap:6px;display:flex}[data-mode=light] .vtbl-filter-bulk-bar{background:#fff}[data-mode=light] .fs-edit-list{background:#f8fafc}[data-mode=light] .fs-edit-row{background:#fff}.upgrade-modal{max-width:880px}.upgrade-plans{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:18px;display:grid}@media (max-width:720px){.upgrade-plans{grid-template-columns:1fr}}.upgrade-plan-card{background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;gap:10px;padding:16px;transition:border-color .2s,box-shadow .2s,transform .15s;display:flex;position:relative}.upgrade-plan-card:hover{border-color:rgba(var(--brand-rgb), .4);transform:translateY(-2px)}.upgrade-plan-card.highlight{border-color:var(--brand-strong);box-shadow:0 0 0 1px var(--brand-strong) inset}.upgrade-plan-card.is-current{border-color:var(--ok)}.upgrade-plan-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.upgrade-plan-head strong{letter-spacing:-.01em;font-size:16px}.upgrade-current-badge{letter-spacing:.06em;text-transform:uppercase;background:var(--ok-dim);color:var(--ok);border-radius:999px;padding:3px 7px;font-size:10px;font-weight:700}.upgrade-plan-price{color:var(--ink);font-size:20px;font-weight:700}.upgrade-plan-features{flex:1;gap:6px;margin:0;padding:0;list-style:none;display:grid}.upgrade-plan-features li{color:var(--ink-secondary);align-items:flex-start;gap:6px;font-size:13px;display:flex}.upgrade-plan-features li svg{color:var(--ok);flex-shrink:0;margin-top:2px}.upgrade-cta{justify-content:center;align-items:center;gap:6px;margin-top:6px;display:inline-flex}.upgrade-base-note{margin:0}.upgrade-footer{border-top:1px solid var(--line);padding:14px 18px 18px}.upgrade-footer p{margin:0}.planta-summary-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:18px;display:grid}@media (max-width:720px){.planta-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.planta-summary-tile{text-align:left;background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--radius-sm);font:inherit;cursor:pointer;flex-direction:column;gap:4px;padding:12px 14px;transition:border-color .15s,box-shadow .18s,transform .1s;display:flex}.planta-summary-tile:hover{border-color:rgba(var(--brand-rgb), .4);box-shadow:0 2px 14px rgba(var(--brand-rgb), .1);transform:translateY(-1px)}.planta-summary-tile[aria-disabled=true],.planta-summary-tile:disabled{cursor:default;box-shadow:none;opacity:.85;transform:none}.planta-summary-tile .summary-label{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:11px}.planta-summary-tile .summary-value{color:var(--ink);align-items:center;gap:8px;font-size:22px;font-weight:700;display:flex}.planta-summary-tile .summary-value.ok{color:var(--ok)}.planta-summary-tile .summary-value.warn{color:#f59e0b}.planta-summary-tile .summary-value.danger{color:#ef4444}.planta-summary-tile .summary-value.muted{color:var(--muted);font-size:16px}.planta-summary-tile .summary-sub{color:var(--muted);font-size:12px}.planta-summary-bar{background:var(--line);border-radius:2px;width:100%;height:4px;margin-top:4px;overflow:hidden}.planta-summary-bar>span{background:var(--brand-strong);height:100%;transition:width .3s;display:block}.planta-summary-bar>span.near-limit{background:#f59e0b}.planta-activos-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;display:grid}.planta-activo-card{text-align:left;background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--radius-sm);cursor:pointer;font:inherit;border-left-width:3px;flex-direction:column;gap:10px;padding:14px;transition:border-color .15s,box-shadow .18s,transform .12s;animation:.25s ease-out backwards planta-card-in;display:flex}.planta-activo-card:hover{box-shadow:0 4px 18px rgba(var(--brand-rgb), .12);transform:translateY(-2px)}.planta-activo-card.unassigned{border-left-color:var(--muted);opacity:.94}.planta-activo-head{align-items:center;gap:10px;display:flex}.planta-activo-title{flex:1;min-width:0}.planta-activo-title strong{letter-spacing:-.01em;white-space:nowrap;text-overflow:ellipsis;font-size:14px;display:block;overflow:hidden}.planta-activo-title small{color:var(--muted);font-size:12px}.planta-activo-metrics{color:var(--ink-secondary);flex-wrap:wrap;gap:10px;font-size:12px;display:flex}.planta-activo-metrics span strong{color:var(--ink);margin-right:3px}.planta-activo-flags{gap:6px;margin-top:2px;display:flex}.planta-activo-flag{text-transform:uppercase;letter-spacing:.05em;border-radius:999px;padding:2px 6px;font-size:10px;font-weight:700}.planta-activo-flag.stale{color:#f59e0b;background:#f59e0b26}.planta-activo-flag.alarm{color:#ef4444;background:#ef444426}.planta-comp-list{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px;display:grid}.planta-comp-card{text-align:left;background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--radius-sm);cursor:pointer;font:inherit;border-left-width:3px;justify-content:space-between;align-items:center;gap:10px;padding:12px;transition:border-color .15s,transform .1s,box-shadow .18s;display:flex}.planta-comp-card:hover{border-color:rgba(var(--brand-rgb), .4);box-shadow:0 2px 10px rgba(var(--brand-rgb), .1);transform:translateY(-1px)}.planta-comp-card.unassigned{border-left-color:var(--muted)}.planta-comp-card strong{font-size:13px;display:block}.planta-comp-card small{color:var(--muted);font-size:12px}.planta-tab-actions{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px;display:flex}.planta-magic-wrap{flex-wrap:wrap;gap:8px;display:inline-flex}@keyframes planta-card-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.vtbl-toast{z-index:5000;text-align:center;pointer-events:none;border-radius:10px;max-width:min(560px,100vw - 32px);padding:12px 20px;font-size:13px;font-weight:500;animation:.22s ease-out vtblToastIn,.6s ease-in 3.4s forwards vtblToastOut;position:fixed;bottom:32px;left:50%;transform:translate(-50%);box-shadow:0 12px 36px #00000059}.vtbl-toast-error{background:var(--danger);color:#fff}.vtbl-toast-info{background:var(--brand);color:#fff}@keyframes vtblToastIn{0%{opacity:0;transform:translate(-50%,12px)}to{opacity:1;transform:translate(-50%)}}@keyframes vtblToastOut{0%{opacity:1}to{opacity:0;transform:translate(-50%,8px)}}.widget-undo-toast{bottom:calc(22px + env(safe-area-inset-bottom));background:linear-gradient(180deg, var(--panel,#1a1f2e), var(--bg-raised,#141826));border:1px solid color-mix(in srgb, var(--brand,#6366f1) 40%, var(--line,#2a3344));color:var(--ink,#f3f4f6);z-index:9999;border-radius:14px;align-items:center;gap:12px;max-width:min(560px,100vw - 24px);padding:11px 12px 13px 14px;font-size:13px;font-weight:500;animation:.32s cubic-bezier(.22,1.2,.36,1) both widget-undo-in;display:flex;position:fixed;left:50%;overflow:hidden;box-shadow:0 16px 40px #00000080,inset 0 0 0 1px #ffffff08}.widget-undo-toast-icon{background:color-mix(in srgb, var(--danger,#ef4444) 18%, transparent);width:30px;height:30px;color:var(--danger,#ef4444);border-radius:9px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.widget-undo-toast-text{white-space:nowrap;padding-right:2px}.widget-undo-toast-btn{background:var(--brand,#6366f1);color:#fff;cursor:pointer;border:0;border-radius:9px;flex-shrink:0;align-items:center;gap:6px;padding:8px 15px;font-size:13px;font-weight:700;transition:filter .12s,transform .12s;display:inline-flex}.widget-undo-toast-btn:hover{filter:brightness(1.12);transform:translateY(-1px)}.widget-undo-toast-btn:active{transform:translateY(0)}.widget-undo-toast-bar{transform-origin:0;background:linear-gradient(90deg, var(--brand,#6366f1), color-mix(in srgb, var(--brand,#6366f1) 55%, #fff));width:100%;height:3px;animation:6s linear forwards widget-undo-deplete;position:absolute;bottom:0;left:0}@keyframes widget-undo-in{0%{opacity:0;transform:translate(-50%)translateY(20px)scale(.96)}to{opacity:1;transform:translate(-50%)translateY(0)scale(1)}}@keyframes widget-undo-deplete{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.vm-back-link{color:var(--ink-secondary);cursor:pointer;background:0 0;border:0;border-radius:6px;align-items:center;gap:6px;margin-bottom:6px;padding:4px 8px 4px 0;font-size:12px;display:inline-flex}.vm-back-link:hover{color:var(--ink);background:var(--panel-hover)}.admin-review-view .tab-content{padding:0}.vm-header{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:8px;padding:0 0 8px;display:flex}.vm-header-title h3{margin:0 0 1px;font-size:16px;font-weight:600}.vm-header-title p{color:var(--ink-secondary);margin:0}.vm-header-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.vm-action-btn{white-space:nowrap;border-radius:8px;align-items:center;gap:6px;padding:7px 14px;font-size:13px;display:inline-flex}@media (max-width:600px){.vm-header{flex-direction:column;gap:12px}.vm-header-actions{width:100%}.vm-action-btn{flex:1;justify-content:center}}.vm-dup-rows{flex-direction:column;display:flex}.vm-dup-row{border-top:1px solid var(--line);flex-wrap:wrap;align-items:flex-start;gap:10px;padding:10px 12px;display:flex}.vm-dup-row:first-child{border-top:none}.vm-dup-actions{flex-wrap:wrap;align-items:center;gap:6px;margin-left:auto;display:flex}.vm-dup-actions .btn-secondary{white-space:nowrap;align-items:center;gap:4px;padding:5px 10px;font-size:12px;display:inline-flex}@media (max-width:600px){.vm-dup-row{flex-direction:column}.vm-dup-actions{width:100%;margin-left:0}.vm-dup-actions .btn-secondary{flex:1;justify-content:center}}.vpick-card{width:100%;max-width:760px;height:min(var(--vvh,86dvh), 760px)}.vpick-selcount{color:var(--brand);margin-left:4px;font-weight:600}.vpick-body{flex-direction:column;flex:1;gap:10px;min-height:0;padding:14px 16px 6px;display:flex;overflow:hidden}.vpick-loading{color:var(--ink-secondary);flex:1;justify-content:center;align-items:center;gap:8px;font-size:13px;display:flex}.vpick-error{color:var(--danger,#ef4444);background:var(--bg-raised);border-radius:var(--radius-sm);padding:12px;font-size:13px}.vpick-search{background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--ink-secondary);align-items:center;gap:6px;padding:7px 10px;display:flex}.vpick-search input{color:var(--ink);background:0 0;border:0;outline:none;flex:1;font-size:13px}.vpick-controls{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.vpick-toggle{color:var(--ink-secondary);cursor:pointer;align-items:center;gap:6px;font-size:12px;display:inline-flex}.vpick-toggle input{margin:0}.vpick-sort{color:var(--ink-secondary);flex-wrap:wrap;align-items:center;gap:4px;display:inline-flex}.vpick-sort-label{text-transform:uppercase;letter-spacing:.04em;margin-right:2px;font-size:11px}.vpick-filter-toggle{background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--ink-secondary);cursor:pointer;align-self:flex-start;align-items:center;gap:6px;padding:5px 10px;font-size:12px;font-weight:600;transition:border-color .15s,color .15s;display:inline-flex}.vpick-filter-toggle:hover{color:var(--ink);border-color:var(--line-light)}.vpick-filter-count{background:var(--brand);color:#fff;border-radius:999px;justify-content:center;align-items:center;min-width:16px;height:16px;padding:0 4px;font-size:10px;font-weight:700;display:inline-flex}.vpick-chip-rows{flex-direction:column;gap:6px;max-height:140px;padding-right:4px;display:flex;overflow-y:auto}.vpick-chip-row{flex-wrap:wrap;align-items:center;gap:5px;display:flex}.vpick-chip-label{color:var(--ink-secondary);text-transform:uppercase;letter-spacing:.04em;margin-right:2px;font-size:11px}.vpick-enum-dot{border-radius:50%;width:8px;height:8px;margin-right:5px;display:inline-block}.vpick-counter-row{color:var(--ink-secondary);align-items:center;gap:6px;font-size:12px;display:flex}.vpick-counter{flex:1}.vpick-clear{color:var(--brand);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:0;padding:2px 6px;font-size:11px}.vpick-clear:hover{background:var(--brand-dim)}.vpick-list{flex-direction:column;flex:1;gap:4px;min-height:0;padding-right:4px;display:flex;overflow-y:auto}.vpick-empty{text-align:center;color:var(--ink-secondary);padding:24px 12px;font-size:13px}.vpick-row{background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--radius-sm);cursor:pointer;grid-template-columns:24px 24px 1fr auto;align-items:center;gap:10px;padding:8px 10px;transition:border-color .12s,background .12s;display:grid}.vpick-row:hover:not(.inactive){border-color:var(--brand)}.vpick-row.selected{border-color:var(--brand);background:var(--brand-dim)}.vpick-row.inactive{cursor:not-allowed;opacity:.55}.vpick-row-check{justify-content:center;align-items:center;display:flex}.vpick-radio{border:1.5px solid var(--ink-secondary);border-radius:50%;width:14px;height:14px;display:inline-block}.vpick-radio-dot{background:var(--brand);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:16px;height:16px;display:inline-flex}.vpick-fav{color:var(--ink-secondary);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;width:22px;height:22px;display:inline-flex}.vpick-fav:hover{color:var(--ink);background:var(--bg-raised)}.vpick-fav.on{color:#f59e0b}.vpick-row-main{flex-direction:column;gap:2px;min-width:0;display:flex}.vpick-row-top{align-items:center;gap:8px;min-width:0;display:flex}.vpick-name{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;overflow:hidden}.vpick-ext-id{color:var(--ink-secondary);font-size:11px;font-family:var(--font-mono,ui-monospace, monospace);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.vpick-inactive-badge{text-transform:uppercase;letter-spacing:.04em;color:var(--ink-secondary);background:var(--bg-raised);border:1px solid var(--line);border-radius:8px;padding:1px 6px;font-size:10px;font-weight:600}.vpick-row-meta{color:var(--ink-secondary);flex-wrap:wrap;align-items:center;gap:10px;min-width:0;font-size:11px;display:flex}.vpick-hier{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.vpick-tags{flex-wrap:wrap;align-items:center;gap:4px;display:inline-flex}.vpick-tag{background:var(--panel);border:1px solid var(--line);color:var(--ink-secondary);border-radius:8px;padding:1px 6px;font-size:10px}.vpick-tag-more{color:var(--ink-secondary);font-size:10px}.vpick-row-value{flex-direction:column;align-items:flex-end;gap:2px;min-width:56px;display:flex}.vpick-value-num{color:var(--ink);align-items:baseline;gap:3px;font-size:13px;font-weight:600;display:inline-flex}.vpick-unit{color:var(--ink-secondary);font-size:10px;font-weight:400}.vpick-value-meta{color:var(--ink-secondary);align-items:center;gap:5px;font-size:10px;display:inline-flex}.vpick-dot{background:#999;border-radius:50%;width:7px;height:7px}.vpick-dot-live{background:#10b981;box-shadow:0 0 0 2px #10b9812e}.vpick-dot-stale{background:#f59e0b}.vpick-dot-none{background:var(--line)}.vpick-rel{white-space:nowrap}.vpick-footer{flex-shrink:0}@media (max-width:600px){.vpick-card{height:var(--vvh,92dvh);max-height:var(--vvh,92dvh)}.vpick-row{grid-template-rows:auto auto;grid-template-columns:22px 22px 1fr;row-gap:6px}.vpick-row-value{flex-direction:row;grid-column:1/-1;justify-content:space-between;align-items:flex-start;width:100%}}.vpick-selected-single{background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--radius-sm);flex-wrap:wrap;align-items:center;gap:8px;padding:8px 10px;display:flex}.vpick-selected-info{flex:1;align-items:center;gap:6px;min-width:0;display:flex}.vpick-selected-name{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;overflow:hidden}.vpick-selected-unit{color:var(--ink-secondary);font-size:11px}.vpick-selected-ext{color:var(--ink-secondary);font-size:11px;font-family:var(--font-mono,ui-monospace, monospace);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.vpick-open-btn{align-self:flex-start}.vpick-selected-list{flex-direction:column;gap:4px;margin-top:6px;display:flex}.vpick-selected-item{background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--radius-sm);align-items:center;gap:8px;padding:6px 10px;display:flex}.vpick-selected-remove{width:22px;height:22px;color:var(--ink-secondary);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;margin-left:auto;display:inline-flex}.vpick-selected-remove:hover{background:var(--panel);color:var(--danger,#ef4444)}.vpick-selected-edit{width:22px;height:22px;color:var(--ink-secondary);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:0;flex:none;justify-content:center;align-items:center;display:inline-flex}.vpick-selected-edit:hover{background:var(--panel);color:var(--brand,#13b5a6)}.vpick-series-axis{flex:none}.wlp-frame{background:var(--bg);border:1px solid var(--line);border-radius:var(--radius-md,10px);flex-direction:column;gap:6px;padding:10px;display:flex}.wlp-header{justify-content:space-between;align-items:center;gap:8px;display:flex}.wlp-label{color:var(--ink-secondary);text-transform:uppercase;letter-spacing:.5px;font-size:10px;font-weight:600}.wlp-refresh-icon{color:var(--ink-secondary);opacity:.45;pointer-events:none}.wlp-stage{background:repeating-linear-gradient(45deg, transparent 0 8px, #7f7f7f0a 8px 9px), var(--panel);border-radius:var(--radius-sm);justify-content:center;align-items:center;width:100%;display:flex;position:relative;overflow:hidden}.wlp-stage-empty{color:var(--ink-secondary);text-align:center;padding:12px 16px;font-size:12px;font-style:italic}.wlp-scaler{transform-origin:50%;justify-content:center;align-items:center;display:flex}.wlp-widget{box-sizing:border-box;position:relative}.xboard-destbar{z-index:6000;background:color-mix(in oklab, var(--panel) 92%, transparent);-webkit-backdrop-filter:blur(14px)saturate(120%);border-bottom:1px solid var(--line);pointer-events:auto;padding:10px 14px;animation:.18s cubic-bezier(.2,.9,.25,1.05) xboard-bar-in;position:fixed;top:0;left:0;right:0;box-shadow:0 8px 24px #00000040}.xboard-destbar.copy{border-bottom-color:var(--brand)}@keyframes xboard-bar-in{0%{opacity:0;transform:translateY(-100%)}to{opacity:1;transform:translateY(0)}}.xboard-destbar-inner{flex-wrap:wrap;align-items:center;gap:12px;max-width:1280px;margin:0 auto;display:flex}.xboard-destbar-label{color:var(--ink-secondary);letter-spacing:.02em;text-transform:uppercase;flex-shrink:0;font-size:12px;font-weight:600}.xboard-chip-row{flex-wrap:wrap;flex:1;gap:8px;display:flex}.xboard-chip{background:var(--bg-raised,#ffffff0a);border:1.5px solid var(--line);color:var(--ink);white-space:nowrap;-webkit-user-select:none;user-select:none;cursor:copy;pointer-events:auto;border-radius:999px;align-items:center;gap:6px;padding:7px 12px;font-size:12.5px;font-weight:500;transition:transform .14s cubic-bezier(.2,.9,.25,1.1),border-color .14s,background .14s,box-shadow .14s;display:inline-flex}.xboard-chip.current{opacity:.55;cursor:default}.xboard-chip.hover{border-color:var(--brand);background:color-mix(in oklab, var(--brand) 18%, var(--panel));box-shadow:0 6px 18px rgba(var(--brand-rgb), .35);transform:scale(1.04)}.xboard-chip.current.hover{border-color:var(--ink-secondary);background:var(--bg-raised,#ffffff0a);box-shadow:none}.xboard-chip-name{font-weight:600}.xboard-chip-hint{opacity:.85;border-left:1px solid;margin-left:4px;padding-left:8px;font-size:11px;font-weight:500}.xboard-chip-hint.muted{opacity:.55}.xboard-floater{z-index:6100;background:var(--panel);border:2px solid var(--brand);border-radius:var(--radius,12px);box-shadow:0 24px 56px #00000080, 0 0 0 4px color-mix(in oklab, var(--brand) 22%, transparent);pointer-events:none;transform-origin:0 0;opacity:.94;will-change:transform;flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:14px;transition:border-color .12s,box-shadow .12s;display:flex;position:fixed;top:0;left:0}.xboard-floater-copy{border-color:#22c55e;box-shadow:0 24px 56px #00000080,0 0 0 4px #22c55e40}.xboard-floater-label{letter-spacing:.04em;text-transform:uppercase;color:var(--brand);background:color-mix(in oklab, var(--brand) 16%, transparent);border-radius:999px;align-items:center;gap:5px;padding:3px 8px;font-size:11px;font-weight:700;display:inline-flex}.xboard-floater-copy .xboard-floater-label{color:#22c55e;background:#22c55e29}.xboard-floater-title{color:var(--ink);text-align:center;text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:13px;font-weight:600;overflow:hidden}.dashboard-widget.xboard-source{opacity:.35;filter:grayscale(40%)}.vtbl-feature-icon{background:var(--brand-dim);color:var(--brand);vertical-align:middle;border-radius:4px;justify-content:center;align-items:center;margin-left:4px;padding:2px;display:inline-flex}.vtbl-feature-icon.hist-flag{color:var(--muted);opacity:.4;background:0 0}.vtbl-feature-icon.hist-flag.on{background:var(--brand-dim);color:var(--brand);opacity:1}.varcard-feat.hist-flag{color:var(--muted);opacity:.4}.varcard-feat.hist-flag.on{color:var(--brand);opacity:1}.dashboard-widget{background:linear-gradient(135deg, var(--panel) 0%, color-mix(in srgb, var(--panel) 92%, var(--bg-raised) 8%) 100%);border:1px solid var(--line-light);transition:transform .12s,box-shadow .18s,border-color .18s;box-shadow:inset 0 1px #ffffff05,0 1px 2px #00000040}.dashboard-widget:not(.dragging):hover{border-color:var(--line-light);transform:translateY(-2px);box-shadow:0 8px 24px #00000052,inset 0 1px #ffffff0a}.dashboard-widget:before{opacity:.9;width:4px}.dashboard-widget.in-alarm:before{background:var(--danger);width:6px;animation:1.4s ease-in-out infinite widget-accent-pulse}@keyframes widget-accent-pulse{0%,to{opacity:.55}50%{opacity:1}}.widget-bn-header{flex-shrink:0;justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px;display:flex}.widget-bn-header .widget-bn-title{min-width:0;color:var(--ink);letter-spacing:.35px;text-transform:uppercase;flex:1;align-items:center;gap:6px;margin-bottom:0;font-size:11px;font-weight:600;display:flex}.widget-bn-header .widget-bn-title>span{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}.widget-bn-title-icon{color:var(--ink-secondary);flex-shrink:0}.widget-status-pill{flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.widget-status-pill-dot{background:currentColor;border-radius:50%;width:9px;height:9px}.widget-status-pill-live{color:#10b981}.widget-status-pill-live .widget-status-pill-dot{animation:1.4s ease-in-out infinite pill-live-blink;box-shadow:0 0}@keyframes pill-live-blink{0%,to{opacity:1;box-shadow:0 0 4px}50%{opacity:.3;box-shadow:0 0}}.widget-status-pill-stale,.widget-status-pill-no_data{color:#ef4444}.widget-status-pill-stale .widget-status-pill-dot,.widget-status-pill-no_data .widget-status-pill-dot{animation:1.4s ease-in-out infinite pill-dead-fade}@keyframes pill-dead-fade{0%,to{opacity:1;box-shadow:0 0 4px}50%{opacity:.25;box-shadow:0 0}}.widget-bn-value{letter-spacing:-.6px;font-size:clamp(28px,5.6vw,56px);font-weight:700;line-height:1.02}.widget-bn-unit{opacity:.8;font-size:clamp(12px,1.7vw,16px)}.widget-bn-spark{opacity:.55;margin-top:10px}.widget-status{flex-direction:column;display:flex}.widget-status-body{flex-direction:column;flex:1;justify-content:center;align-items:center;gap:8px;min-height:0;padding-top:4px;display:flex}.widget-status-chip{color:#fff;letter-spacing:.2px;text-shadow:0 1px 2px #0000002e;text-align:center;border-radius:999px;justify-content:center;align-items:center;max-width:100%;padding:8px 18px;font-size:clamp(13px,1.8vw,17px);font-weight:700;display:inline-flex}.widget-status-chip-text{text-overflow:ellipsis;white-space:nowrap;max-width:100%;display:inline-block;overflow:hidden}.widget-status-chip.pulsing{animation:1.4s ease-in-out infinite status-chip-pulse}@keyframes status-chip-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.04)}}.widget-status-value{font-variant-numeric:tabular-nums;color:var(--ink-secondary);font-size:clamp(12px,1.6vw,14px);font-weight:600}.widget-status-unit{opacity:.75;margin-left:2px}.widget-status-dotline{align-items:center;gap:clamp(6px,3cqw,12px);min-width:0;max-width:100%;display:inline-flex}.widget-status-dotline-dot{aspect-ratio:1;width:clamp(12px,9cqw,28px);box-shadow:0 0 0 3px color-mix(in srgb, var(--status-color) 22%, transparent);border-radius:50%;flex-shrink:0;transition:background .3s,box-shadow .3s}.widget-status-dotline-dot.pulsing{animation:1.5s ease-in-out infinite status-pulse}.widget-status-dotline-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:clamp(13px,7cqw,22px);font-weight:700;overflow:hidden}.widget-status-badge{border:1.5px solid;border-radius:12px;align-items:center;gap:clamp(5px,2.5cqw,10px);max-width:100%;padding:clamp(6px,3cqh,14px) clamp(10px,4cqw,22px);font-size:clamp(13px,6.5cqw,20px);font-weight:700;display:inline-flex}.widget-status-badge-dot{aspect-ratio:1;border-radius:50%;flex-shrink:0;width:clamp(8px,4cqw,14px)}.widget-status-badge-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.widget-status-badge.pulsing{animation:1.4s ease-in-out infinite status-chip-pulse}.widget-status-iconwrap{flex-direction:column;align-items:center;gap:clamp(5px,3cqh,12px);min-width:0;max-width:100%;display:flex}.widget-status-iconcircle{aspect-ratio:1;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:clamp(38px,26cqw,96px);transition:background .3s,box-shadow .3s,color .3s;display:inline-flex}.widget-status-iconcircle.pulsing{animation:1.5s ease-in-out infinite status-pulse}.widget-status-iconcircle svg{width:55%;height:55%}.widget-status-iconlabel{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:clamp(12px,6cqw,18px);font-weight:700;overflow:hidden}.vpick-series-type{border:1px solid var(--line);background:var(--bg-raised);color:var(--ink-secondary);cursor:pointer;border-radius:6px;margin-left:auto;padding:2px 4px;font-size:11px}.widget-chart-header{gap:6px;margin-bottom:4px}.widget-chart-header-top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.widget-chart-title{color:var(--ink);letter-spacing:.35px;text-transform:uppercase;white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-size:11px;font-weight:600;overflow:hidden}.widget-chart-range{background:var(--bg);border:1px solid var(--line);border-radius:999px;gap:1px;padding:2px;display:inline-flex}.widget-chart-range-chip{color:var(--ink-secondary);cursor:pointer;letter-spacing:.2px;background:0 0;border:none;border-radius:999px;padding:3px 9px;font-family:inherit;font-size:10.5px;font-weight:600;transition:background .12s,color .12s}.widget-chart-range-chip:hover{color:var(--ink);background:var(--bg-raised)}.widget-chart-range-chip.active{background:var(--brand);color:#fff}.widget-chart-range-reset{background:var(--warn-dim);color:var(--warn)}.widget-chart-range-reset:hover{color:var(--warn);background:#f59e0b38}.widget-chart-range-info{letter-spacing:.2px;font-size:10.5px}.widget-chart-custom-range{background:var(--bg-raised);border:1px solid var(--line);border-radius:8px;align-items:flex-end;gap:8px;padding:6px 8px;font-size:11px;display:flex}.widget-chart-custom-range label{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.widget-chart-custom-range label>span{color:var(--ink-secondary);text-transform:uppercase;letter-spacing:.3px;font-size:9.5px;font-weight:600}.widget-chart-custom-range input[type=date]{background:var(--bg);border:1px solid var(--line);color:var(--ink);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;border-radius:6px;width:100%;min-width:0;padding:4px 6px;font-family:inherit;font-size:11px}.widget-chart-custom-apply{background:var(--brand);color:#fff;cursor:pointer;border:none;border-radius:6px;flex-shrink:0;padding:6px 10px;font-family:inherit;font-size:11px;font-weight:600}.widget-chart-custom-apply:hover{background:var(--brand-strong)}.widget-chart-svg.grab{cursor:crosshair}.widget-chart-svg.grabbing{cursor:grabbing}.widget-chart-reset-zoom{background:var(--bg-raised);border:1px solid var(--line-light);color:var(--ink);cursor:pointer;z-index:2;letter-spacing:.2px;border-radius:999px;align-items:center;gap:3px;padding:3px 8px;font-family:inherit;font-size:10px;font-weight:600;display:inline-flex;position:absolute;top:6px;right:6px;box-shadow:0 2px 8px #00000052}.widget-chart-reset-zoom:hover{background:var(--brand-dim);color:var(--brand);border-color:var(--brand)}.widget-chart-tooltip{background:linear-gradient(180deg, color-mix(in srgb, var(--bg-raised) 95%, var(--panel) 5%), var(--bg));border:1px solid var(--line-light);border-radius:8px;min-width:160px;max-width:340px;padding:7px 9px;top:8px;box-shadow:0 10px 30px #00000080,inset 0 0 0 1px #ffffff0a}.widget-chart-tooltip-time{letter-spacing:.4px;font-size:9.5px}.widget-chart-tooltip-row{align-items:flex-start;gap:8px}.widget-chart-tooltip-row strong{font-variant-numeric:tabular-nums;white-space:nowrap;flex-shrink:0;font-size:11.5px}.widget-gauge .widget-bn-header{margin-bottom:0}.widget-sp-title{color:var(--ink);align-items:center;gap:5px;display:flex}.widget-sp-title-icon{color:var(--ink-secondary);flex-shrink:0}@media (prefers-color-scheme:dark),screen{.widget-bn-title,.widget-sp-title,.widget-chart-title{color:var(--ink)}}@media (max-width:480px){.widget-chart-range{scrollbar-width:none;flex-wrap:nowrap;max-width:100%;overflow-x:auto}.widget-chart-range::-webkit-scrollbar{display:none}.widget-chart-custom-range{flex-wrap:wrap}.widget-chart-title{flex-basis:100%;order:-1;margin-bottom:2px}}.chat-context-chips{flex-wrap:wrap;gap:6px;margin-bottom:8px;display:flex}.context-chip-wrap{position:relative}.context-chip{border:1px solid var(--line-light);background:var(--bg-raised);color:var(--muted);cursor:pointer;border-radius:16px;align-items:center;gap:5px;padding:4px 10px;font-size:11px;transition:border-color .12s,color .12s,background .12s;display:inline-flex}.context-chip:hover:not(:disabled){border-color:var(--brand);color:var(--ink)}.context-chip:disabled{opacity:.5;cursor:default}.context-chip .chip-label{color:var(--muted);font-weight:500}.context-chip strong{color:var(--ink);font-weight:600}.context-chip.on{border-color:var(--brand);background:var(--brand-dim);color:var(--brand-strong)}.context-menu{background:var(--panel);border:1px solid var(--line);z-index:60;border-radius:8px;min-width:160px;max-height:240px;padding:4px;position:absolute;bottom:calc(100% + 4px);left:0;overflow-y:auto;box-shadow:0 8px 24px #0000002e}.context-menu-item{text-align:left;width:100%;color:var(--ink);cursor:pointer;background:0 0;border:0;border-radius:4px;padding:6px 10px;font-size:12px;display:block}.context-menu-item:hover{background:var(--bg-raised)}.context-menu-item.active{background:var(--brand-dim);color:var(--brand-strong)}.chat-quick{margin-bottom:8px}.quick-bar{align-items:flex-start;gap:6px;min-width:0;max-width:100%;margin-bottom:8px;display:flex}.quick-scroller{scrollbar-width:none;-webkit-overflow-scrolling:touch;flex-wrap:nowrap;flex:1;gap:6px;min-width:0;padding-bottom:2px;display:flex;overflow:auto hidden}.quick-scroller::-webkit-scrollbar{display:none}.quick-scroller .quick.chat-quick{display:contents}.quick-scroller.expanded{flex-wrap:wrap;overflow:visible}.quick-scroller.collapsed{flex-wrap:nowrap;overflow:auto hidden;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 20px),#0000 100%);mask-image:linear-gradient(90deg,#000 calc(100% - 20px),#0000 100%)}.quick-label{color:var(--ink-secondary);white-space:nowrap;flex-shrink:0;align-self:center;font-size:12px;font-weight:600}.quick-toggle{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg-raised);min-width:30px;height:30px;color:var(--ink-secondary);cursor:pointer;flex-shrink:0;justify-content:center;align-items:center;gap:2px;padding:0 6px;transition:color .15s,border-color .15s;display:inline-flex}.quick-more{font-size:11px;font-weight:700;line-height:1}.quick-toggle:hover{color:var(--ink);border-color:var(--line-light)}.quick-chip{border:1px solid var(--line-light);background:var(--bg-raised);color:var(--ink-secondary);cursor:pointer;text-overflow:ellipsis;white-space:nowrap;border-radius:16px;flex-shrink:0;align-items:center;gap:5px;max-width:220px;padding:4px 10px;font-size:12px;transition:border-color .12s,background .12s;display:inline-flex;overflow:hidden}@media (max-width:480px){.quick-chip{max-width:160px}}.quick-chip>svg{flex-shrink:0}.quick-chip:hover:not(:disabled){border-color:var(--brand);background:var(--brand-dim);color:var(--brand-strong)}.quick-chip:disabled{opacity:.4;cursor:not-allowed}.quick-chip.quick-alarm{color:#ef4444;background:#ef444414;border-color:#ef4444;animation:1.6s ease-in-out infinite quick-alarm-glow}.quick-chip.quick-alarm:hover:not(:disabled){color:#ef4444;background:#ef444426}.quick-chip.quick-alarm svg{color:#ef4444;animation:1.1s ease-in-out infinite quick-alarm-blink}@keyframes quick-alarm-blink{0%,to{opacity:1;transform:scale(1)}50%{opacity:.3;transform:scale(1.15)}}@keyframes quick-alarm-glow{0%,to{box-shadow:0 0 #ef444400}50%{box-shadow:0 0 8px #ef444473}}.quick-chip.quick-fav{color:#eab308;border-color:#eab308}.chat-form{align-items:center;gap:10px;display:flex}.chat-selected-vars{flex-wrap:wrap;gap:6px;margin:0 0 7px;display:flex}.chat-selected-var{color:#93c5fd;background:#3b82f624;border:1px solid #3b82f673;border-radius:999px;align-items:center;gap:5px;max-width:100%;padding:4px 9px;font-size:12px;font-weight:700;line-height:1.2;display:inline-flex}.chat-selected-var span{overflow-wrap:anywhere;min-width:0}.chat-selected-var small{color:#bfdbfeb8;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:11px;font-weight:600;overflow:hidden}.chat-input-wrap{flex:1;min-width:0;position:relative}.chat-input-wrap input{border:1px solid var(--line-light);border-radius:var(--radius);background:var(--bg-raised);z-index:1;width:100%;height:46px;padding:0 14px;font-size:14px;transition:border-color .2s,box-shadow .2s;position:relative}.chat-input-wrap input:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-dim);outline:none}.chat-input-wrap input:disabled{opacity:.5}.chat-input-wrap:before{content:"";border-radius:calc(var(--radius) + 2px);background:linear-gradient(120deg, var(--ai-grad-1) 0%, var(--ai-grad-2) 38%, var(--ai-grad-3) 70%, var(--ai-grad-4) 100%);-webkit-mask-composite:xor;opacity:0;pointer-events:none;z-index:0;padding:1px;transition:opacity .35s;position:absolute;inset:-2px;-webkit-mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);-webkit-mask-position:0 0,0 0;mask-position:0 0,0 0;-webkit-mask-size:auto,auto;mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.chat-input-wrap:after{content:"";border-radius:calc(var(--radius) + 1px);box-shadow:0 0 0 0 var(--brand-dim);opacity:0;pointer-events:none;z-index:0;transition:opacity .35s;position:absolute;inset:-1px}.chat-input-wrap.ai-idle:before{animation:3.6s ease-in-out infinite chat-ai-ring}.chat-input-wrap.ai-idle:after{box-shadow:0 0 14px 1px var(--brand-dim);animation:3.6s ease-in-out infinite chat-ai-glow}@keyframes chat-ai-ring{0%,to{opacity:.35}50%{opacity:.85}}@keyframes chat-ai-glow{0%,to{opacity:.25}50%{opacity:.6}}.chat-ph-anim{pointer-events:none;z-index:2;align-items:center;height:46px;font-size:14px;display:flex;position:absolute;top:0;left:15px;right:44px;overflow:hidden}.chat-ph-anim-text{white-space:nowrap;text-overflow:ellipsis;max-width:100%;color:var(--muted);align-items:baseline;display:inline-flex;overflow:hidden}@supports ((-webkit-background-clip:text) or (background-clip:text)){.chat-ph-anim-text{background-color:var(--muted);background-image:linear-gradient(100deg, var(--muted) 0%, var(--muted) 30%, var(--ai-grad-1) 40%, var(--ai-grad-2) 48%, var(--ai-grad-3) 56%, var(--ai-grad-4) 64%, var(--muted) 74%, var(--muted) 100%);-webkit-text-fill-color:transparent;background-repeat:no-repeat;background-size:220% 100%;-webkit-background-clip:text;background-clip:text;animation:4.5s ease-in-out infinite chat-ph-shimmer}}.chat-ph-caret{background:var(--ai-grad-1);opacity:.7;align-self:center;width:1px;height:15px;margin-left:1px;animation:1s step-end infinite chat-ph-blink;display:inline-block}@keyframes chat-ph-shimmer{0%{background-position:130% 0}to{background-position:-30% 0}}@keyframes chat-ph-blink{0%,to{opacity:.7}50%{opacity:0}}@media (prefers-reduced-motion:reduce){.chat-ph-anim-text{-webkit-text-fill-color:var(--muted);color:var(--muted);background-image:none;animation:none}.chat-ph-caret{opacity:0;animation:none}.chat-input-wrap.ai-idle:before{opacity:.5;animation:none}.chat-input-wrap.ai-idle:after{opacity:.3;animation:none}}.chat-suggest{background:var(--panel);border:1px solid var(--line);z-index:55;border-radius:8px;max-height:280px;padding:4px;position:absolute;bottom:calc(100% + 6px);left:0;right:0;overflow-y:auto;box-shadow:0 -8px 24px #0000002e}.chat-suggest-section{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);align-items:center;gap:4px;padding:4px 8px 2px;font-size:10px;display:flex}.chat-suggest-row{text-align:left;width:100%;color:var(--ink);cursor:pointer;background:0 0;border:0;border-radius:6px;align-items:flex-start;gap:8px;padding:7px 10px;font-size:13px;display:flex}.chat-suggest-row.active,.chat-suggest-row:hover{background:var(--brand-dim);color:var(--brand-strong)}.suggest-label{white-space:normal;overflow-wrap:anywhere;flex:auto;min-width:0;font-weight:600;line-height:1.25}.suggest-meta{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;flex:0 auto;max-width:42%;font-size:11px;overflow:hidden}.suggest-value{white-space:nowrap;font-size:12px;font-weight:600}.suggest-kind{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);background:var(--brand-dim);border-radius:4px;flex:none;align-self:center;padding:1px 5px;font-size:9px;font-weight:700}.chat-suggest-row.active .suggest-kind,.chat-suggest-row:hover .suggest-kind{color:var(--brand-strong)}.chat-suggest-loading{color:var(--muted);align-items:center;gap:6px;padding:8px 10px;font-size:12px;display:flex}.mic-button{border-radius:var(--radius);border:1px solid var(--line-light);background:var(--bg-raised);width:42px;height:46px;color:var(--muted);cursor:pointer;flex-shrink:0;place-items:center;transition:color .12s,border-color .12s,background .12s;display:grid;position:relative}.mic-button:hover:not(:disabled){border-color:var(--brand);color:var(--brand-strong)}.mic-button.listening{color:#ef4444;background:#ef44441a;border-color:#ef4444}.mic-pulse{background:#ef4444;border-radius:50%;width:8px;height:8px;animation:1s ease-in-out infinite micPulse;position:absolute;top:6px;right:6px}@keyframes micPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.4)}}.ai-alarm-button{border-radius:var(--radius);color:#c084fc;cursor:pointer;background:#a855f71a;border:1px solid #a855f773;flex-shrink:0;place-items:center;width:42px;height:46px;transition:color .12s,border-color .12s,background .12s;display:grid;position:relative}.ai-alarm-button:hover:not(:disabled){color:#d8b4fe;background:#a855f72e;border-color:#a855f7}.ai-alarm-button:disabled{opacity:.5;cursor:default}.aicop-overlay{z-index:1000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);padding:16px;padding-bottom:max(16px, env(safe-area-inset-bottom));background:#0206129e;place-items:center;display:grid;position:fixed;inset:0}.aicop-modal{width:min(440px,100%);max-height:min(var(--vvh,86dvh), 720px);background:var(--panel);border:1px solid var(--line-light);border-radius:16px;flex-direction:column;display:flex;overflow-y:auto;box-shadow:0 24px 60px #00000080}.aicop-modal-wide{width:min(720px,100%);max-height:min(var(--vvh,92dvh), 860px)}.aicop-scene-preview{aspect-ratio:6/5;border:1px solid var(--line-light);background:linear-gradient(#ffffff05,#ffffff05),repeating-linear-gradient(45deg,#ffffff04 0 10px,#0000 10px 20px);border-radius:12px;justify-content:center;align-items:center;width:100%;max-height:420px;margin:8px 0 12px;display:flex;overflow:hidden}.add-widget-card-ai{border-color:color-mix(in srgb, var(--accent,#3b82f6) 45%, var(--line-light))}.add-widget-card-ai:hover{border-color:var(--accent,#3b82f6)}.add-widget-demo-ai{color:#d8b4fe;justify-content:center;align-items:center;display:flex}.aicop-widget-list{flex-direction:column;gap:6px;max-height:280px;margin:4px 0 12px;padding:0;list-style:none;display:flex;overflow-y:auto}.aicop-widget-item{border:1px solid var(--line-light);background:#ffffff08;border-radius:8px;align-items:center;gap:10px;padding:8px 10px;display:flex}.aicop-widget-type{color:#d8b4fe;min-width:84px;font-size:.82rem;font-weight:600}.aicop-widget-vars{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:.82rem;overflow:hidden}.aicop-rule-card{border:1px solid var(--line-light);background:#ffffff08;border-radius:12px;margin:4px 0 12px;padding:12px 14px}.aicop-rule-head{align-items:center;gap:8px;margin-bottom:6px;display:flex}.aicop-rule-name{font-size:.95rem;font-weight:700}.aicop-rule-vars{color:var(--muted);margin-bottom:6px;font-size:.82rem}.aicop-rule-preview{background:rgba(var(--brand-rgb),.1);border:1px solid rgba(var(--brand-rgb),.25);color:#bfdbfe;border-radius:8px;margin-top:8px;padding:7px 10px;font-size:.8rem}.aicop-trigger-btn{color:#d8b4fe;border-color:color-mix(in srgb, #d8b4fe 40%, var(--line))}.aicop-confidence{border-radius:999px;align-items:center;gap:4px;margin-left:auto;padding:2px 8px;font-size:11px;font-weight:700;display:inline-flex}.aicop-confidence-high{color:#86efac;background:#22c55e26}.aicop-confidence-medium{color:#fde68a;background:#eab30826}.aicop-confidence-needs-review{color:#fca5a5;background:#ef444426}[data-mode=light] .aicop-confidence-high{color:#15803d}[data-mode=light] .aicop-confidence-medium{color:#854d0e}[data-mode=light] .aicop-confidence-needs-review{color:#b91c1c}.aicop-reasoning{border-top:1px dashed var(--line-light);margin-top:10px;padding-top:10px}.aicop-reasoning-label{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin-bottom:3px;font-size:11px;font-weight:700}.aicop-reasoning p{color:var(--text);margin:0;font-size:13px;line-height:1.45}.aicop-details{margin-top:10px}.aicop-details summary{cursor:pointer;color:var(--muted);font-size:12px;font-weight:700;list-style:none}.aicop-details summary::-webkit-details-marker{display:none}.aicop-details ul{flex-direction:column;gap:4px;margin:6px 0 0;padding-left:18px;display:flex}.aicop-details li{color:var(--ink-secondary,var(--muted));font-size:12.5px;line-height:1.4}.aicop-warnings{flex-direction:column;gap:6px;margin-top:10px;display:flex}.aicop-warning-row{color:#fde68a;background:#eab3081a;border:1px solid #eab30859;border-radius:8px;align-items:flex-start;gap:7px;padding:6px 9px;font-size:12.5px;line-height:1.4;display:flex}.aicop-warning-row svg{color:#eab308;flex-shrink:0;margin-top:1px}[data-mode=light] .aicop-warning-row{color:#854d0e}.widget-scene{justify-content:center;align-items:center;width:100%;height:100%;display:flex}.widget-scene svg{width:100%;max-width:100%;height:100%;max-height:100%;display:block}.aicop-head{border-bottom:1px solid var(--line-light);justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.aicop-title{color:#d8b4fe;align-items:center;gap:8px;font-weight:600;display:inline-flex}.aicop-close{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:8px;place-items:center;padding:8px;display:grid}.aicop-close:hover{color:var(--text);background:var(--bg-raised)}.aicop-tabs{border-bottom:1px solid var(--line-light);gap:4px;padding:8px 12px 0;display:flex}.aicop-tab{color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;flex:1;padding:8px 6px 10px;font-size:13.5px;font-weight:600}.aicop-tab.active{color:#d8b4fe;border-bottom-color:#a855f7}.aicop-body{padding:16px}.aicop-help{color:var(--muted);margin:0 0 12px;font-size:13px;line-height:1.45}.aicop-form{flex-direction:column;gap:12px;display:flex}.aicop-input{resize:vertical;border:1px solid var(--line-light);background:var(--bg-raised);width:100%;color:var(--text);font:inherit;border-radius:12px;padding:11px 12px;font-size:16px;line-height:1.4}.aicop-input:focus{border-color:#a855f7;outline:none;box-shadow:0 0 0 3px #a855f726}.aicop-examples{flex-direction:column;gap:6px;display:flex}.aicop-example{text-align:left;border:1px dashed var(--line-light);min-height:40px;color:var(--muted);cursor:pointer;background:0 0;border-radius:9px;align-items:center;padding:7px 10px;font-size:12.5px;transition:color .12s,border-color .12s;display:flex}.aicop-example:hover{color:var(--text);border-color:#a855f7}.aicop-loader{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;min-height:220px;padding:26px 16px 22px;display:flex}.aicop-loader-morph{filter:drop-shadow(0 4px 14px rgba(var(--brand-rgb),.16))}.aicop-shape{transform-box:fill-box;transform-origin:50%;opacity:0;animation:12s ease-in-out infinite aicop-shape-cycle}.aicop-shape-1{animation-delay:3s}.aicop-shape-2{animation-delay:6s}.aicop-shape-3{animation-delay:9s}@keyframes aicop-shape-cycle{0%,4%{opacity:0;transform:scale(.6)}11%{opacity:1;transform:scale(1)}19%{opacity:1;transform:scale(1.03)}25%{opacity:0;transform:scale(1.2)}to{opacity:0;transform:scale(.6)}}.aicop-gearspin{transform-box:fill-box;transform-origin:50%;animation:5s linear infinite aicop-gearspin}@keyframes aicop-gearspin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.aicop-shape,.aicop-gearspin{animation-duration:1ms}}.aicop-loader-msg{color:var(--text);letter-spacing:.1px;font-size:14.5px;font-weight:600;animation:.45s aicop-msg-in}@keyframes aicop-msg-in{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}.aicop-loader-sub{color:var(--muted);max-width:300px;font-size:12px;line-height:1.45}.aicop-clarify{color:#fde68a;background:#eab3081a;border:1px solid #eab30866;border-radius:10px;align-items:flex-start;gap:8px;padding:9px 11px;font-size:13px;line-height:1.4;display:flex}.aicop-error{color:#fca5a5;background:#ef44441a;border:1px solid #ef444466;border-radius:10px;padding:9px 11px;font-size:13px}[data-mode=light] .aicop-clarify{color:#854d0e;background:#eab3081f}[data-mode=light] .aicop-error{color:#b91c1c;background:#ef44441a}.aicop-pending{background:#eab3081a;border:1px solid #eab30866;border-radius:10px;flex-direction:column;gap:6px;padding:9px 11px;display:flex}.aicop-pending-head{color:#fde68a;align-items:center;gap:8px;font-size:13px;font-weight:600;display:flex}.aicop-pending-field{color:var(--text);align-items:baseline;gap:8px;padding-left:22px;font-size:13px;display:flex}.aicop-pending-q{line-height:1.4}.aicop-pending-risk{color:#fca5a5;background:#ef444426;border-radius:999px;flex-shrink:0;padding:1px 8px;font-size:11px;font-weight:600}[data-mode=light] .aicop-pending{background:#eab3081f}[data-mode=light] .aicop-pending-head{color:#854d0e}.aicop-assumptions{border:1px solid var(--line-light);background:var(--bg-raised);border-radius:11px;padding:8px 11px 10px}.aicop-assumptions ul{flex-direction:column;gap:4px;margin:4px 0 0;padding-left:18px;display:flex}.aicop-assumptions li{color:var(--text);font-size:13px;line-height:1.4}.aicop-risk{border-radius:999px;padding:2px 9px;font-size:12px;font-weight:600}.aicop-risk-low{color:#86efac;background:#22c55e26}.aicop-risk-medium{color:#fde68a;background:#eab30826}.aicop-risk-high{color:#fca5a5;background:#ef444426}.aicop-btn-primary{color:#fff;cursor:pointer;background:linear-gradient(135deg,#a855f7,#7c3aed);border:none;border-radius:11px;justify-content:center;align-items:center;gap:7px;padding:11px 16px;font-size:14.5px;font-weight:600;display:inline-flex}.aicop-btn-primary:disabled{opacity:.55;cursor:default}.aicop-btn-ghost{background:var(--bg-raised);color:var(--text);border:1px solid var(--line-light);cursor:pointer;border-radius:11px;justify-content:center;align-items:center;gap:6px;padding:11px 14px;font-size:14px;font-weight:500;display:inline-flex}.aicop-draft{flex-direction:column;gap:12px;display:flex}.aicop-card{border:1px solid var(--line-light);background:var(--bg-raised);border-radius:12px;flex-direction:column;gap:9px;padding:12px 14px;display:flex}.aicop-card-row{align-items:baseline;gap:12px;display:flex}.aicop-card-k{color:var(--muted);flex-shrink:0;min-width:78px;font-size:12px}.aicop-card-v{color:var(--text);font-size:14.5px}.aicop-card-v strong{font-size:16px}.aicop-msg{color:var(--text);font-size:13.5px;line-height:1.4}.aicop-sev{border-radius:999px;padding:2px 9px;font-size:12px;font-weight:600}.aicop-sev.severity-critical{color:#fca5a5;background:#ef444426}.aicop-sev.severity-warning{color:#fde68a;background:#eab30826}.aicop-sev.severity-info{color:#93c5fd;background:#3b82f626}.aicop-actions{flex-wrap:wrap;gap:10px;display:flex}.aicop-actions .aicop-btn-ghost{flex:none}.aicop-actions .aicop-btn-primary{flex:1}.aicop-anchor{color:#d8b4fe;background:#a855f71f;border:1px solid #a855f766;border-radius:999px;align-self:flex-start;align-items:center;gap:7px;padding:5px 10px;font-size:13px;display:inline-flex}.aicop-anchor-k{color:var(--muted);font-size:11.5px}.aicop-anchor-v{font-weight:600}.aicop-anchor button{color:#d8b4fe;cursor:pointer;background:0 0;border:none;place-items:center;margin-left:2px;padding:0;display:grid}.aicop-suggest{border:1px solid var(--line-light);background:var(--bg-raised);border-radius:11px;max-height:240px;overflow:hidden auto}.aicop-suggest-head{color:var(--muted);padding:8px 11px 4px;font-size:11.5px}.aicop-suggest-row{border:none;border-top:1px solid var(--line-light);width:100%;color:var(--text);cursor:pointer;text-align:left;background:0 0;align-items:center;gap:8px;min-height:40px;padding:9px 11px;font-size:13.5px;display:flex}.aicop-suggest-row:hover{background:#a855f71a}.aicop-suggest-name{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;font-weight:500;overflow:hidden}.aicop-suggest-machine{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.aicop-suggest-val{color:var(--brand-strong);flex-shrink:0;margin-left:auto;font-size:12.5px}.aicop-select{background:var(--panel);min-width:0;color:var(--text);font:inherit;border:1px solid #a855f773;border-radius:9px;flex:1;max-width:100%;padding:7px 9px;font-size:14px}.aicop-select:focus{border-color:#a855f7;outline:none}.var-detail-header{align-items:center;gap:6px;margin-bottom:6px;display:flex}.status-pill{text-transform:uppercase;letter-spacing:.04em;background:var(--line);color:var(--muted);border-radius:10px;margin-left:auto;padding:2px 8px;font-size:10px;font-weight:700}.status-pill.ok{background:var(--ok-dim);color:var(--ok)}.status-pill.warn{color:#f59e0b;background:#f59e0b2e}.status-pill.muted{background:var(--line);color:var(--muted)}.var-big-value{align-items:baseline;gap:8px;margin:6px 0 8px;display:flex}.var-big-value .big{font-size:30px;font-weight:700;line-height:1}.var-big-value .big-unit{color:var(--muted);font-size:14px}.var-big-value .big-threshold{text-transform:uppercase;margin-left:auto;font-size:11px;font-weight:700}.threshold-bar{margin:6px 0 10px;position:relative}.threshold-track{background:var(--line);border-radius:3px;height:6px;position:relative;overflow:hidden}.threshold-seg{opacity:.7;position:absolute;top:0;bottom:0}.threshold-indicator{background:var(--ink);width:2px;height:12px;position:absolute;top:-3px;transform:translate(-1px)}.threshold-labels{color:var(--muted);justify-content:space-between;margin-top:2px;font-size:10px;display:flex}.chat-sparkline.empty{color:var(--muted);text-align:center;background:var(--bg);border-radius:var(--radius-sm);padding:12px 0;font-size:11px}.chat-inline-chart-host{height:320px;margin:4px 0 6px;position:relative}.chat-inline-chart-host .widget-chart-title,.chat-inline-chart-host .widget-chart-legend,.chat-inline-chart-host .widget-chart-stats-below,.chat-inline-chart-host .widget-chart-stats-wrap{display:none}.chat-inline-chart-host .widget-chart-readout-below{z-index:2;background:var(--panel,#14181ceb);border:1px solid var(--line,#ffffff14);-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:none;margin:6px 0 0;position:static}.chat-inline-chart-host .widget-chart-readout-hint{font-size:10px}@media (max-width:600px){.chat-inline-chart-host{height:360px;overflow:visible}.chat-inline-chart-host .widget-chart-svg-wrap{min-height:220px}.chat-inline-chart-host .chart-events-bar{flex-wrap:wrap;row-gap:4px}.chat-inline-chart-host .chart-daterange{margin-left:0}.chat-inline-chart-host{height:auto}.chat-inline-chart-host .widget-chart-svg-wrap{height:220px}.chat-inline-chart-host .widget-chart-svg-wrap>svg{width:100%;height:100%;position:absolute;inset:0}.chat-inline-chart-host .widget-chart-readout-below.is-idle{gap:0;padding:3px 8px}.chat-inline-chart-host .widget-chart-readout-below.is-idle .widget-chart-readout-chip{display:none}.chat-inline-chart-host .widget-chart-readout-below{-webkit-backdrop-filter:none;box-shadow:none}}.var-actions{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.var-action{border:1px solid var(--line-light);background:var(--bg-raised);width:30px;height:30px;color:var(--ink-secondary);cursor:pointer;border-radius:10px;justify-content:center;align-items:center;gap:5px;padding:0;font-size:11px;font-weight:600;transition:border-color .12s,background .12s,color .12s;display:inline-flex}.var-action-label{display:none}.csv-export-row{margin-top:4px}.var-action:hover:not(:disabled){border-color:var(--brand);background:var(--brand-dim);color:var(--brand-strong)}.var-action.active{color:#eab308;background:#eab3081f;border-color:#eab308}.var-action:disabled{opacity:.4;cursor:not-allowed}.matches-list{gap:6px;display:grid}.match-row{background:var(--bg);border-radius:var(--radius-sm);color:var(--ink);cursor:pointer;text-align:left;border:0;justify-content:space-between;align-items:center;gap:10px;padding:8px 10px;transition:background .12s;display:flex}.match-row:hover{background:var(--brand-dim)}.match-name{align-items:center;gap:6px;display:flex}.status-var.clickable{cursor:pointer;text-align:left;border:0;width:100%}.status-var.clickable:hover{filter:brightness(1.08)}.summary-chip.clickable{cursor:pointer;border:0}.summary-chip.clickable:hover{background:var(--brand-dim)}.tx-dot{border-radius:50%;width:6px;height:6px;margin-left:6px;display:inline-block}.tx-stale{background:#f59e0b}.tx-no_data{background:var(--muted)}.tx-off{background:var(--muted);opacity:.5}.tx-stagnant{box-sizing:border-box;background:0 0;border:1.5px solid #f97316;animation:2.4s ease-in-out infinite vtblTxStagnant}.var-stagnant-ago{color:#f97316}.compare-chart{background:var(--bg);border-radius:var(--radius-sm);width:100%;height:120px;margin:4px 0}.compare-legend{flex-wrap:wrap;gap:12px;margin-top:4px;font-size:12px;display:flex}.compare-legend-item{align-items:center;gap:6px;display:inline-flex}.compare-dot{border-radius:50%;width:10px;height:10px;display:inline-block}.help-list{gap:4px;display:grid}.help-row{border-bottom:1px solid var(--line);gap:8px;padding:4px 0;font-size:12px;display:flex}.help-row:last-child{border-bottom:0}.help-row code{color:var(--brand-strong);background:var(--brand-dim);white-space:nowrap;border-radius:4px;flex-shrink:0;padding:1px 6px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px}.help-row span{color:var(--ink-secondary)}.admin-review-view{flex-direction:column;gap:8px;padding:8px 0;display:flex}.admin-review-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.admin-review-title{min-width:0}.admin-review-title h2{overflow-wrap:anywhere}.admin-review-title{align-items:center;gap:8px;display:flex}.admin-review-title h2{margin:0;font-size:18px}.admin-review-filters{flex-wrap:wrap;gap:8px;display:flex}.admin-review-filters select{background:var(--panel);border:1px solid var(--border);color:var(--ink);border-radius:6px;padding:6px 10px;font-size:13px}.admin-review-actions{flex-wrap:wrap;gap:8px;margin-bottom:8px;display:flex}.action-button-danger{color:#fff;cursor:pointer;background:#b91c1c;border:none;border-radius:6px;align-items:center;gap:6px;padding:7px 12px;font-size:13px;font-weight:500;transition:background .15s;display:inline-flex}.action-button-danger:hover:not(:disabled){background:#991b1b}.action-button-danger:disabled{opacity:.5;cursor:not-allowed}.admin-review-table{border-collapse:collapse;background:var(--panel);border:1px solid var(--border);border-radius:8px;width:100%;font-size:13px;overflow:hidden}.admin-review-table th,.admin-review-table td{text-align:left;border-bottom:1px solid var(--border);padding:9px 12px}.admin-review-table th{color:var(--ink-secondary);text-transform:uppercase;letter-spacing:.5px;background:#00000026;font-size:11px;font-weight:600}.admin-review-table tr.is-selected{background:#7c3aed14}.admin-review-table tr:hover:not(.is-selected){background:#ffffff08}.admin-review-table code{background:#0003;border-radius:3px;padding:1px 4px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.admin-review-table tr.is-clickable{cursor:pointer;-webkit-user-select:none;user-select:none}.admin-review-table tr.is-clickable:hover:not(.is-selected){background:#ffffff0a}.tier-badge{text-transform:uppercase;letter-spacing:.4px;color:var(--ink-secondary);background:#ffffff14;border-radius:4px;padding:2px 6px;font-size:10px;font-weight:600;display:inline-block}.tier-badge.tier-premium{color:#4ade80;background:#22c55e26}.tier-badge.tier-transformer{color:#60a5fa;background:#3b82f626}.tier-badge.tier-raw{color:#94a3b8;background:#94a3b826}.tier-badge.tier-output{color:#facc15;background:#eab30826}.tier-badge.tier-manual{color:#a78bfa;background:#7c3aed26}.json-frame-badge{color:#38bdf8;background:#0ea5e926;border-radius:4px;align-items:center;gap:4px;margin-top:3px;padding:2px 6px;font-size:10px;font-weight:600;display:inline-flex}.json-frame-badge code{color:inherit;background:0 0;padding:0;font-size:10px}.admin-review-search{align-items:center;min-width:260px;display:flex;position:relative}.admin-review-search-icon{color:var(--ink-secondary);pointer-events:none;position:absolute;left:10px}.admin-review-search input{background:var(--panel);border:1px solid var(--border);width:100%;color:var(--ink);border-radius:6px;padding:6px 30px;font-size:13px}.admin-review-search input:focus{border-color:var(--brand);outline:none}.admin-review-search-clear{color:var(--ink-secondary);cursor:pointer;background:#ffffff14;border:none;border-radius:4px;align-items:center;padding:3px;display:inline-flex;position:absolute;right:6px}.admin-review-search-clear:hover{color:var(--ink);background:#ffffff29}.admin-review-tabs{border-bottom:1px solid var(--border);-webkit-overflow-scrolling:touch;gap:4px;margin-bottom:8px;display:flex;overflow-x:auto}.admin-review-tabs button{white-space:nowrap;color:var(--ink-secondary);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;flex-shrink:0;align-items:center;gap:6px;padding:8px 14px;font-size:13px;transition:color .15s,border-color .15s;display:inline-flex}.admin-review-tabs button:hover{color:var(--ink)}.admin-review-tabs button.active{color:var(--brand);border-bottom-color:var(--brand)}@media (min-width:761px){html,body{overflow:hidden}.app-shell{--shell-h:calc(100dvh - env(safe-area-inset-bottom));height:var(--shell-h);margin-top:env(safe-area-inset-top);min-height:0;overflow:hidden}.app-shell>.topbar,.app-shell .chat-main>.topbar{padding-top:14px}.sidebar{height:var(--shell-h,100dvh);overscroll-behavior:contain;overflow-y:auto}.app-shell>.sidebar{padding-top:20px}.chat-main{height:var(--shell-h,100dvh);min-height:0;overflow:hidden}html.kb-open .app-shell{--shell-h:var(--vvh,100dvh)}.chat-main>.chat-pane{min-height:0;overflow:hidden}.chat-pane>.messages,.chat-main>.tab-content{overscroll-behavior:contain;min-height:0;overflow-y:auto}.topbar{z-index:5;position:sticky;top:0}.superadmin-dashboard{height:100dvh;min-height:0;overflow:hidden}.superadmin-sidebar{overscroll-behavior:contain;height:100dvh;overflow-y:auto}.superadmin-main{flex-direction:column;height:100dvh;min-height:0;display:flex;overflow:hidden}.superadmin-content{overscroll-behavior:contain;flex:1;min-height:0;overflow-y:auto}.superadmin-topbar{z-index:5;position:sticky;top:0}.app-shell.with-viewing-banner{--shell-h:calc(var(--vvh,100dvh) - var(--view-banner-h));margin-top:var(--view-banner-h)}.vtbl-scroll{max-height:calc(var(--vvh,100dvh) - 200px)}}.vtbl-table{width:100%;min-width:0!important}.vtbl-col-status{width:var(--vtbl-w-status,auto)!important;flex:var(--vtbl-f-status,0 1 130px)!important;min-width:var(--vtbl-mw-status,110px)!important}.vtbl-col-name{width:var(--vtbl-w-name,auto)!important;flex:var(--vtbl-f-name,1 1 220px)!important;min-width:var(--vtbl-mw-name,180px)!important}.vtbl-col-field,.vtbl-col-system,.vtbl-col-line,.vtbl-col-machine,.vtbl-col-component{width:var(--vtbl-w-field,auto)!important;flex:var(--vtbl-f-field,0 1 130px)!important;min-width:var(--vtbl-mw-field,90px)!important}.vtbl-col-indicadores{width:var(--vtbl-w-indicadores,112px)!important;flex:var(--vtbl-f-indicadores,0 0 112px)!important;min-width:var(--vtbl-mw-indicadores,0)!important}.vtbl-col-gateway{width:var(--vtbl-w-gateway,130px)!important;flex:var(--vtbl-f-gateway,0 0 130px)!important;min-width:var(--vtbl-mw-gateway,0)!important}.vtbl-col-origen{width:var(--vtbl-w-origen,170px)!important;flex:var(--vtbl-f-origen,0 0 170px)!important;min-width:var(--vtbl-mw-origen,0)!important}.vtbl-col-clearance{width:var(--vtbl-w-clearance,120px)!important;flex:var(--vtbl-f-clearance,0 0 120px)!important;min-width:var(--vtbl-mw-clearance,0)!important}.vtbl-col-tags{width:var(--vtbl-w-tags,auto)!important;flex:var(--vtbl-f-tags,0 1 160px)!important;min-width:var(--vtbl-mw-tags,100px)!important}.vtbl-col-value{width:var(--vtbl-w-value,auto)!important;flex:var(--vtbl-f-value,0 1 150px)!important;min-width:var(--vtbl-mw-value,110px)!important}.vtbl-col-actions{flex:0 0 44px!important;width:44px!important;min-width:44px!important}.sa-gw-vars-cell{flex-direction:column;gap:2px;line-height:1.1;display:flex}.sa-gw-vars-cell strong{color:var(--ink);font-size:14px}.sa-gw-vars-exposed{color:var(--ink-secondary);align-items:center;gap:4px;font-size:11px;display:inline-flex}.sa-gw-vars-arrow{color:var(--brand);font-weight:700}.planta-conectores-modal{max-width:760px}@supports (padding:env(safe-area-inset-top)){.topbar,.superadmin-topbar{padding-top:max(calc(14px + env(safe-area-inset-top)), calc(14px + var(--sat-top,0px)))}.app-shell,.superadmin-dashboard{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}.superadmin-sidebar,.sidebar{padding-top:max(calc(20px + env(safe-area-inset-top)), calc(20px + var(--sat-top,0px)))}.sidebar-collapsed .sidebar{padding-top:calc(16px + env(safe-area-inset-top))}.sidebar-toggle{top:calc(14px + env(safe-area-inset-top))}}@media (max-width:760px){input,select,textarea,.chat-input-wrap input,.composer input{font-size:16px!important}.chat-main{grid-template-rows:auto 1fr auto;height:100lvh;min-height:0;display:grid;overflow:hidden}html.kb-open .chat-main{height:var(--app-height,100lvh)}.chat-pane>.messages{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;min-height:0;overflow-y:auto}.composer{margin-bottom:calc(50px + env(safe-area-inset-bottom));background:var(--panel);border-top:1px solid var(--line);flex:none}html.kb-open .bottom-nav{display:none}html.kb-open .composer{margin-bottom:0}html.kb-open .app-shell{padding-bottom:0}html,body{overscroll-behavior:none;height:100lvh;overflow:hidden}html.kb-open body{height:var(--app-height,100lvh)}.chat-main>.topbar{padding-top:calc(10px + env(safe-area-inset-top));background:var(--panel)}}.logo-upload-row{cursor:pointer;align-items:center;gap:10px;display:flex;flex-direction:row!important}.logo-upload-btn{background:var(--brand,#3b82f6);color:#fff;white-space:nowrap;border-radius:6px;align-items:center;padding:6px 12px;font-size:13px;font-weight:600;display:inline-flex}.logo-upload-btn:hover{filter:brightness(1.08)}.vtbl-prov-line{align-items:center;gap:6px;margin-top:1px;font-family:ui-monospace,SF Mono,Consolas,monospace;font-size:10px;display:flex}.vtbl-prov-proto{background:rgba(var(--brand-rgb),.15);color:#60a5fa;border-radius:3px;padding:0 4px;font-weight:600}.vtbl-prov-host{color:var(--ink-secondary)}.vtbl-prov-addr{color:var(--muted)}.vtbl-prov-q{margin-left:auto;font-weight:700}@media (max-width:760px){.superadmin-dashboard{height:var(--app-height,100dvh);min-height:0;overflow:hidden}.superadmin-main{height:var(--app-height,100dvh);flex-direction:column;min-height:0;display:flex;overflow:hidden}.superadmin-topbar{padding-top:calc(12px + env(safe-area-inset-top));flex-shrink:0}.superadmin-content{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;flex:1;min-height:0;overflow-y:auto}.app-shell{padding-bottom:0}.settings-view,.dashboard-scroll{padding-bottom:calc(84px + env(safe-area-inset-bottom))}}.widget-chart-svg-wrap{position:relative}.widget-chart-zoom-toggle{z-index:6;border:1px solid var(--line);background:var(--bg-raised);width:28px;height:28px;color:var(--muted);cursor:pointer;opacity:.65;border-radius:8px;place-items:center;transition:opacity .15s,color .15s,border-color .15s,background .15s;display:grid;position:absolute;top:6px;right:6px}.widget-chart-zoom-toggle:hover{opacity:1;color:var(--ink)}.widget-chart-zoom-toggle.active{opacity:1;background:var(--brand);border-color:var(--brand);color:#fff;box-shadow:0 0 0 3px var(--brand-dim)}.widget-chart-zoom-controls{z-index:6;gap:4px;display:flex;position:absolute;top:6px;right:6px}.widget-chart-zoom-btn{border:1px solid var(--line);background:var(--bg-raised);width:28px;height:28px;color:var(--muted);cursor:pointer;border-radius:8px;place-items:center;transition:color .15s,border-color .15s,background .15s;display:grid;box-shadow:0 1px 4px #0000001f}.widget-chart-zoom-btn:hover{color:var(--brand);border-color:var(--brand)}.widget-chart-zoom-btn:active{transform:scale(.94)}.widget-chart-pin-clear{z-index:6;border:1px solid var(--brand);background:var(--brand-dim);width:26px;height:26px;color:var(--brand);cursor:pointer;opacity:.9;border-radius:8px;place-items:center;display:grid;position:absolute;top:6px;left:6px}.widget-chart-pin-clear:hover{opacity:1}.widget-chart-hires-spinner{z-index:6;border:2px solid var(--brand-dim);border-top-color:var(--brand);pointer-events:none;border-radius:50%;width:16px;height:16px;animation:.7s linear infinite spin;position:absolute;top:10px;left:50%;transform:translate(-50%)}.widget-chart-tooltip.is-pinned{border-color:var(--brand);box-shadow:0 4px 16px #00000038, 0 0 0 1px var(--brand-dim)}.vtbl-cards{display:none}.vtbl-cards-empty{text-align:center;color:var(--muted);padding:24px}.vtbl-cards-more{border:1px solid var(--border);background:var(--surface-2,#ffffff0a);width:100%;color:var(--accent);cursor:pointer;border-radius:12px;margin:12px 0 4px;padding:14px;font-size:.95rem;font-weight:600}.vtbl-cards-more:active{opacity:.7}.varcard{background:var(--bg-raised);border:1px solid var(--line);border-radius:14px;min-width:0;padding:12px 14px;overflow:hidden;box-shadow:0 1px 2px #00000026}.varcard.is-selected{border-color:var(--brand);box-shadow:0 0 0 1px var(--brand)}.varcard:has(.vtbl-menu){z-index:30;position:relative;overflow:visible}.varcard-top{align-items:flex-start;gap:8px;display:flex}.varcard-fav{cursor:pointer;background:0 0;border:0;flex:none;margin-top:1px;padding:2px}.varcard-name{text-align:left;cursor:pointer;min-width:0;color:var(--ink);background:0 0;border:0;flex-direction:column;flex:1;gap:2px;padding:0;display:flex}.varcard-name-row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.varcard-name-text{word-break:break-word;font-size:15px;font-weight:600;line-height:1.25}.varcard-feat{color:var(--muted)}.varcard-id{color:var(--muted);opacity:.85;word-break:break-all;overflow-wrap:anywhere;font-family:ui-monospace,SF Mono,monospace;font-size:10px}.varcard-gw{color:var(--ink-secondary);flex-wrap:wrap;align-items:center;gap:6px;min-width:0;font-size:10px;display:flex}.varcard-check{flex:none;width:18px;height:18px;margin-top:2px}.varcard-bottom{border-top:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px;padding-top:10px;display:flex}.varcard-status{position:relative}.varcard-valwrap{flex-direction:column;align-items:flex-end;gap:1px;margin-left:auto;display:flex}.varcard-value{align-items:center;gap:4px;font-size:15px;font-weight:700;display:flex}.varcard-time{color:var(--muted);font-size:10px;font-weight:400}.varcard-actions{position:relative}@media (max-width:1279px){.vtbl-cols-wrap{display:none}}@media (max-width:760px){.vtbl-scroll{display:none!important}.vtbl-cards{flex-direction:column;gap:10px;margin:0 8px;padding-bottom:90px;display:flex}}@media (min-width:761px) and (max-width:1279px){.vtbl-scroll{display:none!important}.vtbl-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;max-width:100%;margin:0 8px;padding-bottom:24px;display:grid;overflow-x:hidden}}.wl-modal{max-width:880px}.wl-body{flex-direction:column;padding:0;display:flex}.wl-embedded{flex-direction:column;gap:12px;display:flex}.wl-toolbar{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:8px;padding:12px 16px;display:flex}.notif-center{flex-direction:column;gap:12px;display:flex}.push-banner{border-radius:var(--radius,10px);border:1px solid var(--line);background:var(--bg-raised,var(--panel));color:var(--ink-secondary,var(--ink));flex-wrap:wrap;align-items:center;gap:10px;padding:10px 14px;font-size:.86rem;line-height:1.45;display:flex}.push-banner svg{flex:none}.push-banner span{flex:220px;min-width:0}.push-banner.is-ok{border-color:color-mix(in srgb, var(--ok) 40%, var(--line))}.push-banner.is-ok svg{color:var(--ok)}.push-banner.is-warn{border-color:color-mix(in srgb, var(--warn,#f59e0b) 45%, var(--line))}.push-banner.is-warn svg{color:var(--warn,#f59e0b)}.push-banner-btn{border:1px solid var(--brand);background:var(--brand);color:#fff;cursor:pointer;white-space:nowrap;border-radius:999px;align-items:center;gap:6px;min-height:44px;padding:0 14px;font-size:.82rem;font-weight:700;display:inline-flex}.push-banner-btn:disabled{opacity:.6;cursor:default}.push-banner-err{color:var(--danger);flex:100%;font-size:.78rem;font-style:normal}.notif-center .notif-center-toolbar{padding:0 0 12px}.notif-center-view-tabs{border-bottom:1px solid var(--line);gap:4px;display:flex}.notif-view-tab{appearance:none;cursor:pointer;color:var(--ink-secondary);background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:8px 14px;font-size:13px;font-weight:600}.notif-view-tab.is-active{color:var(--ink);border-bottom-color:var(--accent)}.notif-view-tab:hover{color:var(--ink)}.notif-tr-incident .notif-td-msg strong,.notif-row-incident .notif-row__body strong{align-items:center;gap:6px;display:flex}.notif-center-list{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;flex-direction:column;gap:8px;max-height:min(60vh,520px);padding:2px;display:flex;overflow-y:auto}.notif-row.unread{box-shadow:inset 3px 0 0 0 var(--err)}.notif-row.severity-warning.unread{box-shadow:inset 3px 0 0 0 var(--warn,#f59e0b)}.notif-row.severity-info.unread{box-shadow:inset 3px 0 0 0 var(--accent)}.notif-row{border:1px solid var(--line);background:0 0;border-radius:8px;align-items:flex-start;gap:10px;padding:10px;display:flex}.notif-row.unread{background:var(--panel)}.notif-row__badge{flex-shrink:0;align-items:center;gap:4px;display:inline-flex}.notif-row__body{flex-direction:column;flex:auto;gap:2px;min-width:0;display:flex}.notif-row__body strong{font-size:13px}.notif-row__meta{display:block}.notif-row__action{flex-wrap:wrap;flex-shrink:0;justify-content:flex-end;align-items:center;gap:6px;display:flex}.notif-row__origin-link{text-decoration:none}@media (max-width:640px){.notif-row{flex-wrap:wrap}.notif-row__badge{order:1}.notif-row__action{order:2;margin-left:auto}.notif-row__body{flex-basis:100%;order:3}}.notif-table-wrap{border:1px solid var(--line);-webkit-overflow-scrolling:touch;overscroll-behavior:contain;border-radius:8px;max-height:min(60vh,520px);overflow:auto}.sa-viewport-lock .notif-table-wrap{height:100%;max-height:none}.notif-table{border-collapse:separate;border-spacing:0;width:100%;font-size:13px}.notif-table thead th{z-index:5;background:var(--panel);border-bottom:1px solid var(--line-light);color:var(--ink-secondary);text-transform:uppercase;letter-spacing:.05em;text-align:left;white-space:nowrap;padding:8px 10px;font-size:11px;font-weight:700;position:sticky;top:0}.notif-th-sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.notif-th-sortable:hover{color:var(--ink)}.notif-th-sortable:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.notif-th-sortable span{vertical-align:middle}.notif-th-sortable svg{vertical-align:middle;margin-left:2px}.notif-th-actions{text-align:right!important}.notif-table td{border-bottom:1px solid var(--line);vertical-align:top;padding:8px 10px}.notif-tr:hover{background:var(--panel-hover)}.notif-tr.unread{background:var(--panel);box-shadow:inset 3px 0 0 0 var(--err)}.notif-tr.severity-warning.unread{box-shadow:inset 3px 0 0 0 var(--warn,#f59e0b)}.notif-tr.severity-info.unread{box-shadow:inset 3px 0 0 0 var(--accent)}.notif-td-date{white-space:nowrap;color:var(--ink-secondary);font-size:12px}.notif-td-msg{min-width:220px;max-width:420px}.notif-td-msg strong{font-size:13px;display:block}.notif-td-body{color:var(--ink-secondary);margin-top:2px;font-size:12px;display:block}.notif-td-actions{white-space:nowrap;text-align:right}.notif-td-actions .action-button{margin-left:6px}.notif-status-tag{white-space:nowrap;align-items:center;gap:4px;font-size:12px;display:inline-flex}.notif-status-read{color:var(--ink-secondary)}.notif-status-unread{color:var(--err);font-weight:600}.notif-tenant-row td.notif-tenant-header{background:var(--panel-hover,var(--panel));border-bottom:1px solid var(--line-light);padding:6px 10px;position:sticky;top:33px}.notif-tenant-header{text-transform:uppercase;letter-spacing:.04em;color:var(--ink-secondary);align-items:center;gap:6px;font-size:11px;font-weight:700;display:flex}.notif-tenant-header-mobile{padding:4px 6px 0}.notif-tenant-count{background:var(--line);color:var(--ink);border-radius:999px;padding:1px 7px;font-size:10.5px;font-weight:700}.notif-center-list{display:none}@media (max-width:760px){.notif-table-wrap{display:none}.notif-center-list{display:flex}}.sa-viewport-lock{height:100dvh}.sa-viewport-lock .superadmin-main{height:100%;min-height:0;overflow:hidden}.sa-viewport-lock .superadmin-content{flex-direction:column;min-height:0;display:flex}.sa-viewport-lock .notif-center{flex:1;min-height:0}.sa-viewport-lock .notif-center-list{min-height:0;max-height:none;padding-bottom:max(2px, env(safe-area-inset-bottom));flex:1}.attention-alarms-block{border:1px solid var(--err);background:color-mix(in srgb, var(--err) 8%, transparent);border-radius:8px;flex-direction:column;gap:8px;margin-bottom:10px;padding:10px 12px;display:flex}.attention-alarms-block__header{color:var(--err);flex-wrap:wrap;align-items:center;gap:8px;font-size:13px;display:flex}.attention-alarms-block__header strong{flex:auto}.attention-alarms-block__loading{color:var(--ink-secondary);align-items:center;gap:6px;font-size:12px;display:flex}.attention-alarms-block__error{color:var(--ink-secondary);flex-wrap:wrap;align-items:center;gap:8px;font-size:12.5px;display:flex}.attention-alarms-block__list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.attention-alarms-block__item{background:var(--panel);border-radius:6px;flex-wrap:wrap;align-items:center;gap:8px;padding:6px 8px;font-size:12.5px;display:flex}.attention-alarms-block__item.severity-critical{box-shadow:inset 3px 0 0 0 var(--err)}.attention-alarms-block__item.severity-warning{box-shadow:inset 3px 0 0 0 var(--warn,#f59e0b)}.attention-alarms-block__loc{flex:auto;min-width:0}.attention-alarms-block__item .action-button{margin-left:auto}.attention-alarms-block__empty{color:var(--ink-secondary);font-style:italic}.attention-alarms-block__tenant-groups{flex-direction:column;gap:10px;display:flex}.attention-alarms-block__tenant-group{flex-direction:column;gap:6px;display:flex}.attention-alarms-block__tenant-header{text-transform:uppercase;letter-spacing:.02em;color:var(--ink-secondary);align-items:center;gap:6px;font-size:11.5px;font-weight:700;display:flex}.attention-alarms-block__tenant-count{background:var(--line);color:var(--ink);border-radius:999px;padding:1px 7px;font-size:10.5px;font-weight:700}.admin-approvals-block{border:1px solid var(--brand);background:color-mix(in srgb, var(--brand) 8%, transparent);border-radius:8px;flex-direction:column;gap:8px;margin-bottom:10px;padding:10px 12px;display:flex}.admin-approvals-block__header{color:var(--brand-strong);flex-wrap:wrap;align-items:center;gap:8px;font-size:13px;display:flex}.admin-approvals-block__list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.admin-approvals-block__item{border:1px solid var(--line);background:var(--panel);border-radius:8px;flex-direction:column;gap:8px;padding:10px;display:flex}.admin-approvals-block__row{align-items:flex-start;gap:8px;display:flex}.admin-approvals-block__text{flex-direction:column;gap:2px;display:flex}.admin-approvals-block__meta{opacity:.8;align-items:center;gap:4px;display:flex}.admin-approvals-block__actions{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.audit-log-viewer{flex-direction:column;gap:12px;display:flex}.audit-log-viewer .wl-toolbar{padding:0 0 12px}.audit-log-embedded .wl-table-wrap{overscroll-behavior:contain;max-height:min(52vh,440px);overflow-y:auto}.audit-log-embedded .wl-table thead th{background:var(--panel);z-index:1;box-shadow:0 1px 0 var(--line);position:sticky;top:0}.audit-log-more{align-items:center;gap:12px;padding:2px 4px;display:flex}.wl-embedded .wl-toolbar{border-bottom:1px solid var(--line);padding:0 0 12px}.wl-filter{background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--radius-sm);min-width:140px;color:var(--ink);flex:180px;padding:7px 10px;font-size:13px}.wl-filter:focus{border-color:var(--accent);outline:none}.wl-date{color:var(--ink-secondary,#6b7280);align-items:center;gap:6px;font-size:12px;display:inline-flex}.wl-date input{background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--ink);padding:6px 8px;font-size:13px}.wl-table-wrap{padding:0 4px 8px;overflow-x:auto}.wl-embedded .wl-table-wrap{padding:0}.wl-table{border-collapse:collapse;width:100%;font-size:13px}.wl-table th{text-align:left;color:var(--ink-secondary);text-transform:uppercase;letter-spacing:.03em;border-bottom:1px solid var(--line);white-space:nowrap;padding:10px 12px;font-size:11px;font-weight:600}.wl-table td{color:var(--ink);border-bottom:1px solid var(--line);vertical-align:middle;padding:9px 12px}.wl-table tbody tr:hover{background:var(--panel-hover)}.wl-mono{font-variant-numeric:tabular-nums;white-space:nowrap}.wl-badge{white-space:nowrap;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-block}.wl-badge-neutral{background:var(--bg-raised);color:var(--ink-secondary)}.wl-badge-info{background:rgba(var(--brand-rgb), .14);color:var(--accent)}.wl-badge-ok{background:var(--ok-dim);color:var(--ok)}.wl-badge-err{background:var(--danger-dim);color:var(--danger)}.wl-table-wrap{-webkit-overflow-scrolling:touch}.wl-table,.wl-embedded .wl-table{min-width:560px}@media (max-width:640px){.resp-grid-5,.resp-grid-4,.resp-grid-3,.resp-grid-2{grid-template-columns:1fr!important}.wl-modal{max-width:min(880px,94vw)}.cost-calc-hero-price{font-size:26px!important}.resp-table-scroll{-webkit-overflow-scrolling:touch;overflow-x:auto}.superadmin-content{min-width:0;overflow-x:hidden}.planta-modal{max-width:min(560px,94vw);max-height:min(var(--vvh,90dvh), 90dvh);margin-bottom:env(safe-area-inset-bottom)}}.planta-modal{max-height:88vh;max-height:min(var(--vvh,88dvh), 88dvh);overflow-y:auto}.widget-stepper-row{flex-wrap:wrap}.stepper-value{min-width:48px}.widget-output-body .output-send-btn{white-space:nowrap;max-width:100%}@media (max-width:640px){.chat-write-actions{flex-wrap:wrap}.chat-write-actions .chat-write-btn{flex:auto}.chat-setpoint-entry input,.chat-setpoint-entry .chat-write-btn{flex:100%}.chat-write-output .output-send-btn,.chat-write-output .output-command-btn{width:100%}}.planta-kpi{contain:layout;min-height:62px}.app-shell{transition:padding-top .2s,margin-top .2s}@media (min-width:768px){.vcfg-modal{height:min(var(--vvh,92dvh), 900px)}}.planta-modal{max-height:calc(var(--vvh,88dvh) - 32px)}@media (max-width:600px){.vtbl-table{min-width:auto}}.composer{padding-bottom:14px}@media (prefers-reduced-motion:reduce){.planta-kpi,.vcfg-modal,.planta-modal,.tab-content,.shell-trial-banner,.msg,.alarm-card{transition:none!important;animation:none!important}@keyframes fadeSlideUp{0%{opacity:1;transform:none}to{opacity:1;transform:none}}@keyframes fadeIn{0%{opacity:1}to{opacity:1}}@keyframes msgSlideIn{0%{opacity:1;transform:none}to{opacity:1;transform:none}}@keyframes tabFadeIn{0%{opacity:1;transform:none}to{opacity:1;transform:none}}@keyframes modalEnter{0%{opacity:1;transform:none}to{opacity:1;transform:none}}@keyframes cardFadeIn{0%{opacity:1;transform:none}to{opacity:1;transform:none}}@keyframes widget-enter{0%{opacity:1;transform:none}to{opacity:1;transform:none}}@keyframes widget-exit{0%{opacity:1;transform:none}to{opacity:1;transform:none}}}.login-page{overflow-y:auto}@media (max-width:760px){.login-page{padding-top:max(8vh, env(safe-area-inset-top));align-items:flex-start}}html.kb-open .login-page{max-height:var(--vvh,100dvh);padding-top:max(24px, env(safe-area-inset-top));align-items:flex-start}.login-input-wrap input,.login-input-wrap textarea{scroll-margin:12px 0 24px}@keyframes widgetRise{0%{opacity:0;transform:translateY(14px)scale(.985)}to{opacity:1;transform:translateY(0)scale(1)}}.presentation-grid .dashboard-widget{animation:.55s cubic-bezier(.22,1,.36,1) both widgetRise}.presentation-grid .dashboard-widget:first-child{animation-delay:20ms}.presentation-grid .dashboard-widget:nth-child(2){animation-delay:70ms}.presentation-grid .dashboard-widget:nth-child(3){animation-delay:.12s}.presentation-grid .dashboard-widget:nth-child(4){animation-delay:.17s}.presentation-grid .dashboard-widget:nth-child(5){animation-delay:.22s}.presentation-grid .dashboard-widget:nth-child(6){animation-delay:.27s}.presentation-grid .dashboard-widget:nth-child(7){animation-delay:.32s}.presentation-grid .dashboard-widget:nth-child(8){animation-delay:.37s}.presentation-grid .dashboard-widget:nth-child(9){animation-delay:.42s}.presentation-grid .dashboard-widget:nth-child(10){animation-delay:.47s}.presentation-grid .dashboard-widget:nth-child(11){animation-delay:.52s}.presentation-grid .dashboard-widget:nth-child(12){animation-delay:.57s}.presentation-grid .dashboard-widget:nth-child(n+13){animation-delay:.6s}@media (prefers-reduced-motion:reduce){.presentation-grid .dashboard-widget{animation:none}}@keyframes chartSoftIn{0%{opacity:0}to{opacity:1}}.widget-chart-svg-wrap{animation:.6s ease-out both chartSoftIn}@media (prefers-reduced-motion:reduce){.widget-chart-svg-wrap{animation:none}}.chart-daterange{color:var(--ink-secondary,#94a3b8);white-space:nowrap;letter-spacing:.2px;text-transform:capitalize;margin-left:auto;font-size:11px;font-weight:600}.chart-gap-hint{color:#475569;white-space:nowrap;cursor:help;background:#64748b29;border:1px solid #64748b66;border-radius:999px;padding:1px 8px;font-size:10.5px;font-weight:700}@media (prefers-color-scheme:dark){.chart-gap-hint{color:#cbd5e1}}.chart-outofrange{color:#b45309;white-space:nowrap;cursor:help;background:#f59e0b24;border:1px solid #f59e0b59;border-radius:999px;padding:1px 8px;font-size:10.5px;font-weight:700}.widget-chart-tooltip{background:color-mix(in srgb, var(--bg-raised,var(--bg)) 70%, transparent);-webkit-backdrop-filter:blur(8px)saturate(1.15);backdrop-filter:blur(8px)saturate(1.15);border-color:color-mix(in srgb, var(--line-light,var(--line)) 75%, transparent);box-shadow:0 8px 24px #00000047}.widget-chart-loading{min-height:120px;color:var(--ink-secondary,#94a3b8);flex-direction:column;justify-content:center;align-items:center;gap:10px;display:flex}.widget-chart-loading-bars{align-items:flex-end;gap:4px;height:36px;display:flex}.widget-chart-loading-bars span{background:var(--brand,#3b82f6);border-radius:3px;width:5px;height:8px;animation:1s ease-in-out infinite chartLoadBar}.widget-chart-loading-bars span:nth-child(2){animation-delay:.12s}.widget-chart-loading-bars span:nth-child(3){animation-delay:.24s}.widget-chart-loading-bars span:nth-child(4){animation-delay:.36s}.widget-chart-loading-bars span:nth-child(5){animation-delay:.48s}@keyframes chartLoadBar{0%,to{opacity:.5;height:8px}50%{opacity:1;height:34px}}.widget-chart-loading-text{font-size:12px}@media (prefers-reduced-motion:reduce){.widget-chart-loading-bars span{height:22px;animation:none}}.widget-chart-tooltip{display:none!important}.widget-chart-readout-below{background:var(--panel,#14181ceb);border:1px solid var(--line,#ffffff14);box-sizing:border-box;border-radius:8px;flex-wrap:wrap;align-content:center;align-items:center;gap:3px 12px;margin:6px 2px 0;padding:6px 9px;font-size:12px;line-height:1.3;display:flex}.widget-chart-readout-below.is-idle .widget-chart-readout-chip{opacity:.45}.widget-chart-readout-hint{text-align:center;width:100%;color:var(--ink-secondary,#94a3b8);opacity:.7;font-size:11px}.hint-touch-only{display:none}@media (hover:none),(pointer:coarse){.hint-hover-only{display:none}.hint-touch-only{display:inline}}.widget-chart-readout-time{width:100%;color:var(--ink-secondary);margin-bottom:1px;font-weight:600}.widget-chart-readout-chip{align-items:center;gap:4px;display:inline-flex}.widget-chart-readout-chip .legend-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.widget-chart-readout-chip strong{font-variant-numeric:tabular-nums;white-space:nowrap}.widget-chart-stats-wrap{margin:6px 2px 0}.widget-chart-stats-toggle{background:var(--panel,#14181ceb);border:1px solid var(--line,#ffffff14);width:100%;min-height:36px;color:var(--ink-secondary);cursor:pointer;box-sizing:border-box;text-align:left;border-radius:8px;align-items:center;gap:6px;padding:8px 10px;font-size:12px;font-weight:600;display:flex}.widget-chart-stats-toggle:hover,.widget-chart-stats-toggle:focus-visible{color:var(--ink);border-color:var(--line)}.widget-chart-stats-chevron{flex-shrink:0;transition:transform .15s}.widget-chart-stats-chevron.is-open{transform:rotate(180deg)}.widget-chart-stats-toggle-hint{opacity:.7;white-space:nowrap;margin-left:auto;font-weight:400}.widget-chart-stats-below{background:var(--panel,#14181ceb);border:1px solid var(--line,#ffffff14);box-sizing:border-box;border-radius:8px;flex-direction:column;gap:3px;margin:4px 0 0;padding:6px 9px;font-size:12px;line-height:1.3;display:flex}.widget-chart-stats-row{flex-wrap:wrap;align-items:center;gap:3px 10px;min-width:0;display:flex}.widget-chart-stats-row .legend-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.widget-chart-stats-name{color:var(--ink-secondary);text-overflow:ellipsis;white-space:nowrap;max-width:40%;font-weight:600;overflow:hidden}.widget-chart-stats-empty{color:var(--ink-secondary,#94a3b8);opacity:.7;font-size:11px}.widget-chart-stats-chip{color:var(--ink-secondary);white-space:nowrap;align-items:center;gap:4px;display:inline-flex}.widget-chart-stats-chip strong{font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--ink)}@media (max-width:375px){.widget-chart-stats-row{gap:3px 8px}}.widget-chart-dots{pointer-events:none;z-index:2;position:absolute;inset:0}.widget-chart-dot{border:1.5px solid var(--panel);border-radius:50%;width:9px;height:9px;position:absolute;transform:translate(-50%,-50%);box-shadow:0 0 0 .5px #0000002e}.widget-chart-dot.is-pinned{border-width:1.6px;width:10px;height:10px}.widget-chart-lens-btn{border:1px solid var(--line);color:var(--ink-secondary);cursor:pointer;letter-spacing:.2px;background:0 0;border-radius:999px;flex-shrink:0;align-items:center;gap:4px;padding:3px 9px;font-family:inherit;font-size:10.5px;font-weight:600;transition:background .12s,color .12s,border-color .12s;display:inline-flex}.widget-chart-lens-btn:hover{color:var(--ink);background:var(--bg-raised)}.widget-chart-lens-btn.active{background:var(--brand);border-color:var(--brand);color:#fff}.widget-chart-lens-btn-label{white-space:nowrap}.smart-lens-panel{background:var(--panel,#14181ceb);border:1px solid var(--line);box-sizing:border-box;border-radius:10px;margin:6px 2px 0;padding:10px 11px;font-size:12px;line-height:1.4;animation:.16s ease-out smart-lens-expand}@keyframes smart-lens-expand{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.smart-lens-panel-head{justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:8px;display:flex}.smart-lens-panel-title{color:var(--ink);flex-wrap:wrap;align-items:center;gap:6px;font-weight:700;display:flex}.smart-lens-panel-profile{text-transform:uppercase;letter-spacing:.3px;background:color-mix(in srgb, var(--lens-accent,var(--brand)) 16%, transparent);color:var(--lens-accent,var(--brand));border-radius:999px;padding:1px 7px;font-size:10px;font-weight:700}.smart-lens-panel-window{color:var(--ink-secondary);font-size:11px;font-weight:500}.smart-lens-panel-close{width:22px;height:22px;color:var(--ink-secondary);cursor:pointer;background:0 0;border:none;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.smart-lens-panel-close:hover{color:var(--ink);background:var(--bg-raised)}.smart-lens-panel-empty{color:var(--ink-secondary);font-size:11.5px}.smart-lens-panel-suggest{background:var(--bg-raised);border:1px dashed var(--line);color:var(--ink-secondary);border-radius:8px;flex-wrap:wrap;align-items:center;gap:6px 8px;margin-bottom:8px;padding:6px 8px;font-size:11px;display:flex}.smart-lens-suggest-btn{border:1px solid var(--lens-accent,var(--brand));color:var(--lens-accent,var(--brand));cursor:pointer;white-space:nowrap;background:0 0;border-radius:999px;align-items:center;gap:4px;padding:3px 8px;font-family:inherit;font-size:10.5px;font-weight:600;display:inline-flex}.smart-lens-suggest-btn:hover{background:color-mix(in srgb, var(--lens-accent,var(--brand)) 12%, transparent)}.smart-lens-summary{flex-direction:column;gap:4px;display:flex}.smart-lens-stat{text-align:left;width:100%;font:inherit;color:var(--ink);cursor:default;background:0 0;border:none;border-radius:6px;margin:0;padding:4px 6px;font-size:12px;display:block}.smart-lens-stat.is-clickable{cursor:pointer}.smart-lens-stat.is-clickable:hover{background:var(--bg-raised)}.smart-lens-stat.is-active{background:color-mix(in srgb, var(--lens-accent,var(--brand)) 14%, transparent);color:var(--lens-accent,var(--brand))}.smart-lens-stat strong{font-variant-numeric:tabular-nums}.smart-lens-coverage{border-top:1px solid var(--line);color:var(--ink-secondary);margin-top:8px;padding-top:8px;font-size:10.5px}.legal-page{-webkit-overflow-scrolling:touch;background:var(--bg,#0e1116);justify-content:center;height:100dvh;padding:28px 16px 48px;display:flex;overflow-y:auto}.legal-back{color:var(--ink,#e5e7eb);background:var(--panel,#1a2230);border:1px solid var(--line,#273140);cursor:pointer;border-radius:8px;align-items:center;gap:6px;margin-bottom:18px;padding:7px 14px;font-size:13px;display:inline-flex}.legal-back:hover{background:var(--panel-hover,#222d3e)}.legal-doc{width:100%;max-width:780px;color:var(--ink,#e5e7eb);font-size:14.5px;line-height:1.6}.legal-doc h1{color:var(--ink,#e5e7eb);margin:0 0 2px;font-size:22px}.legal-doc h2{color:var(--ink,#e5e7eb);margin:22px 0 6px;font-size:16px}.legal-doc p,.legal-doc li{color:var(--ink-secondary,#c7ccd3)}.legal-doc ul{margin:6px 0;padding-left:20px}.legal-doc li{margin-bottom:4px}.legal-doc a{color:var(--brand-strong,#60a5fa)}.legal-updated{opacity:.6;margin:0 0 8px;font-size:12px}.legal-foot{opacity:.6;margin-top:28px;font-size:12px}.settings-legal-link{color:var(--ink-secondary,#94a3b8);opacity:.85;margin-top:10px;font-size:12px;text-decoration:underline;display:inline-block}.settings-legal-link:hover{opacity:1}.rewind-toggle-btn{position:relative}.rewind-toggle-btn.active{background:var(--brand-strong,#6366f1);color:#fff}.rewind-bar{z-index:4000;background:var(--surface-raised,#111827f5);border:1px solid var(--border,#94a3b838);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);width:min(760px,100vw - 24px);color:var(--ink,#e2e8f0);border-radius:14px;flex-direction:column;gap:10px;padding:12px 14px;display:flex;position:fixed;bottom:16px;left:50%;transform:translate(-50%);box-shadow:0 10px 40px #00000073}.rewind-bar-row{align-items:center;gap:10px;display:flex}.rewind-bar-title{align-items:center;gap:6px;font-weight:600;display:flex}.rewind-bar-label{font-size:13px}.rewind-bar-btn,.rewind-bar-close{border:1px solid var(--border,#94a3b838);background:var(--surface,#1e293bb3);min-width:44px;min-height:44px;color:inherit;cursor:pointer;border-radius:10px;justify-content:center;align-items:center;display:inline-flex}.rewind-bar-btn:hover,.rewind-bar-close:hover{background:var(--surface-hover,#334155cc)}.rewind-bar-close{margin-left:auto}.rewind-bar-speeds{gap:4px;display:flex}.rewind-speed-btn{border:1px solid var(--border,#94a3b838);min-width:40px;min-height:36px;color:inherit;cursor:pointer;background:0 0;border-radius:8px;padding:0 8px;font-size:12px;font-weight:600}.rewind-speed-btn.active{background:var(--brand-strong,#6366f1);border-color:var(--brand-strong,#6366f1);color:#fff}.rewind-bar-time{font-variant-numeric:tabular-nums;text-align:center;min-width:92px;font-size:14px;font-weight:600}.rewind-bar-spinner{border:2px solid var(--border,#94a3b859);border-top-color:var(--brand-strong,#6366f1);border-radius:50%;width:14px;height:14px;animation:.8s linear infinite rewind-spin}@keyframes rewind-spin{to{transform:rotate(360deg)}}.rewind-bar-track-row{gap:10px}.rewind-bar-edge{opacity:.65;white-space:nowrap;min-width:40px;font-size:11px}.rewind-bar-edge:last-child{text-align:right}.rewind-bar-track{cursor:pointer;touch-action:none;flex:1;align-items:center;height:44px;display:flex;position:relative}.rewind-bar-track:before{content:"";background:var(--surface,#334155b3);border-radius:999px;height:6px;position:absolute;left:0;right:0}.rewind-bar-track-fill{background:var(--brand-strong,#6366f1);pointer-events:none;border-radius:999px;height:6px;position:absolute;left:0}.rewind-bar-thumb{border:3px solid var(--brand-strong,#6366f1);pointer-events:none;background:#fff;border-radius:50%;width:22px;height:22px;position:absolute;top:50%;transform:translate(-50%,-50%);box-shadow:0 2px 8px #0006}@media (max-width:480px){.rewind-bar{width:calc(100vw - 16px);padding:10px;bottom:8px}.rewind-bar-row{flex-wrap:wrap}.rewind-bar-time{min-width:80px}.rewind-bar-speeds{order:3}}.rewind-series-marker{border-left:2px dashed var(--brand-strong,#6366f1);opacity:.45;pointer-events:none;z-index:4;width:0;transition:left .12s linear;position:absolute;top:6px;bottom:6px;transform:translate(-2px)}.install-guide-overlay{z-index:9999;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#020610b8;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.install-guide-card{background:var(--surface,#121826);width:100%;max-width:440px;max-height:calc(100dvh - 32px);color:var(--ink,#e5e7eb);border:1px solid var(--line,#2a3243);border-radius:16px;padding:20px;overflow-y:auto;box-shadow:0 20px 60px #0000008c}.install-guide-header{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px;display:flex}.install-guide-title{color:var(--primary,#3b82f6);align-items:center;gap:8px;display:flex}.install-guide-title h3{color:var(--ink,#e5e7eb);margin:0;font-size:17px}.install-guide-close{width:32px;height:32px;color:var(--ink-secondary,#94a3b8);cursor:pointer;background:0 0;border:none;border-radius:8px;flex:none;justify-content:center;align-items:center;display:inline-flex}.install-guide-close:hover{background:var(--bg,#0c1220);color:var(--ink,#e5e7eb)}.install-guide-intro{color:var(--ink-secondary,#94a3b8);margin:0 0 14px;font-size:14px;line-height:1.5}.install-guide-native{background:var(--primary,#3b82f6);color:#fff;cursor:pointer;border:none;border-radius:10px;justify-content:center;align-items:center;gap:8px;width:100%;margin-bottom:16px;padding:12px;font-size:15px;font-weight:600;display:inline-flex}.install-guide-native:hover{filter:brightness(1.08)}.install-guide-steps{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.install-guide-step{grid-template-columns:auto auto 1fr;align-items:center;gap:12px;display:grid}.install-guide-step-num{background:var(--primary,#3b82f6);color:#fff;border-radius:50%;flex:none;justify-content:center;align-items:center;width:26px;height:26px;font-size:13px;font-weight:700;display:inline-flex}.install-guide-step-icon{color:var(--primary,#3b82f6);justify-content:center;align-items:center;display:inline-flex}.install-guide-step-text{color:var(--ink,#e5e7eb);font-size:14px;line-height:1.45}.install-guide-note{color:var(--ink-secondary,#94a3b8);margin:14px 0 0;font-size:13px;line-height:1.45}@media (max-width:480px){.install-guide-overlay{align-items:flex-end;padding:0}.install-guide-card{max-width:100%;max-height:90dvh;padding:18px 16px calc(18px + env(safe-area-inset-bottom));border-radius:18px 18px 0 0}}.alarm-error .vmgr-retry-btn{border:1px solid var(--danger);border-radius:var(--radius-sm);color:var(--danger);cursor:pointer;background:0 0;margin-left:auto;padding:3px 10px;font-size:12px;font-weight:600}.alarm-error .vmgr-retry-btn+button{margin-left:0}.planta-glance-bar{border:1px solid var(--line);background:var(--bg-raised);border-radius:12px;flex-wrap:wrap;align-items:center;gap:8px;margin:2px 0 12px;padding:8px 10px;display:flex}.planta-glance-light{border:1px solid var(--line);background:var(--bg);color:var(--ink);white-space:nowrap;border-radius:999px;align-items:center;gap:7px;padding:5px 10px;font-size:.8rem;font-weight:600;display:inline-flex}.planta-glance-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.planta-glance-light.crit .planta-glance-dot{animation:1.2s ease-in-out infinite planta-glance-pulse}@keyframes planta-glance-pulse{0%,to{box-shadow:0 0 #ef44448c}50%{box-shadow:0 0 0 6px #ef444400}}@media (prefers-reduced-motion:reduce){.planta-glance-light.crit .planta-glance-dot{animation:none}}.planta-glance-kpi{border:1px solid var(--line);background:var(--bg);border-radius:10px;align-items:baseline;gap:7px;min-width:0;padding:5px 10px;display:inline-flex}.planta-glance-kpi-name{color:var(--ink-secondary);text-overflow:ellipsis;white-space:nowrap;max-width:140px;font-size:.72rem;overflow:hidden}.planta-glance-kpi-value{color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:.95rem;font-weight:700}.planta-glance-kpi-value small{color:var(--ink-secondary);font-size:.7rem;font-weight:500}.planta-glance-config-btn{border:1px solid var(--line);width:26px;height:26px;color:var(--ink-secondary);cursor:pointer;background:0 0;border-radius:8px;justify-content:center;align-items:center;margin-left:auto;display:inline-flex}.planta-glance-config-btn:hover{color:var(--ink);background:var(--bg)}.planta-glance-config-list{flex-direction:column;gap:4px;max-height:300px;margin-top:10px;display:flex;overflow-y:auto}.planta-glance-config-row{border:1px solid var(--line);color:var(--ink);cursor:pointer;text-align:left;background:0 0;border-radius:8px;align-items:center;gap:9px;padding:7px 10px;display:flex}.planta-glance-config-row:hover:not(:disabled){background:var(--bg-raised)}.planta-glance-config-row:disabled{opacity:.45;cursor:not-allowed}.planta-glance-config-row.on{border-color:var(--accent,#3b82f6);background:color-mix(in srgb, var(--accent,#3b82f6) 8%, transparent)}.planta-glance-config-check{border:1px solid var(--line);width:16px;height:16px;color:var(--accent,#3b82f6);border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.planta-glance-config-row.on .planta-glance-config-check{border-color:var(--accent,#3b82f6)}.planta-glance-config-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:.85rem;overflow:hidden}@media (max-width:640px){.planta-glance-kpi-name{max-width:90px}}.tour-overlay{z-index:4000;pointer-events:none;position:fixed;inset:0}.tour-hole{pointer-events:none;border-radius:14px;transition:top .55s cubic-bezier(.3,1.25,.4,1),left .55s cubic-bezier(.3,1.25,.4,1),width .55s cubic-bezier(.3,1.25,.4,1),height .55s cubic-bezier(.3,1.25,.4,1);position:fixed;box-shadow:0 0 0 9999px #020617bd}.tour-hole-center{box-shadow:0 0 0 9999px #020617cc}.tour-ring{border:2px solid var(--accent);box-shadow:0 0 18px rgba(var(--brand-rgb), .55), inset 0 0 14px rgba(var(--brand-rgb), .18);pointer-events:none;border-radius:14px;transition:top .55s cubic-bezier(.3,1.25,.4,1),left .55s cubic-bezier(.3,1.25,.4,1),width .55s cubic-bezier(.3,1.25,.4,1),height .55s cubic-bezier(.3,1.25,.4,1);animation:2.2s ease-in-out infinite tourBreathe;position:fixed}@keyframes tourBreathe{0%,to{box-shadow:0 0 14px rgba(var(--brand-rgb), .4), inset 0 0 10px rgba(var(--brand-rgb), .12);opacity:.85}50%{box-shadow:0 0 26px rgba(var(--brand-rgb), .75), inset 0 0 18px rgba(var(--brand-rgb), .26);opacity:1}}.tour-card{background:var(--panel);border:1px solid var(--line-light);pointer-events:auto;border-radius:16px;flex-direction:column;width:430px;max-width:calc(100vw - 24px);padding:16px 16px 14px;animation:.42s cubic-bezier(.25,1.4,.45,1) tourCardIn;display:flex;position:fixed;overflow:hidden;box-shadow:0 18px 50px #0000008c}.tour-card:before{content:"";background:linear-gradient(90deg, var(--accent), var(--ok));background-size:200% 100%;height:3px;animation:3.5s linear infinite tourFlow;position:absolute;top:0;left:0;right:0}@keyframes tourFlow{0%{background-position:0 0}to{background-position:200% 0}}@keyframes tourCardIn{0%{opacity:0;transform:translateY(14px)scale(.96)}}.tour-stagger{animation:.5s cubic-bezier(.25,1,.4,1) both tourRise}@keyframes tourRise{0%{opacity:0;transform:translateY(8px)}}.tour-sparkle{transform-origin:50%;animation:2.6s ease-in-out infinite tourTwinkle}@keyframes tourTwinkle{0%,to{opacity:.9;transform:scale(1)rotate(0)}50%{opacity:1;transform:scale(1.25)rotate(12deg)}}.tour-card-head{flex-shrink:0;justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.tour-card-eyebrow{letter-spacing:.03em;text-transform:uppercase;color:var(--accent);align-items:center;gap:5px;font-size:11px;font-weight:700;display:inline-flex}.tour-card-x{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:2px;display:flex}.tour-card-x:hover{color:var(--ink);background:var(--line)}.tour-card-title{color:var(--ink);margin:0 0 6px;font-size:16px;font-weight:700}.tour-title-hero{background:linear-gradient(92deg, var(--ink) 20%, var(--accent) 60%, var(--ok) 95%);-webkit-text-fill-color:transparent;background-size:200% 100%;-webkit-background-clip:text;background-clip:text;font-size:22px;animation:5s linear infinite tourFlow}.tour-card-body{color:var(--ink-secondary);min-height:0;margin:0 0 12px;font-size:13.5px;line-height:1.5;overflow-y:auto}.tour-dots{flex-shrink:0;gap:5px;margin-bottom:12px;display:flex}.tour-dot{background:var(--line-light);border-radius:999px;width:6px;height:6px;transition:background .25s,width .25s,box-shadow .25s}.tour-dot.done{background:var(--accent-dim,rgba(var(--brand-rgb),.4))}.tour-dot.on{background:var(--accent);width:18px;box-shadow:0 0 8px rgba(var(--brand-rgb), .6)}.tour-card-actions{flex-shrink:0;justify-content:space-between;align-items:center;gap:8px;display:flex}.tour-btn{border:1px solid var(--line-light);background:var(--bg-raised);color:var(--ink);cursor:pointer;border-radius:9px;align-items:center;gap:5px;padding:7px 12px;font-size:13px;font-weight:600;transition:transform .15s,background .15s,box-shadow .15s;display:inline-flex}.tour-btn:hover{background:var(--panel-hover);transform:translateY(-1px)}.tour-btn:active{transform:translateY(0)}.tour-btn.ghost{color:var(--muted);background:0 0;border-color:#0000}.tour-btn.ghost:hover{color:var(--ink);background:var(--line)}.tour-btn.primary{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:0 4px 14px rgba(var(--brand-rgb), .35)}.tour-btn.primary:hover{filter:brightness(1.1);background:var(--accent);box-shadow:0 6px 20px rgba(var(--brand-rgb), .5)}.tour-choice{text-align:left;border:1px solid var(--line-light);background:var(--bg-raised);width:100%;color:var(--accent);cursor:pointer;border-radius:12px;align-items:center;gap:12px;padding:12px 14px;transition:transform .18s,border-color .18s,box-shadow .18s,background .18s;display:flex}.tour-choice span{flex-direction:column;flex:1;gap:2px;display:flex}.tour-choice strong{color:var(--ink);font-size:14px}.tour-choice small{color:var(--ink-secondary);font-size:12px;line-height:1.35}.tour-choice-arrow{color:var(--muted);flex-shrink:0;transition:transform .18s,color .18s}.tour-choice:hover{border-color:var(--accent);background:var(--panel-hover);box-shadow:0 8px 24px rgba(var(--brand-rgb), .22);transform:translateY(-2px)}.tour-choice:hover .tour-choice-arrow{color:var(--accent);transform:translate(4px)}@media (prefers-reduced-motion:reduce){.tour-hole,.tour-ring,.tour-card,.tour-card:before,.tour-dot,.tour-stagger,.tour-sparkle,.tour-title-hero,.tour-btn,.tour-choice{transition:none;animation:none}.tour-stagger{opacity:1;transform:none}}:where(button,a,[role=button],input,textarea,select,summary,[tabindex]):focus-visible{outline:2px solid var(--brand);outline-offset:2px;border-radius:var(--radius-sm)}.btn-primary,.btn-secondary,.btn-sm,.action-button,.settings-btn{transition:transform .12s,box-shadow .2s,filter .15s,background .15s}.btn-primary:hover:not(:disabled),.action-button:hover:not(:disabled){filter:brightness(1.06);box-shadow:0 2px 10px #00000040}.btn-primary:active:not(:disabled),.btn-secondary:active:not(:disabled),.btn-sm:active:not(:disabled),.action-button:active:not(:disabled){filter:brightness(.97);transform:translateY(1px)}@media (prefers-reduced-motion:reduce){.btn-primary,.btn-secondary,.btn-sm,.action-button,.settings-btn{transition:none}.btn-primary:active:not(:disabled),.btn-secondary:active:not(:disabled),.btn-sm:active:not(:disabled),.action-button:active:not(:disabled){transform:none}}.share-access{flex-direction:column;gap:14px;display:flex}.share-field{flex-direction:column;gap:4px;display:flex}.share-label{text-transform:uppercase;letter-spacing:.04em;opacity:.6;font-size:11px}.share-val{background:var(--surface-2,#7f7f7f1f);word-break:break-all;border-radius:8px;padding:8px 10px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:14px}.share-url{background:var(--surface-2,#7f7f7f1f);color:var(--accent,#2563eb);word-break:break-all;border-radius:8px;padding:8px 10px;font-size:14px;text-decoration:none}.share-url:hover{text-decoration:underline}.share-pass{letter-spacing:.06em;color:var(--accent,#2563eb);font-size:18px;font-weight:700}.share-hint{opacity:.65;margin:0;font-size:12px}.share-actions{flex-wrap:wrap;gap:8px;display:flex}.share-actions .admin-btn{flex:1;justify-content:center;min-width:96px}.share-wa{color:#06210f!important;background:#25d366!important;border-color:#25d366!important}.share-regen{color:inherit;opacity:.55;cursor:pointer;background:0 0;border:none;align-self:flex-start;padding:0;font-size:12px;text-decoration:underline}.share-regen:hover{opacity:.8}.implgrid-stats{margin-bottom:16px}.implgrid-skeleton{flex-direction:column;gap:8px;display:flex}.implgrid-skeleton-row{border-radius:var(--radius-sm,8px);background:linear-gradient(90deg, var(--panel) 25%, var(--panel-hover,#7f7f7f1f) 50%, var(--panel) 75%);border:1px solid var(--line);background-size:200% 100%;height:44px;animation:1.3s ease-in-out infinite implgrid-shimmer}@keyframes implgrid-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){.implgrid-skeleton-row{animation:none}}.implgrid-table-wrap{border:1px solid var(--line);border-radius:var(--radius,12px)}.implgrid-table{border-collapse:collapse;width:100%;font-size:13px}.implgrid-table th,.implgrid-table td{text-align:left;vertical-align:middle;border-bottom:1px solid var(--line);padding:8px 12px}.implgrid-table thead th{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);background:var(--bg-raised,var(--panel));z-index:1;font-size:11px;font-weight:600;position:sticky;top:0}.implgrid-block-row th{letter-spacing:.08em;padding-top:10px;padding-bottom:6px;font-size:10px}.implgrid-th-meaning,.implgrid-td-meaning{background:var(--brand-dim,#2563eb0f)}.implgrid-block-row .implgrid-th-meaning{color:var(--brand-strong,var(--brand))}.implgrid-col-expand{width:34px;padding-left:8px;padding-right:0}.implgrid-col-num{text-align:right;width:56px}.implgrid-table tbody tr:last-child td{border-bottom:none}.implgrid-row:hover td{background:var(--panel-hover,#7f7f7f0f)}.implgrid-row:hover .implgrid-td-meaning{background:var(--brand-dim,#2563eb1a)}.implgrid-row-pending td{color:var(--muted)}.implgrid-row-pending .implgrid-device-id strong{color:var(--ink)}.implgrid-expand-btn{cursor:pointer;width:24px;height:24px;color:var(--muted);border-radius:var(--radius-sm,6px);background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.implgrid-expand-btn:hover{background:var(--panel-hover,#7f7f7f1f);color:var(--ink)}.implgrid-device-id{flex-direction:column;gap:1px;display:flex}.implgrid-device-id strong{font-weight:600;font-family:var(--mono,ui-monospace, monospace);font-size:12.5px}.implgrid-hostname{color:var(--muted);font-size:11px}.implgrid-muted{color:var(--muted)}.implgrid-pending{color:var(--muted);border:1px dashed var(--line);border-radius:999px;padding:1px 8px;font-size:11px;font-style:italic;font-weight:600;display:inline-block}.implgrid-machine{border-radius:999px;align-items:center;gap:4px;padding:2px 9px;font-size:12px;font-weight:600;display:inline-flex}.implgrid-machine-linked{color:#10b981;background:#10b9811f}.implgrid-machine-suggested{color:var(--muted);background:var(--panel-hover,#7f7f7f1a)}.implgrid-suggested-tag{text-transform:uppercase;letter-spacing:.05em;color:var(--brand-strong,var(--brand));margin-left:2px;font-size:9px;font-style:normal;font-weight:700}.implgrid-presence{white-space:nowrap;border-radius:999px;align-items:center;gap:4px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-flex}.implgrid-presence-online{color:#16a34a;background:#22c55e24}.implgrid-presence-offline{color:#dc2626;background:#ef444424}.implgrid-presence-idle{color:var(--muted);background:var(--panel-hover,#7f7f7f1a)}.implgrid-crit{border-radius:999px;padding:1px 8px;font-size:11px;font-weight:700;display:inline-block}.implgrid-crit-high{color:#dc2626;background:#ef444424}.implgrid-crit-medium{color:#d97706;background:#f59e0b29}.implgrid-crit-low{color:#16a34a;background:#22c55e24}.implgrid-varrow td{background:var(--bg,var(--panel));border-bottom:1px solid var(--line)}.implgrid-var-name{align-items:center;gap:8px;padding-left:8px;font-size:12.5px;display:flex}.implgrid-var-dot{background:var(--muted);border-radius:50%;flex:none;width:5px;height:5px}.implgrid-var-ext{color:var(--muted);font-size:10.5px;font-family:var(--mono,ui-monospace, monospace)}.implgrid-var-type{color:var(--muted);font-size:11px}.implgrid-cards{display:none}.implgrid-card{border:1px solid var(--line);border-radius:var(--radius,12px);background:var(--panel);margin-bottom:10px;overflow:hidden}.implgrid-card-pending{border-style:dashed}.implgrid-card-head{cursor:pointer;width:100%;color:inherit;text-align:left;background:0 0;border:none;justify-content:space-between;align-items:center;gap:10px;padding:12px 14px;display:flex}.implgrid-card-title{align-items:center;gap:8px;min-width:0;display:flex}.implgrid-card-title strong{font-family:var(--mono,ui-monospace, monospace);text-overflow:ellipsis;font-size:14px;overflow:hidden}.implgrid-card-body{flex-direction:column;gap:8px;padding:0 14px 12px;display:flex}.implgrid-card-line{justify-content:space-between;align-items:center;gap:12px;display:flex}.implgrid-card-k{text-transform:uppercase;letter-spacing:.03em;color:var(--muted);flex:none;font-size:11px}.implgrid-card-v{text-align:right;min-width:0;font-size:13px}.implgrid-card-vars{border-top:1px solid var(--line);background:var(--bg,var(--panel));flex-direction:column;gap:8px;padding:10px 14px;display:flex}.implgrid-varcard{flex-direction:column;gap:3px;display:flex}.implgrid-varcard-name{align-items:center;gap:8px;font-size:13px;display:flex}.implgrid-varcard-meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px;padding-left:13px;font-size:11px;display:flex}@media (max-width:760px){.implgrid-table-wrap{display:none}.implgrid-cards{display:block}}.implgrid-edit{align-items:center;gap:6px;min-width:0;display:flex}.implgrid-edit-path{flex-wrap:wrap;gap:4px}.implgrid-select,.implgrid-input{font:inherit;border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:8px;min-width:0;max-width:100%;padding:4px 8px;font-size:12.5px}.implgrid-select{cursor:pointer}.implgrid-select:focus,.implgrid-input:focus{outline:2px solid var(--brand);outline-offset:-1px;border-color:var(--brand)}.implgrid-select:disabled{opacity:.5;cursor:not-allowed}.implgrid-select-sm,.implgrid-input-sm{flex:84px;padding:3px 6px;font-size:11.5px}.implgrid-select-type,.implgrid-select-crit{flex:0 auto}.implgrid-input{flex:auto}.implgrid-edit-create{flex-direction:column;align-items:stretch;gap:5px}.implgrid-edit-actions{gap:6px;display:flex}.implgrid-edit-err .implgrid-select,.implgrid-edit-err .implgrid-input{border-color:#dc2626;box-shadow:0 0 0 1px #dc262666}.implgrid-cell-status{flex:none;align-items:center;display:inline-flex}.implgrid-cell-saving{color:var(--brand)}.implgrid-cell-saved{color:#16a34a}.implgrid-cell-error{color:#dc2626}.implgrid-spin{animation:.7s linear infinite implgrid-spin}@keyframes implgrid-spin{to{transform:rotate(360deg)}}.implgrid-suggest-accept{border:1px dashed var(--brand);color:var(--brand);background:var(--brand-dim,#2563eb14);cursor:pointer;white-space:nowrap;border-radius:999px;align-items:center;gap:3px;padding:2px 7px;font-size:11px;font-weight:600;display:inline-flex}.implgrid-suggest-accept:hover{background:var(--brand);color:#fff;border-style:solid}.implgrid-card-edit{align-items:flex-start}.implgrid-card-edit .implgrid-edit{flex-wrap:wrap;flex:auto;justify-content:flex-end}.implgrid-varcard-edit{justify-content:space-between;align-items:center;gap:10px;padding-left:13px;display:flex}.implgrid-varcard-edit .implgrid-edit{flex-wrap:wrap;justify-content:flex-end}.implgrid-header-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.implgrid-accept-btn{border-color:var(--brand);color:var(--brand);background:var(--brand-dim,#2563eb14);align-items:center;gap:5px;display:inline-flex}.implgrid-accept-btn:hover:not(:disabled){background:var(--brand);color:#fff}.implgrid-accept-btn:disabled{opacity:.6;cursor:default}.implgrid-share{position:relative}.implgrid-share-btn{align-items:center;gap:5px;display:inline-flex}.implgrid-share-pop{z-index:40;background:var(--panel);border:1px solid var(--line);border-radius:12px;width:min(360px,100vw - 32px);padding:14px;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 18px 48px #00000073}.implgrid-share-lead{color:var(--muted,#94a3b8);margin:0 0 12px;font-size:12.5px;line-height:1.5}.implgrid-share-busy,.implgrid-share-err{color:var(--muted,#94a3b8);flex-wrap:wrap;align-items:center;gap:8px;font-size:13px;display:flex}.implgrid-share-err{color:#f87171}.implgrid-share-row{align-items:stretch;gap:6px;display:flex}.implgrid-share-input{border:1px solid var(--line);background:var(--bg);min-width:0;color:var(--ink);border-radius:8px;flex:1;padding:9px 10px;font-size:12.5px}.implgrid-share-copy{white-space:nowrap;align-items:center;gap:5px;display:inline-flex}.implgrid-share-exp{color:var(--muted,#94a3b8);margin:10px 0 0;font-size:12px}.implgrid-col-check{text-align:center;width:34px;padding-left:12px;padding-right:0}.implgrid-check{cursor:pointer;width:15px;height:15px;accent-color:var(--brand);margin:0}.implgrid-row-selected td{background:var(--brand-dim,#2563eb12)}.implgrid-row-selected .implgrid-td-meaning{background:var(--brand-dim,#2563eb1f)}.implgrid-selquick{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px;display:flex}.implgrid-selquick-k{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-size:11px}.implgrid-selquick-btn{font:inherit;border:1px solid var(--line);background:var(--panel);color:var(--ink);cursor:pointer;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:600}.implgrid-selquick-btn:hover:not(:disabled){border-color:var(--brand);color:var(--brand)}.implgrid-selquick-btn:disabled{opacity:.45;cursor:default}.implgrid-selquick-clear{color:var(--muted);border-style:dashed}.implgrid-loose-feedback{align-items:center;gap:5px;margin-bottom:10px;font-size:12.5px;font-weight:600;display:inline-flex}.implgrid-selbar{z-index:5;border:1px solid var(--brand);border-radius:var(--radius,12px);background:var(--panel);flex-wrap:wrap;align-items:center;gap:14px;margin-top:14px;padding:10px 14px;display:flex;position:sticky;bottom:12px;box-shadow:0 8px 24px #0000002e}.implgrid-selbar-count{color:var(--muted);white-space:nowrap;align-items:center;gap:6px;font-size:12.5px;display:inline-flex}.implgrid-selbar-count strong{color:var(--brand);font-size:15px}.implgrid-selbar-clear{background:var(--panel-hover,#7f7f7f24);width:20px;height:20px;color:var(--muted);cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;margin-left:2px;padding:0;display:inline-flex}.implgrid-selbar-clear:hover{background:var(--brand);color:#fff}.implgrid-selbar-controls,.implgrid-selbar-create{flex-wrap:wrap;align-items:flex-end;gap:12px;display:flex}.implgrid-selbar-field{flex-direction:column;gap:3px;display:flex}.implgrid-selbar-field>span{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-size:10.5px}.implgrid-selbar-feedback{white-space:nowrap;margin-left:auto;font-size:12.5px;font-weight:600}.implgrid-selbar-busy{color:var(--brand);align-items:center;gap:5px;display:inline-flex}.implgrid-selbar-ok{color:#16a34a;align-items:center;gap:5px;display:inline-flex}.implgrid-selbar-err{color:#dc2626;align-items:center;gap:5px;display:inline-flex}.implgrid-card-headrow{align-items:center;gap:8px;padding-left:12px;display:flex}.implgrid-card-headrow .implgrid-card-head{padding-left:4px}.implgrid-card-selected{border-color:var(--brand);box-shadow:inset 3px 0 0 var(--brand)}@media (max-width:760px){.implgrid-selbar{flex-direction:column;align-items:stretch;gap:10px;bottom:8px}.implgrid-selbar-feedback{margin-left:0}.implgrid-selbar-controls{gap:8px}.implgrid-selbar-field{flex:auto}.implgrid-selbar-field .implgrid-select{width:100%}}.mcg{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);margin-top:20px;padding:16px}.mcg-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.mcg-head-title{color:var(--brand-strong);align-items:center;gap:8px;display:inline-flex}.mcg-head-title h4{color:var(--ink);letter-spacing:.01em;margin:0;font-size:.95rem;font-weight:650}.mcg-head-controls{flex-wrap:wrap;align-items:center;gap:10px;display:inline-flex}.mcg-hops{color:var(--muted);white-space:nowrap;align-items:center;gap:6px;font-size:.68rem;display:inline-flex}.mcg-hops select{color:var(--ink);background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--radius-sm);cursor:pointer;padding:2px 6px;font-size:.72rem}.mcg-hops select:disabled{opacity:.55;cursor:default}.mcg-stats{flex-wrap:wrap;gap:6px;display:inline-flex}.mcg-stats span{color:var(--muted);background:var(--bg-raised);border:1px solid var(--line);white-space:nowrap;border-radius:999px;padding:2px 9px;font-size:.68rem}.mcg-stats .mcg-trunc{color:var(--warn);border-color:var(--warn-dim)}.mcg-sub{color:var(--ink-secondary);margin:8px 0 14px;font-size:.8rem;line-height:1.5}.mcg-sub strong{color:var(--ink);font-weight:600}.mcg-scroll{-webkit-overflow-scrolling:touch;padding-bottom:4px;overflow:auto hidden}.mcg-svg{display:block}.mcg-lane-label{fill:var(--muted);letter-spacing:.09em;text-transform:uppercase;text-anchor:middle;opacity:.7;font-size:10px;font-weight:600}.mcg-edge{fill:none;transition:opacity .15s}.mcg-svg:hover .mcg-edge{opacity:.3}.mcg-svg .mcg-edge:hover{opacity:1}.mcg-node{box-sizing:border-box;background:var(--bg-raised);border:1px solid var(--line-light);border-left:3px solid var(--mcg-accent,var(--muted));border-radius:var(--radius-sm);flex-direction:column;justify-content:center;gap:2px;height:100%;padding:7px 10px 7px 12px;display:flex;overflow:hidden}.mcg-node-root{background:linear-gradient(0deg, var(--brand-dim), var(--brand-dim)), var(--bg-raised);border-color:var(--mcg-accent);box-shadow:0 0 0 1px var(--mcg-accent) inset, 0 4px 14px rgba(var(--brand-rgb), .18)}button.mcg-node{width:100%;font:inherit;text-align:left;cursor:pointer;transition:border-color .12s,box-shadow .12s,transform .12s}button.mcg-node:hover{border-color:var(--mcg-accent);box-shadow:0 0 0 1px var(--mcg-accent) inset}button.mcg-node:active{transform:translateY(1px)}button.mcg-node:focus-visible{outline:2px solid var(--brand);outline-offset:2px}@media (prefers-reduced-motion:reduce){button.mcg-node{transition:none}button.mcg-node:active{transform:none}}.mcg-node-kind{letter-spacing:.05em;text-transform:uppercase;color:var(--mcg-accent,var(--muted));font-size:.6rem;font-weight:700;line-height:1}.mcg-node-label{color:var(--ink);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.78rem;font-weight:550;line-height:1.2;display:-webkit-box;overflow:hidden}.mcg-node-root .mcg-node-label{font-weight:700}.mcg-node-foreign{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:.62rem;line-height:1;overflow:hidden}.mcg-legend{flex-wrap:wrap;gap:6px 14px;margin:12px 0 0;padding:0;list-style:none;display:flex}.mcg-legend li{color:var(--ink-secondary);align-items:center;gap:6px;font-size:.7rem;display:inline-flex}.mcg-legend-swatch{border-radius:2px;width:14px;height:3px;display:inline-block}.mcg-note{background:var(--bg-raised);border:1px dashed var(--line-light);border-radius:var(--radius-sm);padding:16px}.mcg-note p{color:var(--ink-secondary);margin:0;font-size:.8rem;line-height:1.55}.mcg-note-title{font-weight:600;color:var(--ink)!important;margin-bottom:4px!important}.mcg-note-error{border-style:solid;border-color:var(--danger-dim)}.mcg-retry{color:var(--ink);background:var(--panel-hover);border:1px solid var(--line-light);border-radius:var(--radius-sm);cursor:pointer;align-items:center;gap:6px;margin-top:10px;padding:5px 11px;font-size:.75rem;display:inline-flex}.mcg-retry:hover{background:var(--bg-elev)}.mcg-skeleton{align-items:center;gap:0;padding:20px 4px;display:flex}.mcg-skel-chip{border-radius:var(--radius-sm);background:linear-gradient(90deg, var(--bg-raised) 0%, var(--panel-hover) 50%, var(--bg-raised) 100%);background-size:200% 100%;flex:none;width:150px;height:52px;animation:1.3s ease-in-out infinite mcg-shimmer}.mcg-skel-link{background:var(--line-light);flex:none;width:44px;height:2px}.mcg-visually-hidden,.mcg-svg-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@keyframes mcg-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){.mcg-skel-chip{animation:none}.mcg-edge{transition:none}}.widget-synoptic{--synoptic-line:color-mix(in srgb, var(--ink,#e2e8f0) 32%, transparent);--synoptic-fill:color-mix(in srgb, var(--ink,#94a3b8) 7%, transparent);--synoptic-chip-bg:color-mix(in srgb, var(--bg,#0c1220) 78%, transparent);width:100%;height:100%;min-height:0;padding:6px;display:flex}.widget-synoptic.is-reflow{-webkit-overflow-scrolling:touch;align-items:flex-start;overflow:hidden auto}.widget-synoptic-svg{width:100%;height:100%;display:block;overflow:visible}.synoptic-node-label{paint-order:stroke;stroke:var(--bg,#0c1220);stroke-width:3px;stroke-linejoin:round}.synoptic-pipe-base{stroke:var(--synoptic-line,#64748b);stroke-width:9px;opacity:.55}.synoptic-pipe-flow{stroke-width:4px;opacity:.85;fill:none}.synoptic-pipe-flow.is-flowing{stroke-dasharray:14 12;animation:.9s linear infinite synoptic-flow}@keyframes synoptic-flow{to{stroke-dashoffset:-26px}}.synoptic-halo{opacity:.5;transform-origin:50%;transform-box:fill-box;animation:2.2s ease-in-out infinite synoptic-breathe}.synoptic-halo-alarm{animation:1s ease-in-out infinite synoptic-pulse}@keyframes synoptic-breathe{0%,to{opacity:.22;transform:scale(.97)}50%{opacity:.55;transform:scale(1.04)}}@keyframes synoptic-pulse{0%,to{opacity:.28;transform:scale(.96)}50%{opacity:.85;transform:scale(1.12)}}.synoptic-spin{transform-origin:50%;transform-box:fill-box;animation:2.4s linear infinite synoptic-rotate}@keyframes synoptic-rotate{to{transform:rotate(360deg)}}.widget-synoptic-empty{text-align:center;width:100%;height:100%;min-height:120px;color:var(--ink-secondary,#94a3b8);flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:12px;display:flex}.widget-synoptic-empty p{color:var(--ink,#e2e8f0);margin:0;font-weight:600}.widget-synoptic-empty span{max-width:30ch;font-size:.78rem;line-height:1.35}.synoptic-editor{width:min(1040px,96vw);max-width:96vw}.synoptic-editor-body{grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr);gap:16px;max-height:70vh;padding:0 16px;display:grid;overflow:hidden}.synoptic-editor-canvas{aspect-ratio:1000/600;border:1px solid var(--line,#334155);background:radial-gradient(circle at 1px 1px, color-mix(in srgb, var(--ink,#94a3b8) 12%, transparent) 1px, transparent 0) 0 0 / 26px 26px, var(--bg,#0c1220);touch-action:none;border-radius:12px;align-self:start;position:relative;overflow:hidden}.synoptic-editor-handles{pointer-events:none;position:absolute;inset:0}.synoptic-handle{cursor:grab;pointer-events:auto;color:#fff;background:color-mix(in srgb, var(--brand,#3b82f6) 85%, #000);opacity:.35;border:2px solid #fff;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;padding:0;transition:opacity .15s,transform .1s;display:flex;position:absolute;transform:translate(-50%,-50%);box-shadow:0 2px 8px #0006}.synoptic-handle:hover,.synoptic-handle.dragging{opacity:1}.synoptic-handle.dragging{cursor:grabbing;transform:translate(-50%,-50%)scale(1.15)}.synoptic-editor-hint{color:var(--ink-secondary,#94a3b8);pointer-events:none;justify-content:center;align-items:center;font-size:.85rem;display:flex;position:absolute;inset:0}.synoptic-editor-panel{flex-direction:column;gap:18px;padding-right:4px;display:flex;overflow-y:auto}.synoptic-editor-section-head{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.synoptic-editor-section-head h4{color:var(--ink,#e2e8f0);margin:0;font-size:.9rem}.synoptic-editor-muted{color:var(--ink-secondary,#94a3b8);margin:0;font-size:.78rem}.synoptic-node-row,.synoptic-conn-row{border-bottom:1px solid color-mix(in srgb, var(--line,#334155) 60%, transparent);flex-wrap:wrap;align-items:center;gap:6px;padding:6px 0;display:flex}.synoptic-node-row-name{color:var(--ink,#e2e8f0);white-space:nowrap;text-overflow:ellipsis;flex:100%;font-size:.82rem;font-weight:600;overflow:hidden}.synoptic-node-row-unit{color:var(--ink-secondary,#94a3b8);font-weight:400}.synoptic-node-row-controls{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.synoptic-node-row select,.synoptic-conn-row select{border:1px solid var(--line,#334155);background:var(--bg-raised,#1e293b);color:var(--ink,#e2e8f0);border-radius:6px;max-width:130px;padding:4px 6px;font-size:.8rem}.synoptic-xy{color:var(--ink-secondary,#94a3b8);align-items:center;gap:3px;font-size:.72rem;display:inline-flex}.synoptic-xy input{border:1px solid var(--line,#334155);background:var(--bg-raised,#1e293b);width:46px;color:var(--ink,#e2e8f0);border-radius:6px;padding:4px;font-size:.78rem}.synoptic-conn-arrow{color:var(--ink-secondary,#94a3b8)}.synoptic-flow-btn{border:1px dashed var(--line,#64748b);color:var(--ink-secondary,#94a3b8);cursor:pointer;white-space:nowrap;text-overflow:ellipsis;background:0 0;border-radius:6px;max-width:130px;padding:4px 8px;font-size:.75rem;overflow:hidden}.synoptic-flow-btn.has-flow{border-style:solid;border-color:var(--brand,#3b82f6);color:var(--brand,#3b82f6)}.synoptic-icon-btn{color:var(--ink-secondary,#94a3b8);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;padding:5px;display:inline-flex}.synoptic-icon-btn:hover{color:#ef4444;background:#ef44441f}.synoptic-editor-footer{justify-content:flex-end;gap:8px;padding:14px 16px 4px;display:flex}@media (max-width:720px){.synoptic-editor-body{grid-template-columns:1fr;max-height:74vh;overflow-y:auto}}@media (prefers-reduced-motion:reduce){.synoptic-pipe-flow.is-flowing,.synoptic-halo,.synoptic-halo-alarm,.synoptic-spin{animation:none}}.config-web-group{align-items:center;gap:6px;display:inline-flex}.config-web-ttl{opacity:.85;align-items:center;gap:4px;font-size:11px;display:inline-flex}.config-web-ttl input{text-align:right;border:1px solid var(--border,#33415555);width:52px;color:inherit;background:0 0;border-radius:6px;padding:2px 4px;font-size:12px}.config-web-ttl input:disabled{opacity:.5}.remote-assist-view{flex-direction:column;gap:1.25rem;max-width:68rem;padding:1rem;display:flex}.remote-assist-view .ra-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.remote-assist-view h2{margin:0 0 .25rem;font-size:1.25rem}.remote-assist-view h3{opacity:.85;margin:0 0 .5rem;font-size:1rem}.remote-assist-view .ra-sub,.remote-assist-view .ra-meta,.remote-assist-view .ra-hint,.remote-assist-view .ra-empty{opacity:.7;margin:0;font-size:.85rem}.remote-assist-view .ra-warning,.remote-assist-view .ra-error{border:1px solid;border-radius:8px;padding:.75rem 1rem;font-size:.9rem}.remote-assist-view .ra-warning{border-color:var(--warn);color:var(--warn);background:color-mix(in srgb, var(--warn) 12%, transparent)}.remote-assist-view .ra-error{border-color:var(--danger);color:var(--danger);background:color-mix(in srgb, var(--danger) 12%, transparent)}.remote-assist-view .ra-form{border:1px solid var(--line);border-radius:10px;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:.75rem 1rem;padding:1rem;display:grid}.remote-assist-view .ra-form label{flex-direction:column;gap:.3rem;font-size:.85rem;display:flex}.remote-assist-view .ra-form input,.remote-assist-view .ra-form select{border:1px solid var(--line);background:var(--panel);color:inherit;font:inherit;border-radius:6px;min-height:44px;padding:.5rem .6rem}.remote-assist-view .ra-full{grid-column:1/-1}.remote-assist-view .ra-list{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.remote-assist-view .ra-item{border:1px solid var(--line);border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:.75rem;padding:.75rem 1rem;display:flex}.remote-assist-view .ra-item-past{opacity:.75}.remote-assist-view .ra-item-main,.remote-assist-view .ra-item-side{flex-direction:column;gap:.2rem;min-width:0;display:flex}.remote-assist-view .ra-item-side{text-align:right;align-items:flex-end}.remote-assist-view .ra-badge{border:1px solid;border-radius:999px;padding:.15rem .5rem;font-size:.75rem;font-weight:600}.remote-assist-view .ra-active{color:var(--ok)}.remote-assist-view .ra-pending{color:var(--warn)}.remote-assist-view .ra-revoked,.remote-assist-view .ra-failed{color:var(--danger)}.remote-assist-view .ra-expired{opacity:.7}.remote-assist-view .ra-steps{flex-wrap:wrap;gap:.25rem .75rem;margin:.4rem 0 0;padding:0;font-size:.78rem;list-style:none;display:flex}.remote-assist-view .ra-step{opacity:.55;align-items:center;gap:.3rem;display:flex}.remote-assist-view .ra-step-done{opacity:1;color:var(--ok);font-weight:600}.remote-assist-view .ra-step-dot{border:1px solid;border-radius:999px;flex:none;justify-content:center;align-items:center;width:1.1em;height:1.1em;font-size:.7em;line-height:1;display:inline-flex}.remote-assist-view .ra-step-note{opacity:.75;font-style:normal;font-weight:400}.remote-assist-view .ra-actions{flex-wrap:wrap;justify-content:flex-end;gap:.4rem;margin-top:.25rem;display:flex}.remote-assist-view .ra-actions button{min-height:44px;padding-inline:.9rem}@media (max-width:640px){.remote-assist-view .ra-item-side{text-align:left;align-items:flex-start}.remote-assist-view .ra-item{flex-direction:column}.remote-assist-view .ra-item-main,.remote-assist-view .ra-item-side{width:100%}.remote-assist-view .ra-actions{justify-content:flex-start;width:100%}.remote-assist-view .ra-actions button{flex:10rem}}.activation-preview-modal{max-width:560px}.activation-preview-block{border-top:1px solid var(--border);margin-top:12px;padding-top:10px}.activation-preview-block:first-of-type{border-top:none;padding-top:0}.activation-preview-block h4{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);margin:0 0 6px;font-size:.82rem}.activation-preview-block ul{margin:0;padding-left:18px}.activation-preview-warn{color:var(--warn);font-weight:600}.activation-preview-ttl{color:var(--text-muted);margin-top:12px;font-style:italic}.vmuda-card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px}.vmuda-title{color:var(--ink);align-items:center;gap:6px;margin:0 0 8px;font-size:.95rem;font-weight:600;display:flex}.vmuda-hint{color:var(--ink-secondary);margin:0 0 10px;font-size:.82rem;line-height:1.45}.vmuda-lista{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.vmuda-item{border:1px solid var(--line);border-left:3px solid var(--warn);background:var(--bg-raised);border-radius:8px;padding:10px 12px}.vmuda-item-head{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.vmuda-nombre{color:var(--ink);word-break:break-word;font-weight:600}.vmuda-badge{letter-spacing:.02em;white-space:nowrap;border:1px solid;border-radius:999px;padding:2px 7px;font-size:.7rem;font-weight:600}.vmuda-badge.es-nunca{color:var(--danger);background:var(--danger-dim)}.vmuda-item:has(.es-nunca){border-left-color:var(--danger)}.vmuda-badge.es-callada{color:var(--warn);background:var(--warn-dim)}.vmuda-meta{color:var(--muted);flex-wrap:wrap;gap:4px 10px;margin-top:4px;font-size:.75rem;display:flex}.vmuda-desde{color:var(--ink-secondary);font-weight:600}.vmuda-accion{color:var(--ink-secondary);margin:6px 0 0;font-size:.78rem;line-height:1.45}@media (min-width:720px){.vmuda-lista{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));display:grid}}
