:root{--bg-primary: #0f0f0f;--bg-secondary: #1a1a1a;--bg-card: #242424;--bg-card-hover: #2a2a2a;--text-primary: #ffffff;--text-secondary: #a0a0a0;--text-muted: #666666;--accent: #646cff;--accent-hover: #535bf2;--success: #22c55e;--warning: #f59e0b;--danger: #ef4444;--border: #333333;--shadow: 0 4px 6px -1px rgba(0, 0, 0, .3)}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;background-color:var(--bg-primary);color:var(--text-primary);line-height:1.6;min-height:100vh}#root{min-height:100vh}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-secondary)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.xterm{cursor:text;position:relative;user-select:none;-ms-user-select:none;-webkit-user-select:none}.xterm.focus,.xterm:focus{outline:none}.xterm .xterm-helpers{position:absolute;top:0;z-index:5}.xterm .xterm-helper-textarea{padding:0;border:0;margin:0;position:absolute;opacity:0;left:-9999em;top:0;width:0;height:0;z-index:-5;white-space:nowrap;overflow:hidden;resize:none}.xterm .composition-view{background:#000;color:#fff;display:none;position:absolute;white-space:nowrap;z-index:1}.xterm .composition-view.active{display:block}.xterm .xterm-viewport{background-color:#000;overflow-y:scroll;cursor:default;position:absolute;inset:0}.xterm .xterm-screen{position:relative}.xterm .xterm-screen canvas{position:absolute;left:0;top:0}.xterm-char-measure-element{display:inline-block;visibility:hidden;position:absolute;top:0;left:-9999em;line-height:normal}.xterm.enable-mouse-events{cursor:default}.xterm.xterm-cursor-pointer,.xterm .xterm-cursor-pointer{cursor:pointer}.xterm.column-select.focus{cursor:crosshair}.xterm .xterm-accessibility:not(.debug),.xterm .xterm-message{position:absolute;inset:0;z-index:10;color:transparent;pointer-events:none}.xterm .xterm-accessibility-tree:not(.debug) *::selection{color:transparent}.xterm .xterm-accessibility-tree{font-family:monospace;-webkit-user-select:text;user-select:text;white-space:pre}.xterm .xterm-accessibility-tree>div{transform-origin:left;width:fit-content}.xterm .live-region{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.xterm-dim{opacity:1!important}.xterm-underline-1{text-decoration:underline}.xterm-underline-2{text-decoration:double underline}.xterm-underline-3{text-decoration:wavy underline}.xterm-underline-4{text-decoration:dotted underline}.xterm-underline-5{text-decoration:dashed underline}.xterm-overline{text-decoration:overline}.xterm-overline.xterm-underline-1{text-decoration:overline underline}.xterm-overline.xterm-underline-2{text-decoration:overline double underline}.xterm-overline.xterm-underline-3{text-decoration:overline wavy underline}.xterm-overline.xterm-underline-4{text-decoration:overline dotted underline}.xterm-overline.xterm-underline-5{text-decoration:overline dashed underline}.xterm-strikethrough{text-decoration:line-through}.xterm-screen .xterm-decoration-container .xterm-decoration{z-index:6;position:absolute}.xterm-screen .xterm-decoration-container .xterm-decoration.xterm-decoration-top-layer{z-index:7}.xterm-decoration-overview-ruler{z-index:8;position:absolute;top:0;right:0;pointer-events:none}.xterm-decoration-top{z-index:2;position:relative}.xterm .xterm-scrollable-element>.scrollbar{cursor:default}.xterm .xterm-scrollable-element>.scrollbar>.scra{cursor:pointer;font-size:11px!important}.xterm .xterm-scrollable-element>.visible{opacity:1;background:#0000;transition:opacity .1s linear;z-index:11}.xterm .xterm-scrollable-element>.invisible{opacity:0;pointer-events:none}.xterm .xterm-scrollable-element>.invisible.fade{transition:opacity .8s linear}.xterm .xterm-scrollable-element>.shadow{position:absolute;display:none}.xterm .xterm-scrollable-element>.shadow.top{display:block;top:0;left:3px;height:3px;width:100%;box-shadow:var(--vscode-scrollbar-shadow, #000) 0 6px 6px -6px inset}.xterm .xterm-scrollable-element>.shadow.left{display:block;top:3px;left:0;height:100%;width:3px;box-shadow:var(--vscode-scrollbar-shadow, #000) 6px 0 6px -6px inset}.xterm .xterm-scrollable-element>.shadow.top-left-corner{display:block;top:0;left:0;height:3px;width:3px}.xterm .xterm-scrollable-element>.shadow.top.left{box-shadow:var(--vscode-scrollbar-shadow, #000) 6px 0 6px -6px inset}.devices-tab{display:flex;flex-direction:column;gap:1.5rem}.devices-summary{display:flex;gap:1rem;flex-wrap:wrap}.summary-card{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;padding:1rem 1.5rem;min-width:120px;text-align:center}.summary-card.healthy{border-color:var(--green)}.summary-card.warning{border-color:var(--yellow)}.summary-card.critical{border-color:var(--red)}.summary-card.info{border-color:var(--cyan)}.summary-card.online{border-color:var(--green)}.summary-card.offline{border-color:#6b7280}.summary-card.online .summary-value{color:var(--green)}.summary-card.offline .summary-value{color:#6b7280}.summary-value{display:block;font-size:2rem;font-weight:700;font-family:JetBrains Mono,monospace}.summary-card.healthy .summary-value{color:var(--green)}.summary-card.warning .summary-value{color:var(--yellow)}.summary-card.critical .summary-value{color:var(--red)}.summary-card.info .summary-value{color:var(--cyan)}.summary-label{font-size:.75rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.05em}.devices-header{display:flex;justify-content:space-between;align-items:center;padding:.5rem 0}.devices-count{font-size:.9rem;color:var(--text-secondary)}.devices-updated{font-size:.8rem;color:var(--text-dim)}.devices-list{display:flex;flex-direction:column;gap:.75rem}.device-card{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;padding:1rem 1.25rem;cursor:pointer;transition:all .15s ease}.device-card:hover{border-color:#3f3f46}.device-card.selected{border-color:var(--purple);background:var(--bg-row-active)}.device-card.status-healthy{border-left:3px solid var(--green)}.device-card.status-caution{border-left:3px solid var(--yellow)}.device-card.status-warning{border-left:3px solid #f97316}.device-card.status-critical{border-left:3px solid var(--red)}.device-card.status-offline{border-left:3px solid #6b7280;opacity:.7}.device-card-main{display:flex;align-items:center;gap:1.5rem}.device-card-left{display:flex;align-items:center;gap:.75rem;min-width:220px}.device-identity{display:flex;flex-direction:column;gap:.125rem}.device-hostname{font-weight:600;font-size:1rem}.device-os{font-size:.75rem;color:var(--text-dim)}.device-card-stats{display:flex;gap:2rem;flex:1}.device-stat{display:flex;flex-direction:column;gap:.25rem;min-width:90px}.device-stat .stat-label{font-size:.65rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-dim)}.device-stat .stat-value{font-size:.85rem;font-family:JetBrains Mono,monospace;color:var(--text-secondary)}.device-stat .stat-value.warning{color:var(--yellow)}.device-stat .stat-value.critical{color:var(--red)}.device-stat .stat-value.dim{color:var(--text-dim);font-size:.8rem}.device-stat .stat-value.online,.device-stat .stat-value.healthy{color:var(--green)}.device-stat .stat-value.degraded{color:var(--yellow)}.device-stat .stat-value.offline{color:#6b7280}.device-stat .stat-value.ok,.update-status.ok{color:var(--green)}.update-status.warning{color:var(--yellow)}.device-expand-hint{font-size:.7rem;color:var(--text-dim);margin-left:auto}.status-badge{width:12px;height:12px;border-radius:50%;display:flex;align-items:center;justify-content:center}.status-badge .status-icon{font-size:12px}.status-badge.healthy .status-icon{color:var(--green);text-shadow:0 0 8px var(--green)}.status-badge.warning .status-icon{color:var(--yellow);text-shadow:0 0 8px var(--yellow)}.status-badge.critical .status-icon{color:var(--red);text-shadow:0 0 8px var(--red)}.status-badge.offline .status-icon{color:#6b7280;text-shadow:none}.disk-bar-compact{display:flex;align-items:center;gap:.5rem}.disk-bar-track{width:60px;height:6px;background:var(--bg);border-radius:3px;overflow:hidden}.disk-bar-track.large{width:100%;height:8px}.disk-bar-fill{height:100%;border-radius:3px;transition:width .3s ease}.disk-bar-fill.ok{background:var(--green)}.disk-bar-fill.warning{background:var(--yellow)}.disk-bar-fill.critical{background:var(--red)}.disk-percent{font-size:.75rem;font-family:JetBrains Mono,monospace}.disk-percent.ok{color:var(--green)}.disk-percent.warning{color:var(--yellow)}.disk-percent.critical{color:var(--red)}.disk-bar{background:var(--bg);border-radius:8px;padding:.75rem;margin-bottom:.5rem}.disk-bar-header{display:flex;gap:.5rem;margin-bottom:.5rem}.disk-drive{font-weight:600;font-family:JetBrains Mono,monospace}.disk-label{color:var(--text-dim);font-size:.85rem}.disk-bar-footer{display:flex;justify-content:space-between;margin-top:.5rem;font-size:.8rem}.disk-used{color:var(--text-dim)}.disk-free.ok{color:var(--green)}.disk-free.warning{color:var(--yellow)}.disk-free.critical{color:var(--red)}.device-detail-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:2rem}.device-detail-panel{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;width:100%;max-width:1200px;max-height:90vh;overflow:hidden;display:flex;flex-direction:column}.detail-header{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;border-bottom:1px solid var(--border)}.detail-header h3{font-size:1.25rem;font-weight:600}.close-btn{background:none;border:none;font-size:1.5rem;color:var(--text-dim);cursor:pointer;padding:.25rem .5rem;border-radius:4px}.close-btn:hover{background:var(--border);color:var(--text)}.detail-tabs{display:flex;gap:0;border-bottom:1px solid var(--border);padding:0 1.5rem}.detail-tabs button{background:none;border:none;padding:.875rem 1.25rem;color:var(--text-dim);font-size:.9rem;cursor:pointer;border-bottom:2px solid transparent;transition:all .15s}.detail-tabs button:hover{color:var(--text-secondary)}.detail-tabs button.active{color:var(--text);border-bottom-color:var(--purple)}.detail-content{padding:1.5rem;overflow-y:auto;flex:1}.detail-section h4{font-size:.85rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-dim);margin-bottom:1rem;margin-top:1.5rem}.detail-section h4:first-child{margin-top:0}.detail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.detail-item{display:flex;flex-direction:column;gap:.25rem}.detail-item.full-width{grid-column:span 2}.detail-label{font-size:.75rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.03em}.detail-value{font-size:.9rem;color:var(--text-secondary)}.detail-value.mono{font-family:JetBrains Mono,monospace}.detail-value.warning{color:var(--yellow)}.detail-value.online{color:var(--green)}.detail-value.offline{color:#6b7280}.detail-value.ok{color:var(--green)}.detail-header-left{display:flex;align-items:center;gap:.75rem}.online-badge{font-size:.7rem;font-weight:600;text-transform:uppercase;padding:.2rem .5rem;border-radius:4px}.online-badge.online{background:#22c55e26;color:var(--green)}.online-badge.offline{background:#6b728026;color:#6b7280}.disks-list,.updates-list{display:flex;flex-direction:column;gap:.5rem}.update-item{display:flex;gap:.75rem;align-items:center;padding:.5rem .75rem;background:var(--bg);border-radius:6px;flex-wrap:wrap}.update-item.pending{border-left:3px solid var(--yellow)}.update-kb{font-family:JetBrains Mono,monospace;font-size:.8rem;color:var(--cyan);min-width:80px}.update-title{flex:1;font-size:.85rem;color:var(--text-secondary);min-width:200px}.update-date{font-size:.8rem;color:var(--text-dim)}.update-type,.update-severity{font-size:.7rem;font-weight:600;text-transform:uppercase;padding:.15rem .4rem;border-radius:4px}.update-type.security,.update-severity.critical{background:#ef444426;color:var(--red)}.update-type.cumulative{background:#a855f726;color:var(--purple)}.update-type.update{background:#22d3ee26;color:var(--cyan)}.software-list{background:var(--bg);border-radius:8px;overflow:hidden}.software-header{display:grid;grid-template-columns:2fr 1fr 1fr;gap:1rem;padding:.75rem 1rem;font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-dim);border-bottom:1px solid var(--border)}.software-item{display:grid;grid-template-columns:2fr 1fr 1fr;gap:1rem;padding:.5rem 1rem;font-size:.85rem;border-bottom:1px solid var(--border)}.software-item:last-child{border-bottom:none}.sw-name{color:var(--text-secondary)}.sw-version{font-family:JetBrains Mono,monospace;color:var(--text-dim)}.sw-publisher{color:var(--text-dim)}.more-items{padding:.75rem 1rem;font-size:.85rem;color:var(--text-dim);font-style:italic}.show-more-btn{display:block;width:100%;padding:.75rem 1rem;margin-top:.5rem;background:var(--bg);border:1px solid var(--border);border-radius:6px;color:var(--accent);font-size:.85rem;font-weight:500;cursor:pointer;transition:all .15s ease}.show-more-btn:hover{background:var(--bg-card);border-color:var(--accent)}.no-data{color:var(--text-dim);font-style:italic;padding:1rem 0}.processes-list{background:var(--bg);border-radius:8px;overflow:hidden}.process-header{display:grid;grid-template-columns:2fr .75fr .75fr 1fr 1fr;gap:.75rem;padding:.75rem 1rem;font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-dim);border-bottom:1px solid var(--border)}.process-item{display:grid;grid-template-columns:2fr .75fr .75fr 1fr 1fr;gap:.75rem;padding:.5rem 1rem;font-size:.85rem;border-bottom:1px solid var(--border);align-items:center}.process-item:last-child{border-bottom:none}.proc-name{color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.proc-pid{font-family:JetBrains Mono,monospace;color:var(--text-dim);font-size:.8rem}.proc-cpu{font-family:JetBrains Mono,monospace;color:var(--text-secondary)}.proc-cpu.high{color:var(--yellow)}.proc-mem{font-family:JetBrains Mono,monospace;color:var(--cyan)}.proc-time{color:var(--text-dim);font-size:.8rem}.devices-loading,.devices-error{text-align:center;padding:3rem;color:var(--text-dim)}.devices-error{display:flex;flex-direction:column;gap:1rem;align-items:center}.retry-btn{background:var(--bg-card);border:1px solid var(--border);border-radius:6px;padding:.5rem 1rem;color:var(--text-secondary);cursor:pointer}.retry-btn:hover{background:var(--border);color:var(--text)}.no-devices{text-align:center;padding:3rem;color:var(--text-dim)}.no-devices-hint{font-size:.85rem;margin-top:.5rem}.connection-indicator{width:10px;height:10px;border-radius:50%;background:#3f3f46;flex-shrink:0}.connection-indicator.connected,.connection-indicator.healthy{background:var(--green);box-shadow:0 0 8px var(--green);animation:pulse-glow 2s ease-in-out infinite}.connection-indicator.degraded{background:var(--yellow);box-shadow:0 0 8px var(--yellow);animation:pulse-warning 1.5s ease-in-out infinite}.connection-indicator.offline{background:#3f3f46;box-shadow:none;animation:none}@keyframes pulse-glow{0%,to{box-shadow:0 0 8px var(--green)}50%{box-shadow:0 0 12px var(--green),0 0 4px var(--green)}}@keyframes pulse-warning{0%,to{box-shadow:0 0 8px var(--yellow)}50%{box-shadow:0 0 14px var(--yellow),0 0 6px var(--yellow)}}.device-card-actions{display:flex;align-items:center;gap:.75rem;margin-left:auto}.header-action-btn{background:var(--bg);border:1px solid var(--border);border-radius:4px;padding:.4rem .85rem;font-size:.8rem;color:var(--text-secondary);cursor:pointer;transition:all .15s ease;display:inline-flex;align-items:center;gap:.4rem}.header-action-btn:hover:not(:disabled){background:var(--border);color:var(--text);border-color:var(--cyan)}.header-action-btn:disabled{opacity:.6;cursor:not-allowed}.header-action-btn.success{background:var(--green);border-color:var(--green);color:#000;animation:success-flash 1.5s ease-out forwards}.header-action-btn.success .btn-text{font-weight:600}.last-report-info{font-size:.75rem;color:var(--text-dim);margin-left:.75rem}.last-report-info:before{content:"·";margin-right:.75rem;color:var(--text-dim)}.agent-build-date{color:var(--text-dim);font-size:.85rem}.agent-version-row .detail-value{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem}.inline-update-available{display:inline-flex;align-items:center;gap:.4rem;margin-left:.5rem}.inline-update-available .update-arrow{color:var(--text-dim)}.inline-update-available .new-version{color:var(--cyan);font-weight:500}.inline-update-btn{background:var(--cyan);color:var(--bg);border:none;border-radius:4px;padding:.2rem .5rem;font-size:.75rem;font-weight:500;cursor:pointer;transition:all .15s ease}.inline-update-btn:hover{background:var(--blue)}.inline-update-btn:disabled{opacity:.6;cursor:not-allowed}.inline-update-current{color:var(--green);font-size:.8rem;margin-left:.5rem}.inline-update-status{font-size:.8rem;margin-left:.5rem;padding:.15rem .4rem;border-radius:3px}.inline-update-status.downloading,.inline-update-status.verifying{color:var(--cyan);background:#06b6d41a}.inline-update-status.applying{color:var(--yellow);background:#facc151a}.inline-update-status.failed{color:var(--red);background:#ef44441a}.inline-update-status.completed{color:var(--green);background:#22c55e1a}.inline-update-error{color:var(--red);font-size:.75rem;margin-left:.5rem}.terminal-btn{background:var(--bg);border:1px solid var(--border);border-radius:4px;padding:.4rem .85rem;font-size:.8rem;color:var(--text-secondary);cursor:pointer;transition:all .15s ease}.terminal-btn:hover{background:var(--border);color:var(--text);border-color:var(--cyan)}.refresh-report-btn{background:var(--bg);border:1px solid var(--border);border-radius:4px;padding:.4rem .85rem;font-size:.8rem;color:var(--text-secondary);cursor:pointer;transition:all .15s ease;display:inline-flex;align-items:center;gap:.4rem}.refresh-report-btn:hover:not(:disabled){background:var(--border);color:var(--text);border-color:var(--green)}.refresh-report-btn:disabled{opacity:.6;cursor:not-allowed}.refresh-report-btn.success{background:var(--green);border-color:var(--green);color:#000;animation:success-flash 1.5s ease-out forwards}.refresh-report-btn.success .btn-text{font-weight:600}.btn-checkmark{font-size:.9rem;font-weight:700;animation:checkmark-pop .3s ease-out}@keyframes success-flash{0%{background:var(--green);border-color:var(--green);color:#000;box-shadow:0 0 #50fa7bb3;transform:scale(1)}15%{box-shadow:0 0 12px 4px #50fa7b80;transform:scale(1.05)}30%{transform:scale(1)}70%{background:var(--green);border-color:var(--green);color:#000;box-shadow:0 0 8px 2px #50fa7b4d}to{background:var(--bg);border-color:var(--border);color:var(--text-secondary);box-shadow:none}}@keyframes checkmark-pop{0%{transform:scale(0);opacity:0}50%{transform:scale(1.3)}to{transform:scale(1);opacity:1}}.btn-spinner{width:12px;height:12px;border:2px solid rgba(255,255,255,.3);border-top-color:var(--green);border-radius:50%;animation:spin .8s linear infinite}.report-status{font-size:.75rem;margin-left:.75rem;padding:.2rem .5rem;border-radius:3px}.report-status.success{color:var(--green);background:#50fa7b1a}.report-status.warning{color:var(--yellow);background:#f1fa8c1a}.report-status.error{color:var(--red);background:#ff55551a}.ws-status{font-size:.8rem;margin-left:.5rem}.ws-status.connected{color:var(--green)}.terminal-overlay{position:fixed;inset:0;background:#000000d9;display:flex;align-items:center;justify-content:center;z-index:1100;padding:2rem}.terminal-container{background:#0c0c0c;border:1px solid var(--border);border-radius:8px;display:flex;flex-direction:column;width:100%;max-width:900px;height:550px}.terminal-header{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;border-bottom:1px solid var(--border);background:var(--bg-card);border-radius:8px 8px 0 0}.terminal-title{display:flex;align-items:center;gap:.5rem;font-weight:500}.terminal-status{width:8px;height:8px;border-radius:50%;background:#6b7280}.terminal-status.connected{background:var(--green);box-shadow:0 0 8px var(--green)}.terminal-controls{display:flex;gap:.5rem}.terminal-controls button{background:var(--bg);border:1px solid var(--border);border-radius:4px;padding:.25rem .5rem;font-size:.75rem;color:var(--text-secondary);cursor:pointer}.terminal-controls button:hover{background:var(--border);color:var(--text)}.terminal-controls button.close-btn{font-size:1rem;padding:.1rem .4rem}.terminal-xterm-container{flex:1;padding:.5rem;overflow:hidden}.terminal-xterm-container .xterm{height:100%}.terminal-xterm-container .xterm-viewport::-webkit-scrollbar{width:8px}.terminal-xterm-container .xterm-viewport::-webkit-scrollbar-track{background:#1a1a1a}.terminal-xterm-container .xterm-viewport::-webkit-scrollbar-thumb{background:#3f3f46;border-radius:4px}.terminal-output{flex:1;overflow-y:auto;padding:1rem;font-family:JetBrains Mono,Consolas,Monaco,monospace;font-size:.85rem;line-height:1.5;color:#d4d4d4;white-space:pre-wrap;word-break:break-word}.terminal-output::-webkit-scrollbar{width:8px}.terminal-output::-webkit-scrollbar-track{background:#1a1a1a}.terminal-output::-webkit-scrollbar-thumb{background:#3f3f46;border-radius:4px}.terminal-line-command{color:var(--cyan)}.terminal-line-error{color:var(--red)}.terminal-line-system{color:var(--text-dim);font-style:italic}.terminal-line-output{color:#d4d4d4}.terminal-error-banner{display:flex;align-items:center;justify-content:center;gap:1rem;padding:1rem;background:#ef44441a;border:1px solid var(--red);border-radius:6px;margin-top:1rem;color:var(--red)}.terminal-error-banner button{background:var(--red);border:none;border-radius:4px;padding:.4rem .75rem;font-size:.8rem;color:#fff;cursor:pointer}.terminal-error-banner button:hover{opacity:.9}.terminal-input-row{display:flex;align-items:center;border-top:1px solid var(--border);background:#0a0a0a;border-radius:0 0 8px 8px}.terminal-prompt{padding:.75rem 0 .75rem 1rem;font-family:JetBrains Mono,monospace;font-size:.85rem;color:var(--cyan)}.terminal-input{flex:1;background:transparent;border:none;padding:.75rem 1rem .75rem .5rem;font-family:JetBrains Mono,monospace;font-size:.85rem;color:var(--text);outline:none}.terminal-input::placeholder{color:var(--text-dim)}.terminal-input:disabled{color:var(--text-dim)}.tab-hint{font-size:.8rem;color:var(--text-dim);font-style:italic;margin-top:.5rem}.refresh-btn{background:var(--bg-card);border:1px solid var(--border);border-radius:6px;padding:.5rem 1rem;font-size:.85rem;color:var(--text-secondary);cursor:pointer;transition:all .15s ease}.refresh-btn:hover:not(:disabled){background:var(--border);color:var(--text)}.refresh-btn:disabled{opacity:.5;cursor:not-allowed}.loading-indicator{text-align:center;padding:2rem;color:var(--text-dim)}.error-message{background:#ef44441a;border:1px solid var(--red);border-radius:8px;padding:1rem;color:var(--red);display:flex;align-items:center;gap:1rem}.error-message .retry-btn{background:var(--red);color:#fff;border:none}.device-card-assigned{display:flex;align-items:center;gap:.5rem;margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--border)}.device-card-assigned .assigned-icon{font-size:.85rem;opacity:.7}.device-card-assigned .assigned-preview{font-size:.8rem;color:var(--text-dim);font-style:italic;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.device-card-note{display:flex;align-items:center;gap:.5rem;margin-top:.5rem;padding-top:.5rem;border-top:none}.device-card-assigned+.device-card-note{border-top:none;margin-top:.25rem;padding-top:.25rem}.device-card-note .note-icon{font-size:.85rem;opacity:.7}.device-card-note .note-preview{font-size:.8rem;color:var(--text-dim);font-style:italic;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.device-note-section{background:linear-gradient(135deg,#8b5cf614,#8b5cf605);border:1px solid rgba(139,92,246,.2);border-radius:12px;padding:1rem 1.25rem;margin-bottom:1.5rem;transition:all .3s cubic-bezier(.4,0,.2,1)}.device-note-section.editing{background:linear-gradient(135deg,#8b5cf61f,#8b5cf60a);border-color:var(--purple);box-shadow:0 0 20px #8b5cf626}.device-note-section.just-saved{animation:noteSavedPulse .6s ease-out}@keyframes noteSavedPulse{0%{box-shadow:0 0 #50fa7b66}50%{box-shadow:0 0 20px 5px #50fa7b33}to{box-shadow:0 0 #50fa7b00}}.note-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.note-title{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--purple)}.note-edit-btn{background:transparent;border:none;padding:.35rem;cursor:pointer;color:var(--text-dim);border-radius:6px;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.note-edit-btn:hover{color:var(--purple);background:#8b5cf61a;transform:scale(1.1)}.note-display{padding:.5rem;margin:-.5rem;border-radius:8px}.note-content{color:var(--text);font-size:.9rem;line-height:1.6;white-space:pre-wrap;word-break:break-word;margin:0}.note-placeholder{color:var(--text-dim);font-size:.9rem;font-style:italic;margin:0;opacity:.7}.note-timestamp{font-size:.7rem;color:var(--text-dim);margin-top:.5rem;opacity:.7}.note-edit-container{animation:slideDown .25s cubic-bezier(.4,0,.2,1)}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.device-note-textarea{width:100%;min-height:100px;padding:.875rem;background:var(--bg-card);border:1px solid var(--border);border-radius:8px;color:var(--text);font-family:inherit;font-size:.9rem;resize:vertical;line-height:1.6;transition:border-color .2s ease,box-shadow .2s ease}.device-note-textarea:focus{outline:none;border-color:var(--purple);box-shadow:0 0 0 3px #8b5cf61a}.device-note-textarea::placeholder{color:var(--text-dim);opacity:.6}.device-note-actions{display:flex;align-items:center;gap:.5rem;margin-top:.75rem;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.save-note-btn{background:var(--purple);border:none;border-radius:6px;padding:.5rem 1.25rem;font-size:.85rem;font-weight:500;color:#fff;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;gap:.5rem}.save-note-btn:hover:not(:disabled){background:#7c3aed;transform:translateY(-1px);box-shadow:0 4px 12px #8b5cf64d}.save-note-btn:active:not(:disabled){transform:translateY(0)}.save-note-btn:disabled{opacity:.6;cursor:not-allowed}.saving-spinner{width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.cancel-note-btn{background:transparent;border:1px solid var(--border);border-radius:6px;padding:.5rem 1rem;font-size:.85rem;color:var(--text-dim);cursor:pointer;transition:all .2s ease}.cancel-note-btn:hover:not(:disabled){border-color:var(--text-dim);color:var(--text)}.cancel-note-btn:disabled{opacity:.5;cursor:not-allowed}.delete-note-btn{background:transparent;border:1px solid transparent;border-radius:6px;padding:.5rem .75rem;font-size:.85rem;color:var(--text-dim);cursor:pointer;transition:all .2s ease;margin-left:auto}.delete-note-btn:hover:not(:disabled){border-color:#ff55554d;background:#ff55551a;color:var(--red)}.delete-note-btn:disabled{opacity:.5;cursor:not-allowed}.note-status{font-size:.8rem;padding:.25rem .5rem;border-radius:4px;animation:fadeIn .2s ease}.note-status.error{color:var(--red);background:#ff55551a}.update-panel{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;padding:1rem 1.25rem;margin-bottom:1rem}.update-panel.has-update{border-color:var(--cyan);background:linear-gradient(135deg,rgba(34,211,238,.05) 0%,var(--bg-card) 100%)}.update-panel.error{border-color:var(--red);display:flex;align-items:center;justify-content:space-between;gap:1rem}.update-panel-loading{color:var(--text-dim);font-style:italic;text-align:center;padding:.5rem}.update-panel-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem}.update-panel-info{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.update-label{font-size:.85rem;color:var(--text-dim)}.update-version{font-family:JetBrains Mono,monospace;font-weight:600;font-size:1rem;color:var(--cyan)}.update-date{font-size:.75rem;color:var(--text-dim)}.update-panel-actions{display:flex;align-items:center;gap:.5rem}.update-all-btn{background:var(--cyan);border:none;border-radius:6px;padding:.5rem 1rem;font-size:.85rem;font-weight:500;color:#000;cursor:pointer;transition:all .15s ease;display:flex;align-items:center;gap:.5rem}.update-all-btn:hover:not(:disabled){background:#67e8f9;transform:translateY(-1px);box-shadow:0 4px 12px #22d3ee4d}.update-all-btn:disabled{opacity:.6;cursor:not-allowed;transform:none;box-shadow:none}.refresh-update-btn{background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:.5rem .75rem;font-size:1rem;color:var(--text-secondary);cursor:pointer;transition:all .15s ease}.refresh-update-btn:hover:not(:disabled){background:var(--border);color:var(--text)}.refresh-update-btn:disabled{opacity:.5;cursor:not-allowed}.update-panel-stats{display:flex;gap:1.5rem;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border)}.update-stat{display:flex;flex-direction:column;gap:.25rem}.update-stat .stat-value{font-size:1.25rem;font-weight:600;font-family:JetBrains Mono,monospace;color:var(--text-secondary)}.update-stat .stat-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-dim)}.update-stat.all-good .stat-value{color:var(--green)}.update-stat.needs-update .stat-value{color:var(--yellow)}.update-progress-section{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border)}.update-progress-header{font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-dim);margin-bottom:.75rem}.update-progress-list{display:flex;flex-direction:column;gap:.5rem}.update-progress-item{display:flex;align-items:center;gap:.75rem;padding:.5rem .75rem;background:var(--bg);border-radius:6px;border-left:3px solid var(--cyan)}.update-progress-item.failed{border-left-color:var(--red)}.update-progress-item.applying{border-left-color:var(--green)}.progress-hostname{font-family:JetBrains Mono,monospace;font-size:.85rem;color:var(--text-secondary);min-width:150px}.progress-status{font-size:.85rem;color:var(--text-dim)}.progress-error{font-size:.75rem;color:var(--red);margin-left:auto}.update-agents-section{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border)}.update-agents-header{font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-dim);margin-bottom:.75rem}.update-agents-list{display:flex;flex-direction:column;gap:.5rem;max-height:200px;overflow-y:auto}.update-agent-item{display:flex;align-items:center;gap:.75rem;padding:.5rem .75rem;background:var(--bg);border-radius:6px}.update-agent-item.needs-update{border-left:3px solid var(--yellow)}.update-agent-item.up-to-date{border-left:3px solid var(--green)}.agent-hostname{font-family:JetBrains Mono,monospace;font-size:.85rem;color:var(--text-secondary);flex:1}.agent-version{font-family:JetBrains Mono,monospace;font-size:.8rem}.agent-version.current{color:var(--green)}.agent-version.outdated{color:var(--yellow)}.update-single-btn{background:var(--bg-card);border:1px solid var(--border);border-radius:4px;padding:.25rem .5rem;font-size:.75rem;color:var(--text-secondary);cursor:pointer;transition:all .15s ease}.update-single-btn:hover{background:var(--border);color:var(--text);border-color:var(--cyan)}.agent-status-badge{color:var(--green);font-weight:700}.update-error-banner{margin-top:1rem;padding:.75rem;background:#ff55551a;border:1px solid var(--red);border-radius:6px;font-size:.85rem;color:var(--red)}@media(max-width:768px){.device-card-stats{flex-wrap:wrap;gap:1rem}.device-stat{min-width:80px}.device-stat.last-report{display:none}.devices-summary{flex-wrap:wrap}.summary-card{min-width:100px;padding:.75rem 1rem}.detail-grid{grid-template-columns:1fr}.device-detail-panel{max-height:90vh}.terminal-container{height:80vh;max-width:none;margin:1rem}.terminal-overlay{padding:0}}*{box-sizing:border-box;margin:0;padding:0}:root{--bg: #09090b;--bg-card: #18181b;--bg-row-active: #1f1f23;--border: #27272a;--text: #fafafa;--text-secondary: #a1a1aa;--text-dim: #52525b;--green: #22c55e;--yellow: #facc15;--red: #ef4444;--purple: #a855f7;--cyan: #22d3ee;--navy: #153243;--navy-hover: #1A3D52;--dark-gray: #333333;--white: #FFFFFF;--light-gray: #F5F5F5;--text-muted: #757575}body{background:var(--bg);color:var(--text);font-family:Inter,-apple-system,sans-serif;line-height:1.5}.app{max-width:1100px;margin:0 auto;padding:2rem;min-height:100vh}.header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:1px solid var(--border)}.header h1{font-size:2.25rem;font-weight:700;letter-spacing:-.02em;background:linear-gradient(135deg,#fff,#a1a1aa);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.header-right{display:flex;flex-direction:column;align-items:flex-end;gap:.4rem;min-width:100px}.header-stats{font-size:.75rem;color:var(--text-dim)}.connection-badge{display:flex;align-items:center;gap:.5rem;padding:.5rem .875rem;border-radius:6px;font-size:.8rem;font-weight:500;background:var(--bg-card);border:1px solid var(--border)}.connection-badge.connected{border-color:var(--green);color:var(--green)}.connection-badge.connecting{border-color:var(--yellow);color:var(--yellow)}.connection-badge.disconnected{border-color:var(--red);color:var(--red)}.status-dot{width:8px;height:8px;border-radius:50%;background:currentColor}.toast{position:fixed;top:1.5rem;right:1.5rem;background:var(--bg-card);color:var(--text);padding:.875rem 1.5rem;border-radius:10px;font-size:.9rem;font-weight:500;z-index:1000;border:1px solid var(--border);box-shadow:0 8px 32px #0006;display:flex;align-items:center;gap:.625rem;animation:toastIn .4s cubic-bezier(.16,1,.3,1),toastOut .3s ease 1.7s forwards}.toast:before{content:"";width:8px;height:8px;background:var(--cyan);border-radius:50%;box-shadow:0 0 8px var(--cyan);animation:pulse 1s ease infinite}@keyframes toastIn{0%{opacity:0;transform:translate(100px) scale(.8)}to{opacity:1;transform:translate(0) scale(1)}}@keyframes toastOut{0%{opacity:1;transform:translate(0) scale(1)}to{opacity:0;transform:translate(30px) scale(.9)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.tab-nav{display:flex;gap:.25rem;margin-bottom:1.5rem;border-bottom:1px solid var(--border);padding-bottom:0}.tab-btn{background:none;border:none;padding:.75rem 1.25rem;font-size:.9rem;font-weight:500;color:var(--text-dim);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;transition:all .15s ease}.tab-btn:hover{color:var(--text-secondary)}.tab-btn.active{color:var(--text);border-bottom-color:var(--purple)}@media(max-width:900px){.app{padding:1.5rem}}@media(max-width:640px){.app{padding:1rem}.header{flex-direction:column;align-items:flex-start;gap:1rem}}.app-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;gap:1rem;background:var(--dark-gray)}.app-loading h2{color:var(--white);font-size:1.5rem}.app-no-access{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;text-align:center;color:var(--text-secondary)}.app-no-access h2{color:var(--white);font-size:1.5rem;margin-bottom:.5rem}.app-no-access p{margin:.25rem 0}.app-login{display:flex;flex-direction:row;align-items:stretch;justify-content:center;min-height:100vh;text-align:center}.login-left{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;background-color:var(--dark-gray);padding:2rem;gap:2rem}.login-left h1{font-size:2rem;color:var(--white)}.app-logo{width:100%;max-width:500px;height:auto;margin-bottom:1.5rem}.login-right{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;background-color:var(--white)}.login-right p{color:var(--dark-gray);font-size:1.2rem;margin-bottom:2rem}.login-content{width:100%;max-width:450px;display:flex;flex-direction:column;align-items:center}.login-buttons{display:flex;flex-direction:column;align-items:center;gap:1rem;width:100%;max-width:400px}.google-login-btn{display:flex;align-items:center;justify-content:center;gap:.75rem;padding:.875rem 2rem;font-size:1.05rem;font-weight:500;background-color:var(--white);color:var(--dark-gray);border:2px solid var(--navy);border-radius:8px;cursor:pointer;transition:all .2s;width:100%;box-shadow:0 2px 8px #0000001a}.google-login-btn:hover{background-color:#f8f9fa;box-shadow:0 4px 16px #1532434d;transform:translateY(-2px)}.google-icon{width:20px;height:20px}.divider{display:flex;align-items:center;width:100%;margin:.5rem 0}.divider:before,.divider:after{content:"";flex:1;height:1px;background-color:var(--border)}.divider span{padding:0 1rem;color:var(--text-muted);font-size:.875rem;font-weight:500}.login-btn{padding:1rem 2rem;font-size:1.1rem;font-weight:500;background-color:var(--navy);color:var(--white);border:none;border-radius:8px;cursor:pointer;transition:all .2s;width:100%;box-shadow:0 2px 8px #1532434d}.login-btn:hover{background-color:var(--navy-hover);box-shadow:0 4px 16px #15324366;transform:translateY(-2px)}@media(max-width:768px){.app-login{flex-direction:column}.login-left,.login-right{min-height:50vh}.app-logo{max-width:300px}.login-content{max-width:100%;padding:0 1rem}}.header-user{display:flex;align-items:center;gap:1rem;margin-bottom:.5rem}.user-name{font-size:.85rem;color:var(--text-secondary)}.logout-btn{background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:.4rem .75rem;font-size:.8rem;color:var(--text-secondary);cursor:pointer;transition:all .15s}.logout-btn:hover{background:var(--border);color:var(--text)}
