:root{--bg: #0a0c10;--bg-elevated: #12151b;--bg-elevated-2: #171b23;--bg-sidebar: #0d0f14;--bg-input: #0a0c10;--border: #232733;--border-strong: #2f3542;--text-primary: #eceef1;--text-secondary: #9aa1ac;--text-muted: #676d79;--accent: #3b82f6;--accent-hover: #5b93f5;--accent-soft: rgba(59, 130, 246, .14);--accent-text: #7fabf7;--danger: #ef4444;--danger-hover: #f45f5f;--danger-soft: rgba(239, 68, 68, .14);--success: #22c55e;--success-soft: rgba(34, 197, 94, .14);--warning: #f59e0b;--warning-soft: rgba(245, 158, 11, .14);--radius-sm: 6px;--radius: 10px;--radius-lg: 14px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .35);--shadow-md: 0 8px 24px rgba(0, 0, 0, .35);--font-sans: "Fira Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono: "Fira Code", "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;--ease: cubic-bezier(.16, 1, .3, 1)}*{box-sizing:border-box}body{margin:0;font-family:var(--font-sans);background:var(--bg);color:var(--text-primary);font-size:14px;line-height:1.6;-webkit-font-smoothing:antialiased}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}a{color:inherit}h2{font-size:20px;font-weight:600;margin:0 0 16px;letter-spacing:-.01em}h3{font-size:15px;font-weight:600;margin:0 0 12px;color:var(--text-primary)}.layout{display:flex;min-height:100vh}.sidebar{width:232px;flex-shrink:0;background:var(--bg-sidebar);padding:20px 14px;border-right:1px solid var(--border);display:flex;flex-direction:column}.sidebar-logo{display:block;width:100%;height:auto;margin:4px 0 28px}.login-logo{display:block;width:220px;height:auto;margin:0 auto 20px}.sidebar nav{display:flex;flex-direction:column;gap:2px}.sidebar nav a,.sidebar nav .navlink{display:flex;align-items:center;padding:9px 12px;border-radius:var(--radius-sm);text-decoration:none;color:var(--text-secondary);font-size:13.5px;font-weight:500;transition:background-color .15s var(--ease),color .15s var(--ease);cursor:pointer}.sidebar nav a:hover{background:var(--bg-elevated);color:var(--text-primary)}.sidebar nav a:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.sidebar nav a.active{background:var(--accent-soft);color:var(--accent-text)}.content{flex:1;min-width:0;padding:28px 32px;max-width:1180px}.sidebar-account{margin-top:auto;padding-top:16px;border-top:1px solid var(--border)}.sidebar-version{margin-top:16px;font-size:11px;color:var(--text-muted);letter-spacing:.3px}.card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px;margin-bottom:18px;overflow-x:auto;box-shadow:var(--shadow-sm)}label{font-size:13px;color:var(--text-secondary);font-weight:500}input,select,textarea{background:var(--bg-input);border:1px solid var(--border-strong);color:var(--text-primary);border-radius:var(--radius-sm);padding:9px 12px;font-size:13.5px;font-family:inherit;transition:border-color .15s var(--ease),box-shadow .15s var(--ease)}input::placeholder,textarea::placeholder{color:var(--text-muted)}input:hover,select:hover,textarea:hover{border-color:#3a4152}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}select{cursor:pointer}button{display:inline-flex;align-items:center;justify-content:center;gap:6px;background:var(--accent);border:1px solid var(--accent);color:#fff;border-radius:var(--radius-sm);padding:9px 16px;font-size:13.5px;font-weight:500;font-family:inherit;cursor:pointer;transition:background-color .15s var(--ease),border-color .15s var(--ease),opacity .15s var(--ease),transform .1s var(--ease)}button:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}button:active:not(:disabled){transform:scale(.98)}button:focus-visible{outline:none;box-shadow:0 0 0 3px var(--accent-soft)}button:disabled{opacity:.5;cursor:not-allowed}button.secondary{background:transparent;color:var(--text-primary);border-color:var(--border-strong)}button.secondary:hover:not(:disabled){background:var(--bg-elevated-2);border-color:var(--border-strong)}button.danger{background:var(--danger);border-color:var(--danger)}button.danger:hover:not(:disabled){background:var(--danger-hover);border-color:var(--danger-hover)}form.inline{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.error{color:#ff9b9b;background:var(--danger-soft);border:1px solid rgba(239,68,68,.35);border-radius:var(--radius-sm);padding:8px 12px;font-size:13px;margin-top:10px}.login-wrap{display:flex;align-items:center;justify-content:center;min-height:100vh}table{width:100%;border-collapse:collapse;table-layout:auto}thead th{text-align:left;padding:8px 10px;font-size:11.5px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);border-bottom:1px solid var(--border-strong)}tbody td{text-align:left;padding:11px 10px;border-bottom:1px solid var(--border);font-size:13.5px}tbody tr{transition:background-color .15s var(--ease)}tbody tr:hover{background:var(--bg-elevated-2)}tbody tr:last-child td{border-bottom:none}td.truncate{max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.breadcrumb{display:flex;align-items:center;flex-wrap:wrap;gap:2px;font-size:13px}.crumb{display:inline-flex;align-items:center;gap:5px;background:transparent;border:none;color:var(--accent-text);padding:4px 6px;border-radius:var(--radius-sm);cursor:pointer;font-size:13px;transition:background-color .15s var(--ease)}.crumb:hover{background:var(--accent-soft)}.crumb-sep{color:var(--text-muted)}.link-btn{background:transparent;border:none;color:var(--text-primary);padding:0;cursor:pointer;font-size:13.5px;text-align:left;transition:color .15s var(--ease)}.link-btn:hover{color:var(--accent-text)}.icon-link{background:transparent;border:none;color:var(--text-secondary);cursor:pointer;font-size:15px;width:30px;height:30px;border-radius:var(--radius-sm);display:inline-flex;align-items:center;justify-content:center;text-decoration:none;transition:background-color .15s var(--ease),color .15s var(--ease)}.icon-link:hover{color:var(--text-primary);background:var(--bg-elevated-2)}.icon-link.danger-text:hover{color:#ff9b9b;background:var(--danger-soft)}.badge{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:999px;font-size:12px;font-weight:500}.badge-success{background:var(--success-soft);color:#6ee7a0}.badge-warning{background:var(--warning-soft);color:#fbbf6c}.badge-danger{background:var(--danger-soft);color:#ff9b9b}.badge-neutral{background:var(--bg-elevated-2);color:var(--text-secondary);border:1px solid var(--border)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#050609b8;display:flex;align-items:center;justify-content:center;z-index:50}.modal{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);width:min(900px,92vw);height:min(640px,86vh);display:flex;flex-direction:column;padding:20px;box-shadow:var(--shadow-md)}.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;gap:12px}.modal-header strong{font-size:13px;color:var(--accent-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.editor{flex:1;width:100%;resize:none;background:var(--bg-input);border:1px solid var(--border-strong);border-radius:var(--radius-sm);color:var(--text-primary);font-family:var(--font-mono);font-size:13px;padding:12px;line-height:1.55}.editor:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.upload-modal{height:auto;max-height:70vh}.upload-list{overflow-y:auto;flex:1}.upload-item{margin-bottom:14px}.upload-item-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:6px;font-size:13px}.upload-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.upload-status{display:inline-flex;align-items:center;gap:4px;color:var(--text-muted);flex-shrink:0}.upload-status.error{color:#ff9b9b}.progress-track{height:6px;background:var(--bg);border-radius:999px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,var(--accent),var(--accent-hover));border-radius:999px;transition:width .15s var(--ease)}.progress-fill.error{background:var(--danger)}.dropzone{position:relative}.dropzone-active{border-color:var(--accent)}.dropzone-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:10;display:flex;align-items:center;justify-content:center;background:#0a0c10eb;border:2px dashed var(--accent);border-radius:var(--radius-lg);font-size:15px;color:var(--accent-text);pointer-events:none}.dashboard-loading{color:var(--text-secondary);font-size:14px}.dashboard-head{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;margin-bottom:18px}.dashboard-head h2{margin:0}.dashboard-host{color:var(--text-muted);font-size:13px}.dashboard-refresh{margin-left:auto}.gauge-section{margin-top:8px}.gauge-section-title{font-size:11.5px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin:22px 0 12px;padding-bottom:8px;border-bottom:1px solid var(--border)}.gauge-grid{display:flex;flex-wrap:wrap;gap:16px}.gauge{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px 12px 18px;display:flex;flex-direction:column;align-items:center;min-width:170px;box-shadow:var(--shadow-sm);transition:border-color .15s var(--ease)}.gauge:hover{border-color:var(--border-strong)}.gauge-svg{display:block}.gauge-label{margin-top:8px;font-size:13px;color:var(--text-secondary);text-align:center}.gauge-readout{margin-top:2px;font-size:24px;font-weight:600;letter-spacing:-.01em;color:var(--text-primary)}.gauge-sub{margin-top:2px;font-size:11px;color:var(--text-muted);text-align:center}.stat-tile-row{display:flex;flex-wrap:wrap;gap:16px}.stat-tile{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px 18px;min-width:170px;flex:1 1 170px;box-shadow:var(--shadow-sm);transition:border-color .15s var(--ease)}.stat-tile:hover{border-color:var(--border-strong)}.stat-tile-label{font-size:13px;color:var(--text-secondary)}.stat-tile-value{display:flex;align-items:center;gap:7px;margin-top:6px;font-size:26px;font-weight:600;letter-spacing:-.01em;color:var(--text-primary)}.stat-tile-icon{display:inline-flex;flex-shrink:0}.stat-tile-sub{margin-top:4px;font-size:11px;color:var(--text-muted)}.ssl-warn{display:flex;align-items:center;gap:8px;margin-top:12px;border-color:#ef444459;background:var(--danger-soft);color:#ff9b9b;font-size:13px}.ssl-warn svg{flex-shrink:0}@media (max-width: 860px){.layout{flex-direction:column}.sidebar{width:100%;flex-direction:row;align-items:center;padding:12px 16px;overflow-x:auto}.sidebar-logo{display:none}.sidebar nav{flex-direction:row;gap:4px}.sidebar nav a{white-space:nowrap}.sidebar-account,.sidebar-version{display:none}.content{padding:18px}}
