*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;font-size:16px}body{color:#e0e0e0;background:#0d0d1a;justify-content:center;align-items:center;min-height:100vh;padding:20px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Helvetica Neue,Arial,sans-serif;display:flex;overflow-x:hidden}.bg-gradient{z-index:0;background:radial-gradient(80% 60% at 20% 10%,#6366f173 0%,#0000 60%),radial-gradient(60% 50% at 80% 90%,#a855f759 0%,#0000 60%),radial-gradient(50% 50%,#3b82f633 0%,#0000 70%),linear-gradient(160deg,#0d0d1a 0%,#13132b 40%,#0f1025 100%);animation:12s ease-in-out infinite alternate bgShift;position:fixed;inset:0}@keyframes bgShift{0%{opacity:.85;filter:hue-rotate()}50%{opacity:1}to{opacity:.85;filter:hue-rotate(15deg)}}.orb{filter:blur(80px);z-index:0;pointer-events:none;border-radius:50%;position:fixed}.orb-1{background:#6366f12e;width:420px;height:420px;animation:18s ease-in-out infinite orbFloat1;top:-120px;left:-100px}.orb-2{background:#a855f729;width:320px;height:320px;animation:20s ease-in-out infinite orbFloat2;bottom:-80px;right:-80px}.orb-3{background:#3b82f621;width:200px;height:200px;animation:15s ease-in-out infinite orbFloat3;top:50%;left:60%}.orb-4{background:#ec48991a;width:160px;height:160px;animation:22s ease-in-out infinite orbFloat4;top:30%;left:10%}@keyframes orbFloat1{0%,to{transform:translate(0)scale(1)}33%{transform:translate(60px,50px)scale(1.1)}66%{transform:translate(-30px,-30px)scale(.9)}}@keyframes orbFloat2{0%,to{transform:translate(0)scale(1)}33%{transform:translate(-50px,-40px)scale(1.15)}66%{transform:translate(40px,30px)scale(.85)}}@keyframes orbFloat3{0%,to{transform:translate(0)scale(1)}50%{transform:translate(-40px,-50px)scale(1.2)}}@keyframes orbFloat4{0%,to{transform:translate(0)scale(1)}50%{transform:translate(30px,-40px)scale(1.25)}}.card{z-index:1;-webkit-backdrop-filter:blur(40px);background:#ffffff0a;border:1px solid #ffffff14;border-radius:28px;width:100%;max-width:420px;animation:.7s cubic-bezier(.22,.61,.36,1) cardIn;position:relative;overflow:hidden;box-shadow:0 8px 32px #0006,inset 0 0 0 1px #ffffff0a,inset 0 1px #ffffff0f}@keyframes cardIn{0%{opacity:0;transform:translateY(40px)scale(.94)}to{opacity:1;transform:translateY(0)scale(1)}}.card-wide{max-width:560px}.card-header{text-align:center;padding:40px 28px 24px}.brand-icon{margin-bottom:14px;animation:3s ease-in-out infinite iconPulse}@keyframes iconPulse{0%,to{transform:scale(1)}50%{transform:scale(1.06)}}.card-header h1{color:#f0f0f0;letter-spacing:.5px;margin-bottom:6px;font-size:1.55rem;font-weight:700}.card-header p{color:#b4b4c8cc;font-size:.88rem;font-weight:400}.card-body{padding:0 28px 28px}.tab-switch{background:#ffffff0d;border:1px solid #ffffff0f;border-radius:30px;margin-bottom:24px;padding:4px;display:flex;position:relative}.tab-slider{background:linear-gradient(135deg,#6366f1,#8b5cf6);border-radius:28px;width:calc(50% - 4px);height:calc(100% - 8px);transition:transform .35s cubic-bezier(.4,0,.2,1);position:absolute;top:4px;left:4px;box-shadow:0 4px 15px #6366f159}.tab-slider.right{transform:translate(100%)}.tab-btn{z-index:1;color:#c8c8dcb3;cursor:pointer;letter-spacing:.5px;background:0 0;border:none;border-radius:28px;flex:1;padding:11px 0;font-size:.95rem;font-weight:600;transition:color .3s;position:relative}.tab-btn.active{color:#fff}.form-panel{animation:.35s panelFade;display:none}.form-panel.active{display:block}@keyframes panelFade{0%{opacity:0;filter:blur(2px);transform:translateY(8px)}to{opacity:1;filter:blur();transform:translateY(0)}}.field{background:#ffffff08;border:1px solid #ffffff0f;border-radius:14px;align-items:center;margin-bottom:20px;transition:border-color .3s,background .3s;display:flex;position:relative}.field:focus-within{background:#ffffff0d;border-color:#6366f180}.field-icon{color:#a0a0be99;flex-shrink:0;justify-content:center;align-items:center;width:44px;transition:color .3s;display:flex}.field:focus-within .field-icon{color:#818cf8}.field input{color:#e8e8f0;background:0 0;border:none;outline:none;flex:1;height:50px;padding:0 8px 0 0;font-size:.95rem}.field input::placeholder{color:#8c8caa73}.field input:-webkit-autofill{-webkit-text-fill-color:#e8e8f0;transition:background-color 5000s ease-in-out;-webkit-box-shadow:inset 0 0 0 1000px #1a1a2e}.field input:-webkit-autofill:hover{-webkit-text-fill-color:#e8e8f0;transition:background-color 5000s ease-in-out;-webkit-box-shadow:inset 0 0 0 1000px #1a1a2e}.field input:-webkit-autofill:focus{-webkit-text-fill-color:#e8e8f0;transition:background-color 5000s ease-in-out;-webkit-box-shadow:inset 0 0 0 1000px #1a1a2e}.field-line{display:none}.field-eye{cursor:pointer;color:#a0a0be80;background:0 0;border:none;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;margin-right:4px;transition:color .2s,background .2s;display:flex}.field-eye:hover{color:#a5b4fc;background:#ffffff0a}.strength-meter{align-items:center;gap:10px;margin-top:-6px;margin-bottom:18px;padding:0 2px;display:flex}.strength-bars{flex:1;gap:4px;display:flex}.strength-seg{background:#ffffff12;border-radius:4px;flex:1;height:4px;transition:background .3s}.strength-seg.s1{background:#ef4444}.strength-seg.s2{background:#f59e0b}.strength-seg.s3{background:#22c55e}.strength-seg.s4{background:#6366f1}.strength-label{white-space:nowrap;color:#a0a0b480;font-size:.73rem;transition:color .3s}.strength-label.l1{color:#ef4444}.strength-label.l2{color:#f59e0b}.strength-label.l3{color:#22c55e}.strength-label.l4{color:#818cf8}.form-msg{border-radius:10px;margin-bottom:16px;padding:10px 14px;font-size:.83rem;line-height:1.5;display:none}.form-msg.info{color:#93c5fd;background:#3b82f61a;border:1px solid #3b82f633;display:block}.form-msg.error{color:#fca5a5;background:#ef44441a;border:1px solid #ef444433;display:block}.form-msg.success{color:#86efac;background:#22c55e1a;border:1px solid #22c55e33;display:block}.btn-glow{color:#fff;cursor:pointer;letter-spacing:3px;background:linear-gradient(135deg,#6366f1,#8b5cf6);border:none;border-radius:14px;width:100%;height:50px;font-size:1rem;font-weight:700;transition:box-shadow .3s,transform .15s;position:relative;overflow:hidden;box-shadow:0 4px 20px #6366f159}.btn-glow:hover{box-shadow:0 6px 30px #6366f180}.btn-glow:active{transform:scale(.97)}.btn-glow:disabled{opacity:.55;cursor:not-allowed;transform:none}.btn-glow .btn-spinner svg{animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.btn-glow:before{content:"";background:linear-gradient(90deg,#0000,#ffffff1f,#0000);width:100%;height:100%;transition:left .5s;position:absolute;top:0;left:-100%}.btn-glow:hover:before{left:100%}.card-footer{text-align:center;color:#a0a0b466;padding:0 28px 24px;font-size:.73rem}.welcome-view{text-align:center;padding:10px 0 6px}.welcome-avatar{color:#fff;background:linear-gradient(135deg,#22c55e,#6366f1);border-radius:50%;justify-content:center;align-items:center;width:76px;height:76px;margin-bottom:18px;font-size:1.8rem;font-weight:700;display:inline-flex;box-shadow:0 6px 24px #22c55e40}.welcome-greeting{color:#a0a0c0;margin-bottom:4px;font-size:1.2rem;font-weight:600}.welcome-name{color:#f0f0f0;margin-bottom:10px;font-size:1.5rem;font-weight:700}.welcome-desc{color:#a0a0be99;margin-bottom:26px;font-size:.82rem}.btn-logout{color:#fca5a5;cursor:pointer;background:#ef444414;border:1px solid #ef44444d;border-radius:12px;align-items:center;gap:8px;padding:11px 32px;font-size:.9rem;font-weight:600;transition:all .25s;display:inline-flex}.btn-logout:hover{color:#f87171;background:#ef44442e;border-color:#ef444480;box-shadow:0 4px 16px #ef444426}@media (width<=460px){body{align-items:flex-start;padding:0}.card{background:#ffffff05;border-radius:0;max-width:100%;min-height:100vh}.card-header{padding-top:56px}.orb{display:none}.strength-meter{flex-direction:column;align-items:flex-start;gap:6px}.btn-logout{justify-content:center;width:100%}}.dashboard-body{align-items:flex-start;min-height:100vh;padding:32px 20px}.dash-wrap{z-index:1;width:100%;max-width:820px;margin:0 auto;animation:.7s cubic-bezier(.22,.61,.36,1) cardIn;position:relative}.dash-header{-webkit-backdrop-filter:blur(40px);background:#ffffff0a;border:1px solid #ffffff14;border-radius:20px;justify-content:space-between;align-items:center;margin-bottom:24px;padding:18px 24px;display:flex;box-shadow:0 8px 32px #0006}.dash-header-left{align-items:center;gap:16px;display:flex}.dash-avatar{color:#fff;background:linear-gradient(135deg,#6366f1,#8b5cf6);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:52px;height:52px;font-size:1.3rem;font-weight:700;display:flex;overflow:hidden;box-shadow:0 4px 16px #6366f14d}.dash-avatar-img{object-fit:cover;border-radius:50%;width:100%;height:100%}.dash-greeting{color:#c0c0d0;font-size:1.1rem}.dash-greeting strong{color:#f0f0f0}.dash-username{color:#a0a0be99;margin-top:2px;font-size:.82rem}.dash-logout{color:#fca5a5;cursor:pointer;background:#ef44440f;border:1px solid #ef444440;border-radius:10px;flex-shrink:0;align-items:center;gap:6px;padding:9px 18px;font-size:.85rem;font-weight:600;transition:all .25s;display:inline-flex}.dash-logout:hover{color:#f87171;background:#ef444429;border-color:#ef444473}.dash-loading{text-align:center;color:#a0a0be99;padding:60px 0}.dash-spinner{border:3px solid #ffffff0f;border-top-color:#818cf8;border-radius:50%;width:40px;height:40px;margin:0 auto 16px;animation:.8s linear infinite dashSpin}@keyframes dashSpin{to{transform:rotate(360deg)}}.dash-loading p{font-size:.9rem}.dash-error{text-align:center;color:#fca5a5;padding:60px 0}.dash-error p{margin-bottom:20px;font-size:.95rem}.dash-retry{color:#a5b4fc;cursor:pointer;background:#6366f11a;border:1px solid #6366f14d;border-radius:10px;padding:10px 32px;font-size:.9rem;font-weight:600;transition:all .25s}.dash-retry:hover{background:#6366f133;border-color:#6366f180}.dash-grid{grid-template-columns:1fr 1fr;gap:20px;display:grid}.dash-card{-webkit-backdrop-filter:blur(40px);background:#ffffff0a;border:1px solid #ffffff14;border-radius:20px;transition:border-color .3s;overflow:hidden;box-shadow:0 8px 32px #0006}.dash-card:hover{border-color:#6366f140}.dash-card-clickable{cursor:pointer;transition:border-color .3s,transform .2s,box-shadow .3s}.dash-card-clickable:hover{border-color:#6366f166;transform:translateY(-2px);box-shadow:0 12px 40px #00000080}.dash-card-arrow{color:#a0a0be66;margin-left:auto;transition:color .25s,transform .25s}.dash-card-clickable:hover .dash-card-arrow{color:#a5b4fc;transform:translate(3px)}.dash-card-header{color:#c0c0d0;border-bottom:1px solid #ffffff0a;align-items:center;gap:8px;padding:16px 20px 12px;font-size:.95rem;font-weight:600;display:flex}.dash-card-header svg{color:#818cf8;flex-shrink:0}.dash-card-body{padding:12px 20px 16px}.dash-field{border-bottom:1px solid #ffffff08;justify-content:space-between;align-items:center;gap:12px;padding:8px 0;display:flex}.dash-field:last-child{border-bottom:none}.dash-label{color:#a0a0be8c;flex-shrink:0;font-size:.82rem}.dash-value{color:#e0e0e8;text-align:right;word-break:break-all;font-size:.88rem}.dash-badge{border-radius:20px;padding:2px 10px;font-size:.78rem;font-weight:600;display:inline-block}.dash-badge.on{color:#4ade80;background:#22c55e26;border:1px solid #22c55e40}.dash-badge.off{color:#a0a0be99;background:#a0a0be14;border:1px solid #a0a0be1f}.dash-footer{text-align:center;color:#a0a0b459;padding:24px 0 8px;font-size:.73rem}@media (width<=640px){.dash-grid{grid-template-columns:1fr}.dashboard-body{padding:16px 12px}.dash-header{padding:14px 16px}.dash-logout span{display:none}}.btn-edit-card{color:#a5b4fc;cursor:pointer;background:#6366f114;border:1px solid #6366f140;border-radius:8px;flex-shrink:0;margin-left:auto;padding:4px 14px;font-size:.78rem;font-weight:600;line-height:1.6;transition:all .25s}.btn-edit-card:hover{color:#c7d2fe;background:#6366f12e;border-color:#6366f173}.edit-overlay{z-index:9999;-webkit-backdrop-filter:blur(6px);background:#0009;justify-content:center;align-items:center;padding:20px;animation:.25s overlayIn;display:flex;position:fixed;inset:0}@keyframes overlayIn{0%{opacity:0}to{opacity:1}}.edit-modal{-webkit-backdrop-filter:blur(40px);background:#1e1e32f2;border:1px solid #ffffff1a;border-radius:20px;flex-direction:column;width:100%;max-width:480px;max-height:80vh;animation:.3s cubic-bezier(.22,.61,.36,1) modalIn;display:flex;box-shadow:0 16px 48px #0009}@keyframes modalIn{0%{opacity:0;transform:translateY(30px)scale(.95)}to{opacity:1;transform:translateY(0)scale(1)}}.edit-modal-header{color:#e8e8f0;border-bottom:1px solid #ffffff0f;justify-content:space-between;align-items:center;padding:20px 24px 12px;font-size:1.05rem;font-weight:700;display:flex}.edit-modal-close{color:#a0a0be80;cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:1.5rem;line-height:1;transition:color .2s}.edit-modal-close:hover{color:#fca5a5}.edit-modal-body{flex:1;padding:16px 24px 8px;overflow-y:auto}.edit-field{margin-bottom:16px}.edit-field label{color:#a0a0be99;margin-bottom:6px;font-size:.8rem;font-weight:500;display:block}.edit-field input,.edit-field select{color:#e0e0e8;background:#ffffff0a;border:1px solid #ffffff14;border-radius:10px;outline:none;width:100%;height:42px;padding:0 14px;font-size:.9rem;transition:border-color .25s,background .25s}.edit-field input:focus,.edit-field select:focus{background:#ffffff12;border-color:#6366f180}.edit-field input::placeholder{color:#8c8caa66}.edit-field select{appearance:none;cursor:pointer}.edit-field select option{color:#e0e0e8;background:#1e1e32}.edit-array-field{margin-bottom:16px}.edit-array-field>label{color:#a0a0be99;margin-bottom:6px;font-size:.8rem;font-weight:500;display:block}.edit-array-row{gap:8px;margin-bottom:6px;display:flex}.edit-array-row input{color:#e0e0e8;background:#ffffff0a;border:1px solid #ffffff14;border-radius:8px;outline:none;flex:1;height:38px;padding:0 12px;font-size:.88rem;transition:border-color .25s}.edit-array-row input:focus{border-color:#6366f180}.edit-array-row input::placeholder{color:#8c8caa59}.btn-array-remove{color:#fca5a5;cursor:pointer;background:#ef44440f;border:1px solid #ef444433;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;font-size:1.1rem;transition:all .2s;display:flex}.btn-array-remove:hover{background:#ef444429;border-color:#ef444466}.btn-array-add{color:#818cf8;cursor:pointer;background:0 0;border:1px dashed #6366f14d;border-radius:8px;align-items:center;gap:4px;padding:6px 14px;font-size:.8rem;transition:all .2s;display:inline-flex}.btn-array-add:hover{background:#6366f114;border-color:#6366f180}.edit-map-field{margin-bottom:16px}.edit-map-field>label{color:#a0a0be99;margin-bottom:6px;font-size:.8rem;font-weight:500;display:block}.edit-map-row{align-items:center;gap:6px;margin-bottom:6px;display:flex}.edit-map-row input:first-child{color:#e0e0e8;background:#ffffff0a;border:1px solid #ffffff14;border-radius:8px;outline:none;width:35%;height:36px;padding:0 10px;font-size:.82rem;transition:border-color .25s}.edit-map-row input:last-child{color:#e0e0e8;background:#ffffff0a;border:1px solid #ffffff14;border-radius:8px;outline:none;flex:1;height:36px;padding:0 10px;font-size:.82rem;transition:border-color .25s}.edit-map-row input:focus{border-color:#6366f180}.edit-map-row input::placeholder{color:#8c8caa59}.edit-modal-footer{justify-content:flex-end;gap:12px;padding:12px 24px 20px;display:flex}.edit-btn{cursor:pointer;border-radius:10px;padding:10px 28px;font-size:.9rem;font-weight:600;transition:all .25s}.edit-btn-cancel{color:#a0a0beb3;background:0 0;border:1px solid #ffffff1a}.edit-btn-cancel:hover{color:#e0e0e8;background:#ffffff0d}.edit-btn-save{color:#fff;background:linear-gradient(135deg,#6366f1,#8b5cf6);border:none;box-shadow:0 4px 16px #6366f14d}.edit-btn-save:hover{transform:translateY(-1px);box-shadow:0 6px 24px #6366f173}.edit-btn-save:disabled{opacity:.5;cursor:not-allowed;transform:none}@media (width<=520px){.edit-modal{border-radius:16px;max-height:90vh}.edit-modal-body{padding:12px 16px 4px}.edit-modal-header{padding:16px 16px 10px}.edit-modal-footer{padding:10px 16px 16px}}.fa2-qr-wrap{background:#fff;border-radius:12px;margin-bottom:12px;padding:12px;display:inline-block;box-shadow:0 4px 16px #0000004d}.fa2-qr-wrap img{width:160px;height:160px;image-rendering:pixelated;display:block}.fa2-secret-wrap{text-align:center;margin-bottom:16px}.fa2-secret-label{color:#a0a0be80;text-transform:uppercase;letter-spacing:1px;margin-bottom:4px;font-size:.75rem;display:block}.fa2-secret-value{color:#c0c0d0;letter-spacing:1.5px;-webkit-user-select:all;user-select:all;background:#ffffff0a;border:1px solid #ffffff14;border-radius:8px;padding:6px 16px;font-size:.85rem;display:inline-block}.fa2-verify-wrap{text-align:center;margin-bottom:4px}.fa2-code-input{letter-spacing:6px;text-align:center;color:#e0e0e8;background:#ffffff0a;border:1px solid #ffffff1a;border-radius:10px;outline:none;width:180px;height:46px;padding:0 12px;font-size:1.3rem;font-weight:700;transition:border-color .25s}.fa2-code-input:focus{border-color:#6366f180}.fa2-code-input::placeholder{color:#8c8caa4d;letter-spacing:3px;font-weight:400}.fa2-verify-msg{min-height:28px;padding:6px 0;font-size:.8rem;transition:color .25s}.fa2-verify-msg.error{color:#f87171}.fa2-verify-msg.success{color:#4ade80}.dash-2fa-test-row{align-items:center;gap:8px;margin-top:4px;display:flex}.dash-2fa-test-input{color:#e0e0e8;letter-spacing:4px;text-align:center;background:#ffffff0a;border:1px solid #ffffff14;border-radius:8px;outline:none;flex:1;height:38px;padding:0 12px;font-size:1rem;transition:border-color .25s}.dash-2fa-test-input:focus{border-color:#6366f180}.dash-2fa-test-input::placeholder{color:#8c8caa59;letter-spacing:1px;font-size:.82rem}.btn-2fa-test{color:#a5b4fc;cursor:pointer;background:#6366f114;border:1px solid #6366f140;border-radius:8px;flex-shrink:0;height:38px;padding:0 18px;font-size:.82rem;font-weight:600;transition:all .25s}.btn-2fa-test:hover{background:#6366f12e;border-color:#6366f173}.dash-2fa-test-result{min-height:24px;padding:4px 0 0;font-size:.78rem;transition:color .25s}.dash-2fa-test-result.ok{color:#4ade80}.dash-2fa-test-result.fail{color:#f87171}.dash-2fa-inline-qr{text-align:center;padding:8px 0 4px}.dash-2fa-inline-qr img{background:#fff;border-radius:10px;width:120px;height:120px;padding:8px;display:inline-block;box-shadow:0 2px 12px #0000004d}.ml-status-bar{-webkit-backdrop-filter:blur(40px);background:#ffffff0a;border:1px solid #ffffff14;border-radius:20px;margin-bottom:24px;padding:20px 24px;box-shadow:0 8px 32px #0006}.ml-status-row{justify-content:space-between;align-items:center;padding:6px 0;display:flex}.ml-status-row+.ml-status-row{border-top:1px solid #ffffff0a;margin-top:6px;padding-top:12px}.ml-status-label{color:#a0a0be99;font-size:.85rem;font-weight:500}.ml-status-value{color:#c0c0d0;font-size:.88rem;font-weight:600}.ml-indicator{align-items:center;gap:8px;font-size:.85rem;font-weight:600;display:inline-flex}.ml-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px;transition:background .3s,box-shadow .3s}.ml-indicator.disconnected .ml-dot{background:#6b7280;box-shadow:0 0 6px #6b728066}.ml-indicator.disconnected{color:#9ca3af}.ml-indicator.connected .ml-dot{background:#22c55e;animation:2s ease-in-out infinite mlPulse;box-shadow:0 0 10px #22c55e99}.ml-indicator.connected{color:#4ade80}@keyframes mlPulse{0%,to{box-shadow:0 0 6px #22c55e66}50%{box-shadow:0 0 16px #22c55ecc}}.ml-section{-webkit-backdrop-filter:blur(40px);background:#ffffff0a;border:1px solid #ffffff14;border-radius:20px;margin-bottom:24px;padding:20px 24px;box-shadow:0 8px 32px #0006}.ml-section-title{color:#c0c0d0;justify-content:space-between;align-items:center;margin-bottom:16px;font-size:.95rem;font-weight:700;display:flex}.ml-field{margin-bottom:16px}.ml-field label{color:#a0a0be99;margin-bottom:6px;font-size:.8rem;font-weight:500;display:block}.ml-field input{color:#e0e0e8;background:#ffffff0a;border:1px solid #ffffff14;border-radius:12px;outline:none;width:100%;height:46px;padding:0 14px;font-size:.9rem;transition:border-color .25s,background .25s}.ml-field input:focus{background:#ffffff12;border-color:#6366f180}.ml-field input::placeholder{color:#8c8caa66}.ml-btn{margin-top:4px}.ml-btn-secondary{background:linear-gradient(135deg,#3b82f6,#6366f1)!important;box-shadow:0 4px 20px #3b82f64d!important}.ml-btn-secondary:hover{box-shadow:0 6px 28px #3b82f673!important}.ml-clear-btn{color:#a0a0be99;cursor:pointer;background:#ffffff0a;border:1px solid #ffffff14;border-radius:8px;padding:3px 12px;font-size:.75rem;transition:all .25s}.ml-clear-btn:hover{color:#c0c0d0;background:#ffffff14}.ml-log{background:#00000040;border-radius:12px;max-height:280px;padding:12px;font-family:Cascadia Code,Fira Code,Consolas,monospace;font-size:.78rem;line-height:1.7;overflow-y:auto}.ml-log::-webkit-scrollbar{width:5px}.ml-log::-webkit-scrollbar-track{background:0 0}.ml-log::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:4px}.ml-log-empty{color:#8c8caa59;text-align:center;padding:20px 0;font-size:.82rem}.ml-log-line{border-bottom:1px solid #ffffff05;align-items:flex-start;gap:8px;padding:3px 0;display:flex}.ml-log-line:last-child{border-bottom:none}.ml-log-time{color:#8c8caa73;flex-shrink:0;font-size:.72rem}.ml-log-arrow{flex-shrink:0;font-size:.7rem}.ml-log-content{word-break:break-all;white-space:pre-wrap}.ml-log-send .ml-log-arrow{color:#60a5fa}.ml-log-send .ml-log-content{color:#93c5fd}.ml-log-recv .ml-log-arrow{color:#4ade80}.ml-log-recv .ml-log-content{color:#86efac}.ml-log-info .ml-log-arrow{color:#a0a0be80}.ml-log-info .ml-log-content{color:#a0a0beb3}.ml-log-error .ml-log-arrow{color:#f87171}.ml-log-error .ml-log-content{color:#fca5a5}.oauth2-loading{text-align:center;color:#a0a0be99;padding:60px 0}.oauth2-loading .dash-spinner{margin:0 auto 16px}.oauth2-loading p{font-size:.9rem}.oauth2-scopes{margin:0 0 28px}.oauth2-scope-item{background:#ffffff08;border:1px solid #ffffff0f;border-radius:12px;align-items:center;gap:12px;margin-bottom:10px;padding:12px 16px;transition:border-color .25s,background .25s;display:flex}.oauth2-scope-item:hover{background:#ffffff0d;border-color:#6366f133}.oauth2-scope-check{color:#4ade80;background:#22c55e26;border:1px solid #22c55e4d;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;display:flex}.oauth2-scope-label{color:#d0d0e0;font-size:.92rem;font-weight:500}.oauth2-empty{text-align:center;color:#a0a0be80;padding:16px 0;font-size:.88rem}.oauth2-actions{gap:12px;display:flex}.oauth2-btn{cursor:pointer;letter-spacing:2px;border:none;border-radius:12px;flex:1;justify-content:center;align-items:center;height:48px;font-size:.95rem;font-weight:700;transition:box-shadow .3s,transform .15s,background .25s;display:flex}.oauth2-btn:active{transform:scale(.97)}.oauth2-btn:disabled{opacity:.55;cursor:not-allowed;transform:none}.oauth2-btn .btn-spinner svg{animation:.8s linear infinite spin}.oauth2-btn-allow{color:#fff;background:linear-gradient(135deg,#6366f1,#8b5cf6);box-shadow:0 4px 20px #6366f159}.oauth2-btn-allow:hover:not(:disabled){box-shadow:0 6px 30px #6366f180}.oauth2-btn-deny{color:#c8c8dccc;background:#ffffff0f;border:1px solid #ffffff1a}.oauth2-btn-deny:hover:not(:disabled){color:#e0e0e8;background:#ffffff1a;border-color:#ffffff2e}@media (width<=460px){.oauth2-actions{flex-direction:column-reverse}.oauth2-btn{width:100%}}.dash-back{color:#b4b4c8b3;background:#ffffff0a;border:1px solid #ffffff14;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;text-decoration:none;transition:all .25s;display:flex}.dash-back:hover{color:#a5b4fc;background:#ffffff14;border-color:#6366f14d}.wa-btn{cursor:pointer;border:none;border-radius:10px;align-items:center;gap:6px;padding:9px 18px;font-size:.85rem;font-weight:600;transition:all .25s;display:inline-flex}.wa-btn-sm{padding:7px 14px;font-size:.8rem}.wa-btn-primary{color:#fff;background:linear-gradient(135deg,#6366f1,#8b5cf6);box-shadow:0 4px 16px #6366f14d}.wa-btn-primary:hover:not(:disabled){box-shadow:0 6px 24px #6366f173}.wa-btn-danger{color:#fca5a5;background:#ef44441a;border:1px solid #ef444440}.wa-btn-danger:hover:not(:disabled){color:#f87171;background:#ef44442e;border-color:#ef444466}.wa-empty{text-align:center;color:#a0a0be99;padding:60px 20px}.wa-empty-icon{color:#a0a0be4d;margin-bottom:20px}.wa-empty p{margin-bottom:24px;font-size:.95rem}.wa-list{flex-direction:column;gap:12px;display:flex}.wa-item{-webkit-backdrop-filter:blur(40px);background:#ffffff0a;border:1px solid #ffffff14;border-radius:16px;justify-content:space-between;align-items:center;padding:16px 20px;transition:border-color .3s,background .3s;display:flex;box-shadow:0 4px 20px #0000004d}.wa-item:hover{background:#ffffff0f;border-color:#6366f133}.wa-item-left{flex:1;align-items:center;gap:14px;min-width:0;display:flex}.wa-item-icon{color:#818cf8;flex-shrink:0;align-items:center;gap:6px;display:flex}.wa-transport-icon{color:#a5b4fc;background:#6366f11a;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;display:inline-flex}.wa-item-info{flex:1;min-width:0}.wa-item-name{color:#e8e8f0;white-space:nowrap;text-overflow:ellipsis;margin-bottom:4px;font-size:.95rem;font-weight:600;overflow:hidden}.wa-item-meta{color:#a0a0be8c;flex-wrap:wrap;gap:12px;font-size:.75rem;display:flex}.wa-success-icon{color:#4ade80;background:#22c55e26;border:2px solid #22c55e4d;border-radius:50%;justify-content:center;align-items:center;width:64px;height:64px;display:inline-flex}.edit-btn-danger{color:#fca5a5;background:#ef444426;border:1px solid #ef44444d}.edit-btn-danger:hover{color:#f87171;background:#ef444440;border-color:#ef444480}@media (width<=640px){.wa-item{flex-direction:column;align-items:flex-start;gap:12px}.wa-item .btn-delete-cred{align-self:flex-end}}.fp-link-row{text-align:center;margin-top:16px}.fp-link{color:#a0a0beb3;font-size:.85rem;text-decoration:none;transition:color .25s}.fp-link:hover{color:#a5b4fc}.fp-footer-link{color:#a0a0be99;font-size:.82rem;text-decoration:none;transition:color .25s}.fp-footer-link:hover{color:#a5b4fc}.fp-step{animation:.35s panelFade}.fp-hint{color:#b4b4c8b3;text-align:center;margin-bottom:16px;font-size:.88rem}.fp-target{color:#a5b4fc;text-align:center;margin-bottom:20px;font-size:1rem;font-weight:600}.fp-back-link{color:#a0a0be99;cursor:pointer;background:0 0;border:none;align-items:center;gap:4px;margin-top:16px;padding:8px 0;font-size:.85rem;transition:color .25s;display:inline-flex}.fp-back-link:hover{color:#a5b4fc}.fp-methods{flex-direction:column;gap:12px;margin-bottom:8px;display:flex}.fp-method-item{cursor:pointer;background:#ffffff08;border:1px solid #ffffff14;border-radius:14px;align-items:center;gap:14px;padding:16px 18px;transition:all .25s;display:flex}.fp-method-item:hover{background:#ffffff0f;border-color:#6366f14d}.fp-method-item.fp-method-disabled{opacity:.45;cursor:not-allowed;pointer-events:none}.fp-method-icon{color:#818cf8;background:#6366f11a;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.fp-method-disabled .fp-method-icon{color:#a0a0be66;background:#a0a0be14}.fp-method-info{flex:1;min-width:0}.fp-method-label{color:#e0e0e8;margin-bottom:2px;font-size:.92rem;font-weight:600}.fp-method-target{color:#a0a0be99;font-size:.78rem}.fp-method-disabled .fp-method-label,.fp-method-disabled .fp-method-target{color:#a0a0be66}.fp-method-arrow{color:#a0a0be66;flex-shrink:0;transition:color .25s,transform .25s}.fp-method-item:hover .fp-method-arrow{color:#a5b4fc;transform:translate(3px)}.fp-code-actions{justify-content:center;margin-bottom:20px;display:flex}.fp-resend-btn{color:#a5b4fc;cursor:pointer;background:0 0;border:1px solid #6366f140;border-radius:8px;padding:8px 20px;font-size:.82rem;transition:all .25s}.fp-resend-btn:hover:not(:disabled){background:#6366f11a;border-color:#6366f166}.fp-resend-btn:disabled{opacity:.5;cursor:not-allowed}.fp-countdown{color:#a0a0be80}.fp-status-box{text-align:center;padding:40px 0}.fp-status-box .dash-spinner{margin:0 auto 16px}.fp-status-box p{color:#a0a0beb3;font-size:.9rem}.fp-success-box{text-align:center;padding:20px 0}.fp-success-icon{color:#4ade80;background:#22c55e26;border:2px solid #22c55e4d;border-radius:50%;justify-content:center;align-items:center;width:80px;height:80px;margin-bottom:20px;display:inline-flex}.fp-success-box h2{color:#f0f0f0;margin-bottom:8px;font-size:1.3rem;font-weight:700}.fp-success-box p{color:#a0a0be99;margin-bottom:28px;font-size:.88rem}.fp-login-btn{max-width:200px;margin:0 auto;text-decoration:none;display:inline-block}
