@import"https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;600&family=Inter:wght@400;500;600;700&display=swap";@import"https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600&family=JetBrains+Mono:wght@400;500&display=swap";@import"https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600&family=Inter:wght@300;400;500;600;700;800&display=swap";:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}.machine-modal-overlay{position:fixed;inset:0;background:#000000b3;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:10000;animation:modalOverlayIn .2s ease-out}@keyframes modalOverlayIn{0%{opacity:0}to{opacity:1}}.machine-modal{background:linear-gradient(145deg,#1a1f2e,#141821);border:1px solid rgba(255,255,255,.08);border-radius:16px;width:90vw;max-width:960px;max-height:85vh;display:flex;flex-direction:column;box-shadow:0 25px 60px #00000080,0 0 0 1px #ffffff0d inset;animation:modalSlideIn .3s cubic-bezier(.16,1,.3,1);overflow:hidden}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(20px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.loading-modal{max-width:400px;min-height:200px}.modal-loading-content{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:40px;color:var(--text-secondary, #94a3b8);font-size:14px}.modal-spinner{width:36px;height:36px;border:3px solid rgba(255,255,255,.1);border-top-color:#3b82f6;border-radius:50%;animation:spin .8s linear infinite}.modal-spinner-small{width:20px;height:20px;border:2px solid rgba(255,255,255,.1);border-top-color:#3b82f6;border-radius:50%;animation:spin .8s linear infinite}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid rgba(255,255,255,.06);background:#ffffff05}.modal-header-left{display:flex;align-items:center;gap:14px}.modal-header-icon{font-size:28px;line-height:1}.modal-header-text h3{margin:0;font-size:18px;font-weight:700;color:#f1f5f9;letter-spacing:-.01em}.modal-header-sub{font-size:12px;color:#64748b;margin-top:2px;display:block}.modal-header-right{display:flex;align-items:center;gap:12px}.modal-status-badge{display:flex;align-items:center;gap:6px;padding:5px 12px;border-radius:20px;font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.modal-status-badge.up{background:#22c55e26;color:#4ade80;border:1px solid rgba(34,197,94,.3)}.modal-status-badge.down{background:#ef444426;color:#f87171;border:1px solid rgba(239,68,68,.3)}.modal-status-dot{width:7px;height:7px;border-radius:50%;background:currentColor}.modal-status-badge.up .modal-status-dot{animation:pulse-dot 2s ease-in-out infinite}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.4}}.modal-uptime-badge{font-size:12px;color:#94a3b8;background:#ffffff0d;padding:4px 10px;border-radius:6px}.modal-close-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:#ffffff0d;border:1px solid rgba(255,255,255,.08);border-radius:8px;color:#94a3b8;cursor:pointer;font-size:14px;transition:all .15s}.modal-close-btn:hover{background:#ef444426;border-color:#ef44444d;color:#f87171}.modal-down-banner{background:linear-gradient(90deg,#f59e0b1a,#ef44440d);border-bottom:1px solid rgba(245,158,11,.2);padding:10px 24px;font-size:12px;color:#fbbf24;display:flex;align-items:center;gap:8px}.modal-error-body{padding:40px 24px;text-align:center;color:#f87171}.modal-error-body p{margin:0 0 16px}.modal-retry-btn{padding:8px 20px;background:#3b82f626;border:1px solid rgba(59,130,246,.3);border-radius:8px;color:#60a5fa;cursor:pointer;font-size:13px;transition:all .15s}.modal-retry-btn:hover{background:#3b82f640}.modal-tabs{display:flex;gap:2px;padding:0 24px;background:#0003;border-bottom:1px solid rgba(255,255,255,.06)}.modal-tab{padding:12px 18px;background:transparent;border:none;border-bottom:2px solid transparent;color:#64748b;font-size:13px;font-weight:500;cursor:pointer;transition:all .15s;white-space:nowrap}.modal-tab:hover:not(.disabled){color:#94a3b8;background:#ffffff08}.modal-tab.active{color:#e2e8f0;border-bottom-color:#3b82f6}.modal-tab.disabled{color:#374151;cursor:not-allowed;opacity:.5}.modal-content{flex:1;overflow-y:auto;padding:20px 24px}.modal-content::-webkit-scrollbar{width:6px}.modal-content::-webkit-scrollbar-track{background:transparent}.modal-content::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:3px}.modal-content::-webkit-scrollbar-thumb:hover{background:#fff3}.modal-tab-content{animation:tabFadeIn .25s ease-out}@keyframes tabFadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.modal-gauges-row{display:flex;justify-content:center;gap:32px;padding:24px 0;margin-bottom:20px;background:#ffffff05;border-radius:12px;border:1px solid rgba(255,255,255,.04)}.gauge-circle-wrapper{display:flex;flex-direction:column;align-items:center;gap:8px}.gauge-svg{filter:drop-shadow(0 2px 8px rgba(0,0,0,.3))}.gauge-progress{transition:stroke-dashoffset .8s cubic-bezier(.16,1,.3,1)}.gauge-value{font-size:16px;font-weight:700;font-family:JetBrains Mono,Fira Code,monospace}.gauge-unit{font-size:10px;font-weight:500}.gauge-label{font-size:12px;color:#94a3b8;font-weight:500}.gauge-vm-status{width:72px;height:72px;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:50%;border:3px solid rgba(255,255,255,.08);background:#ffffff08}.gauge-vm-icon{font-size:22px;line-height:1}.gauge-vm-label{font-size:9px;color:#64748b;margin-top:2px}.gauge-vm-state{font-size:10px;font-weight:700;letter-spacing:.05em}.gauge-vm-state.on{color:#4ade80}.gauge-vm-state.off{color:#64748b}.modal-info-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.modal-section-card{background:#ffffff05;border:1px solid rgba(255,255,255,.05);border-radius:12px;overflow:hidden}.modal-section-card.full-width{grid-column:1 / -1}.modal-section-header{display:flex;align-items:center;gap:8px;padding:12px 16px;background:#ffffff08;border-bottom:1px solid rgba(255,255,255,.04)}.modal-section-icon{font-size:14px}.modal-section-title{font-size:12px;font-weight:600;color:#94a3b8;text-transform:uppercase;letter-spacing:.05em}.modal-section-body{padding:12px 16px}.modal-info-row{display:flex;justify-content:space-between;align-items:flex-start;padding:6px 0;gap:12px}.modal-info-row+.modal-info-row{border-top:1px solid rgba(255,255,255,.03)}.modal-info-label{font-size:12px;color:#64748b;display:flex;align-items:center;gap:6px;white-space:nowrap;flex-shrink:0}.modal-info-icon{font-size:12px}.modal-info-value{font-size:12px;color:#e2e8f0;text-align:right;word-break:break-all}.modal-info-value.mono{font-family:JetBrains Mono,Fira Code,monospace;font-size:11px}.text-green{color:#4ade80!important}.text-orange{color:#fb923c!important}.text-muted{color:#4b5563!important}.modal-iface-priority-list{display:flex;flex-direction:column;gap:10px}.modal-iface-item{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;background:#ffffff05;border-radius:8px;border:1px solid rgba(255,255,255,.04);transition:background .15s}.modal-iface-item:hover{background:#ffffff0a}.modal-iface-item.priority{border-color:#3b82f633;background:#3b82f60d}.modal-iface-item.priority.mesh{border-color:#a855f733;background:#a855f70d}.modal-iface-left{display:flex;align-items:center;gap:10px}.iface-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.iface-dot.up{background:#4ade80;box-shadow:0 0 6px #4ade8080}.iface-dot.down{background:#4b5563}.modal-iface-name{font-size:12px;color:#e2e8f0;font-weight:500}.modal-iface-right{display:flex;align-items:center;gap:16px}.modal-iface-ip{font-size:12px;color:#94a3b8;font-family:JetBrains Mono,Fira Code,monospace}.modal-iface-ip.highlight{color:#e2e8f0;font-weight:600}.modal-iface-speed,.modal-iface-mtu{font-size:10px;color:#4b5563}.modal-iface-detailed-list{display:flex;flex-direction:column;gap:6px;max-height:300px;overflow-y:auto}.modal-iface-detailed-list::-webkit-scrollbar{width:4px}.modal-iface-detailed-list::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:2px}.modal-empty{padding:20px;text-align:center;color:#4b5563;font-size:13px}.modal-loading-inline{display:flex;align-items:center;justify-content:center;gap:10px;padding:24px;color:#64748b;font-size:13px}.modal-storage-visual{margin-top:10px}.modal-storage-bar{height:8px;background:#ffffff0f;border-radius:4px;overflow:hidden}.modal-storage-bar-fill{height:100%;border-radius:4px;transition:width .6s cubic-bezier(.16,1,.3,1)}.modal-storage-bar-fill.system{background:linear-gradient(90deg,#3b82f6,#60a5fa)}.modal-storage-bar-fill.images.ok{background:linear-gradient(90deg,#22c55e,#4ade80)}.modal-storage-bar-fill.images.warning{background:linear-gradient(90deg,#f97316,#fb923c)}.modal-storage-bar-fill.images.critical{background:linear-gradient(90deg,#ef4444,#f87171);animation:barPulse 1.5s ease-in-out infinite}@keyframes barPulse{0%,to{opacity:1}50%{opacity:.7}}.modal-storage-bar-label{font-size:10px;color:#4b5563;margin-top:4px;display:block}.modal-dio-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.modal-dio-item{background:#ffffff08;border-radius:8px;padding:14px;text-align:center;border:1px solid rgba(255,255,255,.04)}.modal-dio-label{font-size:11px;color:#64748b;display:block;margin-bottom:6px}.modal-dio-value{font-size:16px;font-weight:700;color:#e2e8f0;font-family:JetBrains Mono,Fira Code,monospace;display:block}.modal-dio-count{font-size:10px;color:#4b5563;display:block;margin-top:4px}.modal-volumes-list{display:flex;flex-direction:column;gap:6px;max-height:400px;overflow-y:auto}.modal-volumes-list::-webkit-scrollbar{width:4px}.modal-volumes-list::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:2px}.modal-volume-item{display:flex;align-items:center;gap:12px;padding:10px 14px;background:#ffffff05;border-radius:8px;border:1px solid rgba(255,255,255,.04);transition:background .15s}.modal-volume-item:hover{background:#ffffff0a}.modal-volume-item.is-boot{border-color:#22c55e4d;background:#22c55e0d}.modal-vol-icon{font-size:16px}.modal-vol-name{flex:1;font-size:12px;color:#e2e8f0;font-family:JetBrains Mono,Fira Code,monospace;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.modal-vol-size{font-size:12px;color:#94a3b8;font-family:JetBrains Mono,Fira Code,monospace;flex-shrink:0}.modal-vol-badge{font-size:9px;font-weight:700;color:#4ade80;background:#22c55e26;padding:2px 8px;border-radius:4px;letter-spacing:.05em;flex-shrink:0}.modal-footer{display:flex;align-items:center;justify-content:space-between;padding:12px 24px;border-top:1px solid rgba(255,255,255,.06);background:#0003}.modal-footer-left{font-size:11px;color:#4b5563}.modal-footer-close{padding:8px 20px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:#94a3b8;cursor:pointer;font-size:13px;font-weight:500;transition:all .15s}.modal-footer-close:hover{background:#ffffff1a;color:#e2e8f0}@media(max-width:768px){.machine-modal{width:95vw;max-height:90vh}.modal-info-grid{grid-template-columns:1fr}.modal-dio-grid{grid-template-columns:repeat(2,1fr)}.modal-gauges-row{gap:16px;padding:16px 8px}.modal-header-right{flex-direction:column;gap:8px;align-items:flex-end}.modal-tabs{overflow-x:auto;-webkit-overflow-scrolling:touch}.modal-tab{font-size:12px;padding:10px 12px}}:root{--bg-hover: rgba(255, 255, 255, .04);--text-primary: #f1f5f9;--text-muted: #94a3b8;--border-color: rgba(148, 163, 184, .15);--accent-green: #22c55e;--accent-red: #ef4444;--accent-orange: #f97316;--accent-purple: #8b5cf6;--radius-sm: 6px}.machines-table-wrap{overflow-x:auto;overflow-y:visible;flex:1;margin:0 -14px;-webkit-overflow-scrolling:touch}.machines-table{width:100%;min-width:960px;border-collapse:collapse;font-size:.8rem;table-layout:fixed}.machines-table th:nth-child(1),.machines-table td:nth-child(1){width:40px}.machines-table th:nth-child(2),.machines-table td:nth-child(2){width:140px}.machines-table th:nth-child(3),.machines-table td:nth-child(3){width:90px}.machines-table th:nth-child(4),.machines-table td:nth-child(4){width:90px}.machines-table th:nth-child(5),.machines-table td:nth-child(5){width:90px}.machines-table th:nth-child(6),.machines-table td:nth-child(6){width:240px}.machines-table th:nth-child(7),.machines-table td:nth-child(7){width:90px}.machines-table th:nth-child(8),.machines-table td:nth-child(8){width:200px}.machines-table th{background:var(--bg-primary);padding:8px 12px;text-align:left;font-size:.66rem;text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted);font-weight:700;border-bottom:1px solid var(--border-color);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;position:sticky;top:0;z-index:1}.machines-table td{padding:5px 12px;border-bottom:1px solid rgba(30,45,69,.45);vertical-align:middle;overflow:hidden}.machines-table tr:last-child td{border-bottom:none}.machines-table tr:hover td{background:var(--bg-hover)}.machine-row.machine-down,.machines-table tr.row-down td{opacity:.45}.guest-header{text-align:center!important}.actions-header{text-align:center!important;padding-left:0;padding-right:0}.title-container{display:flex;justify-content:space-between}.machines-table td.checkbox-col{text-align:center;padding:0}.checkbox-down,.checkbox-normal{width:12px;height:12px;cursor:pointer;accent-color:#22c55e;transition:opacity .2s}.checkbox-down{cursor:not-allowed;opacity:.4}.checkbox-normal1{width:12px;height:12px;cursor:pointer;accent-color:#22c55e;transition:opacity .2s;margin-left:10px}.machines-table td.hostname-cell{text-align:left}.hostname-wrapper{display:flex;align-items:center;gap:7px;overflow:hidden}.hostname-text{font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dot-down{width:8px;height:8px;border-radius:50%;background:var(--accent-red);box-shadow:0 0 6px var(--accent-red);display:inline-block;flex-shrink:0;animation:pulse 2s infinite}.dot-tailscale{width:8px;height:8px;border-radius:50%;display:inline-block;flex-shrink:0}.dot-tailscale.active{background:#4caf50;box-shadow:0 0 5px #4caf5080}.dot-tailscale.inactive{background:#64748b}.metric-cell{vertical-align:middle;padding:5px 12px}.metric-bar-container{display:flex;flex-direction:column;gap:4px}.metric-value{font-size:.73rem;font-weight:600;font-family:JetBrains Mono,monospace;color:var(--text-primary);line-height:1;white-space:nowrap}.metric-bar-bg{width:30%;height:4px;background:#ffffff14;border-radius:4px;overflow:hidden}.metric-bar-fill{height:100%;border-radius:4px;transition:width .4s ease,background-color .3s ease}.metric-na{color:var(--text-muted);font-size:.78rem;font-family:JetBrains Mono,monospace}.ip-cell{vertical-align:middle}.ip-container{display:flex;align-items:center;gap:8px;flex-wrap:nowrap;overflow:hidden}.ip-down-badge{background:#dc26261f;padding:3px 8px;border-radius:var(--radius-sm);border:1px solid rgba(220,38,38,.25);font-weight:600;font-family:JetBrains Mono,monospace;font-size:.72rem;color:var(--accent-red);white-space:nowrap}.ip-text{font-family:JetBrains Mono,monospace;font-size:.75rem;background:#94a3b80f;padding:3px 8px;border-radius:var(--radius-sm);border:1px solid var(--border-color);white-space:nowrap;flex-shrink:0;width:110px;display:inline-block;text-align:center;overflow:hidden;text-overflow:ellipsis}.ip-text.has-ip{color:#4ade80;font-weight:500}.ip-text.no-ip{color:#64748b}.ts-toggle-wrapper{display:inline-flex;align-items:center;gap:6px;cursor:pointer;flex-shrink:0;-webkit-user-select:none;user-select:none}.ts-toggle-track{width:38px;height:20px;border-radius:20px;position:relative;flex-shrink:0;transition:background-color .25s ease,box-shadow .25s ease}.ts-toggle-track.on{background:#22c55e;box-shadow:0 0 8px #22c55e59}.ts-toggle-track.off{background:#334155}.ts-toggle-track.na{background:#1e293b}.ts-toggle-thumb{position:absolute;top:2px;width:16px;height:16px;border-radius:50%;background:#fff;transition:left .25s ease;box-shadow:0 1px 4px #00000040}.ts-toggle-thumb.on{left:20px}.ts-toggle-thumb.off{left:2px}.ts-toggle-icon{position:absolute;top:50%;transform:translateY(-50%);font-size:9px;color:#ffffffd9;font-weight:700}.ts-toggle-icon.on{right:4px}.ts-toggle-icon.off{left:4px}.ts-label{font-size:10px;font-weight:700;font-family:JetBrains Mono,monospace;letter-spacing:.04em;white-space:nowrap}.ts-label.on{color:#22c55e}.ts-label.off{color:#64748b}.ts-label.na{color:#475569}.ts-loading-track{width:38px;height:20px;border-radius:20px;background:#1e293b;border:1px solid var(--border-color);display:flex;align-items:center;justify-content:center;flex-shrink:0}.ts-loading-label{font-size:10px;color:#64748b;font-family:JetBrains Mono,monospace;white-space:nowrap}.machines-table td.vm-cell{text-align:center;vertical-align:middle}.vm-down-badge{background:#dc26261f;padding:3px 8px;border-radius:var(--radius-sm);border:1px solid rgba(220,38,38,.25);font-weight:600;font-family:JetBrains Mono,monospace;font-size:.72rem;color:var(--accent-red)}.vm-none{color:var(--text-muted);font-size:.8rem}.vm-state{display:inline-flex;align-items:center;justify-content:center;gap:4px;padding:4px 10px;border-radius:20px;font-size:.62rem;font-weight:700;font-family:JetBrains Mono,monospace;letter-spacing:.03em;white-space:nowrap}.vm-state.on,.vm-state.running{background:#10b9811f;color:#4ade80;border:1px solid rgba(16,185,129,.25)}.vm-state.off,.vm-state.stopped{background:#ef444414;color:#f87171;border:1px solid rgba(239,68,68,.2)}.machines-table td.actions-cell{text-align:center;vertical-align:middle;padding:4px 8px}.actions-wrapper{display:flex;justify-content:center;align-items:center;gap:5px;flex-wrap:nowrap}.actions-down-badge{background:#dc26261f;padding:3px 8px;border-radius:var(--radius-sm);border:1px solid rgba(220,38,38,.25);font-weight:600;font-family:JetBrains Mono,monospace;font-size:.72rem;color:var(--accent-red)}.btn-act{background:transparent;color:var(--text-muted);border:1px solid var(--border-color);border-radius:var(--radius-sm);cursor:pointer;font-size:14px;width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .18s ease}.btn-act:hover:not(:disabled){background:#8b5cf61f;color:var(--accent-purple);border-color:#8b5cf659;transform:translateY(-1px);box-shadow:0 3px 8px #8b5cf640}.btn-act:active:not(:disabled){transform:translateY(0);box-shadow:none}.btn-act:disabled{opacity:.25;cursor:not-allowed;filter:grayscale(1)}@media(max-width:1280px){.machines-table{min-width:900px}.machines-table th:nth-child(6),.machines-table td:nth-child(6){width:200px}.machines-table th:nth-child(8),.machines-table td:nth-child(8){width:160px}.btn-act{width:30px;height:30px;font-size:12px}}@media(max-width:1024px){.machines-table{min-width:860px;font-size:.75rem}.machines-table th:nth-child(3),.machines-table td:nth-child(3),.machines-table th:nth-child(4),.machines-table td:nth-child(4),.machines-table th:nth-child(5),.machines-table td:nth-child(5){width:100px}.metric-value{font-size:.68rem}}.sortable{text-align:center;vertical-align:middle}.sortable1{vertical-align:middle;margin-left:180px}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.15)}}@keyframes rc-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.popover-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#0009;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:9999;display:flex;justify-content:center;align-items:center}@keyframes popIn{0%{opacity:0;transform:translateY(-10px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.popover-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;background:#0f172a99;border-bottom:1px solid rgba(255,255,255,.05)}.info-popover{width:720px;max-height:85vh;background:linear-gradient(145deg,#1e293b,#0f172a);border:1px solid rgba(255,255,255,.1);border-radius:16px;box-shadow:0 25px 50px -12px #000c,0 0 0 1px #ffffff0d;display:flex;flex-direction:column;overflow:hidden;animation:popIn .2s cubic-bezier(.16,1,.3,1)}.popover-grid-3c{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1px;background:#ffffff08;overflow-y:auto}.popover-title{display:flex;align-items:center;gap:12px}.popover-icon{font-size:24px;background:#3b82f626;padding:10px;border-radius:10px}.popover-title h3{margin:0;color:#f8fafc;font-size:16px;font-weight:600}.popover-subtitle{color:#64748b;font-size:11px;font-family:monospace}.popover-close{background:#ffffff0d;border:none;color:#94a3b8;width:32px;height:32px;border-radius:8px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.popover-close:hover{background:#ef444433;color:#ef4444}.popover-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:#ffffff08;overflow-y:auto}.popover-section{background:#1e293b;padding:20px;display:flex;flex-direction:column}.bottom-section{border-top:1px solid rgba(255,255,255,.05);background:#0f172a80}.vm-mac-text{font-size:10px;font-family:monospace;color:#94a3b8;word-break:break-all}.volume-item.is-boot{background:#22c55e1a;border:1px solid rgba(34,197,94,.3)}.vol-boot-badge{background:#22c55e;color:#052e16;font-size:9px;font-weight:800;padding:2px 8px;border-radius:4px;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}.popover-section.full-width{grid-column:1 / -1}.section-title{color:#94a3b8;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid rgba(255,255,255,.05)}.info-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;font-size:13px}.info-row span{color:#cbd5e1}.info-row strong{color:#f1f5f9;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}.text-red{color:#f87171!important}.vm-badge-popover{padding:3px 8px;border-radius:4px;font-size:11px;font-weight:600}.vm-badge-popover.on{background:#22c55e33;color:#4ade80}.vm-badge-popover.off{background:#64748b33;color:#94a3b8}.mini-bar-container{margin-top:6px;height:6px;width:100%}.mini-bar-bg{width:100%;height:100%;background:#334155;border-radius:6px;overflow:hidden}.mini-bar-fill{height:100%;border-radius:6px;transition:width .4s ease}.volumes-scroll-container{max-height:180px;overflow-y:auto;display:flex;flex-direction:column;gap:6px;padding-right:4px}.volumes-scroll-container::-webkit-scrollbar{width:4px}.volumes-scroll-container::-webkit-scrollbar-thumb{background:#475569;border-radius:4px}.volume-item{display:flex;align-items:center;gap:10px;background:#ffffff05;padding:8px 10px;border-radius:8px;border:1px solid rgba(255,255,255,.03);transition:all .2s}.volume-item:hover{background:#3b82f61a;border-color:#3b82f633}.vol-icon{font-size:14px}.vol-name{flex:1;color:#e2e8f0;font-size:12px;font-family:monospace;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vol-size{color:#94a3b8;font-size:12px;font-weight:600;font-family:monospace}.loading-vols,.empty-vols{color:#64748b;font-size:12px;text-align:center;padding:20px 0}.interface-item.secondary .iface-name{color:#94a3b8;font-family:monospace;font-size:11px}.popover-down-banner{background:linear-gradient(90deg,#ef444426,#ef44440d);border-bottom:1px solid rgba(239,68,68,.2);color:#fca5a5;padding:10px 20px;font-size:12px;display:flex;align-items:center;gap:8px}.interfaces-grid{display:flex;flex-direction:column;gap:6px}.interface-item{display:flex;justify-content:space-between;align-items:center;padding:6px 10px;border-radius:6px;background:#ffffff05;border:1px solid rgba(255,255,255,.03)}.interface-item.priority{background:#3b82f614;border-color:#3b82f626}.interface-item.secondary .iface-name{color:#94a3b8;font-family:monospace}.iface-name{color:#cbd5e1;font-size:12px;font-weight:500}.iface-ip{color:#f1f5f9;font-size:12px;font-family:monospace;font-weight:600;background:#0003;padding:2px 8px;border-radius:4px}.vm-details-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px}.volumes-list-container{margin-top:8px}.volumes-list-title{color:#64748b;font-size:11px;font-weight:600;text-transform:uppercase;margin-bottom:8px}.popover-grid-2c{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:#ffffff08;overflow-y:auto}.vm-sub-section,.net-sub-section{margin-top:10px;padding-top:10px;border-top:1px dashed rgba(255,255,255,.07)}.mac-text{font-size:10px;font-family:monospace;color:#94a3b8;word-break:break-all;max-width:130px;text-align:right}.other-ifaces-container{display:flex;flex-direction:column;gap:4px;margin-top:4px}.info-row strong{max-width:75%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.interface-item.secondary .iface-name,.interface-item.secondary .iface-ip{font-size:10.5px}.info-popover.compact{max-width:860px;width:92vw;font-size:11px;line-height:1.35;padding:0}.popover-grid-3c{display:grid;grid-template-columns:1fr 1fr 1fr;gap:0;padding:12px 18px}.popover-grid-3c .popover-section{padding:0 10px}.popover-grid-3c .popover-section:first-child{padding-left:0}.popover-grid-3c .popover-section:last-child{padding-right:0}.popover-grid-3c .popover-section:not(:last-child){border-right:1px solid rgba(100,116,139,.12)}.live-metric-card{padding:6px 8px;border-radius:6px;background:#1e293b59;border:1px solid rgba(71,85,105,.12);margin-bottom:6px}.interface-item .iface-name{font-size:10px;color:#94a3b8;font-weight:500}.other-ifaces-container{max-height:140px;overflow-y:auto}.mini-bar-container{margin:4px 0 0}.mini-bar-bg{height:4px;border-radius:2px;background:#33415599;overflow:hidden}.mini-bar-fill{height:100%;border-radius:2px;transition:width .4s ease}.down-placeholder-compact{display:flex;align-items:center;justify-content:center;padding:16px 8px;color:#475569;font-size:10px;font-style:italic}.info-popover.compact{max-width:780px;width:92vw;font-size:11px;line-height:1.35;padding:0}.popover-identity-card{display:flex;align-items:stretch;gap:0;padding:14px 18px 12px;background:linear-gradient(135deg,#0f172a,#1e293b 60%,#1a2332);border-bottom:1px solid rgba(100,116,139,.2);position:relative}.popover-identity-card .popover-close{position:absolute;top:8px;right:10px;z-index:2;font-size:12px;width:22px;height:22px;line-height:22px;padding:0}.identity-left{flex:0 0 auto;min-width:170px;display:flex;flex-direction:column;gap:3px}.identity-type-badge{display:inline-block;align-self:flex-start;padding:1px 7px;border-radius:16px;font-size:8px;font-weight:700;text-transform:uppercase;letter-spacing:.8px;background:#3b82f626;color:#60a5fa;border:1px solid rgba(59,130,246,.25)}.identity-hostname{margin:0;font-size:17px;font-weight:700;color:#f1f5f9;letter-spacing:-.2px;line-height:1.15;word-break:break-all}.identity-minion-id{font-size:9px;color:#64748b;font-family:SF Mono,Fira Code,monospace;letter-spacing:.2px}.identity-timestamp{display:flex;align-items:center;gap:4px;margin-top:2px;font-size:9px;color:#475569}.identity-clock-icon{font-size:9px}.identity-divider{width:1px;margin:0 16px;background:linear-gradient(to bottom,transparent,rgba(100,116,139,.3) 20%,rgba(100,116,139,.3) 80%,transparent);flex-shrink:0}.identity-specs{flex:1;display:flex;flex-direction:column;gap:4px;justify-content:center;min-width:0}.spec-badge{display:flex;align-items:center;gap:7px;padding:4px 9px;border-radius:6px;background:#1e293b99;border:1px solid rgba(71,85,105,.2);transition:background .15s ease}.spec-badge:hover{background:#33415580}.spec-badge.spec-highlight{background:#22c55e14;border-color:#22c55e40}.spec-badge-icon{font-size:12px;flex-shrink:0;width:16px;text-align:center}.spec-badge-content{display:flex;flex-direction:column;gap:0;min-width:0}.spec-badge-label{font-size:8px;font-weight:600;text-transform:uppercase;letter-spacing:.6px;color:#64748b;line-height:1}.spec-badge-value{font-size:10px;font-weight:500;color:#cbd5e1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3}.spec-highlight .spec-badge-value{color:#4ade80}.popover-grid-2c-compact{display:grid;grid-template-columns:1fr 1fr;gap:0;padding:12px 18px}.popover-grid-2c-compact .popover-section{padding:0 14px}.popover-grid-2c-compact .popover-section:first-child{padding-left:0}.popover-grid-2c-compact .popover-section:last-child{padding-right:0}.popover-grid-2c-compact .popover-section:first-child{border-right:1px solid rgba(100,116,139,.12)}.sub-divider{height:1px;background:#64748b1f;margin:10px 0;border:none}.section-title{font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:#64748b;margin-bottom:8px;padding-bottom:5px;border-bottom:1px solid rgba(100,116,139,.15)}.live-metric-card{padding:6px 8px;border-radius:6px;background:#1e293b59;border:1px solid rgba(71,85,105,.12);margin-bottom:5px}.live-metric-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:5px}.live-metric-label{font-size:10px;color:#94a3b8;font-weight:500}.live-metric-value{font-size:11px;font-weight:700;color:#e2e8f0;font-variant-numeric:tabular-nums}.live-metric-bar-bg{height:4px;border-radius:2px;background:#33415599;overflow:hidden}.live-metric-bar-fill{height:100%;border-radius:2px;transition:width .4s ease,background-color .2s ease}.live-metric-bar-fill.disk-bar{background-color:#3b82f6}.info-row.compact-row{display:flex;justify-content:space-between;align-items:center;padding:3px 0;font-size:10px;border-bottom:1px solid rgba(71,85,105,.08)}.info-row.compact-row span{color:#94a3b8;font-weight:500}.info-row.compact-row strong{color:#cbd5e1;font-weight:600;font-size:10px;text-align:right;max-width:60%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mac-text{font-family:SF Mono,Fira Code,monospace;font-size:9px!important;letter-spacing:.3px}.interface-item{display:flex;justify-content:space-between;align-items:center;padding:4px 0;border-bottom:1px solid rgba(71,85,105,.08)}nterface-item.priority .interface-item .iface-name{font-size:10px;color:#94a3b8;font-weight:500}.interface-item .iface-ip{font-size:10px;color:#e2e8f0;font-family:SF Mono,Fira Code,monospace;font-weight:600;text-align:right;max-width:55%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.interface-item.secondary .iface-name{color:#64748b;font-size:9.5px}.interface-item.secondary .iface-ip{color:#94a3b8;font-size:9.5px;font-weight:500}.other-ifaces-container{max-height:180px;overflow-y:auto}.other-ifaces-container::-webkit-scrollbar{width:3px}.other-ifaces-container::-webkit-scrollbar-thumb{background:#64748b4d;border-radius:3px}.compact-empty{padding:4px 0!important;font-size:9px!important}.down-placeholder-compact{display:flex;align-items:center;justify-content:center;padding:14px 8px;color:#475569;font-size:10px;font-style:italic}.popover-down-banner{padding:6px 18px;background:#ef444414;border-bottom:1px solid rgba(239,68,68,.15);font-size:10px;color:#fca5a5;display:flex;align-items:center;gap:6px}.popover-section.full-width.bottom-section{padding:10px 18px 12px;border-top:1px solid rgba(100,116,139,.12)}.popover-section.full-width.bottom-section .section-title{margin-bottom:6px}.volumes-scroll-container{max-height:90px;overflow-y:auto}.volumes-scroll-container::-webkit-scrollbar{width:3px}.volumes-scroll-container::-webkit-scrollbar-thumb{background:#64748b4d;border-radius:3px}.volume-item{display:flex;align-items:center;gap:8px;padding:4px 8px;border-radius:4px;font-size:10px;transition:background .15s}.volume-item:hover{background:#3341554d}.volume-item .vol-icon{font-size:11px;flex-shrink:0}.volume-item .vol-name{flex:1;color:#cbd5e1;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.volume-item .vol-size{color:#64748b;font-family:SF Mono,Fira Code,monospace;font-size:9px;font-weight:600;flex-shrink:0}.volume-item .vol-boot-badge{padding:1px 5px;border-radius:3px;font-size:7px;font-weight:700;letter-spacing:.5px;background:#22c55e26;color:#4ade80;border:1px solid rgba(34,197,94,.3);flex-shrink:0}.volume-item.is-boot{background:#22c55e0d;border:1px solid rgba(34,197,94,.12)}.loading-vols,.empty-vols{padding:8px;text-align:center;font-size:10px;color:#475569}.popover-header{display:none}.text-red{color:#ef4444!important}.ts-status-btn{display:inline-flex;align-items:center;gap:5px;padding:4px 12px;border-radius:6px;font-size:11px;font-weight:700;font-family:JetBrains Mono,monospace;letter-spacing:.5px;border:1px solid transparent;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);outline:none;background-clip:padding-box}.ts-status-btn.disconnected{background:#ef44440d;border-color:#ef444433;color:#94a3b8}.ts-status-btn.disconnected:hover:not(:disabled){background:#3b82f61a;border-color:#3b82f666;color:#60a5fa;transform:translateY(-1px);box-shadow:0 4px 12px #3b82f626}.ts-status-btn.loading{pointer-events:none;color:#64748b;border-color:#64748b4d;background:#64748b0d;animation:ts-pulse 1.5s ease-in-out infinite}@keyframes ts-pulse{0%{box-shadow:0 0 #64748b33}70%{box-shadow:0 0 0 6px #64748b00}to{box-shadow:0 0 #64748b00}}.ts-spinner{animation:rc-spin .8s linear infinite}.ts-status-btn.connected{background:#10b9811a;border-color:#10b98140;color:#10b981;cursor:not-allowed;opacity:.8}.ts-status-btn:focus-visible:not(:disabled){outline:2px solid #3b82f6;outline-offset:2px}.checkpoint-timeline-container{background:#111827;border-radius:14px;border:1px solid #1e2d45;padding:22px;margin-bottom:20px;box-shadow:0 4px 20px #0000004d}.timeline-title{margin:0 0 22px;color:#94a8c7;font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;display:flex;align-items:center;gap:8px}.timeline-track{position:relative;height:72px;margin:36px 16px 32px}.timeline-line{position:absolute;top:50%;left:0;right:0;height:2px;background:linear-gradient(90deg,#1e2d45,#3b82f6,#1e2d45);transform:translateY(-50%);border-radius:1px}.timeline-point-wrapper{position:absolute;top:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center}.timeline-dot{width:16px;height:16px;border-radius:50%;background:#3b82f6;border:2px solid #111827;outline:2px solid #3b82f6;cursor:pointer;position:relative;z-index:3;transition:transform .15s ease,box-shadow .15s ease;padding:0;flex-shrink:0}.timeline-dot:hover{transform:scale(1.5);box-shadow:0 0 0 5px #3b82f640}.timeline-dot:focus{outline:none;box-shadow:0 0 0 4px #3b82f666}.timeline-dot:active{transform:scale(.9)}.timeline-dot.latest{width:20px;height:20px;background:#10b981;outline-color:#10b981}.timeline-dot.latest:hover{box-shadow:0 0 0 5px #10b98140}.timeline-dot.selected{background:#60a5fa;outline-color:#60a5fa;box-shadow:0 0 0 5px #60a5fa4d}.dot-star{position:absolute;top:-20px;left:50%;transform:translate(-50%);font-size:11px;color:#10b981;pointer-events:none;line-height:1}.timeline-label{position:absolute;top:20px;font-size:10px;color:#4a6080;white-space:nowrap;font-family:JetBrains Mono,monospace;pointer-events:none}.timeline-tooltip-hover{display:none;position:absolute;bottom:32px;left:50%;transform:translate(-50%);background:#0a0f1e;border:1px solid #2a3f5f;border-radius:10px;padding:10px 14px;font-size:12px;color:#f0f4ff;white-space:nowrap;z-index:20;pointer-events:none;box-shadow:0 8px 24px #00000080;animation:tooltipFade .15s ease}@keyframes tooltipFade{0%{opacity:0;transform:translate(-50%) translateY(4px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.timeline-tooltip-hover p{margin:0 0 4px;line-height:1.4}.timeline-tooltip-hover p:last-child{margin:0}.timeline-point-wrapper:hover .timeline-tooltip-hover{display:block}.timeline-tooltip-hover:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:5px solid transparent;border-top-color:#2a3f5f}.tooltip-hint{color:#3b82f6!important;margin-top:6px!important;padding-top:6px;border-top:1px solid #1e2d45;font-style:italic}.timeline-chart{background:#0a0f1e66;border-radius:8px;padding:8px;position:relative}.timeline-tooltip{background:#0a0f1e;border:1px solid #2a3f5f;border-radius:10px;padding:12px 16px;box-shadow:0 8px 24px #00000080;color:#f0f4ff;min-width:190px}.tooltip-name{margin:0 0 8px;color:#3b82f6;font-weight:600;font-size:.9rem;word-break:break-all}.tooltip-date{margin:0 0 4px;color:#94a8c7;font-size:.82rem}.tooltip-age{margin:0 0 8px;color:#10b981;font-size:.82rem}.timeline-legend{display:flex;justify-content:center;gap:20px;margin-top:14px;padding-top:14px;border-top:1px solid #1e2d45;flex-wrap:wrap}.legend-item{display:flex;align-items:center;gap:7px;font-size:.78rem;color:#4a6080}.legend-item .dot{width:9px;height:9px;border-radius:50%;display:inline-block;flex-shrink:0}.legend-item .dot.latest{background:#10b981;box-shadow:0 0 6px #10b98180}.legend-item .dot.normal{background:#3b82f6}.legend-item .dot.selected{background:#60a5fa;box-shadow:0 0 6px #60a5fa66}.timeline-empty{text-align:center;padding:32px;color:#4a6080;font-size:.9rem}.checkpoint-actions-menu{background:#111827;border:1px solid #2a3f5f;border-radius:12px;padding:14px;min-width:240px;box-shadow:0 12px 32px #00000080;animation:menuSlide .18s ease}@keyframes menuSlide{0%{opacity:0;transform:translate(-50%,-105%)}to{opacity:1;transform:translate(-50%,-115%)}}.menu-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;padding-bottom:8px;border-bottom:1px solid #1e2d45}.menu-title{color:#f0f4ff;font-weight:600;font-size:13px;word-break:break-all;max-width:175px;font-family:JetBrains Mono,monospace}.menu-close{background:none;border:none;color:#4a6080;cursor:pointer;font-size:15px;padding:3px 7px;border-radius:5px;transition:all .2s}.menu-close:hover{background:#ef44441a;color:#ef4444}.menu-date{color:#4a6080;font-size:11px;margin-bottom:12px;font-family:JetBrains Mono,monospace}.menu-actions{display:flex;gap:8px}.menu-btn{flex:1;padding:9px 10px;border:none;border-radius:8px;font-size:12px;font-weight:600;cursor:pointer;transition:all .2s;font-family:inherit}.menu-btn:disabled{opacity:.4;cursor:not-allowed}.restore-btn{background:#3b82f61f;color:#3b82f6;border:1px solid rgba(59,130,246,.3)}.restore-btn:hover:not(:disabled){background:#3b82f6;color:#fff}.delete-btn{background:#ef44441a;color:#ef4444;border:1px solid rgba(239,68,68,.25)}.delete-btn:hover:not(:disabled){background:#ef4444;color:#fff}.checkpoints-page{min-height:100vh;background:#0a0f1e;color:#f0f4ff;font-family:Inter,Segoe UI,system-ui,sans-serif;display:flex;flex-direction:column;align-items:center}.checkpoints-header{background:#111827;border-bottom:1px solid #1e2d45;padding:18px 28px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px;position:sticky;top:0;z-index:10;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);width:100%;max-width:860px;box-sizing:border-box}.checkpoints-actions-bar{display:flex;justify-content:space-between;align-items:center;padding:18px 28px;background:#111827;border-bottom:1px solid #1e2d45;gap:16px;flex-wrap:wrap;width:100%;max-width:860px;box-sizing:border-box}.btn-create-checkpoint{display:inline-flex;align-items:center;gap:12px;padding:20px;background:#3b82f614;border:1px solid rgba(59,130,246,.2);border-radius:12px;cursor:pointer;font-family:inherit;text-align:left;transition:all .2s ease;color:#f0f4ff;flex:1;min-width:200px}.btn-refresh-small{width:34px;height:34px;background:#1e2a40;border:1px solid #1e2d45;color:#94a8c7;border-radius:8px;cursor:pointer;font-size:.95rem;display:flex;align-items:center;justify-content:center;transition:all .2s;padding:0;font-family:inherit}.btn-refresh-small:hover:not(:disabled){background:#2a3f5f;color:#f0f4ff;border-color:#3b82f6}.btn-create-checkpoint:hover:not(:disabled){background:#3b82f626;border-color:#3b82f680;transform:translateY(-2px);box-shadow:0 8px 24px #3b82f633}.btn-create-checkpoint:active:not(:disabled){transform:translateY(0)}.btn-create-checkpoint:disabled{opacity:.4;cursor:not-allowed;filter:grayscale(40%)}.btn-create-checkpoint .icon{font-size:1.8rem;flex-shrink:0}.btn-create-checkpoint .text{display:flex;flex-direction:column;gap:4px}.btn-create-checkpoint .text .title{font-size:.95rem;font-weight:600;color:#f0f4ff}.btn-create-checkpoint .text .desc{font-size:.78rem;color:#4a6080}.checkpoints-stats{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.stats-count,.stats-latest{font-size:.82rem;color:#4a6080;font-family:JetBrains Mono,monospace;background:#161d2e;padding:4px 10px;border-radius:6px;border:1px solid #1e2d45}.stats-count{color:#3b82f6;font-weight:600}.checkpoints-content{flex:1;width:100%;max-width:860px;padding:28px 24px;display:flex;flex-direction:column;gap:20px;box-sizing:border-box}.checkpoints-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 40px;text-align:center;background:#111827;border-radius:16px;border:1px solid #1e2d45;margin:28px 0;width:100%;box-sizing:border-box}.empty-icon{font-size:4rem;margin-bottom:1rem;opacity:.5}.checkpoints-empty p{color:#94a8c7;margin:0 0 8px}.checkpoints-empty .hint{color:#4a6080;font-size:.85rem;margin-bottom:24px}.btn-create-empty{display:inline-flex;align-items:center;gap:12px;padding:20px;background:#3b82f614;border:1px solid rgba(59,130,246,.2);border-radius:12px;color:#f0f4ff;font-weight:600;cursor:pointer;transition:all .2s ease;font-family:inherit;flex-direction:column;text-align:center}.btn-create-empty:hover:not(:disabled){background:#3b82f626;border-color:#3b82f680;transform:translateY(-2px);box-shadow:0 8px 24px #3b82f633}.checkpoints-timeline-only{width:100%;display:flex;flex-direction:column;gap:20px}.checkpoints-footer{display:flex;justify-content:center;padding-top:20px;border-top:1px solid #1e2d45;margin-top:20px}.checkpoint-detail-page{min-height:100vh;background:#0a0f1e;color:#f0f4ff;font-family:Inter,Segoe UI,system-ui,sans-serif;display:flex;flex-direction:column;align-items:center}.detail-header{background:#111827;border-bottom:1px solid #1e2d45;padding:18px 28px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px;position:sticky;top:0;z-index:10;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);width:100%;max-width:860px;box-sizing:border-box}.detail-actions-bar{padding:18px 28px;background:#111827;border-bottom:1px solid #1e2d45;display:flex;justify-content:flex-end;gap:12px;width:100%;max-width:860px;box-sizing:border-box}.btn-create-checkpoint-top{display:inline-flex;align-items:center;gap:12px;padding:16px 20px;background:#3b82f614;border:1px solid rgba(59,130,246,.2);border-radius:12px;color:#f0f4ff;font-weight:600;font-size:.9rem;cursor:pointer;transition:all .2s ease;font-family:inherit}.btn-create-checkpoint-top:hover:not(:disabled){background:#3b82f626;border-color:#3b82f680;transform:translateY(-2px);box-shadow:0 8px 24px #3b82f633}.btn-create-checkpoint-top:disabled{opacity:.4;cursor:not-allowed;filter:grayscale(40%)}.detail-content{flex:1;max-width:860px;margin:0 auto;width:100%;padding:28px 24px;display:flex;flex-direction:column;gap:20px;box-sizing:border-box}@media(max-width:768px){.checkpoints-header,.checkpoints-actions-bar,.checkpoints-content,.detail-header,.detail-actions-bar,.detail-content{max-width:100%;padding:14px 16px}.btn-create-checkpoint,.btn-create-empty{width:100%;justify-content:center}.checkpoints-actions-bar{flex-direction:column}.checkpoints-stats{justify-content:center;width:100%}}.checkpoint-detail-page{min-height:100vh;background:#0a0f1e;display:flex;flex-direction:column}.detail-content{flex:1;max-width:860px;margin:0 auto;width:100%;padding:28px 24px;display:flex;flex-direction:column;gap:20px;justify-content:center}.detail-header{background:#111827;border-bottom:1px solid #1e2d45;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px;position:sticky;top:0;z-index:10;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.header-left{display:flex;align-items:center;gap:18px;flex-wrap:wrap}.detail-header h2{margin:0;font-size:1.2rem;font-weight:600;color:#f0f4ff}.btn-back-main{display:inline-flex;align-items:center;gap:8px;padding:9px 18px;background:#1e2a40;border:1px solid #1e2d45;color:#94a8c7;border-radius:10px;cursor:pointer;font-size:.88rem;font-weight:500;font-family:inherit;transition:all .2s ease}.btn-back-main:hover{background:#2a3f5f;color:#f0f4ff;border-color:#3b82f6;transform:translate(-2px)}.machine-info{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.machine-info span{font-size:.82rem;color:#4a6080;font-family:JetBrains Mono,monospace;background:#161d2e;padding:4px 10px;border-radius:6px;border:1px solid #1e2d45}.checkpoint-card{background:#111827;border-radius:16px;border:1px solid #1e2d45;overflow:hidden;box-shadow:0 8px 32px #0006}.detail-header{max-width:1200px;margin:0 auto;width:100%}.card-header{background:linear-gradient(135deg,#0d1f3c,#162032);border-bottom:1px solid #1e2d45;padding:24px 28px;display:flex;align-items:center;gap:16px}.checkpoint-icon{font-size:2.2rem}.card-header h3{margin:0;color:#f0f4ff;font-size:1.25rem;font-weight:600;word-break:break-all;font-family:JetBrains Mono,monospace}.latest-badge{margin-left:auto;background:#10b9811f;color:#10b981;border:1px solid rgba(16,185,129,.3);padding:4px 12px;border-radius:20px;font-size:.78rem;font-weight:700;white-space:nowrap;text-transform:uppercase;letter-spacing:.05em}.card-body{padding:24px 28px}.info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}.info-item{display:flex;flex-direction:column;gap:6px;padding:14px 16px;background:#161d2e;border-radius:10px;border:1px solid #1e2d45;transition:border-color .2s}.info-item:hover{border-color:#2a3f5f}.info-label{font-size:.7rem;color:#4a6080;text-transform:uppercase;letter-spacing:.08em;font-weight:600}.info-value{font-size:.95rem;color:#f0f4ff;font-weight:600;word-break:break-all}.info-value code{font-family:JetBrains Mono,monospace;font-size:.85rem;color:#3b82f6;background:#3b82f614;padding:3px 7px;border-radius:5px;display:inline-block}.info-value.age{color:#10b981}.info-value.timestamp{font-family:JetBrains Mono,monospace;font-size:.8rem;color:#4a6080}.actions-section{background:#111827;border-radius:16px;border:1px solid #1e2d45;padding:24px 28px;box-shadow:0 4px 20px #0000004d}.actions-section h4{margin:0 0 18px;color:#94a8c7;font-size:.8rem;text-transform:uppercase;letter-spacing:.1em;font-weight:600}.actions-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.btn-action-card{display:flex;align-items:center;gap:16px;padding:20px;border-radius:12px;cursor:pointer;font-family:inherit;text-align:left;transition:all .2s ease;border:1px solid transparent}.btn-action-card:disabled{opacity:.4;cursor:not-allowed;filter:grayscale(40%)}.btn-restore-card{background:#3b82f614;border-color:#3b82f633;color:#f0f4ff}.btn-restore-card:hover:not(:disabled){background:#3b82f626;border-color:#3b82f680;transform:translateY(-2px);box-shadow:0 8px 24px #3b82f633}.btn-delete-card{background:#ef444412;border-color:#ef444433;color:#f0f4ff}.btn-delete-card:hover:not(:disabled){background:#ef444424;border-color:#ef444473;transform:translateY(-2px);box-shadow:0 8px 24px #ef444433}.action-icon{font-size:1.8rem;flex-shrink:0}.action-text{display:flex;flex-direction:column;gap:4px}.action-title{font-size:.95rem;font-weight:600;color:#f0f4ff}.action-desc{font-size:.78rem;color:#4a6080}.action-desc.danger{color:#ef4444b3}.warning-box{display:flex;align-items:flex-start;gap:12px;padding:16px 20px;background:#f59e0b12;border:1px solid rgba(245,158,11,.2);border-radius:12px;color:#94a8c7}.warning-icon{font-size:1.1rem;flex-shrink:0;margin-top:1px}.warning-box p{margin:0;font-size:.85rem;line-height:1.6;color:#f59e0bcc}.error-container{text-align:center;padding:80px 40px;max-width:500px;margin:60px auto;background:#111827;border-radius:16px;border:1px solid #1e2d45}.error-container h2{color:#ef4444;margin-bottom:12px}.error-container p{color:#4a6080;margin-bottom:24px}@media(max-width:768px){.detail-header{padding:14px 16px}.detail-content{padding:16px}.card-header,.card-body,.actions-section{padding:18px 20px}.info-grid,.actions-grid{grid-template-columns:1fr}.card-header h3{font-size:1rem}}:root{--dp-bg-primary: #0b0e14;--dp-bg-secondary: #111620;--dp-bg-tertiary: #171d2b;--dp-bg-elevated: #1a2233;--dp-bg-hover: #1e2840;--dp-border-subtle: #1e2740;--dp-border-default: #2a3550;--dp-border-strong: #3a4a6a;--dp-text-primary: #e8ecf4;--dp-text-secondary: #94a3be;--dp-text-tertiary: #5a6a85;--dp-text-muted: #3a4a65;--dp-accent-blue: #4f8ef7;--dp-accent-blue-dim:#2a5ab8;--dp-accent-green: #10b981;--dp-accent-green-dim:#065f46;--dp-accent-amber: #f59e0b;--dp-accent-amber-dim:#92400e;--dp-accent-red: #ef4444;--dp-accent-red-dim: #7f1d1d;--dp-accent-purple: #8b5cf6;--dp-surface-blue: rgba(79, 142, 247, .08);--dp-surface-blue-border: rgba(79, 142, 247, .2);--dp-surface-green: rgba(16, 185, 129, .08);--dp-surface-green-border: rgba(16, 185, 129, .2);--dp-surface-amber: rgba(245, 158, 11, .08);--dp-surface-amber-border: rgba(245, 158, 11, .2);--dp-surface-red: rgba(239, 68, 68, .08);--dp-surface-red-border: rgba(239, 68, 68, .2);--dp-font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;--dp-font-mono: "JetBrains Mono", "Fira Code", ui-monospace, "Cascadia Code", monospace;--dp-space-xs: 4px;--dp-space-sm: 8px;--dp-space-md: 12px;--dp-space-lg: 16px;--dp-space-xl: 24px;--dp-space-2xl: 32px;--dp-radius-sm: 6px;--dp-radius-md: 8px;--dp-radius-lg: 12px;--dp-radius-xl: 16px;--dp-radius-full: 9999px;--dp-shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--dp-shadow-md: 0 4px 12px rgba(0, 0, 0, .4);--dp-shadow-lg: 0 12px 40px rgba(0, 0, 0, .5);--dp-shadow-glow-blue: 0 0 20px rgba(79, 142, 247, .15);--dp-shadow-glow-green: 0 0 20px rgba(16, 185, 129, .15);--dp-shadow-glow-red: 0 0 20px rgba(239, 68, 68, .15);--dp-shadow-glow-amber: 0 0 20px rgba(245, 158, 11, .15);--dp-transition-fast: all .15s cubic-bezier(.4, 0, .2, 1);--dp-transition-base: all .25s cubic-bezier(.4, 0, .2, 1);--dp-transition-slow: all .4s cubic-bezier(.4, 0, .2, 1)}.dp-page{padding:var(--dp-space-xl);max-width:1200px;margin:0 auto;display:flex;flex-direction:column;gap:var(--dp-space-lg);font-family:var(--dp-font-sans);color:var(--dp-text-primary);min-height:100vh}.dp-back-btn-neon:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,var(--dp-surface-blue) 0%,transparent 100%);opacity:0;transition:opacity .3s ease}.dp-back-btn-neon:hover:before{opacity:1}.dp-back-btn-neon:active{transform:translate(0) scale(.98)}.dp-back-btn-neon:hover:disabled{color:var(--dp-text-secondary);border-color:var(--dp-border-subtle);box-shadow:none;transform:none}.dp-back-btn-neon:hover:disabled:before{opacity:0}.dp-back-arrow{position:relative;z-index:1;font-size:13px;transition:transform .25s ease}.dp-back-btn-neon:hover .dp-back-arrow{transform:translate(-3px)}.dp-back-text{position:relative;z-index:1}.dp-back-glow{display:none}.dp-header{display:flex;align-items:center;gap:var(--dp-space-lg);padding-bottom:var(--dp-space-xl);border-bottom:1px solid var(--dp-border-subtle)}.dp-title-block{flex:1;min-width:0}.dp-title{font-size:22px;font-weight:700;color:var(--dp-text-primary);margin:0;display:flex;align-items:center;gap:var(--dp-space-md);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:-.02em}.dp-title-icon{font-size:20px}.dp-machine-chip{display:inline-flex;align-items:center;gap:var(--dp-space-sm);font-size:11px;font-weight:600;padding:4px 12px;border-radius:var(--dp-radius-full);background:var(--dp-surface-green);color:var(--dp-accent-green);border:1px solid var(--dp-surface-green-border);flex-shrink:0;letter-spacing:.02em}.dp-machine-chip:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--dp-accent-green);box-shadow:0 0 6px var(--dp-accent-green);animation:dp-pulse-dot 2s ease-in-out infinite}@keyframes dp-pulse-dot{0%,to{opacity:1;box-shadow:0 0 6px var(--dp-accent-green)}50%{opacity:.6;box-shadow:0 0 2px var(--dp-accent-green)}}.dp-refresh-btn{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:500;padding:var(--dp-space-sm) var(--dp-space-md);border-radius:var(--dp-radius-md);border:1px solid var(--dp-border-default);background:var(--dp-bg-secondary);color:var(--dp-text-secondary);cursor:pointer;white-space:nowrap;transition:var(--dp-transition-base);font-family:var(--dp-font-sans)}.dp-refresh-btn:hover:not(:disabled){background:var(--dp-bg-hover);color:var(--dp-text-primary);border-color:var(--dp-border-strong);transform:translateY(-1px);box-shadow:var(--dp-shadow-sm)}.dp-refresh-btn:active:not(:disabled){transform:translateY(0);box-shadow:none}.dp-refresh-btn:disabled{opacity:.35;cursor:not-allowed}.dp-banner{display:flex;align-items:center;gap:var(--dp-space-md);padding:var(--dp-space-md) var(--dp-space-lg);border-radius:var(--dp-radius-md);font-size:13px;font-weight:500;animation:dp-slide-down .3s cubic-bezier(.4,0,.2,1)}.dp-banner.success{background:var(--dp-surface-green);border:1px solid var(--dp-surface-green-border);color:var(--dp-accent-green)}.dp-banner.error{background:var(--dp-surface-red);border:1px solid var(--dp-surface-red-border);color:var(--dp-accent-red)}.dp-banner-close{margin-left:auto;background:none;border:none;cursor:pointer;color:inherit;font-size:14px;padding:2px 6px;border-radius:var(--dp-radius-sm);opacity:.5;transition:var(--dp-transition-fast)}.dp-banner-close:hover{opacity:1;background:#ffffff1a}.dp-stats-row{display:flex;align-items:center;gap:var(--dp-space-sm);flex-wrap:wrap}.dp-stat-pill{font-size:11px;font-weight:600;padding:5px 14px;border-radius:var(--dp-radius-full);border:1px solid transparent;letter-spacing:.02em;white-space:nowrap;transition:var(--dp-transition-fast)}.dp-stat-pill.blue{background:var(--dp-surface-blue);color:var(--dp-accent-blue);border-color:var(--dp-surface-blue-border)}.dp-stat-pill.green{background:var(--dp-surface-green);color:var(--dp-accent-green);border-color:var(--dp-surface-green-border)}.dp-stat-pill.gray{background:var(--dp-bg-tertiary);color:var(--dp-text-secondary);border-color:var(--dp-border-subtle)}.dp-spacer{flex:1}.dp-swap-btn{display:inline-flex;align-items:center;gap:var(--dp-space-sm);font-size:12px;font-weight:600;padding:var(--dp-space-sm) var(--dp-space-lg);border-radius:var(--dp-radius-md);border:none;background:var(--dp-accent-blue);color:#fff;cursor:pointer;transition:var(--dp-transition-base);font-family:var(--dp-font-sans)}.dp-swap-btn:hover:not(:disabled){background:#3a7de6;transform:translateY(-1px);box-shadow:var(--dp-shadow-glow-blue)}.dp-swap-btn:active:not(:disabled){transform:translateY(0);box-shadow:none}.dp-swap-btn:disabled{background:var(--dp-bg-tertiary);color:var(--dp-text-muted);cursor:not-allowed}.dp-cancel-btn{font-size:12px;font-weight:500;padding:var(--dp-space-sm) var(--dp-space-lg);border-radius:var(--dp-radius-md);border:1px solid var(--dp-border-default);background:var(--dp-bg-secondary);color:var(--dp-text-secondary);cursor:pointer;transition:var(--dp-transition-base);font-family:var(--dp-font-sans)}.dp-cancel-btn:hover{background:var(--dp-surface-red);color:var(--dp-accent-red);border-color:var(--dp-surface-red-border)}.dp-swap-hint{display:flex;align-items:center;gap:var(--dp-space-md);padding:var(--dp-space-md) var(--dp-space-lg);border-radius:var(--dp-radius-md);background:var(--dp-surface-blue);border:1px solid var(--dp-surface-blue-border);color:var(--dp-accent-blue);font-size:13px;font-weight:500;animation:dp-slide-down .3s ease}.dp-swap-hint-icon{font-size:16px;animation:dp-bounce-subtle 1.5s ease-in-out infinite}@keyframes dp-bounce-subtle{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.dp-skeleton{display:flex;flex-direction:column;gap:var(--dp-space-md)}.dp-skeleton-item,.dp-skeleton-table{border-radius:var(--dp-radius-lg);background:linear-gradient(90deg,var(--dp-bg-tertiary) 25%,var(--dp-bg-secondary) 50%,var(--dp-bg-tertiary) 75%);background-size:200% 100%;animation:dp-shimmer 1.8s ease infinite}.dp-error{padding:var(--dp-space-lg) var(--dp-space-xl);border-radius:var(--dp-radius-md);background:var(--dp-surface-red);border:1px solid var(--dp-surface-red-border);color:var(--dp-accent-red);font-size:13px;line-height:1.6}.dp-empty{padding:3rem 2rem;text-align:center;color:var(--dp-text-tertiary);font-size:13px;background:var(--dp-bg-secondary);border-radius:var(--dp-radius-lg);border:1px dashed var(--dp-border-default);display:flex;flex-direction:column;align-items:center;gap:var(--dp-space-md)}.dp-empty-icon{font-size:28px;opacity:.3}.dp-section{margin-bottom:var(--dp-space-2xl)}.dp-section-header{display:flex;align-items:center;gap:var(--dp-space-md);margin-bottom:var(--dp-space-md)}.dp-section-title{font-size:10px;font-weight:700;color:var(--dp-text-tertiary);text-transform:uppercase;letter-spacing:.12em;padding-left:14px;position:relative;white-space:nowrap}.dp-section-title:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:4px;height:4px;border-radius:50%}.dp-section-disks .dp-section-title:before{background:var(--dp-accent-green);box-shadow:0 0 6px var(--dp-accent-green)}.dp-section-volumes .dp-section-title:before{background:var(--dp-accent-blue);box-shadow:0 0 6px var(--dp-accent-blue)}.dp-section-line{flex:1;height:1px;background:linear-gradient(90deg,var(--dp-border-subtle) 0%,transparent 90%)}.dp-section+hr,hr:not([class]){border:none;height:1px;background:linear-gradient(90deg,transparent 0%,var(--dp-border-subtle) 15%,var(--dp-border-subtle) 85%,transparent 100%);margin:0}.dp-table-container{background:var(--dp-bg-secondary);border:1px solid var(--dp-border-subtle);border-radius:var(--dp-radius-lg);overflow:hidden;box-shadow:var(--dp-shadow-sm)}.dp-section-disks .dp-table-container{border-top:2px solid var(--dp-accent-green)}.dp-section-volumes .dp-table-container{border-top:2px solid var(--dp-accent-blue)}.dp-table{width:100%;border-collapse:collapse;font-size:13px}.dp-table thead th{background:var(--dp-bg-tertiary);padding:var(--dp-space-md) var(--dp-space-lg);text-align:left;font-size:10px;font-weight:700;color:var(--dp-text-tertiary);text-transform:uppercase;letter-spacing:.08em;border-bottom:1px solid var(--dp-border-subtle);white-space:nowrap}.dp-section-disks .dp-table thead th{color:var(--dp-accent-green)}.dp-section-volumes .dp-table thead th{color:var(--dp-accent-blue)}.dp-table tbody tr{transition:var(--dp-transition-fast);border-bottom:1px solid var(--dp-border-subtle)}.dp-table tbody tr:last-child{border-bottom:none}.dp-table tbody tr:hover{background:var(--dp-bg-hover)}.dp-table tbody td{padding:14px var(--dp-space-lg);color:var(--dp-text-primary)}.dp-table tbody tr.is-boot{background:var(--dp-surface-green)}.dp-table tbody tr.is-boot:hover{background:#10b9811f}.dp-table tbody tr.is-boot td:first-child{box-shadow:inset 3px 0 0 var(--dp-accent-green)}.dp-cell-icon{text-align:center;width:44px;font-size:16px}.dp-cell-name{font-weight:600;color:var(--dp-text-primary);font-family:var(--dp-font-mono);font-size:12px}.dp-cell-path{color:var(--dp-text-tertiary);font-family:var(--dp-font-mono);font-size:11px;max-width:280px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dp-cell-size{font-family:var(--dp-font-mono);font-size:12px;font-weight:600;color:var(--dp-text-secondary);font-variant-numeric:tabular-nums;white-space:nowrap}.dp-cell-os .dp-os-badge{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:600;padding:4px 10px;border-radius:var(--dp-radius-sm);background:var(--dp-bg-tertiary);color:var(--dp-text-secondary);border:1px solid var(--dp-border-subtle);white-space:nowrap}.dp-badge-os{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:600;padding:4px 10px;border-radius:var(--dp-radius-sm);background:var(--dp-bg-tertiary);color:var(--dp-text-secondary);border:1px solid var(--dp-border-subtle);white-space:nowrap}.dp-badge-os.active{background:var(--dp-surface-green);color:var(--dp-accent-green);border-color:var(--dp-surface-green-border)}.dp-section-volumes .dp-table{border-collapse:separate;border-spacing:0 3px}.dp-section-volumes .dp-table tbody tr{border-bottom:none;background:var(--dp-bg-secondary)}.dp-section-volumes .dp-table tbody tr:hover{background:var(--dp-bg-hover)}.dp-table tbody tr.clickable{cursor:pointer}.dp-table tbody tr.clickable:hover{background:var(--dp-surface-blue)!important}.dp-table tbody tr.selected-vol{background:#4f8ef71f!important;box-shadow:inset 0 0 0 1px var(--dp-surface-blue-border)}.dp-table tbody tr.swapping{opacity:.3;pointer-events:none}.dp-table tbody tr.is-attached{opacity:.65}.dp-cell-radio{width:44px;text-align:center}.dp-radio{width:18px;height:18px;border:2px solid var(--dp-border-default);border-radius:var(--dp-radius-full);display:inline-flex;align-items:center;justify-content:center;transition:var(--dp-transition-base)}tr.clickable:hover .dp-radio{border-color:var(--dp-accent-blue);box-shadow:0 0 0 3px var(--dp-surface-blue)}.dp-radio.checked{background:var(--dp-accent-blue);border-color:var(--dp-accent-blue);box-shadow:0 0 0 3px var(--dp-surface-blue)}.dp-radio.checked svg polyline{stroke:#fff}.dp-status-pill{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:100px;font-size:10px;font-weight:700;padding:5px 12px;border-radius:var(--dp-radius-sm);font-family:var(--dp-font-mono);white-space:nowrap;letter-spacing:.04em;transition:var(--dp-transition-fast)}.dp-status-pill.active{background:var(--dp-surface-green);color:var(--dp-accent-green);border:1px solid var(--dp-surface-green-border)}.dp-status-pill.pool{background:var(--dp-bg-tertiary);color:var(--dp-text-tertiary);border:1px solid var(--dp-border-subtle)}tr.clickable:hover .dp-status-pill.pool{background:var(--dp-surface-blue);color:var(--dp-accent-blue);border-color:var(--dp-surface-blue-border)}.dp-status-pill.selected{background:#4f8ef726;color:var(--dp-accent-blue);border:1px solid var(--dp-surface-blue-border)}.dp-delete-vol-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--dp-radius-sm);border:1px solid transparent;background:transparent;color:var(--dp-text-muted);font-size:14px;cursor:pointer;transition:var(--dp-transition-base);padding:0}.dp-delete-vol-btn:hover:not(:disabled){background:var(--dp-surface-red);border-color:var(--dp-surface-red-border);color:var(--dp-accent-red);box-shadow:var(--dp-shadow-glow-red);transform:translateY(-1px)}.dp-delete-vol-btn:active:not(:disabled){transform:translateY(0);box-shadow:none}.dp-delete-vol-btn:disabled{opacity:.4;cursor:not-allowed}.dp-delete-vol-spinner{display:inline-block;width:14px;height:14px;border:2px solid rgba(239,68,68,.2);border-top-color:var(--dp-accent-red);border-radius:50%;animation:dp-spin .7s linear infinite}.dp-modal-overlay,.dp-modal-overlay-os{position:fixed;inset:0;z-index:9999;background:#000000b3;display:flex;align-items:center;justify-content:center;padding:var(--dp-space-lg);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);animation:dp-fade-in .2s ease}.dp-modal,.dp-modal-box-os{background:var(--dp-bg-primary);border:1px solid var(--dp-border-default);border-radius:var(--dp-radius-lg);width:100%;max-width:480px;max-height:90vh;display:flex;flex-direction:column;box-shadow:var(--dp-shadow-lg);animation:dp-modal-in .25s cubic-bezier(.4,0,.2,1)}.dp-upload-modal{max-width:560px}.dp-modal-header-os{display:flex;align-items:center;justify-content:space-between;padding:var(--dp-space-lg) var(--dp-space-xl);background:var(--dp-bg-secondary);border-bottom:1px solid var(--dp-border-subtle);border-radius:var(--dp-radius-lg) var(--dp-radius-lg) 0 0}.dp-modal-title-os{font-size:15px;font-weight:600;color:var(--dp-text-primary);margin:0;display:flex;align-items:center;gap:var(--dp-space-sm);font-family:var(--dp-font-sans)}.dp-modal-icon-os{font-size:18px}.dp-modal-close-os,.dp-upload-close-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--dp-radius-sm);border:1px solid var(--dp-border-subtle);background:var(--dp-bg-tertiary);color:var(--dp-text-tertiary);cursor:pointer;font-size:14px;padding:0;transition:var(--dp-transition-fast)}.dp-modal-close-os:hover:not(:disabled),.dp-upload-close-btn:hover:not(:disabled){background:var(--dp-surface-red);color:var(--dp-accent-red);border-color:var(--dp-surface-red-border)}.dp-modal-close-os:disabled,.dp-upload-close-btn:disabled{opacity:.3;cursor:not-allowed}.dp-modal-content-os{flex:1;min-height:0;overflow-y:auto;padding:var(--dp-space-xl)}.dp-target-box-os{display:flex;align-items:center;justify-content:space-between;padding:var(--dp-space-md) var(--dp-space-lg);background:var(--dp-bg-secondary);border:1px solid var(--dp-border-subtle);border-radius:var(--dp-radius-md);margin-bottom:var(--dp-space-lg)}.dp-target-label-os{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--dp-text-tertiary)}.dp-target-value-os{display:flex;align-items:center;gap:var(--dp-space-sm);font-size:13px;font-weight:600;color:var(--dp-text-primary);font-family:var(--dp-font-mono)}.dp-os-icon-os{font-size:16px}.dp-field-os{margin-bottom:var(--dp-space-lg)}.dp-field-label-os{display:block;font-size:11px;font-weight:600;color:var(--dp-text-secondary);margin-bottom:var(--dp-space-sm);letter-spacing:.02em}.dp-os-card-os{display:flex;align-items:center;gap:var(--dp-space-md);padding:var(--dp-space-lg);background:var(--dp-surface-blue);border:1px solid var(--dp-surface-blue-border);border-radius:var(--dp-radius-md);transition:var(--dp-transition-base)}.dp-os-card-os:hover{box-shadow:var(--dp-shadow-glow-blue)}.dp-os-big-icon-os{font-size:32px;flex-shrink:0}.dp-os-info-os{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.dp-os-name-os{font-size:14px;font-weight:600;color:var(--dp-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dp-os-path-os{font-size:11px;color:var(--dp-text-tertiary);font-family:var(--dp-font-mono);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dp-os-size-os{font-size:11px;font-weight:600;color:var(--dp-text-secondary);font-family:var(--dp-font-mono);background:#0000004d;padding:4px 10px;border-radius:var(--dp-radius-sm);flex-shrink:0}.dp-warning-os{display:flex;align-items:flex-start;gap:var(--dp-space-md);padding:var(--dp-space-md) var(--dp-space-lg);background:var(--dp-surface-amber);border:1px solid var(--dp-surface-amber-border);border-radius:var(--dp-radius-md);margin-bottom:var(--dp-space-lg)}.dp-warning-icon-os{font-size:18px;flex-shrink:0}.dp-warning-text-os{font-size:13px;color:var(--dp-accent-amber);line-height:1.5}.dp-warning-text-os strong{color:var(--dp-accent-amber);font-weight:700}.dp-modal-footer-os{flex-shrink:0;border-top:1px solid var(--dp-border-subtle);padding:var(--dp-space-lg) var(--dp-space-xl);background:var(--dp-bg-secondary);border-radius:0 0 var(--dp-radius-lg) var(--dp-radius-lg);display:flex;justify-content:flex-end;gap:var(--dp-space-sm)}.dp-btn-cancel-os,.dp-modal-cancel{font-size:12px;font-weight:500;padding:var(--dp-space-sm) var(--dp-space-lg);border-radius:var(--dp-radius-md);border:1px solid var(--dp-border-default);background:var(--dp-bg-tertiary);color:var(--dp-text-secondary);cursor:pointer;transition:var(--dp-transition-fast);font-family:var(--dp-font-sans)}.dp-btn-cancel-os:hover:not(:disabled),.dp-modal-cancel:hover:not(:disabled){background:var(--dp-bg-hover);color:var(--dp-text-primary);border-color:var(--dp-border-strong)}.dp-btn-cancel-os:disabled,.dp-modal-cancel:disabled{opacity:.35;cursor:not-allowed}.dp-btn-confirm-os,.dp-modal-confirm{display:inline-flex;align-items:center;gap:var(--dp-space-sm);font-size:12px;font-weight:600;padding:var(--dp-space-sm) var(--dp-space-xl);border-radius:var(--dp-radius-md);border:none;background:var(--dp-accent-blue);color:#fff;cursor:pointer;transition:var(--dp-transition-base);font-family:var(--dp-font-sans);white-space:nowrap}.dp-btn-confirm-os:hover:not(:disabled),.dp-modal-confirm:hover:not(:disabled){background:#3a7de6;transform:translateY(-1px);box-shadow:var(--dp-shadow-glow-blue)}.dp-btn-confirm-os:active:not(:disabled),.dp-modal-confirm:active:not(:disabled){transform:translateY(0);box-shadow:none}.dp-btn-confirm-os:disabled,.dp-modal-confirm:disabled{background:var(--dp-accent-blue-dim);cursor:not-allowed;box-shadow:none;transform:none}.dp-spinner-os{display:inline-block;width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:dp-spin .7s linear infinite}.dp-upload-header{display:flex;align-items:center;justify-content:space-between;padding:var(--dp-space-lg) var(--dp-space-xl);background:var(--dp-bg-secondary);border-bottom:1px solid var(--dp-border-subtle);border-radius:var(--dp-radius-lg) var(--dp-radius-lg) 0 0}.dp-modal-title{font-size:15px;font-weight:600;color:var(--dp-text-primary);margin:0;font-family:var(--dp-font-sans)}.dp-upload-content{flex:1;min-height:0;overflow-y:auto;padding:var(--dp-space-xl)}.dp-upload-target{display:flex;align-items:center;justify-content:space-between;padding:var(--dp-space-md) var(--dp-space-lg);border-radius:var(--dp-radius-md);background:var(--dp-bg-secondary);border:1px solid var(--dp-border-subtle);margin-bottom:var(--dp-space-lg)}.dp-upload-target-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--dp-text-tertiary)}.dp-upload-target-name{font-size:13px;font-weight:600;color:var(--dp-accent-blue);font-family:var(--dp-font-mono)}.dp-upload-field{margin-bottom:var(--dp-space-lg)}.dp-upload-label{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:600;color:var(--dp-text-secondary);margin-bottom:var(--dp-space-sm)}.dp-upload-skeleton{padding:var(--dp-space-lg);border-radius:var(--dp-radius-md);background:var(--dp-bg-tertiary);color:var(--dp-text-tertiary);font-size:12px;text-align:center;animation:dp-shimmer 1.8s ease infinite}.dp-upload-err{padding:var(--dp-space-md) var(--dp-space-lg);border-radius:var(--dp-radius-md);background:var(--dp-surface-red);border:1px solid var(--dp-surface-red-border);color:var(--dp-accent-red);font-size:12px}.dp-repo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:var(--dp-space-sm)}.dp-repo-card{display:flex;flex-direction:column;gap:4px;padding:var(--dp-space-md);border-radius:var(--dp-radius-md);border:1px solid var(--dp-border-subtle);background:var(--dp-bg-secondary);cursor:pointer;transition:var(--dp-transition-base);text-align:left;font-family:inherit}.dp-repo-card:hover:not(:disabled){border-color:var(--dp-accent-blue);background:var(--dp-surface-blue);box-shadow:var(--dp-shadow-glow-blue);transform:translateY(-1px)}.dp-repo-card.active{border-color:var(--dp-accent-blue);background:var(--dp-surface-blue);box-shadow:var(--dp-shadow-glow-blue)}.dp-repo-card:disabled{opacity:.4;cursor:not-allowed}.dp-repo-name{font-size:13px;font-weight:600;color:var(--dp-text-primary);font-family:var(--dp-font-mono)}.dp-repo-url,.dp-repo-path{font-size:10px;color:var(--dp-text-tertiary);font-family:var(--dp-font-mono);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dp-upload-select,.dp-upload-input{width:100%;padding:10px 14px;border-radius:var(--dp-radius-md);border:1px solid var(--dp-border-default);background:var(--dp-bg-tertiary);color:var(--dp-text-primary);font-size:13px;font-family:var(--dp-font-mono);transition:var(--dp-transition-fast);outline:none;box-sizing:border-box;appearance:none}.dp-upload-select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%235a6a85' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:36px;cursor:pointer}.dp-upload-select:focus,.dp-upload-input:focus{border-color:var(--dp-accent-blue);box-shadow:0 0 0 3px var(--dp-surface-blue)}.dp-upload-select:disabled,.dp-upload-input:disabled{opacity:.4;cursor:not-allowed}.dp-upload-input::placeholder{color:var(--dp-text-muted)}.dp-upload-select option{background:var(--dp-bg-primary);color:var(--dp-text-primary);padding:var(--dp-space-sm)}select.dp-upload-select option{background-color:var(--dp-bg-primary);color:var(--dp-text-primary)}.dp-file-exists-warning{margin-top:var(--dp-space-md);padding:var(--dp-space-md) var(--dp-space-lg);border-radius:var(--dp-radius-md);display:flex;gap:var(--dp-space-md);align-items:flex-start;background:var(--dp-surface-red);border:1px solid var(--dp-surface-red-border);box-shadow:var(--dp-shadow-glow-red);animation:dp-slide-down .3s ease}.dp-file-exists-icon{font-size:24px;flex-shrink:0}.dp-file-exists-content{flex:1;min-width:0}.dp-file-exists-message{font-size:13px;color:var(--dp-accent-red);line-height:1.5;font-weight:600;margin-bottom:var(--dp-space-sm)}.dp-file-exists-details{margin-top:var(--dp-space-sm);padding:var(--dp-space-md);background:#0000004d;border-radius:var(--dp-radius-sm);border:1px solid var(--dp-border-subtle);font-family:var(--dp-font-mono);font-size:11px;line-height:1.8;color:var(--dp-text-secondary)}.dp-file-exists-details .dp-detail-row{display:flex;justify-content:space-between;gap:var(--dp-space-md)}.dp-file-exists-details .dp-detail-label{color:var(--dp-text-tertiary);flex-shrink:0}.dp-file-exists-details .dp-detail-value{color:var(--dp-text-primary);font-weight:600;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dp-file-exists-actions{display:flex;gap:var(--dp-space-sm);margin-top:var(--dp-space-md)}.dp-btn-rename{padding:8px 14px;border:1px solid var(--dp-accent-blue);border-radius:var(--dp-radius-sm);background:var(--dp-accent-blue);color:#fff;font-size:12px;font-weight:600;cursor:pointer;transition:var(--dp-transition-base);font-family:var(--dp-font-sans);display:inline-flex;align-items:center;gap:4px}.dp-btn-rename:hover:not(:disabled){background:#3a7de6;box-shadow:var(--dp-shadow-glow-blue);transform:translateY(-1px)}.dp-btn-rename:disabled{opacity:.4;cursor:not-allowed}.dp-btn-overwrite{padding:8px 14px;border:1px solid var(--dp-surface-red-border);border-radius:var(--dp-radius-sm);background:transparent;color:var(--dp-accent-red);font-size:12px;font-weight:600;cursor:pointer;transition:var(--dp-transition-base);font-family:var(--dp-font-sans);display:inline-flex;align-items:center;gap:4px}.dp-btn-overwrite:hover:not(:disabled){background:var(--dp-surface-red);border-color:var(--dp-accent-red)}.dp-btn-overwrite:disabled{opacity:.4;cursor:not-allowed}.dp-file-ok-indicator{margin-top:var(--dp-space-sm);padding:8px var(--dp-space-md);border-radius:var(--dp-radius-sm);background:var(--dp-surface-green);border:1px solid var(--dp-surface-green-border);font-size:12px;color:var(--dp-accent-green);font-family:var(--dp-font-mono);display:flex;align-items:center;gap:var(--dp-space-sm)}.dp-file-ok-indicator strong{color:var(--dp-accent-green)}.dp-progress-card{padding:var(--dp-space-lg);border-radius:var(--dp-radius-md);border:1px solid var(--dp-surface-blue-border);background:var(--dp-surface-blue);margin-top:var(--dp-space-lg)}.dp-progress-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--dp-space-md)}.dp-progress-title{font-size:13px;font-weight:600;color:var(--dp-text-primary);display:flex;align-items:center;gap:8px;font-family:var(--dp-font-sans)}.dp-progress-status-up,.dp-progress-status-done{color:var(--dp-accent-blue);display:flex;align-items:center;gap:6px}.dp-progress-status-done{color:var(--dp-accent-green)}.dp-progress-status-cancel,.dp-progress-status-canceled{color:var(--dp-accent-red);display:flex;align-items:center;gap:6px}.dp-progress-dot{width:8px;height:8px;border-radius:50%;background:currentColor}.dp-progress-dot.up,.dp-progress-dot.done{animation:dp-pulse-dot 1.5s ease-in-out infinite}.dp-progress-dot.cancel,.dp-progress-dot.canceled{animation:none}.dp-progress-pid{font-size:10px;font-weight:600;color:var(--dp-text-tertiary);font-family:var(--dp-font-mono);background:var(--dp-bg-tertiary);border-radius:var(--dp-radius-sm);padding:2px 8px;margin-left:auto}.dp-progress-bar-track{height:6px;background:var(--dp-bg-tertiary);border-radius:3px;overflow:hidden;margin-bottom:var(--dp-space-sm)}.dp-progress-bar-fill{height:100%;background:linear-gradient(90deg,var(--dp-accent-blue),var(--dp-accent-green));border-radius:3px;transition:width .4s ease;position:relative}.dp-progress-bar-glow{position:absolute;inset:0;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.3) 50%,transparent 100%);border-radius:3px;animation:dp-progress-shine 2s ease infinite}@keyframes dp-progress-shine{0%{transform:translate(-100%)}to{transform:translate(200%)}}.dp-progress-pct{font-size:24px;font-weight:700;color:var(--dp-accent-blue);font-family:var(--dp-font-mono);text-align:center;font-variant-numeric:tabular-nums;letter-spacing:-.02em}.dp-upload-result{display:flex;align-items:flex-start;gap:var(--dp-space-md);padding:var(--dp-space-lg);border-radius:var(--dp-radius-md);margin-top:var(--dp-space-lg);animation:dp-slide-down .3s ease}.dp-upload-result.completed{background:var(--dp-surface-green);border:1px solid var(--dp-surface-green-border)}.dp-upload-result.canceled{background:var(--dp-surface-red);border:1px solid var(--dp-surface-red-border)}.dp-upload-result-icon{font-size:24px;flex-shrink:0;margin-top:2px}.dp-upload-result-icon.canceled-icon{opacity:.6}.dp-upload-result-body{flex:1;min-width:0}.dp-upload-result-title{display:block;font-size:14px;font-weight:600;margin-bottom:var(--dp-space-sm);font-family:var(--dp-font-sans)}.dp-upload-result.completed .dp-upload-result-title{color:var(--dp-accent-green)}.dp-upload-result.canceled .dp-upload-result-title{color:var(--dp-accent-red)}.dp-upload-result-row{font-size:11px;color:var(--dp-text-secondary);font-family:var(--dp-font-mono);margin-bottom:2px}.dp-upload-result-row span:first-child{color:var(--dp-text-tertiary);margin-right:8px}.dp-upload-result-row strong{color:var(--dp-text-primary)}.dp-upload-err-box{padding:var(--dp-space-lg);border-radius:var(--dp-radius-md);background:var(--dp-surface-red);border:1px solid var(--dp-surface-red-border);margin-top:var(--dp-space-lg);animation:dp-slide-down .3s ease}.dp-upload-err-title{font-size:13px;font-weight:600;color:var(--dp-accent-red);margin-bottom:var(--dp-space-xs);font-family:var(--dp-font-sans)}.dp-err-msg{font-size:12px;color:var(--dp-accent-red);font-family:var(--dp-font-mono);word-break:break-word;opacity:.9}.dp-upload-actions{display:flex;gap:var(--dp-space-sm);justify-content:flex-end;padding:var(--dp-space-lg) var(--dp-space-xl);background:var(--dp-bg-secondary);border-top:1px solid var(--dp-border-subtle);border-radius:0 0 var(--dp-radius-lg) var(--dp-radius-lg)}.dp-cancel-upload-btn{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;padding:var(--dp-space-sm) var(--dp-space-lg);border-radius:var(--dp-radius-md);border:1px solid var(--dp-surface-red-border);background:var(--dp-surface-red);color:var(--dp-accent-red);cursor:pointer;transition:var(--dp-transition-fast);white-space:nowrap;font-family:var(--dp-font-sans)}.dp-cancel-upload-btn:hover:not(:disabled){background:#ef444426;border-color:var(--dp-accent-red)}.dp-cancel-upload-btn:disabled{opacity:.4;cursor:not-allowed}.dp-upload-submit{display:inline-flex;align-items:center;gap:var(--dp-space-sm);font-size:13px;font-weight:600;padding:var(--dp-space-sm) var(--dp-space-xl);border-radius:var(--dp-radius-md);border:none;background:var(--dp-accent-green);color:#fff;cursor:pointer;transition:var(--dp-transition-base);white-space:nowrap;font-family:var(--dp-font-sans)}.dp-upload-submit:hover:not(:disabled){background:#0ea572;transform:translateY(-1px);box-shadow:var(--dp-shadow-glow-green)}.dp-upload-submit:active:not(:disabled){transform:translateY(0);box-shadow:none}.dp-upload-submit:disabled{background:var(--dp-bg-tertiary);color:var(--dp-text-muted);cursor:not-allowed;box-shadow:none;transform:none}.dp-upload-submit[style*=f59e0b]{background:linear-gradient(135deg,var(--dp-accent-amber) 0%,#d97706 100%)!important;border:none!important;color:#fff!important;animation:dp-pulse-warning 2s ease-in-out infinite}@keyframes dp-pulse-warning{0%,to{box-shadow:0 0 #f59e0b4d}50%{box-shadow:0 0 16px 4px #f59e0b33}}.dp-upload-spinner{display:inline-block;width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:dp-spin .7s linear infinite}.dp-checking-spinner{display:inline-block;width:12px;height:12px;border:2px solid var(--dp-border-default);border-top-color:var(--dp-accent-blue);border-radius:50%;animation:dp-spin .8s linear infinite;vertical-align:middle}.net-body{display:flex;flex-direction:column;flex:1;overflow:hidden;gap:6px}.net-list{display:flex;flex-direction:column;gap:4px;flex:1;overflow-y:auto;padding-right:2px}.net-list::-webkit-scrollbar{width:4px}.net-list::-webkit-scrollbar-track{background:transparent}.net-list::-webkit-scrollbar-thumb{background:var(--dp-border-default);border-radius:2px}.net-list::-webkit-scrollbar-thumb:hover{background:var(--dp-border-strong)}.net-item{display:flex;align-items:center;justify-content:space-between;padding:var(--dp-space-sm) var(--dp-space-md);background:var(--dp-bg-secondary);border:1px solid var(--dp-border-subtle);border-radius:var(--dp-radius-sm);transition:var(--dp-transition-fast)}.net-item:hover{background:var(--dp-bg-hover);border-color:var(--dp-border-default);transform:translate(2px)}.net-item--disabled{opacity:.4}.net-item-left{display:flex;align-items:center;gap:var(--dp-space-sm);min-width:0;flex:1}.net-item-info{display:flex;flex-direction:column;gap:2px;min-width:0}.net-item-name{font-size:12px;font-weight:600;color:var(--dp-text-primary);font-family:var(--dp-font-mono);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.net-item-meta{font-size:10px;color:var(--dp-text-tertiary);font-family:var(--dp-font-mono)}.net-status-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.net-status-dot.enabled{background:var(--dp-accent-green);box-shadow:0 0 6px var(--dp-accent-green);animation:dp-pulse-dot 2s ease-in-out infinite}.net-status-dot.disabled{background:var(--dp-text-muted)}.net-enabled-badge{font-size:9px;font-weight:700;padding:3px 8px;border-radius:var(--dp-radius-full);font-family:var(--dp-font-mono);text-transform:uppercase;letter-spacing:.06em;flex-shrink:0}.net-enabled-badge.on{background:var(--dp-surface-green);color:var(--dp-accent-green);border:1px solid var(--dp-surface-green-border)}.net-enabled-badge.off{background:var(--dp-bg-tertiary);color:var(--dp-text-tertiary);border:1px solid var(--dp-border-subtle)}.net-footer{display:flex;gap:var(--dp-space-md);padding:var(--dp-space-sm) var(--dp-space-md);background:var(--dp-bg-tertiary);border-top:1px solid var(--dp-border-subtle);border-radius:0 0 var(--dp-radius-sm) var(--dp-radius-sm);flex-shrink:0;flex-wrap:wrap}.net-stat-chip{display:flex;align-items:center;gap:5px;font-size:10px;color:var(--dp-text-tertiary);font-family:var(--dp-font-mono)}.net-stat-dot{width:6px;height:6px;border-radius:50%}.net-stat-dot.enabled{background:var(--dp-accent-green)}.net-stat-dot.disabled{background:var(--dp-text-muted)}.net-stat-icon{font-size:11px}.ports-chip{margin-left:auto}.net-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;gap:var(--dp-space-sm);color:var(--dp-text-tertiary);padding:2rem}.net-empty-icon{font-size:28px;opacity:.3}.net-empty p{font-size:12px;font-family:var(--dp-font-mono);margin:0}.net-more{text-align:center;font-size:10px;color:var(--dp-text-tertiary);font-family:var(--dp-font-mono);padding:6px;border:1px dashed var(--dp-border-subtle);border-radius:var(--dp-radius-sm);background:var(--dp-bg-secondary)}@keyframes dp-spin{to{transform:rotate(360deg)}}@keyframes dp-pulse{0%,to{opacity:1}50%{opacity:.4}}@keyframes dp-slide-down{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes dp-slide-in{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:translate(0)}}@keyframes dp-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes dp-fade-in{0%{opacity:0}to{opacity:1}}@keyframes dp-modal-in{0%{opacity:0;transform:scale(.95) translateY(12px)}to{opacity:1;transform:scale(1) translateY(0)}}.dp-page::-webkit-scrollbar,.dp-upload-content::-webkit-scrollbar,.dp-modal-content-os::-webkit-scrollbar{width:6px}.dp-page::-webkit-scrollbar-track,.dp-upload-content::-webkit-scrollbar-track,.dp-modal-content-os::-webkit-scrollbar-track{background:transparent}.dp-page::-webkit-scrollbar-thumb,.dp-upload-content::-webkit-scrollbar-thumb,.dp-modal-content-os::-webkit-scrollbar-thumb{background:var(--dp-border-default);border-radius:3px}.dp-page::-webkit-scrollbar-thumb:hover,.dp-upload-content::-webkit-scrollbar-thumb:hover,.dp-modal-content-os::-webkit-scrollbar-thumb:hover{background:var(--dp-border-strong)}@media(max-width:768px){.dp-page{padding:var(--dp-space-md)}.dp-header{flex-wrap:wrap}.dp-title{font-size:18px;order:1;width:100%}.dp-table-container{overflow-x:auto;-webkit-overflow-scrolling:touch}.dp-table{min-width:600px}.dp-stats-row{flex-direction:column;align-items:flex-start;gap:var(--dp-space-sm)}.dp-stats-row>div:last-child{width:100%;display:flex;gap:var(--dp-space-sm)}.dp-stats-row>div:last-child button{flex:1;justify-content:center}.dp-spacer{display:none}}@media(max-width:600px){.dp-upload-modal,.dp-modal-box-os{max-width:100%;margin:var(--dp-space-sm);border-radius:var(--dp-radius-md)}.dp-repo-grid{grid-template-columns:1fr}.dp-upload-actions{flex-direction:column}.dp-upload-actions button{width:100%;justify-content:center}.dp-modal-footer-os{flex-direction:column}.dp-modal-footer-os button{width:100%;justify-content:center}.dp-os-card-os{flex-direction:column;align-items:flex-start}.dp-os-size-os{align-self:flex-end}}.dp-swap-btn:focus-visible,.dp-cancel-btn:focus-visible,.dp-refresh-btn:focus-visible,.dp-back-btn-neon:focus-visible,.dp-repo-card:focus-visible,.dp-upload-submit:focus-visible,.dp-cancel-upload-btn:focus-visible,.dp-modal-cancel:focus-visible,.dp-btn-cancel-os:focus-visible,.dp-btn-confirm-os:focus-visible,.dp-modal-confirm:focus-visible,.dp-delete-vol-btn:focus-visible,.dp-btn-rename:focus-visible,.dp-btn-overwrite:focus-visible{outline:2px solid var(--dp-accent-blue);outline-offset:2px}.dp-table tbody tr.clickable:focus-visible{outline:2px solid var(--dp-accent-blue);outline-offset:-2px}.dp-back-btn-neon{position:relative;display:inline-flex;align-items:center;gap:var(--dp-space-sm);padding:var(--dp-space-sm) var(--dp-space-md);background:var(--dp-bg-secondary);border:1px solid var(--dp-border-subtle);border-radius:var(--dp-radius-md);color:var(--dp-text-secondary);font-family:var(--dp-font-sans);font-size:12px;font-weight:500;cursor:pointer;overflow:hidden;transition:var(--dp-transition-base);width:fit-content}.dp-back-btn-neon:hover{color:var(--dp-accent-blue);border-color:var(--dp-surface-blue-border);box-shadow:var(--dp-shadow-glow-blue);transform:translate(-2px)}.dp-back-btn-neon:disabled{opacity:.35;cursor:not-allowed;transform:none;box-shadow:none}.react-flow{direction:ltr}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1;cursor:-webkit-grab;cursor:grab}.react-flow__pane.selection{cursor:pointer}.react-flow__pane.dragging{cursor:-webkit-grabbing;cursor:grabbing}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow .react-flow__edges{pointer-events:none;overflow:visible}.react-flow__edge-path,.react-flow__connection-path{stroke:#b1b1b7;stroke-width:1;fill:none}.react-flow__edge{pointer-events:visibleStroke;cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;-webkit-animation:dashdraw .5s linear infinite;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;-webkit-animation:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge:focus .react-flow__edge-path,.react-flow__edge:focus-visible .react-flow__edge-path{stroke:#555}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge-textbg{fill:#fff}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;-webkit-animation:dashdraw .5s linear infinite;animation:dashdraw .5s linear infinite}.react-flow__connectionline{z-index:1001}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:-webkit-grab;cursor:grab}.react-flow__node.dragging{cursor:-webkit-grabbing;cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:-webkit-grab;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background:#1a192b;border:1px solid white;border-radius:100%}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:-4px;transform:translate(-50%)}.react-flow__handle-top{left:50%;top:-4px;transform:translate(-50%)}.react-flow__handle-left{top:50%;left:-4px;transform:translateY(-50%)}.react-flow__handle-right{right:-4px;top:50%;transform:translateY(-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.center{left:50%;transform:translate(-50%)}.react-flow__attribution{font-size:10px;background:#ffffff80;padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@-webkit-keyframes dashdraw{0%{stroke-dashoffset:10}}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-default,.react-flow__node-input,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:3px;width:150px;font-size:12px;color:#222;text-align:center;border-width:1px;border-style:solid;border-color:#1a192b;background-color:#fff}.react-flow__node-default.selectable:hover,.react-flow__node-input.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:0 1px 4px 1px #00000014}.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:0 0 0 .5px #1a192b}.react-flow__node-group{background-color:#f0f0f040}.react-flow__nodesselection-rect,.react-flow__selection{background:#0059dc14;border:1px dotted rgba(0,89,220,.8)}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls{box-shadow:0 0 2px 1px #00000014}.react-flow__controls-button{border:none;background:#fefefe;border-bottom:1px solid #eee;box-sizing:content-box;display:flex;justify-content:center;align-items:center;width:16px;height:16px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;padding:5px}.react-flow__controls-button:hover{background:#f4f4f4}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__minimap{background-color:#fff}.react-flow__minimap svg{display:block}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:4px;height:4px;border:1px solid #fff;border-radius:1px;background-color:#3367d9;transform:translate(-50%,-50%)}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:#3367d9;border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.storage-page{--sophisticated-green: #2c5e2e;--sophisticated-green-glow: rgba(44, 94, 46, .25);--sophisticated-blue: #1e3a8a;--sophisticated-blue-glow: rgba(30, 58, 138, .25)}.storage-page .toast{position:fixed;top:72px;right:24px;z-index:9999;border-radius:var(--radius-md, 10px);padding:12px 20px;font-size:13px;font-weight:600;box-shadow:var(--shadow-soft);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);animation:sp-fadeIn .25s ease;max-width:450px}.storage-page .toast.success{background:#10b9811f;color:var(--accent-green);border:1px solid rgba(16,185,129,.35)}.storage-page .toast.error{background:#ef444426;color:var(--accent-red);border:1px solid rgba(239,68,68,.4)}@keyframes sp-fadeIn{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}.storage-page .stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px}.storage-page .stat-card{background:var(--bg-hover);border:1px solid var(--border-color);border-radius:var(--radius-md, 12px);padding:16px;display:flex;align-items:center;gap:12px;transition:all .2s}.storage-page .stat-card .stat-icon{font-size:28px}.storage-page .stat-card .stat-value{font-size:26px;font-weight:700;color:var(--text-primary);line-height:1.2}.storage-page .stat-card .stat-label{font-size:12px;color:var(--text-muted);display:block;text-transform:uppercase;letter-spacing:.05em}.storage-page .stat-card.warning{border-left:3px solid var(--sophisticated-blue)}.storage-page .table-container{flex:1;background:var(--bg-card);border-radius:var(--radius-lg, 12px);border:1px solid var(--border-color);display:flex;flex-direction:column;overflow:hidden}.storage-page .table-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border-color);flex-wrap:wrap;gap:12px}.storage-page .header-left{display:flex;align-items:baseline;gap:12px}.storage-page .header-left h2{font-size:1.25rem;font-weight:600;margin:0;color:var(--text-primary)}.storage-page .vm-summary{font-size:13px;color:var(--text-muted);background:var(--bg-hover);padding:4px 8px;border-radius:20px;border:1px solid var(--border-color)}.storage-page .table-actions{display:flex;gap:12px}.storage-page .refresh-button,.storage-page .btn-primary,.storage-page .btn-secondary,.storage-page .btn-danger{padding:8px 16px;border-radius:var(--radius-md, 8px);font-size:13px;font-weight:500;cursor:pointer;transition:all .2s;border:none}.storage-page .refresh-button{background:var(--accent-blue);color:#fff;border:1px solid transparent;box-shadow:0 2px 8px var(--accent-blue-glow)}.storage-page .refresh-button:hover:not(:disabled){background:#2563eb;transform:translateY(-1px);box-shadow:0 4px 16px var(--accent-blue-glow)}.storage-page .btn-primary{background:var(--accent-blue);color:#fff;border:1px solid rgba(255,255,255,.1);box-shadow:0 2px 8px var(--accent-blue-glow)}.storage-page .btn-primary:hover:not(:disabled){background:#2563eb;transform:translateY(-1px);box-shadow:0 4px 16px var(--accent-blue-glow)}.storage-page .btn-primary:disabled,.storage-page .refresh-button:disabled{opacity:.4;cursor:not-allowed}.storage-page .btn-secondary{background:var(--bg-hover);color:var(--text-primary);border:1px solid var(--border-color)}.storage-page .btn-secondary:hover{background:var(--border-bright)}.storage-page .btn-danger{background:#ef44441a;color:var(--accent-red);border:1px solid rgba(239,68,68,.3)}.storage-page .btn-danger:hover:not(:disabled){background:var(--accent-red);color:#fff;box-shadow:0 4px 16px var(--accent-red-glow);transform:translateY(-1px)}.storage-page .error-container{padding:40px;text-align:center}.storage-page .loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px;gap:16px}.storage-page .spinner{width:32px;height:32px;border:3px solid var(--border-color);border-top-color:var(--accent-blue);border-radius:50%;animation:sp-spin .8s linear infinite}@keyframes sp-spin{to{transform:rotate(360deg)}}.storage-page .empty-state{text-align:center;padding:60px 40px}.storage-page .empty-state h3{color:var(--text-secondary);margin-bottom:8px}.storage-page .empty-state p{margin-bottom:20px;font-size:14px;color:var(--text-muted)}.storage-page .table-wrapper{overflow-x:auto;flex:1}.storage-page .machines-table{width:100%;border-collapse:collapse;table-layout:fixed}.storage-page .machines-table th:nth-child(1){width:12%}.storage-page .machines-table th:nth-child(2){width:25%}.storage-page .machines-table th:nth-child(3){width:15%}.storage-page .machines-table th:nth-child(4){width:10%}.storage-page .machines-table th:nth-child(5){width:12%}.storage-page .machines-table th:nth-child(6){width:12%}.storage-page .machines-table th:nth-child(7){width:14%}.storage-page .machines-table th{text-align:left;padding:12px;background:var(--bg-primary);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);border-bottom:1px solid var(--border-color)}.storage-page .machines-table td{padding:12px;border-bottom:1px solid var(--border-color);vertical-align:middle;white-space:normal;word-break:break-word;overflow-wrap:break-word;color:var(--text-secondary)}.storage-page .machines-table td:nth-child(2){word-break:break-all}.storage-page .table-row-hover{border-bottom:1px solid var(--border-color);transition:background .15s ease}.storage-page .table-row-hover:hover{background:var(--bg-hover)}.storage-page .minion-id{font-weight:600;color:var(--text-primary)}.storage-page .ip-address{font-family:JetBrains Mono,monospace;font-size:12px;word-break:break-all}.storage-page .password-wrapper{display:flex;align-items:center;gap:8px;flex-wrap:nowrap}.storage-page .password-value{color:var(--text-muted);font-size:13px;font-family:JetBrains Mono,monospace;letter-spacing:2px;word-break:break-all}.storage-page .password-value.visible{letter-spacing:normal;color:var(--text-primary)}.storage-page .password-toggle{background:none;border:none;cursor:pointer;font-size:14px;padding:0;opacity:.6;transition:opacity .2s;flex-shrink:0}.storage-page .password-toggle:hover{opacity:1}.storage-page .status-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:20px;font-size:12px;font-weight:500;background:var(--bg-hover);color:var(--text-muted);border:1px solid var(--border-color);white-space:nowrap}.storage-page .status-badge.success{background:#10b9811a;color:var(--accent-green);border-color:#10b9814d}.storage-page .status-badge.error{background:#ef44441a;color:var(--accent-red);border-color:#ef444440}.storage-page .status-badge.loading{color:var(--sophisticated-blue);border-color:#1e3a8a4d}.storage-page .spin-icon{display:inline-block;animation:sp-rc-spin .8s linear infinite;margin-right:4px}@keyframes sp-rc-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.storage-page .row-actions{display:flex;gap:8px;flex-wrap:nowrap}.storage-page .btn-checkpoints{background:transparent;color:var(--text-muted);border:1px solid var(--border-color);padding:6px 10px;font-size:14px;border-radius:var(--radius-sm, 6px);cursor:pointer;transition:all .2s ease}.storage-page .btn-checkpoints:hover:not(:disabled){background:#2c5e2e1f;color:var(--sophisticated-green);border-color:#2c5e2e66;transform:scale(1.08);box-shadow:0 3px 10px var(--sophisticated-green-glow)}.storage-page .btn-delete-row{background:transparent;color:var(--text-muted);border:1px solid var(--border-color);padding:6px 10px;font-size:14px;border-radius:var(--radius-sm, 6px);cursor:pointer;transition:all .2s ease}.storage-page .btn-delete-row:hover:not(:disabled){background:#ef44441f;color:var(--accent-red);border-color:#ef444466;transform:translateY(-1px);box-shadow:0 3px 10px var(--accent-red-glow)}.storage-page .modal-overlay{position:fixed;inset:0;background:#000000bf;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000}.storage-page .modal-content{background:var(--bg-card);border-radius:var(--radius-xl, 16px);width:90%;max-width:480px;box-shadow:var(--shadow-soft),0 0 60px #0009;border:1px solid var(--border-bright);animation:sp-modalFadeIn .2s ease}@keyframes sp-modalFadeIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.storage-page .modal-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border-color)}.storage-page .modal-header h3{margin:0;font-size:1.1rem;font-weight:600;color:var(--text-primary)}.storage-page .btn-close{background:var(--bg-hover);border:1px solid var(--border-color);color:var(--text-secondary);font-size:20px;cursor:pointer;padding:6px 10px;border-radius:var(--radius-sm);line-height:1;transition:all .2s}.storage-page .btn-close:hover{background:var(--accent-red);color:#fff;border-color:var(--accent-red)}.storage-page .modal-body{padding:1.5rem;display:flex;flex-direction:column;gap:16px}.storage-page .form-field{display:flex;flex-direction:column;gap:6px}.storage-page .form-field label{font-size:12px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.07em;font-weight:600}.storage-page .input-wrapper{position:relative}.storage-page .form-input{width:100%;padding:10px 12px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md, 8px);font-size:14px;color:var(--text-primary);transition:all .2s;outline:none}.storage-page .form-input:focus{border-color:var(--accent-blue);box-shadow:0 0 0 3px var(--accent-blue-glow)}.storage-page .form-input:disabled{opacity:.6;cursor:not-allowed}.storage-page .password-eye{position:absolute;right:10px;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;font-size:14px;color:var(--text-muted);padding:0}.storage-page .modal-footer{display:flex;justify-content:flex-end;gap:10px;margin-top:8px;padding-top:16px;border-top:1px solid var(--border-color)}.storage-page .text-mono{font-family:JetBrains Mono,monospace;font-size:13px}.storage-page .text-blue{color:var(--accent-blue)}.storage-page .btn-files-toggle{padding:5px 10px;font-size:13px;border-radius:var(--radius-sm, 6px);cursor:pointer;border:1px solid var(--border-color);background:var(--bg-hover);color:var(--text-secondary);transition:all .2s;white-space:nowrap}.storage-page .btn-files-toggle:hover{background:var(--border-bright);color:var(--text-primary)}.storage-page .btn-files-toggle.active{background:#2c5e2e1f;border-color:#2c5e2e73;color:var(--sophisticated-green)}.storage-page .repo-files-row td{padding:0!important;border-bottom:2px solid rgba(44,94,46,.3)}.storage-page .repo-files-cell{background:transparent}.storage-page .repo-files-panel{margin:0 12px 12px;border:1px solid rgba(44,94,46,.3);border-top:3px solid var(--sophisticated-green);border-radius:0 0 10px 10px;background:var(--bg-card);overflow:hidden;animation:sp-panel-slide-down .2s ease}@keyframes sp-panel-slide-down{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.storage-page .repo-files-panel-header{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;background:#2c5e2e0f;border-bottom:1px solid rgba(44,94,46,.15)}.storage-page .repo-files-panel-title{font-size:12px;font-weight:700;color:#22c55e;display:flex;align-items:center;gap:6px}.storage-page .repo-files-depot{font-family:JetBrains Mono,monospace;font-size:11px;color:#22c55e;opacity:.75;font-weight:400}.storage-page .repo-files-refresh{background:none;border:1px solid rgba(44,94,46,.35);border-radius:5px;cursor:pointer;font-size:14px;color:#10b981;padding:2px 8px;transition:all .2s}.storage-page .repo-files-refresh:hover{background:#2c5e2e1f}.storage-page .repo-files-loading,.storage-page .repo-files-empty,.storage-page .repo-files-error{padding:20px;text-align:center;font-size:13px;color:var(--text-muted)}.storage-page .repo-files-error{color:var(--accent-red)}.storage-page .repo-files-spin{display:inline-block;animation:sp-spin .8s linear infinite;margin-right:6px}.storage-page .repo-files-grid{padding:12px 16px;display:flex;flex-direction:column;gap:6px}.storage-page .repo-file-card{display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:var(--radius-md, 8px);border:1px solid var(--border-color);background:var(--bg-secondary);transition:all .15s}.storage-page .repo-file-card:hover{border-color:#2c5e2e66;background:#2c5e2e0a}.storage-page .repo-file-card-icon{font-size:20px;flex-shrink:0}.storage-page .repo-file-card-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.storage-page .repo-file-card-name{font-size:13px;font-weight:600;color:var(--text-primary);font-family:JetBrains Mono,monospace;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.storage-page .repo-file-card-path{font-size:10px;color:var(--text-muted);font-family:JetBrains Mono,monospace}.storage-page .repo-file-card-right{display:flex;align-items:center;gap:10px;flex-shrink:0}.storage-page .repo-file-card-size{font-size:11px;font-weight:700;font-family:JetBrains Mono,monospace;color:var(--text-muted);background:#ffffff0a;padding:3px 8px;border-radius:5px}.storage-page .repo-file-card-dl-btn{font-size:11px;font-weight:700;padding:4px 10px;border-radius:5px;border:1px solid rgba(59,130,246,.4);background:#3b82f60f;color:var(--accent-blue);cursor:pointer;transition:all .15s;white-space:nowrap}.storage-page .repo-file-card-dl-btn:hover{background:var(--accent-blue);color:#fff;border-color:var(--accent-blue)}.storage-page{--ws-bg: var(--bg-card);--ws-bg-alt: var(--bg-secondary);--ws-border: var(--border-color);--ws-border-bright: var(--border-bright);--ws-text: var(--text-primary);--ws-text-sec: var(--text-secondary);--ws-text-muted: var(--text-muted);--ws-hover: var(--bg-hover);--ws-row-border: var(--border-color);--ws-bar-track: var(--border-color);--ws-sb-track: var(--bg-primary);--ws-sb-thumb: var(--border-bright);--ws-sb-thumb-h: var(--accent-blue);--ws-queue-bg: var(--bg-secondary);--ws-conflict-bg: rgba(30, 58, 138, .06);--ws-conflict-text: #1e3a8a;--ws-shadow: var(--shadow-soft)}.storage-page .ws-overlay{position:fixed;inset:0;background:#000000bf;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;z-index:1100}.storage-page .ws-modal{width:98vw;max-width:1200px;height:85vh;max-height:780px;background:var(--ws-bg);border-radius:6px;border:1px solid var(--ws-border-bright);box-shadow:var(--ws-shadow);display:flex;flex-direction:column;overflow:hidden;animation:sp-ws-modal-in .18s ease}@keyframes sp-ws-modal-in{0%{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}.storage-page .ws-titlebar{height:38px;background:linear-gradient(180deg,#2563eb,#1d4ed8);display:flex;align-items:center;justify-content:space-between;padding:0 12px;flex-shrink:0;-webkit-user-select:none;user-select:none}.storage-page .ws-titlebar-left{display:flex;align-items:center;gap:8px}.storage-page .ws-titlebar-icon{font-size:14px}.storage-page .ws-titlebar-text{font-size:12px;font-weight:600;color:#fff;letter-spacing:.02em}.storage-page .ws-titlebar-path{font-size:11px;color:#fff9;font-family:JetBrains Mono,monospace}.storage-page .ws-titlebar-close{width:28px;height:28px;border:none;background:transparent;color:#fffc;font-size:16px;cursor:pointer;border-radius:4px;display:flex;align-items:center;justify-content:center;transition:all .12s}.storage-page .ws-titlebar-close:hover{background:#ffffff26;color:#fff}.storage-page .ws-toolbar{height:42px;background:var(--ws-bg-alt);border-bottom:1px solid var(--ws-border);display:flex;align-items:center;justify-content:space-between;padding:0 12px;flex-shrink:0;gap:12px}.storage-page .ws-toolbar-left{display:flex;align-items:center;gap:8px}.storage-page .ws-toolbar-label{font-size:11px;font-weight:600;color:var(--ws-text-muted);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}.storage-page .ws-repo-select{padding:4px 8px;border:1px solid var(--ws-border-bright);border-radius:4px;font-size:12px;font-weight:500;color:var(--ws-text);background:var(--accent-blue);min-width:140px;cursor:pointer;transition:border-color .15s}.storage-page .ws-repo-select:focus{outline:none;box-shadow:0 0 0 2px #3b82f626}.storage-page .ws-toolbar-btn{width:28px;height:28px;border:1px solid var(--ws-border-bright);border-radius:4px;background:var(--ws-bg);font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .12s;color:var(--ws-text-sec)}.storage-page .ws-toolbar-btn:hover:not(:disabled){background:var(--ws-hover)}.storage-page .ws-toolbar-btn:disabled{opacity:.4;cursor:not-allowed}.storage-page .ws-toolbar-right{display:flex;align-items:center;gap:12px}.storage-page .ws-toolbar-count{font-size:11px;color:var(--ws-text-muted);font-family:JetBrains Mono,monospace;white-space:nowrap}.storage-page .ws-dl-btn{padding:5px 16px;border:none;border-radius:4px;font-size:12px;font-weight:600;cursor:pointer;background:linear-gradient(180deg,#3b82f6,#2563eb);color:#fff;transition:all .15s;white-space:nowrap;box-shadow:0 1px 2px #2563eb4d}.storage-page .ws-dl-btn:hover:not(:disabled){background:linear-gradient(180deg,#60a5fa,#3b82f6);box-shadow:0 2px 6px #2563eb59}.storage-page .ws-dl-btn:active:not(:disabled){box-shadow:none}.storage-page .ws-dl-btn.disabled{opacity:.4;cursor:not-allowed}.storage-page .ws-panels{flex:1;display:flex;min-height:0;overflow:hidden}.storage-page .ws-panel{flex:1;display:flex;flex-direction:column;min-width:0;overflow:hidden}.storage-page .ws-divider{width:2px;background:var(--ws-border);flex-shrink:0}.storage-page .ws-panel-head{height:30px;background:var(--ws-bg-alt);border-bottom:1px solid var(--ws-border);display:flex;align-items:center;justify-content:space-between;padding:0 10px;flex-shrink:0}.storage-page .ws-panel-title{font-size:11px;font-weight:700;color:var(--ws-text);text-transform:uppercase;letter-spacing:.05em}.storage-page .ws-panel-action{font-size:10px;color:var(--accent-blue);background:none;border:none;cursor:pointer;padding:2px 6px;border-radius:3px;transition:background .12s;white-space:nowrap}.storage-page .ws-panel-action:hover:not(:disabled){background:#3b82f614}.storage-page .ws-panel-action:disabled{opacity:.35;cursor:not-allowed}.storage-page .ws-col-headers{height:26px;background:var(--ws-bg-alt);border-bottom:1px solid var(--ws-border);display:flex;align-items:center;padding:0 10px;flex-shrink:0;gap:6px}.storage-page .ws-col-headers>div{font-size:10px;font-weight:700;color:var(--ws-text-muted);text-transform:uppercase;letter-spacing:.06em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.storage-page .ws-panel-scroll{flex:1;overflow-y:auto;overflow-x:hidden;background:var(--ws-bg)}.storage-page .ws-panel-scroll::-webkit-scrollbar{width:8px}.storage-page .ws-panel-scroll::-webkit-scrollbar-track{background:var(--ws-sb-track)}.storage-page .ws-panel-scroll::-webkit-scrollbar-thumb{background:var(--ws-sb-thumb);border-radius:4px}.storage-page .ws-panel-scroll::-webkit-scrollbar-thumb:hover{background:var(--ws-sb-thumb-h)}.storage-page .ws-empty-state{padding:32px 16px;text-align:center;font-size:12px;color:var(--ws-text-muted);display:flex;align-items:center;justify-content:center;gap:6px}.storage-page .ws-spin{display:inline-block;animation:sp-spin .8s linear infinite}.storage-page .ws-row{display:flex;align-items:center;padding:0 10px;height:28px;border-bottom:1px solid var(--ws-row-border);cursor:default;transition:background .06s;gap:6px;-webkit-user-select:none;user-select:none}.storage-page .ws-row:hover{background:#3b82f60f}.storage-page .ws-row.selected{background:#0078d4;border-bottom-color:#006abc}.storage-page .ws-row.selected:hover{background:#1a86d9}.storage-page .ws-row-icon{width:20px;font-size:13px;flex-shrink:0;text-align:center}.storage-page .ws-row-name{flex:3;font-size:12px;font-family:JetBrains Mono,monospace;font-weight:500;color:var(--ws-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.storage-page .ws-row.selected .ws-row-name{color:#fff}.storage-page .ws-row-size{flex:1;font-size:11px;font-family:JetBrains Mono,monospace;color:var(--ws-text-muted);text-align:right;white-space:nowrap}.storage-page .ws-row.selected .ws-row-size{color:#ffffffd9}.storage-page .ws-row-path{flex:2;font-size:10px;font-family:JetBrains Mono,monospace;color:var(--ws-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.storage-page .ws-row.selected .ws-row-path{color:#ffffffa6}.storage-page .ws-row-cpu{flex:2;font-size:10px;color:var(--ws-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.storage-page .ws-row.selected .ws-row-cpu{color:#ffffffbf}.storage-page .ws-queue{border-top:2px solid var(--ws-border);flex-shrink:0;background:var(--ws-queue-bg);display:flex;flex-direction:column;max-height:220px}.storage-page .ws-queue-toggle{height:30px;background:var(--ws-bg-alt);border-bottom:1px solid var(--ws-border);display:flex;align-items:center;justify-content:space-between;padding:0 12px;cursor:pointer;flex-shrink:0;-webkit-user-select:none;user-select:none;transition:background .1s}.storage-page .ws-queue-toggle:hover{background:var(--ws-hover)}.storage-page .ws-queue-toggle-left{display:flex;align-items:center;gap:8px}.storage-page .ws-queue-arrow{font-size:9px;color:var(--ws-text-muted);width:12px}.storage-page .ws-queue-label{font-size:11px;font-weight:700;color:var(--ws-text)}.storage-page .ws-queue-badge{font-size:10px;font-weight:700;color:#fff;background:var(--accent-blue);padding:1px 7px;border-radius:10px;min-width:20px;text-align:center}.storage-page .ws-queue-toggle-right{display:flex;align-items:center;gap:10px}.storage-page .ws-queue-stat{font-size:11px;font-weight:600;white-space:nowrap}.storage-page .ws-queue-stat.active{color:var(--accent-blue)}.storage-page .ws-queue-stat.success{color:var(--accent-green)}.storage-page .ws-queue-stat.error{color:var(--accent-red)}.storage-page .ws-queue-stat.done{color:var(--accent-green);font-weight:700}.storage-page .ws-queue-list{flex:1;overflow-y:auto;min-height:0}.storage-page .ws-queue-list::-webkit-scrollbar{width:6px}.storage-page .ws-queue-list::-webkit-scrollbar-track{background:transparent}.storage-page .ws-queue-list::-webkit-scrollbar-thumb{background:var(--ws-sb-thumb);border-radius:3px}.storage-page .ws-task{display:flex;align-items:center;padding:6px 12px;border-bottom:1px solid var(--ws-row-border);gap:10px;transition:background .08s}.storage-page .ws-task:hover{background:var(--ws-hover)}.storage-page .ws-task.failed{background:#ef44440a}.storage-page .ws-task-status-icon{width:20px;font-size:13px;flex-shrink:0;text-align:center}.storage-page .ws-task-active-icon{display:inline-block;animation:sp-ws-bounce 1s ease infinite}@keyframes sp-ws-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-2px)}}.storage-page .ws-task-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.storage-page .ws-task-names{display:flex;align-items:center;gap:6px;font-size:12px}.storage-page .ws-task-file{font-family:JetBrains Mono,monospace;font-weight:600;color:var(--ws-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.storage-page .ws-task-arrow{color:var(--ws-text-muted);font-size:12px;flex-shrink:0}.storage-page .ws-task-machine{font-family:JetBrains Mono,monospace;font-weight:500;color:var(--ws-text-muted);white-space:nowrap}.storage-page .ws-task-details{display:flex;align-items:center;gap:10px;font-size:11px}.storage-page .ws-task-bar-track{flex:1;height:5px;background:var(--ws-bar-track);border-radius:3px;overflow:hidden;min-width:60px}.storage-page .ws-task-bar-fill{height:100%;border-radius:3px;transition:width .4s ease;background:var(--ws-text-muted)}.storage-page .ws-task-bar-fill.active{background:linear-gradient(90deg,#3b82f6,#60a5fa);box-shadow:0 0 6px #3b82f64d}.storage-page .ws-task-bar-fill.success{background:linear-gradient(90deg,#059669,#34d399)}.storage-page .ws-task-bar-fill.failed{background:var(--accent-red)}.storage-page .ws-task-pct{font-family:JetBrains Mono,monospace;font-weight:700;font-size:11px;color:var(--ws-text);min-width:32px;text-align:right}.storage-page .ws-task-speed{font-family:JetBrains Mono,monospace;font-size:10px;color:var(--accent-blue);min-width:65px}.storage-page .ws-task-size{font-family:JetBrains Mono,monospace;font-size:10px;color:var(--ws-text-muted);min-width:65px}.storage-page .ws-task-meta{font-size:10px;color:var(--ws-text-muted)}.storage-page .ws-task-err{font-size:11px;color:var(--accent-red);font-weight:500}.storage-page .ws-task-waiting{font-size:11px;color:var(--ws-text-muted);font-style:italic}.storage-page .ws-statusbar{height:24px;background:var(--ws-bg-alt);border-top:1px solid var(--ws-border);display:flex;align-items:center;justify-content:space-between;padding:0 12px;flex-shrink:0;-webkit-user-select:none;user-select:none}.storage-page .ws-statusbar-left{display:flex;align-items:center;gap:4px;font-size:11px;color:var(--ws-text-muted)}.storage-page .ws-statusbar-sep{color:var(--ws-border);margin:0 2px}.storage-page .ws-statusbar-right{font-size:11px;font-weight:600}.storage-page .ws-status-active{color:var(--accent-blue)}.storage-page .ws-status-done{color:var(--accent-green)}.storage-page .ws-status-partial{color:var(--sophisticated-blue)}.storage-page .ws-status-ready{color:var(--ws-text-muted)}.storage-page .ws-status-checking{color:var(--sophisticated-blue);animation:sp-ws-pulse 1.2s ease infinite}@keyframes sp-ws-pulse{0%,to{opacity:1}50%{opacity:.5}}.storage-page .ws-conflict-panel{border-top:2px solid var(--accent-orange);background:#f59e0b0f;flex-shrink:0;display:flex;flex-direction:column;max-height:240px;animation:sp-ws-conflict-in .2s ease}.storage-page .ws-conflict-header{background:#f59e0b1f;border-bottom:1px solid rgba(245,158,11,.25)}.storage-page .ws-conflict-title{color:var(--accent-orange)}.storage-page .ws-conflict-badge{background:var(--accent-orange)}.storage-page .ws-conflict-body::-webkit-scrollbar-thumb{background:#f59e0b4d}.storage-page .ws-conflict-desc{color:var(--accent-orange)}.storage-page .ws-conflict-table-wrap{border:1px solid rgba(245,158,11,.25)}.storage-page .ws-conflict-table thead{background:#f59e0b1a}.storage-page .ws-conflict-table th{color:var(--accent-orange);border-bottom:1px solid rgba(245,158,11,.2)}.storage-page .ws-conflict-table td{border-bottom:1px solid rgba(245,158,11,.1)}.storage-page .ws-conflict-table tbody tr:hover{background:#f59e0b0f}.storage-page .ws-conflict-size{color:var(--accent-orange);background:#f59e0b1a}.storage-page .ws-conflict-path{color:var(--accent-orange)}.storage-page .ws-conflict-actions{background:#f59e0b0f;border-top:1px solid rgba(245,158,11,.2)}.storage-page .ws-conflict-btn.overwrite{background:linear-gradient(180deg,var(--accent-orange),#d97706);box-shadow:0 1px 3px #d977064d}.storage-page .ws-conflict-btn.overwrite:hover{background:linear-gradient(180deg,#fbbf24,var(--accent-orange))}.storage-page .ws-conflict-renamed-badge{font-size:10px;font-weight:600;color:var(--accent-blue);background:#3b82f61a;padding:1px 7px;border-radius:8px;white-space:nowrap;font-family:JetBrains Mono,monospace;max-width:180px;overflow:hidden;text-overflow:ellipsis}.storage-page .ws-conflict-row-renamed{background:#3b82f60a}.storage-page .ws-conflict-row-renamed:hover{background:#3b82f612}.storage-page .ws-conflict-rename-input{width:100%;padding:4px 8px;border:1px solid var(--ws-border-bright);border-radius:4px;font-size:11px;font-family:JetBrains Mono,monospace;font-weight:500;color:var(--ws-text);background:var(--ws-bg);transition:all .15s;outline:none;box-sizing:border-box}.storage-page .ws-conflict-rename-input:focus{border-color:var(--accent-blue);box-shadow:0 0 0 2px #3b82f626}.storage-page .ws-conflict-rename-input.renamed{border-color:#3b82f680;background:#3b82f60a;color:var(--accent-blue);font-weight:600}.storage-page .ws-conflict-rename-btn{width:28px;height:28px;border:1px solid var(--ws-border-bright);border-radius:4px;background:var(--ws-bg);font-size:13px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .12s;flex-shrink:0;padding:0}.storage-page .ws-conflict-rename-btn.auto:hover{background:#3b82f614;border-color:#3b82f666}.storage-page .ws-conflict-rename-btn.reset:hover{background:var(--ws-hover);border-color:var(--ws-border-bright)}.storage-page .ws-task-rename-badge{font-size:10px;font-weight:600;color:var(--accent-blue);background:#3b82f614;border:1px solid rgba(59,130,246,.2);padding:0 6px;border-radius:4px;white-space:nowrap;font-family:JetBrains Mono,monospace;max-width:160px;overflow:hidden;text-overflow:ellipsis}.storage-page .ev-overlay{position:fixed;inset:0;background:#000000bf;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1200}.storage-page .ev-modal{width:98vw;max-width:1280px;height:92vh;max-height:860px;background:var(--ws-bg);border-radius:var(--radius-md, 8px);border:1px solid var(--ws-border-bright);box-shadow:var(--ws-shadow);display:flex;flex-direction:column;overflow:hidden;animation:sp-ws-modal-in .2s ease}.storage-page .ev-titlebar{height:42px;background:linear-gradient(180deg,#4f46e5,#4338ca);display:flex;align-items:center;justify-content:space-between;padding:0 16px;flex-shrink:0;-webkit-user-select:none;user-select:none}.storage-page .ev-titlebar-left{display:flex;align-items:center;gap:10px}.storage-page .ev-titlebar-icon{font-size:16px}.storage-page .ev-titlebar-text{font-size:13px;font-weight:600;color:#fff;letter-spacing:.02em}.storage-page .ev-titlebar-count{font-size:11px;font-weight:600;color:#ffffffb3;background:#ffffff1f;padding:2px 8px;border-radius:10px}.storage-page .ev-titlebar-right{display:flex;align-items:center;gap:12px}.storage-page .ev-titlebar-live{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:600;color:#fbbf24}.storage-page .ev-live-dot{width:8px;height:8px;border-radius:50%;background:#fbbf24;animation:sp-ev-live-pulse 1.5s ease infinite}@keyframes sp-ev-live-pulse{0%,to{opacity:1;box-shadow:0 0 #fbbf2480}50%{opacity:.6;box-shadow:0 0 0 4px #fbbf2400}}.storage-page .ev-titlebar-close{width:30px;height:30px;border:none;background:transparent;color:#fffc;font-size:17px;cursor:pointer;border-radius:4px;display:flex;align-items:center;justify-content:center;transition:all .12s}.storage-page .ev-titlebar-close:hover{background:#ffffff26;color:#fff}.storage-page .ev-toolbar{height:48px;background:var(--ws-bg-alt);border-bottom:1px solid var(--ws-border);display:flex;align-items:center;justify-content:space-between;padding:0 14px;flex-shrink:0;gap:12px}.storage-page .ev-toolbar-left{display:flex;align-items:center;gap:8px;overflow-x:auto}.storage-page .ev-toolbar-right{display:flex;align-items:center;gap:8px;flex-shrink:0}.storage-page .ev-filters{display:flex;gap:4px}.storage-page .ev-filter-btn{display:flex;align-items:center;gap:5px;padding:5px 10px;border:1px solid transparent;border-radius:5px;font-size:11px;font-weight:500;cursor:pointer;background:transparent;color:var(--ws-text-muted);transition:all .12s;white-space:nowrap}.storage-page .ev-filter-btn:hover{background:var(--ws-hover);color:var(--ws-text-sec)}.storage-page .ev-filter-btn.active{background:#4f46e51f;color:#818cf8;border-color:#4f46e540;font-weight:600}.storage-page .ev-filter-count{font-size:10px;font-weight:700;min-width:18px;height:18px;border-radius:9px;display:flex;align-items:center;justify-content:center;background:#ffffff0f;padding:0 4px}.storage-page .ev-filter-btn.active .ev-filter-count{background:#4f46e52e;color:#818cf8}.storage-page .ev-search-wrap{position:relative;display:flex;align-items:center}.storage-page .ev-search-icon{position:absolute;left:8px;font-size:12px;color:var(--ws-text-muted);pointer-events:none}.storage-page .ev-search-input{width:220px;padding:5px 10px 5px 28px;border:1px solid var(--ws-border-bright);border-radius:5px;font-size:12px;color:var(--ws-text);background:var(--ws-bg);transition:all .15s;outline:none}.storage-page .ev-search-input:focus{border-color:#818cf8;box-shadow:0 0 0 2px #4f46e51f}.storage-page .ev-search-input::placeholder{color:var(--ws-text-muted)}.storage-page .ev-auto-refresh{padding:5px 10px;border:1px solid var(--ws-border-bright);border-radius:5px;font-size:11px;font-weight:600;cursor:pointer;background:var(--ws-bg);color:var(--ws-text-sec);transition:all .12s;white-space:nowrap}.storage-page .ev-auto-refresh:hover{background:var(--ws-hover)}.storage-page .ev-auto-refresh.on{background:#10b9811a;border-color:#10b9814d;color:var(--accent-green)}.storage-page .ev-refresh-btn{width:30px;height:30px;border:1px solid var(--ws-border-bright);border-radius:5px;background:var(--ws-bg);font-size:15px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .12s;color:var(--ws-text-sec)}.storage-page .ev-refresh-btn:hover{background:var(--ws-hover)}.storage-page .ev-content{flex:1;overflow:hidden;display:flex;flex-direction:column}.storage-page .ev-loading,.storage-page .ev-error,.storage-page .ev-empty{flex:1;display:flex;align-items:center;justify-content:center;font-size:13px;color:var(--ws-text-muted);gap:8px}.storage-page .ev-error{color:var(--accent-red)}.storage-page .ev-table-wrap{flex:1;overflow-y:auto;overflow-x:auto}.storage-page .ev-table-wrap::-webkit-scrollbar{width:8px;height:8px}.storage-page .ev-table-wrap::-webkit-scrollbar-track{background:var(--ws-sb-track)}.storage-page .ev-table-wrap::-webkit-scrollbar-thumb{background:var(--ws-sb-thumb);border-radius:4px}.storage-page .ev-table-wrap::-webkit-scrollbar-thumb:hover{background:var(--ws-sb-thumb-h)}.storage-page .ev-table-wrap::-webkit-scrollbar-corner{background:var(--ws-sb-track)}.storage-page .ev-table{width:100%;border-collapse:collapse;font-size:12px;min-width:900px}.storage-page .ev-table thead{position:sticky;top:0;z-index:5}.storage-page .ev-table th{text-align:left;padding:8px 12px;background:var(--ws-bg-alt);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--ws-text-muted);border-bottom:1px solid var(--ws-border);white-space:nowrap}.storage-page .ev-table td{padding:8px 12px;border-bottom:1px solid var(--ws-row-border);vertical-align:middle;white-space:nowrap}.storage-page .ev-row{transition:background .08s}.storage-page .ev-row:hover{background:var(--ws-hover)}.storage-page .ev-row.active{background:#4f46e50f}.storage-page .ev-row.active:hover{background:#4f46e51a}.storage-page .ev-row.failed{background:#ef44440a}.storage-page .ev-row.failed:hover{background:#ef444412}.storage-page .ev-status-dot{width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700}.storage-page .ev-status-dot.success{background:#10b9811f;color:var(--accent-green)}.storage-page .ev-status-dot.failed{background:#ef44441f;color:var(--accent-red)}.storage-page .ev-status-dot.pending{background:#ffffff0a;color:var(--ws-text-muted)}.storage-page .ev-status-dot.active{background:#4f46e51f;color:#818cf8}.storage-page .ev-status-pulse{display:block;width:8px;height:8px;border-radius:50%;background:#818cf8;animation:sp-ev-status-beat 1.2s ease infinite}@keyframes sp-ev-status-beat{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.3);opacity:.5}}.storage-page .ev-action-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:4px;font-size:11px;font-weight:600;white-space:nowrap}.storage-page .ev-action-badge.upload{background:#3b82f61a;color:var(--accent-blue)}.storage-page .ev-action-badge.download{background:#10b9811a;color:var(--accent-green)}.storage-page .ev-cell-file{display:flex;align-items:center;gap:8px;max-width:240px}.storage-page .ev-file-icon{font-size:15px;flex-shrink:0}.storage-page .ev-file-name{font-family:JetBrains Mono,monospace;font-weight:500;font-size:12px;color:var(--ws-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.storage-page .ev-cell-machine{font-family:JetBrains Mono,monospace;font-weight:500;font-size:11px;color:var(--ws-text);max-width:100px;overflow:hidden;text-overflow:ellipsis}.storage-page .ev-cell-dest{font-size:11px;color:var(--ws-text-muted);max-width:100px;overflow:hidden;text-overflow:ellipsis}.storage-page .ev-cell-size{font-family:JetBrains Mono,monospace;font-size:11px;font-weight:600;color:var(--ws-text-muted);text-align:right}.storage-page .ev-cell-duration{font-family:JetBrains Mono,monospace;font-size:11px;color:var(--ws-text-muted)}.storage-page .ev-cell-progress{min-width:180px}.storage-page .ev-progress-wrap{display:flex;align-items:center;gap:8px}.storage-page .ev-progress-track{flex:1;height:6px;background:var(--ws-bar-track);border-radius:3px;overflow:hidden;min-width:60px}.storage-page .ev-progress-fill{height:100%;border-radius:3px;transition:width .5s ease;background:var(--ws-text-muted)}.storage-page .ev-progress-fill.active{background:linear-gradient(90deg,#4f46e5,#818cf8);box-shadow:0 0 6px #4f46e54d}.storage-page .ev-progress-fill.success{background:linear-gradient(90deg,#059669,#34d399)}.storage-page .ev-progress-fill.failed{background:var(--accent-red)}.storage-page .ev-progress-pct{font-family:JetBrains Mono,monospace;font-weight:700;font-size:11px;color:var(--ws-text);min-width:34px;text-align:right}.storage-page .ev-progress-speed{font-family:JetBrains Mono,monospace;font-size:10px;color:#818cf8;font-weight:600;white-space:nowrap}.storage-page .ev-row-error{font-size:10px;color:var(--accent-red);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px}.storage-page .ev-row-http{font-size:10px;color:var(--accent-green);font-family:JetBrains Mono,monospace;margin-top:2px}.storage-page .ev-cell-time{font-size:11px}.storage-page .ev-time-main{font-family:JetBrains Mono,monospace;color:var(--ws-text);font-weight:500}.storage-page .ev-time-sub{font-size:10px;color:var(--ws-text-muted);margin-top:1px}.storage-page .ev-statusbar{height:26px;background:var(--ws-bg-alt);border-top:1px solid var(--ws-border);display:flex;align-items:center;justify-content:space-between;padding:0 14px;flex-shrink:0;-webkit-user-select:none;user-select:none}.storage-page .ev-statusbar-left{display:flex;align-items:center;gap:4px;font-size:11px;color:var(--ws-text-muted)}.storage-page .ev-statusbar-sep{color:var(--ws-border);margin:0 2px}.storage-page .ev-statusbar-right{font-size:11px;font-weight:600}.storage-page .ev-statusbar-refresh{color:var(--accent-green)}.storage-page .ev-statusbar-paused{color:var(--ws-text-muted)}.storage-page .ws-task-cancel-btn{width:26px;height:26px;border:1px solid rgba(30,58,138,.3);border-radius:4px;background:transparent;font-size:12px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .12s;flex-shrink:0;padding:0;color:var(--sophisticated-blue);opacity:.7}.storage-page .ws-task-cancel-btn:hover{opacity:1;background:#1e3a8a26;border-color:var(--sophisticated-blue);box-shadow:0 0 8px #1e3a8a33}.storage-page .ws-task.cancelled{background:#1e3a8a0a}.storage-page .ws-task.cancelled:hover{background:#1e3a8a12}.storage-page .ws-task-bar-fill.cancelled{background:var(--sophisticated-blue);opacity:.45}.storage-page .ws-queue-stat.cancelled{color:var(--sophisticated-blue)}.storage-page .ws-queue-stat.pending-q{color:var(--ws-text-muted)}.storage-page .ws-queue-cancel-all{padding:3px 10px;border:1px solid rgba(30,58,138,.3);border-radius:4px;font-size:10px;font-weight:600;cursor:pointer;background:transparent;color:var(--sophisticated-blue);transition:all .12s;white-space:nowrap;letter-spacing:.02em}.storage-page .ws-queue-cancel-all:hover{background:#1e3a8a1f;border-color:var(--sophisticated-blue);box-shadow:0 0 8px #1e3a8a26}.storage-page .ws-titlebar-history{width:28px;height:28px;border:none;background:transparent;color:#ffffffb3;font-size:14px;cursor:pointer;border-radius:4px;display:flex;align-items:center;justify-content:center;transition:all .12s;padding:0}.storage-page .ws-titlebar-history:hover{background:#ffffff26;color:#fff}.storage-page .ev-cancel-btn{width:26px;height:26px;border:1px solid rgba(30,58,138,.3);border-radius:4px;background:transparent;font-size:11px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .12s;flex-shrink:0;padding:0;color:var(--sophisticated-blue);opacity:.7}.storage-page .ev-cancel-btn:hover{opacity:1;background:#1e3a8a26;border-color:var(--sophisticated-blue);box-shadow:0 0 8px #1e3a8a33;transform:scale(1.05)}.storage-page .ev-cancel-btn:active{transform:scale(.95)}.storage-page .ev-cancel-btn.cancelling{opacity:.8;border-color:#1e3a8a80;background:#1e3a8a1a;cursor:wait;animation:sp-ev-cancel-pulse .8s ease infinite}@keyframes sp-ev-cancel-pulse{0%,to{opacity:.6}50%{opacity:1}}.storage-page .ev-cancel-btn.cancelling:hover{background:#1e3a8a1a;box-shadow:none;transform:none}.storage-page .ev-cell-progress{min-width:220px}.storage-page .ws-task.restored{animation:sp-ws-task-restore .5s ease}@keyframes sp-ws-task-restore{0%{opacity:0;transform:translateY(-8px);background:#4f46e514}to{opacity:1;transform:translateY(0);background:transparent}}.storage-page .repo-file-card-checkbox{display:flex;align-items:center;padding-right:8px}.storage-page .repo-file-card-checkbox input[type=checkbox]{width:16px;height:16px;cursor:pointer;accent-color:var(--accent-blue, #3b82f6)}.storage-page .repo-file-card.selected{background:#3b82f61a!important;border-color:var(--accent-blue, #3b82f6)!important}.storage-page .repo-file-card.deleting{opacity:.6;pointer-events:none}.storage-page .repo-file-card-delete-btn{background:#dc26261a;border:1px solid rgba(220,38,38,.3);color:var(--accent-red, #dc2626);padding:4px 8px;border-radius:4px;cursor:pointer;font-size:12px;transition:all .2s ease;display:flex;align-items:center;gap:4px}.storage-page .repo-file-card-delete-btn:hover:not(:disabled){background:#dc262633;border-color:var(--accent-red, #dc2626);transform:scale(1.05)}.storage-page .repo-file-card-delete-btn:disabled{cursor:not-allowed;opacity:.5}.storage-page .repo-files-action-btn{padding:4px 12px;border-radius:4px;cursor:pointer;font-size:12px;font-weight:500;transition:all .2s ease;border:1px solid}.storage-page .repo-files-action-btn.select{background:#3b82f61a;border-color:#3b82f64d;color:var(--accent-blue, #3b82f6)}.storage-page .repo-files-action-btn.select:hover{background:#3b82f633}.storage-page .repo-files-action-btn.delete-multi{background:#dc26261a;border-color:#dc26264d;color:var(--accent-red, #dc2626)}.storage-page .repo-files-action-btn.delete-multi:hover:not(:disabled){background:#dc262633;border-color:var(--accent-red, #dc2626)}.storage-page .repo-files-action-btn:disabled{cursor:not-allowed;opacity:.5}.storage-page .btn-danger{background:var(--accent-red, #dc2626)!important;color:#fff!important;border:none!important}.storage-page .btn-danger:hover:not(:disabled){background:#b91c1c!important}.storage-page .ws-row.dragging{opacity:.5;cursor:grabbing!important}.storage-page .ws-row.drop-target{background:#3b82f626!important;border-bottom-color:var(--accent-blue)!important;box-shadow:inset 0 0 0 2px #3b82f666;transform:scaleX(1.01);transition:all .1s ease}.storage-page .ws-row.drop-target .ws-row-name{color:var(--accent-blue);font-weight:700}.storage-page .ws-row.drop-target:after{content:attr(data-drop-count);position:absolute;right:8px;font-size:10px;font-weight:700;color:#fff;background:var(--accent-blue);padding:2px 7px;border-radius:10px;white-space:nowrap}.storage-page .ws-row{position:relative}.repo-files-error-container{padding:0}.repo-files-error-content{display:flex;align-items:center;gap:16px;padding:20px 24px;background:linear-gradient(135deg,#f59e0b14,#ef44440d);border:1px solid rgba(245,158,11,.25);border-radius:10px;margin:12px}.repo-files-error-icon-wrapper{flex-shrink:0;width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:#f59e0b26;border-radius:12px;border:1px solid rgba(245,158,11,.3)}.repo-files-error-icon{font-size:24px;line-height:1}.repo-files-error-text{flex:1;display:flex;flex-direction:column;gap:4px;min-width:0}.repo-files-error-title{font-size:14px;font-weight:600;color:var(--text-primary, #e2e8f0);letter-spacing:.01em}.repo-files-error-detail{font-size:12px;color:var(--text-secondary, #94a3b8);font-family:JetBrains Mono,Fira Code,monospace;opacity:.8;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.repo-files-error-refresh-btn{flex-shrink:0;display:flex;align-items:center;gap:8px;padding:10px 20px;background:linear-gradient(135deg,#f59e0b33,#f59e0b1a);border:1px solid rgba(245,158,11,.4);border-radius:8px;color:#fbbf24;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s ease;letter-spacing:.02em}.repo-files-error-refresh-btn:hover{background:linear-gradient(135deg,#f59e0b4d,#f59e0b26);border-color:#f59e0b99;transform:translateY(-1px);box-shadow:0 4px 12px #f59e0b26}.repo-files-error-refresh-btn:active{transform:translateY(0);box-shadow:none}.repo-files-error-refresh-icon{font-size:16px;transition:transform .3s ease}.repo-files-error-refresh-btn:hover .repo-files-error-refresh-icon{transform:rotate(180deg)}@keyframes repoErrorFadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.repo-files-error-content{animation:repoErrorFadeIn .3s ease-out}.react-grid-layout{position:relative;transition:height .2s ease}.react-grid-item{transition:all .2s ease;transition-property:left,top,width,height}.react-grid-item img{pointer-events:none;-webkit-user-select:none;user-select:none}.react-grid-item.cssTransforms{transition-property:transform,width,height}.react-grid-item.resizing{transition:none;z-index:1;will-change:width,height}.react-grid-item.react-draggable-dragging{transition:none;z-index:3;will-change:transform}.react-grid-item.dropping{visibility:hidden}.react-grid-item.react-grid-placeholder{background:red;opacity:.2;transition-duration:.1s;z-index:2;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.react-grid-item.react-grid-placeholder.placeholder-resizing{transition:none}.react-grid-item>.react-resizable-handle{position:absolute;width:20px;height:20px}.react-grid-item>.react-resizable-handle:after{content:"";position:absolute;right:3px;bottom:3px;width:5px;height:5px;border-right:2px solid rgba(0,0,0,.4);border-bottom:2px solid rgba(0,0,0,.4)}.react-resizable-hide>.react-resizable-handle{display:none}.react-grid-item>.react-resizable-handle.react-resizable-handle-sw{bottom:0;left:0;cursor:sw-resize;transform:rotate(90deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-se{bottom:0;right:0;cursor:se-resize}.react-grid-item>.react-resizable-handle.react-resizable-handle-nw{top:0;left:0;cursor:nw-resize;transform:rotate(180deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-ne{top:0;right:0;cursor:ne-resize;transform:rotate(270deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-w,.react-grid-item>.react-resizable-handle.react-resizable-handle-e{top:50%;margin-top:-10px;cursor:ew-resize}.react-grid-item>.react-resizable-handle.react-resizable-handle-w{left:0;transform:rotate(135deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-e{right:0;transform:rotate(315deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-n,.react-grid-item>.react-resizable-handle.react-resizable-handle-s{left:50%;margin-left:-10px;cursor:ns-resize}.react-grid-item>.react-resizable-handle.react-resizable-handle-n{top:0;transform:rotate(225deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-s{bottom:0;transform:rotate(45deg)}.react-resizable{position:relative}.react-resizable-handle{position:absolute;width:20px;height:20px;background-repeat:no-repeat;background-origin:content-box;box-sizing:border-box;background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2IDYiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmYwMCIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSI2cHgiIGhlaWdodD0iNnB4Ij48ZyBvcGFjaXR5PSIwLjMwMiI+PHBhdGggZD0iTSA2IDYgTCAwIDYgTCAwIDQuMiBMIDQgNC4yIEwgNC4yIDQuMiBMIDQuMiAwIEwgNiAwIEwgNiA2IEwgNiA2IFoiIGZpbGw9IiMwMDAwMDAiLz48L2c+PC9zdmc+);background-position:bottom right;padding:0 3px 3px 0}.react-resizable-handle-sw{bottom:0;left:0;cursor:sw-resize;transform:rotate(90deg)}.react-resizable-handle-se{bottom:0;right:0;cursor:se-resize}.react-resizable-handle-nw{top:0;left:0;cursor:nw-resize;transform:rotate(180deg)}.react-resizable-handle-ne{top:0;right:0;cursor:ne-resize;transform:rotate(270deg)}.react-resizable-handle-w,.react-resizable-handle-e{top:50%;margin-top:-10px;cursor:ew-resize}.react-resizable-handle-w{left:0;transform:rotate(135deg)}.react-resizable-handle-e{right:0;transform:rotate(315deg)}.react-resizable-handle-n,.react-resizable-handle-s{left:50%;margin-left:-10px;cursor:ns-resize}.react-resizable-handle-n{top:0;transform:rotate(225deg)}.react-resizable-handle-s{bottom:0;transform:rotate(45deg)}.dashboard{display:flex;flex-direction:column;gap:14px;height:100%;overflow-y:auto;padding-bottom:16px}.dash-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:16px;color:var(--text-muted);font-family:JetBrains Mono,monospace;font-size:.9rem}.dash-spinner{width:40px;height:40px;border:3px solid var(--border-color);border-top-color:var(--accent-blue);border-radius:50%;animation:spin .8s linear infinite}.dash-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;padding:12px 16px;background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);flex-shrink:0}.dash-header-left{display:flex;align-items:center;gap:12px}.dash-title-icon{font-size:1.5rem}.dash-title{font-size:1.1rem;font-weight:700;color:var(--text-primary);margin:0}.dash-subtitle{font-size:.73rem;color:var(--text-muted);font-family:JetBrains Mono,monospace;margin:2px 0 0}.dash-header-right{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.dash-alert-pill{font-size:.75rem;font-weight:600;padding:4px 12px;border-radius:20px;font-family:JetBrains Mono,monospace}.dash-alert-pill.danger{background:#ef444426;color:#ef4444;border:1px solid rgba(239,68,68,.3)}.dash-alert-pill.warn{background:#f59e0b26;color:#f59e0b;border:1px solid rgba(245,158,11,.3)}.dash-alert-pill.ok{background:#10b9811f;color:#10b981;border:1px solid rgba(16,185,129,.25)}.btn-reset-layout{background:none;border:1px solid var(--border-bright);color:var(--text-muted);padding:5px 10px;border-radius:var(--radius-sm);cursor:pointer;font-size:.78rem;font-family:JetBrains Mono,monospace;transition:all .2s}.btn-reset-layout:hover{color:var(--text-primary);border-color:var(--text-muted)}.dash-grid{width:100%}.grid-item{display:flex;flex-direction:column;overflow:hidden}.grid-item--edit{outline:1px dashed rgba(59,130,246,.35);border-radius:var(--radius-lg)}.react-grid-item.react-grid-placeholder{background:#3b82f61f!important;border:1px dashed rgba(59,130,246,.5)!important;border-radius:var(--radius-lg)!important;opacity:1!important}.react-resizable-handle{opacity:0;transition:opacity .2s}.grid-item--edit:hover .react-resizable-handle{opacity:1}.react-resizable-handle:after{border-color:var(--accent-blue)!important;width:8px!important;height:8px!important}.dash-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);display:flex;flex-direction:column;height:100%;overflow:hidden;transition:border-color .2s,box-shadow .2s}.dash-card:hover{border-color:var(--border-bright)}.dash-card--edit{border-color:#3b82f64d}.card-header{display:flex;align-items:center;gap:7px;padding:10px 14px;flex-shrink:0;border-bottom:1px solid var(--border-color);-webkit-user-select:none;user-select:none}.card-header.drag-handle{cursor:grab;background:#3b82f60a}.card-header.drag-handle:active{cursor:grabbing}.drag-dots{font-size:14px;color:var(--text-muted);letter-spacing:-1px;flex-shrink:0;opacity:.6}.card-icon{font-size:.95rem;flex-shrink:0}.card-title{font-size:.78rem;font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.06em;flex:1}.card-extra{margin-left:auto}.card-body{flex:1;padding:12px 14px;overflow:hidden;display:flex;flex-direction:column}.alert-badge{font-size:.68rem;font-weight:700;color:#fff;padding:1px 6px;border-radius:10px;font-family:JetBrains Mono,monospace;flex-shrink:0}.health-badge{font-size:.7rem;font-weight:700;padding:2px 7px;border-radius:10px;font-family:JetBrains Mono,monospace}.health-badge.ok{background:#10b98126;color:#10b981;border:1px solid rgba(16,185,129,.3)}.health-badge.warn{background:#f59e0b26;color:#f59e0b;border:1px solid rgba(245,158,11,.3)}.health-badge.danger{background:#ef444426;color:#ef4444;border:1px solid rgba(239,68,68,.3)}.cluster-body{display:flex;align-items:center;gap:16px;flex:1;padding-left:50px}.cluster-gauge-wrap{display:flex;flex-direction:column;align-items:center;gap:4px;flex-shrink:0}.cluster-stats{display:flex;flex-direction:column;gap:7px;flex:1;min-width:0;padding-left:25px}.cstat{display:flex;align-items:center;gap:7px;font-size:.8rem}.cstat-label{color:var(--text-muted);flex:1;font-size:.75rem}.cstat-val{font-family:JetBrains Mono,monospace;font-weight:700;font-size:.88rem;color:var(--text-primary);padding-right:40px}.cstat-val.green{color:#10b981}.cstat-val.red{color:#ef4444}.cstat-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.cstat-dot.up{background:#10b981;box-shadow:0 0 4px #10b981;animation:pulse-dot 2s infinite}.cstat-dot.down{background:#ef4444}.cstat-dot.blue{background:#3b82f6}.vm-body{display:flex;flex-direction:column;align-items:center;gap:12px;flex:1}.vm-gauge-wrap{display:flex;justify-content:center;margin-top:3rem}.vm-stats{display:flex;justify-content:space-around;gap:8px;width:100%}.vm-stat{display:flex;flex-direction:column;align-items:center;gap:4px}.vm-badge{font-size:.68rem;font-weight:700;padding:2px 8px;border-radius:12px;font-family:JetBrains Mono,monospace}.vm-badge.running{background:#10b9811f;color:#10b981;border:1px solid rgba(16,185,129,.25)}.vm-badge.stopped{background:#ef44441a;color:#ef4444;border:1px solid rgba(239,68,68,.2)}.vm-count{font-size:1.3rem;font-weight:700;color:var(--text-primary);font-family:JetBrains Mono,monospace}.vm-bar-chart{width:100%;margin:-12px 0}.net-body{display:flex;flex-direction:column;flex:1;overflow:hidden;gap:8px}.net-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;gap:8px;color:var(--text-muted);font-size:.8rem}.net-empty-icon{font-size:1.8rem;opacity:.4}.alert-list{display:flex;flex-direction:column;gap:5px;flex:1;overflow-y:auto}.alert-item{display:flex;align-items:center;gap:8px;padding:6px 9px;border-radius:var(--radius-sm);border-left:3px solid transparent;flex-shrink:0}.alert-item--danger{background:#ef444412;border-left-color:#ef4444}.alert-item--warn{background:#f59e0b12;border-left-color:#f59e0b}.alert-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.alert-text{display:flex;flex-direction:column;gap:1px;flex:1;min-width:0}.alert-text strong{font-size:.8rem;color:var(--text-primary);font-family:JetBrains Mono,monospace}.alert-text span{font-size:.7rem;color:var(--text-muted)}.alert-time{font-size:.68rem;color:var(--text-muted);font-family:JetBrains Mono,monospace;white-space:nowrap}.metric-body{display:flex;gap:12px;align-items:flex-start;flex:1;overflow:hidden}.metric-detail{display:flex;flex-direction:column;gap:6px;flex:1;overflow-y:auto}.metric-row{display:flex;align-items:center;gap:6px;font-size:.76rem}.metric-name{width:68px;flex-shrink:0;color:var(--text-secondary);font-family:JetBrains Mono,monospace;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.metric-pct{font-size:.7rem;font-family:JetBrains Mono,monospace;font-weight:700;width:38px;text-align:right;flex-shrink:0}.mini-bar-track{flex:1;height:5px;background:#ffffff12;border-radius:3px;overflow:hidden}.mini-bar-fill{height:100%;border-radius:3px;transition:width .6s ease;min-width:2px}.gauge-ring{display:block;flex-shrink:0}.sw-panel{display:flex;flex-direction:column;gap:8px;flex:1;overflow:hidden}.sw-summary-bar{position:relative;height:28px;background:#ffffff0a;border-radius:6px;overflow:hidden;flex-shrink:0;display:flex;align-items:center}.sw-summary-bar>div:first-child{position:absolute;inset:0 auto 0 0;transition:width .8s ease;opacity:.25}.sw-summary-label{position:relative;z-index:1;font-size:10px;font-family:JetBrains Mono,monospace;color:var(--text-muted);padding:0 10px}.sw-list{display:flex;flex-direction:column;gap:4px;overflow-y:auto;flex:1;padding-right:2px}.sw-list::-webkit-scrollbar{width:3px}.sw-list::-webkit-scrollbar-track{background:transparent}.sw-list::-webkit-scrollbar-thumb{background:#ffffff14;border-radius:2px}.sw-item{display:flex;align-items:center;gap:0;border-radius:8px;cursor:pointer;transition:background .15s ease,transform .1s ease;border:1px solid rgba(255,255,255,.05);overflow:hidden;position:relative}.sw-item:hover{background:#ffffff0d;border-color:#3b82f633}.sw-item:active{transform:scale(.99)}.sw-item--active{background:#3b82f612;border-color:#3b82f64d}.sw-item-accent{width:3px;align-self:stretch;flex-shrink:0;transition:background .3s}.sw-item-main{flex:1;padding:8px 10px;min-width:0;display:flex;flex-direction:column;gap:5px}.sw-item-top{display:flex;align-items:center;justify-content:space-between;gap:6px}.sw-item-name-row{display:flex;align-items:center;gap:7px;min-width:0}.sw-pulse-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.sw-pulse-dot.active{background:#10b981;box-shadow:0 0 5px #10b98180;animation:sw-pulse 2s infinite}.sw-pulse-dot.inactive{background:#64748b80}@keyframes sw-pulse{0%,to{box-shadow:0 0 4px #10b98180}50%{box-shadow:0 0 10px #10b981cc}}.sw-item-name{font-size:12px;font-weight:600;color:#e2e8f0;font-family:JetBrains Mono,monospace;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sw-item-badge{font-size:9px;font-weight:700;padding:2px 7px;border-radius:20px;flex-shrink:0;letter-spacing:.3px}.sw-item-badge.used{background:#10b9811f;color:#10b981;border:1px solid rgba(16,185,129,.2)}.sw-item-badge.unused{background:#64748b1a;color:#64748b;border:1px solid rgba(100,116,139,.15)}.sw-item-health{display:flex;align-items:center;gap:6px}.sw-health-bar-track{flex:1;height:3px;background:#ffffff0f;border-radius:2px;overflow:hidden}.sw-health-bar-fill{height:100%;border-radius:2px;transition:width .6s ease}.sw-health-label{font-size:9px;font-family:JetBrains Mono,monospace;font-weight:700;flex-shrink:0}.sw-item-no-ports{font-size:10px;color:#475569;font-style:italic}.sw-item-arrow{font-size:16px;color:#fff3;padding:0 8px;transition:color .2s,transform .2s;flex-shrink:0}.sw-item:hover .sw-item-arrow{color:#3b82f6;transform:translate(2px)}.sw-hint{font-size:10px;color:#ffffff4d;text-align:center;margin:0;padding:4px 0;font-style:italic;flex-shrink:0}.sw-detail{display:flex;flex-direction:column;gap:10px;flex:1;overflow:hidden}.sw-detail-head{display:flex;flex-direction:column;gap:8px;flex-shrink:0}.sw-back-btn{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:5px;color:#64748b;font-size:11px;cursor:pointer;transition:all .2s;width:fit-content;font-family:JetBrains Mono,monospace}.sw-back-btn:hover{background:#3b82f61a;border-color:#3b82f64d;color:#3b82f6}.sw-detail-title{display:flex;align-items:center;gap:8px}.sw-detail-title h4{margin:0;font-size:13px;font-weight:700;color:#f0f4ff;font-family:JetBrains Mono,monospace}.sw-detail-health-row{display:flex;align-items:center;gap:8px}.sw-detail-health-track{flex:1;height:5px;background:#ffffff0f;border-radius:3px;overflow:hidden}.sw-detail-health-fill{height:100%;border-radius:3px;transition:width .7s ease}.sw-detail-health-pct{font-size:11px;font-weight:700;font-family:JetBrains Mono,monospace;flex-shrink:0;width:36px;text-align:right}.sw-detail-chips{display:flex;gap:6px;flex-wrap:wrap}.sw-chip{font-size:10px;font-weight:600;padding:3px 8px;border-radius:4px;display:flex;align-items:center;gap:5px;font-family:JetBrains Mono,monospace}.sw-chip-dot{width:6px;height:6px;border-radius:50%}.sw-chip-dot.up{background:#10b981}.sw-chip-dot.down{background:#ef4444}.sw-chip--up{background:#10b9811a;color:#10b981}.sw-chip--down{background:#ef44441a;color:#ef4444}.sw-chip--router{background:#8b5cf61a;color:#8b5cf6}.sw-chip--total{background:#ffffff0d;color:#64748b}.sw-ports-scroll{display:flex;flex-direction:column;gap:4px;overflow-y:auto;flex:1}.sw-ports-scroll::-webkit-scrollbar{width:3px}.sw-ports-scroll::-webkit-scrollbar-track{background:transparent}.sw-ports-scroll::-webkit-scrollbar-thumb{background:#ffffff14;border-radius:2px}.sw-ports-empty{display:flex;flex-direction:column;align-items:center;gap:6px;padding:20px;color:#475569;font-size:12px}.sw-port-row{display:flex;align-items:center;justify-content:space-between;padding:7px 10px;border-radius:6px;border:1px solid rgba(255,255,255,.04);background:#ffffff05;transition:background .15s;flex-shrink:0}.sw-port-row:hover{background:#ffffff0d}.sw-port-row.up{border-left:3px solid #10b981}.sw-port-row.down{border-left:3px solid #ef4444;opacity:.65}.sw-port-row.l3{border-left-color:#8b5cf6;background:#8b5cf60a}.sw-port-left{display:flex;align-items:center;gap:8px;min-width:0;flex:1}.sw-port-led{width:8px;height:8px;border-radius:50%;flex-shrink:0}.sw-port-led.up{background:#10b981;box-shadow:0 0 6px #10b98180;animation:sw-pulse 2.5s infinite}.sw-port-led.down{background:#ef4444}.sw-port-info{display:flex;flex-direction:column;gap:1px;min-width:0}.sw-port-name{font-size:11px;font-weight:600;color:#cbd5e1;font-family:JetBrains Mono,monospace;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sw-port-type{font-size:9px;color:#475569}.sw-port-right{display:flex;align-items:center;gap:5px;flex-shrink:0}.sw-port-l3-tag{font-size:8px;font-weight:800;color:#8b5cf6;background:#8b5cf626;padding:2px 5px;border-radius:3px;letter-spacing:.5px}.sw-port-status{font-size:10px;font-weight:700;padding:2px 7px;border-radius:4px;font-family:JetBrains Mono,monospace}.sw-port-status.up{background:#10b9811a;color:#10b981}.sw-port-status.down{background:#ef44441a;color:#ef4444}.rt-body{padding:0}.rt-summary{display:flex;flex-direction:column;gap:6px;padding:10px 14px 0;flex-shrink:0}.rt-summary-bar-track{height:4px;background:#ffffff0f;border-radius:2px;overflow:hidden}.rt-summary-bar-fill{height:100%;border-radius:2px;transition:width .8s ease}.rt-summary-chips{display:flex;gap:6px;flex-wrap:wrap}.rt-sum-chip{font-size:10px;font-weight:600;padding:2px 8px;border-radius:4px;font-family:JetBrains Mono,monospace}.rt-sum-chip.used{background:#10b9811a;color:#10b981}.rt-sum-chip.unused{background:#64748b14;color:#64748b}.rt-sum-chip.ports{background:#3b82f61a;color:#3b82f6}.rt-list{display:flex;flex-direction:column;gap:4px;padding:8px 10px 10px;overflow-y:auto;flex:1}.rt-list::-webkit-scrollbar{width:3px}.rt-list::-webkit-scrollbar-track{background:transparent}.rt-list::-webkit-scrollbar-thumb{background:#ffffff14;border-radius:2px}.rt-card{border-radius:8px;border:1px solid rgba(255,255,255,.06);background:#0f172a80;overflow:hidden;transition:border-color .2s,box-shadow .2s;flex-shrink:0}.rt-card:hover{border-color:#ffffff1f}.rt-card--used{border-left:3px solid #10b981}.rt-card--unused{border-left:3px solid rgba(100,116,139,.4);opacity:.75}.rt-card--expanded{border-color:#3b82f640;box-shadow:0 0 0 1px #3b82f61a}.rt-card-header{display:flex;align-items:center;justify-content:space-between;padding:9px 11px;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .15s;gap:8px}.rt-card-header:hover{background:#ffffff08}.rt-card--expanded .rt-card-header{background:#3b82f60a}.rt-card-left{display:flex;align-items:center;gap:9px;min-width:0;flex:1}.rt-icon-wrap{width:28px;height:28px;border-radius:7px;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .2s}.rt-icon-wrap.active{background:#10b9811f;color:#10b981;box-shadow:0 0 8px #10b98126}.rt-icon-wrap.inactive{background:#64748b1a;color:#475569}.rt-card-name-col{display:flex;flex-direction:column;gap:1px;min-width:0}.rt-card-name{font-size:12px;font-weight:700;color:#e2e8f0;font-family:JetBrains Mono,monospace;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rt-card-sub{font-size:10px;color:#475569}.rt-card-right{display:flex;align-items:center;gap:8px;flex-shrink:0}.rt-status-pill{font-size:9px;font-weight:700;padding:2px 8px;border-radius:20px;font-family:JetBrains Mono,monospace;white-space:nowrap}.rt-status-pill.on{background:#10b9811f;color:#10b981;border:1px solid rgba(16,185,129,.2)}.rt-status-pill.off{background:#64748b14;color:#64748b;border:1px solid rgba(100,116,139,.15)}.rt-chevron{color:#475569;transition:transform .25s ease,color .2s;flex-shrink:0}.rt-chevron.open{transform:rotate(180deg);color:#3b82f6}.rt-ports-body{padding:0 11px 10px;animation:rt-expand .2s ease}@keyframes rt-expand{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.rt-ports-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}.rt-port-tile{background:#0f172ab3;border:1px solid rgba(255,255,255,.05);border-radius:6px;padding:7px 8px}.rt-port-tile-header{display:flex;align-items:center;gap:5px;margin-bottom:5px;padding-bottom:5px;border-bottom:1px solid rgba(255,255,255,.05)}.rt-port-num{font-size:9px;font-weight:700;color:#8b5cf6;font-family:JetBrains Mono,monospace}.rt-port-alias{font-size:8px;color:#475569;background:#ffffff0a;padding:1px 5px;border-radius:3px;margin-left:auto;max-width:60px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rt-port-row{display:flex;align-items:center;gap:5px;font-size:10px}.rt-port-label{font-size:8px;text-transform:uppercase;letter-spacing:.5px;color:#334155;font-weight:700;width:26px;flex-shrink:0}.rt-port-val{font-family:JetBrains Mono,monospace;font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rt-port-val.ip{color:#60a5fa}.rt-port-val.mac{color:#64748b;font-size:9px}.rt-ports-empty{padding:8px 12px;font-size:11px;color:#475569;font-style:italic;border-top:1px solid rgba(255,255,255,.04);animation:rt-expand .2s ease}@media(max-width:350px){.rt-ports-grid{grid-template-columns:1fr}.sw-detail-chips{flex-wrap:wrap}}.sw-acc-chips{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px;padding-bottom:8px;border-bottom:1px solid rgba(255,255,255,.05)}.sw-acc-ports{display:flex;flex-direction:column;gap:4px;max-height:160px;overflow-y:auto}.sw-acc-ports::-webkit-scrollbar{width:3px}.sw-acc-ports::-webkit-scrollbar-track{background:transparent}.sw-acc-ports::-webkit-scrollbar-thumb{background:#ffffff14;border-radius:2px}.btn-lock-toggle{background:#10b98126;color:#10b981;border:1px solid rgba(16,185,129,.4);padding:6px 14px;border-radius:var(--radius-sm);cursor:pointer;font-size:.78rem;font-weight:600;font-family:JetBrains Mono,monospace;transition:all .2s;display:flex;align-items:center;gap:6px}.btn-lock-toggle:hover{background:#10b98140;transform:translateY(-1px)}.btn-lock-toggle.locked{background:#ef444426;color:#ef4444;border-color:#ef444466}.btn-lock-toggle.locked:hover{background:#ef444440}.alert-empty-sophisticated{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:16px;padding:20px;text-align:center;position:relative;overflow:hidden}.alert-empty-sophisticated:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 40%,rgba(16,185,129,.08) 0%,transparent 60%);animation:pulse-bg 4s ease-in-out infinite}@keyframes pulse-bg{0%,to{opacity:.5;transform:scale(1)}50%{opacity:1;transform:scale(1.1)}}.pulse-heart-container{position:relative;width:80px;height:80px;display:flex;align-items:center;justify-content:center}.pulse-heart-ring{position:absolute;border-radius:50%;border:2px solid rgba(16,185,129,.3);animation:pulse-ring 2s ease-out infinite}.pulse-heart-ring.ring-1{width:100%;height:100%;animation-delay:0s}.pulse-heart-ring.ring-2{width:140%;height:140%;animation-delay:.4s;opacity:.6}.pulse-heart-ring.ring-3{width:180%;height:180%;animation-delay:.8s;opacity:.3}@keyframes pulse-ring{0%{transform:scale(.8);opacity:.8}to{transform:scale(1.3);opacity:0}}.pulse-heart-core{position:relative;width:56px;height:56px;background:linear-gradient(135deg,#10b981,#059669);border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 0 20px #10b98166,0 0 40px #10b98133,inset 0 2px 4px #fff3;animation:pulse-core 2s ease-in-out infinite;z-index:2}@keyframes pulse-core{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.heart-icon{font-size:28px;animation:heartbeat 1.5s ease-in-out infinite}@keyframes heartbeat{0%,to{transform:scale(1)}15%{transform:scale(1.15)}30%{transform:scale(1)}45%{transform:scale(1.08)}}.heart-glow{position:absolute;inset:-10px;background:radial-gradient(circle,rgba(16,185,129,.4) 0%,transparent 70%);border-radius:50%;animation:glow-pulse 2s ease-in-out infinite;z-index:-1}@keyframes glow-pulse{0%,to{opacity:.6;transform:scale(1)}50%{opacity:1;transform:scale(1.2)}}.alert-empty-text{display:flex;flex-direction:column;align-items:center;gap:8px;z-index:1}.alert-empty-title{font-size:15px;font-weight:700;color:#10b981;margin:0;text-shadow:0 0 20px rgba(16,185,129,.3);letter-spacing:.02em}.alert-empty-subtitle{font-size:12px;color:var(--text-muted);margin:0;font-family:JetBrains Mono,monospace}.alert-empty-metrics{display:flex;gap:8px;margin-top:4px;flex-wrap:wrap;justify-content:center}.metric-pill{display:flex;align-items:center;gap:6px;padding:4px 10px;background:#10b9811a;border:1px solid rgba(16,185,129,.2);border-radius:20px;font-size:10px;color:#10b981;font-weight:600;font-family:JetBrains Mono,monospace}.metric-dot{width:6px;height:6px;border-radius:50%;background:#10b981;box-shadow:0 0 6px #10b981;animation:dot-pulse 2s infinite}@keyframes dot-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(.9)}}.last-check{font-size:10px;color:var(--text-muted);margin-top:8px;font-family:JetBrains Mono,monospace;opacity:.8}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(.85)}}html,body,#root{height:100%;margin:0;padding:0}.orbit-login-root{height:100vh;min-height:100vh;background:#060c18;display:flex;align-items:center;justify-content:center;position:fixed;inset:0;overflow:hidden;font-family:Outfit,sans-serif}.orbit-bg-canvas{position:absolute;inset:0;width:100%;height:100%;opacity:.35;pointer-events:none}.orbit-glow-bg{position:absolute;inset:0;background:radial-gradient(ellipse 65% 65% at 50% 50%,rgba(0,180,255,.07) 0%,transparent 70%);pointer-events:none}.orbit-card{position:relative;z-index:2;width:380px;background:#081020d9;border:1px solid rgba(0,180,255,.2);border-radius:16px;padding:44px 40px;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);animation:cardEntrance .6s cubic-bezier(.22,1,.36,1) forwards}@keyframes cardEntrance{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.orbit-card-header{display:flex;flex-direction:column;align-items:center;margin-bottom:36px}.orbit-card-header svg{margin-bottom:14px}.orbit-brand-name{font-family:JetBrains Mono,monospace;font-size:17px;font-weight:500;color:#e8f4ff;letter-spacing:.1em}.orbit-brand-sub{font-size:10px;color:#00b4ff8c;letter-spacing:.22em;text-transform:uppercase;margin-top:5px}.orbit-field{margin-bottom:20px}.orbit-label{display:block;font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:#00b4ff8c;margin-bottom:8px}.orbit-input-wrap{position:relative}.orbit-input-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);width:15px;height:15px;color:#00b4ff73;pointer-events:none}.orbit-input{width:100%;box-sizing:border-box;background:#00b4ff0d;border:1px solid rgba(0,180,255,.15);border-radius:8px;padding:12px 14px 12px 38px;color:#c8e8ff;font-family:Outfit,sans-serif;font-size:14px;outline:none;transition:border-color .2s,background .2s}.orbit-input::placeholder{color:#00b4ff40}.orbit-input:focus{border-color:#00b4ff80;background:#00b4ff14}.orbit-error{margin-bottom:16px;padding:10px 14px;background:#ff3c3c14;border:1px solid rgba(255,60,60,.28);border-radius:8px;color:#ff8585;font-size:12px;text-align:center;animation:shake .35s ease}@keyframes shake{0%,to{transform:translate(0)}20%,60%{transform:translate(-5px)}40%,80%{transform:translate(5px)}}.orbit-btn{width:100%;padding:13px;background:#00b4ff1f;border:1px solid rgba(0,180,255,.35);border-radius:8px;color:#00d4ff;font-family:JetBrains Mono,monospace;font-size:12px;font-weight:500;letter-spacing:.12em;cursor:pointer;transition:background .2s,border-color .2s,color .2s,opacity .2s;margin-top:4px}.orbit-btn:hover:not(:disabled){background:#00b4ff38;border-color:#00b4ff99}.orbit-btn:active:not(:disabled){transform:scale(.99)}.orbit-btn.loading{opacity:.65;cursor:default}.orbit-btn.success{color:#0f9;border-color:#00ff9959;background:#00ff9914}.orbit-badges{display:flex;justify-content:center;gap:18px;margin-top:28px;padding-top:20px;border-top:1px solid rgba(0,180,255,.1)}.orbit-badge{display:flex;align-items:center;gap:5px;font-size:10px;letter-spacing:.06em;color:#00b4ff61}.orbit-badge svg{width:11px;height:11px;flex-shrink:0}@media(max-width:440px){.orbit-card{width:92%;padding:36px 24px}}:root{--bg-0: #06090f;--bg-1: #0b1120;--bg-2: #111a2e;--bg-3: #182240;--bg-4: #1f2d4d;--bg-elevated: #14203a;--text-0: #f2f5fc;--text-1: #c8d3e8;--text-2: #8296b8;--text-3: #4c6183;--text-inverse: #0b1120;--border-0: #1a2744;--border-1: #243352;--border-2: #2f4268;--border-focus: var(--accent-blue);--accent-blue: #4f8ff7;--accent-blue-dim: #2a5fbf;--accent-blue-glow: rgba(79,143,247,.3);--accent-blue-bg: rgba(79,143,247,.08);--accent-blue-border:rgba(79,143,247,.25);--accent-green: #2dd4a0;--accent-green-dim: #1a9b74;--accent-green-glow: rgba(45,212,160,.3);--accent-green-bg: rgba(45,212,160,.08);--accent-green-border:rgba(45,212,160,.25);--accent-red: #f06060;--accent-red-dim: #c04040;--accent-red-glow: rgba(240,96,96,.3);--accent-red-bg: rgba(240,96,96,.08);--accent-red-border: rgba(240,96,96,.25);--accent-amber: #f0a830;--accent-amber-dim: #c08520;--accent-amber-glow: rgba(240,168,48,.3);--accent-amber-bg: rgba(240,168,48,.08);--accent-amber-border:rgba(240,168,48,.25);--accent-purple: #9b7aff;--accent-purple-dim: #7050d0;--accent-purple-glow: rgba(155,122,255,.3);--accent-purple-bg: rgba(155,122,255,.08);--accent-purple-border:rgba(155,122,255,.25);--shadow-xs: 0 1px 2px rgba(0,0,0,.35);--shadow-sm: 0 2px 8px rgba(0,0,0,.4);--shadow-md: 0 8px 24px rgba(0,0,0,.45);--shadow-lg: 0 16px 48px rgba(0,0,0,.55);--shadow-xl: 0 24px 64px rgba(0,0,0,.65);--shadow-glow-b: 0 0 24px var(--accent-blue-glow);--shadow-glow-g: 0 0 24px var(--accent-green-glow);--shadow-glow-r: 0 0 24px var(--accent-red-glow);--shadow-glow-a: 0 0 24px var(--accent-amber-glow);--shadow-glow-p: 0 0 24px var(--accent-purple-glow);--shadow-inner: inset 0 1px 0 rgba(255,255,255,.03);--r-xs: 4px;--r-sm: 6px;--r-md: 10px;--r-lg: 14px;--r-xl: 20px;--r-2xl: 28px;--r-full: 9999px;--sp-0: 0;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--sp-8: 32px;--sp-10: 40px;--sp-12: 48px;--sp-16: 64px;--sp-20: 80px;--font-sans: "Inter", "Segoe UI", system-ui, -apple-system, sans-serif;--font-mono: "JetBrains Mono", "SF Mono", "Fira Code", monospace;--text-xs: .6875rem;--text-sm: .8125rem;--text-base: .875rem;--text-md: .9375rem;--text-lg: 1.0625rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 2rem;--leading-tight: 1.2;--leading-normal: 1.5;--leading-relaxed:1.65;--tracking-tight: -.02em;--tracking-normal: 0;--tracking-wide: .04em;--tracking-wider: .08em;--tracking-label: .1em;--sidebar-w: 156px;--sidebar-collapsed-w: 68px;--header-h: 60px;--footer-h: auto;--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-in-out: cubic-bezier(.4, 0, .2, 1);--duration-fast: .12s;--duration-normal: .2s;--duration-slow: .35s;--duration-slower: .5s;--z-base: 1;--z-sticky: 10;--z-overlay:100;--z-modal: 1000;--z-toast: 9999}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;-webkit-text-size-adjust:100%}body{background:var(--bg-0);font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal);color:var(--text-0);overflow:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:focus-visible{outline:2px solid var(--accent-blue);outline-offset:2px;border-radius:var(--r-xs)}:focus:not(:focus-visible){outline:none}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-1);border-radius:var(--r-full);transition:background var(--duration-fast) var(--ease-out)}::-webkit-scrollbar-thumb:hover{background:var(--accent-blue-dim)}::selection{background:var(--accent-blue-bg);color:var(--text-0)}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes fade-in-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in-down{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes scale-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes slide-down{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.8)}}@keyframes pulse-warning{0%,to{transform:scale(1);opacity:.75}50%{transform:scale(1.06);opacity:1}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes glow-breathe{0%,to{opacity:.5}50%{opacity:1}}.app{display:flex;height:100vh;width:100vw;overflow:hidden;position:relative}.app:before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 600px 400px at 8% 15%,rgba(79,143,247,.07) 0%,transparent 70%),radial-gradient(ellipse 500px 500px at 92% 85%,rgba(155,122,255,.06) 0%,transparent 70%),radial-gradient(ellipse 300px 300px at 50% 50%,rgba(45,212,160,.03) 0%,transparent 60%);pointer-events:none;z-index:0;animation:glow-breathe 8s ease-in-out infinite}.app>*{position:relative;z-index:var(--z-base)}.sidebar{width:var(--sidebar-w);min-width:var(--sidebar-w);background:var(--bg-1);border-right:1px solid var(--border-0);display:flex;flex-direction:column;flex-shrink:0;transition:width var(--duration-slow) var(--ease-out),min-width var(--duration-slow) var(--ease-out);z-index:var(--z-sticky);box-shadow:var(--shadow-inner)}.sidebar-toggle{position:absolute;bottom:76px;right:-13px;width:26px;height:26px;background:var(--bg-2);border:1px solid var(--border-1);border-radius:var(--r-full);color:var(--text-2);font-size:10px;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:20;transition:all var(--duration-fast) var(--ease-out);padding:0;box-shadow:var(--shadow-sm)}.sidebar-toggle:hover{background:var(--accent-blue);color:var(--text-inverse);border-color:var(--accent-blue);box-shadow:var(--shadow-glow-b);transform:scale(1.1)}.main-wrapper{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0;z-index:1}.top-header{height:var(--header-h);background:#0b1120bf;backdrop-filter:blur(16px) saturate(1.2);-webkit-backdrop-filter:blur(16px) saturate(1.2);border-bottom:1px solid var(--border-0);display:flex;align-items:center;justify-content:space-between;padding:0 var(--sp-6);flex-shrink:0;z-index:var(--z-sticky)}.top-header h2{font-size:var(--text-lg);font-weight:700;letter-spacing:var(--tracking-tight)}.header-actions{display:flex;align-items:center;gap:var(--sp-4)}.last-update{font-size:var(--text-xs);color:var(--text-3);font-family:var(--font-mono);background:var(--bg-2);padding:var(--sp-1) var(--sp-3);border-radius:var(--r-sm);border:1px solid var(--border-0);letter-spacing:var(--tracking-wide)}.btn-profile{background:var(--bg-3);color:var(--text-1);padding:var(--sp-2) var(--sp-4);border-radius:var(--r-md);border:1px solid var(--border-0);cursor:pointer;font-size:var(--text-sm);font-weight:600;font-family:inherit;transition:all var(--duration-fast) var(--ease-out)}.btn-profile:hover{background:var(--accent-blue);color:var(--text-inverse);border-color:var(--accent-blue);box-shadow:var(--shadow-glow-b)}.content-area{flex:1;overflow:auto;padding:var(--sp-5);animation:fade-in var(--duration-slower) var(--ease-out)}.placeholder-page{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:var(--text-3);gap:var(--sp-4)}.placeholder-page h3{font-size:var(--text-2xl);color:var(--text-2);font-weight:600}.table-container{background:var(--bg-2);border-radius:var(--r-lg);box-shadow:var(--shadow-md);border:1px solid var(--border-0);overflow:hidden;height:100%;display:flex;flex-direction:column;animation:fade-in-up var(--duration-slow) var(--ease-out)}.table-header{display:flex;justify-content:space-between;align-items:center;padding:var(--sp-4) var(--sp-5);background:var(--bg-elevated);border-bottom:1px solid var(--border-0);flex-wrap:wrap;gap:var(--sp-3)}.header-left{display:flex;align-items:center;gap:var(--sp-3);flex:1;min-width:0}.table-header h2{font-size:var(--text-lg);font-weight:700;letter-spacing:var(--tracking-tight);white-space:nowrap}.vm-summary{font-size:var(--text-xs);color:var(--text-3);font-family:var(--font-mono);background:var(--bg-3);padding:2px var(--sp-2);border-radius:var(--r-full);border:1px solid var(--border-0);font-weight:500}.search-bar-container{display:flex;align-items:center;gap:var(--sp-3);flex:1;max-width:380px;min-width:180px}.search-input-wrapper{position:relative;flex:1;display:flex;align-items:center}.search-icon{position:absolute;left:var(--sp-3);font-size:var(--text-sm);color:var(--text-3);pointer-events:none;transition:color var(--duration-fast) var(--ease-out)}.search-input{width:100%;padding:var(--sp-2) 30px var(--sp-2) 34px;border:1px solid var(--border-0);border-radius:var(--r-md);background:var(--bg-1);color:var(--text-0);font-size:var(--text-base);font-family:inherit;transition:border-color var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out),background var(--duration-fast) var(--ease-out)}.search-input:focus{outline:none;border-color:var(--accent-blue);box-shadow:0 0 0 3px var(--accent-blue-glow);background:var(--bg-2)}.search-input:focus+.search-icon,.search-input:focus~.search-icon{color:var(--accent-blue)}.search-input::placeholder{color:var(--text-3)}.clear-search-btn{position:absolute;right:var(--sp-2);background:var(--bg-3);border:none;color:var(--text-3);width:18px;height:18px;border-radius:var(--r-full);display:none;align-items:center;justify-content:center;cursor:pointer;font-size:9px;padding:0;transition:all var(--duration-fast) var(--ease-out)}.clear-search-btn.visible{display:flex}.clear-search-btn:hover{background:var(--accent-red);color:#fff;transform:scale(1.15)}.search-results-info{font-size:var(--text-xs);color:var(--text-3);font-family:var(--font-mono);white-space:nowrap}button{border:none;border-radius:var(--r-md);padding:var(--sp-2) var(--sp-4);font-weight:600;font-family:inherit;cursor:pointer;transition:background var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out),transform var(--duration-fast) var(--ease-out);font-size:var(--text-base);display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);line-height:var(--leading-tight);white-space:nowrap;position:relative;overflow:hidden}button:disabled{opacity:.35;cursor:not-allowed;filter:grayscale(50%);pointer-events:none}button:active:not(:disabled){transform:scale(.97)}.btn-primary{background:var(--accent-blue);color:var(--text-inverse);border:1px solid rgba(255,255,255,.08);box-shadow:var(--shadow-xs),0 2px 12px var(--accent-blue-glow)}.btn-primary:hover:not(:disabled){background:var(--accent-blue-dim);box-shadow:var(--shadow-sm),var(--shadow-glow-b);transform:translateY(-1px)}.btn-secondary{background:var(--bg-3);color:var(--text-1);border:1px solid var(--border-0)}.btn-secondary:hover:not(:disabled){background:var(--bg-4);border-color:var(--border-1);color:var(--text-0)}.btn-danger{background:var(--accent-red-bg);color:var(--accent-red);border:1px solid var(--accent-red-border)}.btn-danger:hover:not(:disabled){background:var(--accent-red);color:#fff;box-shadow:var(--shadow-glow-r);transform:translateY(-1px)}.btn-success{background:var(--accent-green-bg);color:var(--accent-green);border:1px solid var(--accent-green-border)}.btn-success:hover:not(:disabled){background:var(--accent-green);color:var(--text-inverse);box-shadow:var(--shadow-glow-g);transform:translateY(-1px)}.btn-warning{background:var(--accent-amber-bg);color:var(--accent-amber);border:1px solid var(--accent-amber-border)}.btn-warning:hover:not(:disabled){background:var(--accent-amber);color:var(--text-inverse);box-shadow:var(--shadow-glow-a);transform:translateY(-1px)}.btn-ghost{background:transparent;color:var(--text-2);border:1px solid transparent}.btn-ghost:hover:not(:disabled){background:var(--bg-3);color:var(--text-0)}.table-actions{display:flex;flex-wrap:wrap;gap:var(--sp-2);align-items:center}.refresh-button{background:var(--accent-blue);color:var(--text-inverse);border:1px solid transparent;box-shadow:var(--shadow-xs),0 2px 12px var(--accent-blue-glow)}.refresh-button:hover:not(:disabled){background:var(--accent-blue-dim);transform:translateY(-1px);box-shadow:var(--shadow-sm),var(--shadow-glow-b)}.refresh-button .spin-icon{transition:transform var(--duration-slow) var(--ease-out)}.refresh-button:hover:not(:disabled) .spin-icon{transform:rotate(180deg)}.label-text{font-weight:600;color:var(--text-2);font-size:var(--text-sm)}.btn-refresh-vm{background:var(--bg-3);color:var(--text-2);border:1px solid var(--border-0);padding:var(--sp-2) var(--sp-3)}.btn-refresh-vm:hover:not(:disabled){background:var(--bg-4);color:var(--text-0);border-color:var(--border-1)}.row-actions{display:flex;align-items:center;gap:var(--sp-1)}.btn-delete-row,.btn-checkpoints{background:transparent;color:var(--text-3);border:1px solid var(--border-0);padding:var(--sp-2) var(--sp-3);border-radius:var(--r-sm);font-size:14px}.btn-delete-row:hover:not(:disabled){background:var(--accent-red-bg);color:var(--accent-red);border-color:var(--accent-red-border);box-shadow:var(--shadow-glow-r);transform:translateY(-1px) scale(1.05)}.btn-checkpoints:hover:not(:disabled){background:var(--accent-amber-bg);color:var(--accent-amber);border-color:var(--accent-amber-border);box-shadow:var(--shadow-glow-a);transform:scale(1.08)}header{display:flex;align-items:center;gap:var(--sp-2)}.token-manager{display:flex;align-items:center;gap:var(--sp-2);background:var(--bg-2);padding:var(--sp-1) var(--sp-2);border-radius:var(--r-md);border:1px solid var(--border-0)}.token-label{color:var(--text-2);font-size:var(--text-base);font-weight:500;white-space:nowrap}.token-controls{display:flex;align-items:center;gap:var(--sp-1);background:var(--bg-1);border-radius:var(--r-sm);padding:var(--sp-1) var(--sp-2)}.token-value{color:var(--text-2);font-family:var(--font-mono);font-size:var(--text-base);letter-spacing:.08em;min-width:150px}.token-icon-btn{background:transparent;color:var(--accent-red);border:1px solid var(--accent-red-border);padding:var(--sp-1) var(--sp-2);border-radius:var(--r-sm);font-size:15px}.token-icon-btn:hover:not(:disabled){background:var(--accent-purple-bg);color:var(--accent-purple);border-color:var(--accent-purple-border);box-shadow:var(--shadow-glow-p);transform:translateY(-1px)}.token-change-mode{display:flex;align-items:center;gap:var(--sp-1);background:var(--bg-1);border-radius:var(--r-sm);padding:var(--sp-1) var(--sp-2)}.token-input{background:var(--bg-2);border:1px solid var(--border-0);border-radius:var(--r-xs);padding:var(--sp-2) var(--sp-2);color:var(--text-0);font-size:var(--text-sm);font-family:var(--font-mono);width:120px;transition:border-color var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out)}.token-input:focus{outline:none;border-color:var(--accent-blue);box-shadow:0 0 0 3px var(--accent-blue-glow)}.confirm-btn,.cancel-btn{width:28px;height:28px;border:none;border-radius:var(--r-xs);font-size:15px;padding:0}.confirm-btn{background:var(--accent-green);color:var(--text-inverse)}.confirm-btn:hover:not(:disabled){background:var(--accent-green-dim)}.cancel-btn{background:var(--accent-red);color:#fff}.cancel-btn:hover:not(:disabled){background:var(--accent-red-dim)}.control-panel{background:#14203aa6;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);padding:var(--sp-3) var(--sp-5);border-bottom:1px solid var(--border-0);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--sp-3);animation:fade-in-down var(--duration-normal) var(--ease-out)}.selected-count{font-weight:600;font-size:var(--text-base);color:var(--text-1)}.vm-selected-count{color:var(--accent-green);margin-left:var(--sp-2);font-family:var(--font-mono);font-weight:700}.actions-container{display:flex;flex-wrap:wrap;gap:var(--sp-2);align-items:center}.action-group{display:flex;align-items:center;gap:var(--sp-2);background:var(--bg-elevated);padding:var(--sp-1) var(--sp-2);border-radius:var(--r-md);border:1px solid var(--border-0)}.group-label{font-size:var(--text-xs);color:var(--text-3);font-weight:600;text-transform:uppercase;letter-spacing:var(--tracking-label)}.btn-action{padding:var(--sp-2) var(--sp-3);font-size:var(--text-sm);border-radius:var(--r-sm)}.btn-delete-bulk{background:var(--accent-red-bg);color:var(--accent-red);border:1px solid var(--accent-red-border)}.btn-delete-bulk:hover:not(:disabled){background:var(--accent-red);color:#fff;box-shadow:var(--shadow-glow-r);transform:translateY(-1px)}.table-wrapper{overflow:auto;flex:1}.machines-table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.machines-table th{background:var(--bg-1);padding:var(--sp-2) var(--sp-3);text-align:left;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--tracking-label);color:var(--text-3);font-weight:600;border-bottom:1px solid var(--border-0);white-space:nowrap;position:sticky;top:0;z-index:var(--z-sticky);transition:color var(--duration-fast) var(--ease-out)}.machines-table th:hover{color:var(--text-1)}.table-row-hover{border-bottom:1px solid var(--border-0);transition:background var(--duration-fast) var(--ease-out)}.table-row-hover:hover{background:var(--bg-3)}.minion-id,.ip-address{font-family:var(--font-mono);font-size:var(--text-sm);background:var(--bg-1);padding:2px var(--sp-2);border-radius:var(--r-sm);border:1px solid var(--border-0);color:var(--text-2);display:inline-block;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.loading-container,.error-container,.empty-state{text-align:center;padding:var(--sp-20) var(--sp-10);background:var(--bg-2);color:var(--text-3);animation:fade-in var(--duration-slow) var(--ease-out)}.spinner{width:40px;height:40px;border:3px solid var(--border-0);border-top-color:var(--accent-blue);border-radius:var(--r-full);animation:spin .8s linear infinite;margin:0 auto var(--sp-5)}.retry-button{margin-top:var(--sp-5)}.no-machines-warning{display:flex;justify-content:center;align-items:center;min-height:400px;padding:var(--sp-8);animation:fade-in-up var(--duration-slow) var(--ease-out)}.warning-card{background:var(--bg-elevated);box-shadow:var(--shadow-md);border:1px solid var(--border-0);border-left:4px solid var(--accent-amber);border-radius:var(--r-lg);padding:var(--sp-8);text-align:center;max-width:500px;transition:all var(--duration-slow) var(--ease-out)}.warning-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg);border-color:var(--accent-amber)}.warning-icon{font-size:4rem;display:block;margin-bottom:var(--sp-4);filter:drop-shadow(0 0 16px var(--accent-amber-glow));animation:pulse-warning 2.5s ease-in-out infinite}.warning-card h3{font-size:var(--text-2xl);font-weight:800;letter-spacing:var(--tracking-tight);background:linear-gradient(135deg,var(--accent-amber),#ffcc66);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:var(--sp-3)}.warning-card p{color:var(--text-1);line-height:var(--leading-relaxed);font-size:var(--text-base);margin-bottom:var(--sp-4)}.warning-hint{font-size:var(--text-sm);color:var(--text-3);font-style:italic;margin-top:var(--sp-2);padding-top:var(--sp-2);border-top:1px solid var(--border-0)}.pagination{display:flex;justify-content:space-between;align-items:center;padding:var(--sp-4) var(--sp-5);gap:var(--sp-4);flex-wrap:wrap;background:var(--bg-1);border-top:1px solid var(--border-0)}.pagination-info{font-size:var(--text-sm);color:var(--text-3)}.pagination-range{font-weight:700;color:var(--text-1);font-family:var(--font-mono)}.pagination-controls{display:flex;gap:3px;align-items:center}.pagination-controls button{padding:var(--sp-1) var(--sp-2);background:transparent;border:1px solid var(--border-0);border-radius:var(--r-sm);color:var(--text-1);font-size:var(--text-base);font-family:var(--font-mono);min-width:32px}.pagination-controls button:hover:not(:disabled){border-color:var(--accent-blue);color:var(--accent-blue);background:var(--accent-blue-bg)}.pagination-controls button.active{background:var(--accent-blue);border-color:var(--accent-blue);color:var(--text-inverse);font-weight:700;box-shadow:0 2px 8px var(--accent-blue-glow)}.pagination-per-page{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--text-sm)}.pagination-per-page label{color:var(--text-3);white-space:nowrap}.per-page-select{padding:var(--sp-1) var(--sp-6) var(--sp-1) var(--sp-2);border:1px solid var(--border-0);border-radius:var(--r-sm);background:var(--bg-2);color:var(--text-1);cursor:pointer;font-size:var(--text-sm);font-family:var(--font-mono);appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'%3E%3Cpath fill='%234c6183' d='M5 7L1 3h8z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--sp-2) center;transition:border-color var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out)}.per-page-select:hover{border-color:var(--border-2)}.per-page-select:focus{outline:none;border-color:var(--accent-blue);box-shadow:0 0 0 3px var(--accent-blue-glow)}.app-footer{padding:var(--sp-3) var(--sp-6);background:var(--bg-1);border-top:1px solid var(--border-0);text-align:center;font-size:var(--text-xs);color:var(--text-3);flex-shrink:0;font-family:var(--font-mono);letter-spacing:var(--tracking-wide)}.modal-overlay{position:fixed;inset:0;background:#06090fd1;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:var(--z-modal);padding:var(--sp-5);animation:fade-in var(--duration-normal) var(--ease-out)}.modal-content{background:var(--bg-elevated);border-radius:var(--r-xl);max-width:1200px;width:100%;max-height:90vh;overflow-y:auto;position:relative;border:1px solid var(--border-1);box-shadow:var(--shadow-xl),0 0 80px #00000080;animation:scale-in var(--duration-normal) var(--ease-out)}.modal-content.wide{max-width:1400px}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--border-0);position:sticky;top:0;background:var(--bg-elevated);z-index:var(--z-sticky);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.modal-header h2{font-size:var(--text-lg);font-weight:700;letter-spacing:var(--tracking-tight)}.btn-close{background:var(--bg-3);border:1px solid var(--border-0);color:var(--text-2);font-size:1.1rem;cursor:pointer;padding:var(--sp-2) var(--sp-3);border-radius:var(--r-sm);line-height:1}.btn-close:hover{background:var(--accent-red);color:#fff;border-color:var(--accent-red);box-shadow:var(--shadow-glow-r)}.resource-dashboard{padding:var(--sp-5);background:var(--bg-elevated);border-radius:var(--r-lg);margin-top:var(--sp-4);border:1px solid var(--border-0);animation:fade-in-up var(--duration-slow) var(--ease-out)}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--sp-3);margin-bottom:var(--sp-5)}.stat-card{background:var(--bg-2);padding:var(--sp-4);border-radius:var(--r-md);display:flex;align-items:center;gap:var(--sp-3);border:1px solid var(--border-0);transition:all var(--duration-fast) var(--ease-out)}.stat-card:hover{border-color:var(--border-1);transform:translateY(-2px);box-shadow:var(--shadow-sm)}.stat-card.success{border-color:var(--accent-green-border);background:var(--accent-green-bg)}.stat-card.warning{border-color:var(--accent-red-border);background:var(--accent-red-bg)}.stat-card.info{border-color:var(--accent-blue-border);background:var(--accent-blue-bg)}.stat-icon{font-size:1.8rem;flex-shrink:0}.stat-value{font-size:var(--text-2xl);font-weight:800;display:block;font-family:var(--font-mono);letter-spacing:var(--tracking-tight);line-height:1}.stat-label{font-size:var(--text-xs);color:var(--text-3);text-transform:uppercase;letter-spacing:var(--tracking-label);font-weight:600;margin-top:2px}.update-info{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--sp-4);padding:var(--sp-2) var(--sp-3);background:var(--bg-2);border-radius:var(--r-sm);border:1px solid var(--border-0);color:var(--text-3);font-size:var(--text-sm);font-family:var(--font-mono)}.chart-container{background:var(--bg-2);padding:var(--sp-4);border-radius:var(--r-md);margin-bottom:var(--sp-4);border:1px solid var(--border-0)}.chart-container h3,.chart-container h4{margin:0 0 var(--sp-4) 0;color:var(--text-0);font-size:var(--text-base);font-weight:600}.charts-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-4)}.resource-table-container{margin-top:var(--sp-6);overflow-x:auto}.resource-table{width:100%;border-collapse:collapse;color:var(--text-0);font-size:var(--text-sm)}.resource-table th,.resource-table td{padding:var(--sp-3) var(--sp-4);text-align:left;border-bottom:1px solid var(--border-0)}.resource-table th{background:var(--bg-1);font-weight:600;color:var(--text-3);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--tracking-label)}.resource-table tr:hover{background:var(--bg-3)}.resource-table tr.high-cpu{background:var(--accent-red-bg)}.status-badge{padding:2px var(--sp-2);border-radius:var(--r-full);font-size:var(--text-xs);font-weight:600;background:var(--bg-3);border:1px solid var(--border-0);color:var(--text-3);white-space:nowrap}.status-badge.success,.status-badge.running{background:var(--accent-green-bg);color:var(--accent-green);border-color:var(--accent-green-border)}.progress-bar{display:flex;align-items:center;gap:var(--sp-2);min-width:100px}.progress-fill{height:5px;border-radius:var(--r-full);transition:width var(--duration-slower) var(--ease-out);min-width:4px}.timestamp{font-size:var(--text-xs);color:var(--text-3);font-family:var(--font-mono)}.btn-refresh{background:var(--accent-blue-bg);color:var(--accent-blue);border:1px solid var(--accent-blue-border);padding:var(--sp-2) var(--sp-4);font-size:var(--text-sm)}.btn-refresh:hover:not(:disabled){background:var(--accent-blue);color:var(--text-inverse);box-shadow:var(--shadow-glow-b);transform:translateY(-1px)}.refresh-control{background:var(--bg-2);border:1px solid var(--border-0);border-radius:var(--r-md);margin:var(--sp-1) 0;overflow:hidden;position:relative}.refresh-header{display:flex;justify-content:space-between;align-items:center;padding:var(--sp-2) var(--sp-3);cursor:pointer;transition:background var(--duration-fast) var(--ease-out)}.refresh-header:hover{background:var(--bg-3)}.header-title{color:var(--text-1);font-size:var(--text-sm);font-weight:500}.header-time{color:var(--accent-green);font-size:var(--text-sm);font-weight:700;font-family:var(--font-mono);background:var(--bg-1);padding:2px var(--sp-2);border-radius:var(--r-xs)}.header-arrow{background:none;border:none;color:var(--text-3);cursor:pointer;padding:var(--sp-1);display:flex;align-items:center;justify-content:center}.arrow-icon{font-size:var(--text-xs);transition:transform var(--duration-normal) var(--ease-out)}.arrow-icon.open{transform:rotate(180deg)}.refresh-details{padding:var(--sp-3);border-top:1px solid var(--border-0);background:var(--bg-1);animation:slide-down var(--duration-normal) var(--ease-out)}.detail-row{margin-bottom:var(--sp-3)}.detail-row:last-child{margin-bottom:0}.auto-toggle{width:100%;display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border:none;border-radius:var(--r-xs);font-size:var(--text-sm);font-weight:600;cursor:pointer;background:var(--bg-2);color:var(--text-2);transition:all var(--duration-fast) var(--ease-out)}.auto-toggle.active{background:var(--accent-green);color:var(--text-inverse);box-shadow:var(--shadow-glow-g)}.auto-toggle:hover{filter:brightness(1.1)}.toggle-icon{font-size:14px}.toggle-text{flex:1;text-align:left}.detail-label{display:block;color:var(--text-2);font-size:var(--text-xs);margin-bottom:var(--sp-1);font-weight:500}.detail-select{width:100%;background:var(--bg-2);color:var(--text-0);border:1px solid var(--border-0);border-radius:var(--r-xs);padding:var(--sp-2) var(--sp-3);font-size:var(--text-sm);font-family:inherit;cursor:pointer;outline:none;transition:border-color var(--duration-fast) var(--ease-out)}.detail-select:hover:not(:disabled){border-color:var(--border-2)}.detail-select:disabled{opacity:.4;cursor:not-allowed}.detail-status{margin-top:var(--sp-2);padding-top:var(--sp-2);border-top:1px solid var(--border-0);font-size:var(--text-xs);font-weight:500}.status-auto{color:var(--accent-green);display:flex;align-items:center;gap:var(--sp-1)}.status-manual{color:var(--accent-amber);display:flex;align-items:center;gap:var(--sp-1)}.refresh-details--floating{position:absolute;top:calc(100% + 4px);right:0;z-index:var(--z-toast);min-width:240px;box-shadow:var(--shadow-lg),0 0 0 1px var(--border-1);border-radius:var(--r-md)}.separator{color:var(--text-3);font-weight:700;padding:0 var(--sp-1)}.form-input{background:var(--bg-1);border:1px solid var(--border-0);border-radius:var(--r-md);padding:var(--sp-2) var(--sp-3);color:var(--text-0);font-size:var(--text-base);font-family:inherit;outline:none;width:100%;transition:border-color var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out),background var(--duration-fast) var(--ease-out)}.form-input:focus{border-color:var(--accent-blue);box-shadow:0 0 0 3px var(--accent-blue-glow);background:var(--bg-2)}.form-input:disabled{opacity:.5;cursor:not-allowed}.form-input::placeholder{color:var(--text-3)}.checkbox-loader{width:16px;height:16px;border:2px solid var(--border-1);border-top:2px solid var(--accent-green);border-radius:var(--r-full);animation:spin .7s linear infinite}@media(max-width:1024px){:root{--sidebar-w: var(--sidebar-collapsed-w)}.sidebar-header h1,.sidebar-subtitle,.nav-label,.sidebar-footer{display:none}.sidebar-header{padding:var(--sp-4);justify-content:center;display:flex}.sidebar-nav{padding:var(--sp-3) var(--sp-2);align-items:center}.nav-item{padding:var(--sp-3);justify-content:center}.nav-icon{margin:0}.charts-row{grid-template-columns:1fr}}@media(max-width:768px){.app{flex-direction:column}.sidebar{width:100%;min-width:100%;height:auto;flex-direction:row;border-right:none;border-bottom:1px solid var(--border-0)}.sidebar-toggle{display:none}.sidebar-nav{flex-direction:row;padding:var(--sp-2);overflow-x:auto}.nav-item{white-space:nowrap}.table-header,.control-panel{flex-direction:column;align-items:flex-start}.search-bar-container{max-width:100%;width:100%}.pagination{flex-direction:column;align-items:flex-start;gap:var(--sp-3)}.pagination-info,.pagination-per-page{order:-1}.pagination-controls{width:100%;justify-content:center;flex-wrap:wrap}.warning-card{padding:var(--sp-6);max-width:90%}.warning-icon{font-size:3rem}.warning-card h3{font-size:var(--text-xl)}}@media(max-width:480px){.no-machines-warning{padding:var(--sp-4);min-height:300px}.warning-card{padding:var(--sp-5)}.warning-icon{font-size:2.5rem}.content-area,.table-header{padding:var(--sp-3)}.top-header{padding:0 var(--sp-3)}}.app>*{position:relative}.sidebar{--sidebar-w: 210px;width:var(--sidebar-w);min-width:var(--sidebar-w);background:var(--bg-1);border-right:1px solid var(--border-0);display:flex;flex-direction:column;flex-shrink:0;overflow:visible;z-index:100;transition:width var(--duration-slow) var(--ease-out),min-width var(--duration-slow) var(--ease-out);box-shadow:var(--shadow-inner);will-change:width,min-width}.sidebar.collapsed{width:var(--sidebar-collapsed-w);min-width:var(--sidebar-collapsed-w)}.sidebar.collapsed .nav-label,.sidebar.collapsed .sidebar-subtitle,.sidebar.collapsed .status-text,.sidebar.collapsed .version{display:none}.sidebar.collapsed .sidebar-header h1{font-size:var(--text-lg)}.sidebar-header{padding:var(--sp-6) var(--sp-5) var(--sp-5);border-bottom:1px solid var(--border-0)}.sidebar-header h1{font-size:var(--text-xl);font-weight:800;letter-spacing:var(--tracking-tight);background:linear-gradient(135deg,var(--accent-blue) 0%,var(--accent-purple) 60%,var(--accent-green) 100%);background-size:200% 200%;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;white-space:nowrap;animation:shimmer 6s ease-in-out infinite}.sidebar-subtitle{font-size:var(--text-xs);color:var(--text-3);margin-top:var(--sp-1);text-transform:uppercase;letter-spacing:var(--tracking-label);font-weight:500}.sidebar-nav{flex:1;padding:var(--sp-2) var(--sp-2);display:flex;flex-direction:column;gap:2px;overflow-y:auto;overflow-x:hidden}.nav-item{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-radius:var(--r-md);background:transparent;color:var(--text-2);font-size:var(--text-base);font-weight:500;cursor:pointer;transition:background var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out);border:1px solid transparent;width:100%;text-align:left;position:relative;overflow:hidden;text-decoration:none}.nav-item:hover{background:var(--bg-3);color:var(--text-0)}.nav-item.active{background:linear-gradient(135deg,var(--accent-blue-bg),var(--accent-purple-bg));color:var(--text-0);border-color:var(--accent-blue-border);box-shadow:var(--shadow-glow-b),var(--shadow-inner)}.nav-item.active .nav-icon{color:var(--accent-blue);filter:drop-shadow(0 0 6px var(--accent-blue-glow))}.nav-icon{font-size:1.15rem;width:22px;text-align:center;flex-shrink:0;position:relative;z-index:1;transition:color var(--duration-fast) var(--ease-out)}.nav-label{flex:1;position:relative;z-index:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-footer{padding:var(--sp-4) var(--sp-4);border-top:1px solid var(--border-0);display:flex;flex-direction:column;gap:var(--sp-2)}.status-indicator{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--text-sm);color:var(--text-3)}.status-dot{width:7px;height:7px;border-radius:var(--r-full);background:var(--accent-green);box-shadow:0 0 8px var(--accent-green-glow);animation:pulse-dot 2.5s ease-in-out infinite;flex-shrink:0}.status-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.version{font-size:var(--text-xs);color:var(--text-3);font-family:var(--font-mono);opacity:.5}.sidebar-toggle{position:absolute;bottom:276px;right:-15px;width:30px;height:30px;z-index:200;background:var(--bg-2);border:1px solid var(--border-1);border-radius:var(--r-full);color:var(--text-2);font-size:11px;cursor:pointer;padding:0;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-sm);transition:background var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out);backface-visibility:hidden;-webkit-backface-visibility:hidden;contain:layout style paint}.sidebar-toggle:hover{background:var(--accent-blue);color:var(--text-inverse);border-color:var(--accent-blue);box-shadow:var(--shadow-glow-b),var(--shadow-md)}.sidebar-toggle:active{background:var(--accent-blue-dim);box-shadow:var(--shadow-glow-b),var(--shadow-xs)}.sidebar-toggle:before{content:"";position:absolute;inset:-8px;border-radius:var(--r-full)}.sidebar-toggle .toggle-arrow{display:flex;align-items:center;justify-content:center;transition:transform var(--duration-slow) var(--ease-out);pointer-events:none}.sidebar.collapsed .sidebar-toggle .toggle-arrow{transform:rotate(180deg)}@media(max-width:1024px){:root{--sidebar-w: var(--sidebar-collapsed-w)}.sidebar-header h1,.sidebar-subtitle,.nav-label,.sidebar-footer{display:none}.sidebar-header{padding:var(--sp-4);justify-content:center;display:flex}.sidebar-nav{padding:var(--sp-3) var(--sp-2);align-items:center}.nav-item{padding:var(--sp-3);justify-content:center}.nav-icon{margin:0}.sidebar-toggle{display:none}}@media(max-width:768px){.sidebar{width:100%;min-width:100%;height:auto;flex-direction:row;border-right:none;border-bottom:1px solid var(--border-0);overflow:hidden;z-index:var(--z-sticky)}.sidebar-toggle{display:none}.sidebar-nav{flex-direction:row;padding:var(--sp-2);overflow-x:auto}.nav-item{white-space:nowrap}}
