@import "https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700&family=Fira+Code:wght@400;500&display=swap";:root{--bg-base:#080c14;--bg-panel:#101625bf;--bg-card:#161e3180;--border-glow:#00d9ff33;--border-subtle:#ffffff14;--text-primary:#f3f6fa;--text-secondary:#8f9cae;--text-muted:#5c6b80;--neon-ok:#00ff9d;--neon-warn:#ffb700;--neon-danger:#ff4757;--neon-info:#00d9ff;--neon-blue:#2563eb;--neon-orange:#ff8c00;--brand-danfoss:#da0811;--brand-siemens:#099;--brand-weg:#0064a6;--brand-abb:#e2001a;--brand-schneider:#3dcd58;--font-sans:"Outfit", sans-serif;--font-mono:"Fira Code", monospace;--transition-fast:.15s ease}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-base);color:var(--text-primary);font-family:var(--font-sans);background-image:radial-gradient(at 0 0,#00d9ff0f 0,#0000 50%),radial-gradient(at 100% 100%,#00ff9d0a 0,#0000 50%);min-height:100vh;overflow-x:hidden}.app-container{flex-direction:column;gap:.75rem;height:100vh;padding:.75rem;display:flex}header{background:var(--bg-panel);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--border-subtle);border-radius:10px;justify-content:space-between;align-items:center;padding:.75rem 1.25rem;display:flex}.logo-section{align-items:center;gap:.75rem;display:flex}.logo-icon{background:linear-gradient(135deg, var(--neon-info), var(--neon-ok));width:32px;height:32px;color:var(--bg-base);border-radius:6px;justify-content:center;align-items:center;font-weight:700;display:flex}.logo-text h1{font-size:1.2rem;font-weight:700}.logo-text span{color:var(--neon-info);text-transform:uppercase;letter-spacing:1.5px;font-size:.65rem;display:block}.system-status{align-items:center;gap:1.25rem;display:flex}.status-indicator{color:var(--text-secondary);align-items:center;gap:.4rem;font-size:.8rem;display:flex}.led{background-color:var(--text-muted);border-radius:50%;width:8px;height:8px}.led.active-sim{background-color:var(--neon-info);box-shadow:0 0 10px var(--neon-info)}.led.active-serial{background-color:var(--neon-ok);box-shadow:0 0 10px var(--neon-ok)}.led.active-profile{background-color:var(--neon-info);box-shadow:0 0 10px var(--neon-info)}.led.inactive{background-color:var(--text-muted)}.profile-badge{white-space:nowrap;background:#00d9ff0f;border:1px solid #00d9ff40;border-radius:6px;gap:.5rem;padding:.25rem .7rem}.profile-badge strong{color:var(--neon-info);font-size:.8rem;font-weight:600}.profile-badge em{color:var(--text-secondary);font-size:.7rem;font-style:normal}.profile-badge[data-vendor=DANFOSS]{border-color:var(--brand-danfoss);background:color-mix(in srgb, var(--brand-danfoss) 8%, transparent)}.profile-badge[data-vendor=DANFOSS] .led{background:var(--brand-danfoss);box-shadow:0 0 10px var(--brand-danfoss)}.profile-badge[data-vendor=DANFOSS] strong{color:var(--brand-danfoss)}.profile-badge[data-vendor=SIEMENS]{border-color:var(--brand-siemens);background:color-mix(in srgb, var(--brand-siemens) 8%, transparent)}.profile-badge[data-vendor=SIEMENS] .led{background:var(--brand-siemens);box-shadow:0 0 10px var(--brand-siemens)}.profile-badge[data-vendor=SIEMENS] strong{color:var(--brand-siemens)}.profile-badge[data-vendor=WEG]{border-color:var(--brand-weg);background:color-mix(in srgb, var(--brand-weg) 8%, transparent)}.profile-badge[data-vendor=WEG] .led{background:var(--brand-weg);box-shadow:0 0 10px var(--brand-weg)}.profile-badge[data-vendor=WEG] strong{color:var(--brand-weg)}.profile-badge[data-vendor=SCHNEIDER]{border-color:var(--brand-schneider);background:color-mix(in srgb, var(--brand-schneider) 8%, transparent)}.profile-badge[data-vendor=SCHNEIDER] .led{background:var(--brand-schneider);box-shadow:0 0 10px var(--brand-schneider)}.profile-badge[data-vendor=SCHNEIDER] strong{color:var(--brand-schneider)}.dashboard-grid{flex:1;grid-template-columns:310px 1fr 320px;gap:.75rem;display:grid;overflow:hidden}.panel{background:var(--bg-panel);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--border-subtle);border-radius:10px;flex-direction:column;display:flex;overflow:hidden}.panel-header{border-bottom:1px solid var(--border-subtle);padding:.75rem 1rem}.panel-header h2{text-transform:uppercase;letter-spacing:1px;color:var(--text-primary);font-size:.85rem}.panel-content{flex-direction:column;flex:1;gap:1rem;padding:1rem;display:flex;overflow-y:auto}.section-title{color:var(--text-muted);text-transform:uppercase;letter-spacing:1px;border-bottom:1px solid #ffffff08;margin-top:.3rem;padding-bottom:.2rem;font-size:.7rem}.control-group{flex-direction:column;gap:.3rem;display:flex}.control-label{color:var(--text-secondary);justify-content:space-between;font-size:.75rem;display:flex}.control-value{font-family:var(--font-mono);color:var(--neon-info)}select,input[type=range]{width:100%}select{background:var(--bg-base);border:1px solid var(--border-subtle);color:var(--text-primary);border-radius:6px;outline:none;padding:.4rem .6rem;font-size:.8rem}select:focus{border-color:var(--neon-info)}input[type=range]{-webkit-appearance:none;background:var(--bg-base);border-radius:2px;outline:none;height:4px;margin:6px 0}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;background:var(--neon-info);cursor:pointer;border-radius:50%;width:12px;height:12px}.btn{background:var(--bg-card);border:1px solid var(--border-subtle);color:var(--text-primary);cursor:pointer;transition:all var(--transition-fast);border-radius:6px;padding:.5rem .8rem;font-size:.75rem;font-weight:500}.btn:hover{border-color:var(--text-secondary)}.btn-primary{border-color:var(--neon-info);color:var(--neon-info)}.btn-danger{border-color:var(--neon-danger);color:var(--neon-danger)}.btn-group{grid-template-columns:1fr 1fr;gap:.4rem;display:grid}.center-column{flex-direction:column;gap:.75rem;display:flex;overflow:hidden}.telemetry-grid{grid-template-columns:repeat(4,1fr);gap:.6rem;display:grid}.gauge-card{background:var(--bg-card);border:1px solid var(--border-subtle);text-align:center;border-radius:8px;padding:.75rem;position:relative;overflow:hidden}.gauge-card:before{content:"";background:var(--neon-info);width:100%;height:2px;position:absolute;top:0;left:0}.gauge-label{color:var(--text-secondary);text-transform:uppercase;font-size:.7rem}.gauge-value{font-family:var(--font-mono);font-size:1.5rem;font-weight:600}.gauge-value-wave{color:var(--neon-ok);text-shadow:0 0 10px #00ff9d59}.gauge-value-danger{color:var(--neon-danger);text-shadow:0 0 10px #ff475759}.gauge-value-blue{color:var(--neon-blue);text-shadow:0 0 10px #2563eb59}.gauge-value-orange{color:var(--neon-orange);text-shadow:0 0 10px #ff8c0059}.gauge-unit{color:var(--text-muted);font-size:.75rem}.oscilloscope-panel{flex-direction:column;flex:1;min-height:180px;display:flex}.canvas-container{background:#04060b;border-radius:6px;flex:1;position:relative;overflow:hidden}canvas#oscilloscope{width:100%;height:100%;display:block}.terminal-panel{height:160px}.terminal-header{justify-content:space-between;align-items:center;display:flex}.terminal-btn-small{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;font-size:.7rem}.terminal-console{font-family:var(--font-mono);background:#04060a;flex:1;padding:.6rem;font-size:.7rem;overflow-y:auto}.log-entry{white-space:pre-wrap;word-break:break-all;margin-bottom:.25rem}.log-time{color:var(--text-muted);margin-right:.4rem}.log-tx{color:var(--neon-info)}.log-rx{color:var(--neon-ok)}.log-error{color:var(--neon-danger)}.log-system{color:var(--text-secondary);font-style:italic}.health-meter-container{flex-direction:column;gap:.25rem;display:flex}.health-meter-label{color:var(--text-secondary);justify-content:space-between;font-size:.75rem;display:flex}.health-meter-bar-wrapper{background:var(--bg-base);border-radius:3px;height:6px;overflow:hidden}.health-meter-bar{border-radius:3px;width:0%;height:100%;transition:width .4s}.recommendations-list{flex-direction:column;flex:1;gap:.5rem;display:flex;overflow-y:auto}.rec-card{background:var(--bg-card);border-left:3px solid var(--text-muted);border-radius:4px;padding:.6rem;font-size:.75rem}.rec-card.rec-ok{border-left-color:var(--neon-ok)}.rec-card.rec-warn{border-left-color:var(--neon-warn)}.rec-card.rec-danger{border-left-color:var(--neon-danger)}.rec-header{justify-content:space-between;margin-bottom:.2rem;font-weight:600;display:flex}.rec-title-ok{color:var(--neon-ok)}.rec-title-warn{color:var(--neon-warn)}.rec-title-danger{color:var(--neon-danger)}.rec-timestamp{font-family:var(--font-mono);color:var(--text-muted);font-size:.65rem}.rec-body{color:var(--text-secondary);line-height:1.3}.rec-action{color:var(--neon-info);border-top:1px solid #ffffff08;margin-top:.3rem;padding-top:.2rem;font-size:.7rem}.bit-grid{background:var(--bg-base);border-radius:6px;grid-template-columns:repeat(2,1fr);gap:.3rem;padding:.5rem;display:grid}.bit-item{color:var(--text-secondary);align-items:center;gap:.3rem;font-size:.7rem;display:flex}.bit-dot{background:var(--text-muted);border-radius:50%;width:6px;height:6px}.bit-dot.active{background:var(--neon-danger);box-shadow:0 0 6px var(--neon-danger)}.bit-dot.warning-active{background:var(--neon-warn);box-shadow:0 0 6px var(--neon-warn)}.trip-banner{border:1px solid var(--neon-danger);color:#ffb3ba;background:#ff475726;border-radius:6px;justify-content:space-between;align-items:center;padding:.5rem .8rem;font-size:.8rem;display:none}.trip-banner-reset{background:var(--neon-danger);color:#fff;cursor:pointer;border:none;border-radius:4px;padding:.2rem .5rem}.switch-container{justify-content:space-between;align-items:center;display:flex}.switch{width:34px;height:18px;display:inline-block;position:relative}.switch input{opacity:0;width:0;height:0}.slider-switch{cursor:pointer;background-color:var(--bg-base);border:1px solid var(--border-subtle);border-radius:18px;transition:all .3s;position:absolute;inset:0}.slider-switch:before{content:"";background-color:var(--text-secondary);border-radius:50%;width:10px;height:10px;transition:all .3s;position:absolute;bottom:3px;left:3px}input:checked+.slider-switch{border-color:var(--neon-info);background-color:#00d9ff33}input:checked+.slider-switch:before{background-color:var(--neon-info);transform:translate(16px)}.analytics-section{flex-direction:column;gap:.5rem;display:flex}.trend-chart-container{grid-template-columns:1fr 1fr;gap:.4rem;display:grid}.trend-chart{background:var(--bg-base);border-radius:6px;width:100%;min-width:0;height:130px;min-height:100px}.analytics-actions{gap:.4rem;margin-top:.3rem;display:flex}.analytics-actions .btn{flex:1;padding:.4rem;font-size:.7rem}.widget-header{border-bottom:1px solid var(--border-subtle);cursor:grab;background:#00d9ff14;justify-content:space-between;align-items:center;padding:.4rem .6rem;display:flex}.widget-title{color:var(--text-primary);font-size:.75rem;font-weight:600}.widget-close{color:var(--neon-danger);cursor:pointer;background:0 0;border:none;font-size:1rem;line-height:1}.widget-body{padding:.5rem}@media (width<=1200px){.dashboard-grid{grid-template-columns:280px 1fr 280px}}@media (width<=992px){.dashboard-grid{grid-template-columns:1fr;overflow-y:auto}.telemetry-grid{grid-template-columns:repeat(2,1fr)}header{flex-direction:column;align-items:flex-start;gap:.5rem}.system-status{flex-wrap:wrap;width:100%}.app-container{height:auto;min-height:100vh}}@media (width<=480px){.telemetry-grid,.btn-group{grid-template-columns:1fr}.gauge-value{font-size:1.2rem}header{padding:.5rem .75rem}.panel-content{padding:.5rem}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.panel{animation:.3s fadeInUp}.gauge-card{transition:transform .2s,box-shadow .2s}.gauge-card:hover{transform:translateY(-2px);box-shadow:0 4px 20px #00d9ff1a}.skeleton{background:linear-gradient(90deg, var(--bg-card) 25%, #ffffff0d 50%, var(--bg-card) 75%);background-size:200% 100%;border-radius:4px;animation:1.5s infinite shimmer}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton-text{width:80%;height:.7rem;margin-bottom:.4rem}.skeleton-bar{width:100%;height:6px;margin-bottom:.5rem}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--text-muted);border-radius:2px}::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}.badge{background:var(--neon-danger);color:#fff;text-align:center;border-radius:8px;min-width:16px;padding:.1rem .35rem;font-size:.6rem;font-weight:600;line-height:1.2}.catalog-selector{flex-direction:column;gap:.5rem;display:flex}.catalog-selector-header{justify-content:space-between;align-items:center;display:flex}.catalog-actions{gap:.3rem;display:flex}.catalog-actions .btn{border-radius:4px;padding:.2rem .5rem;font-size:.6rem}.catalog-manager-panel{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:6px;margin-bottom:.3rem;padding:.5rem}.catalog-manager-panel.hidden{display:none}.catalog-upload-area{border:2px dashed var(--text-muted);text-align:center;color:var(--text-muted);cursor:pointer;transition:border-color var(--transition-fast), background var(--transition-fast);border-radius:6px;padding:1rem;font-size:.7rem}.catalog-upload-area:hover,.catalog-upload-area.drag-over{border-color:var(--neon-info);background:#00d9ff0d}.catalog-upload-placeholder{pointer-events:none}.catalog-list{color:var(--text-secondary);margin-top:.5rem;font-size:.65rem}.catalog-list-empty{text-align:center;color:var(--text-muted);padding:.5rem;font-size:.65rem}.catalog-list-item{border:1px solid var(--border-subtle);background:var(--bg-base);transition:border-color var(--transition-fast);border-radius:5px;justify-content:space-between;align-items:center;margin-bottom:.35rem;padding:.4rem .5rem;display:flex}.catalog-list-item:hover{border-color:var(--border-glow)}.catalog-list-info{flex-direction:column;gap:.1rem;min-width:0;display:flex}.catalog-list-vendor{color:var(--accent);font-size:.7rem;font-weight:600}.catalog-list-family{color:var(--text-primary);font-size:.65rem}.catalog-list-meta{color:var(--text-muted);font-size:.6rem}.btn-remove-catalog{border:1px solid var(--red);color:var(--red);cursor:pointer;transition:background var(--transition-fast);background:0 0;border-radius:4px;flex-shrink:0;padding:.2rem .5rem;font-size:.6rem}.btn-remove-catalog:hover{background:#ff475726}.catalog-list-actions{gap:.3rem;margin-bottom:.4rem;display:flex}.catalog-list-actions .btn{border-radius:4px;padding:.2rem .5rem;font-size:.6rem}.catalog-vendor-tabs{flex-wrap:wrap;gap:.25rem;display:flex}.catalog-tab{background:var(--bg-card);border:1px solid var(--border-subtle);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);font-size:.65rem;font-family:var(--font-sans);text-transform:uppercase;border-radius:4px;padding:.25rem .6rem}.catalog-tab:hover{border-color:var(--neon-info);color:var(--text-primary)}.catalog-tab.active{border-color:var(--neon-info);color:var(--neon-info);background:#00d9ff26}.catalog-tab[data-vendor=DANFOSS]:hover,.catalog-tab[data-vendor=DANFOSS].active{background:var(--brand-danfoss);border-color:var(--brand-danfoss);color:#fff}.catalog-tab[data-vendor=SIEMENS]:hover,.catalog-tab[data-vendor=SIEMENS].active{background:var(--brand-siemens);border-color:var(--brand-siemens);color:#fff}.catalog-tab[data-vendor=WEG]:hover,.catalog-tab[data-vendor=WEG].active{background:var(--brand-weg);border-color:var(--brand-weg);color:#fff}.catalog-tab[data-vendor=ABB]:hover,.catalog-tab[data-vendor=ABB].active{border-color:var(--brand-abb);color:var(--brand-abb);background:#fff}.catalog-tab[data-vendor=SCHNEIDER]:hover,.catalog-tab[data-vendor=SCHNEIDER].active{background:var(--brand-schneider);border-color:var(--brand-schneider);color:#fff}.catalog-search{position:relative}.catalog-search-input{background:var(--bg-card);border:1px solid var(--border-subtle);width:100%;color:var(--text-primary);font-size:.7rem;font-family:var(--font-sans);transition:border-color var(--transition-fast);border-radius:4px;outline:none;padding:.35rem .5rem}.catalog-search-input:focus{border-color:var(--neon-info)}.catalog-search-input::placeholder{color:var(--text-muted)}.catalog-select-actions{margin-top:.4rem}.catalog-select-actions.hidden{display:none}.catalog-model-list{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:4px;flex-direction:column;gap:.2rem;max-height:200px;padding:.25rem;display:flex;overflow-y:auto}.catalog-model-item{cursor:pointer;transition:background var(--transition-fast);border-radius:3px;padding:.3rem .4rem}.catalog-model-item:hover{background:#00d9ff14}.catalog-model-item.selected{background:#00d9ff26;border:1px solid #00d9ff4d}.catalog-model-name{color:var(--text-primary);font-size:.7rem;font-weight:500}.catalog-model-meta{color:var(--text-muted);font-size:.6rem;font-family:var(--font-mono);margin-top:.1rem}.catalog-empty{color:var(--text-muted);text-align:center;padding:1rem;font-size:.7rem}.catalog-specs-card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:6px;padding:.5rem}.catalog-specs-card.hidden{display:none}.specs-title{color:var(--neon-info);text-transform:uppercase;letter-spacing:.5px;margin-bottom:.4rem;font-size:.7rem;font-weight:600}.specs-rul-title{color:var(--neon-ok);text-transform:uppercase;letter-spacing:.5px;margin-top:.5rem;margin-bottom:.4rem;font-size:.7rem;font-weight:600}.specs-grid{grid-template-columns:1fr 1fr;gap:.2rem;display:grid}.spec-item{background:#080c1466;border-radius:2px;justify-content:space-between;padding:.15rem .3rem;font-size:.65rem;display:flex}.spec-label{color:var(--text-muted)}.spec-value{color:var(--text-primary);font-family:var(--font-mono);font-weight:500}.btn-select-model{width:100%;margin-top:.5rem;padding:.4rem;font-size:.7rem}.auth-section{border-left:1px solid var(--border-subtle);align-items:center;gap:.5rem;margin-left:.5rem;padding-left:.5rem;display:flex}.auth-section .btn.hidden{display:none!important}.user-email{color:var(--neon-info);font-size:.65rem;font-family:var(--font-mono);text-overflow:ellipsis;white-space:nowrap;max-width:180px;overflow:hidden}.auth-wall{background:var(--bg-base);z-index:2000;background-image:radial-gradient(at 30% 20%,#00d9ff14 0,#0000 50%),radial-gradient(at 70% 80%,#00ff9d0d 0,#0000 50%);flex-direction:column;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.auth-wall.hidden{display:none}.auth-wall-content{flex-direction:column;align-items:center;gap:.75rem;display:flex}.auth-wall-logo{width:80px;height:80px;color:var(--bg-base);background:linear-gradient(135deg, var(--neon-info), var(--neon-ok));border-radius:20px;justify-content:center;align-items:center;margin-bottom:.5rem;font-size:2.5rem;font-weight:700;display:flex;box-shadow:0 0 40px #00d9ff4d}.auth-wall-title{color:var(--text-primary);letter-spacing:3px;text-transform:uppercase;font-size:2.2rem;font-weight:700}.auth-wall-subtitle{color:var(--text-secondary);text-align:center;max-width:360px;font-size:.85rem;line-height:1.4}.auth-wall-version{color:var(--text-muted);font-size:.6rem;font-family:var(--font-mono);letter-spacing:1px}.auth-wall-btn{border-radius:8px;margin-top:.5rem;padding:.6rem 2.5rem;font-size:.85rem}.auth-wall-footer{color:var(--text-muted);font-size:.55rem;position:absolute;bottom:1.5rem}.auth-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:3000;background:#000000b3;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.auth-overlay.hidden{display:none}.auth-modal{background:var(--bg-panel);border:1px solid var(--border-glow);z-index:3001;opacity:0;pointer-events:none;min-width:360px;max-width:420px;transition:opacity var(--transition-fast), transform var(--transition-fast);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:12px;padding:0;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)scale(.9)}.auth-modal.open{opacity:1;pointer-events:auto;transform:translate(-50%,-50%)scale(1)}.auth-modal-header{border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;padding:1rem 1.25rem .5rem;display:flex}.auth-modal-header h3{color:var(--text-primary);font-size:.85rem;font-weight:600}.auth-modal-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:.2rem;font-size:1.2rem;line-height:1}.auth-modal-close:hover{color:var(--text-primary)}.auth-modal-body{padding:1rem 1.25rem}.auth-field-group{margin-bottom:.75rem}.auth-label{color:var(--text-secondary);margin-bottom:.25rem;font-size:.65rem;font-weight:500;display:block}.auth-input{background:var(--bg-card);border:1px solid var(--border-subtle);width:100%;color:var(--text-primary);font-family:var(--font-sans);transition:border-color var(--transition-fast);border-radius:6px;outline:none;padding:.5rem .65rem;font-size:.75rem}.auth-input:focus{border-color:var(--neon-info)}.auth-error{border:1px solid var(--neon-danger);color:var(--neon-danger);background:#ff47571a;border-radius:6px;margin-bottom:.75rem;padding:.5rem .65rem;font-size:.7rem}.auth-error.hidden{display:none}.auth-modal-footer{flex-direction:column;gap:.5rem;padding:.5rem 1.25rem 1rem;display:flex}.auth-submit-btn{width:100%;padding:.5rem;font-size:.75rem}.auth-toggle-btn{width:100%;font-size:.65rem}.auth-modal-back{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:.2rem;font-size:1rem;line-height:1}.auth-modal-back:hover{color:var(--text-primary)}.auth-modal-back.hidden{visibility:hidden}.auth-forgot-link{color:var(--neon-info);cursor:pointer;text-align:right;margin-top:.3rem;font-size:.6rem;display:block}.auth-forgot-link:hover{text-decoration:underline}.auth-reset-info{color:var(--neon-ok);text-align:center;padding:.5rem;font-size:.7rem}.user-menu{align-items:center;gap:.4rem;display:flex}.btn-logout{border:1px solid var(--neon-danger);color:var(--neon-danger);cursor:pointer;font-size:.6rem;font-family:var(--font-sans);transition:background var(--transition-fast);background:0 0;border-radius:4px;padding:.15rem .4rem}.btn-logout:hover{background:#ff475726}.pricing-modal{background:var(--bg-panel);border:1px solid var(--border-glow);z-index:1001;opacity:0;pointer-events:none;min-width:600px;max-width:720px;transition:opacity var(--transition-fast), transform var(--transition-fast);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:12px;padding:0;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)scale(.9)}.pricing-modal.open{opacity:1;pointer-events:auto;transform:translate(-50%,-50%)scale(1)}.pricing-grid{grid-template-columns:repeat(4,1fr);gap:.75rem;padding:1rem 1.25rem 1.25rem;display:grid}.pricing-card{background:var(--bg-card);border:1px solid var(--border-subtle);text-align:center;transition:border-color var(--transition-fast);border-radius:8px;padding:.75rem}.pricing-card:hover{border-color:var(--border-glow)}.pricing-name{color:var(--text-primary);text-transform:uppercase;letter-spacing:1px;font-size:.8rem;font-weight:700}.pricing-price{color:var(--neon-info);margin:.4rem 0;font-size:1.1rem;font-weight:700}.pricing-price small{color:var(--text-muted);font-size:.55rem;font-weight:400}.pricing-features{color:var(--text-secondary);margin:0;padding:0;font-size:.6rem;list-style:none}.pricing-features li{border-bottom:1px solid var(--border-subtle);padding:.2rem 0}.pricing-features li:last-child{border-bottom:none}.pricing-free .pricing-price{color:var(--neon-ok)}.pricing-basic .pricing-price{color:var(--neon-info)}.pricing-pro .pricing-price{color:var(--neon-warn)}.pricing-enterprise .pricing-price{color:var(--neon-danger)}.live-dashboard{background:var(--bg-panel);border:1px solid var(--border-glow);z-index:3001;opacity:0;pointer-events:none;min-width:720px;max-width:880px;max-height:80vh;transition:opacity var(--transition-fast), transform var(--transition-fast);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:12px;flex-direction:column;display:flex;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)scale(.9)}.live-dashboard.open{opacity:1;pointer-events:auto;transform:translate(-50%,-50%)scale(1)}.live-dashboard-header{border-bottom:1px solid var(--border-subtle);padding:.75rem 1rem}.live-dashboard-title-row{justify-content:space-between;align-items:center;margin-bottom:.4rem;display:flex}.live-dashboard-title-row h3{color:var(--text-primary);align-items:center;gap:.3rem;font-size:.85rem;font-weight:600;display:flex}.live-dot{color:var(--neon-ok);font-size:.7rem;animation:1.5s ease-in-out infinite pulse-dot}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.3}}.live-status-badge{color:var(--neon-ok);font-size:.6rem;font-family:var(--font-mono)}.live-dashboard-toolbar{color:var(--text-muted);align-items:center;gap:.6rem;font-size:.6rem;display:flex}.live-counter{font-family:var(--font-mono);color:var(--text-secondary)}.live-filter-label{color:var(--text-muted);align-items:center;gap:.3rem;display:flex}.live-filter-select{background:var(--bg-card);border:1px solid var(--border-subtle);color:var(--text-primary);font-size:.6rem;font-family:var(--font-sans);border-radius:4px;max-width:160px;padding:.15rem .3rem}.live-dashboard-body{flex:1;min-height:200px;padding:.5rem 1rem 1rem;overflow-y:auto}.live-table{border-collapse:collapse;width:100%;font-size:.6rem;font-family:var(--font-mono)}.live-table th{text-align:left;color:var(--text-muted);border-bottom:1px solid var(--border-subtle);text-transform:uppercase;letter-spacing:.5px;background:var(--bg-panel);padding:.3rem .4rem;font-weight:500;position:sticky;top:0}.live-table td{color:var(--text-secondary);border-bottom:1px solid #ffffff0a;padding:.25rem .4rem}.live-table tbody tr:hover{background:var(--bg-card)}.live-cell-time{color:var(--text-muted);white-space:nowrap}.live-cell-device{color:var(--neon-info);white-space:nowrap;text-overflow:ellipsis;max-width:120px;overflow:hidden}.live-cell-num{text-align:right;color:var(--text-primary)}.live-empty{text-align:center;color:var(--text-muted);padding:2rem;font-size:.7rem}.grid-stack{position:relative}.grid-stack-placeholder>.placeholder-content{background-color:#0000001a;width:auto;margin:0;position:absolute;z-index:0!important}.grid-stack>.grid-stack-item{width:var(--gs-column-width);height:var(--gs-cell-height);padding:0;position:absolute;top:0}.grid-stack>.grid-stack-item>.grid-stack-item-content{width:auto;margin:0;position:absolute;overflow:hidden auto}.grid-stack>.grid-stack-item.size-to-content:not(.size-to-content-max)>.grid-stack-item-content{overflow-y:hidden}.grid-stack:not(.grid-stack-rtl)>.grid-stack-item{left:0}.grid-stack.grid-stack-rtl>.grid-stack-item{right:0}.grid-stack>.grid-stack-item>.grid-stack-item-content,.grid-stack>.grid-stack-placeholder>.placeholder-content{top:var(--gs-item-margin-top);right:var(--gs-item-margin-right);bottom:var(--gs-item-margin-bottom);left:var(--gs-item-margin-left)}.grid-stack-item>.ui-resizable-handle{-ms-touch-action:none;touch-action:none;-webkit-user-select:none;user-select:none;z-index:100;font-size:.1px;display:block;position:absolute}.grid-stack-item.ui-resizable-autohide>.ui-resizable-handle,.grid-stack-item.ui-resizable-disabled>.ui-resizable-handle{display:none}.grid-stack-item>.ui-resizable-ne,.grid-stack-item>.ui-resizable-nw,.grid-stack-item>.ui-resizable-se,.grid-stack-item>.ui-resizable-sw{z-index:101;background-image:url("data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" stroke=\"%23666\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" viewBox=\"0 0 20 20\"><path d=\"m10 3 2 2H8l2-2v14l-2-2h4l-2 2\"/></svg>");background-position:50%;background-repeat:no-repeat}.grid-stack-item>.ui-resizable-ne,.grid-stack-item>.ui-resizable-sw{transform:rotate(45deg)}.grid-stack-item>.ui-resizable-nw,.grid-stack-item>.ui-resizable-se{transform:rotate(-45deg)}.grid-stack-item>.ui-resizable-nw{cursor:nw-resize;width:20px;height:20px;top:var(--gs-item-margin-top);left:var(--gs-item-margin-left)}.grid-stack-item>.ui-resizable-n{cursor:n-resize;height:10px;top:var(--gs-item-margin-top);left:25px;right:25px}.grid-stack-item>.ui-resizable-ne{cursor:ne-resize;width:20px;height:20px;top:var(--gs-item-margin-top);right:var(--gs-item-margin-right)}.grid-stack-item>.ui-resizable-e{cursor:e-resize;width:10px;top:15px;bottom:15px;right:var(--gs-item-margin-right)}.grid-stack-item>.ui-resizable-se{cursor:se-resize;width:20px;height:20px;bottom:var(--gs-item-margin-bottom);right:var(--gs-item-margin-right)}.grid-stack-item>.ui-resizable-s{cursor:s-resize;height:10px;left:25px;bottom:var(--gs-item-margin-bottom);right:25px}.grid-stack-item>.ui-resizable-sw{cursor:sw-resize;width:20px;height:20px;bottom:var(--gs-item-margin-bottom);left:var(--gs-item-margin-left)}.grid-stack-item>.ui-resizable-w{cursor:w-resize;width:10px;top:15px;bottom:15px;left:var(--gs-item-margin-left)}.grid-stack-item.ui-draggable-dragging>.ui-resizable-handle{display:none!important}.grid-stack-item.ui-draggable-dragging{will-change:left,right,top}.grid-stack-item.ui-resizable-resizing{will-change:width,height}.ui-draggable-dragging,.ui-resizable-resizing{z-index:10000}.ui-draggable-dragging>.grid-stack-item-content,.ui-resizable-resizing>.grid-stack-item-content{opacity:.8;box-shadow:1px 4px 6px #0003}.grid-stack-animate,.grid-stack-animate .grid-stack-item{transition:left .3s,right .3s,top .3s,height .3s,width .3s}.grid-stack-animate .grid-stack-item.grid-stack-placeholder,.grid-stack-animate .grid-stack-item.ui-draggable-dragging,.grid-stack-animate .grid-stack-item.ui-resizable-resizing{transition:left,right,top,height,width}.grid-stack>.grid-stack-item[gs-y="0"]{top:0}.grid-stack:not(.grid-stack-rtl)>.grid-stack-item[gs-x="0"]{left:0}.grid-stack.grid-stack-rtl>.grid-stack-item[gs-x="0"]{right:0}
