*{margin:0;padding:0;box-sizing:border-box}body{font-family:'Segoe UI',Tahoma,Geneva,Verdana,sans-serif;background:linear-gradient(135deg,#f0f4f8 0,#e2e8f0 100%);min-height:100vh;display:flex;align-items:center;justify-content:center;overflow-x:auto}.container{width:100%;padding:20px;overflow-x:auto}.login-container{background:#fff;box-shadow:0 4px 24px rgba(0,0,0,.08),0 1px 4px rgba(0,0,0,.04);padding:40px;margin:0 auto}.mode-select-container{background:#fff;box-shadow:0 4px 24px rgba(0,0,0,.08),0 1px 4px rgba(0,0,0,.04);padding:50px;margin:0 auto;text-align:center}.mode-select-container h1{color:#1e293b;margin-bottom:10px;font-size:32px}.subtitle{color:#64748b;margin-bottom:40px;font-size:16px}.mode-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:30px}.mode-card{border:2px solid #e2e8f0;padding:40px 30px;cursor:pointer;transition:.3s;text-align:center;box-shadow:0 2px 8px rgba(0,0,0,.03)}.mode-card:hover{transform:translateY(-5px);box-shadow:0 12px 32px rgba(0,0,0,.1)}.card-icon{font-size:48px;margin-bottom:20px;filter:saturate(.8)}.mode-card h2{color:#1e293b;margin-bottom:10px;font-size:22px}.mode-card p{color:#64748b;margin-bottom:25px;line-height:1.6}.card-footer{padding-top:15px;border-top:2px solid #e2e8f0;font-weight:600;font-size:14px}.admin-card .card-footer{color:#6366f1}.client-card .card-footer{color:#10b981}.login-container h1{text-align:center;color:#1e293b}.form-group{margin-bottom:20px}.form-group label{display:block;margin-bottom:8px;color:#475569;font-weight:500}.form-group input,.form-group select{width:100%;padding:12px;border:2px solid #cbd5e1;font-size:16px}.form-group input:focus,.form-group select:focus{outline:0;box-shadow:0 0 0 3px rgba(99,102,241,.1)}.btn{width:100%;padding:12px;font-size:16px;font-weight:600;cursor:pointer;transition:.3s}.btn-primary{background:linear-gradient(135deg,#6366f1 0,#4f46e5 100%)}.btn-primary:hover{box-shadow:0 8px 20px rgba(99,102,241,.35)}.btn-danger{background:#ef4444}.btn-danger:hover{background:#f87171}.btn-success{background:#10b981}.btn-success:hover{background:#34d399}.btn-warning{background:#f59e0b}.btn-warning:hover{background:#fbbf24}.btn-small{padding:6px 12px;font-size:14px;width:auto;margin-right:5px}.dashboard{background:#fff;box-shadow:0 4px 24px rgba(0,0,0,.1),0 1px 4px rgba(0,0,0,.06)}.dashboard-header{background:linear-gradient(135deg,#0f172a 0,#020617 100%);color:#fff;display:flex;justify-content:space-between;align-items:center;box-shadow:0 4px 16px rgba(15,23,42,.35)}.dashboard-header h1{font-size:22px;font-weight:600}.header-buttons{display:flex;gap:10px;align-items:center}.dashboard-content{padding:30px}.section{padding:28px;border:1px solid #e2e8f0;box-shadow:0 1px 4px rgba(0,0,0,.03)}.section h2{color:#1e293b;border-bottom:2px solid #e2e8f0;font-size:18px;font-weight:650}.section-header-row{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}.section-header-row h2{margin-bottom:0;flex:1}.section-header-actions{display:inline-flex;align-items:center;gap:8px;flex-wrap:nowrap;white-space:nowrap}.section-header-row h3.section-title{margin:0;font-size:16px;font-weight:650;cursor:pointer;user-select:none;display:inline-flex;align-items:center;gap:8px;flex:1}.blocked-ip-count-badge{font-size:13px;font-weight:500;color:#64748b}.section-header-row h3.section-title:hover{color:#6366f1}.form-row{display:flex;gap:20px;flex-wrap:wrap}.filter-toolbar{margin-bottom:18px;border:1px solid #e2e8f0}.filter-inline-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.filter-control{width:auto;min-width:140px;max-width:180px}#admin-radar-filter-node{min-width:180px}.filter-card-key-input{min-width:220px;max-width:260px}.filter-port-input{min-width:100px;max-width:120px}.card-key-batch-filter-badge{display:inline;margin-left:4px;font-size:12px;color:#64748b}.card-key-batch-simple-view{margin-top:8px;color:inherit;background:0 0;border:none;padding:0}.card-key-batch-simple-table{width:100%;border-collapse:collapse;font-size:13px;background:0 0}.card-key-batch-simple-table td,.card-key-batch-simple-table th{padding:6px 20px 6px 0;text-align:left;vertical-align:top;border:none;background:0 0;font-weight:400}.card-key-batch-simple-table th{white-space:nowrap}.card-key-batch-simple-table td:first-child{font-family:Consolas,"Courier New",monospace;word-break:break-all;min-width:220px}.card-key-batch-simple-table td:nth-child(2){white-space:nowrap;min-width:96px}.card-key-batch-simple-table td:nth-child(3),.card-key-batch-simple-table td:nth-child(4),.card-key-batch-simple-table th:nth-child(3),.card-key-batch-simple-table th:nth-child(4){white-space:nowrap;min-width:160px}.card-key-batch-simple-empty{font-size:13px;color:#94a3b8}.card-key-batch-query-modal-content{max-width:560px}.card-key-batch-query-hint{margin:0 0 12px;color:#64748b;font-size:13px}.card-key-batch-query-summary{margin-bottom:10px;padding:10px 12px;border-radius:8px;background:#eef2ff;color:#312e81;font-size:13px}.card-key-batch-query-missing{margin-bottom:12px;padding:10px 12px;border-radius:8px;background:#fff7ed;color:#9a3412;font-size:13px;max-height:120px;overflow:auto;word-break:break-all}.filter-actions{display:flex;justify-content:flex-end;gap:10px}.table-pagination{margin-top:16px;display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.pagination-page-info,.pagination-summary{color:#475569;font-size:14px}.pagination-actions{display:flex;align-items:center;gap:10px}.node-status-list-wrapper{max-height:none}.node-status-table{min-width:auto}.node-status-table td:first-child,.node-status-table th:first-child{min-width:210px;white-space:nowrap}.node-status-table .row-action-group{flex-wrap:nowrap;white-space:nowrap}.node-status-summary{display:inline-flex;align-items:center;gap:8px;white-space:nowrap}.node-capacity-cell{white-space:nowrap}.node-capacity-value{display:inline-flex;align-items:center;flex-wrap:nowrap;gap:8px;min-width:0}.node-capacity-cell .node-capacity-count{color:var(--lux-text,#eceae6);font-weight:600;flex-shrink:0}.node-capacity-cell .status-badge{vertical-align:middle;flex-shrink:0}.node-status-hover-trigger{cursor:help}.node-status-hover-card{position:fixed;z-index:3600;min-width:280px;max-width:420px;padding:14px 16px;border-radius:12px;color:#fff;box-shadow:0 20px 48px rgba(0,0,0,.28);border:1px solid rgba(255,255,255,.08);pointer-events:none}.node-status-hover-card h4{font-size:15px;margin-bottom:10px}.node-status-hover-card li,.node-status-hover-card p{font-size:13px;line-height:1.6;color:rgba(255,255,255,.92)}.node-status-hover-card ul{margin:8px 0 0 18px}.node-status-hover-card .muted{color:rgba(255,255,255,.72)}.form-row .form-group{flex:1;min-width:200px}.radar-list{overflow-x:auto;overflow-y:hidden}table{width:100%;border-collapse:separate;border-spacing:0 9px}td,th{padding:14px 12px;text-align:left;border-bottom:1px solid #e2e8f0}th{color:#475569;font-size:13px;text-transform:uppercase;letter-spacing:.5px}tr{transition:background .2s}td code{padding:4px 8px;font-family:Consolas,Monaco,monospace;font-size:13px;color:#334155}.status-badge{display:inline-block;padding:4px 12px;border-radius:20px;font-size:12px;font-weight:600}.status-expired,.status-starting{background:#fef3c7;color:#92400e}.status-node-offline{color:#9d174d}.radar-restart-side-panel{position:fixed;top:50%;right:0;z-index:12050;transform:translateY(-50%);pointer-events:none}.radar-restart-side-panel.hidden{display:none}.radar-restart-side-panel-card{min-width:220px;max-width:280px;margin-right:12px;padding:14px 16px;border-radius:12px 0 0 12px;background:linear-gradient(135deg,rgba(15,23,42,.96),rgba(30,41,59,.94));border:1px solid rgba(56,189,248,.45);border-right:none;box-shadow:-8px 0 24px rgba(15,23,42,.35);color:#e2e8f0}.radar-restart-side-panel-title{font-size:12px;font-weight:600;letter-spacing:.04em;color:#7dd3fc;margin-bottom:8px}.radar-restart-side-panel-text{margin:0;font-size:14px;line-height:1.5;font-weight:600;word-break:break-word}.top-status-bar{position:fixed;top:0;left:0;right:0;z-index:3500;transform:translateY(-100%);transition:transform .22s;box-shadow:0 10px 24px rgba(0,0,0,.16)}.top-status-bar.show{transform:translateY(0)}.top-status-content{padding:12px 24px;color:#fff;font-size:14px;font-weight:600;text-align:center}.top-status-bar.status-warning .top-status-content{background:linear-gradient(135deg,#d97706 0,#f59e0b 100%)}.top-status-bar.status-error .top-status-content{background:linear-gradient(135deg,#dc2626 0,#ef4444 100%)}.top-status-bar.status-success .top-status-content{background:linear-gradient(135deg,#059669 0,#10b981 100%)}.top-status-bar.status-info .top-status-content{background:linear-gradient(135deg,#2563eb 0,#6366f1 100%)}.toast-container{position:fixed;z-index:3000;display:flex;flex-direction:column;gap:12px;pointer-events:none}.toast-item{min-width:280px;max-width:420px;color:#fff;box-shadow:0 16px 40px rgba(0,0,0,.18);transform:translateX(120%);pointer-events:auto}.toast-item.show{transform:translateX(0)}.toast-item.hide{transform:translateX(120%)}.toast-item.toast-success{background:linear-gradient(135deg,#059669 0,#10b981 100%)}.toast-item.toast-error{background:linear-gradient(135deg,#dc2626 0,#ef4444 100%)}.toast-item.toast-warning{background:linear-gradient(135deg,#d97706 0,#f59e0b 100%)}.toast-item.toast-info{background:linear-gradient(135deg,#2563eb 0,#6366f1 100%)}.toast-title{font-weight:700;margin-bottom:4px}.toast-message{line-height:1.5;word-break:break-word}.hidden{display:none!important}.btn-secondary{color:#fff}.card-key-section{margin-bottom:20px}.generated-keys{margin-top:20px;padding:20px;border:1px solid #e2e8f0}.generated-keys h3{margin-bottom:15px;color:#059669}.generated-keys-list{display:flex;flex-wrap:wrap;gap:10px}.key-item{background:#fff;padding:10px 15px;border-radius:6px;border:2px solid #6366f1;font-family:monospace;font-size:14px;cursor:pointer;user-select:all}.key-item:hover{background:#6366f1;color:#fff}.key-item-block{display:block;line-height:2;cursor:default;white-space:pre-wrap;word-break:break-all}.card-key-info{display:flex;gap:20px;align-items:center}.card-key-info span{background:rgba(255,255,255,.15);padding:5px 12px;border-radius:4px;font-size:14px}.status-badge.status-recharged{background:rgba(99,102,241,.18);color:#c7d2fe;border:1px solid rgba(129,140,248,.35)}.card-key-detail-recharge-note,.card-key-recharge-note{margin-top:6px;font-size:12px;color:#a5b4fc;line-height:1.4}.card-key-detail-recharge-note{margin-bottom:12px;padding:10px 12px;border-radius:6px;background:rgba(99,102,241,.12);border:1px solid rgba(129,140,248,.25)}.card-key-detail-recharge-time{margin-left:6px;color:#94a3b8}.client-recharge-btn,.client-referrer-btn{flex-shrink:0}.modal{position:fixed;top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;z-index:1000;padding:16px;box-sizing:border-box}.modal.hidden{display:none!important}.client-announcement-modal-content{max-width:520px;width:92%;max-height:85vh;overflow-y:auto;background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:25px;box-shadow:0 20px 60px rgba(0,0,0,.22)}.client-announcement-modal-content h2{color:#1e293b;margin-bottom:20px;padding-bottom:10px;border-bottom:2px solid #e2e8f0;font-size:18px;font-weight:600}.client-announcement-modal-content .announcement-display{background:0 0}.client-announcement-modal-content .announcement-display-text{color:#1e293b}.client-announcement-modal-content .modal-buttons{margin-top:20px;padding-top:16px;border-top:1px solid #e2e8f0}.client-announcement-modal-content .modal-buttons .btn-primary{background:linear-gradient(135deg,#6366f1 0,#4f46e5 100%)}.radar-pwd-modal-content{max-width:400px;width:92%}.modal-content{background:#fff;padding:30px;max-width:400px;width:90%;box-shadow:0 12px 40px rgba(0,0,0,.15)}.node-editor-modal-content{max-width:520px}.checkbox-form-row{gap:16px;margin-top:8px}.checkbox-field{display:inline-flex;align-items:center;gap:8px;color:#475569;font-weight:500}.checkbox-field input{width:auto}.modal-content h2{margin-bottom:20px;color:#1e293b}.confirm-modal-content{max-width:520px}#global-confirm-modal[data-type=danger] .confirm-modal-content{border-top:6px solid #ef4444}#global-confirm-modal[data-type=primary] .confirm-modal-content{border-top:6px solid #6366f1}.confirm-modal-message{color:#1e293b;line-height:1.6;margin-bottom:10px}.confirm-modal-detail{color:#dc2626;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;padding:10px 12px;font-size:13px;line-height:1.5;margin-bottom:16px}.confirm-modal-body{display:flex;flex-direction:column;gap:10px;margin-top:12px}.confirm-select-item{display:flex;align-items:center;gap:10px;padding:12px 14px;border:1px solid #e2e8f0;cursor:pointer;transition:background .2s,border-color .2s}.confirm-select-item:hover{background:#f1f5f9;border-color:#94a3b8}.confirm-select-item input{width:16px;height:16px}.confirm-empty{color:#64748b;padding:12px 0;text-align:center}.sync-node-toolbar{display:flex;align-items:center;gap:8px;margin-bottom:10px;flex-wrap:wrap}.sync-selected-count{font-size:13px;color:#475569;margin-left:auto}.sync-node-list{max-height:260px;overflow-y:auto;display:flex;flex-direction:column;gap:6px;padding-right:4px}.modal-buttons{display:flex;gap:10px;margin-top:20px}.modal-buttons .btn{flex:1}.form-control{width:100%;padding:12px;border:2px solid #cbd5e1;font-size:16px}.form-control:focus{outline:0;box-shadow:0 0 0 3px rgba(99,102,241,.1)}.status-expired-key{background:#fee2e2;color:#991b1b}.status-blocked{background:#7f1d1d;color:#fecaca}.section-title{user-select:none;display:flex;align-items:center;gap:10px;cursor:pointer}.section-title:hover{color:#6366f1}.toggle-icon{transition:transform .3s;font-size:14px}.section-content.collapsed{display:none}.section-content.collapsed+.toggle-icon{transform:rotate(-90deg)}.service-category-groups{display:flex;flex-direction:column;gap:16px;margin-top:12px}[data-app-entry=admin] .service-app-sync-progress-list{display:flex;flex-direction:column;gap:12px;margin-top:16px}[data-app-entry=admin] .service-app-sync-progress-list.hidden{display:none!important}[data-app-entry=admin] .service-app-sync-progress{margin-top:0;padding:14px 16px 16px;border-radius:12px;border:1px solid var(--lux-line);background:linear-gradient(180deg,var(--lux-panel-lift) 0,var(--lux-panel) 100%);box-shadow:var(--lux-shadow-soft)}[data-app-entry=admin] .service-sync-result-block{margin-bottom:10px}[data-app-entry=admin] .service-sync-result-app{font-size:13px;font-weight:600;color:var(--lux-gold-2);margin-bottom:4px}[data-app-entry=admin] .agent-stats-detail-cell{padding:10px 12px;background:rgba(255,255,255,.03)}[data-app-entry=admin] .agent-stats-detail-table{width:100%}[data-app-entry=admin] .service-app-sync-progress.hidden{display:none!important}[data-app-entry=admin] .service-app-sync-progress-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}[data-app-entry=admin] .service-app-sync-progress-title{font-size:14px;font-weight:600;color:var(--lux-gold-2);line-height:1.45;word-break:break-word}[data-app-entry=admin] .service-app-sync-progress-percent{flex-shrink:0;font-size:13px;font-weight:600;color:var(--lux-text);font-variant-numeric:tabular-nums}[data-app-entry=admin] .service-app-sync-progress-bar{width:100%;height:8px;border-radius:999px;background:rgba(255,255,255,.08);overflow:hidden;border:1px solid var(--lux-line-soft)}[data-app-entry=admin] .service-app-sync-progress-fill{height:100%;width:0;border-radius:999px;background:linear-gradient(90deg,#b89455 0,var(--lux-gold-2) 55%,#f6e6b8 100%);box-shadow:0 0 12px rgba(242,217,154,.35);transition:width .25s}[data-app-entry=admin] .client-update-progress{margin-top:10px}[data-app-entry=admin] .client-update-progress.hidden{display:none!important}[data-app-entry=admin] .client-update-progress-text{margin-top:6px;font-size:12px;color:var(--lux-muted);font-variant-numeric:tabular-nums}[data-app-entry=admin] .service-app-sync-progress-message{margin:10px 0 0;font-size:12px;color:var(--lux-muted);line-height:1.5;word-break:break-word}[data-app-entry=admin] .service-app-sync-progress-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:12px;flex-wrap:wrap}[data-app-entry=admin] .service-app-sync-progress-action-buttons{display:flex;align-items:center;gap:10px;flex-wrap:wrap}[data-app-entry=admin] .service-app-sync-progress-stats{display:flex;align-items:center;gap:14px;margin-left:auto;flex-wrap:wrap;justify-content:flex-end}[data-app-entry=admin] .service-app-sync-progress-stat{font-size:12px;color:var(--lux-muted);font-variant-numeric:tabular-nums;white-space:nowrap}[data-app-entry=admin] .service-app-sync-progress-actions .btn{min-width:88px}[data-app-entry=admin] .sync-schedule-panel{margin-top:14px;padding-top:12px;border-top:1px solid var(--lux-line-soft,rgba(255,255,255,.08))}[data-app-entry=admin] .sync-schedule-row{display:flex;align-items:center;gap:8px;margin-bottom:8px;font-size:13px;color:var(--lux-text,#f3eee5)}[data-app-entry=admin] .sync-replace-hint{display:block;margin:0;font-size:12px;line-height:1.5;color:var(--lux-text-soft,rgba(243,238,229,.72))}[data-app-entry=admin] .sync-schedule-time-input{width:100%;max-width:280px}[data-app-entry=admin] .service-category-section{background:0 0;border:0;border-radius:0;overflow:visible}[data-app-entry=admin] .service-category-section .section-header-row{padding:0;margin-bottom:10px;border-bottom:0;background:0 0}[data-app-entry=admin] .service-category-section .section-content{padding:0}[data-app-entry=admin] .service-category-section .section-title{color:var(--lux-text)}[data-app-entry=admin] .service-category-section .section-title:hover{color:var(--lux-gold-2)}.radar-list-scrollable{max-height:400px;overflow-y:auto;overflow-x:auto;border:1px solid #e2e8f0}.radar-list-scrollable::-webkit-scrollbar{width:8px;height:8px}.radar-list-scrollable::-webkit-scrollbar-track{background:#f1f5f9;border-radius:4px}.radar-list-scrollable::-webkit-scrollbar-thumb{background:#94a3b8;border-radius:4px}.radar-list-scrollable::-webkit-scrollbar-thumb:hover{background:#64748b}.radar-list-scrollable table{margin:0}.radar-list table{min-width:auto}.radar-table-client{min-width:auto!important}.radar-table-client td:nth-child(2),.radar-table-client th:nth-child(2){padding-left:4px}.radar-list-scrollable thead th{position:sticky;top:0;z-index:10;background:#f1f5f9}.action-buttons{display:flex;gap:5px}.row-action-group{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}.application-table .btn-small,.node-status-table .btn-small,.radar-table-admin .btn-small{margin-right:0}.confirm-upload-summary{display:flex;flex-direction:column;gap:8px;padding:4px 0;color:#1e293b;line-height:1.6}.application-table{min-width:auto}.application-table td:first-child,.application-table th:first-child{min-width:210px;white-space:nowrap}.application-table .row-action-group{flex-wrap:nowrap;white-space:nowrap}.upload-progress-modal-content{max-width:420px}.upload-progress-dock{position:fixed;top:14px;right:14px;z-index:12060;width:min(360px,calc(100vw - 28px));pointer-events:none}.upload-progress-dock:not(.hidden){pointer-events:auto}.upload-progress-dock.hidden{display:none!important}.upload-progress-dock-card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 14px 40px rgba(15,23,42,.16);padding:14px 16px 16px;pointer-events:auto}.upload-progress-dock.is-collapsed .upload-progress-dock-body{display:none}.upload-progress-dock.is-collapsed .upload-progress-dock-card{padding-bottom:12px}.upload-progress-dock-header{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.upload-progress-dock-title{margin:0;font-size:14px;font-weight:600;color:#0f172a;line-height:1.45;word-break:break-word;flex:1}.upload-progress-dock-toggle{flex-shrink:0;border:1px solid #cbd5e1;background:#f8fafc;color:#475569;font-size:12px;line-height:1.2;padding:5px 10px;border-radius:6px;cursor:pointer}.upload-progress-dock-toggle:hover{background:#f1f5f9;border-color:#94a3b8}.upload-progress-dock-message{margin:10px 0 0;font-size:13px;color:#64748b;line-height:1.5;word-break:break-word}.upload-progress-bar{width:100%;height:12px;background:#e2e8f0;border-radius:999px;overflow:hidden;margin-top:18px}.upload-progress-fill{width:0;height:100%;background:linear-gradient(135deg,#6366f1 0,#4f46e5 100%);transition:width .2s}.upload-progress-text{margin-top:12px;text-align:right;color:#475569;font-size:14px;font-weight:600}.radar-action-group{display:inline-flex;align-items:center;gap:8px;flex-wrap:nowrap;white-space:nowrap}.radar-status-stack{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}.admin-radar-summary-link{cursor:pointer;color:inherit;font-weight:inherit;border:none;background:0 0;padding:0;font-size:inherit;line-height:inherit}.admin-radar-summary-link:hover{text-decoration:underline}.cell-nowrap{white-space:nowrap}.empty-table-tip{text-align:center;color:#64748b;padding:24px 12px}.cell-ellipsis{max-width:240px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.radar-table-admin td:first-child,.radar-table-admin th:first-child{min-width:190px}.radar-table-admin td:nth-child(2),.radar-table-admin td:nth-child(3),.radar-table-admin td:nth-child(4),.radar-table-admin td:nth-child(5),.radar-table-admin td:nth-child(6),.radar-table-admin td:nth-child(8),.radar-table-admin td:nth-child(9),.radar-table-admin th:nth-child(2),.radar-table-admin th:nth-child(3),.radar-table-admin th:nth-child(4),.radar-table-admin th:nth-child(5),.radar-table-admin th:nth-child(6),.radar-table-admin th:nth-child(8),.radar-table-admin th:nth-child(9){white-space:nowrap}.radar-table-admin td:nth-child(7),.radar-table-admin th:nth-child(7){min-width:160px}.radar-table-admin td:nth-child(10),.radar-table-admin th:nth-child(10){min-width:280px}.radar-table-client td:first-child,.radar-table-client th:first-child{padding-right:4px;min-width:260px}.radar-table-client td:nth-child(4),.radar-table-client th:nth-child(4){min-width:220px}.radar-table-client td:nth-child(5),.radar-table-client th:nth-child(5){min-width:160px}.radar-table-client td:nth-child(8),.radar-table-client th:nth-child(8){min-width:190px;white-space:nowrap}.radar-table-client td:nth-child(2),.radar-table-client td:nth-child(3),.radar-table-client td:nth-child(6),.radar-table-client td:nth-child(7),.radar-table-client th:nth-child(2),.radar-table-client th:nth-child(3),.radar-table-client th:nth-child(6),.radar-table-client th:nth-child(7){white-space:nowrap}.pagination-actions .btn:disabled{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}.two-select-row{display:flex;gap:24px;align-items:flex-start}.two-select-row .form-group-half{flex:1;min-width:0}.two-select-row .form-group-half select:disabled{background:#f1f5f9;color:#94a3b8;cursor:not-allowed}.service-category-select,.service-tier-select{width:auto;min-width:100px;padding:6px 10px;border:2px solid #cbd5e1;font-size:13px;cursor:pointer}.service-category-select:focus,.service-tier-select:focus{outline:0}.client-radar-limit-tip{display:block;margin-top:6px;padding:10px 14px;border:1px solid #f59e0b;color:#92400e;font-size:14px;font-weight:500}.announcement-section{margin-bottom:30px}.announcement-editor textarea,.announcement-editor-input{width:100%;padding:10px;border:1px solid #cbd5e1;font-size:14px;resize:vertical;box-sizing:border-box}.announcement-editor-input{min-height:120px;max-height:280px;overflow-y:auto;white-space:pre-wrap;word-break:break-word;line-height:1.6;font-family:'Segoe UI','Microsoft YaHei','PingFang SC','Hiragino Sans GB','Apple Color Emoji','Segoe UI Emoji','Noto Color Emoji',sans-serif}.announcement-symbol-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:8px}.announcement-symbol-toolbar .announcement-editor-label{margin-right:4px}.announcement-symbol-btn{min-width:38px;height:38px;padding:4px 8px;border:1px solid #e2e8f0;font-size:20px;line-height:1;cursor:pointer;font-family:'Apple Color Emoji','Segoe UI Emoji','Noto Color Emoji','Segoe UI Symbol',sans-serif}.announcement-symbol-btn:active{transform:scale(.96)}.announcement-editor-input:empty::before{content:attr(data-placeholder);color:#94a3b8;pointer-events:none}.announcement-editor-input:focus{outline:0;box-shadow:0 0 0 2px rgba(99,102,241,.15)}.announcement-editor-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:10px}.announcement-color-picker{width:44px;min-width:44px;height:36px;padding:2px;border:1px solid var(--lux-line-soft,rgba(255,255,255,.14));border-radius:10px;background:0 0;cursor:pointer;vertical-align:middle}.announcement-color-hex{width:96px!important;min-width:96px;max-width:120px;font-family:'JetBrains Mono',Consolas,monospace}.announcement-editor-label{font-size:13px;color:#475569;white-space:nowrap}.announcement-editor-control{width:auto;min-width:100px}.announcement-image-toolbar{margin-top:8px}.announcement-image-toolbar #save-announcement-btn{margin-left:4px}.announcement-image-name{font-size:13px;color:#64748b}.announcement-preview-image{display:block;max-width:240px;max-height:140px;margin-top:10px;border:1px solid #e2e8f0;object-fit:contain}.announcement-client-preview{margin-top:14px;padding:14px;border:1px dashed #94a3b8}.announcement-preview-caption{font-size:13px;color:#64748b;margin-bottom:10px}.announcement-editor-input .announcement-link{color:#6366f1;text-decoration:underline;word-break:break-all}.announcement-status-text{font-size:13px}.announcement-display{display:flex;gap:16px;align-items:flex-start}.announcement-layout-top{flex-direction:column;align-items:stretch}.announcement-layout-bottom{flex-direction:column-reverse;align-items:stretch}.announcement-layout-left{flex-direction:row;align-items:flex-start}.announcement-layout-right{flex-direction:row-reverse;align-items:flex-start}.announcement-display-text{flex:1;min-width:0;line-height:1.6;word-break:break-word;overflow-wrap:anywhere;white-space:normal;-webkit-text-size-adjust:100%;color:#1e293b;font-family:'Segoe UI','Microsoft YaHei','PingFang SC','Hiragino Sans GB','Apple Color Emoji','Segoe UI Emoji','Noto Color Emoji',sans-serif}.announcement-display-text div,.announcement-display-text p{margin:0 0 8px;white-space:normal}.announcement-display-text div:last-child,.announcement-display-text p:last-child{margin-bottom:0}.announcement-display-image{flex-shrink:0;max-width:280px;max-height:220px;width:auto;height:auto;border:1px solid #e2e8f0;object-fit:contain}.announcement-layout-bottom .announcement-display-image,.announcement-layout-top .announcement-display-image{max-width:100%;align-self:center}.announcement-link{color:#6366f1;text-decoration:underline;cursor:pointer}.announcement-link:hover{color:#4f46e5}.radar-announcement-subsection{margin-top:24px;padding-top:20px;border-top:1px solid #e2e8f0}.radar-announcement-heading{font-size:15px;font-weight:600;color:#334155;margin:0 0 6px}.radar-announcement-hint{font-size:13px;color:#64748b;margin:0 0 14px;line-height:1.5}.radar-announcement-public-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:14px}.radar-announcement-public-input{flex:1;min-width:220px}.radar-announcement-app-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.radar-announcement-app-tab{padding:8px 14px;border:1px solid #cbd5e1;border-radius:6px;color:#475569;font-size:13px;cursor:pointer;transition:border-color .15s,background .15s,box-shadow .15s}.radar-announcement-app-tab.active{color:#4338ca;box-shadow:0 0 0 2px rgba(99,102,241,.12)}.radar-announcement-textarea{min-height:100px;resize:vertical}.radar-announcement-preview-box{padding:12px 16px;background:rgba(18,8,32,.85);border:1px solid rgba(168,85,247,.45);border-radius:12px;min-height:48px;line-height:1.55;word-break:break-word;backdrop-filter:blur(8px);box-shadow:0 8px 32px rgba(0,0,0,.35)}.radar-announcement-preview-box img{display:block;max-width:100%;max-height:120px;margin:0 auto 8px;border-radius:8px;object-fit:contain}.radar-announcement-preview-empty{color:var(--lux-muted-2,#94a3b8);font-size:13px}.file-deploy-toolbar{display:flex;align-items:center;gap:8px;margin-bottom:10px;flex-wrap:wrap}.file-deploy-batch-toolbar{margin-top:-2px;padding-top:8px;border-top:1px solid rgba(255,255,255,.08)}.file-deploy-batch-toolbar .btn-warning{min-width:132px}.file-deploy-badge{display:inline-block;border:1px solid #a7f3d0;border-radius:4px;padding:2px 10px;font-size:13px;font-weight:600;max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-active-tag{display:inline-block;color:#6366f1;font-size:12px;font-weight:600;padding:4px 8px}#file-deploy-result{margin-top:6px;font-size:13px;line-height:1.8}#file-deploy-result div{padding:2px 0}[data-app-entry=client] .form-control,[data-app-entry=client] .form-group input,[data-app-entry=client] .form-group select{font-size:16px}@media (max-width:768px){[data-app-entry=client] .client-dashboard .dashboard-header{flex-direction:column;align-items:stretch;gap:10px}[data-app-entry=client] .client-dashboard .dashboard-header h1{font-size:20px}[data-app-entry=client] #client-logout-btn{width:100%;min-height:44px}[data-app-entry=client] .card-key-info{width:100%}[data-app-entry=client] .client-dashboard .section>h2,[data-app-entry=client] .client-radar-section h2{font-size:15px;line-height:1.45}[data-app-entry=client] #client-add-radar-form .btn.btn-primary{min-height:44px}[data-app-entry=client] .client-radar-list{max-height:none;overflow-x:visible;border:none;background:0 0;padding:0}[data-app-entry=client] .radar-table-client{min-width:0!important}[data-app-entry=client] .radar-table-client thead{display:none}[data-app-entry=client] .radar-table-client tbody tr{display:block;margin-bottom:14px;padding:14px;border:1px solid #e2e8f0;border-radius:12px;background:#fff;box-shadow:0 2px 8px rgba(0,0,0,.06)}[data-app-entry=client] .radar-table-client tbody td{display:grid;grid-template-columns:92px 1fr;gap:6px 12px;align-items:start;padding:8px 0;border:none;white-space:normal!important;min-width:0!important;text-align:right}[data-app-entry=client] .radar-table-client tbody td::before{content:attr(data-label);font-weight:600;color:#475569;font-size:12px;text-align:left;white-space:nowrap}[data-app-entry=client] .radar-table-client tbody td[data-label="操作"]{display:block;padding-top:12px;margin-top:4px;border-top:1px dashed #e2e8f0;text-align:left}[data-app-entry=client] .radar-table-client tbody td[data-label="操作"]::before{display:block;margin-bottom:10px}[data-app-entry=client] .radar-table-client .radar-action-group{flex-direction:column;align-items:stretch;width:100%;gap:8px}[data-app-entry=client] .radar-table-client .radar-action-group .btn,[data-app-entry=client] .radar-table-client .radar-action-group a.btn{display:flex;align-items:center;justify-content:center;width:100%;min-height:44px;margin:0;text-align:center;text-decoration:none;box-sizing:border-box;line-height:1.2}[data-app-entry=client] .radar-table-client tbody td>.status-badge{justify-self:end;width:fit-content;max-width:100%;white-space:nowrap;padding:4px 10px}.container{padding:10px;max-width:100%}.dashboard-header{flex-direction:column;gap:12px}.header-buttons{flex-wrap:wrap;gap:6px}.section-header-row{flex-direction:column;align-items:flex-start;gap:8px}.section-header-actions{flex-wrap:wrap}.dashboard-content{padding:15px}.section{padding:15px;margin-bottom:16px}.section h2{font-size:16px;margin-bottom:12px}.filter-inline-row{flex-direction:column;align-items:stretch;gap:8px}.filter-control{min-width:auto!important;max-width:none!important;width:100%}.filter-card-key-input{min-width:auto!important;max-width:none!important}.filter-actions{justify-content:flex-start}.filter-actions .btn{flex:1}.radar-list-scrollable{max-height:320px}td,th{padding:10px 8px;font-size:13px}.form-row{flex-direction:column;gap:12px}.form-row .form-group{min-width:auto}.two-select-row{flex-direction:column;gap:12px}.radar-action-group,.row-action-group{flex-wrap:wrap}.modal-content{width:95%;max-width:none;padding:20px}.confirm-modal-content,.node-editor-modal-content{width:95%;max-width:none}.modal-buttons{gap:8px}.file-deploy-toolbar{flex-direction:column;align-items:stretch}#file-target-path{width:100%!important}.toast-item{min-width:auto;max-width:90vw}.mode-cards{grid-template-columns:1fr}.mode-select-container{padding:25px 15px}.generated-keys-list{flex-direction:column}.announcement-display,.announcement-layout-left,.announcement-layout-right{flex-direction:column!important;align-items:stretch!important}.announcement-display-image{max-width:100%;max-height:180px;align-self:center}.client-announcement-modal-content{width:94%;max-width:none;padding:16px}.client-announcement-modal-content .announcement-display-text{font-size:15px!important}.confirm-select-item{padding:10px 12px}}@media (max-width:480px){body{align-items:flex-start;padding-top:6px;overflow-x:hidden}.container{padding:6px}.login-container{padding:20px 16px;border-radius:12px}.mode-select-container{padding:16px 10px}.dashboard-header{padding:14px 18px}.dashboard-header h1{font-size:18px}.dashboard-content{padding:10px}.section{padding:12px 10px;border-radius:8px}.section h2{font-size:15px}.btn{font-size:14px;padding:10px}.btn-small{font-size:12px;padding:4px 8px}td,th{padding:8px 6px;font-size:12px}.modal-content{padding:15px;border-radius:10px}.modal-buttons{flex-direction:column}.modal-buttons .btn{flex:none;width:100%}.toast-container{top:8px;right:8px;left:8px}.toast-item{max-width:none}.mode-card{padding:20px 12px}.card-key-info{flex-direction:column;gap:8px;align-items:flex-start}.file-deploy-badge{max-width:180px;font-size:12px}.announcement-editor textarea,.announcement-editor-input{max-width:100%}.announcement-editor-control{min-width:88px}.confirm-select-item{padding:8px 10px}.sync-node-toolbar{flex-wrap:wrap;gap:6px}[data-app-entry=client] .client-login-container{margin-top:8px}[data-app-entry=client] .client-dashboard .section>h2,[data-app-entry=client] .client-radar-section h2{font-size:14px}[data-app-entry=client] .radar-table-client tbody tr{padding:12px}[data-app-entry=client] .radar-table-client tbody td{grid-template-columns:80px 1fr}[data-app-entry=client] .radar-table-client tbody td>.status-badge{justify-self:end}}:root{--lux-bg:#030304;--lux-bg-soft:#080809;--lux-panel:rgba(16, 16, 18, 0.94);--lux-panel-soft:rgba(25, 25, 28, 0.82);--lux-panel-lift:rgba(31, 30, 31, 0.88);--lux-line:rgba(218, 197, 152, 0.18);--lux-line-soft:rgba(255, 255, 255, 0.08);--lux-text:#f3eee5;--lux-muted:#a19a8f;--lux-muted-2:#756f67;--lux-gold:#d8bd7f;--lux-gold-2:#f2d99a;--lux-green:#9eb890;--lux-red:#c87569;--lux-blue:#9ba9c8;--lux-shadow:0 22px 70px rgba(0, 0, 0, 0.48),inset 0 1px 0 rgba(255,255,255,0.04);--lux-shadow-soft:0 12px 36px rgba(0, 0, 0, 0.32),inset 0 1px 0 rgba(255,255,255,0.035)}html{background:var(--lux-bg)}body{color:var(--lux-text);background:radial-gradient(circle at 12% 8%,rgba(216,189,127,.1),transparent 28%),radial-gradient(circle at 88% 14%,rgba(120,130,96,.12),transparent 26%),linear-gradient(180deg,#080808 0,var(--lux-bg) 45%,#050505 100%);align-items:flex-start}body::before{content:"";position:fixed;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(180deg,rgba(255,255,255,.026) 1px,transparent 1px);background-size:72px 72px;mask-image:linear-gradient(180deg,rgba(0,0,0,0.24),transparent 65%)}.container{max-width:1480px;padding:clamp(14px,3vw,42px)}.dashboard,.login-container,.modal-content,.mode-select-container{color:var(--lux-text);background:linear-gradient(180deg,rgba(18,18,20,.96),rgba(10,10,12,.94));border:1px solid var(--lux-line);border-radius:28px;box-shadow:var(--lux-shadow)}.login-container,.mode-select-container{margin-top:clamp(18px,8vh,90px)}.dashboard-header h1,.login-container h1,.modal-content h2,.mode-select-container h1,.section h2{color:var(--lux-text);letter-spacing:-.03em;font-weight:560}.announcement-editor-label,.announcement-image-name,.announcement-preview-caption,.confirm-modal-detail,.confirm-modal-message,.form-group label,.mode-card p,.pagination-page-info,.pagination-summary,.subtitle{color:var(--lux-muted)}.mode-card{color:var(--lux-text);background:rgba(255,255,255,.026);border:1px solid var(--lux-line-soft);border-radius:24px;box-shadow:var(--lux-shadow-soft)}.mode-card:hover{border-color:rgba(216,189,127,.34);background:rgba(216,189,127,.06);box-shadow:var(--lux-shadow)}.admin-card:hover,.client-card:hover{border-color:rgba(216,189,127,.34);background:rgba(216,189,127,.06)}.card-footer{border-top-color:var(--lux-line-soft)}.admin-card .card-footer,.client-card .card-footer{color:var(--lux-gold)}.dashboard{overflow:hidden}.dashboard-header{background:radial-gradient(circle at 18% 0,rgba(216,189,127,.16),transparent 42%),linear-gradient(135deg,rgba(18,18,21,.98),rgba(5,5,6,.98));border-bottom:1px solid var(--lux-line);box-shadow:none;padding:26px 34px}.card-key-info{background:rgba(255,255,255,.035);border:1px solid var(--lux-line-soft);border-radius:999px;padding:8px 14px;color:var(--lux-muted)}.dashboard-content{background:0 0;padding:clamp(18px,2.7vw,34px)}.announcement-client-preview,.confirm-select-item,.filter-toolbar,.generated-keys,.section,.sync-node-list,.sync-node-result,.upload-progress-modal-content{background:rgba(255,255,255,.026);border:1px solid var(--lux-line-soft);border-radius:22px;box-shadow:var(--lux-shadow-soft)}.section{padding:clamp(18px,2.4vw,30px);margin-bottom:24px}.section h2{border-bottom:1px solid var(--lux-line-soft);padding-bottom:14px;margin-bottom:20px}.filter-toolbar{padding:14px}.announcement-editor textarea,.announcement-editor-input,.form-control,.form-group input,.form-group select,.service-category-select,.service-tier-select{color:var(--lux-text);background:rgba(5,5,6,.86);border:1px solid var(--lux-line-soft);border-radius:15px;transition:border-color .2s,box-shadow .2s,background .2s;color-scheme:dark}.announcement-editor-input:empty::before,.form-control::placeholder,.form-group input::placeholder{color:var(--lux-muted-2)}.announcement-editor-input:focus,.form-control:focus,.form-group input:focus,.form-group select:focus,.service-category-select:focus,.service-tier-select:focus{border-color:rgba(216,189,127,.52);box-shadow:0 0 0 3px rgba(216,189,127,.12);background:rgba(8,8,9,.96)}.form-control option,.form-group select option,.service-category-select option,.service-tier-select option{color:var(--lux-text);background:#080809}.btn{border-radius:15px;border:1px solid transparent;box-shadow:none}.btn-primary{color:#1a1408;background:linear-gradient(135deg,var(--lux-gold-2),var(--lux-gold));border-color:rgba(255,229,171,.18)}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 12px 30px rgba(216,189,127,.22)}.btn-secondary{color:var(--lux-text);background:rgba(255,255,255,.06);border-color:var(--lux-line-soft)}.btn-secondary:hover{background:rgba(255,255,255,.1);transform:translateY(-1px)}.btn-success{color:#071007;background:linear-gradient(135deg,#cfe2c6,var(--lux-green));border-color:rgba(158,184,144,.24)}.btn-warning{color:#1a1408;background:linear-gradient(135deg,#f2d99a,#b79555);border-color:rgba(216,189,127,.2)}.btn-danger{color:#fff0ee;background:linear-gradient(135deg,#b7685e,#7b3d38);border-color:rgba(200,117,105,.25)}.btn-danger:hover,.btn-success:hover,.btn-warning:hover{transform:translateY(-1px);filter:brightness(1.05)}.btn:disabled,.btn[disabled]{opacity:.48;cursor:not-allowed;transform:none!important;filter:none!important}.radar-list,.radar-list-scrollable{border-radius:18px;background:rgba(0,0,0,.15)}th{background:0 0;color:var(--lux-muted);border-bottom:none;font-weight:500}td{color:var(--lux-text);background:rgba(255,255,255,.028);border-top:1px solid var(--lux-line-soft);border-bottom:1px solid var(--lux-line-soft)}td:first-child{border-left:1px solid var(--lux-line-soft);border-radius:16px 0 0 16px}td:last-child{border-right:1px solid var(--lux-line-soft);border-radius:0 16px 16px 0}tr:hover{background:0 0}tr:hover td{background:rgba(216,189,127,.055);border-color:rgba(216,189,127,.16)}.generated-key-item,td code{color:var(--lux-gold-2);background:rgba(216,189,127,.09);border:1px solid rgba(216,189,127,.14);border-radius:10px}.status-active,.status-online,.status-running{color:#d9efd1;background:rgba(158,184,144,.14);border:1px solid rgba(158,184,144,.22)}.status-inactive,.status-offline,.status-stopped{color:#c9c0b4;background:rgba(255,255,255,.055);border:1px solid var(--lux-line-soft)}.status-error,.status-expired,.status-missing{color:#f0b5ad;background:rgba(200,117,105,.13);border:1px solid rgba(200,117,105,.22)}.status-node-offline,.status-pending,.status-starting{color:var(--lux-gold-2);background:rgba(216,189,127,.13);border:1px solid rgba(216,189,127,.22)}.header-buttons,.modal-buttons,.pagination-actions,.radar-action-group,.row-action-group{gap:9px}.modal{background:rgba(0,0,0,.72);backdrop-filter:blur(10px)}.modal-content{border-radius:26px}.toast-item{background:rgba(16,16,18,.96);border:1px solid var(--lux-line);color:var(--lux-text);box-shadow:var(--lux-shadow-soft);position:relative;min-width:min(420px,calc(100vw - 40px));max-width:min(520px,calc(100vw - 40px));padding:22px 26px 22px 28px;overflow:hidden;border-radius:24px;background:radial-gradient(circle at 18% 0,rgba(216,189,127,.16),transparent 36%),rgba(13,13,15,.96);border:1px solid rgba(216,189,127,.22);color:var(--lux-text);box-shadow:0 28px 80px rgba(0,0,0,.55),inset 0 1px 0 rgba(255,255,255,.06);transform:translateY(12px) scale(.96);opacity:0;backdrop-filter:blur(14px);transition:transform .28s,opacity .28s}.toast-container{align-items:flex-end}.toast-item::before{content:"";position:absolute;left:0;top:18px;bottom:18px;width:4px;border-radius:0 999px 999px 0;background:var(--lux-gold)}.toast-item.show{transform:translateY(0) scale(1);opacity:1}.toast-item.hide{transform:translateY(-8px) scale(.98);opacity:0}.toast-item.toast-success::before{background:var(--lux-green)}.toast-item.toast-error::before{background:var(--lux-red)}.toast-item.toast-warning::before{background:var(--lux-gold)}.toast-item.toast-info::before{background:var(--lux-blue)}.toast-item.toast-error,.toast-item.toast-info,.toast-item.toast-success,.toast-item.toast-warning{background:radial-gradient(circle at 18% 0,rgba(216,189,127,.16),transparent 36%),rgba(13,13,15,.96)}.toast-title{color:var(--lux-gold-2);font-size:16px;font-weight:650;letter-spacing:.04em}.toast-message{color:var(--lux-text);font-size:15px}.node-status-hover-card{background:rgba(16,16,18,.97);color:var(--lux-text);border-color:var(--lux-line);box-shadow:var(--lux-shadow)}.announcement-symbol-btn{color:var(--lux-text);background:rgba(255,255,255,.04);border-color:var(--lux-line-soft);border-radius:14px}.announcement-symbol-btn:active{background:rgba(216,189,127,.12)}.announcement-display-text,.announcement-display-text div,.announcement-display-text p{color:var(--lux-text)}.radar-announcement-preview-box,.radar-announcement-preview-box div{color:rgba(243,232,255,.95)}.radar-announcement-subsection{border-top-color:var(--lux-line-soft)}.radar-announcement-heading{color:var(--lux-text)}.radar-announcement-hint{color:var(--lux-muted)}.radar-announcement-app-tab{color:var(--lux-muted);background:rgba(255,255,255,.04);border-color:var(--lux-line-soft)}.radar-announcement-app-tab:hover{background:rgba(255,255,255,.07);border-color:rgba(216,189,127,.28)}.radar-announcement-app-tab.active{color:var(--lux-gold-2);background:rgba(168,85,247,.12);border-color:rgba(168,85,247,.45);box-shadow:0 0 0 2px rgba(168,85,247,.12)}.announcement-display-image,.announcement-preview-image{background:rgba(0,0,0,.18);border-color:var(--lux-line-soft);border-radius:16px}.announcement-editor-input .announcement-link,.announcement-link{color:var(--lux-gold-2)}.file-deploy-badge,.file-row-active{color:#d9efd1;background:rgba(158,184,144,.13);border-color:rgba(158,184,144,.22)}.file-active-tag{color:var(--lux-gold-2)}.client-radar-limit-tip{color:var(--lux-gold-2);background:rgba(216,189,127,.1);border-color:rgba(216,189,127,.22);border-radius:15px}.top-status-bar{background:rgba(12,12,13,.96);color:var(--lux-text);border-bottom:1px solid var(--lux-line)}@media (max-width:768px){.dashboard{border-radius:24px}.dashboard-header{padding:18px}.section{border-radius:20px}[data-app-entry=client] .radar-table-client tbody tr{border-color:var(--lux-line-soft);border-radius:20px;background:rgba(255,255,255,.03);box-shadow:var(--lux-shadow-soft)}[data-app-entry=client] .radar-table-client tbody td{color:var(--lux-text)}[data-app-entry=client] .radar-table-client tbody td::before{color:var(--lux-muted)}[data-app-entry=client] .radar-table-client tbody td[data-label="操作"]{border-top-color:var(--lux-line-soft)}[data-app-entry=client] .radar-table-client .radar-action-group{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}[data-app-entry=client] .radar-table-client .radar-action-group .btn,[data-app-entry=client] .radar-table-client .radar-action-group a.btn{border-radius:14px}}@media (max-width:480px){.container{padding:8px}.dashboard,.login-container,.modal-content,.mode-select-container{border-radius:20px}.section{padding:14px 12px;border-radius:18px}[data-app-entry=client] .radar-table-client .radar-action-group{grid-template-columns:1fr}}[data-app-entry=admin] .dashboard,[data-app-entry=client] .dashboard{width:100%;max-width:1440px;margin:0 auto}[data-app-entry=admin] .dashboard{display:grid;grid-template-columns:238px minmax(0,1fr);align-items:start}[data-app-entry=client] .dashboard{overflow:hidden;isolation:isolate}[data-app-entry=client] .client-header-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex:0 0 auto}[data-app-entry=client] #client-batch-open-btn.client-batch-header-btn{min-height:40px;padding:9px 18px;margin:0;display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(216,189,127,.75);border-radius:14px;background:linear-gradient(180deg,rgba(216,189,127,.24),rgba(216,189,127,.07)),rgba(18,18,20,.96);color:#f6e7c4;font-size:14px;font-weight:650;line-height:1.2;white-space:nowrap;box-shadow:0 10px 24px rgba(0,0,0,.32),inset 0 1px 0 rgba(255,255,255,.12);cursor:pointer;transition:border-color .18s,color .18s,transform .18s}[data-app-entry=client] #client-batch-open-btn.client-batch-header-btn:hover{border-color:#f0e2bf;color:#fffaf0;transform:translateY(-1px)}@media (max-width:768px){[data-app-entry=client] .client-header-actions{width:100%;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}[data-app-entry=client] #client-batch-open-btn.client-batch-header-btn,[data-app-entry=client] #client-logout-btn{width:100%;min-height:44px;margin:0}}.client-batch-page{grid-column:1/-1;position:static;z-index:auto;inset:auto;flex-direction:column;gap:16px;padding:8px 0 0;background:0 0;color:#f3eee5;overflow:visible}[data-app-entry=client] #client-dashboard-page .client-batch-page.is-open{display:flex!important;min-height:560px;box-sizing:border-box;padding:22px 24px;border:1px solid var(--lux-line-soft,rgba(255,255,255,.08));border-radius:22px;background:rgba(255,255,255,.026)}[data-app-entry=client] .dashboard-content.is-batch-mode>.section{display:none}[data-app-entry=admin] .dashboard-header{grid-column:1/-1}[data-app-entry=admin] .dashboard-header h1,[data-app-entry=client] .dashboard-header h1{font-size:clamp(24px, 3vw, 36px);font-weight:520}[data-app-entry=admin] .dashboard-content{grid-column:2;display:grid;grid-template-columns:minmax(0,1fr);gap:22px;align-items:start}[data-app-entry=admin] .dashboard-content::before{content:none}.dashboard-sidebar{grid-column:1;position:sticky;top:24px;align-self:stretch;min-height:calc(100% - 56px);margin:28px 0 28px 28px;padding:26px 18px;color:var(--lux-muted);border:1px solid var(--lux-line-soft);border-radius:28px;background:rgba(255,255,255,.024);box-shadow:var(--lux-shadow-soft)}.dashboard-sidebar-brand{color:var(--lux-text);font-size:24px;font-weight:520;letter-spacing:-.03em;padding:8px 14px 26px}.dashboard-sidebar-item{display:block;color:var(--lux-muted);text-decoration:none;padding:16px;border-radius:18px;margin-bottom:8px;font-size:17px;font-weight:560}.dashboard-sidebar-item.is-active,.dashboard-sidebar-item:hover{color:var(--lux-text);background:rgba(216,189,127,.1);border:1px solid rgba(216,189,127,.18)}.admin-section-hidden{display:none!important}[data-app-entry=admin] .dashboard-content>.section{grid-column:1;margin-bottom:0}[data-app-entry=admin] .dashboard-content>.section:first-of-type::before,[data-app-entry=admin] .dashboard-content>.section:nth-of-type(2)::before,[data-app-entry=admin] .dashboard-content>.section:nth-of-type(3)::before{display:inline-flex;min-height:28px;align-items:center;padding:0 12px;margin-bottom:14px;border-radius:999px;color:var(--lux-gold-2);border:1px solid rgba(216,189,127,.22);background:rgba(216,189,127,.08);font-size:12px}[data-app-entry=admin] .dashboard-content>.section:first-of-type::before{content:"核心操作"}[data-app-entry=admin] .dashboard-content>.section:nth-of-type(2)::before{content:"节点管理"}[data-app-entry=admin] .dashboard-content>.section:nth-of-type(3)::before{content:"运行态监控"}[data-app-entry=admin] .section{border-radius:28px}[data-app-entry=admin] .section h2,[data-app-entry=client] .section h2{font-size:clamp(18px, 1.8vw, 24px)}[data-app-entry=admin] .file-deploy-toolbar,[data-app-entry=admin] .filter-inline-row,[data-app-entry=admin] .form-row,[data-app-entry=client] .form-row{gap:14px}[data-app-entry=client] .dashboard-content{position:relative;padding-left:clamp(18px,2.7vw,34px);display:grid;grid-template-columns:minmax(320px,0.9fr) minmax(0,1.1fr);gap:22px;align-items:stretch}[data-app-entry=client] .client-dashboard-banner{margin:0 0 16px;padding:12px 16px;border:1px solid rgba(216,189,127,.45);border-radius:16px;background:rgba(216,189,127,.1);color:#f6edd8;font-size:15px;line-height:1.65;text-align:center;white-space:pre-wrap;word-break:break-word;overflow-wrap:anywhere}.dashboard-banner-editor{margin:0 0 18px;padding:14px 16px;border:1px solid rgba(216,189,127,.28);border-radius:14px}.dashboard-banner-editor h3{margin:0 0 6px;font-size:16px}.dashboard-banner-hint{margin:0 0 10px;color:#a8a29a;font-size:13px;line-height:1.5}.dashboard-banner-editor textarea{width:100%;min-height:96px;resize:vertical}.dashboard-banner-actions{display:flex;align-items:center;gap:12px;margin-top:10px;flex-wrap:wrap}@media (max-width:768px){[data-app-entry=client] .client-dashboard-banner{margin-bottom:12px;padding:10px 12px;font-size:14px;line-height:1.55;border-radius:12px}}[data-app-entry=client] .client-wait-announcement-section{grid-column:1/-1;margin-top:0;margin-bottom:0}[data-app-entry=client] .dashboard-content>.section{margin-bottom:0}[data-app-entry=client] .client-radar-section{display:flex;flex-direction:column;min-height:100%;height:100%}[data-app-entry=client] #client-add-radar-form{display:block}[data-app-entry=client] .two-select-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(3,auto);grid-auto-flow:column;gap:14px 16px}[data-app-entry=client] .two-select-row .form-group-half select,[data-app-entry=client] .two-select-row .form-group-half select:disabled{background:rgba(0,0,0,.22);color:var(--lux-text)}[data-app-entry=client] .client-radar-list{border:0;background:0 0;max-height:none;overflow:visible}[data-app-entry=client] .radar-table-client{border-collapse:separate;border-spacing:0 12px}[data-app-entry=client] .radar-table-client td{background:rgba(255,255,255,.032)}[data-app-entry=client] .radar-table-client tbody tr.is-creating td[data-label="IP地址"],[data-app-entry=client] .radar-table-client tbody tr.is-creating td[data-label="Web端口"],[data-app-entry=client] .radar-table-client tbody tr.is-creating td[data-label="授权码"],[data-app-entry=client] .radar-table-client tbody tr.is-creating td[data-label="操作"],[data-app-entry=client] .radar-table-client tbody tr.is-creating td[data-label="状态"],[data-app-entry=client] .radar-table-client tbody tr.is-creating td[data-label="端口"],[data-app-entry=client] .radar-table-client tbody tr.is-creating td[data-label="观看链接"]{display:none!important}@media (min-width:769px){[data-app-entry=client] .client-radar-list{overflow-x:visible;overflow-y:visible;max-height:none;padding:0}[data-app-entry=client] .radar-table-client{display:block;width:100%;min-width:0!important;border-spacing:0}[data-app-entry=client] .radar-table-client thead{display:none}[data-app-entry=client] .radar-table-client tbody{display:grid;grid-template-columns:minmax(0,1fr);gap:18px}[data-app-entry=client] .radar-table-client tbody tr{display:block;width:100%;min-width:0;padding:22px 24px;border:1px solid var(--lux-line-soft);border-radius:24px;background:radial-gradient(circle at 8% 0,rgba(216,189,127,.08),transparent 32%),rgba(255,255,255,.034);box-shadow:0 18px 46px rgba(0,0,0,.34),inset 0 1px 0 rgba(255,255,255,.045)}[data-app-entry=client] .radar-table-client tbody td{display:grid;grid-template-columns:118px minmax(0,1fr);gap:16px;align-items:center;min-width:0!important;padding:10px 0;border:0;color:var(--lux-text);font-size:16px;line-height:1.5;text-align:left;white-space:normal!important;background:0 0}[data-app-entry=client] .radar-table-client tbody td::before{content:attr(data-label);color:var(--lux-muted);font-size:13px;line-height:1.5;text-align:left;white-space:nowrap}[data-app-entry=client] .radar-table-client tbody td[data-label$="3D观看链接"],[data-app-entry=client] .radar-table-client tbody td[data-label="IP地址"],[data-app-entry=client] .radar-table-client tbody td[data-label="Web端口"],[data-app-entry=client] .radar-table-client tbody td[data-label="授权码"],[data-app-entry=client] .radar-table-client tbody td[data-label="端口"],[data-app-entry=client] .radar-table-client tbody td[data-label="观看链接"]{padding:13px 14px;margin-bottom:8px;border:1px solid rgba(255,255,255,.06);border-radius:18px;color:var(--lux-text);background:rgba(0,0,0,.22);font-size:20px;font-weight:650;letter-spacing:.01em}[data-app-entry=client] .radar-table-client tbody td[data-label$="3D观看链接"]::before,[data-app-entry=client] .radar-table-client tbody td[data-label="IP地址"]::before,[data-app-entry=client] .radar-table-client tbody td[data-label="Web端口"]::before,[data-app-entry=client] .radar-table-client tbody td[data-label="授权码"]::before,[data-app-entry=client] .radar-table-client tbody td[data-label="端口"]::before,[data-app-entry=client] .radar-table-client tbody td[data-label="观看链接"]::before{color:var(--lux-gold-2);font-size:16px;font-weight:650}[data-app-entry=client] .radar-table-client tbody td[data-label$="3D观看链接"] .client-radar-value-row,[data-app-entry=client] .radar-table-client tbody td[data-label="IP地址"] .client-radar-value-row,[data-app-entry=client] .radar-table-client tbody td[data-label="Web端口"] .client-radar-value-row,[data-app-entry=client] .radar-table-client tbody td[data-label="授权码"] .client-radar-value-row,[data-app-entry=client] .radar-table-client tbody td[data-label="端口"] .client-radar-value-row,[data-app-entry=client] .radar-table-client tbody td[data-label="观看链接"] .client-radar-value-row{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-width:0}[data-app-entry=client] .radar-table-client tbody td[data-label="IP地址"] .client-radar-value-text,[data-app-entry=client] .radar-table-client tbody td[data-label="Web端口"] .client-radar-value-text,[data-app-entry=client] .radar-table-client tbody td[data-label="授权码"] .client-radar-value-text,[data-app-entry=client] .radar-table-client tbody td[data-label="端口"] .client-radar-value-text,[data-app-entry=client] .radar-table-client tbody td[data-label="观看链接"] .client-radar-value-text{flex:1 1 auto;min-width:0;word-break:break-all}[data-app-entry=client] .radar-table-client tbody td[data-label$="3D观看链接"],[data-app-entry=client] .radar-table-client tbody td[data-label="授权码"],[data-app-entry=client] .radar-table-client tbody td[data-label="观看链接"]{font-size:15px;font-weight:550}[data-app-entry=client] .radar-table-client .client-radar-copy-btn{flex:0 0 auto;min-height:36px;padding:6px 14px;border-radius:12px;font-size:13px;white-space:nowrap;position:relative;z-index:2;pointer-events:auto}[data-app-entry=client] .radar-table-client tbody td[data-label="应用名称"]{padding-top:4px;color:var(--lux-gold-2);font-size:18px;font-weight:650;white-space:nowrap!important;overflow:hidden;text-overflow:ellipsis;max-width:none}[data-app-entry=client] .radar-table-client tbody td[data-label="状态"]>.status-badge{justify-self:start}[data-app-entry=client] .radar-table-client tbody td[data-label="操作"]{display:block;padding-top:16px;margin-top:10px;border-top:1px dashed var(--lux-line-soft);text-align:left}[data-app-entry=client] .radar-table-client tbody td[data-label="操作"]::before{display:block;margin-bottom:10px}[data-app-entry=client] .radar-table-client .radar-action-group{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;width:100%}[data-app-entry=client] .radar-table-client .radar-action-group .btn,[data-app-entry=client] .radar-table-client .radar-action-group a.btn{width:100%;min-height:42px;margin:0;border-radius:14px;font-size:14px;text-align:center}[data-app-entry=client] .client-radar-list,[data-app-entry=client] .radar-table-client,[data-app-entry=client] .radar-table-client tbody{display:flex;flex-direction:column;flex:1 1 auto;height:100%;min-height:0}[data-app-entry=client] .radar-table-client tbody tr.is-creating{display:flex;flex-direction:column;height:100%;min-height:100%}[data-app-entry=client] .radar-table-client tbody tr.is-creating td.client-radar-wait-cell{flex:1 1 auto;display:flex!important;min-height:0}}[data-app-entry=client] .radar-table-client tbody td.client-radar-wait-cell{display:block!important;grid-template-columns:none!important;width:100%;padding:0!important;margin-top:12px;border:0!important;background:0 0!important;text-align:left}[data-app-entry=client] .radar-table-client tbody td.client-radar-wait-cell::before{display:none!important;content:none!important}[data-app-entry=client] .client-radar-wait-stage{position:relative;overflow:visible;flex:1 1 auto;width:100%;min-height:280px;height:100%;border-radius:20px;border:1px solid rgba(216,189,127,.16);background:radial-gradient(circle at 50% 42%,rgba(216,189,127,.08),transparent 42%),rgba(0,0,0,.28)}[data-app-entry=client] .client-radar-wait-stars{position:absolute;inset:0;pointer-events:none}[data-app-entry=client] .client-radar-wait-stars i{position:absolute;width:2px;height:2px;border-radius:50%;background:#f2d99a;box-shadow:0 0 6px rgba(242,217,154,.75);animation:3.6s ease-in-out infinite client-radar-wait-twinkle}[data-app-entry=client] .client-radar-wait-stars i:first-child{left:12%;top:22%}[data-app-entry=client] .client-radar-wait-stars i:nth-child(2){left:78%;top:18%;width:3px;height:3px;animation-delay:.8s}[data-app-entry=client] .client-radar-wait-stars i:nth-child(3){left:22%;top:72%;animation-delay:1.4s}[data-app-entry=client] .client-radar-wait-stars i:nth-child(4){left:86%;top:68%;animation-delay:2.1s}[data-app-entry=client] .client-radar-wait-stars i:nth-child(5){left:48%;top:14%;animation-delay:.4s}[data-app-entry=client] .client-radar-wait-stars i:nth-child(6){left:64%;top:82%;width:3px;height:3px;animation-delay:1.8s}[data-app-entry=client] .client-radar-wait-stars i:nth-child(7){left:8%;top:48%;animation-delay:2.6s}[data-app-entry=client] .client-radar-wait-stars i:nth-child(8){left:91%;top:40%;animation-delay:1.1s}[data-app-entry=client] .client-radar-wait-inner{position:relative;z-index:1;min-height:280px;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:28px 16px 32px}[data-app-entry=client] .client-radar-wait-orbit{position:relative;width:92px;height:92px;filter:drop-shadow(0 0 16px rgba(216,189,127,.22))}[data-app-entry=client] .client-radar-wait-spin-in,[data-app-entry=client] .client-radar-wait-spin-out{position:absolute;inset:0;will-change:transform}[data-app-entry=client] .client-radar-wait-spin-out{animation:1.6s linear infinite client-radar-wait-spin}[data-app-entry=client] .client-radar-wait-spin-in{animation:2.4s linear infinite client-radar-wait-spin-rev}[data-app-entry=client] .client-radar-wait-orbit svg{width:92px;height:92px;display:block}[data-app-entry=client] .client-radar-wait-ring-out{fill:none;stroke:#f2d99a;stroke-width:2.4;stroke-linecap:round;stroke-dasharray:72 188}[data-app-entry=client] .client-radar-wait-ring-in{fill:none;stroke:rgba(242,217,154,0.55);stroke-width:1.6;stroke-linecap:round;stroke-dasharray:36 120}[data-app-entry=client] .client-radar-wait-core{position:absolute;left:50%;top:50%;width:10px;height:10px;margin:-5px 0 0 -5px;border-radius:50%;background:#f2d99a;box-shadow:0 0 12px rgba(242,217,154,.8)}[data-app-entry=client] .client-radar-wait-sat{position:absolute;left:50%;top:50%;width:6px;height:6px;margin:-3px 0 0 -3px;border-radius:50%;background:#f6e6b8;box-shadow:0 0 8px rgba(246,230,184,.85);animation:2.8s linear infinite client-radar-wait-orbit}[data-app-entry=client] .client-radar-wait-text{margin:0;color:#f2d99a;font-size:18px;font-weight:650;letter-spacing:.06em;text-align:center;line-height:1.5}[data-app-entry=client] .client-radar-wait-sub{margin:0;color:var(--lux-muted);font-size:13px;letter-spacing:.04em;text-align:center;line-height:1.5}@keyframes client-radar-wait-spin{to{transform:rotate(360deg)}}@keyframes client-radar-wait-spin-rev{to{transform:rotate(-360deg)}}@keyframes client-radar-wait-orbit{0%{transform:rotate(0) translateX(38px)}100%{transform:rotate(360deg) translateX(38px)}}@keyframes client-radar-wait-twinkle{0%,100%{opacity:.15;transform:scale(.7)}50%{opacity:.95;transform:scale(1.15)}}[data-app-entry=agent] .agent-section-title,[data-app-entry=client] .client-section-title{display:flex;align-items:flex-start;gap:12px}[data-app-entry=agent] .agent-section-title{border-bottom:0;padding-bottom:0;margin-bottom:18px}[data-app-entry=agent] .agent-section-title>span:last-child,[data-app-entry=client] .client-section-title>span:last-child{background-image:linear-gradient(90deg,#b89455 0,#d8bd7f 36%,#fff8d4 50%,#d8bd7f 64%,#b89455 100%);background-size:260% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:2.2s linear infinite client-section-title-shimmer}[data-app-entry=client] .client-section-mark{position:relative;flex:0 0 28px;width:28px;height:28px;margin-top:2px;color:#f2d99a}[data-app-entry=client] .client-section-mark svg{width:28px;height:28px;display:block}[data-app-entry=agent] .agent-section-spin{position:relative;flex:0 0 28px;width:28px;height:28px;margin-top:2px}[data-app-entry=agent] .agent-section-spin .in,[data-app-entry=agent] .agent-section-spin .out{position:absolute;inset:0}[data-app-entry=agent] .agent-section-spin .out{animation:1.6s linear infinite client-radar-wait-spin}[data-app-entry=agent] .agent-section-spin .in{animation:2.4s linear infinite client-radar-wait-spin-rev}[data-app-entry=agent] .agent-section-spin svg{width:28px;height:28px;display:block}[data-app-entry=agent] .agent-section-spin .core{position:absolute;left:50%;top:50%;width:5px;height:5px;margin:-2.5px 0 0 -2.5px;border-radius:50%;background:#f2d99a;box-shadow:0 0 8px rgba(242,217,154,.8)}[data-app-entry=agent] .agent-section-spin .ring-out{fill:none;stroke:#f2d99a;stroke-width:2.2;stroke-linecap:round;stroke-dasharray:22 40}[data-app-entry=agent] .agent-section-spin .ring-in{fill:none;stroke:rgba(242,217,154,0.45);stroke-width:1.5;stroke-linecap:round;stroke-dasharray:12 28}@keyframes client-section-title-shimmer{0%{background-position:100% 0}100%{background-position:-100% 0}}.login-container{position:relative;max-width:560px;padding:clamp(34px,5vw,58px);margin-top:clamp(34px,10vh,108px);overflow:hidden}.login-container::before{display:block;margin-bottom:18px;color:var(--lux-gold);font-size:12px;letter-spacing:.28em;text-transform:uppercase}[data-app-entry=admin] .login-container::before{content:"ADMIN ACCESS"}[data-app-entry=client] .login-container::before{content:"CLIENT ACCESS"}.login-container::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 18% 0,rgba(216,189,127,.14),transparent 36%),linear-gradient(135deg,rgba(255,255,255,.075),transparent 30%,transparent 70%,rgba(216,189,127,.05))}.login-container>*{position:relative;z-index:1}.login-container h1{margin:0;color:var(--lux-text);font-size:clamp(34px, 5vw, 52px);line-height:1.04;font-weight:520;letter-spacing:-.06em}.login-subtitle{margin:16px 0 34px;color:var(--lux-muted);font-size:15px;line-height:1.8}.login-disclaimer{margin-top:24px;padding-top:14px;border-top:1px solid var(--lux-line-soft);color:var(--lux-muted-2);font-size:11px;line-height:1.65;text-align:left}.login-disclaimer-title{margin:0 0 8px;color:var(--lux-muted);font-size:11px;font-weight:560}.login-disclaimer p{margin:0 0 8px}.login-disclaimer p:last-child{margin-bottom:0}#client-login-form.client-login-disabled{opacity:.72}#client-login-form.client-login-disabled button[type=submit]{cursor:not-allowed}.client-app-loading{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(8,12,24,.55);color:#fff;font-size:16px;letter-spacing:.08em;z-index:10000}.client-app-loading.hidden{display:none}.login-container .form-group{margin-bottom:22px}.login-container .form-group label{margin-bottom:10px;color:var(--lux-muted);font-size:14px;letter-spacing:.08em}.login-container .form-group input{height:58px;padding:0 18px;border-radius:18px;font-size:17px}.login-container .btn{min-height:62px;border-radius:18px;margin-top:4px;font-size:17px;letter-spacing:.08em}[data-app-entry=client] .login-container .btn-primary,[data-app-entry=client] .login-container .btn-success{color:#071007;background:linear-gradient(135deg,#d8ebd0,var(--lux-green));border-color:rgba(158,184,144,.26)}[data-app-entry=client] .login-container{border-color:rgba(158,184,144,.2)}.toast-container{top:24px!important;right:24px!important;bottom:auto!important;left:auto!important;width:auto;transform:none}@media (max-width:768px){[data-app-entry=client] .two-select-row{grid-template-columns:1fr;grid-template-rows:none;grid-auto-flow:row}.toast-container{top:12px!important;right:12px!important;left:12px!important;width:auto!important;max-width:calc(100vw - 24px);transform:none}.toast-item{min-width:min(320px,calc(100vw - 28px));max-width:calc(100vw - 28px)!important;padding:20px 22px 20px 24px;border-radius:22px}.toast-title{font-size:15px}.toast-message{font-size:14px}}.mode-select-container{max-width:980px}.mode-card{min-height:230px}.mode-card h2{color:var(--lux-text);font-weight:520}.dashboard,.filter-inline-row,.form-row,.section{min-width:0}.section{overflow:hidden}.file-deploy-toolbar .btn,.filter-toolbar .btn,.header-buttons .btn,.modal-buttons .btn,.section .btn{text-align:center;white-space:nowrap}#client-add-radar-form>.btn,#generate-card-keys-btn{display:flex;align-items:center;justify-content:center}#client-add-radar-form>.btn.is-limit-message{white-space:normal;line-height:1.45;font-size:14px;min-height:52px;padding:10px 14px;text-align:center}.radar-list,.radar-list-scrollable{max-width:100%}@media (max-width:640px){[data-app-entry=admin] .dashboard{display:block}[data-app-entry=admin] .dashboard-content,[data-app-entry=client] .dashboard-content{grid-template-columns:1fr}[data-app-entry=admin] .dashboard-content>.section{grid-column:1}.dashboard{max-width:calc(100vw - 24px)}}@media (max-width:768px){[data-app-entry=admin] .dashboard{display:block}[data-app-entry=admin] .dashboard-header{grid-column:auto}[data-app-entry=admin] .dashboard-content{grid-column:auto;display:block;padding:12px 0 0}[data-app-entry=admin] .dashboard-sidebar{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;gap:8px;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;position:static;top:auto;align-self:auto;min-height:auto;margin:0 0 16px;padding:12px 14px;border-radius:20px;scrollbar-width:thin}[data-app-entry=admin] .dashboard-sidebar-brand{display:none}[data-app-entry=admin] .dashboard-sidebar-item{flex:0 0 auto;margin-bottom:0;padding:10px 16px;font-size:14px;white-space:nowrap}[data-app-entry=admin] .dashboard-header,[data-app-entry=client] .dashboard-header{min-height:auto}[data-app-entry=client] .dashboard-content{display:block}[data-app-entry=client] .dashboard-content>.section{margin-bottom:18px}[data-app-entry=client] .radar-table-client,[data-app-entry=client] .radar-table-client tbody,[data-app-entry=client] .radar-table-client td,[data-app-entry=client] .radar-table-client tr{display:block}[data-app-entry=admin] .radar-list,[data-app-entry=admin] .radar-list-scrollable{overflow-x:auto}}[data-app-entry=admin] .node-status-list-wrapper,[data-app-entry=admin] .radar-list-scrollable{max-height:none!important;overflow-y:visible!important;background:radial-gradient(circle at 8% 0,rgba(216,189,127,.08),transparent 34%),rgba(255,255,255,.026)!important;border:1px solid var(--lux-line-soft)!important;border-radius:22px;box-shadow:inset 0 1px 0 rgba(255,255,255,.035)}[data-app-entry=admin] .radar-list-scrollable{overflow-x:auto!important;-webkit-overflow-scrolling:touch}#agent-admin-root .radar-list-scrollable{overflow-x:auto!important;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}#agent-admin-root .radar-list-scrollable table{min-width:980px;width:max-content}[data-app-entry=admin] .radar-list,[data-app-entry=admin] .radar-list-scrollable{scrollbar-width:thin;scrollbar-color:rgba(216,189,127,0.24) rgba(0,0,0,0.15)}[data-app-entry=admin] .radar-list-scrollable::-webkit-scrollbar,[data-app-entry=admin] .radar-list::-webkit-scrollbar{width:8px;height:8px}[data-app-entry=admin] .radar-list-scrollable::-webkit-scrollbar-track,[data-app-entry=admin] .radar-list::-webkit-scrollbar-track{background:rgba(0,0,0,.15);border-radius:4px}[data-app-entry=admin] .radar-list-scrollable::-webkit-scrollbar-thumb,[data-app-entry=admin] .radar-list::-webkit-scrollbar-thumb{background:rgba(216,189,127,.22);border-radius:4px;border:2px solid rgba(0,0,0,.15)}[data-app-entry=admin] .radar-list-scrollable::-webkit-scrollbar-thumb:hover,[data-app-entry=admin] .radar-list::-webkit-scrollbar-thumb:hover{background:rgba(216,189,127,.34)}[data-app-entry=admin] .application-table,[data-app-entry=admin] .node-status-table,[data-app-entry=admin] .radar-list-scrollable table{width:100%;min-width:0;margin:0;border-collapse:separate;border-spacing:0;background:0 0}[data-app-entry=admin] .application-table td,[data-app-entry=admin] .application-table th,[data-app-entry=admin] .node-status-table td,[data-app-entry=admin] .node-status-table th,[data-app-entry=admin] .radar-list-scrollable td,[data-app-entry=admin] .radar-list-scrollable th{background:0 0!important;border-bottom:1px solid var(--lux-line-soft);color:var(--lux-text)}[data-app-entry=admin] .application-table thead th,[data-app-entry=admin] .node-status-table thead th,[data-app-entry=admin] .radar-list-scrollable thead th{position:static;color:var(--lux-gold-2);background:rgba(216,189,127,.075)!important;font-size:13px;letter-spacing:.04em}[data-app-entry=admin] .application-table tbody tr:hover,[data-app-entry=admin] .file-row-active,[data-app-entry=admin] .node-status-table tbody tr:hover,[data-app-entry=admin] .radar-list-scrollable tbody tr:hover{background:rgba(216,189,127,.075)!important}[data-app-entry=admin] .application-table code,[data-app-entry=admin] .node-status-table code,[data-app-entry=admin] .radar-list-scrollable code{color:var(--lux-gold-2);background:rgba(0,0,0,.22);border:1px solid var(--lux-line-soft);border-radius:10px;padding:3px 7px}[data-app-entry=admin] .file-active-tag,[data-app-entry=admin] .file-deploy-badge,[data-app-entry=admin] .node-total-remaining-summary{color:var(--lux-gold-2);background:rgba(216,189,127,.1);border:1px solid rgba(216,189,127,.2);border-radius:999px}[data-app-entry=admin] .node-total-remaining-summary{display:inline-flex;align-items:center;padding:8px 14px;font-size:14px;font-weight:600;white-space:nowrap}[data-app-entry=admin] #card-keys-table-body,[data-app-entry=admin] #node-status-table-body,[data-app-entry=admin] #staged-files-table-body,[data-app-entry=admin] .service-category-table tbody,[data-app-entry=admin] table.service-category-table,[data-app-entry=admin] table.service-category-table thead,[data-app-entry=admin] table:has(#card-keys-table-body),[data-app-entry=admin] table:has(#card-keys-table-body) thead,[data-app-entry=admin] table:has(#node-status-table-body),[data-app-entry=admin] table:has(#node-status-table-body) thead,[data-app-entry=admin] table:has(#staged-files-table-body),[data-app-entry=admin] table:has(#staged-files-table-body) thead{display:block}[data-app-entry=admin] table.service-category-table thead,[data-app-entry=admin] table:has(#card-keys-table-body) thead,[data-app-entry=admin] table:has(#node-status-table-body) thead,[data-app-entry=admin] table:has(#staged-files-table-body) thead{display:none}[data-app-entry=admin] #card-keys-table-body tr,[data-app-entry=admin] #node-status-table-body tr,[data-app-entry=admin] #staged-files-table-body tr,[data-app-entry=admin] .service-category-table tbody tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 16px;width:100%;padding:14px 16px;margin-bottom:12px;border:1px solid var(--lux-line-soft);border-radius:20px;background:radial-gradient(circle at 8% 0,rgba(216,189,127,.08),transparent 34%),rgba(0,0,0,.18)!important}[data-app-entry=admin] #card-keys-table-body td,[data-app-entry=admin] #node-status-table-body td,[data-app-entry=admin] #staged-files-table-body td,[data-app-entry=admin] .service-category-table tbody td{display:grid;grid-template-columns:92px minmax(0,1fr);gap:12px;align-items:center;min-width:0!important;padding:7px 0;border:0;white-space:normal;overflow-wrap:anywhere;word-break:break-word}[data-app-entry=admin] .service-category-table tbody td{grid-template-columns:88px minmax(0,1fr)}[data-app-entry=admin] #card-keys-table-body td{grid-template-columns:98px minmax(0,1fr)}[data-app-entry=admin] #card-keys-table-body td:first-child code{display:inline-block;color:var(--lux-gold-2);font-size:20px;font-weight:700;letter-spacing:.04em}[data-app-entry=admin] #card-keys-table-body td:nth-child(2){justify-items:start;align-items:center}[data-app-entry=admin] #card-keys-table-body td .status-badge{display:inline-flex;align-items:center;justify-content:center;width:fit-content;max-width:100%;white-space:nowrap;justify-self:start}[data-app-entry=admin] #card-keys-table-body td::before,[data-app-entry=admin] #node-status-table-body td::before,[data-app-entry=admin] #staged-files-table-body td::before,[data-app-entry=admin] .service-category-table tbody td::before{color:var(--lux-muted);font-size:12px;white-space:nowrap}[data-app-entry=admin] #node-status-table-body td:first-child::before{content:"操作";content:"操作";visibility:visible}[data-app-entry=admin] #node-status-table-body td:nth-child(2)::before{content:"节点"}[data-app-entry=admin] #node-status-table-body td:nth-child(3)::before{content:"地址"}[data-app-entry=admin] #node-status-table-body td:nth-child(4)::before{content:"节点状态"}[data-app-entry=admin] #node-status-table-body td:nth-child(5)::before{content:"雷达容量"}[data-app-entry=admin] #node-status-table-body td:nth-child(6)::before{content:"应用摘要"}[data-app-entry=admin] #node-status-table-body td:nth-child(7)::before{content:"最近检查"}[data-app-entry=admin] #node-status-table-body tr{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:auto auto auto;gap:12px 18px;padding:18px 18px 14px;align-items:start}[data-app-entry=admin] #node-status-table-body td{font-size:17px;grid-template-columns:88px minmax(0,1fr);gap:12px;padding:8px 0;align-items:center;min-width:0}[data-app-entry=admin] #node-status-table-body td::before{font-size:14px;font-weight:600}[data-app-entry=admin] #node-status-table-body td:nth-child(2){grid-column:1;grid-row:1;font-size:20px;font-weight:700;color:var(--lux-text,#eceae6)}[data-app-entry=admin] #node-status-table-body td:nth-child(3){grid-column:1;grid-row:2;font-size:18px}[data-app-entry=admin] #node-status-table-body td:nth-child(5){grid-column:1;grid-row:3}[data-app-entry=admin] #node-status-table-body td:nth-child(4){grid-column:2;grid-row:1}[data-app-entry=admin] #node-status-table-body td:nth-child(6){grid-column:2;grid-row:2}[data-app-entry=admin] #node-status-table-body td:nth-child(7){display:none!important}[data-app-entry=admin] #node-status-table-body td:first-child{grid-column:2;grid-row:3;align-items:start;padding-top:4px}[data-app-entry=admin] #node-status-table-body td:first-child .row-action-group{grid-column:2;align-self:start}[data-app-entry=admin] #node-status-table-body .row-action-group{display:flex;flex-wrap:wrap;justify-content:flex-start;width:100%}[data-app-entry=admin] #node-status-table-body .row-action-group .btn,[data-app-entry=admin] #node-status-table-body .row-action-group .btn-small{font-size:15px;padding:10px 16px;min-height:42px}[data-app-entry=admin] #node-status-table-body .status-badge{font-size:14px;padding:6px 12px}[data-app-entry=admin] #node-status-table-body .node-capacity-value{display:inline-flex;align-items:center;flex-wrap:nowrap;gap:8px}[data-app-entry=admin] #node-status-table-body .node-capacity-count{font-size:18px}[data-app-entry=admin] #node-status-table-body td:nth-child(5) .status-badge{width:fit-content;max-width:none;justify-self:auto}[data-app-entry=admin] #card-keys-table-body td:first-child::before{content:"卡密"}[data-app-entry=admin] #card-keys-table-body td:nth-child(2)::before{content:"状态"}[data-app-entry=admin] #card-keys-table-body td:nth-child(3)::before{content:"激活时间"}[data-app-entry=admin] #card-keys-table-body td:nth-child(4)::before{content:"到期时间"}[data-app-entry=admin] #card-keys-table-body td:nth-child(5)::before{content:"剩余"}[data-app-entry=admin] #card-keys-table-body td:nth-child(6)::before{content:"操作"}[data-app-entry=admin] #card-keys-table-body td .card-status-badges{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}[data-app-entry=admin] .service-category-table tbody td[data-label]::before{content:attr(data-label)}[data-app-entry=admin] #staged-files-table-body td:first-child::before{content:"文件名"}[data-app-entry=admin] #staged-files-table-body td:nth-child(2)::before{content:"大小"}[data-app-entry=admin] #staged-files-table-body td:nth-child(3)::before{content:"修改时间"}[data-app-entry=admin] #staged-files-table-body td:nth-child(4)::before{content:"操作"}[data-app-entry=admin] #node-status-table-body .row-action-group,[data-app-entry=admin] .service-app-name-row,[data-app-entry=admin] .service-category-table tbody .row-action-group{display:flex;align-items:center;gap:8px;flex-wrap:wrap}[data-app-entry=admin] .service-app-name-text{min-width:0;word-break:break-word}[data-app-entry=admin] #card-keys-table-body .action-buttons,[data-app-entry=admin] #staged-files-table-body td:last-child,[data-app-entry=admin] .service-category-table tbody .row-action-group{display:flex;flex-wrap:wrap;gap:8px}[data-app-entry=admin] #card-keys-table-body .empty-table-tip,[data-app-entry=admin] #staged-files-table-body .empty-table-tip{display:block;grid-column:1/-1;text-align:center}[data-app-entry=admin] #card-keys-table-body .empty-table-tip::before,[data-app-entry=admin] #staged-files-table-body .empty-table-tip::before{content:none}[data-app-entry=admin] .generated-keys{background:radial-gradient(circle at 8% 0,rgba(158,184,144,.1),transparent 34%),rgba(255,255,255,.026);border:1px solid var(--lux-line-soft);border-radius:22px;box-shadow:inset 0 1px 0 rgba(255,255,255,.035)}[data-app-entry=admin] .generated-keys h3{color:var(--lux-gold-2)}[data-app-entry=admin] .generated-keys-list{gap:10px}[data-app-entry=admin] .key-item{color:var(--lux-text);background:rgba(0,0,0,.22);border:1px solid var(--lux-line-soft);border-radius:14px}[data-app-entry=admin] .key-item:hover{color:var(--lux-gold-2);background:rgba(216,189,127,.1)}[data-app-entry=admin] .key-item-block{color:var(--lux-gold-2);font-size:15px;line-height:1.9}[data-app-entry=admin] .table-pagination{padding:12px 14px;border:1px solid var(--lux-line-soft);border-radius:18px;background:rgba(255,255,255,.026)}[data-app-entry=admin] .pagination-page-info,[data-app-entry=admin] .pagination-summary{color:var(--lux-muted);font-size:14px}.card-key-detail-pager{margin:0 0 12px}[data-app-entry=client] .client-download-container::before{content:none;display:none}.client-download-container{max-width:760px}.client-download-container h1{margin-bottom:28px}.client-download-container .btn{display:flex;width:100%;align-items:center;justify-content:center;text-decoration:none}.client-download-guide{margin:28px 0 8px}.client-download-guide-title{margin:0 0 16px;color:var(--lux-gold-2,#f2d99a);font-size:16px;font-weight:560;line-height:1.65}.client-download-guide-list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:14px}.client-download-guide-list li{margin:0}.client-download-guide-list img{display:block;width:100%;height:auto;border-radius:12px;border:1px solid var(--lux-line-soft,rgba(255,255,255,.08))}@media (max-width:900px){#agent-admin-root .radar-list-scrollable td:last-child,#agent-admin-root .radar-list-scrollable th:last-child{position:sticky;right:0;z-index:3;background:#12141a;box-shadow:-10px 0 16px rgba(0,0,0,.35);white-space:nowrap}#agent-admin-root .radar-list-scrollable thead th:last-child{z-index:4;background:#161922}#agent-admin-root .radar-list-scrollable td:last-child .btn{min-height:36px;margin:2px 0}[data-app-entry=admin] #card-keys-table-body tr,[data-app-entry=admin] #staged-files-table-body tr,[data-app-entry=admin] .service-category-table tbody tr{grid-template-columns:1fr}[data-app-entry=admin] #node-status-table-body tr{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px 12px}[data-app-entry=admin] #node-status-table-body td{grid-template-columns:76px minmax(0,1fr);font-size:16px}[data-app-entry=admin] #node-status-table-body td:nth-child(2){font-size:19px}[data-app-entry=admin] #node-status-table-body td::before{font-size:13px}[data-app-entry=admin] #node-status-table-body .row-action-group .btn,[data-app-entry=admin] #node-status-table-body .row-action-group .btn-small{flex:1 1 calc(50% - 4px);min-width:calc(50% - 4px);font-size:14px;padding:8px 10px;min-height:38px}}@media (max-width:560px){[data-app-entry=admin] #node-status-table-body tr{grid-template-columns:1fr;grid-template-rows:none}[data-app-entry=admin] #node-status-table-body td:first-child,[data-app-entry=admin] #node-status-table-body td:nth-child(2),[data-app-entry=admin] #node-status-table-body td:nth-child(3),[data-app-entry=admin] #node-status-table-body td:nth-child(4),[data-app-entry=admin] #node-status-table-body td:nth-child(5),[data-app-entry=admin] #node-status-table-body td:nth-child(6){grid-column:1;grid-row:auto}}[data-app-entry=admin] #admin-log-list.admin-log-list{max-height:420px;padding:6px 10px;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,monospace}[data-app-entry=admin] .admin-log-item{display:flex;align-items:flex-start;gap:10px;padding:6px 8px;border-bottom:1px solid rgba(255,255,255,.06);font-size:13px;line-height:1.5;word-break:break-word}[data-app-entry=admin] .admin-log-item:last-child{border-bottom:none}[data-app-entry=admin] .admin-log-time{flex:0 0 auto;color:#9ca3af;white-space:nowrap}[data-app-entry=admin] .admin-log-level{flex:0 0 auto;min-width:38px;text-align:center;border-radius:4px;padding:0 6px;font-size:12px;color:#fff}[data-app-entry=admin] .admin-log-level-info{background:#2563eb}[data-app-entry=admin] .admin-log-level-warn{background:#d97706}[data-app-entry=admin] .admin-log-level-error{background:#dc2626}[data-app-entry=admin] .admin-log-level-debug{background:#4b5563}[data-app-entry=admin] .admin-log-body{flex:1 1 auto;min-width:0}[data-app-entry=admin] .admin-log-msg{display:block;color:#e5e7eb}[data-app-entry=admin] .admin-log-item.admin-log-error .admin-log-msg{color:#fca5a5}[data-app-entry=admin] .admin-log-item.admin-log-warn .admin-log-msg{color:#fcd34d}[data-app-entry=admin] .admin-log-detail-toggle{margin-top:4px;padding:0;border:none;background:0 0;color:#93c5fd;font-size:12px;cursor:pointer;display:inline-flex;align-items:center;gap:4px}[data-app-entry=admin] .admin-log-detail-toggle:hover{color:#bfdbfe}[data-app-entry=admin] .admin-log-detail-toggle-icon{font-size:11px;line-height:1}[data-app-entry=admin] .admin-log-detail{margin-top:6px;overflow:hidden;transition:max-height .25s,opacity .2s;max-height:600px;opacity:1}[data-app-entry=admin] .admin-log-detail.collapsed{max-height:0;opacity:0;margin:0;pointer-events:none}[data-app-entry=admin] .admin-log-data{color:#9ca3af;font-size:12px;margin:0;padding:8px 10px;background:rgba(0,0,0,.25);border-radius:4px;white-space:pre-wrap;word-break:break-all}[data-app-entry=admin] .admin-log-ip{color:#93c5fd;font-weight:600}[data-app-entry=admin] .admin-log-loc{color:#fcd34d}[data-app-entry=admin] .admin-log-empty{padding:16px;text-align:center;color:#9ca3af}.card-key-detail-modal-content{max-width:920px;width:min(92vw,920px)}.card-key-detail-section{margin-bottom:22px}.card-key-detail-section-title{margin-bottom:10px;color:var(--lux-text,#f5f5f5);font-size:16px;font-weight:560;cursor:pointer;user-select:none;display:inline-flex;align-items:center;gap:8px}.card-key-detail-section-title:hover{color:var(--lux-gold-2,#f2d99a)}.card-key-detail-toggle-icon{font-size:13px;color:var(--lux-muted,#9ca3af);line-height:1}.card-key-detail-section-content{overflow:hidden;transition:max-height .25s,opacity .2s;max-height:4000px;opacity:1}.card-key-detail-section-content.collapsed{max-height:0;opacity:0;margin:0;pointer-events:none}.card-key-detail-section h3{margin-bottom:10px;color:var(--lux-text,#f5f5f5);font-size:16px;font-weight:560}.card-key-detail-body{min-height:48px}.card-key-detail-empty{padding:14px 4px;color:var(--lux-muted,#9ca3af);font-size:14px}.card-key-detail-table-wrap{overflow-x:auto;border:1px solid var(--lux-line-soft,rgba(255,255,255,.08));border-radius:12px}.card-key-detail-table{width:100%;border-collapse:collapse;font-size:14px}.card-key-detail-table td,.card-key-detail-table th{padding:10px 12px;text-align:left;border-bottom:1px solid var(--lux-line-soft,rgba(255,255,255,.08));vertical-align:top}.card-key-detail-table th{color:var(--lux-muted,#9ca3af);font-weight:560;background:rgba(255,255,255,.03)}.card-key-detail-table td{color:var(--lux-text,#e5e7eb)}.card-key-detail-table tbody tr:last-child td{border-bottom:none}.card-key-detail-table code{color:#93c5fd}.card-key-detail-login-result.login-success{color:#86efac}.card-key-detail-login-result.login-failed{color:#fca5a5}.card-key-detail-status-cell{display:inline-flex;align-items:center;flex-wrap:wrap;gap:8px}.card-key-detail-online{font-size:13px;font-weight:560}.card-key-detail-online.online{color:#86efac}.card-key-detail-online.offline{color:#9ca3af}.card-key-detail-login-toolbar{margin-bottom:12px}.card-key-detail-login-hint{margin:0 0 10px;font-size:13px;color:var(--lux-muted,#9ca3af);line-height:1.5}.card-key-detail-login-hint strong{color:var(--lux-text,#e5e7eb);font-weight:560}.card-key-detail-ip-cell{display:inline-flex;align-items:center;flex-wrap:wrap;gap:8px}.card-key-detail-ip-location{color:var(--lux-muted,#9ca3af);font-size:13px}.card-key-detail-block-ip-btn{flex-shrink:0}[data-app-entry=agent] .login-container::before{content:"AGENT ACCESS"}[data-app-entry=agent] .dashboard{display:grid;grid-template-columns:238px minmax(0,1fr);align-items:start;width:100%;max-width:1440px;margin:0 auto}[data-app-entry=agent] .dashboard-header{grid-column:1/-1;min-height:112px;align-items:center}[data-app-entry=agent] .dashboard-header h1{font-size:clamp(24px, 3vw, 36px);font-weight:520}[data-app-entry=agent] .dashboard-content{grid-column:2;display:grid;grid-template-columns:minmax(0,1fr);gap:22px;align-items:start}[data-app-entry=agent] .dashboard-content>.section{grid-column:1;margin-bottom:0}[data-app-entry=agent] .section h2{margin-top:0}[data-app-entry=agent] .radar-list-scrollable{max-height:none!important;overflow:visible!important;background:radial-gradient(circle at 8% 0,rgba(216,189,127,.08),transparent 34%),rgba(255,255,255,.026)!important;border:1px solid var(--lux-line-soft)!important;border-radius:18px;box-shadow:inset 0 1px 0 rgba(255,255,255,.035)}[data-app-entry=agent] .radar-list-scrollable table{width:100%;margin:0;border-collapse:separate;border-spacing:0;background:0 0}[data-app-entry=agent] .radar-list-scrollable td,[data-app-entry=agent] .radar-list-scrollable th{background:0 0!important;border:0;border-bottom:1px solid var(--lux-line-soft);border-radius:0!important;color:var(--lux-text);padding:13px 14px;vertical-align:middle}[data-app-entry=agent] .radar-list-scrollable thead th{position:static;color:var(--lux-gold-2);background:rgba(216,189,127,.075)!important;font-size:13px;font-weight:650;letter-spacing:.04em;text-transform:none}[data-app-entry=agent] .radar-list-scrollable tbody tr:last-child td{border-bottom:0}[data-app-entry=agent] .radar-list-scrollable tbody tr:hover,[data-app-entry=agent] .radar-list-scrollable tbody tr:hover td{background:rgba(216,189,127,.075)!important;border-color:var(--lux-line-soft)}[data-app-entry=agent] .radar-list-scrollable code{color:var(--lux-gold-2);background:rgba(0,0,0,.22);border:1px solid var(--lux-line-soft);border-radius:8px;padding:3px 8px}[data-app-entry=agent] .node-total-remaining-summary{display:inline-flex;align-items:center;padding:8px 14px;font-size:14px;font-weight:600;white-space:nowrap;color:var(--lux-gold-2);background:rgba(216,189,127,.1);border:1px solid rgba(216,189,127,.2);border-radius:999px}[data-app-entry=agent] .empty-table-tip{color:var(--lux-muted)}[data-app-entry=agent] .table-pagination .btn{width:auto;min-width:88px}[data-app-entry=agent] .agent-overview-block .section-title{margin:0 0 4px;color:var(--lux-gold-2);font-size:16px;font-weight:600}.agent-wait-announcement-form{max-width:640px}.admin-global-wait-announcement-subsection{margin-bottom:18px}.admin-global-wait-announcement-subsection .admin-wait-announcement-form{margin-top:10px}.admin-global-wait-announcement-subsection .announcement-editor-toolbar{margin-top:12px}.client-wait-announcement-modal-content{max-width:560px;width:96vw}.client-wait-announcement-panel{margin-top:0;padding:18px 20px 16px;border:1px solid rgba(158,184,144,.24);border-radius:22px;background:linear-gradient(180deg,rgba(18,18,18,.98),rgba(10,10,10,.98));box-shadow:inset 0 1px 0 rgba(255,255,255,.04)}.client-wait-announcement-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:20px 24px;align-items:stretch}.client-wait-announcement-layout.is-preview-active{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.client-wait-announcement-layout:not(.is-preview-active) .client-wait-announcement-preview-col,.client-wait-announcement-panel:not(:has(.client-wait-announcement-layout.is-preview-active)) .client-wait-announcement-preview-col{display:none}.client-wait-announcement-form{min-width:0}.client-wait-announcement-fields-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 14px}.client-wait-announcement-upload-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 14px}.client-wait-announcement-preview-col{display:flex;flex-direction:column;min-width:0;min-height:100%;padding:14px;border:1px solid rgba(158,184,144,.18);border-radius:16px;background:rgba(255,255,255,.02)}.client-wait-announcement-actions{display:flex;justify-content:flex-end;margin-top:16px;padding-top:14px;border-top:1px solid rgba(158,184,144,.14)}.client-wait-announcement-preview-label{margin:0 0 8px;color:var(--lux-gold-2);font-size:14px;font-weight:600}.client-wait-announcement-panel.hidden{display:none!important}.client-wait-announcement-panel-head h3{margin:0 0 6px;color:var(--lux-gold-2);font-size:18px;font-weight:600}.client-wait-announcement-radar-select{margin:0 0 10px;max-width:420px}.client-wait-announcement-panel-subtitle,.client-wait-announcement-source-hint{margin:0 0 14px;color:var(--lux-muted);font-size:13px;line-height:1.55}.client-wait-announcement-form .form-group{margin-bottom:12px}.client-wait-announcement-toggle{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:8px;margin-bottom:14px;padding:10px 20px;min-height:42px;border-radius:15px;cursor:pointer;user-select:none;font-weight:600;font-size:14px;line-height:1.2;color:var(--lux-gold-2);background:rgba(242,217,154,.08);border:1px solid rgba(242,217,154,.38);box-shadow:inset 0 1px 0 rgba(255,255,255,.04);transition:transform .15s,box-shadow .15s,background .15s,color .15s,border-color .15s}.client-wait-announcement-toggle:hover{transform:translateY(-1px);border-color:rgba(242,217,154,.55);box-shadow:0 10px 24px rgba(216,189,127,.16)}.client-wait-announcement-toggle input[type=checkbox]{position:absolute;opacity:0;width:0;height:0;pointer-events:none}.client-wait-announcement-toggle:has(input:checked){color:#1a1408;background:linear-gradient(135deg,var(--lux-gold-2),var(--lux-gold));border-color:rgba(255,229,171,.18);box-shadow:0 10px 24px rgba(216,189,127,.22)}.client-wait-announcement-toggle:has(input:checked):hover{box-shadow:0 12px 30px rgba(216,189,127,.28)}.char-counter{display:block;margin-top:4px;font-size:12px;color:var(--lux-muted);text-align:right}.client-wait-announcement-upload-row{display:flex;align-items:center;gap:8px;margin-top:6px}.client-wait-announcement-drop-zone{position:relative;min-height:74px;padding:12px;flex-wrap:wrap;border:1px dashed rgba(205,227,243,.38);border-radius:10px;background:rgba(7,11,18,.62);cursor:pointer;transition:border-color .18s,background .18s}.client-wait-announcement-drop-zone.is-dragover,.client-wait-announcement-drop-zone:focus-visible,.client-wait-announcement-drop-zone:hover{border-color:var(--lux-gold-2);background:rgba(242,217,154,.08);outline:0}.client-wait-announcement-drop-zone.has-file{border-style:solid;border-color:rgba(143,216,255,.55)}.client-wait-announcement-drop-zone input[type=file]{width:100%;max-width:100%;cursor:pointer}.client-wait-announcement-drop-prompt{display:block;width:100%;color:var(--lux-muted);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.client-wait-announcement-image-delete-btn{position:absolute;top:8px;right:8px;z-index:2;min-height:28px;padding:4px 9px;border:1px solid rgba(248,113,113,.58);border-radius:7px;background:rgba(127,29,29,.88);color:#fee2e2;font-size:12px;line-height:1.2;cursor:pointer}.client-wait-announcement-image-delete-btn:hover{background:rgba(185,28,28,.94)}.client-wait-announcement-upload-row .upload-hint{font-size:12px;color:var(--lux-muted)}.client-wait-announcement-preview{position:relative;flex:1;min-height:300px;height:100%;padding:0;border:1px solid rgba(158,184,144,.22);border-radius:12px;background:#070b12;overflow:hidden}.client-wait-announcement-preview.is-empty{display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 20% 0,rgba(242,217,154,.08),transparent 42%),#0a0a0a}.client-wait-announcement-preview-empty{margin:0;padding:0 24px;text-align:center;color:var(--lux-muted)}.client-wait-announcement-preview.is-empty .client-wait-preview-app-mode,.client-wait-announcement-preview.is-empty .client-wait-preview-overlay-mode,.client-wait-announcement-preview:not(.is-empty) .client-wait-announcement-preview-empty{display:none!important}.client-wait-preview-app-mode,.client-wait-preview-overlay-mode{position:absolute;inset:0}.client-wait-preview-overlay-mode:not(.hidden){display:block!important}.client-wait-notice-overlay{position:absolute;inset:0;width:100%;height:100%;min-height:100%;overflow:hidden;background:0 0;color:#f8fafc;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei",sans-serif}.client-wait-notice-background{position:absolute;inset:0;z-index:0;width:100%;height:100%;object-fit:cover;object-position:center}.client-wait-notice-overlay.background-mode-right .client-wait-notice-background{inset:16px 16px 16px auto;width:calc(50% - 24px);height:calc(100% - 32px);object-fit:cover}.client-wait-notice-overlay.background-mode-fullscreen .client-wait-notice-background{inset:0;width:100%;height:100%;object-fit:cover}.client-wait-notice-shade{display:none;position:absolute;inset:0;z-index:1;background:rgba(2,6,12,.84);pointer-events:none}.client-wait-notice-overlay.has-background .client-wait-notice-shade{display:none;background:0 0}.client-wait-notice-panel{position:absolute;inset:0;z-index:2;box-sizing:border-box;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;padding:16px;overflow:hidden}.client-wait-notice-panel.without-qr{grid-template-columns:minmax(0,1fr)}.client-wait-notice-copy{min-width:0;margin-left:6px;text-shadow:0 2px 14px rgba(0,0,0,.55)}.client-wait-notice-title{margin:0 0 8px;color:#fff;font-size:20px;font-weight:700;line-height:1.15}.client-wait-notice-content{margin:0 0 10px;color:rgba(245,248,252,.94);font-size:12px;line-height:1.6;white-space:pre-wrap;overflow-wrap:anywhere}.client-wait-notice-contact-label{margin:0 0 4px;color:rgba(205,227,243,.88);font-size:11px;font-weight:600;line-height:1.35}.client-wait-notice-contact{display:block;max-width:100%;color:#f2d99a;font-size:14px;font-weight:700;line-height:1.35;overflow-wrap:anywhere}.client-wait-notice-qr-stage{display:flex;align-items:center;justify-content:center;padding-right:6px}.client-wait-notice-qr-wrap{width:96px;padding:0;border:0;border-radius:0;background:0 0;box-shadow:none}.client-wait-notice-qr{display:block;width:100%;height:auto;aspect-ratio:1/1;object-fit:contain}.client-wait-preview-app-mode{display:flex;align-items:center;justify-content:center;padding:16px;background:radial-gradient(circle at 50% 35%,rgba(88,28,135,.18),transparent 58%),#070b12}.client-wait-radar-announcement-box{width:min(100%,280px)}.client-wait-radar-announcement-inner{background:rgba(18,8,32,.85);border:1px solid rgba(168,85,247,.45);border-radius:10px;padding:10px 12px;backdrop-filter:blur(8px);box-shadow:0 8px 24px rgba(0,0,0,.35);max-height:220px;overflow-y:auto}.client-wait-radar-announcement-label{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:rgba(216,180,254,.85);margin-bottom:8px;text-align:center}.client-wait-radar-announcement-text{color:rgba(243,232,255,.95);font-size:12px;line-height:1.55;word-break:break-word}.client-wait-radar-announcement-image{display:block;max-width:100%;max-height:72px;margin:0 auto 8px;border-radius:8px;object-fit:contain}.client-wait-announcement-preview-inner{position:absolute;left:16px;top:50%;transform:translateY(-50%);width:min(280px,calc(100% - 32px));max-height:calc(100% - 32px);overflow:auto;padding:14px;border-radius:14px;background:rgba(22,22,26,.92);border:1px solid rgba(255,255,255,.1);box-shadow:0 12px 28px rgba(0,0,0,.35)}.client-wait-announcement-preview-inner .announcement-display-text{font-size:13px;line-height:1.6}.client-wait-announcement-preview .announcement-display-image{max-width:112px;max-height:112px;margin:10px auto 0;display:block;padding:5px;border-radius:8px;background:#fff}.client-wait-announcement-preview .text-muted{color:var(--lux-muted);text-align:center}@media (max-width:900px){[data-app-entry=client] .client-wait-announcement-section{grid-column:auto}.client-wait-announcement-layout.is-preview-active{grid-template-columns:1fr}.client-wait-announcement-layout.is-preview-active .client-wait-announcement-preview-col{order:2}.client-wait-announcement-form{order:1}.client-wait-announcement-preview{min-height:220px}}@media (max-width:640px){.client-wait-announcement-panel{padding:14px 12px 12px}.client-wait-announcement-fields-row,.client-wait-announcement-upload-grid{grid-template-columns:1fr}.client-wait-announcement-upload-row{flex-direction:column;align-items:stretch}.client-wait-announcement-drop-zone{min-height:88px;padding:12px 10px;justify-content:center}.client-wait-announcement-upload-row input[type=file]{width:100%}.client-wait-announcement-actions{justify-content:stretch}.client-wait-announcement-actions .btn{width:100%;min-height:44px}.client-wait-announcement-preview{min-height:260px}.client-wait-notice-panel{display:block;padding:12px;overflow-y:auto}.client-wait-notice-copy{margin-left:0;margin-bottom:12px}.client-wait-notice-qr-stage{padding-right:0;justify-content:flex-start}.client-wait-notice-qr-wrap{width:84px}}.client-tg-notices-section{margin-top:18px;grid-column:1/-1}.client-tg-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.client-tg-heading h2{margin-bottom:5px;font-size:20px}.client-tg-heading p{color:var(--lux-muted,#aaa69b);font-size:12px}.client-tg-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}.client-tg-card{min-width:0;height:184px;padding:16px;border:1px solid var(--lux-line-soft,#3b372d);border-radius:14px;background:linear-gradient(145deg,rgba(216,189,127,.045),rgba(255,255,255,.025));display:flex;flex-direction:column}.client-tg-card-head{display:flex;gap:10px;align-items:center;min-width:0}.client-tg-avatar{width:32px;height:32px;flex:0 0 32px;display:grid;place-items:center;border-radius:9px;background:rgba(216,189,127,.12);color:var(--lux-gold-2,#e4cf9b);font-size:14px;font-weight:700}.client-tg-card-title{min-width:0}.client-tg-card-title h3{margin:0;color:var(--lux-text,#f3eee5);font-size:14px;line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.client-tg-tag{font-size:11px;color:var(--lux-muted,#aaa69b)}.client-tg-card .client-tg-preview{flex:0 0 auto;margin:10px 0 8px;color:var(--lux-text,#eee9df);font-size:13px;line-height:1.55;white-space:normal;overflow-wrap:anywhere;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden}.client-tg-card-footer{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:auto;padding-top:9px;border-top:1px solid var(--lux-line-soft,#373329)}.client-tg-card-footer time{color:var(--lux-muted,#aaa69b);font-size:11px}.client-tg-detail-btn{padding:4px 0 4px 8px;color:var(--lux-gold-2,#e4cf9b);background:0 0;border:0;font-size:12px;cursor:pointer;white-space:nowrap}.client-tg-detail-btn:hover{text-decoration:underline}.client-tg-detail-btn:focus-visible{outline:2px solid var(--lux-gold-2,#e4cf9b);outline-offset:3px}.client-tg-empty{color:var(--lux-muted,#aaa69b);text-align:center;padding:24px 12px;font-size:13px}.client-tg-detail-content{width:min(620px,94vw);max-height:86vh;display:flex;flex-direction:column}.client-tg-detail-time{color:var(--lux-muted,#aaa69b);font-size:12px;margin:8px 0 18px}.client-tg-detail-body{min-height:0;max-height:60vh;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;font-size:14px;line-height:1.8;color:var(--lux-text,#f3eee5)}.client-tg-detail-body a{color:var(--lux-gold-2,#e4cf9b);text-decoration:underline}@media (max-width:520px){.client-tg-grid{grid-template-columns:minmax(0,1fr)}.client-tg-heading h2{font-size:18px}.client-tg-card{height:176px}}.client-batch-page{display:none}.client-batch-actions,.client-batch-card-actions,.client-batch-card-top,.client-batch-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.client-batch-head h2{margin:0;font-size:22px}.client-batch-summary{display:none}.client-batch-list{display:flex;flex-direction:column;gap:12px}.client-batch-card{border:1px solid rgba(120,168,120,.45);border-radius:16px;padding:16px 18px;background:rgba(18,28,22,.72)}.client-batch-key{font-weight:700;letter-spacing:.04em}.client-batch-current{margin-left:8px;padding:1px 8px;border-radius:999px;background:#2f6b45;color:#e7ffe9;font-size:12px}.client-batch-meta{margin-top:6px;color:#c8c2b6;font-size:13px}.client-batch-empty{padding:28px 8px;color:#aaa69b;text-align:center}#client-batch-add-modal .modal-content,#client-batch-recharge-modal .modal-content,.client-batch-add-modal .modal-content{display:flex;flex-direction:column;gap:14px}#client-batch-add-modal .modal-actions,#client-batch-recharge-modal .modal-actions,.client-batch-page .modal-actions{display:flex;justify-content:flex-end;gap:10px}.client-batch-head .client-batch-summary{display:block;color:#bcb4a4;font-size:13px;margin:8px 0 0}.client-batch-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:16px;padding:16px;border:1px solid rgba(212,184,112,.25);border-radius:16px;background:rgba(212,184,112,.06)}.client-batch-card-label,.client-batch-toolbar label{display:flex;align-items:center;gap:10px}.client-batch-toolbar label{margin:0;cursor:pointer}.client-batch-card-label input,.client-batch-toolbar input{width:18px;height:18px;margin:0;accent-color:#d4b870;flex-shrink:0}.client-batch-help,.client-batch-toolbar span{color:#bcb4a4;font-size:13px;line-height:1.7}.client-batch-help{margin:4px 0 12px}.client-batch-progress{border:1px solid rgba(212,184,112,.25);border-radius:16px;padding:18px}.client-batch-progress h3{margin:0 0 12px;font-size:18px}.client-batch-import-result,.client-batch-result-list{max-height:280px;overflow:auto;overscroll-behavior:contain}.client-batch-result-row{display:grid;grid-template-columns:130px minmax(0,1fr);gap:12px;padding:7px 0;border-bottom:1px solid rgba(255,255,255,.06);font-size:13px;overflow-wrap:anywhere}.client-batch-result-row.is-error{color:#efafa4}#client-batch-add-modal textarea{min-height:170px;resize:vertical;font-family:monospace}#client-batch-add-modal .modal-content,.client-batch-create-modal-content{width:min(620px,94vw);max-height:88vh;overflow:auto}.client-batch-create-modal-content .modal-actions{display:flex;justify-content:flex-end;gap:12px}@media (max-width:600px){.client-batch-toolbar>button{width:100%}.client-batch-toolbar{gap:12px}.client-batch-result-row{grid-template-columns:105px minmax(0,1fr)}.client-batch-card{padding:14px}}.client-batch-card-label .client-batch-key{min-width:0;overflow-wrap:anywhere;word-break:break-all;user-select:all}.client-batch-card-label .client-batch-current{flex-shrink:0}.client-batch-details{line-height:1.9;overflow-wrap:anywhere}.client-batch-password-retry{padding:0 4px;border:0;background:0 0;color:#e4cf9b;text-decoration:underline;cursor:pointer;font:inherit}.client-batch-result-row{grid-template-columns:minmax(130px,1fr) minmax(0,1fr)}@media (max-width:600px){.client-batch-result-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}.client-batch-card-label{min-width:0;max-width:100%;flex-wrap:wrap}.client-batch-note-btn{flex-shrink:0}.client-batch-note-text{white-space:pre-wrap;overflow-wrap:anywhere}.client-batch-note-modal-content{display:flex;flex-direction:column;gap:12px;max-height:88vh;overflow:auto}#client-batch-note-key{overflow-wrap:anywhere;user-select:all}#client-batch-note-input{resize:vertical;min-height:100px}.client-batch-note-modal-content .modal-actions{display:flex;justify-content:flex-end;gap:10px}.client-batch-progress-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.client-batch-progress-head h3{margin:0}[data-app-entry=client] .radar-table-client tbody td[data-label$="3D观看链接"]::before{white-space:normal;overflow-wrap:anywhere}[data-app-entry=client] .radar-table-client tbody td[data-label$="3D观看链接"]{font-size:15px;font-weight:550}[data-app-entry=client] .radar-table-client tbody td[data-label$="3D观看链接"] .client-radar-value-text{flex:1 1 auto;min-width:0;word-break:break-all}