.app-container{display:grid;grid-template-columns:minmax(220px,280px) 1fr minmax(300px,380px);grid-template-rows:64px 1fr;grid-template-areas:"header header header" "nav main aside";height:100vh;width:100vw;max-width:100%;position:relative;z-index:1000;overflow-x:hidden}.app-container.no-side-panel{grid-template-columns:minmax(220px,280px) 1fr;grid-template-areas:"header header" "nav main"}.app-bar{grid-area:header;background:var(--md-sys-color-surface-2);box-shadow:var(--md-elevation-2);display:flex;align-items:center;padding:0 24px;justify-content:space-between;position:relative;z-index:1002}.app-bar-start,.app-bar-end{display:flex;align-items:center;gap:24px;position:relative}.app-title{font-size:var(--md-sys-typescale-title-large);font-weight:400;color:var(--md-sys-color-on-surface);display:flex;align-items:center;gap:12px}.logo-icon{width:40px;height:40px;background:var(--md-sys-color-primary);color:var(--md-sys-color-on-primary);border-radius:12px;display:flex;align-items:center;justify-content:center;font-weight:500}.chip{display:inline-flex;align-items:center;height:32px;padding:0 16px;background:rgba(141,205,255,.15);color:var(--md-sys-color-primary);border-radius:8px;font-size:14px;font-weight:500;gap:8px;border:1px solid rgba(141,205,255,.3)}.chip-green{display:inline-flex;align-items:center;height:32px;padding:0 16px;background:rgba(76,175,80,.15);color:#4caf50;border-radius:8px;font-size:14px;font-weight:500;gap:8px;border:1px solid rgba(76,175,80,.3)}.timer-display{display:flex;align-items:center;gap:8px;padding:8px 16px;background:var(--md-sys-color-surface-3);border-radius:20px;font-family:'Roboto Mono',monospace;color:var(--md-sys-color-primary);border:1px solid var(--md-sys-color-outline-variant)}.icon-button{width:40px;height:40px;border-radius:50%;background:transparent;border:0;color:var(--md-sys-color-on-surface-variant);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.icon-button:hover{background:var(--md-sys-color-surface-variant)}.navigation-drawer{grid-area:nav;background:var(--md-sys-color-surface-1);border-right:1px solid var(--md-sys-color-outline-variant);display:flex;flex-direction:column;overflow:hidden}.drawer-header{padding:16px;background:var(--md-sys-color-surface-2)}.section-title{font-size:var(--md-sys-typescale-title-medium);font-weight:500;color:var(--md-sys-color-on-surface);margin-bottom:16px}.view-buttons{display:flex;gap:8px;padding:0 16px 16px 16px;background:var(--md-sys-color-surface-2);border-bottom:1px solid var(--md-sys-color-outline-variant)}.view-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:10px 16px;border:1px solid var(--md-sys-color-outline-variant);border-radius:12px;background:var(--md-sys-color-surface-1);color:var(--md-sys-color-on-surface-variant);font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease}.view-btn:hover{background:linear-gradient(135deg,rgba(141,205,255,.08),rgba(204,191,255,.03));border-color:var(--md-sys-color-primary);color:var(--md-sys-color-on-surface)}.view-btn.active{background:linear-gradient(135deg,rgba(141,205,255,.15),rgba(204,191,255,.08));border-color:var(--md-sys-color-primary);color:var(--md-sys-color-primary);box-shadow:0 0 0 1px rgba(141,205,255,.2) inset}.view-btn svg{flex-shrink:0}.device-list{flex:1;overflow-y:auto;padding:8px;padding-top:8px}.device-search-container{padding:8px 8px 0 8px;margin-top:8px;position:sticky;top:0;background:var(--md-sys-color-surface-1);z-index:1}.device-search-input-wrapper{position:relative;display:flex;align-items:center}.device-search-icon{position:absolute;left:12px;color:var(--md-sys-color-outline);pointer-events:none}.device-search-input{width:100%;padding:10px 36px 10px 36px;border:1px solid var(--md-sys-color-outline-variant);border-radius:8px;background:var(--md-sys-color-surface-container);color:var(--md-sys-color-on-surface);font-size:13px;outline:0;transition:all .2s ease}.device-search-input::placeholder{color:var(--md-sys-color-outline)}.device-search-input:focus{border-color:var(--md-sys-color-primary);box-shadow:0 0 0 2px rgba(141,205,255,.1)}.device-search-clear{position:absolute;right:8px;width:24px;height:24px;border:0;background:transparent;cursor:pointer;color:var(--md-sys-color-outline);display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .2s ease}.device-search-clear:hover{background:var(--md-sys-color-surface-variant);color:var(--md-sys-color-on-surface)}.device-search-count{font-size:11px;color:var(--md-sys-color-outline);padding:4px 4px 8px 4px;text-align:right}.list-item.hidden-by-search{display:none}.list-item{display:flex;align-items:center;padding:12px 16px;border-radius:12px;background:var(--md-sys-color-surface-1);margin-bottom:4px;cursor:pointer;transition:all .2s ease;border:1px solid var(--md-sys-color-outline-variant)}.list-item:hover{background:linear-gradient(135deg,rgba(141,205,255,.08),rgba(204,191,255,.03));border-color:var(--md-sys-color-primary);transform:translateX(4px);box-shadow:0 2px 8px rgba(141,205,255,.15)}.list-item.selected{background:linear-gradient(135deg,rgba(141,205,255,.1),rgba(204,191,255,.05));border-color:var(--md-sys-color-primary);box-shadow:0 0 0 1px rgba(141,205,255,.2) inset}.list-item-icon{width:40px;height:40px;border-radius:50%;background:var(--md-sys-color-surface-variant);display:flex;align-items:center;justify-content:center;margin-right:16px;font-weight:500;color:var(--md-sys-color-on-surface-variant);transition:all .2s ease}.list-item:hover .list-item-icon{background:rgba(141,205,255,.2);color:var(--md-sys-color-primary)}.list-item.selected .list-item-icon{background:var(--md-sys-color-primary);color:var(--md-sys-color-on-primary)}.list-item-content{flex:1}.list-item-title{font-size:var(--md-sys-typescale-body-large);font-weight:400;margin-bottom:2px;transition:all .2s ease;display:flex;align-items:center;gap:6px}.list-item:hover .list-item-title{color:var(--md-sys-color-primary);font-weight:500}.power-indicator{display:inline-flex;align-items:center;transition:all .3s ease}.power-indicator.powered-on{color:var(--md-sys-color-success,#81c784)}.power-indicator.powered-off{color:var(--md-sys-color-error,#f2b8b5);opacity:.7}.list-item[data-powered-on="false"]{opacity:.5}.list-item[data-powered-on="false"] .list-item-icon{filter:grayscale(100%);opacity:.6}.list-item[data-powered-on="false"] .status-indicator{background:var(--md-sys-color-outline,#666);animation:none;box-shadow:none}.list-item-subtitle{font-size:var(--md-sys-typescale-body-medium);color:var(--md-sys-color-on-surface-variant);display:flex;align-items:center;gap:8px}.status-indicator{width:8px;height:8px;border-radius:50%;background:var(--md-sys-color-success);animation:pulse 2s infinite;box-shadow:0 0 8px rgba(129,199,132,.5)}.status-indicator.offline{background:var(--md-sys-color-outline);animation:none;box-shadow:none}.interface-indicators{display:flex;gap:4px;margin-top:8px}.interface-dot{width:24px;height:4px;border-radius:2px;background:var(--md-sys-color-outline-variant)}.interface-dot.active{background:var(--md-sys-color-success);box-shadow:0 0 4px rgba(129,199,132,.5)}.main-content{grid-area:main;background:var(--md-sys-color-background);display:flex;flex-direction:column;overflow:hidden;height:100%;min-height:0}.view-nav-bar{display:flex;align-items:center;gap:4px;padding:8px 16px;background:var(--md-sys-color-surface-1);border-bottom:1px solid var(--md-sys-color-outline-variant);flex-shrink:0}.view-nav-tab{display:flex;align-items:center;gap:8px;padding:10px 20px;border:0;border-radius:24px;background:transparent;color:var(--md-sys-color-on-surface-variant);font-size:14px;font-weight:500;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);position:relative}.view-nav-tab:hover{background:rgba(141,205,255,.08);color:var(--md-sys-color-on-surface)}.view-nav-tab.active{background:linear-gradient(135deg,rgba(141,205,255,.2),rgba(204,191,255,.1));color:var(--md-sys-color-primary);box-shadow:0 0 0 1px rgba(141,205,255,.3) inset}.view-nav-tab.active svg{color:var(--md-sys-color-primary)}.view-nav-tab svg{flex-shrink:0;transition:color .2s ease}.view-nav-tab:active{transform:scale(.98)}.tab-bar{background:var(--md-sys-color-surface-1);box-shadow:var(--md-elevation-1);display:flex;align-items:center;justify-content:space-between;position:relative}.tab-bar-tabs-wrapper{flex:1;overflow:hidden;position:relative}#terminalTabs{display:flex!important;flex-direction:row!important;align-items:center;overflow-x:auto;overflow-y:hidden;flex-wrap:nowrap;gap:0;scroll-behavior:smooth;scrollbar-width:none;-ms-overflow-style:none}#terminalTabs::-webkit-scrollbar{display:none}.tab-scroll-btn{flex-shrink:0;width:40px;height:48px;background:var(--md-sys-color-surface-2);border:0;color:var(--md-sys-color-on-surface-variant);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;z-index:10;position:relative}.tab-scroll-btn:hover{background:var(--md-sys-color-surface-3);color:var(--md-sys-color-primary)}.tab-scroll-btn:active{transform:scale(.95)}.tab-scroll-btn:disabled{opacity:.3;cursor:not-allowed}.tab-scroll-left{border-right:1px solid var(--md-sys-color-outline-variant)}.tab-scroll-right{border-left:1px solid var(--md-sys-color-outline-variant)}.tab{min-width:140px;max-width:220px;padding:0 16px;height:48px;background:transparent;border:0;color:var(--md-sys-color-on-surface-variant);font-size:var(--md-sys-typescale-label-large);font-weight:500;cursor:pointer;transition:all .2s ease;position:relative;display:inline-flex!important;align-items:center;justify-content:center;gap:8px;flex-shrink:0;flex-grow:0;white-space:nowrap;vertical-align:top;float:none}.tab-icon{width:20px;height:20px;filter:brightness(0) saturate(100%) invert(50%) sepia(0%) saturate(0%) hue-rotate(0deg) brightness(85%) contrast(90%);transition:filter .2s ease}.tab.active .tab-icon{filter:brightness(0) saturate(100%) invert(27%) sepia(98%) saturate(2213%) hue-rotate(207deg) brightness(94%) contrast(101%)}.tab-name{font-size:var(--md-sys-typescale-label-medium);font-weight:500}.tab:hover{background:var(--md-sys-color-surface-3)}.tab.active{color:var(--md-sys-color-primary)}.tab.active::after{content:'';position:absolute;bottom:0;left:0;right:0;height:3px;background:var(--md-sys-color-primary);border-radius:3px 3px 0 0}.topology-tab{margin-left:auto;border-left:1px solid var(--md-sys-color-outline-variant);background:var(--md-sys-color-surface-2)}.topology-tab:hover{background:var(--md-sys-color-surface-3)}.topology-tab.active{background:linear-gradient(135deg,rgba(141,205,255,.1),rgba(204,191,255,.05))}#terminals{flex:1;display:flex;flex-direction:column;overflow:hidden;height:100%;min-height:0}.terminal-tab-content{flex:1;display:flex;flex-direction:column;overflow:hidden;height:100%;padding:0;min-height:0}.terminal:not(.xterm){flex:1;background:#0a0d10;color:#d4d4d4;padding:24px;font-family:'Roboto Mono',monospace;font-size:14px;overflow-y:auto;margin:16px;border-radius:12px;box-shadow:var(--md-elevation-1);border:1px solid var(--md-sys-color-outline-variant)}.terminal.xterm{margin:0;padding:8px 12px;border-radius:0;box-shadow:none;border:0}.terminal-output{margin-bottom:16px}.terminal-line{margin-bottom:8px;line-height:1.6}.terminal-prompt{color:var(--md-sys-color-primary);font-weight:500}.terminal-command{color:#e1e1e6}.terminal-response{color:var(--md-sys-color-success);opacity:.9}.terminal-error{color:var(--md-sys-color-error)}.terminal-input-line{display:flex;align-items:center}.terminal-input{flex:1;background:transparent;border:0;color:#d4d4d4;font-family:inherit;font-size:inherit;outline:0;margin-left:8px}.terminal-cursor{display:inline-block;width:8px;height:16px;background:#d4d4d4;animation:blink 1s infinite;margin-left:2px}@keyframes blink{0%,50%{opacity:1}51%,100%{opacity:0}}.side-panel{grid-area:aside;background:var(--md-sys-color-surface-1);border-left:1px solid var(--md-sys-color-outline-variant);display:flex;flex-direction:column;overflow:hidden}.panel-header{padding:20px;background:var(--md-sys-color-surface-2)}.score-card{background:linear-gradient(135deg,var(--md-sys-color-primary-container),var(--md-sys-color-tertiary-container));border-radius:12px;padding:16px;margin-top:16px;text-align:center;box-shadow:var(--md-elevation-1)}.score-value{font-size:var(--md-sys-typescale-headline-large);font-weight:500;color:var(--md-sys-color-on-primary-container);text-shadow:0 2px 4px rgba(0,0,0,.2)}.score-label{font-size:var(--md-sys-typescale-label-medium);color:var(--md-sys-color-on-primary-container);opacity:.9;font-weight:500;letter-spacing:.5px}.progress{height:6px;background:var(--md-sys-color-surface-variant);border-radius:3px;overflow:hidden;margin-top:16px;box-shadow:inset 0 1px 3px rgba(0,0,0,.2)}.progress-bar{height:100%;background:linear-gradient(90deg,var(--md-sys-color-primary),var(--md-sys-color-tertiary));transition:width .3s ease;box-shadow:0 0 10px rgba(141,205,255,.5)}.task-list{flex:1;overflow-y:auto;padding:12px;max-height:calc(100vh - 280px)}.task-card{background:var(--md-sys-color-surface-1);border-radius:8px;padding:14px;margin-bottom:10px;box-shadow:var(--md-elevation-1);transition:all .2s ease;border-left:3px solid var(--md-sys-color-outline-variant);position:relative}.task-card:hover{box-shadow:var(--md-elevation-2);transform:translateX(-2px);background:var(--md-sys-color-surface-2)}.task-card.completed{border-left-color:var(--md-sys-color-success);background:linear-gradient(135deg,rgba(129,199,132,.05) 0%,var(--md-sys-color-surface-1) 100%)}.task-card.completed::after{content:'✓';position:absolute;right:14px;top:14px;width:18px;height:18px;background:var(--md-sys-color-success);color:var(--md-sys-color-on-success);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:bold}.task-card.partial{border-left-color:var(--md-sys-color-warning);background:linear-gradient(135deg,rgba(255,183,77,.05) 0%,var(--md-sys-color-surface-1) 100%)}.task-card.partial::after{content:'!';position:absolute;right:14px;top:14px;width:18px;height:18px;background:var(--md-sys-color-warning);color:var(--md-sys-color-on-warning);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:bold}.task-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:8px;padding-right:28px}.task-title{font-size:15px;font-weight:500;flex:1;color:var(--md-sys-color-on-surface);line-height:1.3}.task-points{font-size:13px;font-weight:600;color:var(--md-sys-color-on-surface-variant);white-space:nowrap;margin-left:8px}.task-card.completed .task-points{color:var(--md-sys-color-success)}.task-card.partial .task-points{color:var(--md-sys-color-warning)}.task-description{font-size:13px;color:var(--md-sys-color-on-surface-variant);line-height:1.5;margin-bottom:8px}.task-requirements{font-size:12px;color:var(--md-sys-color-tertiary);line-height:1.5;margin-left:16px;margin-bottom:10px;padding:8px 12px;background:rgba(141,205,255,.08);border-left:2px solid var(--md-sys-color-tertiary);border-radius:4px}.task-requirements strong{color:var(--md-sys-color-primary);font-weight:500}.task-validation{font-size:12px;color:var(--md-sys-color-on-surface-variant);padding:5px 8px;background:var(--md-sys-color-surface-variant);border-radius:4px;display:inline-flex;align-items:center;gap:6px}.task-card.completed .task-validation{background:rgba(129,199,132,.15);color:var(--md-sys-color-success);border:1px solid rgba(129,199,132,.3)}.task-card.partial .task-validation{background:rgba(255,183,77,.15);color:var(--md-sys-color-warning);border:1px solid rgba(255,183,77,.3)}.action-bar{padding:16px;background:var(--md-sys-color-surface-2);display:flex;gap:12px;justify-content:flex-end;border-top:1px solid var(--md-sys-color-outline-variant)}@media(max-width:1400px){.app-container{grid-template-columns:minmax(200px,260px) 1fr minmax(280px,360px)}}@media(max-width:1200px){.app-container{grid-template-columns:minmax(180px,240px) 1fr;grid-template-areas:"header header" "nav main"}.side-panel{display:none}}@media(max-width:900px){.app-container{grid-template-columns:1fr;grid-template-rows:56px auto 1fr;grid-template-areas:"header" "nav" "main"}.app-container.no-side-panel{grid-template-columns:1fr;grid-template-rows:56px auto 1fr;grid-template-areas:"header" "nav" "main"}.nav-rail{flex-direction:row;overflow-x:auto;padding:8px 12px}}.tab-bar #terminalTabs{display:flex!important;flex-direction:row!important;flex-wrap:nowrap!important;align-items:center!important}.tab-bar #terminalTabs .tab{display:inline-flex!important;flex-direction:row!important;float:none!important;clear:none!important;horiz-align:left!important;margin-bottom:0!important;margin-right:0!important}#terminalTabs>.tab{display:inline-block!important;horiz-align:left!important}#terminalTabs{font-size:0}#terminalTabs .tab{font-size:var(--md-sys-typescale-label-large)}.menu-wrapper{position:relative;z-index:1000}.dropdown-menu{position:absolute;top:calc(100% + 8px);left:0;background:var(--md-sys-color-surface-2);border-radius:12px;box-shadow:0 8px 16px rgba(0,0,0,.3),0 4px 8px rgba(0,0,0,.2);min-width:220px;padding:8px 0;z-index:1001;opacity:0;transform:translateY(-10px) scale(.95);visibility:hidden;display:none!important;transition:all .2s cubic-bezier(.4,0,.2,1);border:1px solid var(--md-sys-color-outline-variant);pointer-events:none}.dropdown-menu.active{opacity:1!important;transform:translateY(0) scale(1)!important;visibility:visible!important;display:block!important;pointer-events:auto}.menu-item{display:flex;align-items:center;padding:12px 20px;cursor:pointer;transition:all .2s ease;color:var(--md-sys-color-on-surface);font-size:14px;font-weight:400;gap:12px}.menu-item:hover{background:rgba(141,205,255,.25);color:var(--md-sys-color-primary)}.menu-item:active{background:rgba(141,205,255,.35)}.menu-icon{flex-shrink:0;color:var(--md-sys-color-on-surface-variant)}.menu-item:hover .menu-icon{color:var(--md-sys-color-primary)}.menu-text{flex:1}.menu-divider{height:1px;background:var(--md-sys-color-outline-variant);margin:8px 0;opacity:.3}.menu-item-danger{color:#ff5252}.menu-item-danger:hover{background:rgba(255,82,82,.15);color:#ff5252}.menu-item-danger .menu-icon{color:#ff5252}.menu-item-danger:hover .menu-icon{color:#ff5252}.menu-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;z-index:999;display:none;pointer-events:none;background:rgba(0,0,0,0);transition:background .2s ease}.menu-backdrop.active{display:block;pointer-events:auto;background:rgba(0,0,0,.1)}.dialog-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.7);z-index:10000;display:none;align-items:center;justify-content:center;opacity:0;transition:opacity .3s cubic-bezier(.4,0,.2,1)}.dialog-backdrop.active{display:flex;opacity:1}.material-dialog{background:var(--md-sys-color-surface-2);border-radius:28px;min-width:320px;max-width:560px;box-shadow:0 24px 48px rgba(0,0,0,.5),0 12px 24px rgba(0,0,0,.4),0 0 0 1px var(--md-sys-color-outline-variant);overflow:hidden;transform:scale(.85) translateY(20px);opacity:0;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;pointer-events:auto}.material-dialog.active{transform:scale(1) translateY(0);opacity:1}.dialog-header{padding:24px 24px 16px 24px}.dialog-title{font-size:var(--md-sys-typescale-headline-medium);font-weight:500;color:var(--md-sys-color-on-surface);margin:0;line-height:1.3}.dialog-content{padding:0 24px 24px 24px}.dialog-message{font-size:var(--md-sys-typescale-body-large);color:var(--md-sys-color-on-surface-variant);line-height:1.5;margin:0}.dialog-actions{padding:16px 24px 24px 24px;display:flex;justify-content:flex-end;gap:12px}.dialog-actions .button{min-width:80px}@keyframes dialogSlideIn{from{transform:scale(.85) translateY(20px);opacity:0}to{transform:scale(1) translateY(0);opacity:1}}@keyframes dialogSlideOut{from{transform:scale(1) translateY(0);opacity:1}to{transform:scale(.85) translateY(20px);opacity:0}}@media(max-width:600px){.material-dialog{min-width:calc(100vw - 32px);max-width:calc(100vw - 32px);margin:16px}}.topology-full-view{width:100%;height:100%;display:flex;flex-direction:column;background:var(--md-sys-color-surface);border-radius:16px;overflow:hidden}.topology-header{padding:24px;background:var(--md-sys-color-surface-2);border-bottom:1px solid var(--md-sys-color-outline-variant)}.topology-header h2{font-size:var(--md-sys-typescale-headline-medium);font-weight:500;color:var(--md-sys-color-on-surface);margin:0 0 8px 0}.topology-header p{font-size:var(--md-sys-typescale-body-medium);color:var(--md-sys-color-on-surface-variant);margin:0}#topology-full-container{flex:1;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--md-sys-color-surface),var(--md-sys-color-surface-1));position:relative;overflow:hidden;padding:24px}#topology-full-container::before{content:'';position:absolute;top:0;left:0;right:0;bottom:0;background:radial-gradient(circle at 20% 80%,rgba(141,205,255,.08) 0%,transparent 50%),radial-gradient(circle at 80% 20%,rgba(204,191,255,.08) 0%,transparent 50%);pointer-events:none}#topology-full-svg{position:relative;z-index:1;max-width:100%;max-height:100%}.configs-viewer{width:100%;height:100%;display:flex;flex-direction:column;background:linear-gradient(135deg,var(--md-sys-color-surface),var(--md-sys-color-surface-1));padding:12px;overflow:hidden}.configs-grid{display:grid;grid-template-columns:repeat(2,1fr);grid-auto-rows:minmax(300px,1fr);gap:12px;width:100%;overflow-y:auto;overflow-x:hidden;padding-right:4px}.config-card{background:var(--md-sys-color-surface-2);border-radius:8px;box-shadow:var(--md-elevation-1);padding:8px;display:flex;flex-direction:column;transition:all .2s cubic-bezier(.4,0,.2,1);overflow:hidden}.config-card:hover{box-shadow:var(--md-elevation-2)}.config-card.selected{border:2px solid var(--md-sys-color-primary);box-shadow:0 0 12px rgba(33,150,243,.3)}.config-card.config-highlight{animation:config-pulse .6s ease-in-out 3;box-shadow:0 0 20px rgba(76,175,80,.5);border:2px solid rgba(76,175,80,.8)}@keyframes config-pulse{0%,100%{box-shadow:0 0 10px rgba(76,175,80,.3)}50%{box-shadow:0 0 25px rgba(76,175,80,.7)}}.config-card-header{display:flex;align-items:center;margin-bottom:8px;padding:4px 8px;background:rgba(0,0,0,.2);border-radius:4px}.config-card-header h3{font-size:13px;font-weight:500;color:var(--md-sys-color-on-surface);margin:0;letter-spacing:.5px;transition:color .3s ease,text-shadow .3s ease}.config-card-header h3.config-highlight{color:#00ff64;text-shadow:0 0 8px rgba(0,255,100,.6)}.config-card-body{flex:1;display:flex;flex-direction:column;overflow:hidden}.nvram-viewer{flex:1;background:#0a0d10;color:#e1e1e6;font-family:'Courier New',Courier,monospace;font-size:12px;padding:12px;overflow-y:auto;overflow-x:auto;border-radius:4px;border:1px solid rgba(225,225,230,.2);white-space:pre;line-height:1.4}.nvram-viewer::-webkit-scrollbar{width:8px;height:8px}.nvram-viewer::-webkit-scrollbar-track{background:rgba(10,13,16,.5);border-radius:4px}.nvram-viewer::-webkit-scrollbar-thumb{background:rgba(225,225,230,.3);border-radius:4px}.nvram-viewer::-webkit-scrollbar-thumb:hover{background:rgba(225,225,230,.5)}.config-card-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:var(--md-sys-color-on-surface-variant);opacity:.3}.config-card-empty svg{margin-bottom:8px}.config-card-empty p{font-size:12px;margin:0}.configs-tab{background:transparent;border:0}.configs-tab.active{background:var(--md-sys-color-surface-3)}.tab-separator{display:inline-flex;align-items:center;color:var(--md-sys-color-outline);opacity:.4;font-size:16px;margin:0 8px;user-select:none}.configs-search-bar{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--md-sys-color-surface-2);border-radius:12px;margin-bottom:12px;box-shadow:var(--md-elevation-1);border:1px solid var(--md-sys-color-outline-variant);transition:all .2s ease}.configs-search-bar:focus-within{border-color:var(--md-sys-color-primary);box-shadow:0 0 0 2px rgba(141,205,255,.2)}.configs-search-bar .search-icon{flex-shrink:0;color:var(--md-sys-color-on-surface-variant);transition:color .2s ease}.configs-search-bar:focus-within .search-icon{color:var(--md-sys-color-primary)}.configs-search-input{flex:1;background:transparent;border:0;outline:0;color:var(--md-sys-color-on-surface);font-size:14px;font-family:'Roboto',sans-serif;padding:4px 0}.configs-search-input::placeholder{color:var(--md-sys-color-on-surface-variant);opacity:.6}.clear-search-btn{flex-shrink:0;width:32px;height:32px;border-radius:50%;background:transparent;border:0;color:var(--md-sys-color-on-surface-variant);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;padding:0}.clear-search-btn:hover{background:var(--md-sys-color-surface-variant);color:var(--md-sys-color-on-surface)}.clear-search-btn:active{transform:scale(.95)}.config-type-label{display:flex;align-items:center;gap:6px;padding:4px 10px;background:rgba(141,205,255,.1);border:1px solid rgba(141,205,255,.3);border-radius:12px;font-size:11px;font-weight:500;color:var(--md-sys-color-primary);white-space:nowrap;margin-left:auto}.config-type-label svg{opacity:.8}.config-card.hidden{display:none}.config-highlight,mark.config-highlight{background-color:rgba(255,235,59,.5);color:#000;font-weight:600;padding:2px 0;border-radius:2px;font-family:inherit;font-size:inherit;line-height:inherit;white-space:pre}@media(prefers-color-scheme:dark){.config-highlight,mark.config-highlight{background-color:rgba(255,235,59,.4);color:#1a1a1a}}.syslog-viewer{width:100%;height:100%;display:flex;flex-direction:column;background:linear-gradient(135deg,var(--md-sys-color-surface),var(--md-sys-color-surface-1));padding:12px;overflow:hidden}.syslog-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 16px;background:var(--md-sys-color-surface-2);border-radius:12px;margin-bottom:12px;box-shadow:var(--md-elevation-1);border:1px solid var(--md-sys-color-outline-variant);flex-shrink:0}.syslog-search-group{display:flex;align-items:center;gap:12px;flex:1;max-width:400px;padding:8px 12px;background:var(--md-sys-color-surface);border-radius:8px;border:1px solid transparent;transition:all .2s ease}.syslog-search-group:focus-within{border-color:var(--md-sys-color-primary);box-shadow:0 0 0 2px rgba(141,205,255,.2)}.syslog-search-group .search-icon{flex-shrink:0;color:var(--md-sys-color-on-surface-variant);transition:color .2s ease}.syslog-search-group:focus-within .search-icon{color:var(--md-sys-color-primary)}.syslog-search-input{flex:1;background:transparent;border:0;outline:0;color:var(--md-sys-color-on-surface);font-size:14px;font-family:'Roboto',sans-serif;padding:4px 0}.syslog-search-input::placeholder{color:var(--md-sys-color-on-surface-variant);opacity:.6}.syslog-filter-group{display:flex;align-items:center;gap:8px}.device-filter-dropdown{position:relative}.device-filter-btn{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--md-sys-color-surface);border:1px solid var(--md-sys-color-outline-variant);border-radius:8px;color:var(--md-sys-color-on-surface);font-size:13px;cursor:pointer;transition:all .2s ease}.device-filter-btn:hover{background:var(--md-sys-color-surface-variant);border-color:var(--md-sys-color-primary)}.device-filter-btn .dropdown-arrow{transition:transform .2s ease}.device-filter-dropdown.open .dropdown-arrow{transform:rotate(180deg)}.device-filter-menu{position:absolute;top:calc(100% + 8px);right:0;min-width:200px;background:var(--md-sys-color-surface-2);border:1px solid var(--md-sys-color-outline-variant);border-radius:12px;box-shadow:var(--md-elevation-3);z-index:1000;display:none;overflow:hidden}.device-filter-dropdown.open .device-filter-menu{display:block}.filter-menu-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--md-sys-color-outline-variant)}.filter-menu-header span{font-size:12px;font-weight:500;color:var(--md-sys-color-on-surface-variant);text-transform:uppercase;letter-spacing:.5px}.filter-clear-btn{background:none;border:0;color:var(--md-sys-color-primary);font-size:12px;cursor:pointer;padding:4px 8px;border-radius:4px;transition:background .2s ease}.filter-clear-btn:hover{background:rgba(141,205,255,.1)}.filter-menu-items{max-height:250px;overflow-y:auto;padding:8px}.filter-checkbox-item{display:flex;align-items:center;gap:10px;padding:10px 12px;cursor:pointer;border-radius:8px;transition:background .2s ease}.filter-checkbox-item:hover{background:var(--md-sys-color-surface-variant)}.filter-checkbox-item input[type="checkbox"]{display:none}.checkbox-mark{width:18px;height:18px;border:2px solid var(--md-sys-color-outline);border-radius:4px;position:relative;transition:all .2s ease;flex-shrink:0}.filter-checkbox-item input:checked+.checkbox-mark{background:var(--md-sys-color-primary);border-color:var(--md-sys-color-primary)}.filter-checkbox-item input:checked+.checkbox-mark::after{content:'';position:absolute;left:5px;top:1px;width:4px;height:8px;border:solid var(--md-sys-color-on-primary);border-width:0 2px 2px 0;transform:rotate(45deg)}.filter-checkbox-item .device-name{font-size:13px;color:var(--md-sys-color-on-surface)}.syslog-btn{width:36px;height:36px;border-radius:8px;background:var(--md-sys-color-surface);border:1px solid var(--md-sys-color-outline-variant);color:var(--md-sys-color-on-surface-variant);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.syslog-btn:hover{background:var(--md-sys-color-surface-variant);color:var(--md-sys-color-on-surface);border-color:var(--md-sys-color-primary)}.syslog-btn.active{background:rgba(141,205,255,.2);color:var(--md-sys-color-primary);border-color:var(--md-sys-color-primary)}.syslog-table-container{flex:1;background:#0a0d10;border-radius:8px;border:1px solid rgba(225,225,230,.2);overflow:hidden;display:flex;flex-direction:column}.syslog-table{width:100%;border-collapse:collapse;font-family:'Roboto Mono','Courier New',monospace;font-size:12px;table-layout:fixed}.syslog-table thead{position:sticky;top:0;z-index:1;background:#151a1f;border-bottom:1px solid rgba(225,225,230,.2)}.syslog-table thead th{padding:12px 16px;text-align:left;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--md-sys-color-on-surface-variant);background:#151a1f}.syslog-col-time{width:140px}.syslog-col-device{width:120px}.syslog-col-level{width:100px}.syslog-table tbody td.syslog-col-level{text-overflow:clip;overflow:visible}.syslog-col-event{width:auto}.syslog-table tbody{display:block;overflow-y:auto;max-height:calc(100vh - 300px)}.syslog-table thead,.syslog-table tbody tr{display:table;width:100%;table-layout:fixed}.syslog-table tbody tr{border-bottom:1px solid rgba(225,225,230,.08);transition:background .15s ease}.syslog-table tbody tr:hover{background:rgba(141,205,255,.05)}.syslog-table tbody td{padding:10px 16px;color:#e1e1e6;vertical-align:top;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.syslog-table tbody td.syslog-col-event{white-space:normal;word-break:break-word}.syslog-level{display:inline-flex;align-items:center;padding:3px 8px;border-radius:4px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.3px}.syslog-level.emergency,.syslog-level.alert,.syslog-level.critical{background:rgba(244,67,54,.2);color:#f44336}.syslog-level.error{background:rgba(255,87,34,.2);color:#ff5722}.syslog-level.warning{background:rgba(255,193,7,.2);color:#ffc107}.syslog-level.notice{background:rgba(33,150,243,.2);color:#2196f3}.syslog-level.informational,.syslog-level.info{background:rgba(76,175,80,.2);color:#4caf50}.syslog-level.debug{background:rgba(156,39,176,.2);color:#9c27b0}.syslog-device{display:inline-flex;align-items:center;padding:3px 8px;background:rgba(141,205,255,.15);color:var(--md-sys-color-primary);border-radius:4px;font-size:11px;font-weight:500}.syslog-time{color:rgba(225,225,230,.6);font-size:11px}.syslog-status-bar{display:flex;align-items:center;justify-content:space-between;padding:8px 16px;background:var(--md-sys-color-surface-2);border-radius:8px;margin-top:12px;font-size:12px;color:var(--md-sys-color-on-surface-variant)}.syslog-count{font-weight:500}.syslog-status{display:flex;align-items:center;gap:6px}.syslog-status::before{content:'';width:8px;height:8px;background:#4caf50;border-radius:50%;animation:pulse 2s infinite}.syslog-status.paused::before{background:#ff9800;animation:none}@keyframes pulse{0%,100%{opacity:1}50%{opacity:.5}}.syslog-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;color:var(--md-sys-color-on-surface-variant);opacity:.5}.syslog-empty svg{margin-bottom:16px;opacity:.5}.syslog-empty p{font-size:14px;margin:0}.syslog-highlight{background-color:rgba(255,235,59,.4);color:#1a1a1a;padding:1px 2px;border-radius:2px}.syslog-table tbody::-webkit-scrollbar{width:8px}.syslog-table tbody::-webkit-scrollbar-track{background:rgba(10,13,16,.5)}.syslog-table tbody::-webkit-scrollbar-thumb{background:rgba(225,225,230,.3);border-radius:4px}.syslog-table tbody::-webkit-scrollbar-thumb:hover{background:rgba(225,225,230,.5)}.events-viewer{display:flex;flex-direction:column;height:100%;background:rgba(18,22,28,.6);border-radius:8px;overflow:hidden}.events-toolbar{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:rgba(30,35,42,.8);border-bottom:1px solid rgba(225,225,230,.1);gap:16px;flex-shrink:0}.events-search-group{display:flex;align-items:center;background:rgba(10,13,16,.6);border:1px solid rgba(225,225,230,.15);border-radius:6px;padding:6px 12px;flex:1;max-width:400px;transition:all .2s ease}.events-search-group:focus-within{border-color:rgba(33,150,243,.5);box-shadow:0 0 0 2px rgba(33,150,243,.15)}.events-search-group .search-icon{color:rgba(225,225,230,.4);margin-right:8px;flex-shrink:0}.events-search-group:focus-within .search-icon{color:rgba(33,150,243,.8)}.events-search-input{flex:1;background:transparent;border:0;color:rgba(225,225,230,.9);font-size:13px;outline:0}.events-search-input::placeholder{color:rgba(225,225,230,.35)}.events-filter-group{display:flex;align-items:center;gap:8px}.category-filter-dropdown{position:relative}.category-filter-btn{display:flex;align-items:center;gap:8px;padding:6px 12px;background:rgba(10,13,16,.6);border:1px solid rgba(225,225,230,.15);border-radius:6px;color:rgba(225,225,230,.7);font-size:13px;cursor:pointer;transition:all .2s ease}.category-filter-btn:hover{border-color:rgba(225,225,230,.25);color:rgba(225,225,230,.9)}.category-filter-btn .dropdown-arrow{transition:transform .2s ease}.category-filter-dropdown.open .category-filter-btn .dropdown-arrow{transform:rotate(180deg)}.category-filter-menu{position:absolute;top:calc(100% + 4px);right:0;min-width:200px;background:rgba(30,35,42,.98);border:1px solid rgba(225,225,230,.15);border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,.4);z-index:100;display:none}.category-filter-dropdown.open .category-filter-menu{display:block}.filter-radio-item{display:flex;align-items:center;padding:8px 12px;cursor:pointer;transition:background .15s ease}.filter-radio-item:hover{background:rgba(33,150,243,.1)}.filter-radio-item input[type="radio"]{position:absolute;opacity:0;width:0;height:0}.filter-radio-item .radio-mark{width:16px;height:16px;border:2px solid rgba(225,225,230,.3);border-radius:50%;margin-right:10px;position:relative;transition:all .2s ease}.filter-radio-item input[type="radio"]:checked+.radio-mark{border-color:#2196f3}.filter-radio-item input[type="radio"]:checked+.radio-mark::after{content:'';position:absolute;top:50%;left:50%;width:8px;height:8px;background:#2196f3;border-radius:50%;transform:translate(-50%,-50%)}.filter-radio-item .category-name{color:rgba(225,225,230,.8);font-size:13px}.events-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:rgba(10,13,16,.6);border:1px solid rgba(225,225,230,.15);border-radius:6px;color:rgba(225,225,230,.6);cursor:pointer;transition:all .2s ease}.events-btn:hover{border-color:rgba(225,225,230,.25);color:rgba(225,225,230,.9);background:rgba(10,13,16,.8)}.events-table-container{flex:1;overflow:auto;padding:0;margin:0}.events-table{width:100%;border-collapse:collapse;table-layout:fixed}.events-table thead{position:sticky;top:0;z-index:10;background:rgba(25,30,38,.98)}.events-table thead th{padding:10px 12px;text-align:left;font-weight:500;font-size:12px;color:rgba(225,225,230,.6);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid rgba(225,225,230,.1)}.events-col-time{width:140px}.events-col-category{width:100px}.events-col-device{width:120px}.events-col-severity{width:90px}.events-col-description{width:auto}.events-table tbody tr{border-bottom:1px solid rgba(225,225,230,.05)}.events-table tbody tr:hover{background:rgba(33,150,243,.05)}.events-table tbody td{padding:10px 12px;font-size:13px;color:rgba(225,225,230,.85);vertical-align:middle}.events-table tbody td.events-col-description{word-break:break-word;white-space:normal}.events-category{display:inline-block;padding:3px 8px;border-radius:4px;font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.3px}.events-category.device{background:rgba(33,150,243,.2);color:#64b5f6}.events-category.link{background:rgba(156,39,176,.2);color:#ce93d8}.events-category.routing{background:rgba(255,152,0,.2);color:#ffb74d}.events-category.interface{background:rgba(0,188,212,.2);color:#4dd0e1}.events-category.configuration{background:rgba(76,175,80,.2);color:#81c784}.events-category.lab{background:rgba(103,58,183,.2);color:#b39ddb}.events-category.validation{background:rgba(255,193,7,.2);color:#ffd54f}.events-category.command{background:rgba(121,85,72,.2);color:#bcaaa4}.events-severity{display:inline-block;padding:3px 8px;border-radius:4px;font-size:11px;font-weight:500;text-transform:uppercase}.events-severity.critical{background:rgba(244,67,54,.2);color:#ef5350}.events-severity.error{background:rgba(244,67,54,.15);color:#e57373}.events-severity.warning{background:rgba(255,152,0,.2);color:#ffb74d}.events-severity.notice{background:rgba(33,150,243,.2);color:#64b5f6}.events-severity.info{background:rgba(76,175,80,.15);color:#81c784}.events-severity.debug{background:rgba(158,158,158,.15);color:#bdbdbd}.events-device{font-family:'Fira Code','Consolas',monospace;font-size:12px;color:rgba(225,225,230,.7)}.events-time{font-family:'Fira Code','Consolas',monospace;font-size:12px;color:rgba(225,225,230,.5)}.events-pagination{display:flex;justify-content:space-between;align-items:center;padding:10px 16px;background:rgba(25,30,38,.6);border-top:1px solid rgba(225,225,230,.1);flex-shrink:0}.events-count{font-size:13px;color:rgba(225,225,230,.5)}.pagination-controls{display:flex;align-items:center;gap:12px}.pagination-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:rgba(10,13,16,.6);border:1px solid rgba(225,225,230,.15);border-radius:6px;color:rgba(225,225,230,.7);cursor:pointer;transition:all .2s ease}.pagination-btn:hover:not(:disabled){border-color:rgba(225,225,230,.25);color:rgba(225,225,230,.9);background:rgba(10,13,16,.8)}.pagination-btn:disabled{opacity:.4;cursor:not-allowed}.pagination-info{font-size:13px;color:rgba(225,225,230,.6)}.events-highlight{background:rgba(255,235,59,.3);padding:1px 2px;border-radius:2px}.events-new-row{animation:eventFlash 2s ease-out}@keyframes eventFlash{0%{background:rgba(76,175,80,.3)}100%{background:transparent}}.events-table-container::-webkit-scrollbar{width:8px}.events-table-container::-webkit-scrollbar-track{background:rgba(10,13,16,.5)}.events-table-container::-webkit-scrollbar-thumb{background:rgba(225,225,230,.3);border-radius:4px}.events-table-container::-webkit-scrollbar-thumb:hover{background:rgba(225,225,230,.5)}.assistant-panel{position:fixed;bottom:20px;right:20px;width:450px;height:500px;background:rgba(18,22,28,.95);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(76,175,80,.3);border-radius:16px;display:flex;flex-direction:column;z-index:1001;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 8px 32px rgba(0,0,0,.4),0 0 0 1px rgba(76,175,80,.1);overflow:hidden}.assistant-panel.collapsed{width:56px;height:56px;border-radius:50%;cursor:pointer;background:linear-gradient(135deg,#4caf50 0%,#388e3c 100%);border:0;box-shadow:0 4px 16px rgba(76,175,80,.4),0 2px 8px rgba(0,0,0,.3)}.assistant-panel.collapsed:hover{transform:scale(1.1);box-shadow:0 6px 24px rgba(76,175,80,.5),0 4px 12px rgba(0,0,0,.4)}.assistant-toggle-btn{position:absolute;top:0;left:0;width:56px;height:56px;background:transparent;border:0;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#fff;transition:all .3s ease;z-index:10;opacity:0;pointer-events:none}.assistant-panel.collapsed .assistant-toggle-btn{opacity:1;pointer-events:auto}.assistant-toggle-btn .assistant-icon{transition:transform .3s ease}.assistant-toggle-btn .collapse-icon{display:none}.assistant-content{flex:1;display:flex;flex-direction:column;overflow:hidden;opacity:1;transition:opacity .2s ease}.assistant-panel.collapsed .assistant-content{opacity:0;pointer-events:none}.assistant-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:linear-gradient(180deg,rgba(76,175,80,.15) 0%,rgba(76,175,80,.05) 100%);border-bottom:1px solid rgba(76,175,80,.2);cursor:default}.assistant-title{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:500;color:#4caf50}.assistant-title svg{color:#4caf50;width:18px;height:18px}.assistant-close-btn{width:28px;height:28px;border:0;border-radius:6px;background:transparent;color:var(--md-sys-color-on-surface-variant);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.assistant-close-btn:hover{background:rgba(255,255,255,.1);color:var(--md-sys-color-on-surface)}.assistant-close-btn svg{width:16px;height:16px}.assistant-terminal{flex:1;background:#0a0d10;overflow:hidden;padding:8px 12px;min-height:0}.assistant-terminal .xterm{height:100%}.assistant-terminal .xterm-viewport{background:#0a0d10!important}.assistant-terminal .xterm-screen{background:#0a0d10}.assistant-input-container{display:flex;align-items:center;gap:8px;padding:10px 12px;background:var(--md-sys-color-surface-2);border-top:1px solid rgba(76,175,80,.2)}.assistant-input{flex:1;height:36px;padding:0 14px;background:rgba(10,13,16,.8);border:1px solid rgba(76,175,80,.3);border-radius:18px;color:#4caf50;font-size:13px;outline:0;transition:all .2s ease}.assistant-input::placeholder{color:rgba(76,175,80,.5)}.assistant-input:focus{border-color:#4caf50;box-shadow:0 0 0 2px rgba(76,175,80,.2)}.assistant-send-btn{width:36px;height:36px;border:0;border-radius:50%;background:linear-gradient(135deg,#4caf50 0%,#388e3c 100%);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;box-shadow:0 2px 8px rgba(76,175,80,.3)}.assistant-send-btn:hover{transform:scale(1.05);box-shadow:0 4px 12px rgba(76,175,80,.4)}.assistant-send-btn:active{transform:scale(.95)}.assistant-send-btn svg{width:16px;height:16px;margin-left:2px}@media(max-width:600px){.assistant-panel{width:calc(100vw - 40px);max-width:400px;height:450px;bottom:10px;right:10px}}@media(max-height:700px){.assistant-panel{height:400px}}.device-highlight-overlay{position:absolute;pointer-events:none;transform:translate(-50%,-50%);z-index:1000}.device-highlight-ring{width:120px;height:120px;border-radius:50%;border:4px solid #4caf50;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);animation:highlight-pulse 1.5s ease-in-out infinite;box-shadow:0 0 20px rgba(76,175,80,.4),inset 0 0 20px rgba(76,175,80,.2)}.device-highlight-ring::before{content:'';position:absolute;top:-10px;left:-10px;right:-10px;bottom:-10px;border-radius:50%;border:2px solid rgba(76,175,80,.4);animation:highlight-pulse-outer 1.5s ease-in-out infinite .2s}.device-highlight-ring::after{content:'';position:absolute;top:-20px;left:-20px;right:-20px;bottom:-20px;border-radius:50%;border:1px solid rgba(76,175,80,.2);animation:highlight-pulse-outer 1.5s ease-in-out infinite .4s}@keyframes highlight-pulse{0%,100%{transform:translate(-50%,-50%) scale(1);opacity:1}50%{transform:translate(-50%,-50%) scale(1.1);opacity:.8}}@keyframes highlight-pulse-outer{0%,100%{transform:scale(1);opacity:.6}50%{transform:scale(1.15);opacity:.3}}.device-highlight-tooltip{position:absolute;top:80px;left:50%;transform:translateX(-50%);background:linear-gradient(135deg,rgba(76,175,80,.95),rgba(46,125,50,.95));color:#fff;padding:8px 16px;border-radius:8px;font-size:13px;font-weight:500;white-space:nowrap;box-shadow:0 4px 12px rgba(0,0,0,.3);animation:tooltip-fade-in .3s ease-out}.device-highlight-tooltip::before{content:'';position:absolute;top:-8px;left:50%;transform:translateX(-50%);border-left:8px solid transparent;border-right:8px solid transparent;border-bottom:8px solid rgba(76,175,80,.95)}@keyframes tooltip-fade-in{from{opacity:0;transform:translateX(-50%) translateY(10px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}.device-highlight-overlay.fade-out{animation:highlight-fade-out .3s ease-out forwards}@keyframes highlight-fade-out{from{opacity:1}to{opacity:0}}.config-card-header{display:flex;align-items:center;justify-content:space-between}.config-edit-btn{width:28px;height:28px;border-radius:6px;background:transparent;border:1px solid transparent;color:var(--md-sys-color-on-surface-variant);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;opacity:.6}.config-card:hover .config-edit-btn{opacity:1}.config-edit-btn:hover{background:var(--md-sys-color-primary-container);border-color:var(--md-sys-color-primary);color:var(--md-sys-color-primary)}.config-editor-overlay{position:fixed;inset:0;background:rgba(0,0,0,.7);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:2000;opacity:0;transition:opacity .2s ease}.config-editor-overlay.active{opacity:1}.config-editor-window{width:90%;max-width:1000px;height:80vh;background:var(--md-sys-color-surface-1);border-radius:16px;border:1px solid var(--md-sys-color-outline-variant);box-shadow:0 24px 48px rgba(0,0,0,.4);display:flex;flex-direction:column;transform:scale(.95) translateY(20px);transition:transform .2s ease}.config-editor-overlay.active .config-editor-window{transform:scale(1) translateY(0)}.config-editor-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--md-sys-color-surface-2);border-bottom:1px solid var(--md-sys-color-outline-variant);border-radius:16px 16px 0 0}.config-editor-title{display:flex;align-items:center;gap:10px;color:var(--md-sys-color-on-surface);font-size:14px;font-weight:500}.config-editor-title svg{color:var(--md-sys-color-primary)}.config-editor-device-name{color:var(--md-sys-color-primary);font-weight:600;padding:2px 10px;background:var(--md-sys-color-primary-container);border-radius:12px;font-size:12px}.config-editor-actions{display:flex;gap:8px}.config-editor-btn{display:flex;align-items:center;gap:6px;padding:8px 14px;border-radius:8px;border:1px solid transparent;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s ease}.config-editor-btn-apply{background:var(--md-sys-color-primary);color:var(--md-sys-color-on-primary)}.config-editor-btn-apply:hover{background:#7ab8e8;box-shadow:0 2px 8px rgba(141,205,255,.3)}.config-editor-btn-apply:disabled{opacity:.5;cursor:not-allowed}.config-editor-btn-reset{background:transparent;border-color:var(--md-sys-color-outline-variant);color:var(--md-sys-color-on-surface-variant)}.config-editor-btn-reset:hover{background:var(--md-sys-color-surface-3);border-color:var(--md-sys-color-outline);color:var(--md-sys-color-on-surface)}.config-editor-btn-discard{background:transparent;border-color:var(--md-sys-color-outline-variant);color:var(--md-sys-color-error)}.config-editor-btn-discard:hover{background:rgba(255,180,171,.1);border-color:var(--md-sys-color-error)}.config-editor-body{flex:1;display:flex;flex-direction:column;overflow:hidden}.config-editor-content{flex:1;display:flex;overflow:hidden;position:relative}.config-editor-line-numbers{width:50px;background:var(--md-sys-color-surface-2);border-right:1px solid var(--md-sys-color-outline-variant);padding:12px 8px;font-family:'Consolas','Monaco',monospace;font-size:13px;line-height:1.5;color:var(--md-sys-color-on-surface-variant);text-align:right;user-select:none;overflow:hidden}.config-editor-line-numbers .line-number{display:block}.config-editor-line-numbers .line-number.error{color:#f44336;font-weight:600;background:rgba(244,67,54,.2);margin:0 -8px;padding:0 8px;cursor:pointer;border-radius:2px}.config-editor-textarea-wrapper{flex:1;position:relative;overflow:hidden}.config-editor-textarea{position:absolute;top:0;left:0;width:100%;height:100%;background:var(--md-sys-color-surface-1);border:0;outline:0;color:var(--md-sys-color-on-surface);font-family:'Consolas','Monaco',monospace;font-size:13px;line-height:1.5;padding:12px;resize:none;overflow:auto;white-space:pre;z-index:1}.config-editor-highlight{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none;overflow:auto;padding:12px;z-index:2}.config-editor-highlight::-webkit-scrollbar{display:none}.config-editor-highlight{-ms-overflow-style:none;scrollbar-width:none}.highlight-error-line{position:absolute;left:0;right:0;background:rgba(244,67,54,.12);border-left:3px solid #f44336}.config-editor-textarea::placeholder{color:var(--md-sys-color-on-surface-variant);opacity:.5}.config-editor-tooltip{position:fixed;max-width:400px;padding:8px 12px;background:#1a1a1a;border:1px solid #f44336;border-radius:6px;color:#ff8a80;font-family:'Consolas','Monaco',monospace;font-size:12px;line-height:1.4;white-space:pre-wrap;box-shadow:0 4px 12px rgba(0,0,0,.4);z-index:10001;opacity:0;visibility:hidden;transition:opacity .15s ease,visibility .15s ease;pointer-events:none}.config-editor-tooltip.visible{opacity:1;visibility:visible}.config-editor-errors{background:var(--md-sys-color-surface-2);border-top:1px solid var(--md-sys-color-outline-variant);max-height:150px;overflow:hidden;display:flex;flex-direction:column}.config-editor-errors-header{display:flex;align-items:center;gap:8px;padding:8px 12px;background:rgba(255,180,171,.1);border-bottom:1px solid rgba(255,180,171,.2);color:var(--md-sys-color-error);font-size:12px;font-weight:500}.config-editor-errors-close{margin-left:auto;background:transparent;border:0;color:var(--md-sys-color-on-surface-variant);cursor:pointer;padding:4px;border-radius:4px;display:flex;align-items:center;justify-content:center}.config-editor-errors-close:hover{background:var(--md-sys-color-surface-3);color:var(--md-sys-color-on-surface)}.config-editor-errors-list{flex:1;overflow-y:auto;padding:8px}.config-editor-error-item{display:flex;align-items:flex-start;gap:8px;padding:6px 8px;border-radius:6px;font-size:12px;color:var(--md-sys-color-on-surface-variant);cursor:pointer;transition:background .15s ease}.config-editor-error-item:hover{background:var(--md-sys-color-surface-3)}.config-editor-error-line{color:var(--md-sys-color-error);font-weight:600;white-space:nowrap}.config-editor-error-message{flex:1}.config-editor-status{display:flex;align-items:center;padding:6px 12px;background:var(--md-sys-color-surface-2);border-top:1px solid var(--md-sys-color-outline-variant);border-radius:0 0 16px 16px;font-size:11px;color:var(--md-sys-color-on-surface-variant)}.config-editor-status.validating{color:var(--md-sys-color-warning)}.config-editor-status.error{color:var(--md-sys-color-error)}.config-editor-status.success{color:var(--md-sys-color-success)}.config-editor-status-text{display:flex;align-items:center;gap:6px}.config-editor-spinner{width:12px;height:12px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:spin .8s linear infinite}.validation-loading-overlay{position:fixed;inset:0;background:rgba(10,10,15,.95);display:flex;align-items:center;justify-content:center;z-index:2000;opacity:0;transition:opacity .3s ease;pointer-events:none}.validation-loading-overlay.active{opacity:1;pointer-events:auto}.validation-loading-content{display:flex;flex-direction:column;align-items:center;gap:32px}.validation-loading-canvas{width:300px;height:300px;border-radius:16px}.validation-loading-text{display:flex;flex-direction:column;align-items:center;gap:8px}.validation-loading-title{font-size:14px;color:var(--md-sys-color-on-surface-variant);text-transform:uppercase;letter-spacing:2px}.validation-loading-message{font-size:20px;font-weight:500;color:var(--md-sys-color-primary);text-align:center}.validation-loading-dots{display:flex;gap:8px;margin-top:16px}.validation-loading-dots span{width:8px;height:8px;background:var(--md-sys-color-primary);border-radius:50%;animation:loadingDot 1.4s infinite ease-in-out both}.validation-loading-dots span:nth-child(1){animation-delay:-.32s}.validation-loading-dots span:nth-child(2){animation-delay:-.16s}.validation-loading-dots span:nth-child(3){animation-delay:0s}@keyframes loadingDot{0%,80%,100%{transform:scale(.6);opacity:.5}40%{transform:scale(1);opacity:1}}.maintenance-overlay{position:fixed;inset:0;background:rgba(10,10,15,.97);display:flex;align-items:center;justify-content:center;z-index:10002;opacity:0;transition:opacity .5s ease;pointer-events:none}.maintenance-overlay.active{opacity:1;pointer-events:auto}.maintenance-overlay-canvas{position:absolute;inset:0;width:100%;height:100%}.maintenance-overlay-content{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:16px}.maintenance-overlay-icon{font-size:48px;margin-bottom:8px;animation:maintenancePulse 2s ease-in-out infinite}.maintenance-overlay-title{font-size:14px;color:var(--md-sys-color-on-surface-variant,#c4c7c5);text-transform:uppercase;letter-spacing:3px;font-weight:500}.maintenance-overlay-message{font-size:24px;font-weight:500;color:var(--md-sys-color-primary,#8dcbff);text-align:center;max-width:480px;line-height:1.4}.maintenance-overlay-dots{display:flex;gap:8px;margin-top:16px}.maintenance-overlay-dots span{width:8px;height:8px;background:var(--md-sys-color-primary,#8dcbff);border-radius:50%;animation:loadingDot 1.4s infinite ease-in-out both}.maintenance-overlay-dots span:nth-child(1){animation-delay:-.32s}.maintenance-overlay-dots span:nth-child(2){animation-delay:-.16s}.maintenance-overlay-dots span:nth-child(3){animation-delay:0s}@keyframes maintenancePulse{0%,100%{opacity:.6;transform:scale(1)}50%{opacity:1;transform:scale(1.1)}}.share-active-indicator{position:absolute;top:6px;right:6px;width:10px;height:10px;background:#4caf50;border-radius:50%;border:2px solid var(--md-sys-color-surface);animation:sharePulse 2s infinite}@keyframes sharePulse{0%,100%{opacity:.8;transform:scale(1)}50%{opacity:1;transform:scale(1.2)}}.share-dialog-overlay{position:fixed;inset:0;z-index:2000;display:none;align-items:center;justify-content:center}.share-dialog-overlay.open{display:flex}.dialog-backdrop-area{position:absolute;inset:0;background:rgba(0,0,0,.5)}.share-dialog{position:relative;width:420px;max-height:80vh;background:var(--md-sys-color-surface-2,#1e2228);border-radius:16px;border:1px solid rgba(255,255,255,.1);box-shadow:0 16px 48px rgba(0,0,0,.5);z-index:1;overflow-y:auto}.share-dialog-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid rgba(255,255,255,.08)}.share-dialog-header h3{margin:0;font-size:18px;font-weight:500;color:var(--md-sys-color-on-surface)}.share-dialog-content{padding:20px;display:flex;flex-direction:column;gap:20px}.share-label{display:block;font-size:12px;font-weight:500;color:var(--md-sys-color-on-surface-variant);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px}.share-mode-buttons{display:flex;gap:8px}.share-mode-btn{flex:1;padding:10px;border:1px solid rgba(255,255,255,.12);border-radius:8px;background:transparent;color:var(--md-sys-color-on-surface);font-size:13px;cursor:pointer;transition:all .2s}.share-mode-btn:hover{background:rgba(255,255,255,.05)}.share-mode-btn.active{background:rgba(187,134,252,.15);border-color:#bb86fc;color:#bb86fc}.share-link-row{display:flex;gap:8px}.share-link-input{flex:1;padding:10px 12px;background:var(--md-sys-color-surface-1,#161a1f);border:1px solid rgba(255,255,255,.12);border-radius:8px;color:var(--md-sys-color-on-surface);font-size:13px;font-family:monospace}.share-copy-btn{padding:10px 16px;background:#bb86fc;color:#000;border:0;border-radius:8px;font-weight:500;cursor:pointer;transition:opacity .2s;white-space:nowrap}.share-copy-btn:hover{opacity:.85}.share-code-row{margin-top:8px;font-size:13px;color:var(--md-sys-color-on-surface-variant)}.share-code{font-family:monospace;font-size:16px;font-weight:600;color:#bb86fc;letter-spacing:2px;margin-left:8px}.share-users-list{max-height:200px;overflow-y:auto}.share-no-users{padding:16px;text-align:center;color:var(--md-sys-color-on-surface-variant);font-size:13px}.share-user-item{display:flex;align-items:center;gap:12px;padding:8px 0;border-bottom:1px solid rgba(255,255,255,.05)}.share-user-avatar{width:32px;height:32px;border-radius:50%;background:rgba(187,134,252,.2);color:#bb86fc;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:14px}.share-user-info{flex:1;display:flex;flex-direction:column}.share-user-name{font-size:14px;color:var(--md-sys-color-on-surface)}.share-user-access{font-size:12px;color:var(--md-sys-color-on-surface-variant)}.share-user-device{font-size:12px;color:#bb86fc;font-family:monospace}.share-stop-btn{width:100%;margin-top:8px;border-color:#cf6679!important;color:#cf6679!important}.shared-lab-indicator{display:flex;align-items:center;gap:6px;padding:4px 10px;background:rgba(187,134,252,.12);border:1px solid rgba(187,134,252,.25);border-radius:6px;font-size:12px;color:var(--md-sys-color-on-surface);margin-left:8px;white-space:nowrap}.shared-lab-indicator svg{color:#bb86fc;flex-shrink:0}.shared-mode-badge{padding:2px 6px;border-radius:4px;font-size:10px;font-weight:500;background:rgba(187,134,252,.2);color:#bb86fc;text-transform:uppercase}.shared-leave-btn{padding:2px 8px;background:transparent;border:1px solid rgba(255,255,255,.2);border-radius:4px;color:var(--md-sys-color-on-surface);font-size:11px;cursor:pointer;transition:all .2s}.shared-leave-btn:hover{background:rgba(207,102,121,.2);border-color:#cf6679}.chat-panel{position:fixed;bottom:50px;left:50%;transform:translateX(-50%);width:480px;height:420px;background:rgba(18,22,28,.95);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(187,134,252,.3);border-radius:16px;display:flex;flex-direction:column;z-index:1001;transition:opacity .25s ease,visibility .25s ease;box-shadow:0 8px 32px rgba(0,0,0,.4),0 0 0 1px rgba(187,134,252,.1);overflow:hidden}.chat-panel.collapsed{opacity:0;visibility:hidden;pointer-events:none}.chat-unread-badge{min-width:18px;height:18px;background:#cf6679;color:#fff;font-size:11px;font-weight:600;border-radius:9px;display:flex;align-items:center;justify-content:center;padding:0 4px}.banner-chat-btn{display:flex;align-items:center;gap:3px;padding:2px 8px;background:rgba(187,134,252,.15);border:1px solid rgba(187,134,252,.3);border-radius:4px;color:#bb86fc;font-size:11px;cursor:pointer;transition:all .2s;position:relative}.banner-chat-btn:hover{background:rgba(187,134,252,.25);border-color:rgba(187,134,252,.5)}.banner-chat-btn .banner-unread{position:static;margin-left:4px}.chat-content{flex:1;display:flex;flex-direction:column;overflow:hidden;opacity:1;transition:opacity .2s ease}.chat-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:linear-gradient(180deg,rgba(187,134,252,.15) 0%,rgba(187,134,252,.05) 100%);border-bottom:1px solid rgba(187,134,252,.2)}.chat-title{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:500;color:#bb86fc}.chat-online-count{font-size:11px;font-weight:400;color:var(--md-sys-color-on-surface-variant);margin-left:4px}.chat-close-btn{width:28px;height:28px;background:transparent;border:1px solid rgba(255,255,255,.1);border-radius:6px;color:var(--md-sys-color-on-surface-variant);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.chat-close-btn:hover{background:rgba(255,255,255,.08)}.chat-messages{flex:1;overflow-y:auto;padding:12px 16px;display:flex;flex-direction:column;gap:4px;font-family:"Cascadia Code","Fira Code",Consolas,monospace;font-size:12px;line-height:1.4}.chat-message{color:var(--md-sys-color-on-surface)}.chat-msg-time{color:var(--md-sys-color-on-surface-variant);font-size:11px;margin-right:4px}.chat-msg-user{font-weight:600;margin-right:4px}.chat-msg-content{word-wrap:break-word}.chat-system-message{color:var(--md-sys-color-on-surface-variant);font-style:italic;font-size:11px;text-align:center;padding:4px 0}.chat-input-container{display:flex;gap:8px;padding:12px 16px;border-top:1px solid rgba(187,134,252,.2);background:rgba(0,0,0,.2)}.chat-input{flex:1;padding:8px 12px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:8px;color:var(--md-sys-color-on-surface);font-size:13px;outline:0}.chat-input:focus{border-color:rgba(187,134,252,.5)}.chat-send-btn{width:36px;height:36px;background:#bb86fc;border:0;border-radius:8px;color:#000;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:opacity .2s;flex-shrink:0}.chat-send-btn:hover{opacity:.85}