*,*: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%;color-scheme:light;background:#f5f5f7;color:#1c1c1e;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,sans-serif;overflow:hidden}.ap--center{align-items:center;justify-content:center;gap:14px}.ap__header{display:flex;align-items:stretch;padding:0 16px;flex-shrink:0;border-bottom:1px solid rgba(0,0,0,.08);background:#fff;gap:0;min-height:50px;box-shadow:0 1px #0000000f}.ap__header-left{display:flex;align-items:center;gap:8px;padding-right:18px;margin-right:8px;border-right:1px solid rgba(0,0,0,.07);flex-shrink:0}.ap__header-right{display:flex;align-items:center;margin-left:auto;flex-shrink:0;padding-left:16px}.ap__icon{font-size:15px}.ap__title{font-size:13px;font-weight:600;color:#1c1c1e;white-space:nowrap;letter-spacing:-.01em}.ap__logout-btn{padding:5px 12px;background:#ff3b3012;border:1px solid rgba(255,59,48,.18);border-radius:7px;color:#c0392b;font-size:12px;cursor:pointer;transition:all .15s;white-space:nowrap}.ap__logout-btn:hover{background:#ff3b301f}.ap__tabs{display:flex;gap:0;flex:1;overflow-x:auto;scrollbar-width:none}.ap__tabs::-webkit-scrollbar{display:none}.ap__tab{padding:0 16px;height:100%;background:none;border:none;border-bottom:2px solid transparent;color:#0006;font-size:13px;cursor:pointer;transition:all .15s;white-space:nowrap;display:flex;align-items:center;gap:5px}.ap__tab:hover{color:#000000b3;background:#00000005}.ap__tab--active{color:#007aff;border-bottom-color:#007aff}.ap__body{flex:1;overflow:hidden;display:flex;flex-direction:column}.ap__section{flex:1;overflow-y:auto;padding:20px 24px;display:flex;flex-direction:column;gap:16px;scrollbar-width:thin;scrollbar-color:rgba(0,0,0,.12) transparent}.ap__section::-webkit-scrollbar{width:6px}.ap__section::-webkit-scrollbar-thumb{background:#0000001f;border-radius:3px}.ap__dev-layout{flex:1;overflow:hidden;display:flex;flex-direction:column}.ap__section-inner-unused{display:flex;flex-direction:column;gap:16px;max-width:1400px}.ap__loading{display:flex;align-items:center;justify-content:center;height:160px}.ap__spinner{width:28px;height:28px;border:2.5px solid rgba(0,0,0,.08);border-top-color:#007aff;border-radius:50%;animation:ap-spin .75s linear infinite}@keyframes ap-spin{to{transform:rotate(360deg)}}.ap__forbidden-icon{font-size:48px}.ap__forbidden-title{font-size:20px;font-weight:600;margin:0;color:#1c1c1e}.ap__forbidden-sub{font-size:14px;color:#6c6c70;margin:0}.ap__toast{position:fixed;top:20px;left:50%;transform:translate(-50%);background:#1c1c1eeb;border-radius:10px;padding:9px 18px;font-size:13px;color:#fff;z-index:9999;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 4px 20px #0000002e;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:flex-start;gap:8px;padding:16px 18px;border-radius:14px;border:1px solid rgba(0,0,0,.07);background:#fff;box-shadow:0 1px 4px #0000000a;position:relative;overflow:hidden}.ap__stat-card:after{content:"";position:absolute;top:0;left:0;width:3px;height:100%;border-radius:0 2px 2px 0}.ap__stat-card--blue:after{background:#007aff}.ap__stat-card--green:after{background:#34c759}.ap__stat-card--purple:after{background:#bf5af2}.ap__stat-card--orange:after{background:#ff9f0a}.ap__stat-card--yellow:after{background:#ffd60a}.ap__stat-icon{font-size:20px}.ap__stat-value{font-size:26px;font-weight:700;letter-spacing:-.03em;font-variant-numeric:tabular-nums;color:#1c1c1e;line-height:1}.ap__stat-label{font-size:12px;color:#6c6c70}.ap__charts-grid{display:grid;grid-template-columns:1fr 1fr 320px;gap:12px}@media (max-width: 1100px){.ap__charts-grid{grid-template-columns:1fr 1fr}.ap__chart-card--narrow{grid-column:1 / -1}}@media (max-width: 700px){.ap__charts-grid{grid-template-columns:1fr}}.ap__chart-card{background:#fff;border:1px solid rgba(0,0,0,.07);border-radius:14px;padding:16px;box-shadow:0 1px 4px #0000000a}.ap__chart-title{font-size:12px;font-weight:500;color:#6c6c70;margin-bottom:10px}.ap__usage-banner{background:#fff;border:1px solid rgba(0,0,0,.07);border-radius:14px;padding:14px 20px;display:flex;align-items:center;gap:20px;box-shadow:0 1px 4px #0000000a;flex-wrap:wrap}.ap__usage-banner-title{font-size:12px;font-weight:600;color:#6c6c70;letter-spacing:.3px;flex-shrink:0}.ap__usage-metrics{display:flex;align-items:center;gap:0;flex:1;flex-wrap:wrap}.ap__usage-metric{display:flex;flex-direction:column;align-items:center;padding:0 20px;gap:2px}.ap__usage-divider{width:1px;height:30px;background:#00000014;flex-shrink:0}.ap__usage-val{font-size:22px;font-weight:700;color:#007aff;font-variant-numeric:tabular-nums;line-height:1}.ap__usage-lbl{font-size:11px;color:#aeaeb2;white-space:nowrap}.ap__gw-bar{display:flex;align-items:center;gap:16px;background:#fff;border:1px solid rgba(0,0,0,.07);border-radius:12px;padding:10px 18px;flex-wrap:wrap;box-shadow:0 1px 4px #0000000a}.ap__gw-title{font-size:12px;font-weight:600;color:#6c6c70;flex-shrink:0}.ap__gw-item{display:flex;align-items:center;gap:6px;font-size:12px}.ap__gw-name{font-weight:500;color:#1c1c1e}.ap__gw-latency{color:#34c759;font-variant-numeric:tabular-nums;font-size:11px}.ap__gw-err{color:#ff3b30;font-size:11px;max-width:160px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ap__balance-row{font-size:12px;border-radius:8px;padding:7px 12px;margin-top:2px}.ap__balance-row--ok{background:#34c75914;color:#1a7a35;border:1px solid rgba(52,199,89,.2)}.ap__balance-row--error{background:#ff3b3012;color:#c0392b;border:1px solid rgba(255,59,48,.18)}.ap__balance-used{font-size:11px;opacity:.7}.ap__toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.ap__search-input{flex:1;min-width:180px;background:#fff;border:1px solid rgba(0,0,0,.12);border-radius:8px;padding:7px 12px;color:#1c1c1e;font-size:13px;outline:none}.ap__search-input::placeholder{color:#aeaeb2}.ap__search-input:focus{border-color:#007aff;box-shadow:0 0 0 3px #007aff1a}.ap__filter-select{background:#fff;border:1px solid rgba(0,0,0,.12);border-radius:8px;padding:7px 10px;color:#1c1c1e;font-size:13px;outline:none;cursor:pointer}.ap__filter-select:focus{border-color:#007aff}.ap__search-btn{padding:7px 16px;background:#007aff;border:none;border-radius:8px;color:#fff;font-size:13px;font-weight:500;cursor:pointer;transition:background .15s;white-space:nowrap}.ap__search-btn:hover{background:#0066d6}.ap__total-badge{font-size:12px;color:#6c6c70;white-space:nowrap;margin-left:4px}.ap__batch-bar{display:flex;align-items:center;gap:10px;background:#007aff0f;border:1px solid rgba(0,122,255,.18);border-radius:10px;padding:10px 14px;font-size:13px;color:#1c1c1e;flex-wrap:wrap}.ap__table-wrap{overflow-x:auto;border-radius:12px;border:1px solid rgba(0,0,0,.07);background:#fff;box-shadow:0 1px 4px #0000000a}.ap__table{width:100%;border-collapse:collapse;font-size:13px}.ap__table th{padding:10px 12px;text-align:left;font-size:11px;font-weight:600;color:#6c6c70;text-transform:uppercase;letter-spacing:.04em;background:#f5f5f7;border-bottom:1px solid rgba(0,0,0,.07);white-space:nowrap}.ap__table td{padding:10px 12px;border-bottom:1px solid rgba(0,0,0,.04);vertical-align:middle}.ap__table tr:last-child td{border-bottom:none}.ap__table tbody tr:hover td{background:#007aff08}.ap__tr--inactive td{opacity:.45}.ap__username{display:block;font-weight:500;color:#1c1c1e}.ap__user-id{display:block;font-size:10px;font-family:SF Mono,monospace;color:#aeaeb2;margin-top:2px}.ap__email{font-size:12px;color:#6c6c70}.ap__date{font-size:12px;font-family:SF Mono,monospace;color:#aeaeb2;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:#bf5af21a;border:1px solid rgba(191,90,242,.25);color:#9b59b6}.ap__role-badge--user{background:#0000000a;border:1px solid rgba(0,0,0,.1);color:#6c6c70}.ap__status-dot{display:inline-block;width:6px;height:6px;border-radius:50%;margin-right:5px;vertical-align:middle}.ap__status-dot--on{background:#34c759;box-shadow:0 0 5px #34c75966}.ap__status-dot--off{background:#d1d1d6}.ap__points-cell{font-variant-numeric:tabular-nums;white-space:nowrap;color:#1c1c1e}.ap__points-edit-btn{background:none;border:none;cursor:pointer;font-size:12px;opacity:.3;margin-left:4px;transition:opacity .15s}.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;font-weight:500}.ap__action-btn--primary{background:#007aff12;border-color:#007aff33;color:#007aff}.ap__action-btn--primary:hover{background:#007aff1f}.ap__action-btn--warn{background:#ff9f0a14;border-color:#ff9f0a40;color:#b8860b}.ap__action-btn--warn:hover{background:#ff9f0a24}.ap__action-btn--danger{background:#ff3b3012;border-color:#ff3b3033;color:#c0392b}.ap__action-btn--danger:hover{background:#ff3b301f}.ap__action-btn--green{background:#34c75914;border-color:#34c75938;color:#1a8a3a}.ap__action-btn--green:hover{background:#34c75924}.ap__action-btn:disabled{opacity:.4;cursor:not-allowed}.ap__primary-btn{padding:9px 18px;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:9px 14px;background:none;border:none;color:#6c6c70;font-size:13px;cursor:pointer;transition:color .15s}.ap__ghost-btn:hover{color:#1c1c1e}.ap__pagination{display:flex;align-items:center;justify-content:center;gap:16px}.ap__page-btn{padding:6px 14px;background:#fff;border:1px solid rgba(0,0,0,.12);border-radius:8px;color:#1c1c1e;font-size:13px;cursor:pointer;transition:all .15s}.ap__page-btn:hover:not(:disabled){background:#f5f5f7;border-color:#007aff;color:#007aff}.ap__page-btn:disabled{opacity:.35;cursor:not-allowed}.ap__page-info{font-size:13px;color:#6c6c70;font-variant-numeric:tabular-nums}.ap__modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000004d;z-index:8888;display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.ap__modal{background:#fff;border:1px solid rgba(0,0,0,.1);border-radius:16px;padding:24px;width:340px;max-width:calc(100vw - 40px);display:flex;flex-direction:column;gap:12px;box-shadow:0 20px 60px #00000026}.ap__modal--wide{max-width:580px;width:100%}.ap__modal-title{font-size:15px;font-weight:600;margin:0;color:#1c1c1e}.ap__modal-label{font-size:11px;color:#6c6c70;text-transform:uppercase;letter-spacing:.04em}.ap__modal-input{width:100%;background:#f5f5f7;border:1px solid rgba(0,0,0,.1);border-radius:8px;padding:9px 12px;color:#1c1c1e;font-size:13px;outline:none;box-sizing:border-box}.ap__modal-input:focus{border-color:#007aff;background:#fff;box-shadow:0 0 0 3px #007aff1a}.ap__modal-actions{display:flex;gap:10px;margin-top:4px}.ap__modal-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:4px}.ap__modal-field{display:flex;flex-direction:column;gap:5px}.ap__supplier-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:14px}.ap__supplier-card{background:#fff;border:1px solid rgba(0,0,0,.08);border-left:4px solid transparent;border-radius:16px;padding:0 20px 20px;display:flex;flex-direction:column;gap:12px;box-shadow:0 1px 4px #0000000a;transition:box-shadow .2s;overflow:hidden}.ap__supplier-card:hover{box-shadow:0 4px 16px #00000014}.ap__supplier-card--error{background:#ff3b3005}.ap__conn-bar{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:600;border-bottom:1px solid rgba(0,0,0,.06);margin:0 -20px;padding:8px 20px}.ap__conn-bar--ok{background:#34c75914;color:#1a7a35}.ap__conn-bar--error{background:#ff3b3012;color:#c0392b}.ap__conn-bar--pending{background:#007aff0f;color:#007aff}.ap__conn-bar--unknown{background:#00000008;color:#aeaeb2}.ap__conn-bar-spinner{width:12px;height:12px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:spin .7s linear infinite;display:inline-block;flex-shrink:0}.ap__conn-bar-time{margin-left:auto;font-size:10px;font-weight:400;opacity:.6}.ap__conn-reason{display:flex;align-items:flex-start;gap:7px;background:#ff3b3012;border:1px solid rgba(255,59,48,.15);border-radius:10px;padding:9px 12px;font-size:12px;line-height:1.5}.ap__conn-reason-icon{flex-shrink:0;font-size:14px}.ap__conn-reason-msg{color:#c0392b;word-break:break-all}.ap__toggle-label{display:flex;align-items:center;gap:6px;font-size:13px;color:#1c1c1e;cursor:pointer;-webkit-user-select:none;user-select:none}.ap__supplier-head{display:flex;align-items:flex-start;gap:12px}.ap__supplier-icon{font-size:26px;flex-shrink:0;line-height:1;margin-top:2px}.ap__supplier-info{flex:1;min-width:0}.ap__supplier-name{font-size:15px;font-weight:600;color:#1c1c1e}.ap__supplier-desc{font-size:12px;color:#6c6c70;line-height:1.5;margin-top:3px}.ap__supplier-meta{display:flex;flex-direction:column;align-items:flex-end;gap:6px;flex-shrink:0}.ap__supplier-badge{font-size:11px;font-weight:600;padding:3px 9px;border-radius:20px;white-space:nowrap}.ap__supplier-status{font-size:11px;display:flex;align-items:center;color:#6c6c70}.ap__supplier-status--on{color:#1a8a3a}.ap__supplier-status--off{color:#aeaeb2}.ap__supplier-tags{display:flex;flex-wrap:wrap;gap:6px}.ap__supplier-tag{font-size:11px;padding:2px 8px;border-radius:20px;border:1px solid;white-space:nowrap}.ap__supplier-actions{display:flex;gap:8px;flex-wrap:wrap}.ap__supplier-form{background:#f5f5f7;border-radius:12px;padding:14px;display:flex;flex-direction:column;gap:10px}.ap__test-result{padding:7px 11px;border-radius:8px;font-size:12px;font-weight:500}.ap__test-result--success{background:#34c7591a;border:1px solid rgba(52,199,89,.25);color:#1a8a3a}.ap__test-result--error{background:#ff3b3014;border:1px solid rgba(255,59,48,.2);color:#c0392b}.ap__config-row{display:flex;flex-direction:column;gap:5px}.ap__config-label{font-size:11px;color:#6c6c70;text-transform:uppercase;letter-spacing:.04em}.ap__config-input{background:#fff;border:1px solid rgba(0,0,0,.1);border-radius:8px;padding:8px 12px;color:#1c1c1e;font-size:13px;font-family:SF Mono,Cascadia Code,monospace;outline:none}.ap__config-input::placeholder{color:#aeaeb2;font-family:-apple-system,sans-serif}.ap__config-input:focus{border-color:#007aff;box-shadow:0 0 0 3px #007aff1a}.ap__sys-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}.ap__sys-item{background:#fff;border:1px solid rgba(0,0,0,.07);border-radius:10px;padding:12px 14px;display:flex;flex-direction:column;gap:4px;box-shadow:0 1px 3px #0000000a}.ap__sys-key{font-size:11px;color:#aeaeb2;text-transform:uppercase;letter-spacing:.04em}.ap__sys-val{font-size:15px;font-weight:600;font-family:SF Mono,Cascadia Code,monospace;color:#007aff}.ap__balance-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}@media (max-width: 900px){.ap__balance-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 500px){.ap__balance-grid{grid-template-columns:1fr}}.ap__balance-card{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid rgba(0,0,0,.07);border-left:4px solid currentColor;border-radius:12px;padding:12px 14px;box-shadow:0 1px 4px #0000000a}.ap__balance-card-icon{font-size:22px;flex-shrink:0}.ap__balance-card-body{display:flex;flex-direction:column;gap:2px;min-width:0}.ap__balance-card-name{font-size:11px;color:#aeaeb2;font-weight:500}.ap__balance-card-val{font-size:18px;font-weight:700;font-variant-numeric:tabular-nums;line-height:1.2}.ap__balance-card-val--dim{color:#c7c7cc;font-size:14px;font-weight:400}.ap__balance-card-val--err{color:#ff3b30;font-size:13px;font-weight:400}.ap__balance-card-val--ok{color:#34c759;font-size:14px}.ap__balance-card-cur{font-size:11px;font-weight:400;color:#aeaeb2}.ap__dev-layout{display:flex;height:100%;gap:0;overflow:hidden}.ap__dev-left{width:260px;min-width:220px;flex-shrink:0;display:flex;flex-direction:column;background:#fff;border-right:1px solid rgba(0,0,0,.08);overflow:hidden}.ap__dev-left-title{font-size:12px;font-weight:700;color:#6c6c70;padding:14px 14px 8px;letter-spacing:.05em;text-transform:uppercase}.ap__dev-meta{display:flex;flex-direction:column;gap:2px;padding:0 14px 8px;font-size:11px;color:#aeaeb2}.ap__dev-meta strong{color:#1c1c1e}.ap__dev-left-tabs{display:flex;padding:0 8px 8px;gap:4px;flex-shrink:0}.ap__dev-left-tab{flex:1;padding:5px 0;border-radius:8px;border:1px solid transparent;background:transparent;font-size:12px;font-weight:500;color:#6c6c70;cursor:pointer;transition:all .12s}.ap__dev-left-tab:hover{background:#f5f5f7}.ap__dev-left-tab--active{background:#007aff;color:#fff;border-color:transparent}.ap__dev-status-err{padding:16px 14px;font-size:12px;color:#ff3b30;line-height:1.5}.ap__dev-file-list,.ap__dev-git-list{flex:1;overflow-y:auto;padding:0 6px 8px}.ap__dev-loading-files{padding:12px;font-size:12px;color:#aeaeb2}.ap__dev-file-item{display:flex;align-items:center;gap:6px;width:100%;padding:6px 8px;border-radius:8px;border:none;background:transparent;text-align:left;cursor:pointer;transition:background .1s;color:#1c1c1e}.ap__dev-file-item:hover{background:#f5f5f7}.ap__dev-file-item--loaded{color:#007aff}.ap__dev-file-item--loading{opacity:.5}.ap__dev-file-icon{font-size:14px;flex-shrink:0}.ap__dev-file-name{flex:1;font-size:12px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ap__dev-file-lines{font-size:10px;color:#aeaeb2;flex-shrink:0;font-variant-numeric:tabular-nums}.ap__dev-git-item{display:flex;flex-direction:column;gap:2px;padding:7px 8px;border-radius:8px;border-bottom:1px solid rgba(0,0,0,.05)}.ap__dev-git-hash{font-size:10px;color:#bf5af2;font-family:SF Mono,monospace}.ap__dev-git-msg{font-size:12px;color:#1c1c1e;line-height:1.35}.ap__dev-git-time{font-size:10px;color:#aeaeb2}.ap__dev-loaded{border-top:1px solid rgba(0,0,0,.07);padding:8px;flex-shrink:0}.ap__dev-loaded-title{font-size:10px;color:#aeaeb2;text-transform:uppercase;padding:0 4px 4px}.ap__dev-loaded-item{display:flex;align-items:center;justify-content:space-between;font-size:11px;color:#007aff;padding:3px 4px}.ap__dev-loaded-item button{background:none;border:none;color:#aeaeb2;cursor:pointer;font-size:10px;padding:2px 4px}.ap__dev-loaded-item button:hover{color:#ff3b30}.ap__dev-right{flex:1;display:flex;flex-direction:column;overflow:hidden;background:#f5f5f7}.ap__dev-chat-header{display:flex;align-items:center;gap:10px;padding:12px 16px 10px;border-bottom:1px solid rgba(0,0,0,.07);background:#fff;flex-shrink:0}.ap__dev-chat-title{font-size:13px;font-weight:700;color:#1c1c1e}.ap__dev-chat-hint{font-size:11px;color:#aeaeb2}.ap__dev-chat-body{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:14px}.ap__dev-msg{display:flex;gap:10px;align-items:flex-start;max-width:100%}.ap__dev-msg--user{flex-direction:row-reverse}.ap__dev-msg-avatar{font-size:18px;flex-shrink:0;width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#fff;border:1px solid rgba(0,0,0,.08);box-shadow:0 1px 3px #0000000f}.ap__dev-msg-content{background:#fff;border:1px solid rgba(0,0,0,.08);border-radius:12px;padding:10px 14px;font-size:13px;line-height:1.6;color:#1c1c1e;max-width:calc(100% - 60px);box-shadow:0 1px 3px #0000000a}.ap__dev-msg--user .ap__dev-msg-content{background:#007aff;color:#fff;border-color:transparent}.ap__dev-typing{animation:blink .8s step-end infinite}@keyframes blink{50%{opacity:0}}.ap__dev-code-block{margin:8px 0;border-radius:8px;overflow:hidden;border:1px solid rgba(0,0,0,.1)}.ap__dev-code-toolbar{display:flex;justify-content:space-between;align-items:center;padding:6px 12px;background:#2d2d2d;font-size:11px;color:#ffffff80}.ap__dev-code-copy{background:#ffffff1f;border:none;border-radius:4px;color:#ffffffb3;font-size:11px;padding:2px 8px;cursor:pointer}.ap__dev-code-copy:hover{background:#fff3}.ap__dev-code-pre{margin:0;padding:12px;background:#1c1c1e;color:#e4e4e4;font-family:SF Mono,Cascadia Code,Fira Code,monospace;font-size:12px;line-height:1.55;overflow-x:auto;white-space:pre}.ap__dev-chat-input-area{display:flex;gap:10px;padding:12px 16px;border-top:1px solid rgba(0,0,0,.07);background:#fff;flex-shrink:0;align-items:flex-end}.ap__dev-chat-input{flex:1;background:#f5f5f7;border:1px solid rgba(0,0,0,.12);border-radius:10px;padding:9px 13px;font-size:13px;color:#1c1c1e;resize:none;line-height:1.5;outline:none;font-family:inherit}.ap__dev-chat-input:focus{border-color:#007aff;box-shadow:0 0 0 3px #007aff1a}.ap__dev-chat-input::placeholder{color:#aeaeb2}.ap__dev-chat-input:disabled{opacity:.6}.ap__dev-send-btn{padding:9px 20px;border-radius:10px;border:none;background:#007aff;color:#fff;font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap;transition:background .15s;flex-shrink:0}.ap__dev-send-btn:disabled{opacity:.5;cursor:not-allowed}.ap__dev-send-btn:not(:disabled):hover{background:#06d}.ap__dev-send-btn--loading{background:#6c6c70}.ap__log-panel{background:#1c1c1e;border:1px solid rgba(0,0,0,.15);border-radius:14px;overflow:hidden}.ap__log-header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-bottom:1px solid rgba(255,255,255,.07);gap:10px;flex-wrap:wrap;background:#2c2c2e}.ap__log-title{font-size:12px;font-weight:500;color:#fff9}.ap__log-filter{font-size:11px;padding:3px 9px;background:#ffffff0f;border:1px solid rgba(255,255,255,.1);border-radius:5px;color:#ffffff73;cursor:pointer;transition:all .15s}.ap__log-filter:hover{background:#ffffff1a;color:#fffc}.ap__log-filter--active{background:#007aff33;border-color:#007aff66;color:#64b5f6}.ap__log-body{height:260px;overflow-y:auto;padding:10px 14px;font-family:SF Mono,Cascadia Code,Consolas,monospace;font-size:12px;line-height:1.65}.ap__log-line{white-space:pre-wrap;word-break:break-all}.ap__conn-templates{background:#fff;border:1px dashed rgba(0,0,0,.12);border-radius:14px;padding:20px;box-shadow:0 1px 3px #0000000a}.ap__conn-templates-title{font-size:12px;font-weight:500;color:#aeaeb2;margin-bottom:14px;text-align:center}.ap__template-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px}.ap__template-card{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:14px;background:#f5f5f7;border:1px solid rgba(0,0,0,.07);border-radius:12px;cursor:pointer;transition:all .15s;text-align:left}.ap__template-card:hover{background:#007aff0d;border-color:#007aff40}.ap__template-icon{font-size:20px}.ap__template-name{font-size:13px;font-weight:500;color:#1c1c1e}.ap__template-meta{font-size:11px;color:#aeaeb2}.ap__empty{text-align:center;color:#aeaeb2;padding:40px 0;font-size:14px}.ap__dev-mode-bar{display:flex;gap:0;background:#fff;border-bottom:1px solid rgba(0,0,0,.08);padding:10px 16px;gap:8px;flex-shrink:0}.ap__dev-mode-btn{display:flex;flex-direction:column;gap:2px;padding:10px 18px;border-radius:12px;border:1px solid rgba(0,0,0,.09);background:transparent;cursor:pointer;text-align:left;transition:all .15s;color:#6c6c70}.ap__dev-mode-btn:hover{background:#f5f5f7;border-color:#00000024}.ap__dev-mode-btn--active{background:#007aff;border-color:#007aff;color:#fff}.ap__dev-mode-label{font-size:13px;font-weight:600}.ap__dev-mode-desc{font-size:11px;opacity:.75;white-space:nowrap}.ap__dev-tree-dir{display:flex;align-items:center;gap:5px;width:100%;padding:5px 8px;border-radius:7px;border:none;background:transparent;text-align:left;cursor:pointer;font-size:12px;font-weight:600;color:#1c1c1e;transition:background .1s}.ap__dev-tree-dir:hover{background:#f0f0f5}.ap__game-preview{flex:1;display:flex;flex-direction:column;background:#1c1c1e;overflow:hidden}.ap__game-preview-bar{display:flex;align-items:center;gap:10px;padding:8px 14px;background:#2d2d2d;font-size:12px;color:#fff9;flex-shrink:0}.ap__game-iframe{flex:1;border:none;width:100%;background:#fff}.ap__game-placeholder{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:#ffffff59;font-size:14px}.ap__progress-panel{background:#fff;border:1px solid rgba(0,0,0,.08);border-radius:10px;overflow:hidden;flex-shrink:0}.ap__progress-bar{display:flex;align-items:center;gap:12px;padding:10px 16px;background:#f9f9fb;border-bottom:1px solid rgba(0,0,0,.06)}.ap__progress-title{font-size:13px;font-weight:600;color:#1c1c1e;flex-shrink:0}.ap__progress-summary{font-size:12px;color:#00000073;flex:1}.ap__progress-btn{padding:4px 12px;background:#007aff14;border:1px solid rgba(0,122,255,.2);border-radius:6px;color:#007aff;font-size:12px;cursor:pointer;flex-shrink:0}.ap__progress-btn:disabled{opacity:.5;cursor:not-allowed}.ap__progress-detail{padding:12px 16px;display:flex;flex-direction:column;gap:12px}.ap__progress-section{display:flex;flex-direction:column;gap:6px}.ap__progress-section-title{font-size:11px;font-weight:600;color:#0006;text-transform:uppercase;letter-spacing:.06em}.ap__progress-modules{display:flex;flex-wrap:wrap;gap:8px}.ap__progress-module{font-size:12px;font-weight:500;background:#0000000a;padding:3px 8px;border-radius:5px}.ap__progress-commit{display:flex;align-items:center;gap:8px;font-size:12px;padding:3px 0}.ap__progress-hash{font-family:monospace;color:#007aff;flex-shrink:0;font-size:11px}.ap__progress-msg{color:#1c1c1e;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ap__progress-time{color:#00000059;flex-shrink:0;font-size:11px}.ap__progress-steps{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:4px}.ap__progress-step{font-size:12px;color:#000000a6;line-height:1.5}@media (max-width: 640px){.ap__header{flex-wrap:wrap;padding:0 12px;min-height:unset;position:relative}.ap__header-left{padding:8px 0;border-right:none;flex-shrink:0;gap:6px}.ap__icon{font-size:14px}.ap__title{font-size:12px}.ap__header-right{margin-left:auto;padding-left:10px}.ap__logout-btn{padding:4px 10px;font-size:11px}.ap__tabs{width:100%;order:3;border-top:1px solid rgba(0,0,0,.06);overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.ap__tabs::-webkit-scrollbar{display:none}.ap__tab{padding:0 14px;height:38px;font-size:12px;gap:3px;flex-shrink:0}.ap__section{padding:12px;gap:12px}.ap__stats-grid{grid-template-columns:repeat(2,1fr);gap:8px}.ap__stat-card{padding:14px 10px}.ap__stat-value{font-size:22px}.ap__stat-label{font-size:10px}.ap__usage-banner{padding:12px}.ap__usage-metrics{gap:0;flex-wrap:wrap}.ap__usage-metric{width:50%;padding:8px 10px}.ap__usage-divider{display:none}.ap__usage-val{font-size:18px}.ap__usage-lbl{font-size:10px}.ap__gw-bar{flex-direction:column;gap:6px;padding:10px 12px}.ap__gw-item{width:100%}.ap__balance-grid{grid-template-columns:repeat(2,1fr);gap:8px}.ap__balance-card{padding:10px;flex-direction:column;gap:6px}.ap__balance-card-icon{font-size:18px}.ap__balance-card-name,.ap__balance-card-val{font-size:11px}.ap__charts-grid{grid-template-columns:1fr}.ap__chart-card{min-height:220px}.ap__table th:nth-child(3),.ap__table td:nth-child(3){display:none}.ap__table th:nth-child(6),.ap__table td:nth-child(6){display:none}.ap__table th:nth-child(7),.ap__table td:nth-child(7){display:none}.ap__table,.ap__username{font-size:12px}.ap__user-id{display:none}.ap__email{font-size:11px}.ap__toolbar{flex-wrap:wrap;gap:6px}.ap__search-input{width:100%}.ap__batch-bar{flex-wrap:wrap;font-size:12px;gap:6px}.ap__supplier-grid{grid-template-columns:1fr}.ap__supplier-head{gap:10px}.ap__supplier-body{grid-template-columns:1fr}.ap__dev-mode-bar{flex-direction:column;gap:4px;padding:8px 10px}.ap__dev-mode-btn{flex-direction:row;gap:8px;min-height:42px}.ap__dev-mode-desc{display:none}.ap__dev-left{width:100%!important;max-height:220px;border-right:none;border-bottom:1px solid rgba(0,0,0,.08);flex-shrink:0}.ap__dev-right{flex:1;min-height:0}.ap__dev-file-list{max-height:140px}.ap__dev-chat-input{font-size:14px}.ap__game-preview,.ap__game-iframe{min-height:240px}.ap__modal-grid{grid-template-columns:1fr}.ap__toast{left:12px;right:12px;transform:none;bottom:16px;text-align:center}}@media (max-width: 480px){.ap__tab{font-size:0;gap:0;padding:0 16px}.ap__tab>:first-child{font-size:18px}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;width:100%}body{background:#f5f5f7;color:#1c1c1e;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:#f5f5f7}.app-spinner{width:36px;height:36px;border:2.5px solid rgba(0,0,0,.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:linear-gradient(150deg,#eef3ff,#f5f5f7,#f0f4ff);overflow:hidden}.login__aurora{position:absolute;width:600px;height:280px;border-radius:50%;filter:blur(80px);opacity:.22;pointer-events:none;top:8%;left:50%;transform:translate(-50%);background:linear-gradient(135deg,#91d4ff,#c4a8ff,#f0a8ff);animation:aurora-drift 10s ease-in-out infinite alternate}.login__aurora--2{width:420px;height:180px;top:auto;bottom:8%;opacity:.16;background:linear-gradient(135deg,#a8f0ce,#a8d4ff);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:#ffffffeb;border:1px solid rgba(0,0,0,.08);border-radius:20px;padding:36px 32px 28px;-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);box-shadow:0 8px 40px #0000001a,0 2px 8px #0000000f}.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,#007aff,#5856d6);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.login__brand-sub{font-size:12px;color:#0006;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:600;color:#00000073;text-transform:uppercase;letter-spacing:.06em}.login__input{background:#0000000a;border:1px solid rgba(0,0,0,.1);border-radius:10px;padding:11px 14px;color:#1c1c1e;font-size:14px;outline:none;transition:border-color .15s,background .15s;width:100%}.login__input::placeholder{color:#00000047}.login__input:focus{border-color:#007aff73;background:#007aff08}.login__error{font-size:13px;color:#d70015;background:#d700150f;border:1px solid rgba(215,0,21,.15);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,#5856d6);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;box-shadow:0 4px 14px #007aff47}.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:#00000059;text-decoration:none;transition:color .15s}.login__link:hover{color:#000000a6}
