*,*:before,*:after{box-sizing:border-box}html,body,#root{margin:0;padding:0;width:100%;height:100%;background:#0d0d0f;color:#f0f0f5;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#ffffff40}button,input,select,textarea{font-family:inherit}@media (prefers-color-scheme: light){html,body,#root{background:#f5f5f7;color:#1c1c1e}}.ap{display:flex;flex-direction:column;height:100%;background:var(--bg-primary, #0d0d0f);color:var(--text-primary, #f0f0f5);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;overflow:hidden}.ap--center{align-items:center;justify-content:center;gap:14px}.ap__header{display:flex;align-items:center;justify-content:space-between;padding:14px 20px 0;flex-shrink:0;border-bottom:1px solid rgba(255,255,255,.07)}.ap__header-left{display:flex;align-items:center;gap:8px;padding-bottom:14px}.ap__icon{font-size:18px}.ap__title{font-size:15px;font-weight:600;letter-spacing:-.01em}.ap__tabs{display:flex;gap:2px}.ap__tab{padding:10px 16px;background:none;border:none;border-bottom:2px solid transparent;color:#fff6;font-size:13px;cursor:pointer;transition:all .15s;white-space:nowrap}.ap__tab:hover{color:#ffffffbf}.ap__tab--active{color:#fff;border-bottom-color:#007aff}.ap__body{flex:1;overflow-y:auto;padding:20px}.ap__section{display:flex;flex-direction:column;gap:16px}.ap__loading{display:flex;align-items:center;justify-content:center;height:160px}.ap__empty{text-align:center;color:#ffffff4d;padding:40px 0;font-size:14px}.ap__spinner{width:32px;height:32px;border:2.5px solid rgba(255,255,255,.08);border-top-color:#007aff;border-radius:50%;animation:ap-spin .8s linear infinite;flex-shrink:0}.ap__spinner--sm{width:20px;height:20px;border-width:2px}@keyframes ap-spin{to{transform:rotate(360deg)}}.ap__forbidden-icon{font-size:48px}.ap__forbidden-title{font-size:20px;font-weight:600;margin:0}.ap__forbidden-sub{font-size:14px;color:#fff6;margin:0}.ap__toast{position:fixed;top:24px;left:50%;transform:translate(-50%);background:#1e1e24f2;border:1px solid rgba(255,255,255,.12);border-radius:10px;padding:10px 20px;font-size:13px;color:#f0f0f5;z-index:9999;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 4px 24px #0006;white-space:nowrap}.ap__stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px}.ap__stat-card{display:flex;flex-direction:column;align-items:center;gap:6px;padding:20px 16px;border-radius:14px;border:1px solid rgba(255,255,255,.07);background:#ffffff08;text-align:center}.ap__stat-card--blue{border-color:#007aff40;background:#007aff0f}.ap__stat-card--green{border-color:#30d15840;background:#30d1580f}.ap__stat-card--purple{border-color:#bf5af240;background:#bf5af20f}.ap__stat-card--orange{border-color:#ff9f0a40;background:#ff9f0a0f}.ap__stat-card--yellow{border-color:#ffd60a40;background:#ffd60a0f}.ap__stat-icon{font-size:26px}.ap__stat-value{font-size:26px;font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.ap__stat-label{font-size:11px;color:#ffffff73;text-transform:uppercase;letter-spacing:.04em}.ap__toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.ap__search-input{flex:1;min-width:180px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:8px 12px;color:#f0f0f5;font-size:13px;outline:none}.ap__search-input::placeholder{color:#ffffff40}.ap__search-input:focus{border-color:#007aff66}.ap__filter-select{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:8px 10px;color:#f0f0f5;font-size:13px;outline:none;cursor:pointer}.ap__filter-select option{background:#1a1a1f}.ap__search-btn{padding:8px 16px;background:#007aff;border:none;border-radius:8px;color:#fff;font-size:13px;cursor:pointer;transition:background .15s;white-space:nowrap}.ap__search-btn:hover{background:#0066d6}.ap__total-badge{font-size:12px;color:#ffffff59;margin-left:4px;white-space:nowrap}.ap__table-wrap{overflow-x:auto;border-radius:12px;border:1px solid rgba(255,255,255,.07)}.ap__table{width:100%;border-collapse:collapse;font-size:13px}.ap__table th{padding:10px 12px;text-align:left;font-size:11px;font-weight:500;color:#fff6;text-transform:uppercase;letter-spacing:.04em;background:#ffffff05;border-bottom:1px solid rgba(255,255,255,.06);white-space:nowrap}.ap__table td{padding:10px 12px;border-bottom:1px solid rgba(255,255,255,.04);vertical-align:middle}.ap__table tr:last-child td{border-bottom:none}.ap__table tbody tr:hover td{background:#ffffff05}.ap__tr--inactive td{opacity:.45}.ap__td-center{text-align:center}.ap__username{display:block;font-weight:500;color:#f0f0f5}.ap__user-id{display:block;font-size:10px;font-family:SF Mono,Cascadia Code,monospace;color:#ffffff40;margin-top:2px}.ap__email{font-size:12px;color:#ffffff8c}.ap__date{font-size:12px;font-family:SF Mono,Cascadia Code,monospace;color:#ffffff59;white-space:nowrap}.ap__role-badge{display:inline-flex;align-items:center;gap:3px;font-size:11px;padding:3px 8px;border-radius:20px;white-space:nowrap}.ap__role-badge--admin{background:#bf5af226;border:1px solid rgba(191,90,242,.3);color:#d8a0f0}.ap__role-badge--user{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);color:#ffffff80}.ap__status-dot{display:inline-block;width:6px;height:6px;border-radius:50%;margin-right:6px;vertical-align:middle}.ap__status-dot--on{background:#30d158;box-shadow:0 0 6px #30d15880}.ap__status-dot--off{background:#fff3}.ap__points-cell{font-variant-numeric:tabular-nums;white-space:nowrap}.ap__points-edit-btn{background:none;border:none;cursor:pointer;font-size:12px;opacity:.4;margin-left:4px;transition:opacity .15s;vertical-align:middle}.ap__points-edit-btn:hover{opacity:1}.ap__actions{display:flex;gap:6px;flex-wrap:wrap}.ap__action-btn{font-size:11px;padding:4px 10px;border-radius:6px;border:1px solid;cursor:pointer;white-space:nowrap;transition:all .15s}.ap__action-btn--primary{background:#007aff1a;border-color:#007aff4d;color:#64b5f6}.ap__action-btn--primary:hover{background:#007aff33}.ap__action-btn--warn{background:#ff9f0a1a;border-color:#ff9f0a4d;color:#ffb340}.ap__action-btn--warn:hover{background:#ff9f0a33}.ap__action-btn--danger{background:#ff453a1a;border-color:#ff453a4d;color:#ff6961}.ap__action-btn--danger:hover{background:#ff453a33}.ap__action-btn--green{background:#30d1581a;border-color:#30d1584d;color:#5de07a}.ap__action-btn--green:hover{background:#30d15833}.ap__pagination{display:flex;align-items:center;justify-content:center;gap:16px}.ap__page-btn{padding:7px 14px;background:#ffffff0f;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:#ffffffa6;font-size:13px;cursor:pointer;transition:all .15s}.ap__page-btn:hover:not(:disabled){background:#ffffff1a}.ap__page-btn:disabled{opacity:.3;cursor:not-allowed}.ap__page-info{font-size:13px;color:#fff6;font-variant-numeric:tabular-nums}.ap__modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;z-index:8888;display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.ap__modal{background:#18181c;border:1px solid rgba(255,255,255,.1);border-radius:16px;padding:24px;width:340px;max-width:calc(100vw - 40px);display:flex;flex-direction:column;gap:12px}.ap__modal-title{font-size:15px;font-weight:600;margin:0}.ap__modal-label{font-size:11px;color:#fff6;text-transform:uppercase;letter-spacing:.04em}.ap__modal-input{width:100%;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:9px 12px;color:#f0f0f5;font-size:13px;outline:none;box-sizing:border-box}.ap__modal-input:focus{border-color:#007aff66}.ap__modal-actions{display:flex;gap:10px;margin-top:4px}.ap__primary-btn{padding:10px 20px;background:#007aff;color:#fff;border:none;border-radius:9px;font-size:13px;font-weight:500;cursor:pointer;transition:background .15s;white-space:nowrap}.ap__primary-btn:hover:not(:disabled){background:#0066d6}.ap__primary-btn:disabled{opacity:.35;cursor:not-allowed}.ap__ghost-btn{padding:10px 16px;background:none;border:none;color:#ffffff59;font-size:13px;cursor:pointer;transition:color .15s}.ap__ghost-btn:hover{color:#ffffffa6}.ap__config-hint{font-size:12px;color:#ffffff73;background:#ffffff08;border:1px solid rgba(255,255,255,.07);border-radius:10px;padding:12px 14px;line-height:1.7;margin:0}.ap__config-hint code{font-family:SF Mono,Cascadia Code,monospace;font-size:11px;background:#ffffff14;padding:1px 5px;border-radius:4px}.ap__config-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}@media (max-width: 640px){.ap__config-grid{grid-template-columns:1fr}}.ap__config-row{display:flex;flex-direction:column;gap:5px}.ap__config-label{font-size:11px;color:#ffffff73;text-transform:uppercase;letter-spacing:.04em}.ap__config-input{background:#ffffff0a;border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:8px 12px;color:#f0f0f5;font-size:13px;font-family:SF Mono,Cascadia Code,monospace;outline:none}.ap__config-input::placeholder{color:#fff3;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.ap__config-input:focus{border-color:#007aff66}.ap__config-actions{display:flex;gap:10px;align-items:center}@media (prefers-color-scheme: light){.ap{background:#f5f5f7;color:#1c1c1e}.ap__header{border-bottom-color:#00000014}.ap__tab{color:#0006}.ap__tab--active{color:#1c1c1e;border-bottom-color:#007aff}.ap__search-input,.ap__filter-select,.ap__modal-input,.ap__config-input{background:#fff;border-color:#0000001f;color:#1c1c1e}.ap__table-wrap{border-color:#00000014}.ap__table th{background:#00000005;color:#0006;border-bottom-color:#0000000f}.ap__table td{border-bottom-color:#0000000a}.ap__username{color:#1c1c1e}.ap__modal{background:#fff;border-color:#0000001a}.ap__config-hint{background:#00000005;border-color:#0000000f;color:#00000080}}:root[data-theme=light] .ap{background:#f5f5f7;color:#1c1c1e}.ap__dev-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}.ap__dev-card{display:flex;flex-direction:column;align-items:flex-start;gap:5px;padding:18px 16px;background:#ffffff08;border:1px solid rgba(255,255,255,.08);border-radius:12px;cursor:pointer;transition:all .15s;text-align:left;position:relative}.ap__dev-card:hover:not(.ap__dev-card--disabled){background:#007aff14;border-color:#007aff4d}.ap__dev-card--disabled{opacity:.5;cursor:not-allowed}.ap__dev-card-icon{font-size:24px;margin-bottom:4px}.ap__dev-card-title{font-size:14px;font-weight:600;color:#f0f0f5}.ap__dev-card-sub{font-size:12px;color:#ffffff73;line-height:1.5}.ap__dev-card-soon{position:absolute;top:10px;right:10px;font-size:10px;padding:2px 7px;background:#ff9f0a1f;border:1px solid rgba(255,159,10,.25);border-radius:20px;color:#ffb340}.ap__dev-hint{display:flex;gap:14px;align-items:flex-start;background:#007aff0f;border:1px solid rgba(0,122,255,.18);border-radius:12px;padding:16px}.ap__dev-hint-icon{font-size:28px;flex-shrink:0}.ap__dev-hint-title{font-size:14px;font-weight:600;margin-bottom:4px}.ap__dev-hint-sub{font-size:13px;color:#ffffff8c;line-height:1.6}.ap__dev-hint-sub code{font-family:SF Mono,Cascadia Code,monospace;font-size:12px;background:#ffffff1a;padding:1px 5px;border-radius:4px}.ap__conn-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;text-align:center;color:#ffffff59}@media (max-width: 600px){.ap__header{flex-direction:column;align-items:flex-start;gap:0;padding-bottom:0}.ap__header-left{padding-bottom:10px}.ap__tabs{width:100%;overflow-x:auto;scrollbar-width:none;padding-bottom:0}.ap__tabs::-webkit-scrollbar{display:none}.ap__tab{padding:10px 12px;font-size:12px}.ap__stats-grid{grid-template-columns:repeat(2,1fr)}.ap__toolbar{flex-wrap:wrap}.ap__table th:nth-child(4),.ap__table td:nth-child(4),.ap__table th:nth-child(6),.ap__table td:nth-child(6){display:none}.ap__dev-cards{grid-template-columns:1fr}.ap__body{padding:14px}}@media (min-width: 601px) and (max-width: 900px){.ap__stats-grid{grid-template-columns:repeat(3,1fr)}.ap__config-grid{grid-template-columns:1fr}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;width:100%}body{background:#0a0a12;color:#f0f0f5;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;-webkit-font-smoothing:antialiased;overflow:hidden}#root{display:flex;flex-direction:column}.app-loading{display:flex;align-items:center;justify-content:center;height:100%;background:#0a0a12}.app-spinner{width:36px;height:36px;border:2.5px solid rgba(255,255,255,.08);border-top-color:#007aff;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.login{position:relative;display:flex;align-items:center;justify-content:center;min-height:100%;background:#080810;overflow:hidden}.login__aurora{position:absolute;width:700px;height:320px;border-radius:50%;filter:blur(90px);opacity:.18;pointer-events:none;top:10%;left:50%;transform:translate(-50%);background:linear-gradient(135deg,#00d4ff,#6e40c9,#bf5af2);animation:aurora-drift 10s ease-in-out infinite alternate}.login__aurora--2{width:500px;height:200px;top:auto;bottom:5%;opacity:.12;background:linear-gradient(135deg,#30d158,#007aff);animation-delay:-5s;animation-duration:14s}@keyframes aurora-drift{0%{transform:translate(-50%) translateY(0) scaleX(1)}to{transform:translate(-50%) translateY(-20px) scaleX(1.05)}}.login__card{position:relative;z-index:1;width:380px;max-width:calc(100vw - 32px);background:#101018d9;border:1px solid rgba(255,255,255,.1);border-radius:20px;padding:36px 32px 28px;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);box-shadow:0 24px 80px #00000080,0 0 0 .5px #ffffff0d inset}.login__brand{display:flex;align-items:center;gap:14px;margin-bottom:32px}.login__brand-text{display:flex;flex-direction:column;gap:2px}.login__brand-name{font-size:20px;font-weight:700;letter-spacing:-.02em;background:linear-gradient(90deg,#64d2ff,#bf5af2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.login__brand-sub{font-size:12px;color:#fff6;letter-spacing:.02em}.login__form{display:flex;flex-direction:column;gap:16px}.login__field{display:flex;flex-direction:column;gap:6px}.login__label{font-size:11px;font-weight:500;color:#ffffff73;text-transform:uppercase;letter-spacing:.06em}.login__input{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:10px;padding:11px 14px;color:#f0f0f5;font-size:14px;outline:none;transition:border-color .15s;width:100%}.login__input::placeholder{color:#fff3}.login__input:focus{border-color:#007aff80;background:#ffffff12}.login__error{font-size:13px;color:#ff6961;background:#ff453a14;border:1px solid rgba(255,69,58,.2);border-radius:8px;padding:9px 12px;line-height:1.4}.login__btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:12px;background:linear-gradient(135deg,#007aff,#5e5ce6);border:none;border-radius:10px;color:#fff;font-size:14px;font-weight:600;cursor:pointer;transition:opacity .15s,transform .1s;margin-top:4px;letter-spacing:.01em}.login__btn:hover:not(:disabled){opacity:.88}.login__btn:active:not(:disabled){transform:scale(.98)}.login__btn:disabled{opacity:.45;cursor:not-allowed}.login__btn-spinner{display:inline-block;width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite}.login__footer{margin-top:20px;text-align:center}.login__link{font-size:12px;color:#ffffff4d;text-decoration:none;transition:color .15s}.login__link:hover{color:#fff9}
