@charset "UTF-8";body,html{margin:0;padding:0}.app-container{height:100vh;display:flex;align-items:center;justify-content:center;background-color:#fff;font-family:Arial,sans-serif;opacity:1;transition:opacity .3s ease-in-out}.app-container.loading{opacity:.7}.app-content{max-width:350px;width:100%;text-align:center;position:relative;display:flex;flex-direction:column;gap:20px;opacity:0;transform:translateY(20px);animation:fade-in-up-keyframes .2s ease-out forwards}.app-content.loading{opacity:.5;animation:none}.app-title{font-size:24px;margin:0;color:#333;font-weight:400}.tagline{font-size:14px;color:#666;margin:0}.qr-code-wrapper{display:flex;justify-content:center}.divider{border:none;border-top:1px solid #ddd;margin:0}.message{font-size:14px;color:#666;margin:0}.message.error{color:#dc3545}.icp-registration{text-align:center}.icp-registration a{font-size:12px;color:#999;text-decoration:none;transition:color .2s ease}.icp-registration a:hover{color:#666;text-decoration:underline}.wechat-qr-iframe{width:300px;height:400px;border:none}.login-links-section{display:flex;flex-direction:column;align-items:center;gap:15px;width:100%}.login-link{font-size:14px;color:#666;text-decoration:underline;cursor:pointer;transition:color .2s ease}.login-link:hover{color:#333}.divider-with-text{display:flex;align-items:center;width:100%;text-align:center;margin:5px 0}.divider-with-text:before,.divider-with-text:after{content:"";flex:1;border-bottom:1px solid #ddd}.divider-with-text span{padding:0 10px;color:#999;font-size:14px}.mobile-block-message{font-size:18px;color:#333;padding:30px 20px;text-align:center;line-height:1.6;opacity:0;transform:translateY(20px);animation:fade-in-up-keyframes .2s ease-out forwards}.wechat-login-modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:#fff;border-radius:8px;box-shadow:0 4px 20px #00000026;overflow:hidden;z-index:1000;padding:20px}.wechat-login-modal-close{position:absolute;top:12px;right:12px;background:#fff;border:1px solid #ddd;width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#666;transition:all .2s ease;z-index:1}.wechat-login-modal-close:hover{background:#f5f5f5;border-color:#999;color:#333}.debug-login-button{width:100%;padding:12px;font-size:16px;border:none;border-radius:4px;cursor:pointer;background-color:#28a745;color:#fff;transition:background-color .2s ease}.debug-login-button:disabled{background-color:#e9ecef;color:#6c757d;cursor:not-allowed}.debug-login-button:hover:not(:disabled){background-color:#218838}.debug-login-button{margin-top:1rem;margin-bottom:1rem}.signin-form{display:flex;flex-direction:column;gap:20px}.form-input{width:100%;padding:12px;font-size:16px;border:1px solid var(--border-color);border-radius:4px;margin:0;box-sizing:border-box;background-color:var(--bg-primary);color:var(--text-primary)}.form-input:disabled{background-color:var(--bg-card);color:var(--text-muted)}.email-display{font-size:14px;color:#333;margin:0 0 30px;font-weight:700}.verification-input{width:100%;padding:12px;font-size:16px;border:1px solid var(--border-color);border-radius:4px;margin:0;box-sizing:border-box;background-color:var(--bg-primary);color:var(--text-primary)}.verification-input:disabled{background-color:var(--bg-card);color:var(--text-muted)}.verification-input{font-size:20px;text-align:center;letter-spacing:4px;font-family:Courier New,monospace}.primary-button.verify-button{margin-bottom:10px}.secondary-button{width:100%;padding:8px;font-size:14px;background-color:transparent;color:#666;border:none;cursor:pointer;text-decoration:underline}.wechat-qrcode-wrapper{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px}.wechat-qrcode-wrapper .wechat-title{font-size:24px;font-weight:600;margin-bottom:10px;text-align:center}.wechat-qrcode-wrapper .wechat-subtitle{font-size:14px;color:#666;margin-bottom:20px;text-align:center}.wechat-qrcode-wrapper .wechat-qrcode{display:flex;justify-content:center;align-items:center}.wechat-qrcode-wrapper .wechat-qrcode iframe{border:none}.qr-code-container{position:relative;display:inline-flex;align-items:center}.wechat-consult-text{font-size:12px;color:#666;transition:opacity .3s ease}.qr-icon{position:relative;display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:6px;background:#ffffff1a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2);opacity:.8;transition:all .3s ease;color:inherit;cursor:pointer}.qr-icon:hover{opacity:1;background:#ffffff26;border-color:#ffffff4d;transform:translateY(-1px);box-shadow:0 2px 8px #0000001a}.qr-popup{position:absolute;top:100%;left:50%;transform:translate(-50%);margin-top:12px;background:#fff;border:1px solid rgba(0,0,0,.1);border-radius:12px;box-shadow:0 8px 32px #0000001f;padding:12px;z-index:1000;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);animation:fade-in-up .2s ease-out}.qr-popup:before{content:"";position:absolute;top:-8px;left:50%;transform:translate(-50%);width:0;height:0;border-left:8px solid transparent;border-right:8px solid transparent;border-bottom:8px solid rgba(0,0,0,.1)}.qr-popup:after{content:"";position:absolute;top:-7px;left:50%;transform:translate(-50%);width:0;height:0;border-left:8px solid transparent;border-right:8px solid transparent;border-bottom:8px solid white}.qr-image{width:120px;height:120px;display:block;border-radius:8px;box-shadow:0 2px 8px #0000001a}.qr-placeholder{width:120px;height:120px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#f5f7fa,#c3cfe2);border-radius:8px;border:2px dashed #ddd}.qr-placeholder-content{text-align:center;color:#666}.qr-placeholder-icon{opacity:.4;margin-bottom:8px}.qr-placeholder-text{font-size:12px;font-weight:500;margin:4px 0;color:#555}.qr-placeholder-hint{font-size:10px;color:#888;font-style:italic}.coming-soon-text{font-size:16px;font-weight:500;color:#666;margin:0;text-align:center}.qr-loading{width:120px;height:120px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#666}.qr-loading p{font-size:12px;margin:8px 0 0}.loading-spinner{width:24px;height:24px;border:2px solid #f3f3f3;border-top:2px solid #3498db;border-radius:50%;animation:spin 1s linear infinite}@keyframes fade-in-up{0%{opacity:0;transform:translate(-50%) translateY(10px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.logout-panel{display:flex;flex-direction:column;gap:4px}.logout-panel .description{margin:0}.signed-in-info{font-size:14px;color:#333;margin:0;font-weight:400}.link-button{background:none;border:none;padding:8px 0 0;font-size:12px;color:#666;text-decoration:underline;cursor:pointer;font-family:inherit;transition:color .2s ease;text-align:left;width:100%}.link-button:hover{color:#333}.primary-button{width:100%;padding:12px;font-size:16px;border:none;border-radius:4px;cursor:pointer;background-color:#28a745;color:#fff;transition:background-color .2s ease}.primary-button:disabled{background-color:#e9ecef;color:#6c757d;cursor:not-allowed}.primary-button:hover:not(:disabled){background-color:#218838}.primary-button{padding:8px 16px;font-size:14px}.api-key-table{width:100%;max-width:100%}.api-key-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px}.header-left{display:flex;gap:12px;align-items:center}.create-key-button{width:100%;padding:12px;font-size:16px;border:none;border-radius:4px;cursor:pointer;background-color:#28a745;color:#fff;transition:background-color .2s ease}.create-key-button:disabled{background-color:#e9ecef;color:#6c757d;cursor:not-allowed}.create-key-button:hover:not(:disabled){background-color:#218838}.create-key-button{padding:8px 16px;font-size:14px;width:auto}.usage-guide-button{background-color:var(--bg-primary);color:var(--text-secondary);border:1px solid var(--border-color);padding:8px 10px;border-radius:4px;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.usage-guide-button:disabled{background-color:var(--bg-primary);color:var(--text-muted);border-color:var(--border-color);cursor:default}.usage-guide-button:hover:not(:disabled){background-color:var(--bg-card);border-color:#999;color:var(--text-primary)}.usage-guide-button{padding:8px 16px;font-size:14px}.key-count{font-size:14px;color:var(--text-secondary)}.api-key-loading{text-align:center;color:var(--text-secondary);padding:40px;font-size:16px}.no-keys{text-align:center;color:var(--text-secondary);padding:40px 20px;border:1px solid var(--border-color);border-radius:4px;font-size:14px;background-color:var(--bg-card)}.key-list{display:flex;flex-direction:column;gap:20px}.key-item{display:flex;justify-content:space-between;align-items:center;padding:20px;border:1px solid var(--border-color);border-radius:4px;background-color:var(--bg-primary);box-shadow:0 1px 3px #0000001a;gap:20px}.key-info{display:flex;flex-direction:column;flex:1}.key-date{font-size:14px;color:var(--text-secondary)}.key-command-row{display:flex;align-items:flex-start;gap:12px;margin-top:8px}.key-display{flex:1;font-family:Courier New,monospace;font-size:14px;color:var(--text-primary);background-color:var(--bg-card);padding:9px 12px;border-radius:4px;display:flex;align-items:center}.key-display code{font-family:inherit;font-size:inherit;color:inherit;word-break:break-all}.key-buttons{display:flex;gap:8px;align-items:flex-start}.copy-key-button{background-color:var(--bg-primary);color:var(--text-secondary);border:1px solid var(--border-color);padding:8px 10px;border-radius:4px;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.copy-key-button:disabled{background-color:var(--bg-primary);color:var(--text-muted);border-color:var(--border-color);cursor:default}.copy-key-button:hover:not(:disabled){background-color:var(--bg-card);border-color:#999;color:var(--text-primary)}.copy-key-button svg{width:16px;height:16px}.copy-key-button{padding:8px 10px}.delete-button{background-color:var(--bg-primary);color:var(--text-secondary);border:1px solid var(--border-color);padding:8px 10px;border-radius:4px;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.delete-button:disabled{background-color:var(--bg-primary);color:var(--text-muted);border-color:var(--border-color);cursor:default}.delete-button:hover:not(:disabled){background-color:var(--bg-card);border-color:#999;color:var(--text-primary)}.delete-button svg{width:16px;height:16px}.delete-button{padding:8px 10px}.api-disabled-message{background-color:#fff3cd;color:#856404;padding:12px 16px;border:1px solid #ffeaa7;border-radius:4px;margin:16px 0;font-size:14px;text-align:center}.request-access-link{background:none;border:none;color:var(--text-secondary);text-decoration:underline;cursor:pointer;font-size:14px;padding:0;margin:0;font-family:inherit}.request-access-link:hover{color:var(--text-secondary)}.request-access-link:focus{outline:2px solid #666;outline-offset:2px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background:var(--bg-primary);padding:30px;border-radius:8px;box-shadow:0 4px 12px #00000026;max-width:400px;width:90%;text-align:center}.modal-content h3{margin:0 0 15px;color:var(--text-primary);font-size:18px}.modal-content p{margin:0 0 15px;color:var(--text-secondary);font-size:16px}.api-key-preview{font-family:Courier New,monospace;font-size:14px;color:var(--text-primary);background-color:var(--bg-card);padding:8px 12px;border-radius:4px;margin:15px 0 25px}.modal-actions{display:flex;gap:12px;justify-content:center}.cancel-button{padding:8px 20px;font-size:14px}.confirm-delete-button{background:#dc3545;color:#fff;border:1px solid #dc3545;border-radius:4px;padding:8px 20px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease;width:auto}.confirm-delete-button:hover{background:#c82333;border-color:#c82333}.loading-text{font-size:16px;color:#999;margin:0 0 30px}.modal-content.usage-guide{max-width:600px;text-align:left;background:var(--modal-bg, #fff);border:1px solid var(--modal-border, #ddd);box-shadow:0 4px 20px var(--modal-shadow, rgba(0, 0, 0, .15));--modal-bg: #fff;--modal-border: #ddd;--modal-shadow: rgb(0 0 0 / 15%);--modal-heading-primary: #333;--modal-heading-secondary: #555;--modal-text: #666;--modal-text-strong: #333;--modal-border-accent: #e0e0e0;--modal-code-bg: #f5f5f5;--modal-code-color: #d73a49;--modal-code-border: #e0e0e0;--modal-pre-bg: #f8f8f8;--modal-pre-color: #333;--modal-pre-border: #e0e0e0}.modal-content.usage-guide.dark{--modal-bg: #252525;--modal-border: #333;--modal-shadow: rgb(0 0 0 / 50%);--modal-heading-primary: #e0e0e0;--modal-heading-secondary: #b0b0b0;--modal-text: #b0b0b0;--modal-text-strong: #e0e0e0;--modal-border-accent: #444;--modal-code-bg: rgb(255 255 255 / 10%);--modal-code-color: #ffa500;--modal-code-border: rgb(255 255 255 / 20%);--modal-pre-bg: #1a1a1a;--modal-pre-color: #f0f0f0;--modal-pre-border: #444}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background-color:transparent;display:flex;align-items:center;justify-content:center;z-index:1000}.usage-content{margin:20px 0}.usage-content h1{margin:0 0 20px;color:var(--modal-heading-primary);font-size:20px;font-weight:600;border-bottom:2px solid var(--modal-border-accent);padding-bottom:10px}.usage-content h2{margin:25px 0 12px;color:var(--modal-heading-primary);font-size:16px;font-weight:600}.usage-content h3{margin:20px 0 8px;color:var(--modal-heading-secondary);font-size:14px;font-weight:600}.usage-content p{margin:8px 0;line-height:1.5;color:var(--modal-text);font-size:14px}.usage-content code{background-color:var(--bg-card);padding:2px 6px;border-radius:3px;font-family:Monaco,Menlo,monospace;font-size:12px;color:var(--text-primary);background-color:var(--modal-code-bg);color:var(--modal-code-color);border:1px solid var(--modal-code-border)}.usage-content pre{background-color:var(--code-bg, #333);color:var(--code-text, white);padding:12px;border-radius:4px;font-family:Monaco,Menlo,monospace;font-size:12px;line-height:1.4;overflow-x:auto;margin:0;border:1px solid var(--border-color)}.usage-content pre code{background-color:transparent;color:inherit;padding:0;font-size:inherit;white-space:pre-wrap}.usage-content pre{background-color:var(--modal-pre-bg);color:var(--modal-pre-color);border:1px solid var(--modal-pre-border);flex:1}.usage-content strong{color:var(--modal-text-strong);font-weight:600}.usage-content ul{margin:12px 0;padding-left:20px}.usage-content ul li{margin-bottom:6px;line-height:1.4;color:var(--modal-text);font-size:14px}.usage-content ul li strong{color:var(--modal-text-strong);font-weight:600}.command-example{margin:0 0 15px}.code-block-container{position:relative}.copy-code-button{background-color:var(--bg-primary);color:var(--text-secondary);border:1px solid var(--border-color);padding:8px 10px;border-radius:4px;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.copy-code-button:disabled{background-color:var(--bg-primary);color:var(--text-muted);border-color:var(--border-color);cursor:default}.copy-code-button:hover:not(:disabled){background-color:var(--bg-card);border-color:#999;color:var(--text-primary)}.copy-code-button svg{width:16px;height:16px}.copy-code-button{position:absolute;top:6px;right:6px;background-color:var(--button-bg);border:1px solid rgba(0,0,0,.1);padding:6px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);opacity:.7}.copy-code-button:disabled{color:var(--text-secondary);border-color:#0000001a;background-color:var(--button-bg);opacity:.7;cursor:default}.copy-code-button svg{width:14px;height:14px}.modal-actions{display:flex;gap:12px;justify-content:center;margin-top:20px}.cancel-button{background-color:var(--bg-primary);color:var(--text-secondary);border:1px solid var(--border-color);padding:8px 10px;border-radius:4px;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.cancel-button:disabled{background-color:var(--bg-primary);color:var(--text-muted);border-color:var(--border-color);cursor:default}.cancel-button:hover:not(:disabled){background-color:var(--bg-card);border-color:#999;color:var(--text-primary)}.cancel-button{padding:10px 24px;font-size:14px;font-weight:500;background:var(--modal-bg);color:var(--modal-heading-primary);border:1px solid var(--modal-border-accent)}.cancel-button:hover{background:var(--modal-code-bg);border-color:var(--modal-border)}.close-button{background:#fff;border:1px solid #ddd;width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#666;transition:all .2s ease}.close-button:hover{background:#f5f5f5;border-color:#999;color:#333}.payment-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:2000;animation:fade-in .2s ease-out}.payment-modal{position:relative;background:#fff;border:1px solid #ddd;max-width:360px;width:90%;max-height:90vh;overflow-y:auto;animation:scale-in .2s ease-out}.modal-close-button{position:absolute;top:12px;right:12px}.payment-modal-content{padding:40px 24px 24px;display:flex;flex-direction:column;align-items:center}.payment-modal-content h2{margin:0 0 12px;font-size:20px;font-weight:600;color:#333;text-align:center}.wechat-pay-logo{margin-bottom:16px;display:flex;align-items:center;justify-content:center}.wechat-pay-logo .wechat-pay-official-logo{height:28px;width:auto}.payment-amount{font-size:28px;font-weight:700;color:#34a853;margin-bottom:24px;text-align:center}.payment-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px 0;color:#666}.payment-loading p{font-size:14px;margin:12px 0 0;color:#888}.loading-spinner{width:32px;height:32px;border:3px solid #f3f3f3;border-top:3px solid #34a853;border-radius:50%;animation:spin 1s linear infinite}.payment-qr-section{display:flex;flex-direction:column;align-items:center;width:100%}.payment-instructions{font-size:14px;color:#666;text-align:center;margin:0 0 20px;line-height:1.5}.payment-qr-container{background:#fff;padding:12px;border:1px solid #ddd;margin-bottom:12px}.payment-qr-image{display:block;width:200px;height:200px}.payment-hint{font-size:12px;color:#999;text-align:center;margin:8px 0 0}.payment-success{display:flex;flex-direction:column;align-items:center;padding:32px 0}.payment-success .success-icon{color:#34a853;margin-bottom:12px}.payment-success p{font-size:16px;font-weight:500;color:#34a853;margin:0}.payment-error{display:flex;flex-direction:column;align-items:center;padding:32px 0}.payment-error .error-icon{color:#dc3545;margin-bottom:12px}.payment-error p{font-size:14px;font-weight:500;color:#dc3545;margin:0;text-align:center}.payment-cancelled{display:flex;flex-direction:column;align-items:center;padding:32px 0}.payment-cancelled p{font-size:14px;color:#666;margin:0}.subscription-panel{width:100%;max-width:800px;margin:0 auto}.subscription-panel .loading-container{text-align:center;padding:40px 20px}.subscription-panel .loading-container .loading-spinner{width:32px;height:32px;border:3px solid #f3f3f3;border-top:3px solid #007bff;border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 16px}.subscription-panel .loading-container p{color:var(--text-secondary);font-size:14px}.subscription-panel .subscription-content{display:flex;flex-direction:column;gap:32px}.subscription-panel .current-subscription-section h3,.subscription-panel .no-subscription-section h3,.subscription-panel .available-plans-section h3{font-size:18px;font-weight:600;padding:20px 0;margin:0;color:var(--text-primary)}.subscription-panel .no-subscription-section p{color:var(--text-secondary);font-size:14px;margin-bottom:0}.subscription-panel .available-plans-section .plans-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px}.subscription-item{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:4px;padding:20px}.subscription-item .subscription-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.subscription-item .subscription-header .subscription-plan{display:flex;align-items:center;gap:12px}.subscription-item .subscription-header .subscription-plan .plan-name{font-size:18px;font-weight:600;color:var(--text-primary)}.subscription-item .subscription-header .subscription-plan .status-badge{padding:4px 12px;border-radius:4px;font-size:12px;font-weight:600;text-transform:uppercase}.subscription-item .subscription-header .subscription-plan .status-badge.refunded-badge{background:#f8d7da;color:#a85861}.subscription-item .subscription-header .refund-button{background:#dc3545;color:#fff;border:none;padding:6px 12px;font-size:12px;font-weight:600;cursor:pointer;transition:all .2s ease;border-radius:4px}.subscription-item .subscription-header .refund-button:disabled{background:#e9ecef;color:#6c757d;cursor:not-allowed}.subscription-item .subscription-header .refund-button:hover:not(:disabled){background:#c82333}.subscription-item .subscription-header .refund-button:active:not(:disabled){background:#bd2130}.subscription-item .subscription-details .detail-row{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid #e9ecef}.subscription-item .subscription-details .detail-row:last-child{border-bottom:none}.subscription-item .subscription-details .detail-row .detail-label{font-size:14px;color:var(--text-primary)}.subscription-item .subscription-details .detail-row .detail-value{font-size:14px;font-weight:500;color:var(--text-primary)}.subscription-item .subscription-details .detail-row .detail-value.days-remaining{color:var(--text-primary);font-weight:600}.subscription-plan-card{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:4px;padding:24px;transition:all .2s ease;display:flex;flex-direction:column}.subscription-plan-card:hover{box-shadow:0 4px 12px #0000001a;transform:translateY(-2px)}.subscription-plan-card.active-plan{border-color:#28a745;background:var(--bg-primary)}.subscription-plan-card .plan-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.subscription-plan-card .plan-header h4.plan-name{font-size:20px;font-weight:600;color:var(--text-primary);margin:0}.subscription-plan-card .plan-header .current-plan-badge{padding:4px 12px;background:transparent;color:#28a745;font-size:12px;font-weight:600;text-transform:uppercase}.subscription-plan-card .plan-pricing{margin-bottom:20px}.subscription-plan-card .plan-pricing .price-container{display:flex;align-items:baseline;gap:8px;margin-bottom:4px}.subscription-plan-card .plan-pricing .plan-price{font-size:24px;font-weight:700;color:var(--text-primary)}.subscription-plan-card .plan-pricing .plan-price-original{font-size:18px;font-weight:500;color:var(--text-secondary);text-decoration:line-through}.subscription-plan-card .plan-pricing .discount-badge{background:transparent;color:#e74c3c;font-size:12px;font-weight:500;text-transform:uppercase}.subscription-plan-card .plan-pricing .plan-duration{font-size:14px;color:var(--text-secondary);margin-left:4px}.subscription-plan-card .plan-features{margin-bottom:24px;flex:1}.subscription-plan-card .plan-features .feature-item{display:flex;align-items:center;gap:12px;margin-bottom:12px}.subscription-plan-card .plan-features .feature-item:last-child{margin-bottom:0}.subscription-plan-card .plan-features .feature-item .feature-icon{font-size:16px;width:20px;text-align:center;color:#28a745}.subscription-plan-card .plan-features .feature-item .feature-text{font-size:14px;color:var(--text-primary);flex:1}.subscription-plan-card .plan-actions{margin-top:auto}.subscription-plan-card .plan-actions .plan-button{width:100%;padding:12px 24px;border:none;border-radius:4px;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s ease}.subscription-plan-card .plan-actions .plan-button.select-button{background:#28a745;color:#fff}.subscription-plan-card .plan-actions .plan-button.select-button:disabled{background:#e9ecef;color:#6c757d;cursor:not-allowed}.subscription-plan-card .plan-actions .plan-button.select-button:hover:not(:disabled){background:#218838}.subscription-plan-card .plan-actions .plan-button.select-button:active:not(:disabled){background:#1e7e34}.subscription-plan-card .plan-actions .plan-button.active-button{background:#e9ecef;color:#6c757d;cursor:not-allowed}.refund-confirm-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1500;animation:fade-in .2s ease-out}.refund-confirm-dialog{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:4px;max-width:360px;width:90%;padding:24px;animation:scale-in .2s ease-out}.refund-confirm-dialog.refund-confirm-dialog p{margin:0 0 20px;font-size:14px;line-height:1.5;color:var(--text-secondary)}.refund-confirm-dialog.refund-confirm-dialog h3{margin:0 0 12px;font-size:18px;font-weight:600;color:var(--text-primary)}.refund-confirm-dialog .refund-amount-display{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;margin-bottom:20px;background:var(--bg-card);border:1px solid var(--border-color)}.refund-confirm-dialog .refund-amount-display .refund-amount-label{font-size:14px;color:var(--text-secondary)}.refund-confirm-dialog .refund-amount-display .refund-amount-value{font-size:18px;font-weight:700;color:var(--text-primary)}.refund-confirm-dialog .refund-confirm-actions{display:flex;gap:12px;justify-content:flex-end}.refund-confirm-dialog .refund-confirm-actions button{padding:10px 20px;border:1px solid var(--border-color);font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease}.refund-confirm-dialog .refund-confirm-actions button.cancel-button{background:var(--bg-primary);color:var(--text-secondary)}.refund-confirm-dialog .refund-confirm-actions button.cancel-button:hover{background:var(--bg-card);border-color:#999;color:var(--text-primary)}.refund-confirm-dialog .refund-confirm-actions button.confirm-button{background:#dc3545;color:#fff;border-color:#dc3545}.refund-confirm-dialog .refund-confirm-actions button.confirm-button:disabled{background:#e9ecef;color:#6c757d;border-color:#ddd;cursor:not-allowed}.refund-confirm-dialog .refund-confirm-actions button.confirm-button:hover:not(:disabled){background:#c82333;border-color:#c82333}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes scale-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.referral-panel{width:100%;max-width:800px;margin:0 auto}.referral-panel .loading,.referral-panel .error{text-align:center;padding:40px 20px;color:var(--text-secondary);font-size:14px}.referral-panel .referral-content{display:flex;flex-direction:column;gap:32px}.referral-panel .rules-section h3,.referral-panel .referral-link-section h3,.referral-panel .points-section h3,.referral-panel .stats-section h3{font-size:18px;font-weight:600;padding:20px 0;margin:0;color:var(--text-primary)}.referral-panel .rules-section .rules-list{list-style:none;margin:0;padding:0}.referral-panel .rules-section .rules-list li{padding:10px 0 10px 25px;position:relative;color:var(--text-primary);font-size:14px}.referral-panel .rules-section .rules-list li:before{content:"✓";position:absolute;left:0;color:#28a745;font-weight:700}.referral-panel .referral-link-section .link-container{display:flex;gap:10px;align-items:center}.referral-panel .referral-link-section .link-container .referral-link-input{flex:1;padding:12px;border:1px solid #ddd;border-radius:4px;font-size:14px;background:var(--bg-primary);color:var(--text-primary);font-family:monospace}.referral-panel .referral-link-section .link-container .copy-button{padding:12px 24px;background:#28a745;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:14px;font-weight:600;transition:all .2s ease;white-space:nowrap}.referral-panel .referral-link-section .link-container .copy-button:hover{background:#218838}.referral-panel .referral-link-section .link-container .copy-button.success{background:#28a745}.referral-panel .referral-link-section .link-container .copy-button:disabled{background:#e9ecef;color:#6c757d;cursor:not-allowed}.referral-panel .points-section{background:linear-gradient(135deg,#667eea,#764ba2);padding:30px;color:#fff;border:1px solid #ddd;border-radius:4px}.referral-panel .points-section h3{color:#fff;padding-bottom:20px}.referral-panel .points-section .points-display{text-align:center}.referral-panel .points-section .points-display .points-value{font-size:48px;font-weight:700;margin-bottom:10px;color:#fff}.referral-panel .points-section .points-display .points-label{font-size:16px;opacity:.9;color:#fff}.referral-panel .stats-section .no-referrals,.referral-panel .stats-section .referrals-notice{color:var(--text-secondary);font-size:14px;margin:0 0 20px}.referral-panel .stats-section .referrals-list .user-list{list-style:none;padding:0;margin:0;border:1px solid #ddd;border-radius:4px;overflow:hidden}.referral-panel .stats-section .referrals-list .user-item{display:flex;justify-content:space-between;align-items:center;padding:15px;background:var(--bg-primary);border-bottom:1px solid #ddd}.referral-panel .stats-section .referrals-list .user-item:last-child{border-bottom:none}.referral-panel .stats-section .referrals-list .user-email{font-family:monospace;color:var(--text-primary);font-size:14px}.referral-panel .stats-section .referrals-list .status-badge{padding:4px 12px;border-radius:4px;font-size:12px;font-weight:600;text-transform:uppercase}.referral-panel .stats-section .referrals-list .status-badge.paid{background:#d4edda;color:#155724}.referral-panel .stats-section .referrals-list .status-badge.unpaid{background:#fff3cd;color:#856404}@media (width <= 768px){.referral-panel{padding:15px}.referral-panel .referral-content{gap:20px}.referral-panel .referral-content .referral-link-section .link-container{flex-direction:column}.referral-panel .referral-content .referral-link-section .link-container .referral-link-input,.referral-panel .referral-content .referral-link-section .link-container .copy-button{width:100%}.referral-panel .referral-content .points-section{padding:20px}.referral-panel .referral-content .points-section .points-display .points-value{font-size:36px}}.recharge-panel{width:100%;max-width:800px;margin:0 auto}.recharge-panel .recharge-content{display:flex;flex-direction:column;gap:32px}.recharge-panel .balance-card{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:4px;padding:20px}.recharge-panel .balance-card .balance-display{display:flex;justify-content:space-between;align-items:center}.recharge-panel .balance-card .balance-display .balance-label{font-size:14px;color:var(--text-secondary)}.recharge-panel .balance-card .balance-display .balance-value{font-size:18px;font-weight:700;color:var(--text-primary)}.recharge-panel .recharge-form-card{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:4px;padding:20px}.recharge-panel .recharge-form-card .form-group{margin-bottom:16px}.recharge-panel .recharge-form-card .form-group .form-label{display:block;font-size:14px;color:var(--text-secondary);margin-bottom:8px}.recharge-panel .recharge-form-card .form-group .input-wrapper{position:relative;display:flex;align-items:center}.recharge-panel .recharge-form-card .form-group .input-wrapper .input-currency{position:absolute;right:12px;font-size:14px;font-weight:500;color:var(--text-secondary);pointer-events:none}.recharge-panel .recharge-form-card .form-group .amount-input{width:100%;padding:10px 60px 10px 12px;border:1px solid var(--border-color);border-radius:4px;font-size:14px;color:var(--text-primary);background:var(--bg-primary);transition:all .2s ease}.recharge-panel .recharge-form-card .form-group .amount-input:focus{outline:none;border-color:#28a745;box-shadow:0 0 0 2px #28a7451a}.recharge-panel .recharge-form-card .form-group .amount-input:disabled{background:var(--bg-card);color:var(--text-muted);cursor:not-allowed}.recharge-panel .recharge-form-card .form-group .amount-input::placeholder{color:var(--text-muted)}.recharge-panel .recharge-form-card .form-group .form-hint{margin-top:6px;font-size:12px;color:var(--text-secondary)}.recharge-panel .recharge-form-card .conversion-display{padding:12px 16px;margin-bottom:16px;background:var(--bg-card);border:1px solid var(--border-color);border-radius:4px}.recharge-panel .recharge-form-card .conversion-display .conversion-row{display:flex;justify-content:space-between;align-items:center}.recharge-panel .recharge-form-card .conversion-display .conversion-row .conversion-label{font-size:14px;color:var(--text-secondary)}.recharge-panel .recharge-form-card .conversion-display .conversion-row .conversion-value{font-size:18px;font-weight:700;color:#28a745}.recharge-panel .recharge-form-card .error-message{padding:10px 12px;margin-bottom:16px;background:#f8d7da;color:#a85861;border:1px solid #f5c6cb;border-radius:4px;font-size:13px;font-weight:500}.recharge-panel .recharge-form-card .recharge-button{width:100%;padding:10px 20px;border:none;border-radius:4px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease;background:#28a745;color:#fff}.recharge-panel .recharge-form-card .recharge-button:disabled{background:#e9ecef;color:#6c757d;cursor:not-allowed}.recharge-panel .recharge-form-card .recharge-button:hover:not(:disabled){background:#218838}.recharge-panel .recharge-form-card .recharge-button:active:not(:disabled){background:#1e7e34}.faq-content{max-width:800px;font-size:.9rem}.faq-content h1{font-size:1.5rem;font-weight:600;margin-bottom:1.2rem;color:var(--text-primary);border-bottom:2px solid var(--border-color);padding-bottom:.4rem}.faq-content h2{font-size:1.1rem;font-weight:600;margin-top:1.5rem;margin-bottom:.8rem;color:var(--text-primary)}.faq-content h3{font-size:1rem;font-weight:600;margin-top:1.2rem;margin-bottom:.6rem;color:var(--text-primary)}.faq-content p{line-height:1.6;margin-bottom:.8rem;color:var(--text-secondary)}.faq-content ul,.faq-content ol{margin-left:1.5rem;margin-bottom:.8rem;line-height:1.6;color:var(--text-secondary)}.faq-content li{margin-bottom:.4rem}.faq-content code{background-color:var(--bg-card);padding:.15rem .35rem;border-radius:3px;font-size:.85em;font-family:Courier New,Courier,monospace;color:#ef4444}.faq-content pre{background-color:var(--bg-card);padding:.8rem;border-radius:6px;overflow-x:auto;margin-bottom:.8rem}.faq-content pre code{background-color:transparent;padding:0;color:var(--text-primary)}.faq-content strong{font-weight:600;color:var(--text-primary)}.faq-content a{color:#3182ce;text-decoration:none}.faq-content a:hover{text-decoration:underline}.faq-content blockquote{border-left:4px solid var(--border-color);padding-left:1rem;margin-left:0;margin-bottom:.8rem;color:var(--text-secondary);font-style:italic}.faq-loading{display:flex;justify-content:center;align-items:center;min-height:200px}.faq-loading .spinner{width:40px;height:40px;border:3px solid #e2e8f0;border-top-color:#3182ce;border-radius:50%;animation:spin .8s linear infinite}.announcement-banner{background-color:#f8f9fa;border:1px solid #e9ecef;padding:12px 16px;margin-bottom:30px;border-radius:4px}.announcement-banner .announcement-text{font-size:14px;color:#333;margin:0;line-height:1.5}.dark .announcement-banner{background-color:#3a3a2a;border:1px solid #4a4a3a}.dark .announcement-banner .announcement-text{color:#f0e6d6}.dashboard-container{--bg-primary: #fff;--bg-secondary: #f8f9fa;--bg-card: #f8f9fa;--border-color: #ddd;--text-primary: #333;--text-secondary: #666;--text-muted: #999;--hover-bg: #f5f5f5;--button-bg: #fff;--button-hover: #f5f5f5;--table-header-bg: #f8f9fa;--table-border: #e9ecef}.dashboard-container.dark{--bg-primary: #1a1a1a;--bg-secondary: #252525;--bg-card: #252525;--border-color: #333;--text-primary: #e0e0e0;--text-secondary: #b0b0b0;--text-muted: #808080;--hover-bg: #333;--button-bg: #333;--button-hover: #444;--table-header-bg: #252525;--table-border: #333}.dashboard-container{display:flex;height:100vh;background-color:var(--bg-primary);color:var(--text-primary);font-family:Arial,sans-serif}.sidebar{width:260px;background-color:var(--bg-secondary);border-right:1px solid var(--border-color);display:flex;flex-direction:column;flex-shrink:0}.sidebar-content{display:flex;flex-direction:column;height:100%;justify-content:space-between}.sidebar-top{display:flex;flex-direction:column;gap:44px}.sidebar-top .header-section{padding:30px 20px 0;display:flex;flex-direction:column;gap:8px}.sidebar-bottom{border-top:1px solid var(--border-color);display:flex;flex-direction:column;gap:20px}.sidebar-bottom .description{font-size:12px;color:var(--text-secondary);margin:0}.sidebar-bottom .monitor-link{display:block;padding:12px 20px;background:var(--button-bg);color:var(--text-secondary);text-decoration:none;font-size:14px;font-weight:400;border-top:1px solid var(--border-color);border-bottom:1px solid var(--border-color);transition:all .2s ease}.sidebar-bottom .monitor-link:hover{background:var(--hover-bg);color:var(--text-primary)}.sidebar-bottom .logout-panel{gap:4px;padding:20px 20px 0}.sidebar-bottom .primary-button{width:100%;padding:12px;font-size:16px;border:none;border-radius:4px;cursor:pointer;background-color:#28a745;color:#fff;transition:background-color .2s ease}.sidebar-bottom .primary-button:disabled{background-color:#e9ecef;color:#6c757d;cursor:not-allowed}.sidebar-bottom .primary-button:hover:not(:disabled){background-color:#218838}.sidebar-bottom .primary-button{padding:12px 20px;font-size:14px;margin:0;border-radius:0}.sidebar-bottom .icp-section{border-top:1px solid var(--border-color);padding:16px 20px 20px}.sidebar-bottom .icp-section .icp-registration{text-align:left}.sidebar-bottom .icp-section .icp-registration a{font-size:12px;color:var(--text-secondary);text-decoration:none;transition:color .2s ease}.sidebar-bottom .icp-section .icp-registration a:hover{color:var(--text-primary);text-decoration:underline}.tab-navigation{display:flex;flex-direction:column}.tab-button{display:block;width:100%;padding:12px 20px;background:var(--button-bg);border:none;border-top:1px solid var(--border-color);text-align:left;font-size:14px;color:var(--text-secondary);cursor:pointer;border-radius:0;margin-bottom:0;transition:all .2s ease}.tab-button:first-child{border-top:1px solid var(--border-color)}.tab-button:last-child{border-bottom:1px solid var(--border-color)}.tab-button:hover{background-color:var(--hover-bg);color:var(--text-primary)}.tab-button.active{background-color:var(--button-bg);color:var(--text-primary);font-weight:600}.tab-button.active:hover{background-color:var(--button-bg)}.main-panel{flex:1;overflow-y:auto}.main-panel-content{padding:40px;max-width:800px;margin:0 auto}.api-keys-section h2,.usage-section h2,.subscription-section h2,.recharge-section h2,.referral-section h2{font-size:24px;color:var(--text-primary);margin:0 0 10px;font-weight:400}.api-keys-section .description,.usage-section .description,.subscription-section .description,.recharge-section .description,.referral-section .description{font-size:14px;color:var(--text-secondary);margin:0 0 30px}.api-keys-section .usage-notice,.usage-section .usage-notice,.subscription-section .usage-notice,.recharge-section .usage-notice,.referral-section .usage-notice{font-size:12px;color:var(--text-muted);margin:10px 0 20px;font-style:italic}.usage-stats-container .loading-message,.usage-stats-container .error-message{text-align:center;padding:40px;color:var(--text-secondary);font-size:16px}.usage-stats-container .error-message{color:#dc3545}.usage-stats-container .retry-button{width:100%;padding:12px;font-size:16px;border:none;border-radius:4px;cursor:pointer;background-color:#28a745;color:#fff;transition:background-color .2s ease}.usage-stats-container .retry-button:disabled{background-color:#e9ecef;color:#6c757d;cursor:not-allowed}.usage-stats-container .retry-button:hover:not(:disabled){background-color:#218838}.usage-stats-container .retry-button{padding:8px 16px;font-size:14px;width:auto;margin-top:16px}.usage-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px;margin-bottom:30px}.summary-card{background-color:var(--bg-card);padding:20px;border-radius:4px;border:1px solid var(--table-border)}.summary-card h3{font-size:14px;color:var(--text-secondary);margin:0 0 8px;font-weight:400;text-transform:uppercase;letter-spacing:.5px}.summary-card .summary-value{font-size:24px;color:var(--text-primary);font-weight:600;margin:0}.summary-card .summary-value .token-breakdown{font-size:12px;color:var(--text-secondary);font-weight:400;margin-top:4px}.usage-table-container{overflow-x:auto;border:1px solid var(--border-color);border-radius:4px;background-color:var(--bg-primary)}.usage-table{width:100%;border-collapse:collapse;font-size:12px}.usage-table th{background-color:var(--table-header-bg);padding:12px;text-align:left;font-weight:600;color:var(--text-primary);border-bottom:2px solid var(--table-border);white-space:nowrap}.usage-table th:nth-child(3),.usage-table th:nth-child(4),.usage-table th:nth-child(5),.usage-table th:nth-child(6),.usage-table th:nth-child(7),.usage-table th:nth-child(8){text-align:right}.usage-table td{padding:8px 12px;border-bottom:1px solid var(--table-border);vertical-align:middle;color:var(--text-primary)}.usage-table td:nth-child(3),.usage-table td:nth-child(4),.usage-table td:nth-child(5),.usage-table td:nth-child(6),.usage-table td:nth-child(7),.usage-table td:nth-child(8){text-align:right}.usage-table .day-row{border-top:1px solid var(--border-color)}.usage-table .day-row td{padding:8px 12px;vertical-align:top;border-bottom:none}.usage-table .day-row .day-cell{font-weight:600;color:var(--text-primary);padding:12px}.usage-table .day-row .models-cell,.usage-table .day-row .stats-cell{line-height:1.8}.usage-table .day-row .stats-cell{text-align:right;color:var(--text-secondary)}.model-name{background-color:var(--table-border);padding:2px 6px;border-radius:3px;font-family:Monaco,Courier New,monospace;font-size:10px;color:var(--text-secondary)}.status-badge{display:inline-block;padding:2px 8px;border-radius:12px;font-size:11px;font-weight:500;text-transform:uppercase}.status-badge.success{background-color:#d4edda;color:#155724}.dashboard-container.dark .status-badge.success{background-color:#1e3a2f;color:#75d4a0}.status-badge.error{background-color:#f8d7da;color:#721c24}.dashboard-container.dark .status-badge.error{background-color:#3a1e1e;color:#f5a5a5}.empty-state{text-align:center;padding:60px 20px;color:var(--text-secondary)}.empty-state p{font-size:16px;margin:0}.header-actions{display:flex;align-items:center;gap:12px}.theme-toggle{padding:6px 10px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:6px;cursor:pointer;font-size:16px;transition:all .2s}.theme-toggle:hover{background:var(--hover-bg)}@media (width <= 1024px){.dashboard-container{flex-direction:column;height:auto;min-height:100vh}.sidebar{width:100%;border-right:none;border-bottom:1px solid var(--border-color)}.sidebar-content{flex-flow:row wrap;justify-content:space-between;align-items:center;padding:16px}.sidebar-top{display:flex;flex-direction:row;align-items:center;gap:24px;flex:1}.sidebar-top .header-section{padding:0;gap:4px}.sidebar-bottom{border-top:none;flex-direction:row;align-items:center;gap:12px}.sidebar-bottom .logout-panel{padding:0}.sidebar-bottom .icp-section{display:none}.sidebar-bottom .monitor-link{padding:8px 16px;border-radius:4px}.tab-navigation{flex-flow:row wrap;gap:4px}.tab-button{width:auto;padding:8px 12px;border:1px solid var(--border-color);border-radius:4px;font-size:13px}.tab-button:first-child,.tab-button:last-child{border:1px solid var(--border-color)}.main-panel-content{padding:24px 16px}}@media (width <= 768px){.sidebar-content{flex-direction:column;align-items:stretch;gap:16px}.sidebar-top{flex-direction:column;align-items:stretch}.sidebar-top .header-section{text-align:center}.header-actions{justify-content:center}.sidebar-bottom{flex-direction:column;gap:12px}.sidebar-bottom .logout-panel{width:100%}.tab-navigation{justify-content:center}.tab-button{font-size:12px;padding:6px 10px}.usage-summary{grid-template-columns:1fr}.summary-card{padding:16px}.summary-card .summary-value{font-size:20px}.main-panel-content{padding:20px 12px}.api-keys-section h2,.usage-section h2,.subscription-section h2,.recharge-section h2,.referral-section h2{font-size:20px}}@media (width <= 480px){.tab-button{font-size:11px;padding:6px 8px}.app-title{font-size:18px!important}.tagline{font-size:12px!important}}.monitor-dashboard{--bg-primary: #fff;--bg-card: #f8f9fa;--bg-input: #f8f9fa;--border-color: #ddd;--text-primary: #333;--text-secondary: #666;--text-heading: #333;--hover-bg: #f5f5f5;--button-bg: #fff;--button-hover: #f5f5f5;--accent-color: #8884d8}.monitor-dashboard.dark{--bg-primary: #1a1a1a;--bg-card: #252525;--bg-input: #252525;--border-color: #333;--text-primary: #e0e0e0;--text-secondary: #888;--text-heading: #e0e0e0;--hover-bg: #333;--button-bg: #333;--button-hover: #444;--accent-color: #8884d8}.monitor-dashboard{min-height:100vh;background:var(--bg-primary);color:var(--text-primary);padding:24px}.loading-container,.error-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;gap:16px}.loading-container .loading-spinner,.error-container .loading-spinner{width:40px;height:40px;border:3px solid var(--border-color);border-top-color:var(--accent-color);border-radius:50%;animation:spin 1s linear infinite}.loading-container .retry-button,.error-container .retry-button{padding:8px 16px;background:var(--accent-color);color:#fff;border:none;border-radius:4px;cursor:pointer}.loading-container .retry-button:hover,.error-container .retry-button:hover{opacity:.9}.monitor-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid var(--border-color)}.monitor-header h1{font-size:24px;font-weight:600;color:var(--text-heading);margin:0}.monitor-header .controls{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.monitor-header .time-range-selector,.monitor-header .metric-selector{display:flex;gap:4px;background:var(--bg-input);padding:4px;border-radius:6px}.monitor-header .time-range-selector button,.monitor-header .metric-selector button{padding:6px 12px;background:transparent;color:var(--text-secondary);border:none;border-radius:4px;cursor:pointer;font-size:13px;transition:all .2s}.monitor-header .time-range-selector button:hover,.monitor-header .metric-selector button:hover{color:var(--text-heading)}.monitor-header .time-range-selector button.active,.monitor-header .metric-selector button.active{background:var(--button-bg);color:var(--text-heading)}.monitor-header .theme-toggle{padding:6px 10px;background:var(--bg-card);border:1px solid var(--border-color);border-radius:6px;cursor:pointer;font-size:16px;transition:all .2s}.monitor-header .theme-toggle:hover{background:var(--hover-bg)}.monitor-header .upstream-button{padding:8px 16px;background:#8884d8;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:13px;font-weight:600;transition:all .2s}.monitor-header .upstream-button:hover{background:#6b5fb8;transform:translateY(-1px);box-shadow:0 2px 4px #0003}.monitor-header .back-button{padding:8px 16px;background:var(--button-bg);color:var(--text-primary);border:none;border-radius:6px;cursor:pointer;font-size:13px;transition:all .2s}.monitor-header .back-button:hover{background:var(--button-hover)}.historical-section{margin-bottom:24px}.historical-section .section-title{font-size:16px;font-weight:600;color:var(--text-heading);margin:0 0 16px}.historical-section .stat-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.historical-section .stat-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;padding:20px}.historical-section .stat-card.highlight-card{background:linear-gradient(135deg,#10b9811a,#10b9810d);border-color:#10b9814d}.historical-section .stat-card h3{font-size:13px;color:var(--text-secondary);margin:0 0 8px;font-weight:500}.historical-section .stat-card .stat-value{font-size:28px;font-weight:600;color:var(--text-heading);margin:0}.historical-section .stat-card .stat-detail{margin-top:8px;display:flex;gap:12px;font-size:13px}.historical-section .stat-card .stat-detail .pro-badge{color:#8b5cf6;font-weight:500}.historical-section .stat-card .stat-detail .max-badge{color:#f59e0b;font-weight:500}.overview-section{margin-bottom:32px}.overview-section .stat-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.overview-section .stat-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;padding:20px}.overview-section .stat-card h3{font-size:13px;color:var(--text-secondary);margin:0 0 8px;font-weight:500}.overview-section .stat-card .stat-value{font-size:28px;font-weight:600;color:var(--text-heading);margin:0}.business-stats-section{margin-bottom:24px}.business-stats-section .section-title{font-size:16px;font-weight:600;color:var(--text-heading);margin:0 0 16px}.business-stats-section .business-stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.business-stats-section .stats-group{background:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;padding:20px}.business-stats-section .stats-group .stats-group-title{font-size:14px;font-weight:600;color:var(--text-heading);margin:0 0 16px;padding-bottom:12px;border-bottom:1px solid var(--border-color)}.business-stats-section .stats-group .stats-row{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-bottom:12px}.business-stats-section .stats-group .stats-row:last-child{margin-bottom:0}.business-stats-section .stats-group .stat-item{display:flex;flex-direction:column;gap:4px}.business-stats-section .stats-group .stat-item .stat-label{font-size:12px;color:var(--text-secondary)}.business-stats-section .stats-group .stat-item .stat-value{font-size:20px;font-weight:600;color:var(--text-primary)}.business-stats-section .stats-group .stat-item .stat-value.highlight{color:#10b981}.business-stats-section .stats-group .stat-item .stat-value.pro{color:#8b5cf6}.business-stats-section .stats-group .stat-item .stat-value.max{color:#f59e0b}.chart-section{background:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;padding:20px;margin-bottom:24px}.chart-section .section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;flex-wrap:wrap;gap:12px}.chart-section .section-header h2{font-size:16px;font-weight:600;color:var(--text-heading);margin:0}.chart-section .section-header .metric-selector{display:flex;gap:4px;background:var(--bg-primary);padding:4px;border-radius:6px}.chart-section .section-header .metric-selector button{padding:6px 12px;background:transparent;color:var(--text-secondary);border:none;border-radius:4px;cursor:pointer;font-size:12px;transition:all .2s}.chart-section .section-header .metric-selector button:hover{color:var(--text-heading)}.chart-section .section-header .metric-selector button.active{background:var(--button-bg);color:var(--text-heading)}.chart-section .chart-container{width:100%;height:auto}.ranking-section{background:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;padding:20px}.ranking-section .ranking-title{font-size:16px;font-weight:600;color:var(--text-heading);margin:0 0 16px}.ranking-section .ranking-table{overflow-x:auto;-webkit-overflow-scrolling:touch}.ranking-section .ranking-table table{width:100%;border-collapse:collapse;font-size:13px;min-width:600px}.ranking-section .ranking-table table th,.ranking-section .ranking-table table td{padding:12px;text-align:left;border-bottom:1px solid var(--border-color)}.ranking-section .ranking-table table th{color:var(--text-secondary);font-weight:500;background:var(--bg-primary);white-space:nowrap}.ranking-section .ranking-table table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.ranking-section .ranking-table table th.sortable:hover{color:var(--text-heading)}.ranking-section .ranking-table table td{color:var(--text-primary)}.ranking-section .ranking-table table .user-id{font-family:monospace;font-size:12px;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ranking-section .ranking-table table .wechat-nickname{max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ranking-section .ranking-table table tbody tr:hover{background:var(--hover-bg)}.recharts-tooltip-wrapper .recharts-default-tooltip{background:var(--bg-card)!important;border:1px solid var(--border-color)!important;border-radius:6px}.recharts-tooltip-wrapper .recharts-default-tooltip .recharts-tooltip-label{color:var(--text-heading)}.recharts-tooltip-wrapper .recharts-default-tooltip .recharts-tooltip-item{color:var(--text-primary)!important}.recharts-legend-wrapper .recharts-legend-item-text{color:var(--text-secondary)!important;font-size:12px}@media (width <= 1024px){.historical-section .stat-cards{grid-template-columns:repeat(3,1fr)}.overview-section .stat-cards{grid-template-columns:repeat(2,1fr)}.business-stats-section .business-stats-grid{grid-template-columns:1fr}}@media (width <= 900px){.historical-section .stat-cards{grid-template-columns:1fr}}@media (width <= 768px){.monitor-dashboard{padding:16px}.monitor-header{flex-direction:column;gap:16px;align-items:flex-start}.monitor-header h1{font-size:20px}.monitor-header .controls{width:100%;justify-content:flex-start}.overview-section .stat-cards{grid-template-columns:1fr}.overview-section .stat-card{padding:16px}.overview-section .stat-card .stat-value{font-size:24px}.chart-section{padding:16px}.chart-section .section-header{flex-direction:column;align-items:flex-start}.chart-section .chart-container{margin:0 -8px}.ranking-section{padding:16px}.ranking-section .ranking-table table{font-size:12px}.ranking-section .ranking-table table th,.ranking-section .ranking-table table td{padding:10px 8px}.ranking-section .ranking-table table .user-id{max-width:120px}.ranking-section .ranking-table table .wechat-nickname{max-width:100px}}@media (width <= 480px){.monitor-dashboard{padding:12px}.monitor-header .controls{flex-direction:column;align-items:stretch;gap:8px}.monitor-header .controls .time-range-selector{justify-content:center}.monitor-header .controls .theme-toggle,.monitor-header .controls .back-button{width:100%;text-align:center}}.detail-button{padding:4px 10px;background:var(--accent-color);color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:12px;transition:opacity .2s}.detail-button:hover{opacity:.85}.user-profile-modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.profile-modal-content{background:var(--bg-card);border:1px solid var(--border-color);border-radius:12px;width:100%;max-width:480px;max-height:90vh;overflow-y:auto;box-shadow:0 10px 40px #0003}.profile-modal-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border-color)}.profile-modal-header .modal-title{margin:0;font-size:18px;font-weight:600;color:var(--text-heading)}.profile-modal-header .close-button{background:transparent;border:none;font-size:20px;color:var(--text-secondary);cursor:pointer;padding:4px 8px;line-height:1}.profile-modal-header .close-button:hover{color:var(--text-primary)}.profile-loading,.profile-error{padding:40px 20px;text-align:center;color:var(--text-secondary)}.profile-error{color:#ef4444}.profile-body{padding:20px}.profile-section{margin-bottom:20px}.profile-section:last-child{margin-bottom:0}.profile-section.user-info-section{text-align:center;padding-bottom:16px;border-bottom:1px solid var(--border-color);margin-bottom:16px}.profile-section h4{margin:0 0 12px;font-size:13px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.profile-email{font-size:16px;font-weight:600;color:var(--text-heading);margin-bottom:4px;word-break:break-all}.profile-nickname{font-size:14px;color:var(--text-secondary)}.profile-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.profile-item{display:flex;flex-direction:column;gap:4px}.profile-item .label{font-size:12px;color:var(--text-secondary)}.profile-item .value{font-size:15px;font-weight:500;color:var(--text-primary)}.profile-item .value.plan-badge{display:inline-block;padding:2px 8px;background:linear-gradient(135deg,#8b5cf6,#6366f1);color:#fff;border-radius:4px;font-size:12px;font-weight:600}.profile-item .value.code{font-family:monospace;background:var(--bg-primary);padding:2px 6px;border-radius:4px}.profile-empty{font-size:13px;color:var(--text-secondary);font-style:italic}@media (width <= 768px){.profile-modal-content{max-width:420px}.profile-body{padding:16px}.profile-section h4{font-size:12px}.profile-item .value{font-size:14px}}@media (width <= 480px){.user-profile-modal{padding:8px;align-items:flex-end}.profile-modal-content{max-height:80vh;max-width:100%;border-radius:12px 12px 0 0}.profile-modal-header{padding:12px 16px}.profile-modal-header .modal-title{font-size:16px}.profile-body{padding:12px 16px}.profile-section{margin-bottom:16px}.profile-section.user-info-section{padding-bottom:12px;margin-bottom:12px}.profile-section h4{font-size:11px;margin-bottom:8px}.profile-email{font-size:14px}.profile-nickname{font-size:13px}.profile-grid{grid-template-columns:1fr;gap:8px}.profile-item{flex-direction:row;justify-content:space-between;align-items:center}.profile-item .label{font-size:12px}.profile-item .value{font-size:13px;text-align:right}.profile-empty{font-size:12px}}.admin-monitor-loading{display:flex;justify-content:center;align-items:center;height:100vh;font-size:1.2rem}.admin-monitor-login-container{display:flex;justify-content:center;align-items:center;min-height:100vh;background-color:#f5f5f5;padding:20px}.admin-monitor-login-box{background:#fff;padding:40px;border-radius:8px;box-shadow:0 2px 8px #0000001a;width:100%;max-width:400px}.admin-monitor-login-box .form-group{margin-bottom:20px}.admin-monitor-login-box .form-group label{display:block;margin-bottom:8px;color:#333;font-weight:500;font-size:14px}.admin-monitor-login-box .form-group input{width:100%;padding:12px;border:1px solid #ddd;border-radius:4px;font-size:14px;box-sizing:border-box;transition:border-color .2s}.admin-monitor-login-box .form-group input:focus{outline:none;border-color:#999}.admin-monitor-login-box .form-group input:disabled{background-color:#f5f5f5;cursor:not-allowed}.admin-monitor-login-box .error-message{background-color:#fee;color:#c33;padding:12px;border-radius:4px;margin-bottom:20px;font-size:14px}.admin-monitor-login-box button[type=submit]{width:100%;padding:12px;background-color:#666;color:#fff;border:none;border-radius:4px;font-size:16px;font-weight:600;cursor:pointer;transition:background-color .2s}.admin-monitor-login-box button[type=submit]:disabled{opacity:.6;cursor:not-allowed}.admin-monitor-login-box button[type=submit]:hover:not(:disabled){background-color:#555}.upstream-accounts{padding:20px;background:#f5f5f5;color:#333}.upstream-accounts .loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;text-align:center}.upstream-accounts .loading-container .loading-spinner{width:40px;height:40px;border:4px solid currentcolor;border-top-color:transparent;border-radius:50%;animation:spin .8s linear infinite;margin-bottom:20px}@keyframes spin{to{transform:rotate(360deg)}}.upstream-accounts .accounts-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px}.upstream-accounts .accounts-header h2{margin:0;font-size:24px}.upstream-accounts .accounts-header .header-actions{display:flex;align-items:center;gap:16px}.upstream-accounts .accounts-header .batch-actions{display:flex;align-items:center;gap:8px}.upstream-accounts .accounts-header .batch-actions .selected-count{font-size:14px;color:#666;margin-right:8px}.upstream-accounts .error-message{padding:12px 16px;margin-bottom:20px;border-radius:4px;font-size:14px;background:#ffe0e0;color:#d32f2f;border:1px solid #fcc}.upstream-accounts .accounts-table-wrapper{overflow-x:auto;border-radius:4px;margin-bottom:20px}.upstream-accounts .accounts-table{width:100%;border-collapse:collapse;font-size:14px;background:#fff;border:1px solid #ddd}.upstream-accounts .accounts-table thead{font-weight:600;text-align:left;position:sticky;top:0;z-index:10;background:#f9f9f9;color:#333}.upstream-accounts .accounts-table th{padding:12px 16px;border:none}.upstream-accounts .accounts-table td{padding:12px 16px;vertical-align:middle;color:#666}.upstream-accounts .accounts-table .checkbox-col{width:40px;text-align:center}.upstream-accounts .accounts-table .account-string{font-family:Courier New,monospace;font-size:12px;max-width:200px;word-break:break-all}.upstream-accounts .accounts-table .uuid{position:relative;font-family:Courier New,monospace;font-size:12px}.upstream-accounts .accounts-table .uuid code{cursor:help}.upstream-accounts .accounts-table .uuid .full-uuid{display:none}.upstream-accounts .accounts-table .time{font-size:13px;white-space:nowrap}.upstream-accounts .accounts-table .status{font-size:13px}.upstream-accounts .accounts-table .no-data{text-align:center;padding:40px 16px;color:#999;font-style:italic}.upstream-accounts .accounts-footer{display:flex;justify-content:space-between;align-items:center;padding-top:20px;border-top:1px solid #ddd;font-size:14px}.upstream-accounts .accounts-footer .account-count{margin:0;font-weight:500}.upstream-accounts .checkbox-col input[type=checkbox]{width:16px;height:16px;cursor:pointer}.upstream-accounts .accounts-table tbody tr{border-bottom:1px solid #eee}.upstream-accounts .accounts-table tbody tr:hover{background:#fafafa}.upstream-accounts .accounts-table tbody tr.disabled-row{opacity:.7}.upstream-accounts .accounts-table tbody tr.selected-row{background:#e3f2fd}.upstream-accounts .accounts-table .uuid:hover .full-uuid{display:block;position:absolute;top:100%;left:0;background:#333;color:#fff;padding:4px 8px;border-radius:2px;font-size:11px;white-space:nowrap;z-index:100}.upstream-accounts .batch-button{padding:8px 16px;border:none;border-radius:4px;cursor:pointer;font-size:14px;font-weight:600;transition:all .2s}.upstream-accounts .batch-button:disabled{opacity:.5;cursor:not-allowed}.upstream-accounts .batch-button.copy{background:#2196f3;color:#fff}.upstream-accounts .batch-button.copy:hover:not(:disabled){background:#1e88e5}.upstream-accounts .batch-button.mark-paid{background:#4caf50;color:#fff}.upstream-accounts .batch-button.mark-paid:hover:not(:disabled){background:#43a047}.upstream-accounts .batch-button.mark-unpaid{background:#f44336;color:#fff}.upstream-accounts .batch-button.mark-unpaid:hover:not(:disabled){background:#e53935}.upstream-accounts .refresh-button{padding:8px 16px;border:none;border-radius:4px;cursor:pointer;font-size:14px;font-weight:600;transition:all .2s;background:#e0e0e0;color:#333}.upstream-accounts .refresh-button:disabled{opacity:.5;cursor:not-allowed}.upstream-accounts.dark .refresh-button{background:#333;color:#e0e0e0}.upstream-accounts .refresh-button:hover:not(:disabled){background:#d0d0d0}.upstream-accounts.dark .refresh-button:hover:not(:disabled){background:#444}.upstream-accounts.dark{background:#0a0a0a;color:#e0e0e0}.upstream-accounts.dark .accounts-table{background:#1a1a1a;border:1px solid #333}.upstream-accounts.dark .accounts-table thead{background:#2a2a2a;color:#e0e0e0}.upstream-accounts.dark .accounts-table td{color:#b0b0b0}.upstream-accounts.dark .error-message{background:#8b3333;color:#fcc;border:1px solid #c55}.upstream-accounts.dark .accounts-footer{border-top:1px solid #333}.upstream-accounts.dark .batch-actions .selected-count{color:#aaa}.upstream-accounts.dark .accounts-table tbody tr{border-bottom:1px solid #333}.upstream-accounts.dark .accounts-table tbody tr:hover{background:#252525}.upstream-accounts.dark .accounts-table tbody tr.disabled-row{opacity:.7}.upstream-accounts.dark .accounts-table tbody tr.selected-row{background:#1a3a5a}.admin-upstream{min-height:100vh;display:flex;flex-direction:column;background:#f5f5f5;color:#333}.admin-upstream .time-range-selector,.admin-upstream .metric-selector{display:flex;gap:8px;background:#0000000d;padding:4px;border-radius:4px}.admin-upstream .time-range-selector button,.admin-upstream .metric-selector button{padding:6px 12px;border:1px solid transparent;background:transparent;cursor:pointer;font-size:13px;font-weight:600;border-radius:3px;transition:all .2s}.admin-upstream .time-range-selector button:hover,.admin-upstream .metric-selector button:hover{background:#0000001a}.admin-upstream .time-range-selector button.active,.admin-upstream .metric-selector button.active{background:#8884d8;color:#fff}.admin-upstream .admin-header{display:flex;justify-content:space-between;align-items:center;padding:20px 30px;box-shadow:0 2px 4px #0000001a;background:#fff;border-bottom:1px solid #ddd}.admin-upstream .admin-header h1{margin:0;font-size:28px;font-weight:700}.admin-upstream .admin-header .controls{display:flex;gap:12px}.admin-upstream .admin-header .controls button{padding:8px 16px;border:none;border-radius:4px;cursor:pointer;font-size:14px;font-weight:600;transition:all .2s}.admin-upstream .admin-header .controls button.theme-toggle{font-size:18px;padding:8px 12px;background:transparent;border:1px solid currentcolor}.admin-upstream .title-section{display:flex;justify-content:space-between;align-items:center;padding:0 30px;background:#fff;border-bottom:1px solid #ddd}.admin-upstream .tab-navigation{display:flex;gap:0;align-items:flex-end;background:#fff}.admin-upstream .tab-navigation .tab-button{padding:16px 20px;background:transparent;border:none;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s;position:relative;color:#888;border-bottom:2px solid transparent}.admin-upstream .tab-navigation .tab-button:hover{opacity:.7;color:#666}.admin-upstream .tab-navigation .tab-button.active{font-weight:700;color:#333;border-bottom-color:#8884d8}.admin-upstream .title-section .back-button{padding:8px 16px;border:none;border-radius:4px;cursor:pointer;font-size:14px;font-weight:600;transition:all .2s;background:#8884d8;color:#fff;margin-left:auto}.admin-upstream .title-section .back-button:hover{background:#6b5fb8}.admin-upstream .tab-content{flex:1;padding:30px;overflow-y:auto}.admin-upstream .section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px;flex-wrap:wrap;gap:20px}.admin-upstream .section-header h2{margin:0;font-size:24px;font-weight:700;color:#333}.admin-upstream .section-header .controls-group{display:flex;gap:20px;flex-wrap:wrap;justify-content:flex-end}.admin-upstream .loading-message{padding:16px 20px;border-radius:4px;margin-bottom:20px;text-align:center;font-size:14px;background:#f9f9f9;color:#666}.admin-upstream .error-message{padding:16px 20px;border-radius:4px;margin-bottom:20px;text-align:center;font-size:14px;font-weight:600;background:#ffe0e0;color:#d32f2f;border:1px solid #fcc}.admin-upstream .chart-container{margin-top:30px}.admin-upstream .usage-section,.admin-upstream .accounts-section{animation:fade-in .3s ease-in}@keyframes fade-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (width <= 768px){.admin-upstream .admin-header{flex-direction:column;align-items:flex-start;gap:16px;padding:16px}.admin-upstream .admin-header h1{font-size:22px}.admin-upstream .admin-header .controls{width:100%;justify-content:space-between}.admin-upstream .title-section{flex-direction:column;align-items:flex-start;gap:12px;padding:16px}.admin-upstream .title-section .back-button{width:100%;margin-left:0}.admin-upstream .tab-navigation{overflow-x:auto}.admin-upstream .tab-content{padding:16px}.admin-upstream .section-header{flex-direction:column;align-items:flex-start}.admin-upstream .section-header .controls-group{justify-content:flex-start;width:100%}}.admin-upstream.dark{background:#0a0a0a;color:#e0e0e0}.admin-upstream.dark .admin-header,.admin-upstream.dark .title-section{background:#1a1a1a;border-bottom:1px solid #333}.admin-upstream.dark .tab-navigation{background:#1a1a1a}.admin-upstream.dark .tab-navigation .tab-button{color:#888;border-bottom:2px solid transparent}.admin-upstream.dark .tab-navigation .tab-button:hover{color:#b0b0b0}.admin-upstream.dark .tab-navigation .tab-button.active{color:#e0e0e0;border-bottom-color:#8884d8}.admin-upstream.dark .title-section .back-button{background:#8884d8;color:#fff}.admin-upstream.dark .title-section .back-button:hover{background:#6b5fb8}.admin-upstream.dark .section-header h2{color:#e0e0e0}.admin-upstream.dark .loading-message{background:#1a1a1a;color:#e0e0e0}.admin-upstream.dark .error-message{background:#8b3333;color:#fcc;border:1px solid #c55}@keyframes fade-in-up-keyframes{to{opacity:1;transform:translateY(0)}}@keyframes fade-in-keyframes{to{opacity:1}}.message-toast{position:fixed;top:20px;right:20px;background-color:#333;color:#fff;padding:12px 16px;border-radius:4px;box-shadow:0 4px 12px #00000026;z-index:9999;display:flex;align-items:center;gap:12px;font-size:14px;max-width:400px;animation:slide-in-right .3s ease-out}@keyframes slide-in-right{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}
