*{box-sizing:border-box}body{color:#162033;background:#f5f7fb;margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Arial,sans-serif}button,input,select{font:inherit}button{cursor:pointer;border:0}button:disabled{opacity:.55;cursor:not-allowed}input,select{color:#172033;background:#fff;border:1px solid #d8dee8;border-radius:9px;outline:none;width:100%;padding:11px 12px}input:focus,select:focus{border-color:#8a98ad;box-shadow:0 0 0 3px #17203312}.app{min-height:100vh;display:flex}.app aside{color:#d7deea;background:#0f1828;flex-direction:column;flex:0 0 228px;width:228px;min-height:100vh;padding:20px 14px;display:flex}.side-brand{padding:2px 10px 22px}.side-brand div{letter-spacing:.4px;color:#fff;font-size:21px;font-weight:800}.side-brand span{color:#7f8da2;letter-spacing:.08em;text-transform:uppercase;margin-top:4px;font-size:11px;display:block}.app nav{gap:5px;display:grid}.app aside button{text-align:left;color:#bfc9d8;background:0 0;border-radius:9px;align-items:center;gap:11px;padding:11px 12px;font-size:14px;display:flex}.app aside button:hover{color:#fff;background:#1a2639}.app aside button.active{color:#fff;background:#26344b;box-shadow:inset 0 0 0 1px #ffffff0a}.side-bottom{border-top:1px solid #202c3e;margin-top:auto;padding-top:10px}.app main{flex:1;width:100%;min-width:0;max-width:1500px;margin:0 auto;padding:28px 36px 50px}header{justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:28px;display:flex}.eyebrow{letter-spacing:.12em;color:#8793a5;margin-bottom:5px;font-size:10px;font-weight:700}header h1,h2,p{margin:0}header h1{letter-spacing:-.02em;font-size:25px;line-height:1.15}.secondary,.primary,.danger-button{border-radius:9px;justify-content:center;align-items:center;gap:7px;padding:10px 14px;font-size:13px;font-weight:650;display:inline-flex}.primary{color:#fff;background:#172033}.primary:hover{background:#26344b}.secondary{color:#243047;background:#fff;border:1px solid #d9e0ea}.secondary:hover{background:#f7f9fc}.danger-button{color:#b42318;background:#fff0f0;border:1px solid #ffd1cc;padding:9px}.spin{animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.notice{overflow-wrap:anywhere;word-break:break-word;border-radius:9px;justify-content:space-between;align-items:flex-start;gap:12px;max-height:150px;margin:-8px 0 20px;padding:12px 14px;display:flex;overflow:auto}.notice.error{color:#9e251b;background:#fff2f0;border:1px solid #ffd6d1}.notice button{color:inherit;background:0 0;padding:2px}.stat-grid{grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:22px;display:grid}.stat,.panel,.table,.node-card,.subscription-card,.plan-card{background:#fff;border:1px solid #e1e6ee;border-radius:13px}.stat{min-height:142px;padding:19px;position:relative}.stat-icon{background:#f0f3f8;border-radius:9px;place-items:center;width:34px;height:34px;margin-bottom:18px;display:grid}.stat small{color:#7b8798;font-size:12px;display:block}.stat strong{letter-spacing:-.04em;margin-top:5px;font-size:30px;display:block}.dashboard-grid{grid-template-columns:1.4fr .8fr;gap:16px;display:grid}.panel{padding:20px}.panel-head,.toolbar{justify-content:space-between;align-items:flex-start;gap:20px;display:flex}.panel h2,.toolbar h2{margin-bottom:5px;font-size:16px}.panel p,.toolbar p{color:#7b8798;font-size:12px;line-height:1.5}.badge{color:#566276;white-space:nowrap;background:#eef2f7;border-radius:999px;align-items:center;gap:5px;padding:5px 8px;font-size:11px;font-weight:700;display:inline-flex}.badge.ok{color:#16703b;background:#eaf8ef}.badge.danger{color:#a52a21;background:#fff0f0}.mini-list{border-top:1px solid #edf0f4;margin-top:18px}.mini-row{border-bottom:1px solid #edf0f4;justify-content:space-between;align-items:center;padding:13px 0;display:flex}.mini-row b,.node-title b{font-size:13px}.mini-row small,.node-title small,.row small{color:#7b8798;margin-top:4px;font-size:11px;display:block}.status{align-items:center;gap:5px;font-size:11px;font-weight:750;display:inline-flex}.status i{background:currentColor;border-radius:50%;width:7px;height:7px}.status.ok{color:#178447}.status.bad{color:#bd3128}.subscription-summary{grid-template-columns:repeat(3,1fr);gap:10px;margin-top:20px;display:grid}.subscription-summary div{background:#f7f9fc;border-radius:10px;padding:16px}.subscription-summary strong{font-size:24px;display:block}.subscription-summary span{color:#7b8798;font-size:11px}.toolbar{align-items:center;margin-bottom:18px}.info-banner{color:#556174;background:#f8fafc;border:1px solid #e1e7ef;border-radius:11px;align-items:flex-start;gap:11px;margin-bottom:18px;padding:13px 15px;display:flex}.info-banner>svg{flex:none;margin-top:1px}.info-banner b{color:#263247}.info-banner span{margin-top:2px;font-size:11px;line-height:1.5;display:block}.node-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.node-card{padding:17px}.node-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.node-title{align-items:center;gap:10px;display:flex}.node-icon{background:#eef2f7;border-radius:9px;place-items:center;width:36px;height:36px;display:grid}.metrics{grid-template-columns:repeat(3,1fr);gap:9px;margin:17px 0;display:grid}.metrics div{background:#f8fafc;border-radius:9px;padding:11px}.metrics span,.label{color:#8893a3;text-transform:uppercase;letter-spacing:.04em;font-size:10px;display:block}.metrics b{margin-top:4px;font-size:13px;display:block}.node-foot{border-top:1px solid #edf0f4;padding-top:12px}.node-foot>small{color:#8a94a4;white-space:nowrap;text-overflow:ellipsis;margin-bottom:10px;font-size:10px;display:block;overflow:hidden}.actions{gap:8px;display:flex}.actions button{padding:8px 10px}.empty-state{color:#778396;text-align:center;background:#fff;border:1px dashed #d7dee8;border-radius:13px;flex-direction:column;justify-content:center;align-items:center;gap:8px;min-height:300px;padding:30px;display:flex}.empty-state b{color:#273249;font-size:14px}.empty-state span{max-width:460px;font-size:12px;line-height:1.5}.empty-state.compact{border:0;min-height:140px}.search{background:#fff;border:1px solid #d9e0ea;border-radius:9px;align-items:center;gap:7px;min-width:310px;padding:0 10px;display:flex}.search input{box-shadow:none;border:0;padding:9px 0}.table{overflow:hidden}.row{border-bottom:1px solid #edf0f4;grid-template-columns:1fr auto;align-items:center;gap:15px;padding:15px 17px;display:grid}.row:last-child{border-bottom:0}.user-row b{font-size:13px}.filter-tabs{flex-wrap:wrap;justify-content:flex-end;gap:5px;display:flex}.filter-tabs button{color:#697588;background:#fff;border:1px solid #dfe4eb;border-radius:8px;padding:8px 10px;font-size:11px}.filter-tabs button.selected{color:#fff;background:#172033;border-color:#172033}.subscription-list{gap:10px;display:grid}.subscription-card{grid-template-columns:1.2fr 1fr 1.3fr auto;align-items:center;gap:20px;padding:16px 17px;display:grid}.sub-main{align-items:center;gap:10px;display:flex}.sub-id{color:#7b8798;background:#f1f4f8;border-radius:7px;padding:7px;font-size:11px}.subscription-card b{font-size:12px}.subscription-card .label{margin-bottom:5px}.sub-main small{color:#7b8798;margin-top:4px;font-size:10px;display:block}.sub-actions{justify-content:flex-end;align-items:center;gap:7px;display:flex}.sub-actions button{padding:7px 9px;font-size:11px}.plan-form{margin-bottom:16px}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;margin-bottom:15px;display:grid}.form-grid.five{grid-template-columns:2fr 1fr 1fr .8fr 1fr}.form-grid label{gap:6px;display:grid}.form-grid label>span{color:#667287;font-size:11px;font-weight:650}.plan-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.plan-card{padding:17px}.plan-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.plan-card>strong{margin:18px 0 14px;font-size:25px;display:block}.plan-details{color:#687487;gap:15px;font-size:11px;display:flex}.plan-details span{align-items:center;gap:5px;display:flex}.modal-backdrop{z-index:20;background:#070d178c;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal{background:#fff;border-radius:15px;width:min(680px,100%);max-height:calc(100vh - 40px);padding:22px;overflow-y:auto;box-shadow:0 20px 70px #00000038}.modal-head{justify-content:space-between;gap:20px;margin-bottom:20px;display:flex}.modal h2{margin:0 0 5px;font-size:20px}.modal p{color:#7b8798;font-size:12px}.icon-button{color:#546074;background:#f2f4f7;border-radius:8px;place-items:center;width:34px;height:34px;display:grid}.form-note{color:#687487;background:#f7f9fc;border:1px solid #e4e8ef;border-radius:9px;align-items:flex-start;gap:8px;padding:11px;font-size:11px;line-height:1.45;display:flex}.check-list{gap:7px;max-height:300px;margin-top:13px;padding-right:3px;display:grid;overflow-y:auto}.check{border-radius:8px;align-items:flex-start;gap:9px;padding:9px 10px;font-size:11px;display:flex}.check.pass{color:#216e40;background:#edf9f1}.check.fail{color:#a72d23;background:#fff1ef}.check>span{font-weight:800}.check b{display:block}.check small{color:#718093;margin-top:2px;display:block}.modal-actions{justify-content:flex-end;gap:8px;margin-top:20px;display:flex}.login{background:#0f1828;place-items:center;min-height:100vh;padding:20px;display:grid}.login-card{background:#fff;border-radius:15px;gap:12px;width:360px;padding:30px;display:grid;box-shadow:0 20px 70px #00000040}.brand-mark{color:#fff;background:#172033;border-radius:10px;place-items:center;width:40px;height:40px;font-weight:800;display:grid}.login h1{margin:3px 0 -8px;font-size:25px}.login p{color:#7b8798;margin-bottom:7px;font-size:12px}.error{color:#b42318;font-size:12px}@media (width<=1050px){.stat-grid{grid-template-columns:repeat(2,1fr)}.dashboard-grid,.node-grid,.plan-grid{grid-template-columns:1fr}.subscription-card{grid-template-columns:1fr 1fr}.sub-actions{justify-content:flex-start}.form-grid.five{grid-template-columns:repeat(2,1fr)}}@media (width<=760px){.app aside{flex-basis:68px;width:68px;padding:15px 8px}.side-brand div{font-size:0}.side-brand div:after{content:"P";font-size:22px}.side-brand span,.app aside button span{display:none}.app aside button{justify-content:center}.app main{padding:20px 15px 35px}header{align-items:flex-start}.toolbar{flex-direction:column;align-items:flex-start}.search{width:100%;min-width:0}.subscription-card{grid-template-columns:1fr}.sub-actions{flex-wrap:wrap}.filter-tabs{justify-content:flex-start}.form-grid,.form-grid.five{grid-template-columns:1fr}.stat-grid{grid-template-columns:1fr 1fr}.node-grid{grid-template-columns:1fr}.actions{flex-wrap:wrap}}.wide-modal{max-width:760px}.section-title{text-transform:uppercase;letter-spacing:.08em;margin:18px 0 10px;font-size:13px;font-weight:800}.full-label{flex-direction:column;gap:7px;margin-top:10px;display:flex}.full-label span,label>span{color:#64748b;font-size:12px}.node-vless{border-top:1px solid #e2e8f0;border-bottom:1px solid #e2e8f0;grid-template-columns:auto 1fr;gap:4px 10px;padding:12px 0;display:grid}.node-vless span{color:#64748b;font-size:11px}.node-vless b{font-size:13px}.node-vless small{color:#64748b;grid-column:2}.vless-result{gap:8px;display:grid}.vless-result label{color:#64748b;font-size:12px}.vless-result code{word-break:break-all;background:#f8fafc;border-radius:8px;padding:10px}.vless-result textarea{width:100%;min-height:110px;font-family:ui-monospace,monospace;font-size:12px}.form-grid label{min-width:0}@media (width<=900px){.wide-modal{max-width:calc(100vw - 24px)}.node-foot{gap:10px}.actions{flex-wrap:wrap}}.customer-login{background:#0f1828;place-items:center;min-height:100vh;padding:20px;display:grid}.customer-card{background:#fff;border-radius:18px;gap:14px;width:min(460px,100%);padding:32px;display:grid;box-shadow:0 20px 70px #00000040}.customer-card h1{margin:0;font-size:25px}.customer-card p{color:#6f7b8d;margin:0 0 8px;font-size:13px;line-height:1.6}.compact-banner{margin-top:5px}.customer-shell{background:#f5f7fa;min-height:100vh}.customer-header{background:#fff;border-bottom:1px solid #e7ebf0;justify-content:space-between;align-items:center;padding:28px max(20px,50vw - 550px);display:flex}.customer-header h1{margin:4px 0 0;font-size:25px}.customer-main{gap:16px;max-width:1100px;margin:0 auto;padding:28px 20px 50px;display:grid}.customer-hero,.customer-panel{background:#fff;border:1px solid #e2e7ee;border-radius:15px;padding:20px}.customer-hero{justify-content:space-between;align-items:center;gap:20px;display:flex}.customer-kicker{text-transform:uppercase;letter-spacing:.1em;color:#8b96a7;font-size:10px}.customer-hero h2{margin:5px 0 2px;font-size:24px}.customer-hero p{color:#778396;margin:0;font-size:12px}.customer-grid{grid-template-columns:repeat(3,1fr);gap:14px;display:grid}.customer-panel>strong{margin:7px 0 4px;font-size:18px;display:block}.customer-panel>small{color:#7b8798;font-size:11px}.progress{background:#edf1f5;border-radius:10px;height:7px;margin-top:13px;overflow:hidden}.progress i{background:currentColor;border-radius:10px;height:100%;display:block}.customer-panel h2{margin:0 0 5px;font-size:16px}.customer-panel p{color:#7b8798;font-size:12px;line-height:1.5}.wide{width:100%}@media (width<=700px){.customer-header,.customer-main{padding:20px 15px}.customer-grid{grid-template-columns:1fr}.customer-hero{flex-direction:column;align-items:flex-start}}.plan-card.plan-inactive{opacity:.72;background:#f8fafc}.plan-id{color:#98a2b1;margin-top:3px;font-size:10px;display:block}.plan-actions{border-top:1px solid #edf0f4;flex-wrap:wrap;gap:6px;margin-top:16px;padding-top:13px;display:flex}.plan-actions button{padding:7px 8px;font-size:10px}.plan-hint{color:#8a94a4;margin-top:10px;font-size:10px;line-height:1.4;display:block}.checkbox-label{align-content:start}.checkbox-label input{width:18px;height:18px;margin:2px 0}.device-row{gap:16px}.device-actions{align-items:center;gap:8px;display:flex}.device-actions .secondary{padding:7px 10px;font-size:12px}.user-row-button{text-align:left;cursor:pointer;background:0 0;border:0;width:100%}.user-row-button:hover{background:#0f172a08}.modal-wide{max-width:900px}.detail-grid{grid-template-columns:1fr 1fr;gap:14px;display:grid}.detail-item{border-bottom:1px solid #e5e7eb;flex-direction:column;gap:4px;padding:12px 0;display:flex}.detail-item:last-child{border-bottom:0}.detail-item small{color:#64748b}@media (width<=760px){.detail-grid{grid-template-columns:1fr}}.wide-modal{overscroll-behavior:contain;max-height:calc(100vh - 24px);overflow-y:auto}.wide-modal .check-list{max-height:none;padding-right:0;overflow:visible}.wide-modal .check{overflow-wrap:anywhere;word-break:break-word}.wide-modal .check small{white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word}@media (width<=760px){.modal-backdrop{padding:8px}.wide-modal{max-height:calc(100vh - 16px);padding:16px}.wide-modal .modal-actions{background:#fff;border-top:1px solid #edf0f4;margin-top:16px;padding:12px 0 0;position:sticky;bottom:-16px}}.notice.error{overflow-wrap:anywhere;word-break:break-word;max-height:96px;overflow:hidden}.notice.error span{text-overflow:ellipsis;max-width:100%;display:block;overflow:hidden}.wide-modal .check small{white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;max-width:100%}.provision-status{border-radius:8px;margin-top:13px;padding:10px 12px;font-size:12px;font-weight:700}.code-block{white-space:pre-wrap;background:#f8fafc;border:1px solid #dbe2ea;border-radius:10px;margin:0;padding:14px 16px;font:12px/1.6 ui-monospace,SFMono-Regular,Menlo,monospace;overflow:auto}.badge.warn{color:#8a5b00;background:#fff4d6}.provision-status{border-radius:10px;margin-top:14px;padding:10px 12px;font-weight:700}.provision-status.success{color:#18753b;background:#eaf8ef}.provision-status.failed{color:#b42318;background:#fff0ef}.check-list{gap:8px;margin-top:10px;display:grid}.check{border-radius:10px;gap:10px;padding:10px;display:flex}.check.pass{background:#edf9f0}.check.fail{background:#fff0ef}.check small{white-space:pre-wrap;overflow-wrap:anywhere;margin-top:3px;display:block}.wide-modal{max-height:calc(100vh - 32px);overflow-y:auto}.wide-modal .check-list{max-height:none}.modal-backdrop{align-items:center;padding:16px;overflow:auto}n.health-reason{text-overflow:ellipsis;white-space:nowrap;max-width:420px;overflow:hidden;color:#b45309!important}n.health-checks{flex-wrap:wrap;gap:6px;margin-top:6px;display:flex}.health-check{background:#eef2f7;border-radius:999px;padding:3px 7px;font-size:10px;font-weight:700}.health-check.ok{color:#16804a;background:#e9f8ef}.health-check.bad{color:#b42318;background:#fff0ee}.health-reason{max-width:520px;line-height:1.35}.agent-update-modal{max-width:620px}.node-foot .actions{flex-wrap:wrap}.health-reason{overflow-wrap:anywhere;max-width:430px}
