:root{color-scheme:light;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;--canvas: #f4f6f5;--surface: #ffffff;--surface-muted: #f8faf9;--ink: #17211c;--muted: #66736c;--line: #dce3df;--line-strong: #c9d2cd;--brand: #16734a;--brand-soft: #e5f2eb;--blue: #2563a6;--blue-soft: #e8f0fa;--amber: #a96013;--amber-soft: #f8eddd;--danger: #b43b3b;--danger-soft: #fae9e8;--shadow: 0 12px 32px rgba(28, 47, 37, .08)}:root[data-theme=dark]{color-scheme:dark;--canvas: #101512;--surface: #171d19;--surface-muted: #1c241f;--ink: #eef3f0;--muted: #9eaaa4;--line: #2c3731;--line-strong: #3a4740;--brand: #52b985;--brand-soft: #1d392a;--blue: #76a9e2;--blue-soft: #1c3045;--amber: #e2a85e;--amber-soft: #3b2c1b;--danger: #ee7772;--danger-soft: #452625;--shadow: 0 16px 38px rgba(0, 0, 0, .24)}*{box-sizing:border-box}html,body,#app{min-height:100%;margin:0}body{background:var(--canvas);color:var(--ink);letter-spacing:0}button,input,select{font:inherit;letter-spacing:0}button,a{-webkit-tap-highlight-color:transparent}button{color:inherit}a{color:inherit;text-decoration:none}svg{display:block}.hidden{display:none!important}.boot-screen{min-height:100vh;display:grid;place-content:center;justify-items:center;gap:18px;background:var(--canvas)}.boot-copy{display:grid;justify-items:center;gap:4px}.boot-copy strong{font-size:19px}.boot-copy span{color:var(--muted);font-size:13px}.boot-progress{width:160px;height:3px;background:var(--line);overflow:hidden}.boot-progress span{display:block;width:50%;height:100%;background:var(--brand);animation:boot 1.1s ease-in-out infinite alternate}@keyframes boot{0%{transform:translate(-70%)}to{transform:translate(170%)}}.brand-lockup{display:flex;align-items:center;gap:11px;font-weight:760;font-size:17px;white-space:nowrap}.brand-mark{width:38px;height:38px;display:grid;place-items:center;background:var(--ink);color:var(--surface);border-radius:7px}.brand-mark span{font-size:13px;font-weight:850}.login-layout{min-height:100vh;display:grid;grid-template-columns:minmax(320px,42%) 1fr}.login-brand{background:#18231d;color:#f4f8f5;padding:44px 48px;display:flex;flex-direction:column}.login-brand .brand-mark{background:#f0f5f2;color:#17211c}.login-brand>small{color:#88968e;margin-top:auto}.login-status{margin:auto 0;max-width:440px}.login-status p{color:#96a59c;text-transform:uppercase;font-size:12px;font-weight:700}.login-status strong{display:flex;align-items:center;gap:16px;font-size:36px;line-height:1.15}.login-status strong span{color:#58bb87}.status-orbit{width:66px;height:66px;border:1px solid #516159;display:grid;place-items:center;margin-bottom:30px;border-radius:50%}.status-orbit svg{width:28px;height:28px;color:#58bb87}.login-tags{display:flex;gap:8px;margin-top:24px;flex-wrap:wrap}.login-tags span{border:1px solid #435249;padding:6px 9px;color:#b7c3bc;font:12px ui-monospace,SFMono-Regular,Menlo,monospace}.login-panel{display:grid;place-items:center;padding:36px;background:var(--surface)}.login-form{width:min(390px,100%);display:grid;gap:20px}.mobile-brand{display:none}.form-heading span,.eyebrow{color:var(--muted);text-transform:uppercase;font-size:11px;font-weight:750}.form-heading h1{font-size:30px;margin:5px 0 0;letter-spacing:0}.form-error{border-left:3px solid var(--danger);background:var(--danger-soft);color:var(--danger);padding:10px 12px;font-size:13px}.field{display:grid;gap:7px;min-width:0}.field>span{font-size:12px;color:var(--muted);font-weight:650}.field input,.toolbar select{min-height:42px;width:100%;border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);padding:0 12px;border-radius:5px;outline:none}.field input:focus,.toolbar select:focus,.search-box:focus-within{border-color:var(--brand);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 13%,transparent)}.password-field{position:relative}.password-field input{padding-right:48px}.password-field .icon-btn{position:absolute;right:4px;bottom:3px}.primary-btn,.secondary-btn,.danger-btn,.text-btn{border:0;min-height:40px;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 15px;border-radius:5px;font-size:13px;font-weight:700;cursor:pointer}.primary-btn{background:var(--brand);color:#fff}.secondary-btn{border:1px solid var(--line-strong);background:var(--surface);color:var(--ink)}.danger-btn{background:var(--danger);color:#fff}.text-btn{background:transparent;color:var(--brand);padding:0 3px}.primary-btn:hover,.danger-btn:hover{filter:brightness(.94)}.secondary-btn:hover,.icon-btn:hover{background:var(--surface-muted)}button:disabled{opacity:.55;cursor:wait}.login-submit{margin-top:5px;min-height:46px;justify-content:space-between;padding-inline:17px}.icon-btn{width:38px;height:38px;border:1px solid transparent;display:inline-grid;place-items:center;padding:0;border-radius:5px;background:transparent;cursor:pointer}.icon-btn.danger{color:var(--danger)}.spin{animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.app-shell{min-height:100vh;display:grid;grid-template-columns:224px minmax(0,1fr)}.sidebar{position:sticky;top:0;height:100vh;border-right:1px solid var(--line);background:var(--surface);padding:23px 16px 18px;display:flex;flex-direction:column;z-index:5}.sidebar .brand-lockup{padding:0 8px 25px}.sidebar nav{display:grid;gap:4px}.nav-item{min-height:42px;display:flex;align-items:center;gap:12px;padding:0 12px;border-radius:5px;color:var(--muted);font-size:14px;font-weight:650}.nav-item:hover{color:var(--ink);background:var(--surface-muted)}.nav-item.active{color:var(--brand);background:var(--brand-soft)}.sidebar-foot{margin-top:auto;display:grid;gap:9px}.core-chip{display:flex;align-items:center;gap:10px;border:1px solid var(--line);padding:10px;border-radius:6px}.core-chip>div{min-width:0;display:grid;gap:2px}.core-chip strong{font-size:12px}.core-chip small{color:var(--muted);font-size:10px}.legacy-link{min-height:38px;display:flex;align-items:center;gap:10px;padding:0 10px;color:var(--muted);font-size:12px}.status-dot{width:7px;height:7px;flex:0 0 auto;display:inline-block;background:#9aa59f;border-radius:50%}.status-dot.online{background:#24a462;box-shadow:0 0 0 3px color-mix(in srgb,#24a462 15%,transparent)}.status-dot.offline{background:var(--danger)}.workspace{min-width:0}.topbar{min-height:92px;padding:20px 32px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--surface) 92%,transparent);position:sticky;top:0;z-index:4;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.topbar h1{margin:4px 0 0;font-size:23px}.topbar-actions{display:flex;gap:4px}.topbar-actions .icon-btn{border-color:var(--line);background:var(--surface)}.content{padding:28px 32px 46px;max-width:1520px;margin:0 auto}.mobile-nav{display:none}.metrics-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.metric-card,.panel{background:var(--surface);border:1px solid var(--line);border-radius:7px}.metric-card{padding:17px;min-height:142px;display:flex;flex-direction:column}.metric-head{display:flex;align-items:center;gap:9px;color:var(--muted);font-size:12px;font-weight:650}.metric-icon{width:31px;height:31px;display:grid;place-items:center;background:var(--brand-soft);color:var(--brand);border-radius:5px}.metric-card>strong{font-size:25px;margin-top:18px}.metric-card>small{color:var(--muted);font-size:11px;margin-top:4px}.meter{height:5px;background:var(--line);overflow:hidden;margin-top:12px;border-radius:3px}.meter span{display:block;height:100%;background:var(--brand);border-radius:inherit}.meter.small{margin-top:6px;width:150px;height:4px}.dashboard-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:14px;margin-top:14px}.panel{padding:20px}.route-panel,.system-panel{min-height:350px}.recent-panel{grid-column:1 / -1}.section-head{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:18px}.section-head h2{margin:4px 0 0;font-size:17px}.quiet-badge,.count-badge{display:inline-flex;align-items:center;justify-content:center;background:var(--surface-muted);color:var(--muted);border:1px solid var(--line);font-size:10px;font-weight:700;padding:4px 7px;border-radius:4px}.route-list{display:grid}.route-row{display:grid;grid-template-columns:46px minmax(0,1fr) auto;align-items:center;gap:13px;padding:17px 0;border-bottom:1px solid var(--line)}.route-row:last-child{border-bottom:0}.route-row>div,.recent-row>div{min-width:0;display:grid;gap:3px}.route-row strong,.recent-row strong{font-size:13px}.route-row small,.recent-row small{color:var(--muted);font-size:11px}.route-code{width:42px;height:34px;display:grid;place-items:center;border-radius:5px;font-size:10px;font-weight:850}.route-blue{background:var(--blue-soft);color:var(--blue)}.route-amber{background:var(--amber-soft);color:var(--amber)}.route-green{background:var(--brand-soft);color:var(--brand)}.status-pill{min-width:61px;display:inline-flex;justify-content:center;align-items:center;padding:5px 8px;font-size:10px;font-weight:750;border-radius:4px}.status-pill.ok{color:var(--brand);background:var(--brand-soft)}.status-pill.error{color:var(--danger);background:var(--danger-soft)}.status-pill.neutral{color:var(--muted);background:var(--surface-muted);border:1px solid var(--line)}.resource-row{padding:12px 0}.resource-row>div:first-child{display:flex;justify-content:space-between;font-size:11px;color:var(--muted)}.resource-row strong{color:var(--ink);font-size:11px}.system-meta{margin-top:15px;border-top:1px solid var(--line);padding-top:15px;display:flex;justify-content:space-between;gap:15px;color:var(--muted);font-size:10px}.recent-list{display:grid;grid-template-columns:repeat(5,minmax(0,1fr))}.recent-row{display:grid;grid-template-columns:36px minmax(0,1fr);gap:10px;align-items:center;padding:7px 14px;border-right:1px solid var(--line)}.recent-row:first-child{padding-left:0}.recent-row:last-child{border-right:0}.avatar{width:34px;height:34px;display:grid;place-items:center;background:var(--blue-soft);color:var(--blue);border-radius:50%;font-size:10px;font-weight:850}.last-seen{grid-column:2;display:flex;align-items:center;gap:6px;color:var(--muted);font-size:9px}.toolbar{display:grid;grid-template-columns:minmax(260px,1fr) 180px 160px auto;gap:10px;align-items:center;margin-bottom:14px}.panel-flat{background:transparent}.search-box{min-height:42px;display:flex;align-items:center;gap:9px;border:1px solid var(--line-strong);background:var(--surface);padding:0 12px;border-radius:5px}.search-box svg{color:var(--muted)}.search-box input{flex:1;border:0;outline:0;background:transparent;color:var(--ink);min-width:0}.table-panel{padding:0;overflow:hidden}.table-wrap{overflow-x:auto}.data-table{width:100%;min-width:850px;border-collapse:collapse}.data-table th{height:44px;padding:0 16px;background:var(--surface-muted);border-bottom:1px solid var(--line);color:var(--muted);text-align:left;font-size:10px;text-transform:uppercase}.data-table td{height:68px;padding:8px 16px;border-bottom:1px solid var(--line);font-size:12px}.data-table tbody tr:hover{background:color-mix(in srgb,var(--surface-muted) 70%,transparent)}.align-right{text-align:right!important}.user-cell{display:flex;align-items:center;gap:10px;min-width:160px}.user-cell>div{display:grid;gap:3px}.user-cell strong{font-size:12px}.user-cell small{color:var(--muted);font-size:10px}.status-toggle{width:30px;height:17px;border:0;background:#a8b2ad;border-radius:9px;padding:2px;cursor:pointer;vertical-align:middle}.status-toggle span{width:13px;height:13px;display:block;background:#fff;border-radius:50%;transition:transform .14s ease}.status-toggle.enabled{background:var(--brand)}.status-toggle.enabled span{transform:translate(13px)}.state-label{margin-left:9px;display:inline-flex;align-items:center;gap:5px;color:var(--muted);font-size:10px}.usage-cell{min-width:165px}.usage-cell>span{color:var(--muted);font-size:10px}.danger-text{color:var(--danger)}.row-actions{display:flex;justify-content:flex-end;gap:2px}.table-footer{min-height:45px;display:flex;justify-content:flex-end;gap:18px;align-items:center;padding:0 16px;color:var(--muted);font-size:10px}.empty-state{padding:38px;color:var(--muted);text-align:center;font-size:12px}.protocol-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:14px}.protocol-panel{padding-bottom:4px}.protocol-list{display:grid}.protocol-row{min-height:66px;display:grid;grid-template-columns:40px minmax(160px,1fr) 100px minmax(160px,auto) 66px 70px;gap:12px;align-items:center;border-top:1px solid var(--line)}.protocol-glyph{width:34px;height:34px;display:grid;place-items:center;border-radius:5px;background:var(--blue-soft);color:var(--blue);font-size:9px;font-weight:850}.protocol-glyph.hysteria2{background:var(--amber-soft);color:var(--amber)}.protocol-main{min-width:0;display:grid;gap:3px}.protocol-main strong{font-size:12px}.protocol-main small{color:var(--muted);font:10px ui-monospace,SFMono-Regular,Menlo,monospace;overflow:hidden;text-overflow:ellipsis}.protocol-kind{color:var(--muted);font-size:10px}.protocol-row code{color:var(--muted);font:10px ui-monospace,SFMono-Regular,Menlo,monospace}.protocol-users{display:flex;align-items:center;gap:5px;font-size:10px;color:var(--muted)}.operation-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);gap:14px}.operation-main{min-height:390px}.server-identity{display:flex;align-items:center;gap:12px;padding:14px 0 20px}.server-identity .metric-icon{width:42px;height:42px}.server-identity>div{display:grid;gap:4px}.server-identity strong{font-size:14px}.server-identity small{color:var(--muted);font-size:10px}.detail-list{margin:0}.detail-list>div{min-height:42px;display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);font-size:11px}.detail-list dt{color:var(--muted)}.detail-list dd{margin:0;font-weight:650}.operation-actions{display:flex;gap:8px;margin-top:20px}.download-panel{min-height:390px}.download-row{min-height:67px;display:grid;grid-template-columns:36px minmax(0,1fr) 20px;align-items:center;gap:10px;border-top:1px solid var(--line)}.download-row>span{width:32px;height:32px;display:grid;place-items:center;background:var(--surface-muted);color:var(--brand);border-radius:5px}.download-row>div{display:grid;gap:3px}.download-row strong{font-size:11px}.download-row small{color:var(--muted);font-size:10px}.download-row>svg{color:var(--muted)}.logs-panel{grid-column:1 / -1}.logs-panel pre{min-height:260px;max-height:430px;margin:0;padding:15px;overflow:auto;background:#101512;color:#b7c8be;border-radius:5px;font:11px/1.7 ui-monospace,SFMono-Regular,Menlo,monospace;white-space:pre-wrap}.log-placeholder{color:#7d8b83}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:grid;place-items:center;padding:20px;background:#0c120f8c;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.modal-card{width:min(560px,100%);max-height:calc(100vh - 40px);background:var(--surface);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);overflow:hidden}.modal-card.wide{width:min(820px,100%)}.modal-head{min-height:72px;padding:15px 18px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.modal-head h2{margin:4px 0 0;font-size:18px}.modal-body{max-height:calc(100vh - 190px);overflow-y:auto;padding:20px}.modal-actions{min-height:67px;display:flex;justify-content:flex-end;align-items:center;gap:8px;padding:12px 18px;border-top:1px solid var(--line);background:var(--surface-muted)}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.toggle-row{display:grid;grid-template-columns:auto auto minmax(130px,1fr);gap:18px;align-items:end;padding:19px 0}.check-line{min-height:42px;display:flex;align-items:center;gap:8px;font-size:12px}.check-line input,.inbound-option input{accent-color:var(--brand);width:16px;height:16px}.compact-field{max-width:170px}.inbound-fieldset{margin:0;padding:0;border:0}.inbound-fieldset legend{color:var(--muted);font-size:12px;font-weight:650;margin-bottom:9px}.inbound-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--line)}.inbound-option{min-height:62px;display:grid;grid-template-columns:18px minmax(0,1fr);align-items:center;gap:8px;padding:8px 11px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);cursor:pointer}.inbound-option:nth-child(3n){border-right:0}.inbound-option>span{display:grid;gap:3px;min-width:0}.inbound-option strong{font-size:10px}.inbound-option small{color:var(--muted);font-size:8px;overflow:hidden;text-overflow:ellipsis}.edit-note{display:flex;align-items:center;gap:9px;margin-top:15px;padding:11px;background:var(--blue-soft);color:var(--blue);font-size:10px}.confirm-card p{margin:0;color:var(--muted);font-size:13px;line-height:1.7}.subscription-card{width:min(760px,100%)}.subscription-layout{display:grid;grid-template-columns:210px minmax(0,1fr);gap:20px}.qr-shell{display:grid;justify-items:center;align-content:start;gap:9px;padding:10px;background:#fff;border:1px solid var(--line)}.qr-shell small{color:#5d6862;font-size:10px}.subscription-list{display:grid;align-content:start}.subscription-row{min-height:69px;display:grid;grid-template-columns:minmax(0,1fr) 38px;align-items:center;gap:8px;border-bottom:1px solid var(--line)}.subscription-row>div{min-width:0;display:grid;gap:5px}.subscription-row strong{font-size:11px}.subscription-row code{overflow:hidden;text-overflow:ellipsis;color:var(--muted);font:9px ui-monospace,SFMono-Regular,Menlo,monospace;white-space:nowrap}.toast{position:fixed;right:24px;bottom:24px;z-index:80;min-height:44px;max-width:min(420px,calc(100vw - 48px));display:flex;align-items:center;gap:10px;padding:0 14px;background:#17211c;color:#fff;border-radius:6px;box-shadow:var(--shadow);font-size:12px;animation:toast-in .16s ease-out}.toast-danger{background:#7f2b2b}@keyframes toast-in{0%{transform:translateY(8px);opacity:0}}@media(max-width:1080px){.metrics-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.recent-list{grid-template-columns:repeat(3,minmax(0,1fr))}.recent-row:nth-child(3){border-right:0}.recent-row:nth-child(n+4){display:none}.toolbar{grid-template-columns:minmax(230px,1fr) 150px 140px auto}.protocol-row{grid-template-columns:40px minmax(150px,1fr) 90px minmax(140px,auto) 58px}.protocol-row .status-pill{display:none}}@media(max-width:780px){.login-layout{grid-template-columns:1fr}.login-brand{display:none}.login-panel{min-height:100vh;padding:24px}.mobile-brand{display:flex;align-items:center;gap:10px;margin-bottom:22px;font-weight:750}.app-shell{display:block}.sidebar{display:none}.topbar{min-height:76px;padding:14px 18px}.topbar h1{font-size:19px}.topbar-actions .icon-btn:nth-child(2){display:none}.content{padding:18px 14px 92px}.mobile-nav{position:fixed;inset:auto 0 0;z-index:12;min-height:66px;display:grid;grid-template-columns:repeat(4,1fr);background:var(--surface);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom)}.mobile-nav .nav-item{min-height:62px;justify-content:center;flex-direction:column;gap:4px;border-radius:0;padding:6px;font-size:9px}.metrics-grid,.protocol-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.metrics-grid .metric-card{min-height:128px}.metric-card>strong{font-size:21px}.dashboard-grid,.operation-grid{grid-template-columns:1fr}.recent-panel,.logs-panel{grid-column:1}.recent-list{grid-template-columns:1fr}.recent-row{border-right:0;border-bottom:1px solid var(--line);padding:10px 0}.recent-row:nth-child(n+4){display:grid}.toolbar{grid-template-columns:minmax(0,1fr) auto}.toolbar select,.toolbar .primary-btn span{display:none}.toolbar .primary-btn{width:42px;padding:0}.protocol-panel{overflow:hidden}.protocol-row{grid-template-columns:38px minmax(0,1fr) auto;min-height:70px}.protocol-kind,.protocol-row code,.protocol-row .status-pill{display:none}.protocol-users{justify-content:flex-end}.form-grid{grid-template-columns:1fr}.toggle-row{grid-template-columns:1fr 1fr}.compact-field{grid-column:1 / -1;max-width:none}.inbound-options{grid-template-columns:1fr 1fr}.inbound-option:nth-child(3n){border-right:1px solid var(--line)}.inbound-option:nth-child(2n){border-right:0}.subscription-layout{grid-template-columns:1fr}.qr-shell{width:212px;margin:0 auto}}@media(max-width:420px){.metrics-grid,.protocol-summary{grid-template-columns:1fr}.metric-card{min-height:120px}.section-head{align-items:flex-start}.section-head .quiet-badge{display:none}.route-row{grid-template-columns:42px minmax(0,1fr)}.route-row>.quiet-badge{display:none}.inbound-options{grid-template-columns:1fr}.inbound-option,.inbound-option:nth-child(3n),.inbound-option:nth-child(2n){border-right:0}.operation-actions{flex-direction:column}.operation-actions>*{width:100%}}
