:root{color-scheme:light;--bg: #f4f6fb;--surface: #ffffff;--surface-2: #f8f9fc;--surface-3: #fafbff;--row-hover: #fafbff;--border: #e5e8f0;--border-2: #eef0f6;--border-3: #f0f2f8;--border-input: #d0d4e0;--border-cell: #c0c8e0;--text: #1a1a2e;--text-1: #1a1a2e;--text-2: #2a2a3e;--text-3: #555555;--text-4: #777777;--text-5: #888888;--text-6: #999999;--text-7: #aaaaaa;--text-8: #cccccc;--accent: #3a6bc9;--accent-h: #2f5db0;--accent-bg: #eef1fb;--accent-bg-h: #e0e8ff;--accent-nav-h: #f0f2f8;--accent-dark: #1a3a6e;--accent-dark-h: #22508a;--info-bg: #f5f8ff;--info-border: #dde6f7;--info-label: #6b8dd6;--success: #1a8a50;--success-bg: #e6f9f0;--success-border: #a8ddb8;--success-bg-2: #dcfce7;--success-dark: #166534;--danger: #c0392b;--danger-h: #a93226;--danger-bg: #fde8e8;--danger-border: #f0b8b8;--danger-bg-2: #fee2e2;--danger-dark: #991b1b;--warning: #a06000;--warning-bg: #fff8e6;--warning-border: #f0d080;--badge-free-bg: #eef2ff;--badge-free-fg: #3a6bc9;--badge-amber-bg: #fef9e7;--badge-amber-fg: #a06000;--shadow-sm: rgba(0, 0, 0, .04);--shadow-md: rgba(0, 0, 0, .06);--shadow-lg: rgba(0, 0, 0, .18);--modal-bg: rgba(10, 12, 20, .55)}[data-theme=dark]{color-scheme:dark;--bg: #0d1117;--surface: #161b27;--surface-2: #1c2333;--surface-3: #111827;--row-hover: #1c2540;--border: #2a3448;--border-2: #222c42;--border-3: #1c2438;--border-input: #2a3550;--border-cell: #263050;--text: #dde4f5;--text-1: #dde4f5;--text-2: #c0cce8;--text-3: #8fa0c0;--text-4: #6a7a9e;--text-5: #546086;--text-6: #404e70;--text-7: #505e80;--text-8: #404e6c;--accent: #4d7ed4;--accent-h: #5a8de0;--accent-bg: #152040;--accent-bg-h: #1c2a50;--accent-nav-h: #18243c;--accent-dark: #3060b0;--accent-dark-h: #3a70c0;--info-bg: #111e38;--info-border: #1e3060;--info-label: #5a80d0;--success: #2ab868;--success-bg: #091c12;--success-border: #1a4828;--success-bg-2: #0d2518;--success-dark: #1a7040;--danger: #e05545;--danger-h: #c84030;--danger-bg: #240c0c;--danger-border: #5a1a1a;--danger-bg-2: #2a1010;--danger-dark: #c03030;--warning: #d09020;--warning-bg: #1e1206;--warning-border: #604018;--badge-free-bg: #152040;--badge-free-fg: #4d7ed4;--badge-amber-bg: #1e1206;--badge-amber-fg: #d09020;--shadow-sm: rgba(0, 0, 0, .2);--shadow-md: rgba(0, 0, 0, .3);--shadow-lg: rgba(0, 0, 0, .5);--modal-bg: rgba(0, 0, 0, .72)}.icon-moon{display:flex}.icon-sun,[data-theme=dark] .icon-moon{display:none}[data-theme=dark] .icon-sun{display:flex}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}[hidden]{display:none!important}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Arial,sans-serif;font-size:14px;color:var(--text);background:var(--bg);min-height:100vh}body.login-body{background:var(--surface-2)}.login-wrapper{display:flex;align-items:center;justify-content:center;min-height:100vh}.login-form{background:var(--surface);border:1px solid var(--border-input);padding:32px 28px;width:100%;max-width:320px}.login-form .field{margin-bottom:14px}.login-form input[type=text],.login-form input[type=password]{width:100%;padding:9px 10px;border:1px solid var(--border-input);background:var(--surface-3);font-size:14px;color:var(--text);outline:none}.login-form input[type=text]:focus,.login-form input[type=password]:focus{border-color:var(--text-5);background:var(--surface)}.login-form button{width:100%;padding:9px;background-color:var(--accent);color:#fff;border:none;font-size:14px;cursor:pointer;margin-top:4px}.login-form button:hover{background-color:var(--accent-h)}.error-msg{background:var(--danger-bg);border:1px solid var(--danger-border);color:var(--danger);padding:8px 10px;font-size:13px;margin-bottom:14px}.navbar{position:sticky;top:0;z-index:100;display:flex;align-items:center;justify-content:space-between;height:56px;padding:0 28px;background:var(--surface);border-bottom:1px solid var(--border);box-shadow:0 1px 4px var(--shadow-md)}.navbar-left{display:flex;align-items:center;gap:32px}.brand{font-size:15px;font-weight:700;color:var(--text);letter-spacing:-.01em}.nav-links{display:flex;align-items:center;gap:4px}.nav-link{position:relative;display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:6px;font-size:14px;color:var(--text-3);text-decoration:none;transition:background .15s,color .15s}.nav-link:hover{background:var(--accent-nav-h);color:var(--text)}.nav-link.active{background:var(--accent-bg);color:var(--accent);font-weight:500}.nav-unread-badge,.mob-menu-unread-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--danger);color:#fff;font-size:10.5px;font-weight:800;line-height:1;box-shadow:0 0 0 2px var(--surface)}.mob-menu-unread-badge{position:absolute;top:-5px;right:-5px}.navbar-right{display:flex;align-items:center;gap:10px}.nav-admin-info{display:flex;flex-direction:column;align-items:flex-end;line-height:1.2}.nav-username{font-size:13.5px;font-weight:600;color:var(--text)}.nav-role{font-size:11px;color:var(--text-6);text-transform:uppercase;letter-spacing:.04em}.nav-icon-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:none;border:1px solid var(--border);border-radius:6px;color:var(--text-5);cursor:pointer;transition:background .15s,color .15s,border-color .15s}.nav-icon-btn:hover{background:var(--accent-bg);border-color:var(--info-border);color:var(--accent)}.nav-icon-btn:disabled{opacity:.5;cursor:not-allowed}form .nav-icon-btn:hover{background:var(--danger-bg);border-color:var(--danger-border);color:var(--danger)}.node-selector{position:relative}.node-sel-btn{display:inline-flex;align-items:center;gap:5px;height:28px;padding:0 9px;background:none;border:1px solid var(--border);border-radius:6px;color:var(--text-4);font-size:11.5px;font-weight:500;cursor:pointer;white-space:nowrap;transition:background .15s,border-color .15s,color .15s}.node-sel-btn:hover{background:var(--accent-bg);border-color:var(--info-border);color:var(--accent)}.node-sel-dot{width:6px;height:6px;border-radius:50%;background:var(--success);flex-shrink:0}.node-sel-chevron{opacity:.45;flex-shrink:0}.node-sel-dropdown{position:absolute;top:calc(100% + 5px);right:0;min-width:150px;background:var(--surface);border:1px solid var(--border);border-radius:8px;box-shadow:0 4px 20px var(--shadow-lg);padding:4px;z-index:9999}.node-sel-dropdown-up{top:auto;bottom:calc(100% + 5px)}.node-sel-item{display:flex;align-items:center;gap:6px;width:100%;padding:6px 10px;background:none;border:none;border-radius:5px;font-size:12px;color:var(--text-3);cursor:pointer;text-align:left;transition:background .12s,color .12s}.node-sel-item:hover{background:var(--accent-bg);color:var(--accent)}.node-sel-item.active{color:var(--accent);font-weight:600}.mob-node-selector{flex-shrink:0}.mob-node-sel-btn{height:30px;font-size:12px}@keyframes spin{to{transform:rotate(360deg)}}.spinning svg{animation:spin .7s linear infinite}.page-content{padding:32px 36px}.page-header{display:flex;align-items:baseline;gap:12px;margin-bottom:20px}.page-header h1{font-size:20px;font-weight:700;color:var(--text);letter-spacing:-.02em}.page-count{font-size:13px;color:var(--text-6)}.table-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;overflow:hidden;box-shadow:0 1px 4px var(--shadow-sm)}.data-table{width:100%;border-collapse:collapse;font-size:13.5px;table-layout:fixed}.data-table th:nth-child(1){width:160px}.data-table th:nth-child(2){width:200px}.data-table th:nth-child(3){width:100px}.data-table th:nth-child(4){width:90px}.data-table th:nth-child(5){width:170px}.data-table th:nth-child(6){width:140px}.data-table th:nth-child(7){width:130px}.data-table thead tr{background:var(--surface-2);border-bottom:1px solid var(--border)}.data-table th{padding:11px 16px;text-align:left;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-5);white-space:nowrap}.data-table td{padding:12px 16px;border-bottom:1px solid var(--border-3);color:var(--text-2);vertical-align:middle}.data-table tbody tr:last-child td{border-bottom:none}.data-table tbody tr.server-row:hover td,.data-table tbody tr[data-id]:not(.server-row):hover td{background:var(--row-hover)}.row-banned td{opacity:.6}.td-mono{font-family:SF Mono,Fira Code,monospace;font-size:12.5px;color:var(--text-4)}.td-date{white-space:nowrap;color:var(--text-4);font-size:13px}.td-username{font-weight:500}.user-device-id{display:block;font-size:11px;font-family:SF Mono,Fira Code,monospace;color:var(--text-6);margin-top:2px;font-weight:400}.table-empty{text-align:center;color:var(--text-7);padding:48px 16px}.status-badge{display:inline-block;font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;padding:2px 8px;border-radius:20px}.status-active{background:var(--success-bg);color:var(--success)}.status-banned{background:var(--danger-bg);color:var(--danger)}.status-closed{background:var(--surface-2);color:var(--text-4);border:1px solid var(--border-2)}.status-free{background:var(--badge-free-bg);color:var(--badge-free-fg)}.status-premium{background:var(--badge-amber-bg);color:var(--badge-amber-fg)}.status-free-premium{background:#2ea04329;color:#6ee7b7}.tier-mgmt-hint{font-size:11px;color:var(--text-4, #94a3b8);margin-right:8px}.edit-cell,.note-cell,.ban-cell{display:flex;align-items:center;gap:5px;min-height:24px}.cell-display{flex:1}.cell-icon-btn{display:flex;align-items:center;justify-content:center;width:22px;height:22px;padding:0;border-radius:5px;border:1px solid var(--border);background:none;cursor:pointer;flex-shrink:0;transition:background .12s,border-color .12s,color .12s,opacity .1s;opacity:0;pointer-events:none}.edit-cell:hover .edit-trigger,.note-cell:hover .edit-trigger,.note-cell:hover:not(.empty-note) .clear-trigger{opacity:1;pointer-events:auto;color:var(--text-7)}.edit-trigger:hover,.clear-trigger:hover{background:var(--accent-nav-h);border-color:var(--border);color:var(--text-2)!important}.save-btn,.confirm-ban-btn,.confirm-clear-btn{color:var(--success);border-color:var(--success-border)}.save-btn:hover,.confirm-ban-btn:hover,.confirm-clear-btn:hover{background:var(--success-bg);border-color:var(--success);color:var(--success-dark)}.cancel-btn,.cancel-ban-btn,.cancel-clear-btn{color:var(--danger);border-color:var(--danger-border)}.cancel-btn:hover,.cancel-ban-btn:hover,.cancel-clear-btn:hover{background:var(--danger-bg);border-color:var(--danger);color:var(--danger-h)}.edit-cell .cell-input{display:none;flex:1}.edit-cell .save-btn,.edit-cell .cancel-btn{opacity:0;pointer-events:none}.edit-cell.is-editing .cell-display,.edit-cell.is-editing .edit-trigger{display:none}.edit-cell.is-editing .cell-input{display:flex}.edit-cell.is-editing .save-btn,.edit-cell.is-editing .cancel-btn{opacity:1;pointer-events:auto}.edit-cell .locked-prefix-wrap{display:none}.edit-cell.is-editing .locked-prefix-wrap{display:inline-flex}.note-cell .cell-input{display:none;flex:1}.note-cell .save-btn,.note-cell .cancel-btn{opacity:0;pointer-events:none}.note-cell .clear-confirm,.note-cell.is-editing .cell-display,.note-cell.is-editing .edit-trigger,.note-cell.is-editing .clear-trigger{display:none}.note-cell.is-editing .cell-input{display:flex}.note-cell.is-editing .save-btn,.note-cell.is-editing .cancel-btn{opacity:1;pointer-events:auto}.note-cell.is-confirming .cell-display,.note-cell.is-confirming .edit-trigger,.note-cell.is-confirming .clear-trigger{display:none}.note-cell.is-confirming .clear-confirm{display:flex;align-items:center;gap:4px}.note-cell.is-confirming .clear-confirm .cell-icon-btn{opacity:1;pointer-events:auto}.ban-cell .ban-confirm,.ban-cell.is-confirming .ban-toggle{display:none}.ban-cell.is-confirming .ban-confirm{display:flex;align-items:center;gap:5px}.ban-cell.is-confirming .ban-confirm .cell-icon-btn{opacity:1;pointer-events:auto}.ban-toggle{background:none;border:none;padding:0;cursor:pointer;border-radius:20px}.ban-toggle:hover .status-badge{filter:brightness(.93)}.confirm-label{font-size:12px;color:var(--text-5);white-space:nowrap}.cell-input{min-width:0;padding:3px 7px;border:1px solid var(--border-cell);border-radius:5px;font-size:13.5px;font-family:inherit;color:var(--text);background:var(--surface);outline:none}.cell-input:focus{border-color:var(--accent);box-shadow:0 0 0 2px #3a6bc91f}.td-note{max-width:240px}.note-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text-3);font-size:13px}.note-empty{color:var(--text-8)}#servers-table th:nth-child(1){width:28px}#servers-table th:nth-child(2){width:240px}#servers-table th:nth-child(3){width:140px}#servers-table th:nth-child(4){width:90px}#servers-table th:nth-child(5){width:120px}#servers-table th:nth-child(6){width:130px}#servers-table th:nth-child(7){width:160px}#servers-table th:nth-child(8){width:52px}.th-drag,.td-drag{display:none}#servers-table.can-reorder .th-drag,#servers-table.can-reorder .td-drag{display:table-cell;padding:0 4px}.drag-handle{display:flex;align-items:center;justify-content:center;width:24px;height:28px;color:var(--text-muted);cursor:grab;border-radius:4px;opacity:.35;transition:opacity .15s,color .15s;user-select:none;touch-action:none}.drag-handle:hover{opacity:1;color:var(--text-secondary)}.drag-handle:active{cursor:grabbing}.server-row.dragging td{opacity:0;pointer-events:none}.drag-ghost{position:fixed;z-index:9999;pointer-events:none;padding:6px 14px;border-radius:8px;background:var(--surface-2, #1e1e2e);border:1px solid var(--border, #333);box-shadow:0 8px 28px #00000059;font-size:13.5px;font-weight:500;color:var(--text-1, #e2e2e2);white-space:nowrap;max-width:280px;overflow:hidden;text-overflow:ellipsis;transform:rotate(1.5deg)}.latency-badge{display:inline-block;padding:2px 8px;border-radius:10px;font-size:11px;font-weight:600;letter-spacing:.01em}.latency-good{background:var(--success-bg-2);color:var(--success-dark)}.latency-down{background:var(--danger-bg-2);color:var(--danger-dark)}.latency-loading{color:var(--info-border);font-size:12px}.td-bold{font-weight:500}.td-pubkey{font-size:12px;color:var(--text-4);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.status-setup{background:var(--badge-amber-bg);color:var(--badge-amber-fg);animation:pulse-amber 1.6s ease-in-out infinite}@keyframes pulse-amber{0%,to{opacity:1}50%{opacity:.55}}.log-row td{padding:0;background:#1a1a2e}.setup-log{margin:0;padding:14px 20px;font-family:SF Mono,Fira Code,monospace;font-size:12px;line-height:1.6;color:#c8d0e0;background:#0a0f1a;white-space:pre-wrap;word-break:break-all;max-height:280px;overflow-y:auto}.td-actions{display:flex;align-items:center;gap:6px;padding-top:10px!important;padding-bottom:10px!important}.action-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:6px;border:1px solid var(--border);background:none;cursor:pointer;color:var(--text-5);transition:background .12s,border-color .12s,color .12s;flex-shrink:0}.action-btn:hover{background:var(--accent-nav-h);border-color:var(--border);color:var(--text-2)}.action-btn.active{background:var(--accent-bg);border-color:var(--info-border);color:var(--accent)}.config-row td{padding:0;background:#0f1623}.config-panel{display:flex;flex-direction:column}.config-panel-header{display:flex;align-items:center;justify-content:space-between;padding:10px 20px;border-bottom:1px solid #1e2d45;font-size:12px;color:#7a92b8}.config-panel-actions{display:flex;gap:8px}.btn-copy-config,.btn-dl-config{padding:4px 12px;font-size:12px;border-radius:4px;cursor:pointer;transition:background .12s,border-color .12s}.btn-copy-config{background:#1e3a5f;border:1px solid #2a5080;color:#7ab8f5}.btn-copy-config:hover{background:#264d7a;border-color:#3a6ba0}.btn-dl-config{background:transparent;border:1px solid #2a3a50;color:#7a92b8}.btn-dl-config:hover{background:#1a2a3a;border-color:#3a5070}.config-content{margin:0;padding:16px 20px;font-family:SF Mono,Fira Code,monospace;font-size:11px;line-height:1.6;color:#a8d4a8;background:#0a0f1a;white-space:pre-wrap;word-break:break-all;overflow-y:auto}.delete-cell{display:flex;align-items:center;gap:5px}.delete-cell .delete-confirm{display:none;align-items:center;gap:4px}.delete-cell.is-confirming .delete-trigger{display:none}.delete-cell.is-confirming .delete-confirm{display:flex}.delete-cell.is-confirming .delete-confirm .cell-icon-btn{opacity:1;pointer-events:auto}.test-ips-card{display:flex;flex-direction:column;gap:18px;padding:0;margin-top:18px;overflow:hidden;border-radius:18px;border:1px solid color-mix(in srgb,var(--border) 82%,#cbd5e1);box-shadow:0 14px 34px #0f172a0f,0 2px 10px #0f172a0a}.test-ips-hero{padding:24px 24px 20px;background:radial-gradient(circle at top right,rgba(59,130,246,.14),transparent 34%),linear-gradient(180deg,#f8fafcfa,#f1f5f9eb);border-bottom:1px solid color-mix(in srgb,var(--border) 80%,#dbe4f0)}[data-theme=dark] .test-ips-hero{background:radial-gradient(circle at top right,rgba(96,165,250,.16),transparent 34%),linear-gradient(180deg,#111827f0,#0f172ae6)}.test-ips-header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.test-ips-title{margin:0;font-size:22px;letter-spacing:-.03em}.test-ips-toggle{display:inline-flex;align-items:center;gap:10px;cursor:pointer;padding:10px 12px;border:1px solid color-mix(in srgb,var(--border) 84%,#dbe4f0);border-radius:14px;background:#ffffffc7;backdrop-filter:blur(10px);min-width:0;box-shadow:0 8px 22px #0f172a0d}[data-theme=dark] .test-ips-toggle{background:#0f172ab3}.test-ips-toggle input{position:absolute;opacity:0;pointer-events:none}.test-ips-toggle-ui{position:relative;width:42px;height:24px;border-radius:999px;background:var(--border-input);transition:background .15s;flex-shrink:0}.test-ips-toggle-ui:after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #00000029;transition:transform .15s}.test-ips-toggle input:checked+.test-ips-toggle-ui{background:var(--accent)}.test-ips-toggle input:checked+.test-ips-toggle-ui:after{transform:translate(18px)}.test-ips-toggle-label{display:flex;flex-direction:column;gap:0;font-size:12px;color:var(--text-5)}.test-ips-toggle-label strong{font-size:13px;color:var(--text)}.test-ips-toolbar{display:flex;align-items:end;justify-content:space-between;gap:14px;padding:0 24px}.test-ips-window-group{min-width:340px}.test-ips-window-controls{display:flex;gap:10px}.test-ips-window-select,#test-ips-window-custom{height:42px;padding:0 14px;border:1px solid color-mix(in srgb,var(--border-input) 85%,#cbd5e1);border-radius:12px;background:linear-gradient(180deg,var(--surface),var(--surface-2));color:var(--text);font-size:13.5px;font-family:inherit;outline:none}.test-ips-window-select{min-width:170px}#test-ips-window-custom{width:130px}.test-ips-window-select:focus,#test-ips-window-custom:focus{border-color:var(--accent);box-shadow:0 0 0 3px #3a6bc91f}.test-ips-composer{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:16px 18px;align-items:start;padding:0 24px}.test-ips-textarea{width:100%;padding:14px 15px;border:1px solid color-mix(in srgb,var(--border-input) 85%,#cbd5e1);border-radius:14px;font-size:13px;font-family:var(--mono);color:var(--text);background:linear-gradient(180deg,var(--surface-3),var(--surface));resize:vertical;min-height:148px;outline:none;line-height:1.55}.test-ips-textarea:focus{border-color:var(--accent);background:var(--surface);box-shadow:0 0 0 3px #3a6bc91f}.test-ips-input-help{margin-top:8px;font-size:12px;color:var(--text-5)}.test-ips-add-actions{display:flex;flex-direction:column;gap:10px;align-self:stretch;justify-content:flex-start}.test-ips-add-primary{min-height:42px}.test-ips-add-result{font-size:12.5px;color:var(--success-dark);background:var(--success-bg);border:1px solid var(--success-border);border-radius:12px;padding:12px 13px;line-height:1.45}.test-ips-add-result.error{color:var(--danger);background:var(--danger-bg);border-color:var(--danger-border)}.test-ips-table-card,.test-ip-reports-card{margin-bottom:0;margin-inline:24px;border-radius:16px;overflow:hidden;border:1px solid color-mix(in srgb,var(--border) 84%,#dbe4f0);box-shadow:inset 0 1px #ffffff3d}#test-ips-table th:nth-child(1){width:140px}#test-ips-table th:nth-child(2){width:90px}#test-ips-table th:nth-child(3){width:90px}#test-ips-table th:nth-child(4){width:110px}.test-ip-row{cursor:pointer;transition:transform .14s ease}.test-ip-row.is-linked td{background:#3a6bc90d}.test-ip-row:hover td{background:color-mix(in srgb,var(--row-hover) 82%,#f8fbff)}.test-ip-row:hover{transform:translateY(-1px)}.test-ip-main{display:block}.test-ip-source-sub{display:block;margin-top:4px;font-size:11.5px;color:var(--text-5)}.test-ip-actions-cell{padding-top:10px!important;padding-bottom:10px!important;text-align:center;vertical-align:middle}.test-ip-actions-cell>*{margin-left:auto;margin-right:auto}.test-ip-auto-label{display:inline-flex;align-items:center;justify-content:center;min-width:74px;padding:6px 10px;border-radius:999px;background:var(--surface-2);border:1px solid var(--border-2);color:var(--text-5);font-size:11.5px;font-weight:600}.test-ip-count{font-weight:700;font-size:13px;font-variant-numeric:tabular-nums}.test-ip-count.success,.test-ip-report-status.success{color:var(--success-dark)}.test-ip-count.failed,.test-ip-report-status.failed{color:var(--danger)}.test-ip-modal-detail{max-width:min(980px,calc(100vw - 48px))}.test-ip-filter-row{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}.test-ip-filter-pill{padding:6px 12px;border-radius:999px;border:1px solid var(--border-input);background:var(--surface-2);color:var(--text-4);font-size:12px;font-weight:600;cursor:pointer}.test-ip-filter-pill.active{background:var(--accent-bg);border-color:var(--accent);color:var(--accent-dark)}.test-ip-reports-table th:nth-child(1){width:160px}.test-ip-reports-table th:nth-child(2){width:90px}.test-ip-reports-table th:nth-child(3){width:120px}.test-ip-reports-table th:nth-child(4){width:170px}.test-ip-reports-table th:nth-child(5){width:130px}.test-ip-filter-note{margin-left:auto;font-size:11.5px;color:var(--text-5);align-self:center;font-style:italic}.test-ip-report-status{font-weight:700;text-transform:capitalize}.test-ip-pagination{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-top:14px}.test-ip-pagination-label{font-size:12.5px;color:var(--text-5);min-width:84px;text-align:center}.form-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:24px 28px;margin-bottom:20px;box-shadow:0 1px 4px var(--shadow-sm)}.form-title{font-size:15px;font-weight:700;color:var(--text);margin-bottom:18px}.country-picker{position:relative;z-index:1;overflow:visible;margin-bottom:18px;padding:14px;border:1px solid var(--border-2);border-radius:12px;background:linear-gradient(135deg,rgba(77,124,254,.08),transparent 38%),var(--surface)}.country-picker:focus-within{z-index:40}.country-picker-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px}.country-picker-title,.country-picker-sub{display:block}.country-picker-title{color:var(--text-1);font-size:13px;font-weight:700}.country-picker-sub{margin-top:2px;color:var(--text-5);font-size:12px}.country-chips{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:12px}.country-chip{padding:6px 10px;font-size:12px;border:1px solid var(--border-input);border-radius:999px;background:#ffffff0b;color:var(--text-2);cursor:pointer;transition:background .12s,border-color .12s,color .12s,transform .12s;font-family:inherit;line-height:1.35}.country-chip:hover{background:var(--accent-bg-h);border-color:var(--accent);color:var(--accent-dark);transform:translateY(-1px)}.country-search-wrap{position:relative}.country-search-input{width:100%;border:1px solid var(--border-input);border-radius:10px;background:var(--surface-3);color:var(--text-1);font:inherit;font-size:13px;outline:none;padding:10px 12px;transition:border-color .12s,box-shadow .12s,background .12s}.country-search-input::placeholder{color:var(--text-6)}.country-search-input:focus{border-color:var(--accent);background:var(--surface-2);box-shadow:0 0 0 3px #4d7cfe29}.country-search-results{position:relative;z-index:90;max-height:238px;overflow:auto;margin-top:8px;padding:6px;border:1px solid rgba(148,163,184,.24);border-radius:10px;background:var(--surface);background-color:var(--surface);background-clip:padding-box;box-shadow:0 16px 38px #0f172a29;isolation:isolate}.country-result{width:100%;padding:9px 10px;border:0;border-radius:8px;background:var(--surface);color:var(--text-2);cursor:pointer;font:inherit;font-size:13px;text-align:left}[data-theme=dark] .country-search-results{background:#111827;background-color:#111827;border-color:#94a3b838;box-shadow:0 18px 44px #00000075}[data-theme=dark] .country-result{background:#111827}.country-result:hover{background:var(--accent-bg-h);color:var(--accent-dark)}.country-result-empty{padding:10px;color:var(--text-5);font-size:12px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px 24px;margin-bottom:16px}.form-field{display:flex;flex-direction:column;gap:5px}.form-field label{font-size:12px;font-weight:600;color:var(--text-4);text-transform:uppercase;letter-spacing:.04em}.form-field input{padding:8px 10px;border:1px solid var(--border-input);border-radius:6px;font-size:13.5px;font-family:inherit;color:var(--text);background:var(--surface-3);outline:none;transition:border-color .12s,box-shadow .12s}.form-field input:focus{border-color:var(--accent);background:var(--surface);box-shadow:0 0 0 2px #3a6bc91f}.form-error{background:var(--danger-bg);border:1px solid var(--danger-border);color:var(--danger);padding:8px 12px;border-radius:6px;font-size:13px;margin-bottom:14px}.form-actions{display:flex;gap:10px;align-items:center}.page-header-actions{display:flex;gap:8px;align-items:center;margin-left:auto;flex-shrink:0}.auth-field{gap:8px}.auth-field-hd{display:flex;align-items:center;justify-content:space-between;gap:8px}.auth-field-hd label{margin:0}.auth-mode-pills{display:inline-flex;background:var(--surface-2);border:1px solid var(--border);border-radius:6px;padding:2px;gap:1px;flex-shrink:0}.auth-mode-pill{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border:none;border-radius:4px;font-size:11.5px;font-weight:500;font-family:inherit;cursor:pointer;color:var(--text-5);background:transparent;transition:background .1s,color .1s,box-shadow .1s}.auth-mode-pill.active{background:var(--surface);color:var(--text);box-shadow:0 1px 2px var(--shadow-md)}.auth-mode-pill:not(.active):hover{color:var(--text-3)}#auth-pane-password input{width:100%;padding:8px 10px;border:1px solid var(--border-input);border-radius:6px;font-size:13.5px;font-family:inherit;color:var(--text);background:var(--surface-3);outline:none;transition:border-color .12s,box-shadow .12s}#auth-pane-password input:focus{border-color:var(--accent);background:var(--surface);box-shadow:0 0 0 2px #3a6bc91f}.key-chips-wrap{display:flex;flex-direction:column;gap:4px}.key-chips-loading{font-size:12px;color:var(--text-5);padding:4px 0}.key-chip{display:flex;align-items:center;gap:8px;width:100%;padding:7px 10px;border:1px solid var(--border-input);border-radius:6px;background:var(--surface-3);color:var(--text-3);font-size:13px;font-family:inherit;cursor:pointer;text-align:left;transition:border-color .12s,background .12s,color .12s}.key-chip:hover:not(.selected){border-color:var(--info-border);background:var(--accent-bg);color:var(--text-2)}.key-chip.selected{border-color:var(--accent);background:var(--accent-bg);color:var(--accent-dark);font-weight:500}.key-chip-name{flex:1}.chip-check{margin-left:auto;color:var(--accent);display:flex}.key-empty-hint{font-size:12px;color:var(--text-5);margin-top:2px}.link-btn{background:none;border:none;color:var(--accent);font-size:inherit;font-family:inherit;cursor:pointer;padding:0;text-decoration:underline;text-underline-offset:2px}.link-btn:hover{color:var(--accent-h)}.ssh-card-hd{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}.ssh-card-sub{font-size:12.5px;color:var(--text-5);margin-top:4px}.add-key-fields{display:grid;grid-template-columns:200px 1fr;gap:14px 20px;margin-bottom:8px}.form-field-pem{grid-column:2}.pem-textarea{width:100%;padding:8px 10px;border:1px solid var(--border-input);border-radius:6px;font-size:11.5px;font-family:SF Mono,Fira Code,Consolas,monospace;color:var(--text-2);background:var(--surface-3);outline:none;resize:vertical;transition:border-color .12s;line-height:1.5}.pem-textarea:focus{border-color:var(--accent);background:var(--surface)}.add-key-form{border-top:1px solid var(--border-2);padding-top:16px;margin-bottom:16px}.ssh-keys-table{display:flex;flex-direction:column;gap:1px;border:1px solid var(--border);border-radius:8px;overflow:hidden;margin-top:4px}.ssh-key-row{display:flex;align-items:center;gap:12px;padding:11px 14px;background:var(--surface);transition:background .1s}.ssh-key-row:not(:last-child){border-bottom:1px solid var(--border-2)}.ssh-key-row:hover{background:var(--row-hover)}.ssh-key-icon{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:6px;background:var(--accent-bg);color:var(--accent);flex-shrink:0}.ssh-key-info{flex:1;min-width:0}.ssh-key-name{font-size:13.5px;font-weight:600;color:var(--text)}.ssh-key-meta{font-size:11.5px;color:var(--text-5);margin-top:1px}.ssh-key-toggle{margin-top:8px;padding:0;border:0;background:none;color:var(--accent);font:inherit;font-size:12.5px;font-weight:600;cursor:pointer}.ssh-key-toggle:hover{color:var(--accent-h)}.ssh-key-secret{margin:10px 0 0;padding:10px 12px;border:1px solid var(--border-2);border-radius:8px;background:var(--surface-3);color:var(--text-2);font-size:11.5px;line-height:1.55;font-family:SF Mono,Fira Code,Consolas,monospace;white-space:pre-wrap;word-break:break-word;overflow-x:auto}.ssh-key-secret-unavailable{margin-top:8px;font-size:12px;color:var(--text-5)}.ssh-keys-empty,.ssh-keys-loading{font-size:13px;color:var(--text-5);padding:8px 0 4px}.btn-primary{padding:8px 18px;background:var(--accent);color:#fff;border:none;border-radius:6px;font-size:13.5px;font-weight:500;cursor:pointer;transition:background .12s}.btn-primary:hover{background:var(--accent-h)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-ghost{padding:8px 14px;background:none;color:var(--text-4);border:1px solid var(--border-input);border-radius:6px;font-size:13.5px;cursor:pointer;transition:background .12s,border-color .12s}.btn-ghost:hover{background:var(--bg);border-color:var(--border)}.btn-danger{padding:8px 18px;background:var(--danger);color:#fff;border:none;border-radius:6px;font-size:13.5px;font-weight:500;cursor:pointer;transition:background .12s}.btn-danger:hover{background:var(--danger-h)}.btn-primary.is-pending,.btn-ghost.is-pending,.btn-danger.is-pending,.sup-msg-delete.is-pending{position:relative;overflow:hidden}.btn-primary.is-pending:after,.btn-ghost.is-pending:after,.btn-danger.is-pending:after,.sup-msg-delete.is-pending:after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 0%,color-mix(in srgb,currentColor 18%,transparent) 45%,transparent 80%);transform:translate(-110%);animation:pending-sheen 1.1s ease-in-out infinite}@keyframes pending-sheen{to{transform:translate(110%)}}.assign-cell{display:flex;align-items:center;gap:5px;min-height:24px}.assign-cell .cell-input{display:none;flex:1;min-width:80px}.assign-cell .save-btn,.assign-cell .cancel-btn{opacity:0;pointer-events:none}.assign-cell:hover .assign-trigger{opacity:1;pointer-events:auto;color:var(--text-7)}.assign-cell.is-editing .assign-trigger{display:none}.assign-cell.is-editing .cell-input{display:flex}.assign-cell.is-editing .save-btn,.assign-cell.is-editing .cancel-btn{opacity:1;pointer-events:auto}.modal-backdrop{position:fixed;inset:0;background:var(--modal-bg);display:flex;align-items:center;justify-content:center;z-index:1000;padding:24px}.modal{background:var(--surface);border-radius:12px;box-shadow:0 8px 40px var(--shadow-lg);width:100%;max-width:640px;max-height:85vh;display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--border-2)}.modal-sm{max-width:400px}#user-modal .modal-detail{max-width:min(1120px,calc(100vw - 48px))}@media (min-width: 1024px){#user-modal .modal-detail .info-grid-2{grid-template-columns:repeat(4,1fr)}}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;padding:20px 24px 16px;border-bottom:1px solid var(--border-2);flex-shrink:0}.modal-title{font-size:16px;font-weight:700;color:var(--text);letter-spacing:-.01em}.modal-subtitle{font-size:13px;color:var(--text-5);margin-top:2px;font-family:SF Mono,Fira Code,monospace}.modal-close-btn{background:none;border:none;font-size:18px;color:var(--text-7);cursor:pointer;line-height:1;padding:0 2px;margin-top:-2px;flex-shrink:0}.modal-close-btn:hover{color:var(--text-2)}.modal-title-wrap{display:flex;align-items:center;gap:6px;min-width:0}.modal-title-edit-btn{background:#ffffff1f;border:1px solid rgba(255,255,255,.2);border-radius:5px;color:#ffffffb3;cursor:pointer;width:24px;height:24px;display:flex;align-items:center;justify-content:center;flex-shrink:0;opacity:0;pointer-events:none;transition:opacity .12s,background .12s}.modal-title-wrap:hover .modal-title-edit-btn:not([hidden]){opacity:1;pointer-events:auto}.modal-title-edit-btn:hover{background:#ffffff38;color:#fff}.modal-title-input{display:none;background:#ffffff1f;border:1px solid rgba(255,255,255,.35);border-radius:6px;color:#fff;font-size:15px;font-weight:700;padding:4px 10px;outline:none;min-width:0;flex:1;font-family:inherit}.modal-title-input::placeholder{color:#fff6}.modal-title-input:focus{border-color:#fff9;background:#ffffff2e}.modal-title-action{display:none;width:26px;height:26px;border-radius:50%;border:none;cursor:pointer;align-items:center;justify-content:center;flex-shrink:0;transition:transform .1s}.modal-name-save{background:#43a047;color:#fff}.modal-name-save:hover{background:#2e7d32;transform:scale(1.1)}.modal-name-cancel{background:#e53935;color:#fff}.modal-name-cancel:hover{background:#b71c1c;transform:scale(1.1)}.modal-title-wrap.is-editing .modal-title,.modal-title-wrap.is-editing .modal-title-edit-btn{display:none}.modal-title-wrap.is-editing .modal-title-input,.modal-title-wrap.is-editing .modal-title-action{display:flex}.modal-country-picker{position:relative;width:min(420px,100%);margin-top:8px}.country-search-input--modal{padding:8px 10px;border-color:#ffffff42;background:#ffffff1c;color:#fff}.country-search-input--modal::placeholder{color:#ffffff75}.country-search-input--modal:focus{border-color:#ffffff8c;background:#ffffff29;box-shadow:0 0 0 3px #ffffff1f}.country-search-results--modal{position:absolute;left:0;right:0;top:calc(100% + 6px);margin-top:0;z-index:80}.modal-ip-wrap{display:flex;align-items:center;gap:5px;min-width:0;margin-top:2px}.modal-ip-wrap:hover .modal-title-edit-btn:not([hidden]){opacity:1;pointer-events:auto}.modal-ip-input{display:none;background:#ffffff1f;border:1px solid rgba(255,255,255,.35);border-radius:6px;color:#ffffffe6;font-size:13px;font-family:SF Mono,Fira Code,monospace;padding:3px 8px;outline:none;min-width:0;flex:1;max-width:200px}.modal-ip-input::placeholder{color:#ffffff59}.modal-ip-input:focus{border-color:#fff9;background:#ffffff2e}.modal-ip-save{background:#43a047;color:#fff}.modal-ip-save:hover{background:#2e7d32;transform:scale(1.1)}.modal-ip-cancel{background:#e53935;color:#fff}.modal-ip-cancel:hover{background:#b71c1c;transform:scale(1.1)}.modal-ip-wrap.is-editing .modal-subtitle,.modal-ip-wrap.is-editing .modal-title-edit-btn{display:none}.modal-ip-wrap.is-editing .modal-ip-input,.modal-ip-wrap.is-editing .modal-title-action{display:flex}.modal-detail .modal-header{background:linear-gradient(135deg,#1e3a7a,#0f1e4a);border-bottom:none;padding:22px 24px 20px}.modal-detail .modal-title{font-size:17px;color:#fff}.modal-detail .modal-subtitle{color:#90b8f0;margin-top:4px}.modal-detail .modal-close-btn{background:#ffffff1f;border:1px solid rgba(255,255,255,.2);border-radius:6px;font-size:13px;color:#fff;width:28px;height:28px;display:flex;align-items:center;justify-content:center;padding:0;margin-top:0}.modal-detail .modal-close-btn:hover{background:#ffffff38;color:#fff}.modal-tabs{display:flex;gap:2px;padding:0 24px;border-bottom:1px solid var(--border-2);flex-shrink:0;min-width:0;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scrollbar-width:none;overscroll-behavior-x:contain}.modal-tabs::-webkit-scrollbar{display:none}.modal-tab{padding:10px 14px;font-size:13px;font-weight:500;color:var(--text-5);background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;margin-bottom:-1px;flex-shrink:0;white-space:nowrap;transition:color .12s,border-color .12s}.modal-tab:hover{color:var(--text-3)}.modal-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.modal-body{padding:20px 24px;overflow-y:auto;flex:1}.modal-footer{display:flex;justify-content:flex-end;align-items:center;gap:10px;padding:12px 24px;border-top:1px solid var(--border-2);flex-shrink:0}.modal-assign-section{padding:12px 24px 14px;border-top:1px solid var(--border-2);flex-shrink:0}.assign-section-hd{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--text-5);margin-bottom:8px}.assign-chips-wrap{display:flex;flex-wrap:wrap;gap:6px;min-height:28px}.assign-chips-empty{font-size:12px;color:var(--text-5);padding:4px 0}.assign-chip{display:inline-flex;align-items:center;gap:5px;padding:4px 11px 4px 8px;border-radius:20px;border:1.5px solid var(--border-2);background:var(--surface-2);color:var(--text-3);font-size:12px;font-weight:600;cursor:pointer;transition:background .13s,border-color .13s,color .13s,opacity .13s;user-select:none}.assign-chip:hover:not(:disabled){border-color:var(--accent);color:var(--accent);background:var(--accent-bg)}.assign-chip.is-assigned{background:var(--accent-bg);border-color:var(--accent);color:var(--accent)}.assign-chip.is-assigned:hover:not(:disabled){background:#fde8e8;border-color:var(--danger);color:var(--danger)}[data-theme=dark] .assign-chip.is-assigned:hover:not(:disabled){background:#2c1212;border-color:var(--danger);color:var(--danger)}.assign-chip:disabled{opacity:.5;cursor:default}.chip-icon{display:flex;align-items:center;flex-shrink:0}.delete-confirm-inline{display:flex;align-items:center;gap:8px}.confirm-text{font-size:13px;color:var(--text-5)}.panel-loading{padding:24px;color:var(--text-5);font-size:13px}.td-traffic{display:flex;flex-direction:column;gap:2px}.traffic-rx{font-size:12px;font-weight:500;color:#2a7abf}.traffic-tx{font-size:12px;font-weight:500;color:#2e7d32}.users-chip{display:inline-flex;align-items:center;gap:4px;padding:2px 7px 2px 6px;margin-right:8px;border-radius:999px;background:#2ea04324;color:#2ea043;font-size:11px;font-weight:600;font-variant-numeric:tabular-nums;line-height:1;vertical-align:middle;cursor:pointer;transition:background .12s,color .12s,box-shadow .12s}.users-chip[hidden]{display:none}.users-chip:hover,.users-chip:focus-visible{background:#2ea04338;box-shadow:0 0 0 2px #2ea0431f;outline:none}.users-chip svg{flex:none}.users-chip-num{letter-spacing:.2px}.active-users-modal{max-width:560px}.active-users-modal-body{padding:14px}.active-users-list{display:flex;flex-direction:column;gap:8px}.active-user-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:11px 12px;border:1px solid var(--border);border-radius:9px;background:var(--surface-2)}.active-user-main{min-width:0}.active-user-name{font-size:13px;font-weight:700;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.active-user-id{margin-top:3px;font-size:11px;line-height:1.25;color:var(--text-5);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.active-user-side{flex:none;text-align:right;font-size:12px;color:var(--text-4);line-height:1.3}.active-user-traffic{margin-top:3px;color:var(--text-5);font-variant-numeric:tabular-nums}.server-stats-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.server-stats-toolbar .btn-danger-outline{flex:0 0 auto}.server-stats-reset-note{color:var(--text-5);font-size:12px;line-height:1.35;text-align:right}.stats-totals{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:16px}.stat-total-card{background:var(--info-bg);border:1px solid var(--info-border);border-radius:8px;padding:12px 16px;display:flex;flex-direction:column;gap:4px}.stat-total-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--info-label)}.stat-total-value{font-size:18px;font-weight:700;color:var(--text)}.stat-total-value.rx{color:#2a7abf}.stat-total-value.tx{color:#2e7d32}.stats-table{width:100%;border-collapse:collapse;font-size:13px}.stats-table thead th{text-align:left;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--info-label);padding:6px 10px;border-bottom:1px solid var(--border-2)}.stats-table tbody tr:hover{background:var(--row-hover)}.stats-table tbody td{padding:8px 10px;border-bottom:1px solid var(--border-3);vertical-align:middle}.stats-table tbody tr:last-child td{border-bottom:none}.stats-username{display:block;font-weight:600;color:var(--text);font-size:13px}.stats-device{display:block;font-size:11px;color:var(--text-5);font-family:SF Mono,Fira Code,monospace}.stats-handshake{color:var(--text-4);font-size:12px}.key-item{border-bottom:1px solid var(--border-2)}.key-item:last-child{border-bottom:none}.key-header{display:flex;align-items:center;justify-content:space-between;padding:10px 20px;gap:12px}.key-server-info{display:flex;align-items:baseline;gap:8px;min-width:0}.key-server-name{font-weight:600;font-size:13px;color:var(--text);white-space:nowrap}.key-server-ip{font-size:12px;color:var(--text-5);font-family:SF Mono,Fira Code,monospace;white-space:nowrap}.key-copy-btn{padding:3px 10px;font-size:12px;border-radius:4px;background:var(--accent-bg);border:1px solid var(--info-border);color:var(--accent-dark);cursor:pointer;flex-shrink:0;transition:background .1s}.key-copy-btn:hover{background:var(--accent-bg-h)}.key-config{margin:0;padding:10px 20px 14px;font-family:SF Mono,Fira Code,monospace;font-size:10.5px;line-height:1.55;color:#a8d4a8;background:#0a0f1a;white-space:pre-wrap;word-break:break-all}.key-item-err{background:var(--danger-bg)}.key-err-badge{font-size:11px;font-weight:600;padding:2px 8px;border-radius:10px;background:var(--danger-bg-2);color:var(--danger-dark)}.key-err-msg{padding:6px 20px 12px;font-size:12px;color:var(--danger)}.modal-text{font-size:14px;color:var(--text-3);line-height:1.6}.info-section{margin-bottom:16px}.info-section:last-child{margin-bottom:0}.info-section-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--text-7);margin-bottom:10px}.info-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:8px}.info-grid-2{grid-template-columns:repeat(2,1fr)}.info-item{background:var(--info-bg);border:1px solid var(--info-border);border-radius:8px;padding:10px 14px;display:flex;flex-direction:column;gap:4px}.info-item.item-success{background:var(--success-bg);border-color:var(--success-border)}.info-item.item-success .info-label{color:var(--success)}.info-item.item-success .info-value{color:var(--success-dark);font-weight:700}.info-item.item-warning{background:var(--warning-bg);border-color:var(--warning-border)}.info-item.item-warning .info-label,.info-item.item-warning .info-value{color:var(--warning)}.info-item-wide{grid-column:span 2}.info-item-full{grid-column:1 / -1;margin-top:4px}.info-item-vis{margin-top:4px;background:var(--info-bg);border:1px solid var(--info-border);border-radius:8px;padding:10px 14px;display:flex;align-items:center;gap:12px}.info-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--info-label)}.info-item-vis .info-label{min-width:70px;flex-shrink:0}.info-value{font-size:13.5px;font-weight:600;color:var(--text)}.info-sub-date{display:block;font-size:11px;font-weight:400;color:var(--text-5);margin-top:2px}.user-type-time-left{display:block;font-size:11px;color:var(--text-5);margin-top:2px}.modal-note-cell .edit-trigger{opacity:.5;pointer-events:auto}.modal-note-cell .edit-trigger:hover{opacity:1}.info-value.mono{font-family:SF Mono,Fira Code,monospace;font-size:11.5px;font-weight:400;word-break:break-all;color:var(--text-2)}.awg-section{background:#0f1a2e;border-radius:10px;padding:14px 16px;margin-top:8px}.awg-section .info-section-title{color:#5a9ff0;margin-bottom:10px}.agent-section .info-section-title{margin-bottom:8px}.agent-desc{font-size:12.5px;color:var(--text-muted);line-height:1.55;margin:0 0 12px}.agent-action-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.btn-redeploy{display:inline-flex;align-items:center;gap:6px;font-size:13px}.btn-redeploy:disabled{opacity:.55;cursor:not-allowed}.agent-status{font-size:12.5px;color:var(--text-muted)}.agent-status-ok{color:var(--success-dark)}.agent-status-err{color:var(--danger)}.reinstall-section{border-top:1px solid var(--danger-border);padding-top:14px;margin-top:4px}.reinstall-section .info-section-title{color:var(--danger);margin-bottom:8px}.relay-section .info-section-title{color:var(--accent);margin-bottom:6px}.relay-list{display:flex;flex-direction:column;border:1px solid var(--border-2);border-radius:7px;overflow:hidden;margin-bottom:12px}.relay-row{display:flex;align-items:center;gap:10px;padding:9px 12px;background:var(--surface);transition:background .1s}.relay-row:not(:last-child){border-bottom:1px solid var(--border-2)}.relay-row:hover{background:var(--row-hover)}.relay-row-info{flex:1;min-width:0}.relay-row-name{display:block;font-size:13px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.relay-row-meta{display:block;font-size:11.5px;color:var(--text-5);font-family:var(--mono);margin-top:2px}.relay-status-badge{font-size:10.5px;font-weight:700;letter-spacing:.02em;padding:2px 8px;border-radius:10px;white-space:nowrap;flex-shrink:0;text-transform:uppercase}.relay-active{background:var(--success-bg);color:var(--success-dark);border:1px solid var(--success-border)}.relay-inactive{background:var(--surface-2);color:var(--text-5);border:1px solid var(--border-2)}.relay-row .relay-del-btn{padding:4px 10px;font-size:12px;flex-shrink:0;opacity:.7;transition:opacity .15s}.relay-row:hover .relay-del-btn{opacity:1}.relay-add-card{background:var(--surface-2);border:1px solid var(--border-2);border-radius:8px;padding:12px 14px 14px;margin-top:4px}.relay-add-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-5);margin-bottom:10px}.relay-add-grid{display:grid;grid-template-columns:1fr 110px;grid-template-rows:auto auto;gap:8px}.relay-field{display:flex;flex-direction:column;gap:4px}.relay-field--server{grid-column:1 / -1}.relay-field--port{grid-column:2}.relay-field--name{grid-column:1;grid-row:2}.relay-label{font-size:11px;font-weight:600;color:var(--text-5);text-transform:uppercase;letter-spacing:.04em}.relay-server-sel,.relay-port-input,.relay-name-input{height:32px;padding:0 9px;border:1px solid var(--border-input);border-radius:5px;background:var(--surface);color:var(--text);font-size:13px;font-family:inherit;width:100%;box-sizing:border-box;transition:border-color .15s}.relay-server-sel:focus,.relay-port-input:focus,.relay-name-input:focus{outline:none;border-color:var(--accent)}.relay-port-hint{font-size:10.5px;color:var(--text-5);margin-top:2px;line-height:1.3}.relay-add-footer{display:flex;align-items:center;gap:10px;margin-top:10px}.relay-add-btn{height:32px;font-size:13px;padding:0 16px;flex-shrink:0}@media (max-width: 480px){.relay-add-grid{grid-template-columns:1fr;grid-template-rows:auto}.relay-field--server,.relay-field--port,.relay-field--name{grid-column:1;grid-row:auto}}.awg-grid{grid-template-columns:repeat(4,1fr);gap:6px}.awg-section .info-item{background:#162135;border-color:#1e3050;padding:7px 10px}.awg-section .info-label{color:#5a9ff0}.awg-section .info-value{color:#a0c8ff;font-size:13px;font-weight:600}.awg-section .info-value.mono{color:#6ddb90;font-size:10px;font-weight:400}.vis-select{padding:4px 8px;border:1px solid var(--border-input);border-radius:6px;font-size:12px;font-weight:500;color:var(--text-2);background:var(--surface-2);cursor:pointer;outline:none;transition:border-color .12s,background .12s}.vis-select:hover{border-color:var(--info-border);background:var(--accent-bg)}.vis-select:focus{border-color:var(--accent);background:var(--surface)}.vis-select:disabled{opacity:.5;cursor:not-allowed}.vis-cell-wrap{display:flex;flex-direction:column;gap:5px;align-items:flex-start}.ac-toggle{display:inline-flex;align-items:center;gap:6px;cursor:pointer;user-select:none}.ac-toggle input{position:absolute;opacity:0;pointer-events:none}.ac-toggle-ui{position:relative;width:28px;height:16px;border-radius:999px;background:var(--border-input);transition:background .15s;flex-shrink:0}.ac-toggle-ui:after{content:"";position:absolute;top:2px;left:2px;width:12px;height:12px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0000002e;transition:transform .15s}.ac-toggle input:checked+.ac-toggle-ui{background:var(--success)}.ac-toggle input:checked+.ac-toggle-ui:after{transform:translate(12px)}.ac-toggle input:disabled+.ac-toggle-ui{opacity:.5}.ac-toggle-label{font-size:11px;color:var(--text-5);font-weight:500}.ac-controls{display:flex;align-items:center;justify-content:flex-end;gap:14px;flex-wrap:wrap}.ac-chance{display:inline-flex;align-items:center;gap:8px;color:var(--text-4);font-size:12px;font-weight:600}.ac-chance-input-wrap{display:inline-flex;align-items:center;gap:3px;padding:5px 8px;border:1px solid var(--border);border-radius:9px;background:var(--surface-2)}.ac-chance-input{width:54px;border:0;outline:0;padding:0;background:transparent;color:var(--text-1);font:inherit;text-align:right}.ac-chance-input:disabled{opacity:.55}.info-vis-group-block{margin-top:6px;background:var(--info-bg);border:1px solid var(--info-border);border-radius:10px;padding:12px 16px;display:flex;flex-direction:column;gap:0}.info-vis-row{display:flex;flex-direction:column;gap:8px;padding:10px 0}.info-vis-row:first-child{padding-top:0}.info-group-row{border-top:1px solid var(--info-border);padding-bottom:0}.info-block-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--info-label)}.vis-pills{display:flex;flex-wrap:wrap;gap:6px}.vis-pill{padding:5px 14px;border-radius:20px;font-size:12px;font-weight:500;border:1px solid var(--border-input);background:var(--surface-2);color:var(--text-3);cursor:pointer;line-height:1;transition:border-color .12s,background .12s,color .12s}.vis-pill:hover:not(:disabled):not(.active){border-color:var(--accent);color:var(--accent);background:var(--accent-bg)}.vis-pill.active{background:var(--accent);border-color:var(--accent);color:#fff}.vis-pill:disabled{opacity:.5;cursor:not-allowed}.group-pills{display:flex;flex-wrap:wrap;gap:6px}.group-pill{display:inline-flex;align-items:center;gap:5px;padding:5px 11px;border-radius:20px;font-size:12px;font-weight:500;border:1px solid var(--border-input);background:var(--surface-2);color:var(--text-3);cursor:pointer;line-height:1;transition:border-color .12s,background .12s,color .12s}.group-pill:hover:not(:disabled):not(.active){border-color:var(--accent);color:var(--accent);background:var(--accent-bg)}.group-pill.active{background:var(--accent);border-color:var(--accent);color:#fff}.group-pill:disabled{opacity:.5;cursor:not-allowed}.group-pill-da{font-size:10px;font-weight:600;opacity:.65}.group-pill.active .group-pill-da{opacity:.8}.gp-open{color:var(--success)}.gp-private{color:var(--warning)}.group-pill.active .gp-open,.group-pill.active .gp-private{color:#ffffffd9}.row-group-badge{display:inline-block;font-size:10px;font-weight:600;color:var(--accent);background:var(--accent-bg);border-radius:10px;padding:1px 7px;margin-left:7px;line-height:1.6;vertical-align:middle}.row-kind-badge{display:inline-block;margin-left:7px;padding:1px 7px;border-radius:10px;font-size:10px;font-weight:700;line-height:1.6;color:#8a5a14;background:#f59e0b24;vertical-align:middle}.relay-row-inline-meta{font-size:12px;font-weight:600;color:var(--text-5)}.traffic-accounting-status{display:inline-block;margin-left:6px;font-size:10px;font-weight:700;color:var(--text-5);white-space:nowrap}.traffic-accounting-status--stale,.traffic-accounting-status--unavailable{color:#b45309}.traffic-accounting-info{display:inline-block;margin-left:6px;color:var(--text-5);font-size:12px;cursor:help}.traffic-accounting-info:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:50%}.forwarding-builder{display:block;margin-top:18px;padding:20px;border:1px solid color-mix(in srgb,var(--accent) 24%,var(--border));border-radius:18px;background:radial-gradient(circle at 12% 0%,color-mix(in srgb,var(--accent) 12%,transparent),transparent 34%),color-mix(in srgb,var(--surface-2) 94%,var(--accent) 6%);overflow:hidden}.forwarding-builder[hidden]{display:none}.forwarding-explainer{max-width:760px}.forwarding-explainer-kicker{display:block;margin-bottom:5px;color:var(--accent);font-size:11px;font-weight:750;letter-spacing:.08em;text-transform:uppercase}.forwarding-explainer strong{display:block;font-size:18px;color:var(--text-1)}.forwarding-explainer p{margin:6px 0 0;color:var(--text-4);line-height:1.55}.forwarding-flow{display:grid;grid-template-columns:minmax(92px,.9fr) minmax(38px,.35fr) minmax(112px,1fr) minmax(44px,.4fr) minmax(112px,1fr) minmax(44px,.4fr) minmax(112px,1fr) minmax(38px,.35fr) minmax(92px,.9fr);align-items:center;gap:8px;margin:22px 0}.forwarding-flow-node{position:relative;min-height:78px;padding:15px 13px 12px;border:1px solid var(--border);border-radius:14px;background:color-mix(in srgb,var(--surface-1) 92%,transparent);box-shadow:0 10px 28px #00000014;text-align:left;font:inherit}.forwarding-flow-node>span{position:absolute;top:-9px;left:12px;display:grid;width:20px;height:20px;place-items:center;border-radius:50%;background:var(--accent);color:#fff;font-size:10px;font-weight:800}.forwarding-flow-node b{display:block;color:var(--text-1);font-size:13px}.forwarding-flow-node small{display:block;margin-top:7px;color:var(--text-4);line-height:1.25}.forwarding-flow-ingress{border-color:color-mix(in srgb,#4f8cff 45%,var(--border))}.forwarding-flow-protocol{border-color:color-mix(in srgb,#a879ff 50%,var(--border))}.forwarding-flow-exit{border-color:color-mix(in srgb,#32c48d 45%,var(--border))}.forwarding-flow-picker{cursor:pointer;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}.forwarding-flow-picker:hover,.forwarding-flow-picker:focus-visible{transform:translateY(-2px);border-color:var(--accent);box-shadow:0 14px 32px color-mix(in srgb,var(--accent) 16%,transparent);outline:none}.forwarding-flow-picker.is-selected:after{content:"\2713";position:absolute;top:8px;right:9px;color:#32c48d;font-size:13px;font-weight:900}.forwarding-flow-link{position:relative;height:32px;text-align:center}.forwarding-flow-link i{position:absolute;top:14px;left:0;right:7px;height:2px;overflow:hidden;background:color-mix(in srgb,var(--text-5) 38%,transparent)}.forwarding-flow-link i:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,var(--accent),transparent);transform:translate(-100%);animation:forwarding-packet 1.8s linear infinite}.forwarding-flow-link:after{content:"";position:absolute;top:10px;right:1px;width:8px;height:8px;border-top:2px solid var(--text-5);border-right:2px solid var(--text-5);transform:rotate(45deg)}.forwarding-flow-link em{position:relative;top:22px;color:var(--text-5);font-size:9px;font-style:normal;white-space:nowrap}.forwarding-flow-link-active i{background:color-mix(in srgb,var(--accent) 35%,transparent)}.forwarding-fields{margin-top:8px}.forwarding-native-control{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;white-space:nowrap!important}.forwarding-picker-panel{margin:-2px 0 16px;padding:16px;border:1px solid color-mix(in srgb,var(--accent) 30%,var(--border));border-radius:16px;background:color-mix(in srgb,var(--surface-1) 92%,var(--accent) 8%);animation:forwarding-picker-in .18s ease-out}.forwarding-picker-panel[hidden]{display:none}.forwarding-picker-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.forwarding-picker-head span,.forwarding-picker-head strong{display:block}.forwarding-picker-head span{color:var(--accent);font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.forwarding-picker-head strong{margin-top:3px;color:var(--text-1);font-size:15px}.forwarding-picker-close{width:32px;height:32px;border:1px solid var(--border);border-radius:50%;background:var(--surface-2);color:var(--text-3);cursor:pointer;font-size:20px;line-height:1}.forwarding-picker-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px}.forwarding-option-card{position:relative;min-height:78px;padding:13px 14px;border:1px solid var(--border);border-radius:13px;background:var(--surface-2);color:var(--text-1);cursor:pointer;text-align:left;transition:transform .15s ease,border-color .15s ease,background .15s ease}.forwarding-option-card:hover,.forwarding-option-card:focus-visible,.forwarding-option-card.is-selected{transform:translateY(-2px);border-color:var(--accent);background:color-mix(in srgb,var(--surface-2) 86%,var(--accent) 14%);outline:none}.forwarding-option-card b,.forwarding-option-card small{display:block}.forwarding-option-card b{font-size:13px}.forwarding-option-card small{margin-top:6px;color:var(--text-4);line-height:1.3}.forwarding-option-card em{display:inline-block;margin-top:9px;padding:3px 7px;border-radius:999px;background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent);font-size:9px;font-style:normal;font-weight:800;letter-spacing:.05em;text-transform:uppercase}.forwarding-picker-empty{grid-column:1 / -1;padding:18px;border:1px dashed var(--border);border-radius:12px;color:var(--text-4);text-align:center}.forwarding-advanced{margin-top:8px;border-top:1px solid var(--border);padding-top:12px}.forwarding-advanced summary{color:var(--text-4);cursor:pointer;font-size:12px;font-weight:650}.forwarding-advanced[open] summary{color:var(--accent)}.forward-badge{color:#58d4a3;border-color:color-mix(in srgb,#32c48d 42%,var(--border))}.forwarding-flow-modal{grid-template-columns:minmax(105px,1fr) 60px minmax(140px,1.2fr) 70px minmax(150px,1.3fr)}.forwarding-modal-card{overflow:hidden}@keyframes forwarding-packet{to{transform:translate(100%)}}@keyframes forwarding-picker-in{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 900px){.forwarding-flow{grid-template-columns:1fr;gap:10px}.forwarding-flow-link{height:30px;transform:rotate(90deg);width:44px;justify-self:center}.forwarding-flow-link em{display:none}}@media (prefers-reduced-motion: reduce){.forwarding-flow-link i:after{animation:none}}.vis-sched-badge{display:flex;align-items:center;gap:5px;margin-top:4px;padding:3px 7px;background:var(--warning-bg);border:1px solid var(--warning-border);border-radius:20px;font-size:11px;color:var(--warning);width:fit-content;max-width:100%}.sched-row-cancel{background:none;border:none;cursor:pointer;color:inherit;padding:0 0 0 2px;font-size:14px;line-height:1;opacity:.6;transition:opacity .12s}.sched-row-cancel:hover{opacity:1}.info-item-sched{margin-top:6px;background:var(--info-bg);border:1px solid var(--info-border);border-radius:8px;padding:10px 14px;display:flex;flex-direction:column;gap:8px}.sched-section-hd{display:flex;align-items:center;gap:6px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--info-label)}.sched-active-pill{display:inline-flex;align-items:center;gap:7px;padding:6px 10px;background:var(--warning-bg);border:1px solid var(--warning-border);border-radius:8px;font-size:12.5px;color:var(--warning);flex-wrap:wrap}.sched-pill-dot{opacity:.45}.sched-pill-time{font-size:11.5px;opacity:.85}.sched-del-btn{margin-left:4px;padding:2px 8px;background:var(--danger-bg);border:1px solid var(--danger-border);border-radius:5px;color:var(--danger);font-size:11px;cursor:pointer;transition:background .12s}.sched-del-btn:hover{background:var(--danger-bg-2)}.sched-add-btn{display:inline-flex;align-items:center;gap:5px;padding:5px 11px;background:none;border:1px dashed var(--border-input);border-radius:6px;color:var(--text-4);font-size:12px;cursor:pointer;transition:border-color .12s,color .12s;align-self:flex-start}.sched-add-btn:hover{border-color:var(--accent);color:var(--accent)}.sched-form-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.sched-dt-input{padding:4px 8px;border:1px solid var(--border-input);border-radius:6px;background:var(--surface-2);color:var(--text);font-size:12px;font-family:inherit;outline:none;transition:border-color .12s}.sched-dt-input:focus{border-color:var(--accent)}.btn-sched-confirm{padding:5px 14px;background:var(--accent);border:none;border-radius:6px;color:#fff;font-size:12px;font-weight:600;cursor:pointer;transition:background .12s}.btn-sched-confirm:hover:not(:disabled){background:var(--accent-h)}.btn-sched-confirm:disabled{opacity:.5;cursor:not-allowed}.btn-sched-dismiss{padding:4px 9px;background:none;border:1px solid var(--border);border-radius:6px;color:var(--text-4);font-size:12px;cursor:pointer;transition:border-color .12s,color .12s}.btn-sched-dismiss:hover{border-color:var(--border-input);color:var(--text-2)}.modal-body .config-panel{margin:-20px -24px}.modal-body .config-panel-header{padding:12px 20px;border-bottom:1px solid #1e2d45;font-size:12px;color:#7a92b8;background:#0f1623;display:flex;align-items:center;justify-content:space-between}.modal-body .config-panel-actions{display:flex;gap:8px}.modal-body .config-panel-actions button{padding:4px 12px;font-size:12px;border-radius:4px;cursor:pointer}#modal-copy-config{background:#1e3a5f;border:1px solid #2a5080;color:#7ab8f5}#modal-copy-config:hover{background:#264d7a}#modal-dl-config{background:transparent;border:1px solid #2a3a50;color:#7a92b8}#modal-dl-config:hover{background:#1a2a3a}.users-search-wrap{position:relative;display:flex;align-items:center;flex:1;max-width:360px;margin:0 12px}.users-search-icon{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--text-5);display:flex;pointer-events:none}.users-search-input{flex:1;min-width:0;padding:7px 30px 7px 32px;border:1px solid var(--border-input);border-right:none;border-radius:7px 0 0 7px;font-size:13px;color:var(--text-2);background:var(--surface-2);outline:none}.users-search-input:focus{border-color:var(--accent);background:var(--surface)}.users-search-clear{position:absolute;right:76px;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--text-5);cursor:pointer;display:flex;padding:2px;line-height:1}.users-search-clear:hover{color:var(--text-2)}.users-search-btn{padding:7px 14px;background:var(--accent-dark);color:#fff;border:1px solid var(--accent-dark);border-radius:0 7px 7px 0;font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap;flex-shrink:0}.users-search-btn:hover{background:var(--accent-dark-h);border-color:var(--accent-dark-h)}.users-pagination{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;border-top:1px solid var(--border-3)}.pagination-info{font-size:12px;color:var(--text-5)}.pagination-pages{display:flex;align-items:center;gap:4px}.page-btn{min-width:30px;height:30px;padding:0 8px;border:1px solid var(--border-input);background:var(--surface);color:var(--text-4);font-size:12.5px;font-weight:500;border-radius:6px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .12s,border-color .12s;line-height:1}.page-btn:hover:not(:disabled){background:var(--accent-bg);border-color:var(--info-border)}.page-btn.active{background:var(--accent-dark);border-color:var(--accent-dark);color:#fff;pointer-events:none}.page-btn:disabled{opacity:.35;cursor:not-allowed}.page-ellipsis{color:var(--text-5);font-size:13px;padding:0 2px}.sp-wrap{display:flex;flex-direction:column;gap:16px}.sp-range-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:10px 14px;flex-wrap:wrap}.sp-presets{display:flex;gap:6px;flex-wrap:wrap}.sp-preset{padding:5px 13px;border:1px solid var(--border-input);background:transparent;color:var(--text-4);font-size:12px;font-weight:600;border-radius:20px;cursor:pointer;transition:background .12s,border-color .12s,color .12s}.sp-preset:hover{background:var(--accent-bg);border-color:var(--info-border);color:var(--text-2)}.sp-preset.active{background:var(--accent-dark);border-color:var(--accent-dark);color:#fff}.sp-range-inputs{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.sp-range-field{display:flex;flex-direction:column;gap:2px}.sp-range-lbl{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-5)}.sp-dt{padding:6px 10px;border:1px solid var(--border-input);border-radius:6px;font-size:12.5px;color:var(--text-2);background:var(--surface-2);outline:none;cursor:pointer}.sp-dt:focus{border-color:var(--accent);background:var(--surface)}.sp-range-arrow{color:var(--info-border);font-size:16px;margin-top:14px}.sp-apply{margin-top:14px;padding:6px 16px;background:var(--accent-dark);color:#fff;border:none;border-radius:6px;font-size:12.5px;font-weight:600;cursor:pointer;transition:background .12s}.sp-apply:hover{background:var(--accent-dark-h)}.sp-kpi-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}.sp-kpi{min-width:0;background:var(--surface);border-radius:10px;border:1px solid var(--border);padding:12px 14px;display:flex;align-items:center;gap:10px;border-left:3px solid var(--kpi-c)}.sp-kpi-icon{width:34px;height:34px;border-radius:8px;background:var(--kpi-bg);color:var(--kpi-c);display:flex;align-items:center;justify-content:center;flex-shrink:0}.sp-kpi-lbl{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-5);margin-bottom:4px}.sp-kpi-val{font-size:21px;font-weight:700;color:var(--text);line-height:1}@media (max-width: 1500px){.sp-kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width: 960px){.sp-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.sp-kpi--users{--kpi-c: #f59e0b;--kpi-bg: #fffbeb}.sp-kpi--rx{--kpi-c: #0ea5e9;--kpi-bg: #f0f9ff}.sp-kpi--tx{--kpi-c: #10b981;--kpi-bg: #f0fdf4}.sp-kpi--total{--kpi-c: #8b5cf6;--kpi-bg: #f5f3ff}[data-theme=dark] .sp-kpi--users{--kpi-bg: #1e1200}[data-theme=dark] .sp-kpi--rx{--kpi-bg: #061828}[data-theme=dark] .sp-kpi--tx{--kpi-bg: #041c10}[data-theme=dark] .sp-kpi--total{--kpi-bg: #130e22}.sp-tabs{display:flex;gap:0;border-bottom:2px solid var(--border)}.sp-tab{padding:10px 20px;border:none;background:transparent;font-size:13px;font-weight:600;color:var(--text-5);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;transition:color .12s,border-color .12s}.sp-tab:hover{color:var(--text-3)}.sp-tab.active{color:var(--accent-dark);border-bottom-color:var(--accent-dark)}.sp-rx{color:#0ea5e9;font-weight:500}.sp-tx{color:#10b981;font-weight:500}.sp-sortable{cursor:pointer;user-select:none;white-space:nowrap}.sp-sortable:hover,.sp-sorted{color:var(--accent-dark)}.sp-sort-icon{font-style:normal}.th-sortable{cursor:pointer;user-select:none;white-space:nowrap}.th-sortable:hover,.u-sorted{color:var(--accent-dark)}.u-sort-icon{font-style:normal;font-weight:400}.stats-server-table{table-layout:auto}.stats-server-table th:nth-child(1){width:auto}.stats-server-table .sp-col-num{width:110px;text-align:right;font-variant-numeric:tabular-nums}.lb-hd{display:flex;align-items:center;justify-content:space-between;text-transform:none;letter-spacing:0;gap:12px}.lb-title{font-size:15px;font-weight:700;color:var(--text);letter-spacing:-.01em;text-transform:none;display:inline-flex;align-items:baseline;gap:8px}.lb-title-sub{font-size:11px;font-weight:500;color:var(--text-5);text-transform:none;letter-spacing:0}.lb-user-id{margin-top:2px;color:var(--text-5);font-size:11px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lb-row--compact .lb-user-id{font-size:10px}.lb-view-all-btn{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:600;color:var(--accent);background:var(--accent-bg);border:1px solid transparent;border-radius:7px;padding:5px 10px 5px 12px;cursor:pointer;transition:all .12s;font-family:inherit}.lb-view-all-btn:hover{background:var(--accent);color:#fff;transform:translate(1px)}.lb-date-wrap{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;background:var(--surface);border:1px solid var(--border);border-radius:8px;color:var(--text-4);transition:border-color .15s,box-shadow .15s}.lb-date-wrap:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg)}.lb-date-input{font-size:13px;font-weight:500;border:none;background:transparent;color:var(--text);cursor:pointer;outline:none;padding:0;font-family:inherit}.lb-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;overflow:hidden}.lb-list{display:flex;flex-direction:column}.lb-empty{padding:32px 20px;text-align:center;color:var(--text-5);font-size:13px}.lb-row{display:grid;grid-template-columns:32px 32px 1fr auto;align-items:center;gap:12px;padding:10px 14px;border-bottom:1px solid var(--border-3);transition:background .12s}.lb-row:last-child{border-bottom:none}.lb-row:hover{background:var(--surface-3)}.lb-row--compact{padding:8px 12px;gap:10px;grid-template-columns:26px 30px 1fr auto}.lb-row--compact .lb-rank-badge{width:24px;height:24px;font-size:11px;border-radius:7px}.lb-row--compact .lb-avatar{width:30px;height:30px;font-size:12px}.lb-row--compact .lb-main{gap:2px}.lb-row--compact .lb-name{font-size:13px}.lb-row--compact .lb-total{font-size:13px;min-width:70px}.lb-rank-badge{width:28px;height:28px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:var(--text-4);background:var(--surface-2);font-variant-numeric:tabular-nums}.lb-rank-badge.lb-rank--gold{color:#fff;background:linear-gradient(135deg,#f5c842,#d99930);box-shadow:0 2px 6px #d9993059}.lb-rank-badge.lb-rank--silver{color:#fff;background:linear-gradient(135deg,#c7cdd6,#8a94a3);box-shadow:0 2px 6px #8a94a34d}.lb-rank-badge.lb-rank--bronze{color:#fff;background:linear-gradient(135deg,#d38b58,#9e5a2d);box-shadow:0 2px 6px #9e5a2d4d}.lb-avatar{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,var(--accent) 0%,var(--accent-dark) 100%);color:#fff;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;letter-spacing:.02em;flex-shrink:0}.lb-main{min-width:0;display:flex;flex-direction:column;gap:5px}.lb-name{font-size:14px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lb-bar{height:4px;background:var(--border-3);border-radius:3px;overflow:hidden}.lb-bar-fill{height:100%;background:linear-gradient(90deg,var(--accent) 0%,#6b94e0 100%);border-radius:3px;transition:width .4s ease}.lb-sub{display:flex;gap:12px;font-size:11px;color:var(--text-5);font-variant-numeric:tabular-nums}.lb-sub--compact{font-size:10.5px;gap:10px}.lb-sub-rx{color:#2f7ac9}.lb-sub-tx{color:#14b8a6}.lb-total{font-size:14px;font-weight:700;color:var(--text);font-variant-numeric:tabular-nums;white-space:nowrap;text-align:right;min-width:80px}.lb-footer{padding:14px;display:flex;justify-content:center;border-top:1px solid var(--border-3);background:var(--surface-2)}.lb-more-btn{display:inline-flex;align-items:center;gap:10px;font-size:13px;font-weight:600;padding:8px 18px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--accent);cursor:pointer;transition:all .15s}.lb-more-btn:hover{background:var(--accent);border-color:var(--accent);color:#fff;transform:translateY(-1px);box-shadow:0 4px 10px #3a6bc940}.lb-more-btn:disabled{opacity:.55;cursor:default;transform:none;box-shadow:none}.lb-more-btn.is-loading .lb-more-label:after{content:"\2026"}.lb-more-count{font-size:11px;font-weight:500;padding:2px 8px;background:var(--accent-bg);color:var(--accent);border-radius:10px;font-variant-numeric:tabular-nums}.lb-more-btn:hover .lb-more-count{background:#ffffff38;color:#fff}@media (max-width: 600px){.lb-row{grid-template-columns:28px 32px 1fr auto;gap:10px;padding:10px 12px}.lb-avatar{width:32px;height:32px;font-size:12px}.lb-rank-badge{width:24px;height:24px;font-size:11px}.lb-total{font-size:13px;min-width:64px}}.modal-backdrop[hidden]{display:none}.lb-modal{max-width:620px}.lb-modal-header{align-items:center;gap:12px}.lb-modal-title-wrap{min-width:0}.lb-modal-actions{display:inline-flex;align-items:center;gap:10px;flex-shrink:0}.lb-modal-body{padding:0}.lb-modal-body .lb-list{background:var(--surface)}.lb-modal-body .lb-row:first-child{border-top:none}.lb-modal-footer{justify-content:center;background:var(--surface-2)}@media (max-width: 520px){.lb-modal-header{flex-wrap:wrap}.lb-modal-actions{order:3;width:100%;justify-content:space-between}}.us-range-bar{display:flex;flex-direction:column;gap:8px;padding:12px;background:var(--surface-2);border:1px solid var(--border);border-radius:8px;margin-bottom:12px}.us-presets{display:flex;gap:5px;flex-wrap:wrap}.us-preset{padding:4px 11px;border:1px solid var(--border-input);background:var(--surface);color:var(--text-4);font-size:11.5px;font-weight:600;border-radius:20px;cursor:pointer;transition:background .12s,border-color .12s,color .12s}.us-preset:hover{background:var(--accent-bg);border-color:var(--info-border)}.us-preset.active{background:var(--accent-dark);border-color:var(--accent-dark);color:#fff}.us-range-inputs{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.us-dt{padding:5px 8px;border:1px solid var(--border-input);border-radius:6px;font-size:11.5px;color:var(--text-2);background:var(--surface);outline:none;flex:1;min-width:140px}.us-dt:focus{border-color:var(--accent)}.us-arrow{color:var(--info-border);font-size:14px}.us-apply{padding:5px 12px;background:var(--accent-dark);color:#fff;border:none;border-radius:6px;font-size:11.5px;font-weight:600;cursor:pointer;white-space:nowrap}.us-apply:hover{background:var(--accent-dark-h)}.us-kpis{display:flex;gap:10px;margin-bottom:12px}.us-kpi{flex:1;background:var(--surface-2);border:1px solid var(--border);border-radius:7px;border-left:3px solid var(--kpi-c);padding:10px 14px}.us-kpi-lbl{font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-5);margin-bottom:3px}.us-kpi-val{font-size:16px;font-weight:700;color:var(--text)}.us-kpi--rx{--kpi-c: #0ea5e9}.us-kpi--tx{--kpi-c: #10b981}.us-kpi--total{--kpi-c: #8b5cf6}.us-traffic-table{margin-top:0}.locations-note{margin-bottom:12px;padding:9px 12px;border:1px solid var(--info-border);border-radius:8px;background:var(--info-bg);color:var(--text-4);font-size:12.5px;line-height:1.45}.locations-table-wrap{overflow-x:auto;border:1px solid var(--border-2);border-radius:8px}.locations-table{min-width:980px}.locations-table thead th,.locations-table tbody td{white-space:nowrap}.locations-table tbody td:nth-child(2),.locations-table tbody td:nth-child(6),.locations-table tbody td:nth-child(7){white-space:normal}.location-event-row{cursor:default}.location-main{display:block;font-weight:600;color:var(--text)}.location-sub{display:block;margin-top:2px;color:var(--text-5);font-size:11px;font-family:inherit}.location-ip-diff{color:var(--warning);font-weight:700}.location-badges{display:flex;align-items:center;gap:5px;flex-wrap:wrap}.location-pill{display:inline-block;padding:2px 7px;border-radius:20px;border:1px solid var(--border-2);background:var(--surface-2);color:var(--text-5);font-size:10.5px;font-weight:700;line-height:1.3;text-transform:uppercase;letter-spacing:.04em}.location-source-client{background:var(--accent-bg);border-color:var(--info-border);color:var(--accent-dark)}.location-source-backend{background:var(--surface-2);color:var(--text-5)}.location-provider{background:var(--badge-free-bg);border-color:var(--border-2);color:var(--badge-free-fg)}.status-vpn-on{background:var(--warning-bg);color:var(--warning)}.status-vpn-off{background:var(--success-bg);color:var(--success)}.locations-pagination{padding-left:0;padding-right:0;border-top:none}.location-detail-row td{background:var(--surface-2);padding:0}.location-detail-panel{padding:14px;display:flex;flex-direction:column;gap:14px;border-top:1px solid var(--border-3);border-bottom:1px solid var(--border-3)}.location-detail-section{min-width:0}.location-detail-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.location-detail-item{background:var(--info-bg);border:1px solid var(--info-border);border-radius:8px;padding:9px 11px;min-width:0}.location-detail-item .info-value{display:block;margin-top:4px;color:var(--text-2);font-size:12.5px;line-height:1.35;overflow-wrap:anywhere}.location-detail-wide{grid-column:span 2}.location-map-links{display:flex;flex-wrap:wrap;gap:8px}.location-map-links a{color:var(--accent);text-decoration:none;font-weight:600}.location-map-links a:hover{text-decoration:underline}.geoip-status{display:flex;align-items:center;gap:8px;margin:-4px 0 12px}.geoip-status-toggle{padding:4px 10px;border-radius:6px;border:1px solid var(--border-input);background:var(--surface);color:var(--text-4);font-size:12px;font-weight:600;cursor:pointer}.geoip-status-toggle:hover:not(:disabled){background:var(--accent-bg);border-color:var(--info-border);color:var(--accent-dark)}.geoip-status-toggle:disabled{opacity:.55;cursor:not-allowed}.geoip-status-result{font-size:12px;color:var(--text-5)}.tier-mgmt{border-top:1px solid var(--border-2);padding-top:14px}.tier-mgmt-row{display:flex;align-items:center;gap:8px;margin-bottom:8px}.tier-mgmt-row:last-child{margin-bottom:0}.tier-mgmt-label{font-size:12px;font-weight:600;color:var(--text-5);min-width:120px;flex-shrink:0}.tier-date-input{flex:1;padding:6px 10px;border:1px solid var(--border-input);border-radius:6px;font-size:13px;font-family:inherit;color:var(--text);background:var(--surface-3);outline:none}.tier-date-input:focus{border-color:var(--accent);box-shadow:0 0 0 2px #3a6bc91f}.premium-picker{position:relative;flex:1;min-width:0;max-width:280px}.premium-picker-trigger{display:flex;align-items:center;gap:7px;width:100%;padding:5px 9px;border:1px solid var(--border-input);border-radius:6px;font-size:12px;font-family:inherit;color:var(--text-2);background:var(--surface-3);cursor:pointer;text-align:left;transition:border-color .12s}.premium-picker-trigger:hover,.premium-picker--open .premium-picker-trigger{border-color:var(--accent)}.premium-picker-icon{display:inline-flex;color:var(--text-5);flex-shrink:0;opacity:.7}#premium-picker-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.premium-picker-popover{position:fixed;z-index:1200;width:318px;padding:0;border:1px solid var(--border);border-radius:8px;background:var(--surface);box-shadow:0 10px 32px #00000047;overflow:hidden}.premium-cal-layout{display:flex;min-height:0}.premium-cal-presets{display:flex;flex-direction:column;gap:2px;width:92px;flex-shrink:0;padding:8px 6px;border-right:1px solid var(--border-2);background:var(--surface-2)}.premium-cal-preset{padding:6px 8px;border:none;border-radius:5px;background:transparent;color:var(--text-4);font-size:11px;font-weight:500;font-family:inherit;text-align:left;cursor:pointer;white-space:nowrap;transition:background .1s,color .1s}.premium-cal-preset:hover{background:var(--accent-bg);color:var(--accent)}.premium-cal-main{flex:1;min-width:0;padding:8px 10px 6px}.premium-cal-head{display:flex;align-items:center;gap:4px;margin-bottom:6px}.premium-cal-title{flex:1;font-size:12px;font-weight:600;color:var(--text-2);text-align:center;letter-spacing:-.01em}.premium-cal-nav{width:22px;height:22px;border:none;border-radius:4px;background:transparent;color:var(--text-4);font-size:15px;line-height:1;cursor:pointer}.premium-cal-nav:hover{background:var(--surface-3);color:var(--text-2)}.premium-cal-weekdays{display:grid;grid-template-columns:repeat(7,1fr);margin-bottom:2px}.premium-cal-weekdays span{font-size:9px;font-weight:600;color:var(--text-5);text-align:center;padding:2px 0;text-transform:uppercase;letter-spacing:.02em}.premium-cal-wknd{color:#c97a6a}.premium-cal-days{display:grid;grid-template-columns:repeat(7,1fr);gap:1px}.premium-cal-day{display:flex;align-items:center;justify-content:center;height:26px;border:none;border-radius:5px;background:transparent;color:var(--text-3);font-size:11px;font-weight:500;cursor:default;padding:0}button.premium-cal-day{cursor:pointer}button.premium-cal-day:hover{background:var(--surface-3)}.premium-cal-day--muted{color:var(--text-6, var(--text-5));opacity:.35;font-size:10px}.premium-cal-day--weekend:not(.premium-cal-day--selected){color:#c97a6a}.premium-cal-day--today:not(.premium-cal-day--selected){box-shadow:inset 0 0 0 1px var(--border)}.premium-cal-day--selected{background:var(--accent)!important;color:#fff!important;font-weight:600}.premium-cal-footer{display:flex;align-items:center;gap:6px;padding:7px 8px;border-top:1px solid var(--border-2);background:var(--surface-2)}.premium-cal-time-input{flex:1;min-width:0;height:30px;padding:0 8px;border:1px solid var(--border-input);border-radius:6px;font-size:12px;font-family:inherit;color:var(--text-2);background:var(--surface-3);outline:none}.premium-cal-time-input:focus{border-color:var(--accent)}.premium-cal-apply{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;flex-shrink:0;border:1px solid var(--border-input);border-radius:6px;background:var(--surface-3);color:var(--accent);cursor:pointer;transition:background .12s,border-color .12s}.premium-cal-apply:hover{background:var(--accent-bg);border-color:var(--accent)}.premium-cal-apply:disabled{opacity:.5;cursor:not-allowed}#user-modal .modal-body{padding:14px 20px 16px}#user-modal .info-section{margin-bottom:10px}#user-modal .info-section:last-child{margin-bottom:0}#user-modal .info-section-title{margin-bottom:6px;font-size:10px}#user-modal .info-grid{gap:6px;margin-bottom:0}#user-modal .info-item{padding:8px 10px;gap:3px;border-radius:8px}#user-modal .info-item--stat{background:var(--info-bg);border-color:var(--info-border)}#user-modal .info-item.item-success{background:var(--success-bg);border-color:var(--success-border)}#user-modal .info-item.item-success .info-label{color:var(--success)}#user-modal .info-item.item-success .info-value{color:var(--success-dark);font-weight:700}#user-modal .info-item.item-warning{background:var(--warning-bg);border-color:var(--warning-border)}#user-modal .info-item.item-warning .info-label{color:var(--warning)}#user-modal .info-item.item-warning .info-value{color:var(--warning);font-weight:700}#user-modal .info-item--type-free{background:var(--badge-free-bg);border-color:color-mix(in srgb,var(--badge-free-fg) 28%,transparent)}#user-modal .info-item--type-free .info-label{color:var(--badge-free-fg)}#user-modal .info-item--type-premium{background:var(--badge-amber-bg);border-color:color-mix(in srgb,var(--badge-amber-fg) 30%,transparent)}#user-modal .info-item--type-premium .info-label{color:var(--badge-amber-fg)}#user-modal .info-item--type-premium .info-value{color:var(--text);font-weight:700}#user-modal .info-item--type-free_premium{background:#2ea0431f;border-color:#6ee7b747}#user-modal .info-item--type-free_premium .info-label{color:#6ee7b7}#user-modal .info-item--traffic .info-label{color:var(--info-label)}#user-modal .info-value{font-size:13px}#user-modal .info-value--inline{display:flex;align-items:center;gap:6px;flex-wrap:wrap}#user-modal .info-value--traffic{display:flex;flex-direction:column;gap:1px}#user-modal .info-sub-date{margin-top:1px;font-size:10.5px}#user-modal .traffic-rx{color:#3a8fd4;font-size:12px;font-weight:600}#user-modal .traffic-tx{color:#2e9d4a;font-size:12px;font-weight:600}#user-modal .user-note-field{margin-top:6px;padding:8px 10px}#user-modal .user-note-field:first-child{margin-top:0}#user-modal .modal-note-cell{min-height:30px;padding:4px 2px 4px 0;background:transparent;border:none}#user-modal .ban-confirm-inline{display:none;align-items:center;gap:4px}#user-modal .ban-confirm-text{font-size:11px;color:var(--text-4)}#user-modal .tier-mgmt{border-top:none;padding-top:0;margin-bottom:10px}#user-modal .tier-mgmt-row{margin-bottom:6px;gap:8px;padding:0;background:none;border:none;border-radius:0}#user-modal .tier-mgmt-row:last-child{margin-bottom:0}#user-modal .tier-mgmt-label{min-width:100px;font-size:11px}#user-modal .tier-mgmt-hint{font-size:10px;line-height:1.3;margin-right:4px}.premium-expiring-card{margin-bottom:20px;padding:12px 16px}.premium-expiring-card--collapsed{padding-bottom:12px}.premium-expiring-header{display:flex;align-items:center;gap:10px;margin-bottom:10px}.premium-expiring-title{font-size:13px;font-weight:600;color:var(--text-4)}.premium-expiring-card .tier-date-input{flex:none;width:160px}.premium-expiring-summary{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:9px 12px;border:1px solid var(--border-2);border-radius:8px;background:var(--surface-3);color:inherit;font:inherit;text-align:left;cursor:pointer;transition:border-color .15s ease,background .15s ease}.premium-expiring-summary:hover:not(:disabled){border-color:var(--border);background:var(--surface-2)}.premium-expiring-summary:disabled{cursor:default;opacity:.85}.premium-expiring-summary-stats{display:flex;align-items:center;gap:14px;flex-wrap:wrap;min-width:0}.premium-expiring-stat{font-size:13px;color:var(--text-3);white-space:nowrap}.premium-expiring-stat strong{font-size:15px;font-weight:700;color:var(--text);font-variant-numeric:tabular-nums}.premium-expiring-stat--muted{color:var(--text-5)}.premium-expiring-stat--error{color:var(--danger)}.premium-expiring-stat--hint{font-size:11px;color:var(--text-5)}.premium-expiring-chevron{display:flex;align-items:center;justify-content:center;color:var(--text-5);flex-shrink:0;transition:transform .15s ease}.premium-expiring-card--expanded .premium-expiring-chevron{transform:rotate(180deg)}.premium-expiring-card--expanded .premium-expiring-stat--hint{display:none}.premium-expiring-details{margin-top:10px}.premium-expiring-details .data-table{margin-top:0}.premium-expiring-group-hdr td{padding:6px 14px;background:var(--surface-3);border-top:1px solid var(--border)}.premium-expiring-group-hdr:first-child td{border-top:none}.premium-expiring-group-label{font-size:11.5px;font-weight:600;color:var(--text-5);text-transform:uppercase;letter-spacing:.04em}.premium-expiring-group-count{font-size:11px;font-weight:700;background:var(--surface-2);color:var(--text-4);border:1px solid var(--border);border-radius:999px;padding:1px 7px}.tier-hour-input{width:76px;flex-shrink:0;padding:6px;border:1px solid var(--border-input);border-radius:6px;font-size:13px;font-family:inherit;color:var(--text);background:var(--surface-3);outline:none;cursor:pointer}.tier-hour-input:focus{border-color:var(--accent);box-shadow:0 0 0 2px #3a6bc91f}.users-version-filter{width:auto;min-width:180px;max-width:240px;padding:6px 28px 6px 10px}.tier-num-input{width:120px;padding:6px 10px;border:1px solid var(--border-input);border-radius:6px;font-size:13px;font-family:inherit;color:var(--text);background:var(--surface-3);outline:none}.tier-num-input:focus{border-color:var(--accent);box-shadow:0 0 0 2px #3a6bc91f}.btn-sm{padding:5px 12px;font-size:12.5px}.db-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;max-width:900px}.db-card{display:flex;flex-direction:column;gap:14px}.db-desc{margin:0;font-size:13.5px;color:var(--text-3);line-height:1.55}.db-hint{margin:8px 0 0;color:var(--text-4);font-size:12.5px;line-height:1.45}.db-hint-warn,.db-warn-text{color:var(--warning)}.db-actions{display:flex;gap:10px}.db-mode-toggle{display:flex;border:1px solid var(--border-input);border-radius:8px;overflow:hidden;width:fit-content}.db-mode-btn{padding:6px 18px;font-size:13px;font-weight:500;background:none;border:none;color:var(--text-5);cursor:pointer;transition:background .12s,color .12s}.db-mode-btn.active{background:var(--accent);color:#fff}.db-file-input{font-size:13px;color:var(--text-2)}.db-url-input{width:100%;padding:8px 12px;border:1px solid var(--border-input);border-radius:8px;font-size:13.5px;color:var(--text-2);background:var(--surface-2);box-sizing:border-box;outline:none}.db-url-input:focus{border-color:var(--accent);background:var(--surface);box-shadow:0 0 0 2px #3a6bc91a}.db-result{padding:10px 14px;border-radius:8px;font-size:13px;font-weight:500}.db-result-ok{background:var(--success-bg-2);color:var(--success-dark)}.db-result-err{background:var(--danger-bg-2);color:var(--danger-dark)}.db-result-detail{margin:8px 0 0;padding:8px;background:var(--surface-2);border:1px solid var(--border-3);border-radius:4px;font-size:.75rem;white-space:pre-wrap;word-break:break-word;max-height:200px;overflow-y:auto;color:inherit;opacity:.85}.uploads-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.uploads-header-left h1{font-size:20px;font-weight:700;color:var(--text);letter-spacing:-.02em;margin:0 0 2px}.page-subtitle{font-size:13px;color:var(--text-4);margin:0;flex:1}.uploads-summary{display:flex;flex-direction:column;gap:2px;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:16px 22px;margin-bottom:20px;width:fit-content;min-width:120px}.uploads-count-label{font-size:12px;color:var(--text-4);font-weight:500;text-transform:uppercase;letter-spacing:.05em}.uploads-count{font-size:28px;font-weight:700;color:var(--text);line-height:1.1}.uploads-table-wrap{background:var(--surface);border:1px solid var(--border);border-radius:10px;overflow:hidden}.uploads-filename{display:flex;align-items:center;gap:8px}.uploads-file-icon{flex-shrink:0;display:flex;align-items:center}.uploads-name-link{color:var(--text);text-decoration:none;font-weight:500;font-size:13.5px}.uploads-name-link:hover{color:var(--accent);text-decoration:underline}.uploads-size{color:var(--text-4);font-size:13px;white-space:nowrap}.uploads-url-cell{max-width:0}.uploads-url-text{display:block;font-size:12.5px;color:var(--text-4);font-family:ui-monospace,monospace;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.uploads-actions-cell{white-space:nowrap;vertical-align:middle}.uploads-actions-cell .uploads-copy-btn,.uploads-actions-cell .uploads-delete-btn{display:inline-block}.uploads-copy-btn{padding:4px 10px;font-size:11.5px;font-weight:600;border:1px solid var(--accent);border-radius:5px;cursor:pointer;background:var(--accent);color:#fff;transition:background .15s;margin-right:6px}.uploads-copy-btn:hover{background:var(--accent-h);border-color:var(--accent-h)}.uploads-delete-btn{padding:4px 10px;font-size:11.5px;font-weight:600;border:1px solid var(--danger-border);border-radius:5px;cursor:pointer;background:transparent;color:var(--danger);transition:background .15s,border-color .15s}.uploads-delete-btn:hover{background:var(--danger-bg);border-color:var(--danger)}.upload-drop-zone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;border:2px dashed var(--border-input);border-radius:10px;padding:36px 24px;cursor:pointer;transition:border-color .15s,background .15s;background:var(--surface-3);user-select:none}.upload-drop-zone:hover,.upload-drop-zone.drag-over{border-color:var(--accent);background:var(--accent-bg)}.upload-drop-icon{color:var(--text-5)}.upload-drop-zone:hover .upload-drop-icon,.upload-drop-zone.drag-over .upload-drop-icon{color:var(--accent)}.upload-drop-text{font-size:13.5px;font-weight:500;color:var(--text-2)}.upload-hint-text{font-size:12px;color:var(--text-5)}.upload-selected-file{display:flex;align-items:center;justify-content:space-between;gap:16px;background:var(--accent-bg);border:1px solid var(--info-border);border-radius:6px;padding:8px 12px;width:100%;box-sizing:border-box}.upload-selected-name{font-size:13.5px;font-weight:600;color:var(--accent-dark);word-break:break-all}.upload-selected-size{font-size:12px;color:var(--text-4);white-space:nowrap;flex-shrink:0}.sov-section{display:flex;flex-direction:column;gap:12px}.sov-section-hd{font-size:12px;font-weight:700;color:var(--text-4);text-transform:uppercase;letter-spacing:.07em}.sov-cards{display:grid;gap:14px}.sov-bw{grid-template-columns:repeat(4,minmax(0,1fr))}.sov-online{grid-template-columns:repeat(3,1fr)}.sov-sys,.sov-users{grid-template-columns:repeat(5,1fr)}@media (max-width: 960px){.sov-bw{grid-template-columns:repeat(2,1fr)}.sov-online{grid-template-columns:repeat(3,1fr)}.sov-sys{grid-template-columns:repeat(2,1fr)}.sov-users{grid-template-columns:repeat(3,1fr)}}@media (max-width: 520px){.sov-bw,.sov-online,.sov-sys,.sov-users{grid-template-columns:repeat(2,1fr)}}.sov-card{min-width:0;background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--sov-c, var(--accent));border-radius:10px;padding:12px 14px;display:flex;align-items:center;gap:11px}.sov-bw .sov-card{padding:10px 13px}.sov-card-icon{width:34px;height:34px;border-radius:8px;background:var(--sov-bg, var(--accent-bg));color:var(--sov-c, var(--accent));display:flex;align-items:center;justify-content:center;flex-shrink:0}.sov-card-body{flex:1;min-width:0}.sov-card-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-5);margin-bottom:2px}.sov-card-value{font-size:18px;font-weight:700;color:var(--text);line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sov-card-delta{font-size:11px;color:var(--text-5);margin-top:2px;min-height:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sov-card--sm{padding:9px 12px;gap:9px}.sov-card--sm .sov-card-icon{width:28px;height:28px;border-radius:7px}.sov-card--sm .sov-card-value{font-size:16px}.sov-card--sm .sov-card-delta{display:none}.sov-card-delta.delta-up{color:var(--success)}.sov-card-delta.delta-down{color:var(--danger)}.sov-card--blue{--sov-c: #3b82f6;--sov-bg: #eff6ff}.sov-card--violet{--sov-c: #8b5cf6;--sov-bg: #f5f3ff}.sov-card--teal{--sov-c: #0ea5e9;--sov-bg: #f0f9ff}.sov-card--amber{--sov-c: #f59e0b;--sov-bg: #fffbeb}.sov-card--green{--sov-c: #10b981;--sov-bg: #f0fdf4}.sov-card--rose{--sov-c: #f43f5e;--sov-bg: #fff1f2}[data-theme=dark] .sov-card--blue{--sov-bg: #0f1e38}[data-theme=dark] .sov-card--violet{--sov-bg: #130e22}[data-theme=dark] .sov-card--teal{--sov-bg: #061828}[data-theme=dark] .sov-card--amber{--sov-bg: #1e1200}[data-theme=dark] .sov-card--green{--sov-bg: #041c10}[data-theme=dark] .sov-card--rose{--sov-bg: #200810}.act-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.act-period{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:16px 18px}.act-period-hd{font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--text-4);padding-bottom:10px;margin-bottom:12px;border-bottom:1px solid var(--border-2)}.act-metrics{display:flex;flex-direction:column;gap:11px}.act-metric{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.act-metric-lbl{font-size:12px;color:var(--text-4);white-space:nowrap}.act-metric-val{font-size:17px;font-weight:600;color:var(--text-2);font-variant-numeric:tabular-nums;letter-spacing:-.02em}.act-metric--new{margin-top:6px;padding-top:10px;border-top:1px solid var(--border-2)}.act-metric--new .act-metric-val{color:#10b981}@media (max-width: 680px){.act-grid{grid-template-columns:1fr}}.conn-stats-panel{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:14px 16px;min-width:0}.conn-stats-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.conn-stats-title-wrap{min-width:0}.conn-stats-title{font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--text-4)}.conn-stats-subtitle{font-size:12px;color:var(--text-5);margin-top:2px}.conn-stats-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:10px}.conn-kpi{min-width:0;display:flex;align-items:center;gap:9px;padding:9px 10px;border:1px solid var(--border-2);border-radius:8px;background:var(--surface-3);border-left:3px solid var(--conn-c, var(--accent))}.conn-kpi-icon{width:28px;height:28px;border-radius:7px;background:var(--conn-bg, var(--accent-bg));color:var(--conn-c, var(--accent));display:flex;align-items:center;justify-content:center;flex-shrink:0}.conn-kpi-body{min-width:0;flex:1}.conn-kpi-label{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-5);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.conn-kpi-value{font-size:16px;font-weight:700;color:var(--text);line-height:1.15;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.conn-kpi-note{font-size:10px;color:var(--text-5);margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.conn-kpi--green{--conn-c: #10b981;--conn-bg: rgba(16, 185, 129, .12)}.conn-kpi--blue{--conn-c: #3b82f6;--conn-bg: rgba(59, 130, 246, .12)}.conn-kpi--rose{--conn-c: #f43f5e;--conn-bg: rgba(244, 63, 94, .12)}.conn-kpi--amber{--conn-c: #f59e0b;--conn-bg: rgba(245, 158, 11, .12)}.conn-stats-timing{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding-top:10px;border-top:1px solid var(--border-2)}.conn-timing-cell{min-width:0;border:1px solid var(--border-2);border-radius:8px;padding:8px 10px;background:var(--surface-3)}.conn-timing-lbl{display:block;font-size:10px;font-weight:700;color:var(--text-5);text-transform:uppercase;letter-spacing:.05em;margin-bottom:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.conn-timing-val{display:block;font-size:15px;font-weight:650;color:var(--text-2);font-variant-numeric:tabular-nums;letter-spacing:-.02em}.conn-diag-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:12px}.conn-diag-card{min-width:0;border:1px solid var(--border-2);border-radius:8px;background:var(--surface-3);padding:10px}.conn-diag-card--wide{grid-column:span 2}.conn-diag-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:8px}.conn-diag-head span{font-size:11px;font-weight:800;color:var(--text-3);text-transform:uppercase;letter-spacing:.05em}.conn-diag-head small{font-size:10px;color:var(--text-5);white-space:nowrap}.conn-diag-list,.conn-funnel-list{display:flex;flex-direction:column;gap:7px}.conn-diag-row{min-width:0;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 8px;border-radius:7px;background:var(--surface);border:1px solid var(--border-2)}.conn-diag-main{min-width:0}.conn-diag-main span,.conn-diag-metrics strong{display:block;color:var(--text-2);font-size:12px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.conn-diag-main small,.conn-diag-metrics small{display:block;color:var(--text-5);font-size:10px;margin-top:1px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.conn-diag-metrics{min-width:58px;max-width:112px;text-align:right;font-variant-numeric:tabular-nums}.conn-diag-empty{color:var(--text-5);font-size:12px;padding:10px;border:1px dashed var(--border-2);border-radius:8px;text-align:center}.conn-funnel-row{display:grid;grid-template-columns:minmax(95px,1.1fr) minmax(90px,1fr) 42px;align-items:center;gap:8px}.conn-funnel-meta{min-width:0;display:flex;align-items:center;justify-content:space-between;gap:8px;color:var(--text-3);font-size:11px}.conn-funnel-meta span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.conn-funnel-meta strong,.conn-funnel-pct{color:var(--text-2);font-size:11px;font-weight:700;font-variant-numeric:tabular-nums}.conn-funnel-bar{height:7px;border-radius:999px;background:var(--surface);border:1px solid var(--border-2);overflow:hidden}.conn-funnel-bar i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#10b981,#3b82f6)}.conn-funnel-pct{text-align:right}@media (max-width: 960px){.conn-stats-kpis,.conn-stats-timing,.conn-diag-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 520px){.conn-stats-head{flex-direction:column;align-items:stretch}.conn-stats-kpis,.conn-stats-timing{grid-template-columns:repeat(2,minmax(0,1fr))}.conn-diag-grid,.conn-diag-card--wide{grid-template-columns:1fr;grid-column:auto}.conn-funnel-row{grid-template-columns:1fr 70px}.conn-funnel-bar{grid-column:1 / -1;order:3}}.activity-chart-panel{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:16px;min-width:0}.activity-chart-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:14px}.activity-chart-title-wrap{min-width:0}.activity-chart-title{font-size:16px;font-weight:700;color:var(--text);line-height:1.2}.activity-chart-subtitle{margin-top:3px;font-size:12px;color:var(--text-5)}.activity-chart-controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}.activity-range-pills{display:inline-flex;align-items:center;gap:4px;padding:3px;border:1px solid var(--border);border-radius:8px;background:var(--surface-2)}.activity-range-pill{min-width:42px;height:30px;border:0;border-radius:6px;background:transparent;color:var(--text-4);font-size:12px;font-weight:700;cursor:pointer}.activity-range-pill:hover{color:var(--text-2);background:var(--accent-bg)}.activity-range-pill.active{color:#fff;background:var(--accent-dark)}.activity-metric-select{height:36px;min-width:150px;border:1px solid var(--border-input);border-radius:8px;background:var(--surface-2);color:var(--text-2);font-size:12.5px;font-weight:600;padding:0 32px 0 10px;outline:none}.activity-metric-select:focus{border-color:var(--accent);background:var(--surface)}.activity-chart-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:10px}.activity-chart-summary>div{min-width:0;border:1px solid var(--border-2);border-radius:8px;padding:9px 10px;background:var(--surface-3)}.activity-summary-label{display:block;font-size:10px;font-weight:700;color:var(--text-5);text-transform:uppercase;letter-spacing:.06em;margin-bottom:3px}.activity-summary-value{font-size:19px;font-weight:750;color:var(--text);font-variant-numeric:tabular-nums}.activity-summary-value.delta-up{color:var(--success)}.activity-summary-value.delta-down{color:var(--danger)}.activity-chart-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}.activity-chart-frame{position:relative;min-width:720px;height:300px}.activity-chart-svg{display:block;width:100%;height:300px;overflow:visible;touch-action:pan-x}.activity-chart-grid line{stroke:var(--border-2);stroke-width:1}.activity-chart-grid text,.activity-chart-xlabel,.activity-chart-loading{fill:var(--text-5);font-size:12px;font-weight:600}.activity-chart-area{fill:color-mix(in srgb,var(--accent) 14%,transparent)}.activity-chart-line{fill:none;stroke:var(--accent-dark);stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.activity-chart-dots circle{fill:var(--surface);stroke:var(--accent-dark);stroke-width:2.5}.activity-chart-tip{position:absolute;top:0;left:0;z-index:2;min-width:138px;padding:9px 10px;border:1px solid var(--border);border-radius:8px;background:var(--surface);box-shadow:0 8px 24px var(--shadow-lg);pointer-events:none}.activity-tip-date{font-size:11px;font-weight:800;color:var(--text-3);text-transform:uppercase;letter-spacing:.04em;margin-bottom:8px}.activity-tip-row{display:flex;align-items:center;justify-content:space-between;gap:18px;color:var(--text-4);font-size:12px}.activity-tip-row strong{color:var(--text);font-size:15px;font-variant-numeric:tabular-nums}.sp-section-hd{font-size:12px;font-weight:700;color:var(--text-4);text-transform:uppercase;letter-spacing:.07em}.mob-bar{display:none;position:sticky;top:0;z-index:100;height:52px;padding:0 10px 0 16px;background:var(--surface);border-bottom:1px solid var(--border);box-shadow:0 1px 6px var(--shadow-md);align-items:center;justify-content:space-between}.mob-bar-brand{display:flex;align-items:center;gap:10px;min-width:0;flex:1}.mob-bar-dot{width:8px;height:8px;border-radius:50%;background:var(--accent);flex-shrink:0;box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 20%,transparent)}.mob-bar-title{font-size:16px;font-weight:700;color:var(--text);letter-spacing:-.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mob-bar-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}.mob-menu-toggle{position:relative;display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:1px solid var(--border);border-radius:8px;background:none;color:var(--text-3);cursor:pointer;transition:background .15s,border-color .15s,color .15s}.mob-menu-toggle.is-open,.mob-menu-toggle:hover{background:var(--accent-bg);border-color:var(--info-border);color:var(--accent)}.mob-menu{position:fixed;inset:52px 0 0;z-index:99;background:#00000073}.mob-menu:not([hidden]) .mob-menu-panel{animation:mob-panel-in .18s ease-out}@keyframes mob-panel-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.mob-menu-panel{background:var(--surface);border-bottom:1px solid var(--border);box-shadow:0 12px 40px var(--shadow-lg)}.mob-menu-nav{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:14px 14px 10px}.mob-nav-link{display:flex;align-items:center;justify-content:center;padding:14px 8px;border-radius:10px;font-size:14px;font-weight:600;color:var(--text-3);text-decoration:none;background:var(--surface-2);border:1px solid var(--border-3);transition:background .15s,color .15s,border-color .15s;text-align:center;min-height:50px}.mob-nav-link:hover{background:var(--accent-bg);border-color:var(--info-border);color:var(--accent)}.mob-nav-link.active{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:0 2px 8px color-mix(in srgb,var(--accent) 35%,transparent)}.mob-menu-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 14px 14px;border-top:1px solid var(--border-2);flex-wrap:wrap}.mob-user-block{display:flex;flex-direction:column;gap:2px;min-width:0}.mob-username{font-size:14px;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mob-role{font-size:11px;color:var(--text-5);text-transform:uppercase;letter-spacing:.05em}.mob-menu-controls{display:flex;align-items:center;gap:8px;flex-shrink:0}.mob-ctrl-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:1px solid var(--border);border-radius:8px;background:none;color:var(--text-5);cursor:pointer;transition:background .15s,border-color .15s,color .15s}.mob-ctrl-btn:hover{background:var(--accent-bg);border-color:var(--info-border);color:var(--accent)}.mob-logout-btn{display:flex;align-items:center;gap:7px;padding:8px 16px;border:1px solid var(--danger-border);border-radius:8px;background:none;color:var(--danger);font-size:13px;font-weight:600;cursor:pointer;transition:background .15s,border-color .15s;font-family:inherit;white-space:nowrap}.mob-logout-btn:hover{background:var(--danger-bg);border-color:var(--danger)}@media (max-width: 768px){.navbar{display:none}.mob-bar{display:flex}.page-content{padding:14px 12px}.page-header{flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:14px}.users-search-wrap{flex:1 1 100%;max-width:100%;margin:0;order:10}.table-card{overflow-x:auto;-webkit-overflow-scrolling:touch}#users-table{min-width:760px}#servers-table{min-width:780px}#overview-tbody td,#overview-tbody th{white-space:nowrap}.uploads-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.uploads-table-wrap .data-table{min-width:520px}.sp-kpi-grid{grid-template-columns:repeat(2,1fr)}.activity-chart-panel{padding:13px}.activity-chart-head{flex-direction:column;align-items:stretch;gap:12px}.activity-chart-controls{justify-content:flex-start}.activity-range-pills{width:100%;justify-content:space-between}.activity-range-pill{flex:1}.activity-metric-select{width:100%}.activity-chart-summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.activity-chart-summary>div{padding:8px}.activity-summary-value{font-size:16px}.activity-chart-frame{min-width:100%}.sp-range-bar{flex-direction:column;gap:12px;align-items:stretch}.sp-range-inputs{flex-direction:column;align-items:stretch;gap:8px}.sp-range-arrow{display:none}.sp-range-field{flex:none}.sp-dt{width:100%;box-sizing:border-box}.sp-apply{margin-top:0;align-self:stretch;text-align:center}.db-grid{grid-template-columns:1fr;max-width:100%}.uploads-header{flex-wrap:wrap;gap:10px;align-items:flex-start}.modal-backdrop{padding:0;align-items:flex-end}.modal{max-width:100%;max-height:92vh;border-radius:16px 16px 0 0}#user-modal .modal-detail,.modal-sm{max-width:100%}.modal-header{padding:16px 16px 12px}.modal-body{padding:16px}.modal-footer{padding:10px 16px;flex-wrap:wrap;gap:8px}.modal-assign-section{padding:10px 16px 12px}.modal-tabs{padding:0 16px}.modal-tab{padding:10px 12px}.info-grid{grid-template-columns:repeat(2,1fr)}.awg-grid{grid-template-columns:repeat(2,1fr)!important}.stats-totals{grid-template-columns:repeat(2,1fr)}.server-stats-toolbar{align-items:flex-start;flex-direction:column}.server-stats-reset-note{text-align:left}.location-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.location-detail-wide{grid-column:1 / -1}.tier-mgmt-row{flex-wrap:wrap}.tier-mgmt-label{min-width:0;width:100%}.form-card{padding:16px}.form-grid{grid-template-columns:1fr;gap:10px}.add-key-fields{grid-template-columns:1fr}.form-field-pem{grid-column:1}.test-ips-header,.test-ips-toolbar{flex-direction:column;align-items:stretch}.test-ips-composer{grid-template-columns:1fr}.test-ips-hero,.test-ips-toolbar,.test-ips-composer{padding-left:16px;padding-right:16px}.test-ips-toggle{min-width:0;width:100%}.test-ips-window-group,.test-ips-window-controls,#test-ips-window-custom{width:100%}.test-ips-window-controls{flex-direction:column}#test-ips-table{min-width:640px}.ssh-card-hd{flex-direction:column;align-items:flex-start}.auth-field-hd{flex-direction:column;align-items:flex-start;gap:6px}.auth-mode-pills{width:100%}.auth-mode-pill{flex:1;justify-content:center}.users-pagination{flex-direction:column;align-items:flex-start;gap:8px;padding:10px 12px}.pagination-pages,.delete-confirm-inline{flex-wrap:wrap}}@media (max-width: 480px){.page-content{padding:10px}.navbar{padding:6px 10px}.sp-kpi{padding:12px 14px;gap:10px}.sp-kpi-icon{width:30px;height:30px}.sp-kpi-val{font-size:18px}.sov-card-value{font-size:15px}.modal{max-height:96vh}}.role-badge{display:inline-flex;align-items:center;padding:2px 9px;border-radius:20px;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.role-badge--main{background:var(--accent-bg);color:var(--accent);border:1px solid var(--info-border)}.role-badge--secondary{background:var(--surface-2);color:var(--text-3);border:1px solid var(--border-2)}.priv-count-chip{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:700;background:#2ea04329;color:#6ee7b7}.priv-row{display:flex;gap:10px;align-items:flex-start;padding:10px;border:1px solid var(--border-2);border-radius:8px;margin-bottom:8px;cursor:pointer}.priv-row:hover{background:var(--surface-2)}.priv-row input[type=checkbox]{margin-top:3px;width:16px;height:16px;accent-color:var(--accent);cursor:pointer}.priv-row-title{font-size:13px;font-weight:600;color:var(--text-1)}.priv-row-desc{font-size:12px;color:var(--text-3);margin-top:2px}.server-row--shared td.td-actions{opacity:.4}.server-row--shared select,.server-row--shared input,.server-row--shared .ac-toggle,.server-row--shared .visibility-schedule-btn{pointer-events:none;opacity:.65}.shared-chip{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:700;background:#6366f129;color:#a5b4fc;border:1px solid rgba(99,102,241,.28)}.server-share-list{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}.server-share-option{display:inline-flex;align-items:center;gap:6px;padding:6px 9px;border:1px solid var(--border);border-radius:7px;background:var(--surface-2);color:var(--text-2);font-size:12px}.locked-prefix-wrap{display:inline-flex;align-items:stretch;border:1px solid var(--border-2);border-radius:6px;overflow:hidden;background:var(--surface-2)}.locked-prefix-tag{padding:4px 6px;background:var(--surface-3, #1f2937);color:var(--text-3);font-size:12px;user-select:none;border-right:1px solid var(--border-2)}.locked-prefix-input{border:0;outline:none;padding:4px 6px;background:transparent;color:var(--text-1);font-size:12px;min-width:0}.adm-section-hd{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:700;color:var(--text-3);text-transform:uppercase;letter-spacing:.05em;margin:20px 0 10px}.adm-section-hd:first-child{margin-top:0}.adm-count-badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;background:var(--surface-2);border:1px solid var(--border-2);border-radius:10px;font-size:11px;font-weight:700;color:var(--text-3)}.btn-icon-sm{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border:1px solid var(--border-input);border-radius:6px;background:none;color:var(--text-3);cursor:pointer;transition:background .15s,color .15s,border-color .15s;margin-left:auto}.btn-icon-sm:hover{background:var(--accent-bg);border-color:var(--info-border);color:var(--accent)}.adm-assign-panel{background:var(--surface-2);border:1px solid var(--border-2);border-radius:10px;padding:10px;margin-bottom:12px}.adm-search-row{display:flex;gap:8px}.adm-search-input{flex:1;height:34px;padding:0 10px;font-size:13px;border:1px solid var(--border-input);border-radius:7px;background:var(--surface);color:var(--text);outline:none;font-family:inherit}.adm-search-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 15%,transparent)}.adm-search-results{margin-top:8px;display:flex;flex-direction:column;gap:4px}.adm-search-item,.adm-user-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;border-radius:8px;background:var(--surface);border:1px solid var(--border-3)}.adm-user-row{background:var(--surface-2)}.adm-user-info{display:flex;flex-direction:column;gap:2px;min-width:0}.adm-user-name{font-size:13px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.adm-user-id{font-size:11px;color:var(--text-4);font-family:monospace;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.adm-search-loading,.adm-search-empty{font-size:12px;color:var(--text-4);padding:6px 4px}.btn-assign{flex-shrink:0;padding:4px 12px;height:28px;font-size:12px;font-weight:600;border:1px solid var(--accent);border-radius:6px;background:var(--accent-bg);color:var(--accent);cursor:pointer;font-family:inherit;transition:background .15s,color .15s}.btn-assign:hover{background:var(--accent);color:#fff}.btn-assign:disabled{opacity:.5;cursor:default}.btn-unassign{flex-shrink:0;padding:4px 12px;height:28px;font-size:12px;font-weight:600;border:1px solid var(--danger-border);border-radius:6px;background:none;color:var(--danger);cursor:pointer;font-family:inherit;transition:background .15s,color .15s}.btn-unassign:hover{background:var(--danger-bg)}.btn-unassign:disabled{opacity:.5;cursor:default}.adm-already-assigned{flex-shrink:0;font-size:11px;color:var(--text-5);font-style:italic}.adm-users-list{display:flex;flex-direction:column;gap:4px;margin-bottom:6px}.adm-danger-zone{margin-top:24px;padding-top:16px;border-top:1px solid var(--border-2)}.btn-danger-outline{padding:7px 16px;font-size:13px;font-weight:600;border:1px solid var(--danger-border);border-radius:8px;background:none;color:var(--danger);cursor:pointer;font-family:inherit;transition:background .15s}.btn-danger-outline:hover{background:var(--danger-bg)}.btn-danger-outline:disabled{cursor:not-allowed;opacity:.6}.td-na{color:var(--text-7)}@media (max-width: 768px){#admins-table{min-width:560px}}.groups-card-hd{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}.groups-card-sub{font-size:12.5px;color:var(--text-5);margin-top:4px;max-width:540px;line-height:1.5}.create-group-form{border-top:1px solid var(--border-2);padding-top:16px;margin-bottom:16px}.create-group-fields{display:grid;grid-template-columns:200px 1fr;gap:14px 20px;margin-bottom:8px}.da-toggle-row{display:flex;gap:8px;flex-wrap:wrap}.da-pill{display:flex;align-items:center;gap:6px;padding:7px 14px;border-radius:7px;border:1.5px solid var(--border-input);background:transparent;color:var(--text-4);cursor:pointer;font-size:13px;font-weight:500;font-family:inherit;transition:border-color .15s,color .15s,background .15s}.da-pill-sub{font-size:11px;font-weight:400;opacity:.7}.da-pill.active{border-color:var(--accent);color:var(--accent);background:var(--accent-bg)}.da-pill:hover:not(.active){border-color:var(--text-5);color:var(--text-3)}.groups-table{display:flex;flex-direction:column;border:1px solid var(--border);border-radius:8px;overflow:hidden;margin-top:4px}.group-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 14px;background:var(--surface);transition:background .1s}.group-row:not(:last-child){border-bottom:1px solid var(--border-2)}.group-row:hover{background:var(--row-hover)}.group-row-left{display:flex;align-items:center;gap:8px;flex:1;min-width:0}.group-name-wrap{display:flex;align-items:center;gap:0;flex:1;min-width:0}.group-name-display{font-size:13.5px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:3px 0}.group-name-input{display:none;width:160px;padding:4px 8px;border:1px solid var(--border-input);border-radius:5px;font-size:13px;font-family:inherit;color:var(--text);background:var(--surface);outline:none}.group-name-input:focus{border-color:var(--accent)}.group-name-wrap.is-editing .group-name-display{display:none}.group-name-wrap.is-editing .group-name-input{display:block}.group-edit-actions{display:flex;align-items:center;gap:2px;margin-left:4px}.group-row-right{display:flex;align-items:center;gap:8px;flex-shrink:0}.da-badge{font-size:11px;font-weight:600;letter-spacing:.02em;padding:3px 10px;border-radius:20px;border:none;cursor:pointer;font-family:inherit;transition:opacity .15s,transform .1s}.da-badge:hover:not(:disabled){opacity:.75}.da-badge:active:not(:disabled){transform:scale(.96)}.da-badge:disabled{opacity:.5;cursor:not-allowed}.da-badge-open{background:var(--success-bg);color:var(--success);border:1px solid var(--success-border)}.da-badge-private{background:var(--warning-bg);color:var(--warning);border:1px solid var(--warning-border)}.groups-empty{font-size:13px;color:var(--text-5);padding:4px 0 2px}.info-item-group{display:flex;align-items:center;gap:12px;padding:8px 0;border-top:1px solid var(--border-3)}.info-item-group .info-label{flex-shrink:0;min-width:80px;font-size:12px;font-weight:600;color:var(--info-label);text-transform:uppercase;letter-spacing:.04em}.group-select-wrap{display:flex;align-items:center}.group-loading-text,.group-none-hint{font-size:12.5px;color:var(--text-5)}.access-panel{display:flex;flex-direction:column;gap:0;padding:4px 0 0}.access-panel-hint{font-size:12px;color:var(--text-5);line-height:1.5;margin-bottom:14px;padding:10px 12px;background:var(--info-bg);border:1px solid var(--info-border);border-radius:7px}.access-list{display:flex;flex-direction:column;border:1px solid var(--border);border-radius:8px;overflow:hidden}.access-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;background:var(--surface);transition:background .1s;flex-wrap:wrap}.access-row:not(:last-child){border-bottom:1px solid var(--border-2)}.access-row:hover{background:var(--row-hover)}.access-row-info{display:flex;flex-direction:column;gap:5px;flex:1;min-width:120px}.access-group-name{font-size:13.5px;font-weight:600;color:var(--text)}.access-row-badges{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.group-policy-badge{font-size:10px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;padding:2px 7px;border-radius:20px}.policy-open{background:var(--success-bg);color:var(--success);border:1px solid var(--success-border)}.policy-private{background:var(--warning-bg);color:var(--warning);border:1px solid var(--warning-border)}.access-eff-badge{font-size:12px;font-weight:500}.access-eff-ok{color:var(--success)}.access-eff-blocked{color:var(--danger)}.access-override-btns{display:flex;gap:0;border:1px solid var(--border-input);border-radius:7px;overflow:hidden;flex-shrink:0}.access-override-btn{padding:5px 12px;font-size:12px;font-weight:500;background:transparent;color:var(--text-4);border:none;border-right:1px solid var(--border-input);cursor:pointer;font-family:inherit;transition:background .12s,color .12s;white-space:nowrap}.access-override-btn:last-child{border-right:none}.access-override-btn:hover:not(.override-allow-active):not(.override-default-active):not(.override-deny-active):not(:disabled){background:var(--surface-2);color:var(--text-2)}.access-override-btn.override-allow-active{background:var(--success-bg);color:var(--success-dark);font-weight:600}.access-override-btn.override-default-active{background:var(--accent-bg);color:var(--accent-dark);font-weight:600}.access-override-btn.override-deny-active{background:var(--danger-bg);color:var(--danger-dark);font-weight:600}.access-override-btn:disabled{opacity:.45;cursor:not-allowed}.apv-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}.apv-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:16px 18px;display:flex;align-items:center;gap:14px;cursor:pointer;transition:border-color .15s,box-shadow .15s,transform .1s;outline:none}.apv-card:hover{border-color:var(--accent);box-shadow:0 2px 12px var(--shadow-md);transform:translateY(-1px)}.apv-card:focus-visible{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg)}.apv-card-icon{width:44px;height:44px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:700;color:#fff;flex-shrink:0;background:hsl(var(--ph, 200),55%,45%)}[data-theme=dark] .apv-card-icon{background:hsl(var(--ph, 200),45%,38%)}.apv-card-content{flex:1;min-width:0}.apv-card-name{font-size:15px;font-weight:600;color:var(--text);margin-bottom:5px}.apv-card-chips{display:flex;flex-wrap:wrap;gap:5px}.apv-version-chip{font-size:11px;font-weight:600;padding:2px 7px;border-radius:20px;letter-spacing:.01em}.apv-chip-latest{background:var(--accent-bg);color:var(--accent)}.apv-chip-min{background:#fff3e0;color:#a06000}[data-theme=dark] .apv-chip-min{background:#a060002e;color:#f0a020}.apv-chip-none{background:var(--surface-2);color:var(--text-6)}.apv-card-arrow{color:var(--text-6);flex-shrink:0;transition:color .15s}.apv-card:hover .apv-card-arrow{color:var(--accent)}.apv-section-divider{margin:32px 0 24px;border-top:1px solid var(--border)}.apv-empty{text-align:center;padding:60px 20px;color:var(--text-4)}.apv-empty svg{stroke:var(--border-input);margin-bottom:16px}.apv-empty p{font-size:14px;line-height:1.6}.apv-modal-title-group{display:flex;align-items:center;gap:12px;min-width:0;flex:1}.apv-modal-icon{width:38px;height:38px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:700;color:#fff;flex-shrink:0;background:hsl(var(--ph, 200),55%,45%)}[data-theme=dark] .apv-modal-icon{background:hsl(var(--ph, 200),45%,38%)}.apv-controls-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:20px}.apv-control-card{background:var(--surface-2);border:1px solid var(--border);border-radius:10px;padding:12px 14px;display:flex;flex-direction:column;gap:4px}.apv-control-label{font-size:11px;font-weight:600;color:var(--text-4);text-transform:uppercase;letter-spacing:.04em}.apv-control-value{font-size:16px;font-weight:700;color:var(--text);font-variant-numeric:tabular-nums;margin-bottom:6px}.apv-ctrl-btn{align-self:flex-start;font-size:11px;font-weight:600;color:var(--accent);background:none;border:1px solid var(--border-input);border-radius:5px;padding:3px 8px;cursor:pointer;transition:background .12s,border-color .12s}.apv-ctrl-btn:hover{background:var(--accent-bg);border-color:var(--accent)}.apv-add-version-section{margin-bottom:4px}.apv-section-hd{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:700;color:var(--text-3);text-transform:uppercase;letter-spacing:.06em;padding-bottom:10px;border-bottom:1px solid var(--border);margin-bottom:12px}.apv-add-form{background:var(--surface-2);border:1px solid var(--border);border-radius:10px;padding:14px;margin-bottom:12px}.apv-add-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.apv-field{display:flex;flex-direction:column;gap:4px}.apv-field-full{grid-column:1 / -1}.apv-label{font-size:11px;font-weight:600;color:var(--text-3)}.apv-input{background:var(--surface);border:1px solid var(--border-input);border-radius:6px;padding:7px 10px;font-size:13px;color:var(--text);outline:none;transition:border-color .15s,box-shadow .15s;width:100%;box-sizing:border-box}.apv-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg)}.apv-textarea{resize:vertical;min-height:60px;font-family:inherit}.apv-select{cursor:pointer;appearance:auto}.apv-form-error{font-size:12px;color:var(--danger);margin-top:8px}.apv-form-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:12px}.apv-versions-list{display:flex;flex-direction:column;gap:1px;margin-bottom:20px}.apv-version-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:11px 0;border-bottom:1px solid var(--border-2)}.apv-version-row:last-child{border-bottom:none}.apv-ver-left{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1}.apv-ver-num{font-size:14px;font-weight:600;color:var(--text);display:flex;align-items:center;gap:6px;flex-wrap:wrap}.apv-ver-tag{font-size:10px;font-weight:700;padding:1px 6px;border-radius:20px;text-transform:uppercase;letter-spacing:.03em}.apv-ver-tag-latest{background:var(--accent-bg);color:var(--accent)}.apv-ver-tag-min{background:#fff3e0;color:#a06000}[data-theme=dark] .apv-ver-tag-min{background:#a060002e;color:#f0a020}.apv-ver-notes{font-size:12px;color:var(--text-4);white-space:pre-wrap}.apv-ver-url{font-size:11px;color:var(--accent);text-overflow:ellipsis;overflow:hidden;white-space:nowrap;max-width:320px;text-decoration:none}.apv-ver-url:hover{text-decoration:underline}.apv-ver-right{display:flex;align-items:center;gap:10px;flex-shrink:0}.apv-ver-date{font-size:11px;color:var(--text-6);white-space:nowrap}.apv-danger-zone{padding-top:16px;border-top:1px solid var(--border);margin-top:4px}.apv-error{color:var(--danger)}.apv-version-row--editing{background:var(--surface-2);border-radius:8px;border-bottom:none!important;padding:10px;margin-bottom:4px}.apv-ver-edit-form{width:100%;display:flex;flex-direction:column;gap:6px}.apv-ver-edit-hd{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.apv-ver-edit-title{font-size:14px;font-weight:600;color:var(--text);display:flex;align-items:center;gap:6px;flex-wrap:wrap}.apv-ver-edit-actions{display:flex;gap:6px}.apv-ver-save{color:var(--success)!important}.apv-ver-save:hover{background:#1a8a501a!important}@media (max-width: 600px){.apv-controls-row,.apv-add-grid{grid-template-columns:1fr}.apv-ver-right{flex-direction:column;align-items:flex-end;gap:6px}}.sup-toolbar,.sup-thread-actions,.sup-ticket-foot{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.sup-toolbar .active{border-color:var(--accent);color:var(--accent)}.sup-compose{display:grid;grid-template-columns:180px minmax(180px,1fr) 2fr auto;gap:10px;align-items:center;padding:14px;margin-bottom:16px;transition:border-color .18s,box-shadow .18s}.sup-compose-title{font-size:13px;font-weight:650;color:var(--text-2)}.sup-input,.sup-textarea{width:100%;border:1px solid var(--border);background:var(--surface-2);color:var(--text-1);border-radius:8px;padding:9px 10px;font:inherit;outline:none;transition:border-color .14s,box-shadow .14s,background .14s}.sup-input:focus,.sup-textarea:focus{border-color:var(--accent);background:var(--surface);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 14%,transparent)}.sup-textarea{resize:vertical;min-height:40px}.sup-shell{display:grid;grid-template-columns:minmax(320px,.42fr) minmax(420px,.58fr);gap:16px;align-items:start}.sup-list{padding:6px}.sup-ticket{width:100%;display:flex;flex-direction:column;gap:6px;text-align:left;padding:12px;border:1px solid transparent;border-radius:8px;background:transparent;color:inherit;cursor:pointer;transition:background .14s,border-color .14s,transform .14s,box-shadow .14s;animation:sup-ticket-in .22s ease-out both}.sup-ticket:hover,.sup-ticket.active{background:var(--surface-2);border-color:var(--border);transform:translateY(-1px);box-shadow:0 8px 22px color-mix(in srgb,var(--shadow-md) 75%,transparent)}@keyframes sup-ticket-in{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}.sup-ticket-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.sup-ticket-name{color:var(--text-1);font-size:14px;font-weight:650;min-width:0}.sup-ticket-time,.sup-ticket-device,.sup-thread-meta,.sup-msg-time{font-size:12px;color:var(--text-5)}.sup-ticket-time{white-space:nowrap}.sup-ticket-preview{color:var(--text-3);font-size:13px;line-height:1.45}.sup-unread{display:inline-flex;align-items:center;min-height:20px;padding:0 8px;border-radius:999px;background:var(--accent-bg);font-size:11px;font-weight:650;color:var(--accent)}.sup-thread-card{min-height:560px}.sup-thread-empty{display:grid;place-items:center;min-height:520px;color:var(--text-5)}.sup-thread{display:flex;flex-direction:column;min-height:560px;position:relative;transition:opacity .18s}.sup-thread--loading:before{content:"";position:absolute;inset:0 auto auto 0;width:100%;height:3px;background:linear-gradient(90deg,transparent,var(--accent),transparent);animation:sup-thread-load 1.2s ease-in-out infinite;z-index:2}.sup-thread--loading .sup-messages{opacity:.64}@keyframes sup-thread-load{0%{transform:translate(-65%)}to{transform:translate(65%)}}.sup-thread-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:16px;border-bottom:1px solid var(--border)}.sup-thread-title{font-size:16px;font-weight:700;color:var(--text-1)}.sup-thread-device{color:var(--text-5);font-size:12px;text-decoration:none}.sup-thread-meta{padding:10px 16px;border-bottom:1px solid var(--border)}.sup-messages{flex:1;min-height:330px;max-height:520px;overflow:auto;padding:16px;display:flex;flex-direction:column;gap:10px}.sup-msg{display:flex}.sup-msg--admin{justify-content:flex-end}.sup-msg-bubble{max-width:min(74%,620px);border:1px solid var(--border);border-radius:8px;padding:10px 12px 8px;background:var(--surface-2);position:relative;animation:sup-message-in .18s ease-out both;box-shadow:0 10px 26px color-mix(in srgb,var(--shadow-md) 45%,transparent)}.sup-msg--admin .sup-msg-bubble{background:var(--accent-bg);border-color:color-mix(in srgb,var(--accent) 28%,var(--border))}.sup-msg-head,.sup-msg-footer{display:flex;align-items:center;justify-content:space-between;gap:10px}.sup-msg-head{margin-bottom:6px}.sup-msg-author{color:var(--text-2);font-size:12px;font-weight:750}.sup-msg--admin .sup-msg-author{color:var(--accent)}.sup-msg-text{color:var(--text-2);white-space:pre-wrap;word-break:break-word;font-size:14px;line-height:1.5}.sup-msg-text.deleted{color:var(--text-5);font-style:italic}.sup-msg-delete{position:relative;border:0;background:transparent;color:var(--danger);font-size:11px;padding:3px 0;cursor:pointer;border-radius:4px;opacity:.76;transition:opacity .14s,color .14s}.sup-msg-delete:hover{opacity:1}.sup-msg-footer{margin-top:8px}.sup-seen{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;font-size:12px;font-weight:700;line-height:1;border-radius:50%;padding:0}.sup-seen--yes{color:var(--success)}.sup-seen--no{color:var(--text-5)}@keyframes sup-message-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.sup-reply{border-top:1px solid var(--border);padding:14px 16px;display:grid;grid-template-columns:1fr auto;gap:10px;align-items:end}@media (max-width: 900px){.sup-compose,.sup-shell{grid-template-columns:1fr}.sup-thread-card{min-height:420px}.sup-thread-header{flex-direction:column}.sup-thread-actions{width:100%}.sup-thread-actions .btn-sm,.sup-thread-actions button{flex:1}.sup-reply{grid-template-columns:1fr}}.diag-search-wrap{position:relative}.diag-search-input{height:34px;padding:0 12px 0 32px;border:1px solid var(--border);border-radius:8px;background:var(--surface-2);color:var(--text-1);font-size:13px;width:260px;outline:none;transition:border-color .15s}.diag-search-input:focus{border-color:var(--accent)}.diag-search-wrap:before{content:"";position:absolute;left:10px;top:50%;transform:translateY(-50%);width:13px;height:13px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='13' height='13' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'/%3E%3C/svg%3E") no-repeat center}.diag-list{padding:8px 0}.diag-item{padding:14px 20px;border-bottom:1px solid var(--border);cursor:pointer;transition:background .1s}.diag-item:last-child{border-bottom:none}.diag-item:hover{background:var(--surface-2)}.diag-item-hd{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:5px}.diag-item-user{display:flex;align-items:baseline;gap:8px;min-width:0}.diag-item-name{font-size:14px;font-weight:600;color:var(--text-1);white-space:nowrap}.diag-item-device{font-size:11px;color:var(--text-5);font-family:monospace;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:160px}.diag-item-time{font-size:12px;color:var(--text-5);white-space:nowrap;flex-shrink:0}.diag-item-preview{font-size:12px;color:var(--text-4);line-height:1.5;white-space:pre-wrap;word-break:break-word;font-family:monospace;max-height:3.6em;overflow:hidden}.diag-modal-detail{width:min(880px,95vw);max-height:90vh;display:flex;flex-direction:column;border-radius:12px;overflow:hidden}.diag-modal-detail .modal-header{background:linear-gradient(135deg,#1b4332,#0f2419);border-bottom:none;padding:20px 24px 18px;flex-shrink:0}.diag-modal-detail .modal-title{font-size:17px;color:#fff}.diag-modal-detail .modal-subtitle{color:#74c69d;margin-top:4px}.diag-modal-detail .modal-close-btn{background:#ffffff1f;border:1px solid rgba(255,255,255,.2);border-radius:6px;font-size:13px;color:#fff;width:28px;height:28px;display:flex;align-items:center;justify-content:center;padding:0}.diag-modal-detail .modal-close-btn:hover{background:#ffffff38}.diag-modal-toolbar{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;border-bottom:1px solid var(--border);background:var(--surface);flex-shrink:0;gap:12px}.diag-modal-ts{font-size:12px;color:var(--text-5)}.diag-toolbar-actions{display:flex;gap:8px}.diag-copy-btn,.diag-dl-btn{display:flex;align-items:center;gap:5px;padding:5px 11px;border-radius:6px;font-size:12px;font-weight:500;cursor:pointer;border:1px solid var(--border);background:var(--surface-2);color:var(--text-2);transition:background .12s,color .12s}.diag-copy-btn:hover,.diag-dl-btn:hover{background:var(--surface-3);color:var(--text-1)}.diag-copy-btn:disabled,.diag-dl-btn:disabled{opacity:.4;cursor:default}.diag-modal-body{flex:1;overflow-y:auto;padding:16px;background:var(--surface)}.diag-log-loading,.diag-log-error{font-size:13px;color:var(--text-5);padding:24px;text-align:center}.diag-log-error{color:var(--danger, #e55)}.diag-log-pre{font-family:JetBrains Mono,Fira Code,Cascadia Code,ui-monospace,monospace;font-size:12px;line-height:1.6;color:var(--text-2);white-space:pre-wrap;word-break:break-word;margin:0}.diag-line-err{color:#e55}.diag-line-ok{color:#4ade80}.diag-line-dbg{color:#facc15}.diag-line-vpn{color:#60a5fa}@media (max-width: 600px){.diag-item{padding:12px 14px}.diag-search-input{width:180px}.diag-modal-detail{width:100vw;max-height:100dvh;border-radius:0}}.an-skeleton-list,.an-skeleton-wrap{display:flex;flex-direction:column;gap:10px;padding:4px 0}.an-skel{background:var(--border);border-radius:4px;animation:an-shimmer 1.4s ease-in-out infinite}.an-skel--row{height:14px;width:100%}.an-skel--donut{width:160px;height:160px;border-radius:50%;flex-shrink:0}.an-skel-donut-row{display:flex;align-items:center;gap:24px}.an-skel-legend{flex:1;display:flex;flex-direction:column;gap:8px}@keyframes an-shimmer{0%,to{opacity:.6}50%{opacity:.25}}.an-empty{text-align:center;color:var(--text-5);padding:24px;font-size:14px}.an-toast{position:fixed;bottom:24px;right:24px;background:var(--text);color:var(--surface);padding:10px 16px;border-radius:6px;font-size:13px;z-index:1000;opacity:0;transform:translateY(8px);transition:opacity .25s,transform .25s;pointer-events:none;max-width:320px}.an-toast--visible{opacity:1;transform:translateY(0)}.an-wrap{display:flex;flex-direction:column;gap:24px}.an-cards-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:start}.an-page-hd{align-items:flex-start;justify-content:space-between;flex-wrap:wrap;gap:8px}.an-title-block{display:flex;flex-direction:column;gap:2px}.an-subtitle{font-size:13px;color:var(--text-5)}.an-hd-right{display:flex;align-items:center;gap:10px}.an-updated{font-size:12px;color:var(--text-5)}.an-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;overflow:hidden;box-shadow:0 1px 4px var(--shadow-sm)}.an-card-hd{padding:14px 20px;border-bottom:1px solid var(--border-2);background:var(--surface-2)}.an-card-title{font-size:14px;font-weight:600;color:var(--text)}.an-card-body{padding:20px}.an-error-banner{background:var(--danger-bg);border:1px solid var(--danger-border);color:var(--danger);border-radius:8px;padding:12px 16px;display:flex;align-items:center;gap:12px;font-size:14px}.an-retry-btn{background:none;border:1px solid var(--danger-border);color:var(--danger);cursor:pointer;padding:4px 12px;border-radius:4px;font-size:13px;white-space:nowrap}.an-retry-btn:hover{background:var(--danger-bg)}.an-empty-state{text-align:center;padding:48px 24px;color:var(--text-4)}.an-empty-state .an-empty-icon{font-size:48px;margin-bottom:12px}.an-empty-state .an-empty-title{font-size:18px;font-weight:600;margin-bottom:6px;color:var(--text-3)}.an-empty-state .an-empty-sub{font-size:14px}.an-donut-wrap{display:flex;align-items:center;gap:32px;flex-wrap:wrap}.an-donut-chart{position:relative;flex-shrink:0;animation:an-fade-in .35s ease-out both}.an-donut-svg{display:block}.an-donut-arc{transition:opacity .15s}.an-donut-arc:hover{opacity:.75;cursor:default}.an-donut-center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;pointer-events:none}.an-donut-total{font-size:22px;font-weight:700;color:var(--text);line-height:1.1}.an-donut-label{font-size:10px;color:var(--text-5);text-transform:uppercase;letter-spacing:.06em;margin-top:2px}.an-legend{display:flex;flex-direction:column;gap:7px;flex:1;min-width:180px;animation:an-fade-in .4s ease-out both}.an-legend-item{display:flex;align-items:center;gap:8px;font-size:13px}.an-legend-unknown{opacity:.6;border-top:1px dashed var(--border);padding-top:7px;margin-top:3px}.an-legend-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.an-legend-name{flex:1;color:var(--text-2)}.an-legend-count{font-weight:600;color:var(--text);font-variant-numeric:tabular-nums}.an-legend-pct{color:var(--text-5);font-size:12px;min-width:42px;text-align:right}.an-bars{display:flex;flex-direction:column;gap:10px}.an-bar-row{display:grid;grid-template-columns:130px 1fr 90px;align-items:center;gap:10px}.an-bar-unknown{opacity:.5}.an-bar-label{font-size:13px;color:var(--text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center;gap:6px}.an-latest-badge{font-size:10px;background:var(--accent-bg);color:var(--accent);border:1px solid var(--info-border);border-radius:3px;padding:1px 5px;font-weight:600;letter-spacing:.02em;flex-shrink:0}.an-bar-track{background:var(--border);border-radius:3px;height:10px;overflow:hidden}.an-bar-fill{height:100%;border-radius:3px;animation:an-bar-in .45s cubic-bezier(.4,0,.2,1) both}@keyframes an-bar-in{0%{width:0!important}}.an-bar-value{font-size:13px;color:var(--text-3);text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.an-bar-pct{color:var(--text-5);font-size:12px}.an-show-all-btn{display:inline-block;margin-top:14px;background:none;border:1px solid var(--border-input);color:var(--accent);cursor:pointer;padding:6px 14px;border-radius:5px;font-size:13px}.an-show-all-btn:hover{background:var(--accent-bg);border-color:var(--info-border)}.an-unknown-callout{display:flex;align-items:center;gap:8px;background:var(--surface-2);border:1px solid var(--border);border-radius:6px;padding:8px 14px;font-size:13px;color:var(--text-4);margin-bottom:14px}.an-unknown-dot{width:8px;height:8px;border-radius:50%;background:#94a3b8;flex-shrink:0}.an-country-table-wrap{margin:0}.an-country-table{table-layout:auto}.an-country-table th:nth-child(1),.an-country-table th:nth-child(2),.an-country-table th:nth-child(3){width:auto}.an-flag{font-size:15px}.an-td-num{text-align:right;font-variant-numeric:tabular-nums}.an-td-pct{color:var(--text-5)}.an-td-pct-hd{text-align:right}.an-th-sortable{cursor:pointer;user-select:none}.an-th-sortable:hover:not(.active){color:var(--text-3)}.an-th-sortable.active{color:var(--accent)}.an-sort-icon{display:inline-block;min-width:12px;margin-left:2px;font-style:normal;font-size:11px}@keyframes an-fade-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.an-country-bars{margin-bottom:20px}@media (max-width: 860px){.an-cards-grid{grid-template-columns:1fr}}@media (max-width: 600px){.an-donut-wrap{flex-direction:column;align-items:flex-start}.an-bar-row{grid-template-columns:80px 1fr 64px}.an-legend{min-width:unset}.an-card-body{padding:14px}}.ads-page-tabs{display:flex;gap:4px;margin-bottom:18px;border-bottom:2px solid var(--border)}.ads-page-tab{padding:8px 18px;font-size:14px;font-weight:500;color:var(--text-muted, #666);background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-2px;cursor:pointer;transition:color .15s,border-color .15s}.ads-page-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.ads-page-tab:hover:not(.active){color:var(--text)}.ads-filter-bar{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-end;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:12px 16px;margin-bottom:18px}.ads-filter-group{display:flex;flex-direction:column;gap:6px}.ads-filter-group--units{flex:1 1 auto}.ads-filter-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted, #888)}.ads-preset-btns{display:flex;gap:4px}.ads-preset-btn,.ads-bucket-btn{padding:5px 12px;font-size:13px;font-weight:500;border:1px solid var(--border);border-radius:6px;background:var(--bg);color:var(--text);cursor:pointer;transition:background .15s,color .15s,border-color .15s}.ads-preset-btn.active,.ads-bucket-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}.ads-preset-btn:hover:not(.active),.ads-bucket-btn:hover:not(.active){background:var(--bg-hover, #e8ecf5)}.ads-custom-range{display:flex;align-items:center;gap:6px}.ads-date-input{padding:5px 8px;font-size:13px;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--text)}.ads-date-sep{color:var(--text-muted, #888);font-size:13px}.ads-unit-chips{display:flex;flex-wrap:wrap;gap:4px}.ads-unit-chip{padding:4px 10px;font-size:12px;border:1px solid var(--border);border-radius:20px;background:var(--bg);color:var(--text);cursor:pointer;transition:background .15s,color .15s}.ads-unit-chip.active{background:var(--accent);color:#fff;border-color:var(--accent)}.ads-kpi-row{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:20px}@media (max-width: 900px){.ads-kpi-row{grid-template-columns:repeat(2,1fr)}}@media (max-width: 500px){.ads-kpi-row{grid-template-columns:1fr}}.ads-kpi-tile{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:16px 20px;display:flex;flex-direction:column;gap:4px}.ads-kpi-skel{height:64px;border-radius:8px}.ads-kpi-label{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted, #888)}.ads-kpi-value{font-size:28px;font-weight:700;color:var(--text);line-height:1.1}.ads-kpi-delta{font-size:12px;margin-top:2px}.kpi-delta-up{color:var(--success, #1a8a50)}.kpi-delta-dn{color:var(--danger, #c0392b)}.table-card-header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px 10px;border-bottom:1px solid var(--border)}.table-card-title{font-size:14px;font-weight:600;margin:0}.ads-fill-note{font-size:12px;color:var(--text-muted, #888)}.ads-fill-table{width:100%;border-collapse:collapse;font-size:13px}.ads-fill-table th,.ads-fill-table td{padding:10px 14px;text-align:left;border-bottom:1px solid var(--border)}.ads-fill-table th{font-weight:600;font-size:12px;color:var(--text-muted, #888)}.ads-fill-table tr:last-child td{border-bottom:none}.ads-fill-bar-wrap{display:flex;align-items:center;gap:8px;min-width:120px}.ads-fill-bar-track{flex:1;height:6px;background:var(--border);border-radius:3px;overflow:hidden}.ads-fill-bar-fill{height:100%;border-radius:3px;background:var(--accent);transition:width .3s}.ads-fill-pct{font-size:12px;font-weight:600;min-width:38px}.ads-err-badges{display:flex;flex-wrap:wrap;gap:4px}.ads-err-badge{display:inline-flex;align-items:center;gap:3px;padding:2px 7px;font-size:11px;font-weight:600;border-radius:4px;background:var(--bg);border:1px solid var(--border);cursor:default;position:relative}.ads-err-badge-dot{width:7px;height:7px;border-radius:50%;display:inline-block}.ads-err-badge .ads-code-tooltip{display:none;position:absolute;bottom:calc(100% + 4px);left:50%;transform:translate(-50%);background:#1a1a2e;color:#fff;font-size:11px;font-weight:400;padding:4px 8px;border-radius:4px;white-space:nowrap;z-index:100;pointer-events:none}.ads-err-badge:hover .ads-code-tooltip{display:block}.ads-charts-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:20px}@media (max-width: 800px){.ads-charts-row{grid-template-columns:1fr}}.ads-chart-card{overflow:hidden}.ads-chart-skel{height:220px;margin:16px;border-radius:8px}.ads-chart-svg{width:100%;height:auto;display:block;overflow:visible}.chart-axis-label{font-size:10px;fill:var(--text-muted, #888);font-family:inherit}.ads-chart-legend{display:flex;flex-wrap:wrap;gap:10px;padding:10px 16px 4px;font-size:12px}.chart-legend-item{display:inline-flex;align-items:center;gap:5px;color:var(--text)}.chart-legend-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.ads-events-filters{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:14px}.ads-filter-input{padding:6px 10px;font-size:13px;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--text);min-width:140px}.ads-filter-input--sm{min-width:80px;width:80px}.ads-filter-select{padding:6px 10px;font-size:13px;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--text)}.ads-clear-btn{padding:6px 14px;font-size:13px;border:1px solid var(--border);border-radius:6px;background:var(--bg);color:var(--text);cursor:pointer}.ads-clear-btn:hover{background:var(--bg-hover, #e8ecf5)}.ads-events-table{width:100%;border-collapse:collapse;font-size:12px}.ads-events-table th,.ads-events-table td{padding:9px 12px;text-align:left;border-bottom:1px solid var(--border);vertical-align:middle}.ads-events-table th{font-weight:600;font-size:11px;color:var(--text-muted, #888)}.ads-events-table tr.ads-ev-row{cursor:pointer;transition:background .1s}.ads-events-table tr.ads-ev-row:hover{background:var(--bg)}.ads-events-table tr:last-child td{border-bottom:none}.ads-ev-badge{display:inline-block;padding:2px 7px;border-radius:4px;font-size:11px;font-weight:600;white-space:nowrap}.ads-ev-request{background:#dbeafe;color:#1d4ed8}.ads-ev-load_success{background:#dcfce7;color:#166534}.ads-ev-load_fail{background:#fee2e2;color:#991b1b}.ads-ev-show{background:#ede9fe;color:#6d28d9}.ads-ev-dismiss{background:#ffedd5;color:#9a3412}.ads-ev-reward{background:#fef9c3;color:#854d0e}.ads-ev-click{background:#e0f2fe;color:#0369a1}.ads-ev-other{background:var(--bg);color:var(--text);border:1px solid var(--border)}.ads-unit-badge{display:inline-block;padding:2px 7px;border-radius:4px;font-size:11px;font-weight:500;background:var(--bg);border:1px solid var(--border);color:var(--text);white-space:nowrap}.ads-code-badge{display:inline-flex;align-items:center;gap:3px;padding:2px 7px;border-radius:4px;font-size:11px;font-weight:600;white-space:nowrap;position:relative}.ads-code-badge .ads-code-tooltip{display:none;position:absolute;bottom:calc(100% + 4px);left:50%;transform:translate(-50%);background:#1a1a2e;color:#fff;font-size:11px;font-weight:400;padding:4px 8px;border-radius:4px;white-space:nowrap;z-index:100;pointer-events:none}.ads-code-badge:hover .ads-code-tooltip{display:block}.ads-drawer-backdrop{position:fixed;inset:0;background:#00000059;z-index:300}.ads-drawer{position:fixed;top:0;right:0;bottom:0;width:min(480px,95vw);background:var(--surface);border-left:1px solid var(--border);z-index:301;display:flex;flex-direction:column;overflow:hidden}.ads-drawer-header{display:flex;align-items:flex-start;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border);gap:12px}.ads-drawer-title{font-size:15px;font-weight:600;color:var(--text)}.ads-drawer-sub{font-size:12px;color:var(--text-muted, #888);margin-top:2px}.ads-drawer-body{flex:1;overflow-y:auto;padding:16px 20px}.ads-drawer-json{font-family:ui-monospace,monospace;font-size:12px;white-space:pre-wrap;word-break:break-all;color:var(--text);margin:0}.logs-toolbar{display:flex;align-items:center;gap:8px;margin-bottom:12px;flex-wrap:wrap}.logs-query-input{max-width:280px;min-width:180px}.logs-meta{color:var(--text-muted, #888);font-size:12px;margin-bottom:8px}.logs-load-more{margin-top:10px}.user-log-stream{max-height:560px;overflow:auto}.diag-line-warn{color:#b7791f}.xray-card{border-color:#388bfd38}.xray-card-hd,.xray-card-actions{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.xray-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.25fr);gap:14px;margin-top:14px}.xray-node-section{margin-top:14px;border:1px solid rgba(139,148,158,.18);border-radius:10px;background:#ffffff05;padding:12px}.xray-section-title{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:10px}.xray-section-title span{color:var(--text);font-size:13px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.xray-section-title small{color:var(--text-muted);font-size:11px}.xray-form{border:1px solid var(--border);border-radius:10px;background:#ffffff06;padding:14px}.xray-form-title{color:var(--text);font-size:13px;font-weight:700;margin-bottom:10px;letter-spacing:.04em;text-transform:uppercase}.compact-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.form-field-wide{grid-column:1 / -1}.xray-auth-field{gap:8px}#xray-auth-pane-password input{width:100%}.xray-fragment-box{border:1px solid rgba(139,148,158,.16);border-radius:10px;background:#0d11173d;padding:10px}.xray-fragment-toggle{display:flex;align-items:flex-start;gap:10px;color:var(--text);cursor:pointer}.xray-fragment-toggle input{width:16px;height:16px;margin-top:2px;accent-color:var(--accent)}.xray-fragment-toggle span{display:grid;gap:3px}.xray-fragment-toggle strong{font-size:12px}.xray-fragment-toggle small{color:var(--text-muted);font-size:11px;line-height:1.35}.xray-fragment-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:10px}.xray-fragment-grid[hidden]{display:none}.xray-fragment-grid label{display:block;margin-bottom:5px;color:var(--text-muted);font-size:10px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.xray-key-chips-wrap{max-height:142px;overflow:auto;padding-right:2px}.xray-node-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:10px}.xray-node-card{border:1px solid rgba(56,139,253,.22);background:#0d111759;border-radius:10px;padding:10px;min-width:0}.xray-node-card-main{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.xray-node-title{display:flex;align-items:center;gap:8px;min-width:0}.xray-node-title span:first-child{color:var(--text);font-size:13px;font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.xray-node-meta{display:flex;flex-wrap:wrap;gap:5px 9px;margin-top:5px;color:var(--text-muted);font-size:11px}.xray-node-meta span{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.xray-node-status{border:1px solid rgba(139,148,158,.24);border-radius:999px;padding:2px 7px;font-size:10px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.xray-node-status.ok{background:#2ea0431f;border-color:#2ea0434d;color:#3fb950}.xray-node-status.pending{background:#d299221f;border-color:#d299224d;color:#d29922}.xray-node-status.err{background:#f851491f;border-color:#f851494d;color:#ff7b72}.xray-node-actions{display:flex;align-items:center;flex-wrap:wrap;justify-content:flex-end;gap:6px;flex-shrink:0}.xray-node-modal .setup-log{max-height:420px}.info-item.item-danger{border-color:#f8514933;background:#f851490f}.info-item.item-danger .info-label{color:#ff7b72}.info-item.item-danger .info-value{color:#ffb3ad}.row-kind-badge.xray-badge{background:#388bfd21;color:#58a6ff;border-color:#388bfd47}.row-kind-badge.singbox-badge{background:#0d948821;color:#2dd4bf;border-color:#0d948847}.profile-section{margin-top:14px;padding-top:12px;border-top:1px solid var(--border-2)}.profile-section-title{font-size:12px;font-weight:600;letter-spacing:.02em;text-transform:uppercase;color:var(--text-3, var(--text-2));margin-bottom:10px}.profile-reality-note{margin:8px 0 0}.profile-advanced{margin-top:12px}.profile-code{font-size:11.5px;word-break:break-all}.profile-json-textarea{width:100%;min-height:132px;resize:vertical;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:12px;line-height:1.45}.ssh-key-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.profile-row{align-items:flex-start}.profile-row .ssh-key-actions{padding-top:2px}.row-kind-badge.cdn-badge{background:#2ea0431f;color:#3fb950;border-color:#2ea0433d}.server-cap-row{display:flex;flex-wrap:wrap;gap:14px 20px;margin-top:4px}.server-cap-check{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--text-2);cursor:pointer;user-select:none}.server-cap-check input{margin:0}.singbox-advanced{margin-top:12px;border:1px solid var(--border);border-radius:8px;padding:8px 12px;background:var(--surface-2)}.singbox-advanced summary{cursor:pointer;font-size:12.5px;color:var(--text-4);font-weight:600}.latency-idle{background:#8b949e1f;color:var(--text-muted)}.promotions-header{align-items:flex-start}.promotion-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 20px}.promotion-kpi{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:15px 17px;box-shadow:var(--shadow-sm)}.promotion-kpi span,.promotion-muted,.field-hint,.promotion-row-meta,.promotion-row-date{color:var(--text-4);font-size:12px}.promotion-kpi strong{display:block;font-size:24px;margin-top:7px;color:var(--text-1)}.promotion-layout{display:grid;grid-template-columns:minmax(280px,.85fr) minmax(460px,1.5fr);gap:20px;align-items:start}.promotion-list{min-height:130px}.promotion-row{display:flex;gap:12px;align-items:center;padding:15px 0;border-bottom:1px solid var(--border)}.promotion-row:last-child{border-bottom:0}.promotion-row-copy{min-width:0;flex:1}.promotion-row-title{font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.promotion-row-meta{margin-top:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.promotion-row-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.promotion-row-date{white-space:nowrap}.promotion-status-active{color:#1a7f37;background:#2ea0431f}.promotion-status-draft{color:var(--text-4);background:var(--surface-2)}.promotion-form{display:grid;gap:16px}.promotion-grid-two{display:grid;grid-template-columns:1fr 1fr;gap:12px}.promotion-form label,.promotion-form legend{display:grid;gap:6px;color:var(--text-2);font-size:12px;font-weight:600}.promotion-form input,.promotion-form textarea,.promotion-form select{width:100%;box-sizing:border-box;font:inherit;color:var(--text-1);background:var(--surface-2);border:1px solid var(--border);border-radius:7px;padding:9px 10px}.promotion-form textarea{resize:vertical}.promotion-form fieldset{border:1px solid var(--border);border-radius:8px;padding:11px 12px;display:flex;gap:16px;flex-wrap:wrap}.check-row{display:flex!important;align-items:center;gap:8px;font-weight:500!important}.check-row input{width:auto}.promotion-tabs{display:flex;gap:5px;border-bottom:1px solid var(--border)}.promotion-tab{border:0;background:none;color:var(--text-4);padding:8px 12px;cursor:pointer;font-weight:650}.promotion-tab.active{color:var(--accent);border-bottom:2px solid var(--accent)}.promotion-action{display:grid;grid-template-columns:180px 1fr;gap:12px}.review-check{border:1px solid var(--border);padding:11px;border-radius:8px;color:var(--text-2)!important}.promotion-preview-wrap{display:grid;gap:7px}.promotion-preview{display:flex;min-height:110px;border-radius:10px;overflow:hidden;border:1px solid var(--border);background:linear-gradient(135deg,#172033,#293f68);color:#fff}.promotion-preview-copy{display:grid;align-content:center;gap:8px;padding:18px;flex:1}.promotion-preview-copy strong{font-size:16px}.promotion-preview-copy span{font-size:12px;opacity:.82}.promotion-preview-copy button{justify-self:start;border:0;border-radius:5px;background:#fff;color:#172033;padding:6px 10px;font-size:11px}.promotion-preview img{width:35%;max-height:180px;object-fit:cover}.promotion-editor-card .table-card-header{align-items:flex-start}.promotion-editor-card .modal-close-btn{margin-top:-5px}.promotion-form .form-actions{align-items:center}.promotion-form-error{flex:1}.toast-error{background:#b42318!important}.promotion-upload-line{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.promotion-upload-line input{padding:4px;background:transparent;border:0}@media (max-width: 1000px){.promotion-layout{grid-template-columns:1fr}}@media (max-width: 640px){.promotion-kpis{grid-template-columns:1fr 1fr}.promotion-grid-two,.promotion-action{grid-template-columns:1fr}.promotion-row{align-items:flex-start;flex-direction:column}.promotion-row-actions{justify-content:flex-start}}@media (max-width: 900px){.xray-grid,.compact-grid,.xray-fragment-grid{grid-template-columns:1fr}.xray-section-title,.xray-node-card-main{align-items:flex-start;flex-direction:column}.xray-node-actions{justify-content:flex-start}}.node-cap-badges{display:flex;flex-wrap:wrap;gap:4px;align-items:center}.status-badge.status-ok{background:#2ea0431f;color:#3fb950}.status-badge.status-err{background:#f851491f;color:#ff7b72}
