.login-container{display:flex;width:100vw;height:100vh;overflow:hidden;background:linear-gradient(135deg,#1B365D 15%,#2C5282 85%);align-items:center;justify-content:center}.login-box{background-color:#fff;border-radius:8px;box-shadow:0 4px 20px #0000004d;padding:40px;width:100%;max-width:400px}.login-header{text-align:center;margin-bottom:32px}.login-title{font-size:28px;font-weight:700;color:#2c3e50;margin-bottom:8px}.login-subtitle{font-size:14px;color:#7f8c8d}.login-form{display:flex;flex-direction:column;gap:20px}.form-group{display:flex;flex-direction:column;gap:8px}.form-label{font-size:14px;font-weight:500;color:#2c3e50}.form-input{width:100%;height:44px;padding:0 14px;border:1px solid #DCDFE6;border-radius:4px;font-size:14px;color:#303133;outline:none;transition:border-color .3s;box-sizing:border-box}.form-input:focus{border-color:#409eff}.form-input::placeholder{color:#c0c4cc}.error-message{color:#e74c3c;font-size:12px;margin-top:4px}.login-button{width:100%;height:44px;background:#409EFF;border:none;border-radius:4px;color:#fff;font-size:16px;font-weight:500;cursor:pointer;transition:background-color .3s;margin-top:8px}.login-button:hover{background:#66b1ff}.login-button:disabled{background:#a0cfff;cursor:not-allowed}.login-footer{text-align:center;margin-top:24px;font-size:12px;color:#7f8c8d}@media (max-width: 480px){.login-box{padding:24px;margin:20px}.login-title{font-size:24px}}.dashboard-container{display:flex;flex-direction:column;gap:24px}.stats-section{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}.section-title{grid-column:1 / -1;color:#2c3e50;font-size:18px;font-weight:700;line-height:28px;margin:8px 0}.stat-card{background-color:#fff;border-radius:8px;box-shadow:0 1px 2px #0000000d;padding:24px;display:flex;gap:16px;align-items:center;flex:1;transition:transform .2s ease,box-shadow .2s ease}.stat-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.stat-card.cpu-theme .stat-icon-container{background-color:#3498db1a}.stat-card.memory-theme .stat-icon-container{background-color:#27ae601a}.stat-card.disk-theme .stat-icon-container{background-color:#f39c121a}.stat-card.mongodb-theme .stat-icon-container{background-color:#9b59b61a}.stat-card.api-theme .stat-icon-container{background-color:#e74c3c1a}.stat-card.users-theme .stat-icon-container{background-color:#1abc9c1a}.stat-card.alerts-theme .stat-icon-container,.stat-card.alert-theme .stat-icon-container{background-color:#e74c3c1a}.stat-icon-container{background-color:#3498db1a;border-radius:9999px;padding:12px;width:48px;height:48px;display:flex;justify-content:center;align-items:center}.stat-icon{width:24px;height:24px;background-size:cover}.stat-icon-emoji{font-size:24px;line-height:1;display:flex;align-items:center;justify-content:center}.cpu-icon{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%233498db' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='4' width='16' height='16' rx='2' ry='2'%3E%3C/rect%3E%3Crect x='9' y='9' width='6' height='6'%3E%3C/rect%3E%3Cline x1='9' y1='1' x2='9' y2='4'%3E%3C/line%3E%3Cline x1='15' y1='1' x2='15' y2='4'%3E%3C/line%3E%3Cline x1='9' y1='20' x2='9' y2='23'%3E%3C/line%3E%3Cline x1='15' y1='20' x2='15' y2='23'%3E%3C/line%3E%3Cline x1='20' y1='9' x2='23' y2='9'%3E%3C/line%3E%3Cline x1='20' y1='14' x2='23' y2='14'%3E%3C/line%3E%3Cline x1='1' y1='9' x2='4' y2='9'%3E%3C/line%3E%3Cline x1='1' y1='14' x2='4' y2='14'%3E%3C/line%3E%3C/svg%3E")}.memory-icon{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%2327ae60' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 20h.01'%3E%3C/path%3E%3Cpath d='M7 20v-4'%3E%3C/path%3E%3Cpath d='M12 20v-8'%3E%3C/path%3E%3Cpath d='M17 20V8'%3E%3C/path%3E%3Cpath d='M22 4v16'%3E%3C/path%3E%3C/svg%3E")}.disk-icon{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23f39c12' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cellipse cx='12' cy='5' rx='9' ry='3'%3E%3C/ellipse%3E%3Cpath d='M21 12c0 1.66-4 3-9 3s-9-1.34-9-3'%3E%3C/path%3E%3Cpath d='M3 5v14c0 1.66 4 3 9 3s9-1.34 9-3V5'%3E%3C/path%3E%3C/svg%3E")}.mongodb-icon{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%239b59b6' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20.59 13.41l-7.17 7.17a2 2 0 0 1-2.83 0L2.41 12.41a2 2 0 0 1 0-2.83L10.59 2.41a2 2 0 0 1 2.83 0l7.17 7.17a2 2 0 0 1 0 2.83z'%3E%3C/path%3E%3Cline x1='12' y1='8' x2='12' y2='12'%3E%3C/line%3E%3Cline x1='12' y1='16' x2='12.01' y2='16'%3E%3C/line%3E%3C/svg%3E")}.api-icon{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23e74c3c' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='22 12 18 12 15 21 9 3 6 12 2 12'%3E%3C/polyline%3E%3C/svg%3E")}.users-icon{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%231abc9c' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2'%3E%3C/path%3E%3Ccircle cx='9' cy='7' r='4'%3E%3C/circle%3E%3Cpath d='M23 21v-2a4 4 0 0 0-3-3.87'%3E%3C/path%3E%3Cpath d='M16 3.13a4 4 0 0 1 0 7.75'%3E%3C/path%3E%3C/svg%3E")}.teacher-icon{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%233498db' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2'%3E%3C/path%3E%3Ccircle cx='12' cy='7' r='4'%3E%3C/circle%3E%3C/svg%3E")}.student-icon{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%2327ae60' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2'%3E%3C/path%3E%3Ccircle cx='12' cy='7' r='4'%3E%3C/circle%3E%3C/svg%3E")}.sessions-icon{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%239b59b6' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z'%3E%3C/path%3E%3Cpolyline points='3.27 6.96 12 12.01 20.73 6.96'%3E%3C/polyline%3E%3Cline x1='12' y1='22.08' x2='12' y2='12'%3E%3C/line%3E%3C/svg%3E")}.alerts-icon{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23e74c3c' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z'%3E%3C/path%3E%3Cline x1='12' y1='9' x2='12' y2='13'%3E%3C/line%3E%3Cline x1='12' y1='17' x2='12.01' y2='17'%3E%3C/line%3E%3C/svg%3E")}.alert-icon{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23e74c3c' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z'%3E%3C/path%3E%3Cline x1='12' y1='9' x2='12' y2='13'%3E%3C/line%3E%3Cline x1='12' y1='17' x2='12.01' y2='17'%3E%3C/line%3E%3C/svg%3E")}.stat-content{display:flex;flex-direction:column}.stat-title{color:#7f8c8d;line-height:20px;margin-bottom:4px}.stat-subtitle{color:#95a5a6;font-size:12px;line-height:16px;margin-bottom:4px}.stat-number{display:flex;align-items:baseline;gap:4px}.stat-number .count{color:#2c3e50;font-size:30px;font-weight:700;line-height:36px}.stat-number .unit{color:#2c3e50;font-size:16px;font-weight:400;line-height:36px}.status-indicator{width:8px;height:8px;border-radius:50%;margin-left:8px;align-self:center}.charts-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;margin-bottom:24px}.chart-item,.chart-container{background-color:#fff;border-radius:8px;box-shadow:0 1px 2px #0000000d;padding:24px;display:flex;flex-direction:column;gap:16px}.chart-title{color:#2c3e50;font-size:18px;font-weight:700;line-height:28px;margin:0}.chart-wrapper{width:100%}.alerts-section{background-color:#fff;border-radius:8px;box-shadow:0 1px 2px #0000000d;padding:24px}.alerts-section.critical-alerts{border:2px solid #e74c3c;background-color:#ffebee}.alerts-title{color:#2c3e50;font-size:18px;font-weight:700;line-height:28px;margin-bottom:16px;display:flex;align-items:center;gap:8px}.alert-icon.critical{font-size:24px}.alert-list{display:flex;flex-direction:column;gap:12px;max-height:400px;overflow-y:auto;padding-right:8px}.alert-list::-webkit-scrollbar{width:8px}.alert-list::-webkit-scrollbar-track{background:#f1f1f1;border-radius:4px}.alert-list::-webkit-scrollbar-thumb{background:#bdc3c7;border-radius:4px}.alert-list::-webkit-scrollbar-thumb:hover{background:#95a5a6}.alert-item{padding:16px;border-radius:8px;border-left:4px solid;display:flex;justify-content:space-between;align-items:flex-start;gap:16px;transition:all .2s ease}.alert-item:hover{box-shadow:0 2px 8px #0000001a}.alert-item.acknowledged{opacity:.7}.alert-item.critical{background-color:#ffebee;border-left-color:#e74c3c}.alert-item.warning{background-color:#fff8e1;border-left-color:#f39c12}.alert-item.info{background-color:#e3f2fd;border-left-color:#3498db}.alert-content{flex:1;display:flex;flex-direction:column;gap:8px}.alert-header{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.alert-severity-badge{display:inline-block;padding:2px 8px;border-radius:4px;font-size:12px;font-weight:600;background-color:#0000001a}.alert-item.critical .alert-severity-badge{background-color:#e74c3c;color:#fff}.alert-item.warning .alert-severity-badge{background-color:#f39c12;color:#fff}.alert-item.info .alert-severity-badge{background-color:#3498db;color:#fff}.alert-badge{display:inline-block;padding:2px 8px;border-radius:4px;font-size:12px;font-weight:500}.alert-badge.acknowledged{background-color:#27ae60;color:#fff}.alert-title{font-weight:600;color:#2c3e50;font-size:15px}.alert-message{font-size:14px;color:#7f8c8d;line-height:1.5}.alert-meta{display:flex;gap:16px;font-size:12px;color:#95a5a6}.alert-time,.alert-source{font-size:12px;color:#95a5a6}.alert-actions{display:flex;flex-direction:column;gap:8px;min-width:80px}.btn-acknowledge,.btn-resolve{padding:6px 12px;border:none;border-radius:4px;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s ease;white-space:nowrap}.btn-acknowledge{background-color:#3498db;color:#fff}.btn-acknowledge:hover{background-color:#2980b9}.btn-resolve{background-color:#27ae60;color:#fff}.btn-resolve:hover{background-color:#229954}.btn-acknowledge:active,.btn-resolve:active{transform:scale(.98)}@media (max-width: 1200px){.charts-grid{grid-template-columns:1fr}}@media (max-width: 768px){.stats-section{grid-template-columns:repeat(2,1fr)}.charts-grid{grid-template-columns:1fr}}@media (max-width: 480px){.stats-section{grid-template-columns:1fr}.stat-card,.chart-container,.chart-item,.alerts-section{padding:16px}}.user-stats-page{padding:20px;max-width:1400px;margin:0 auto}.page-header{margin-bottom:30px;display:flex;justify-content:space-between;align-items:flex-start}.refresh-btn{padding:10px 20px;background:#3b82f6;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;transition:all .2s;display:flex;align-items:center;gap:5px}.refresh-btn:hover:not(:disabled){background:#2563eb;transform:translateY(-1px);box-shadow:0 4px 6px #3b82f64d}.refresh-btn:disabled{background:#9ca3af;cursor:not-allowed;opacity:.6}.filters-section{background:white;padding:20px;border-radius:8px;box-shadow:0 1px 3px #0000001a;margin-bottom:20px;display:flex;flex-wrap:wrap;gap:15px;align-items:flex-end}.filter-group label{font-size:14px;color:#374151;font-weight:500}.filter-group select,.filter-group input{padding:8px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:14px;min-width:150px}.filter-group select:focus,.filter-group input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.export-btn{padding:8px 16px;background:#10b981;color:#fff;border:none;border-radius:6px;font-size:14px;cursor:pointer;transition:background .2s;margin-left:auto}.export-btn:hover{background:#059669}.search-section{margin-bottom:20px}.search-input{width:100%;padding:12px 16px;border:1px solid #d1d5db;border-radius:8px;font-size:14px;background:white}.search-input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.content-layout{display:grid;grid-template-columns:1fr 350px;gap:20px}@media (max-width: 1024px){.content-layout{grid-template-columns:1fr}}.user-list-section{background:white;padding:20px;border-radius:8px;box-shadow:0 1px 3px #0000001a}.user-list-section h2{font-size:20px;color:#1f2937;margin-bottom:20px}.user-table-container{overflow-x:auto}.user-table{width:100%;border-collapse:collapse}.user-table thead{background:#f9fafb}.user-table th{padding:12px;text-align:left;font-size:13px;font-weight:600;color:#374151;border-bottom:2px solid #e5e7eb}.user-table td{padding:12px;font-size:14px;color:#1f2937;border-bottom:1px solid #e5e7eb}.user-table tbody tr:hover{background:#f9fafb}.role-badge{display:inline-block;padding:4px 8px;border-radius:4px;font-size:12px;font-weight:500}.view-detail-btn{padding:6px 12px;background:#3b82f6;color:#fff;border:none;border-radius:4px;font-size:13px;cursor:pointer;transition:background .2s}.view-detail-btn:hover{background:#2563eb}.top-users-section h2{font-size:20px;color:#1f2937;margin-bottom:20px}.top-users-list{display:flex;flex-direction:column;gap:12px;max-height:600px;overflow-y:auto}.top-user-item{display:flex;align-items:center;gap:12px;padding:12px;background:#f9fafb;border-radius:6px;transition:background .2s}.top-user-item:hover{background:#f3f4f6}.top-user-item .rank{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:#3b82f6;color:#fff;border-radius:50%;font-weight:600;font-size:14px;flex-shrink:0}.top-user-item:nth-child(1) .rank{background:#fbbf24}.top-user-item:nth-child(3) .rank{background:#f59e0b}.user-info .user-stats{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.user-info .stat{font-size:13px;color:#6b7280}.user-info .cost{font-size:13px;color:#10b981;font-weight:600}.loading,.error,.no-data{padding:40px;text-align:center;color:#6b7280}.error{color:#ef4444}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.modal-content{background:white;border-radius:12px;max-width:900px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 20px 25px -5px #0000001a}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px;border-bottom:1px solid #e5e7eb}.modal-header h2{font-size:20px;color:#1f2937;margin:0}.close-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:#f3f4f6;border:none;border-radius:6px;font-size:24px;color:#6b7280;cursor:pointer;transition:background .2s}.close-btn:hover{background:#e5e7eb}.user-detail-info{background:#f9fafb;padding:16px;border-radius:8px;margin-bottom:20px}.user-detail-info p{margin:8px 0;font-size:14px;color:#374151}.user-detail-chart{margin-bottom:30px}.user-detail-chart h3,.user-detail-table h3{font-size:16px;color:#1f2937;margin-bottom:16px}.user-detail-table table{width:100%;border-collapse:collapse}.user-detail-table thead{background:#f9fafb}.user-detail-table th{padding:10px;text-align:left;font-size:13px;font-weight:600;color:#374151;border-bottom:2px solid #e5e7eb}.user-detail-table td{padding:10px;font-size:13px;color:#1f2937;border-bottom:1px solid #e5e7eb}.user-detail-table tbody tr:hover{background:#f9fafb}.page-header h1{font-size:28px;color:#2c3e50;margin-bottom:8px;font-weight:600}.page-description{color:#7f8c8d;font-size:14px}.stats-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px;margin-bottom:30px}.stat-card{background:white;padding:24px;border-radius:12px;box-shadow:0 1px 3px #00000014;border-left:4px solid #3498db;transition:transform .2s,box-shadow .2s}.stat-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001f}.stat-card.error{border-left-color:#e74c3c}.stat-card.warning{border-left-color:#f39c12}.stat-label{font-size:13px;color:#7f8c8d;margin-bottom:10px;font-weight:500;text-transform:uppercase;letter-spacing:.5px}.stat-value{font-size:36px;font-weight:700;color:#2c3e50}.chart-container{background:white;padding:24px;border-radius:12px;box-shadow:0 1px 3px #00000014;margin-bottom:30px;height:320px}.chart-container h3{font-size:18px;color:#2c3e50;margin-bottom:20px;font-weight:600}.filters-section{background:white;border-radius:12px;box-shadow:0 1px 3px #00000014;margin-bottom:24px;overflow:hidden}.filters-header{padding:20px 24px;border-bottom:1px solid #f0f0f0;background:linear-gradient(to bottom,#fafafa,#ffffff)}.filters-header h3{font-size:16px;font-weight:600;color:#2c3e50;margin:0}.filters-form{padding:24px}.filters-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.filter-item{display:flex;flex-direction:column;gap:8px}.filter-item-search{grid-column:span 2}.filter-item-actions{display:flex;flex-direction:column;justify-content:flex-end}.filter-item label{font-size:13px;font-weight:500;color:#555}.filter-item input,.filter-item select{padding:11px 14px;border:1px solid #e0e0e0;border-radius:8px;font-size:14px;transition:all .2s;background:white}.filter-item input:hover,.filter-item select:hover{border-color:silver}.filter-item input:focus,.filter-item select:focus{outline:none;border-color:#3498db;box-shadow:0 0 0 3px #3498db1a}.filter-buttons{display:flex;gap:12px}.btn-search,.btn-reset{flex:1;padding:11px 20px;border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.btn-search{background:#27ae60;color:#fff}.btn-search:hover{background:#229954;transform:translateY(-1px);box-shadow:0 4px 12px #27ae6040}.btn-search:active{transform:translateY(0)}.btn-reset{background:white;color:#666;border:1px solid #e0e0e0}.btn-reset:hover{background:#f8f8f8;border-color:silver}.logs-section{background:white;padding:24px;border-radius:12px;box-shadow:0 1px 3px #00000014}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:16px;border-bottom:2px solid #f0f0f0}.section-header h3{font-size:18px;color:#2c3e50;font-weight:600}.pagination-info{font-size:13px;color:#7f8c8d;background:#f8f9fa;padding:6px 12px;border-radius:6px}.logs-table{overflow-x:auto;border-radius:8px;border:1px solid #f0f0f0}.logs-table table{width:100%;border-collapse:collapse}.logs-table th{background:#f8f9fa;padding:14px 16px;text-align:left;font-size:13px;color:#555;font-weight:600;border-bottom:2px solid #e0e0e0;text-transform:uppercase;letter-spacing:.5px}.logs-table td{padding:14px 16px;border-bottom:1px solid #f0f0f0;font-size:14px;color:#2c3e50}.logs-table tbody tr{transition:background .15s}.logs-table tbody tr:hover{background:#f8f9fa}.logs-table tbody tr:last-child td{border-bottom:none}.level-badge{display:inline-block;padding:5px 12px;border-radius:16px;font-size:12px;font-weight:600}.level-badge.level-error{background:#fee;color:#e74c3c}.level-badge.level-warning{background:#fef5e7;color:#f39c12}.endpoint{font-family:Monaco,Menlo,Courier New,monospace;font-size:13px;color:#2c3e50;background:#f8f9fa;padding:4px 8px;border-radius:4px}.status-code{font-weight:600;color:#e74c3c;font-family:Monaco,Menlo,Courier New,monospace}.error-message{max-width:350px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.btn-link{background:none;border:none;color:#3498db;cursor:pointer;font-size:13px;font-weight:500;padding:6px 12px;border-radius:6px;transition:all .2s}.btn-link:hover{background:#e3f2fd;color:#2980b9}.pagination{display:flex;justify-content:center;align-items:center;gap:16px;margin-top:24px;padding-top:20px;border-top:1px solid #f0f0f0}.btn-pagination{padding:10px 20px;border:1px solid #e0e0e0;background:white;border-radius:8px;cursor:pointer;font-size:14px;font-weight:500;transition:all .2s;color:#555}.btn-pagination:hover:not(:disabled){background:#3498db;color:#fff;border-color:#3498db;transform:translateY(-1px);box-shadow:0 2px 8px #3498db40}.btn-pagination:disabled{opacity:.4;cursor:not-allowed}.page-info{font-size:14px;color:#2c3e50;font-weight:500}.loading,.no-data{text-align:center;padding:60px 20px;color:#7f8c8d;font-size:15px}.loading:before{content:"⏳ "}.no-data:before{content:"📭 "}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.6);display:flex;justify-content:center;align-items:center;z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal-content{background:white;border-radius:16px;width:90%;max-width:800px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #0000004d;animation:modalSlideIn .3s ease-out}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:24px;border-bottom:1px solid #f0f0f0;background:linear-gradient(to bottom,#fafafa,#ffffff)}.modal-header h3{font-size:20px;color:#2c3e50;margin:0;font-weight:600}.modal-close{background:none;border:none;font-size:28px;color:#7f8c8d;cursor:pointer;padding:0;width:36px;height:36px;display:flex;align-items:center;justify-content:center;transition:all .2s;border-radius:8px}.modal-close:hover{background:#f0f0f0;color:#2c3e50}.modal-body{padding:24px}.detail-row{display:flex;margin-bottom:18px;gap:16px}.detail-row label{font-weight:600;color:#555;min-width:130px;flex-shrink:0;font-size:13px}.detail-row span{color:#2c3e50;word-break:break-word;font-size:14px}.detail-row.stack-trace{flex-direction:column}.detail-row pre{background:#f8f9fa;padding:16px;border-radius:8px;overflow-x:auto;font-size:12px;line-height:1.6;margin:0;font-family:Monaco,Menlo,Courier New,monospace;border:1px solid #e0e0e0}.user-agent{font-size:12px;color:#7f8c8d;font-family:Monaco,Menlo,Courier New,monospace}@media (max-width: 1200px){.filters-grid{grid-template-columns:repeat(2,1fr)}.filter-item-search{grid-column:span 2}}@media (max-width: 768px){.filters-grid{grid-template-columns:1fr}.filter-item-search,.filter-item-actions{grid-column:span 1}.stats-cards{grid-template-columns:1fr}.logs-table{font-size:12px}.logs-table th,.logs-table td{padding:10px 12px}.modal-content{width:95%;max-height:95vh;border-radius:12px}.detail-row{flex-direction:column;gap:6px}.detail-row label{min-width:auto}}.query-panel{background:white;border-radius:8px;padding:24px;margin-bottom:24px;box-shadow:0 1px 3px #0000001a}.query-row{display:flex;gap:16px;margin-bottom:16px;flex-wrap:wrap}.query-field{flex:1;min-width:200px}.query-field label{display:block;margin-bottom:8px;font-weight:500;color:#374151;font-size:14px}.query-select,.query-input{width:100%;padding:8px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:14px;transition:border-color .2s}.query-select:focus,.query-input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.query-actions{display:flex;gap:12px;margin-top:16px}.btn{padding:10px 20px;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:#3b82f6;color:#fff}.btn-primary:hover:not(:disabled){background:#2563eb}.btn-secondary{background:#6b7280;color:#fff}.btn-secondary:hover:not(:disabled){background:#4b5563}.chart-container{background:white;border-radius:8px;padding:24px;margin-bottom:24px;box-shadow:0 1px 3px #0000001a}.chart-header h2{font-size:18px;font-weight:600;color:#111827;margin:0}.data-count{font-size:14px;color:#6b7280}.data-table-container{background:white;border-radius:8px;padding:24px;box-shadow:0 1px 3px #0000001a}.table-header{margin-bottom:16px}.table-header h2{font-size:18px;font-weight:600;color:#111827;margin:0}.table-wrapper{overflow-x:auto}.data-table{width:100%;border-collapse:collapse;font-size:14px}.data-table thead{background:#f9fafb}.data-table th{padding:12px 16px;text-align:left;font-weight:600;color:#374151;border-bottom:2px solid #e5e7eb}.data-table td{padding:12px 16px;border-bottom:1px solid #e5e7eb;color:#6b7280}.data-table tbody tr:hover{background:#f9fafb}.table-footer{margin-top:16px;padding:12px;background:#fef3c7;border-radius:6px;text-align:center;font-size:14px;color:#92400e}.error-message{background:#fee2e2;border:1px solid #fecaca;border-radius:8px;padding:16px;margin-bottom:24px;display:flex;align-items:center;gap:12px;color:#991b1b}.error-icon{font-size:20px}.empty-state{background:white;border-radius:8px;padding:60px 24px;text-align:center;box-shadow:0 1px 3px #0000001a}.empty-icon{font-size:48px;margin-bottom:16px}.empty-state p{margin:8px 0;color:#6b7280}.empty-hint{font-size:14px;color:#9ca3af}@media (max-width: 768px){.query-row{flex-direction:column}.query-field{min-width:100%}.query-actions{flex-direction:column}.btn{width:100%}.chart-header{flex-direction:column;align-items:flex-start;gap:8px}}.account-management{padding:20px;max-width:1400px;margin:0 auto}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px}.page-header h1{font-size:28px;color:#333;margin:0}.filter-section{background:white;padding:20px;border-radius:8px;box-shadow:0 2px 4px #0000001a;margin-bottom:20px}.search-box{display:flex;gap:10px;margin-bottom:15px}.search-box input{flex:1;padding:10px 15px;border:1px solid #ddd;border-radius:4px;font-size:14px}.search-box button{padding:10px 20px;background:#4CAF50;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:14px}.search-box button:hover{background:#45a049}.filters select{padding:8px 12px;border:1px solid #ddd;border-radius:4px;font-size:14px;background:white;cursor:pointer}.btn-reset{padding:8px 16px;background:#f5f5f5;color:#666;border:1px solid #ddd;border-radius:4px;cursor:pointer;font-size:14px}.btn-reset:hover{background:#e0e0e0}.btn-secondary{padding:10px 20px;background:#2196F3;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:14px}.btn-secondary:hover{background:#0b7dda}.operation-logs{background:white;padding:20px;border-radius:8px;box-shadow:0 2px 4px #0000001a;margin-bottom:20px}.operation-logs h2{font-size:20px;color:#333;margin:0 0 15px}.logs-table-container{overflow-x:auto}.logs-table{width:100%;border-collapse:collapse;font-size:14px}.logs-table th{background:#f5f5f5;padding:12px;text-align:left;font-weight:600;color:#666;border-bottom:2px solid #ddd}.logs-table td{padding:12px;border-bottom:1px solid #eee}.logs-table tbody tr:hover{background:#f9f9f9}.operation-badge{padding:4px 8px;border-radius:4px;font-size:12px;font-weight:500}.operation-badge.disable{background:#ffebee;color:#c62828}.operation-badge.enable{background:#e8f5e9;color:#2e7d32}.users-section{background:white;padding:20px;border-radius:8px;box-shadow:0 2px 4px #0000001a}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.total-count{color:#666;font-size:14px}.users-table{width:100%;border-collapse:collapse;font-size:14px}.users-table th{background:#f5f5f5;padding:12px;text-align:left;font-weight:600;color:#666;border-bottom:2px solid #ddd}.users-table td{padding:12px;border-bottom:1px solid #eee}.users-table tbody tr:hover{background:#f9f9f9}.role-badge{padding:4px 8px;border-radius:4px;font-size:12px;font-weight:500}.role-badge.admin{background:#e3f2fd;color:#1976d2}.role-badge.teacher{background:#f3e5f5;color:#7b1fa2}.role-badge.student{background:#e8f5e9;color:#388e3c}.status-badge{padding:4px 8px;border-radius:4px;font-size:12px;font-weight:500}.status-badge.active{background:#e8f5e9;color:#2e7d32}.status-badge.disabled{background:#ffebee;color:#c62828}.btn-danger{padding:6px 12px;background:#f44336;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:13px}.btn-danger:hover{background:#d32f2f}.btn-success{padding:6px 12px;background:#4CAF50;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:13px}.btn-success:hover{background:#45a049}.operating{color:#999;font-size:13px}.pagination{display:flex;justify-content:center;align-items:center;gap:15px;margin-top:20px;padding-top:20px;border-top:1px solid #eee}.pagination button{padding:8px 16px;background:#4CAF50;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:14px}.pagination button:hover:not(:disabled){background:#45a049}.pagination button:disabled{background:#ccc;cursor:not-allowed}.page-info{color:#666;font-size:14px}.loading{text-align:center;padding:40px;color:#666;font-size:16px}.error-message{background:#ffebee;color:#c62828;padding:15px;border-radius:4px;margin-bottom:20px;font-size:14px}.no-data{text-align:center;color:#999;padding:40px!important}@media (max-width: 768px){.account-management{padding:10px}.page-header{flex-direction:column;align-items:flex-start;gap:15px}.filter-section{padding:15px}.search-box{flex-direction:column}.filters{flex-direction:column;align-items:stretch}.filters select,.btn-reset{width:100%}.table-container{overflow-x:scroll}.users-table{min-width:800px}.logs-table{min-width:900px}}.feedback-management{padding:20px;max-width:1400px;margin:0 auto}.filters-section{background:white;padding:20px;border-radius:8px;box-shadow:0 2px 4px #0000001a;margin-bottom:20px;display:flex;flex-wrap:wrap;gap:15px;align-items:flex-end}.filter-group{display:flex;flex-direction:column;gap:5px}.filter-group label{font-size:14px;color:#666;font-weight:500}.filter-group select,.filter-group input{padding:8px 12px;border:1px solid #ddd;border-radius:4px;font-size:14px;min-width:150px}.filter-actions{display:flex;gap:10px;margin-left:auto}.btn-primary,.btn-secondary{padding:8px 16px;border:none;border-radius:4px;font-size:14px;cursor:pointer;transition:all .3s}.btn-primary{background:#4CAF50;color:#fff}.btn-primary:hover{background:#45a049}.btn-primary:disabled{background:#ccc;cursor:not-allowed}.btn-secondary{background:#f5f5f5;color:#333;border:1px solid #ddd}.btn-secondary:hover{background:#e0e0e0}.feedback-stats{background:white;padding:15px 20px;border-radius:8px;box-shadow:0 2px 4px #0000001a;margin-bottom:20px;display:flex;justify-content:space-between;align-items:center;font-size:14px;color:#666}.feedback-list{background:white;border-radius:8px;box-shadow:0 2px 4px #0000001a;overflow:hidden}.feedback-table{width:100%;border-collapse:collapse}.feedback-table thead{background:#f5f5f5}.feedback-table th{padding:12px 15px;text-align:left;font-weight:600;color:#333;font-size:14px;border-bottom:2px solid #e0e0e0}.feedback-table td{padding:12px 15px;border-bottom:1px solid #f0f0f0;font-size:14px;color:#666}.feedback-table tbody tr:hover{background:#f9f9f9}.content-cell{max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status-badge{display:inline-block;padding:4px 12px;border-radius:12px;font-size:12px;font-weight:500}.status-new{background:#e3f2fd;color:#1976d2}.status-in-progress{background:#fff3e0;color:#f57c00}.status-resolved{background:#e8f5e9;color:#388e3c}.btn-view{padding:6px 12px;background:#2196F3;color:#fff;border:none;border-radius:4px;font-size:13px;cursor:pointer;transition:background .3s}.btn-view:hover{background:#1976d2}.pagination{display:flex;justify-content:center;align-items:center;gap:15px;margin-top:20px;padding:20px;background:white;border-radius:8px;box-shadow:0 2px 4px #0000001a}.btn-page{padding:8px 16px;background:#4CAF50;color:#fff;border:none;border-radius:4px;font-size:14px;cursor:pointer;transition:background .3s}.btn-page:hover:not(:disabled){background:#45a049}.btn-page:disabled{background:#ccc;cursor:not-allowed}.page-info{font-size:14px;color:#666}.loading,.error-message,.no-data{text-align:center;padding:40px;background:white;border-radius:8px;box-shadow:0 2px 4px #0000001a;color:#666}.error-message{color:#f44336}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);display:flex;justify-content:center;align-items:center;z-index:1000;padding:20px}.modal-content{background:white;border-radius:8px;max-width:800px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 4px 20px #0000004d}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px;border-bottom:1px solid #e0e0e0}.modal-header h2{font-size:20px;color:#333;margin:0}.btn-close{background:none;border:none;font-size:28px;color:#999;cursor:pointer;padding:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center;transition:color .3s}.btn-close:hover{color:#333}.modal-body{padding:20px}.feedback-info{margin-bottom:30px}.info-row{display:flex;margin-bottom:15px;gap:10px}.info-row label{font-weight:600;color:#333;min-width:100px;font-size:14px}.info-row span{color:#666;font-size:14px}.feedback-content{background:#f5f5f5;padding:15px;border-radius:4px;color:#333;line-height:1.6;white-space:pre-wrap;word-break:break-word}.replies-section{margin-bottom:30px}.replies-section h3{font-size:16px;color:#333;margin-bottom:15px}.reply-item{background:#f9f9f9;padding:15px;border-radius:4px;margin-bottom:10px;border-left:3px solid #4CAF50}.reply-header{display:flex;justify-content:space-between;margin-bottom:10px}.reply-admin{font-weight:600;color:#4caf50;font-size:14px}.reply-time{color:#999;font-size:12px}.reply-content{color:#333;line-height:1.6;white-space:pre-wrap;word-break:break-word;font-size:14px}.reply-form{margin-bottom:30px}.reply-form h3{font-size:16px;color:#333;margin-bottom:15px}.reply-textarea{width:100%;padding:12px;border:1px solid #ddd;border-radius:4px;font-size:14px;font-family:inherit;resize:vertical;margin-bottom:10px}.reply-textarea:focus{outline:none;border-color:#4caf50}.reply-actions{display:flex;justify-content:flex-end}.status-actions h3{font-size:16px;color:#333;margin-bottom:15px}.status-buttons{display:flex;gap:10px;flex-wrap:wrap}.btn-status{padding:8px 16px;border:1px solid #ddd;border-radius:4px;font-size:14px;cursor:pointer;background:white;color:#333;transition:all .3s}.btn-status:hover:not(:disabled){background:#f5f5f5;border-color:#4caf50;color:#4caf50}.btn-status:disabled{background:#f5f5f5;color:#999;cursor:not-allowed;border-color:#e0e0e0}.btn-resolve{background:#4CAF50;color:#fff;border-color:#4caf50}.btn-resolve:hover:not(:disabled){background:#45a049;color:#fff}@media (max-width: 768px){.filters-section{flex-direction:column;align-items:stretch}.filter-group select,.filter-group input{width:100%}.filter-actions{margin-left:0;width:100%}.filter-actions button{flex:1}.feedback-table{font-size:12px}.feedback-table th,.feedback-table td{padding:8px 10px}.modal-content{max-width:100%;margin:10px}.status-buttons{flex-direction:column}.btn-status{width:100%}}.feature-stats-page{padding:20px;max-width:1400px;margin:0 auto}.page-header h1{font-size:28px;color:#333;margin-bottom:8px}.page-header p{color:#666;font-size:14px}.filters-section{background:white;padding:20px;border-radius:8px;box-shadow:0 2px 4px #0000001a;margin-bottom:20px;display:flex;gap:20px;flex-wrap:wrap}.filter-group{display:flex;align-items:center;gap:10px}.filter-group label{font-weight:500;color:#333;white-space:nowrap}.filter-group select,.filter-group input[type=date]{padding:8px 12px;border:1px solid #ddd;border-radius:4px;font-size:14px;min-width:150px}.filter-group select:focus,.filter-group input[type=date]:focus{outline:none;border-color:#4caf50}.stats-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px;margin-bottom:30px}.dau-mau-section{background:white;padding:20px;border-radius:8px;box-shadow:0 2px 4px #0000001a;margin-bottom:30px}.dau-mau-section h2{font-size:20px;color:#333;margin-bottom:20px}.dau-mau-section h3{font-size:16px;color:#666;margin:20px 0 10px}.feature-module-section{background:white;padding:20px;border-radius:8px;box-shadow:0 2px 4px #0000001a;margin-bottom:30px}.feature-module-section h2{font-size:20px;color:#333;margin-bottom:20px}.feature-table,.endpoints-table{overflow-x:auto;margin-top:20px}.feature-table table,.endpoints-table table{width:100%;border-collapse:collapse;background:white}.feature-table th,.feature-table td,.endpoints-table th,.endpoints-table td{padding:12px;text-align:left;border-bottom:1px solid #eee}.feature-table th,.endpoints-table th{background:#f5f5f5;font-weight:600;color:#333;position:sticky;top:0}.feature-table tr:hover,.endpoints-table tr:hover{background:#f9f9f9}.top-endpoints-section{background:white;padding:20px;border-radius:8px;box-shadow:0 2px 4px #0000001a;margin-bottom:30px}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.section-header h2{font-size:20px;color:#333;margin:0}.sort-controls{display:flex;align-items:center;gap:10px}.sort-controls label{font-weight:500;color:#666}.sort-controls select{padding:6px 10px;border:1px solid #ddd;border-radius:4px;font-size:14px}.endpoint-path{font-family:Courier New,monospace;font-size:13px;color:#2196f3}.method-badge{display:inline-block;padding:4px 8px;border-radius:4px;font-size:12px;font-weight:600;text-transform:uppercase}.method-badge.get{background:#4CAF50;color:#fff}.method-badge.post{background:#2196F3;color:#fff}.method-badge.put{background:#FF9800;color:#fff}.method-badge.delete{background:#f44336;color:#fff}.method-badge.patch{background:#9C27B0;color:#fff}.error-rate-high{color:#f44336;font-weight:600}.error-rate-normal{color:#4caf50}.feature-trend-section{background:white;padding:20px;border-radius:8px;box-shadow:0 2px 4px #0000001a;margin-bottom:30px}.feature-trend-section h2{font-size:20px;color:#333;margin-bottom:20px}.loading,.error,.no-data{text-align:center;padding:40px;color:#666;font-size:16px}.error{color:#f44336}@media (max-width: 768px){.feature-stats-page{padding:10px}.filters-section{flex-direction:column;gap:15px}.filter-group{width:100%;flex-direction:column;align-items:flex-start}.filter-group select,.filter-group input[type=date]{width:100%}.stats-cards{grid-template-columns:1fr}.section-header{flex-direction:column;align-items:flex-start;gap:10px}.chart-container{height:250px}.feature-table,.endpoints-table{font-size:12px}.feature-table th,.feature-table td,.endpoints-table th,.endpoints-table td{padding:8px}}.revenue-stats-page{padding:20px;max-width:1400px;margin:0 auto}.page-header{margin-bottom:30px}.page-header h1{font-size:28px;color:#1f2937;margin-bottom:8px}.page-header p{color:#6b7280;font-size:14px}.time-range-section{background:white;padding:20px;border-radius:8px;box-shadow:0 1px 3px #0000001a;margin-bottom:20px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:15px}.quick-ranges{display:flex;gap:10px}.quick-ranges button{padding:8px 16px;border:1px solid #d1d5db;background:white;border-radius:6px;cursor:pointer;font-size:14px;transition:all .2s}.quick-ranges button:hover{background:#f3f4f6;border-color:#3b82f6}.custom-range{display:flex;align-items:center;gap:10px}.custom-range label{font-size:14px;color:#4b5563}.custom-range input[type=date]{padding:8px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:14px}.stats-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px;margin-bottom:30px}.chart-section{background:white;padding:20px;border-radius:8px;box-shadow:0 1px 3px #0000001a;margin-bottom:30px;height:400px}.chart-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.chart-header h2{font-size:18px;color:#1f2937;margin:0}.granularity-selector{display:flex;align-items:center;gap:10px}.granularity-selector label{font-size:14px;color:#4b5563}.granularity-selector select{padding:6px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:14px;background:white;cursor:pointer}.content-layout{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:30px}.top-users-section{background:white;padding:20px;border-radius:8px;box-shadow:0 1px 3px #0000001a}.top-users-section h2{font-size:18px;color:#1f2937;margin-bottom:20px}.top-users-list{display:flex;flex-direction:column;gap:12px}.top-user-item{display:flex;align-items:center;gap:15px;padding:12px;background:#f9fafb;border-radius:6px;transition:all .2s}.top-user-item:hover{background:#f3f4f6;transform:translate(2px)}.top-user-item .rank{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:#3b82f6;color:#fff;border-radius:50%;font-weight:700;font-size:14px;flex-shrink:0}.top-user-item:nth-child(1) .rank{background:#f59e0b}.top-user-item:nth-child(2) .rank{background:#9ca3af}.top-user-item:nth-child(3) .rank{background:#cd7f32}.user-info{flex:1}.user-info .username{font-weight:600;color:#1f2937;margin-bottom:4px}.user-stats{display:flex;align-items:center;gap:10px;font-size:13px}.role-badge{padding:2px 8px;border-radius:4px;font-size:12px;font-weight:500}.role-badge.teacher{background:#dbeafe;color:#1e40af}.role-badge.student{background:#d1fae5;color:#065f46}.user-stats .stat{color:#6b7280}.user-stats .cost{color:#10b981;font-weight:600}.class-cost-section{background:white;padding:20px;border-radius:8px;box-shadow:0 1px 3px #0000001a}.class-cost-section h2{font-size:18px;color:#1f2937;margin-bottom:20px}.chart-container{height:300px;margin-bottom:20px}.class-cost-table{max-height:400px;overflow-y:auto}.class-cost-table table{width:100%;border-collapse:collapse}.class-cost-table thead{position:sticky;top:0;background:#f9fafb;z-index:1}.class-cost-table th{padding:12px;text-align:left;font-size:13px;font-weight:600;color:#4b5563;border-bottom:2px solid #e5e7eb}.class-cost-table td{padding:12px;font-size:14px;color:#1f2937;border-bottom:1px solid #e5e7eb}.class-cost-table tbody tr:hover{background:#f9fafb}.business-metrics-section{background:white;padding:20px;border-radius:8px;box-shadow:0 1px 3px #0000001a}.business-metrics-section h2{font-size:18px;color:#1f2937;margin-bottom:20px}.metrics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px}.metric-card{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);padding:20px;border-radius:8px;color:#fff}.metric-card:nth-child(2){background:linear-gradient(135deg,#f093fb 0%,#f5576c 100%)}.metric-card:nth-child(3){background:linear-gradient(135deg,#4facfe 0%,#00f2fe 100%)}.metric-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.metric-header h3{font-size:16px;font-weight:600;margin:0}.metric-icon{font-size:24px}.metric-value{font-size:36px;font-weight:700;margin-bottom:15px}.metric-details{font-size:13px;opacity:.9}.metric-details p{margin:4px 0}.loading,.error{text-align:center;padding:40px;font-size:16px}.loading{color:#6b7280}.error{color:#ef4444;background:#fee2e2;border-radius:8px}.no-data{text-align:center;padding:40px;color:#9ca3af;font-size:14px}@media (max-width: 1024px){.content-layout,.metrics-grid{grid-template-columns:1fr}}@media (max-width: 768px){.revenue-stats-page{padding:15px}.time-range-section{flex-direction:column;align-items:stretch}.quick-ranges{flex-wrap:wrap}.stats-cards{grid-template-columns:1fr}.chart-section{height:300px}}.ops-question-bank{padding:20px;max-width:1480px;margin:0 auto}.page-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:24px}.filter-section{background:#ffffff;padding:20px;border-radius:12px;box-shadow:0 2px 10px #0f172a0f;margin-bottom:16px}.search-box{display:flex;gap:10px;margin-bottom:14px}.search-box input{flex:1;padding:10px 14px;border:1px solid #cbd5e1;border-radius:8px;font-size:14px}.search-box button{padding:10px 16px;border:none;border-radius:8px;background:#0f766e;color:#fff;cursor:pointer;font-size:14px}.filters{display:flex;gap:10px;align-items:center}.filters select{padding:9px 12px;border:1px solid #cbd5e1;border-radius:8px;background:#ffffff;font-size:14px}.btn-reset{padding:9px 14px;border:1px solid #cbd5e1;border-radius:8px;background:#f8fafc;color:#475569;cursor:pointer;font-size:14px}.btn-reset:hover{background:#eef2f7}.ops-question-bank-subtitle{margin:8px 0 0;color:#64748b;font-size:14px}.ops-question-bank-note,.ops-question-bank-error,.ops-question-bank-loading,.ops-question-bank-empty{margin-bottom:20px;padding:14px 16px;border-radius:8px}.ops-question-bank-note{background:#eff6ff;color:#1d4ed8;border:1px solid #bfdbfe}.ops-question-bank-error{background:#fef2f2;color:#b91c1c;border:1px solid #fecaca}.ops-question-bank-loading,.ops-question-bank-empty{background:#ffffff;color:#64748b;border:1px solid #e2e8f0}.question-bank-section{background:#ffffff;border-radius:12px;padding:20px;box-shadow:0 2px 10px #0f172a0f}.section-header{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px}.section-header h2{margin:0;color:#0f172a;font-size:20px}.total-count{color:#64748b;font-size:14px}.table-container{overflow-x:auto}.question-bank-table{width:100%;border-collapse:collapse;font-size:14px}.question-bank-table th{background:#f8fafc;color:#475569;font-weight:600;padding:12px;text-align:left;border-bottom:1px solid #e2e8f0}.question-bank-table td{padding:14px 12px;border-bottom:1px solid #eef2f7;vertical-align:top}.question-bank-table tbody tr:hover{background:#f8fafc}.question-title-cell{color:#0f172a;font-weight:600;margin-bottom:6px}.question-meta-cell,.muted-text{color:#64748b;font-size:12px}.tag-list{display:flex;flex-wrap:wrap;gap:6px}.tag-chip{display:inline-flex;align-items:center;padding:4px 8px;border-radius:999px;background:#f1f5f9;color:#334155;font-size:12px}.table-actions{display:flex;gap:12px}.btn-link{padding:0;border:none;background:transparent;color:#2563eb;cursor:pointer;font-size:14px}.btn-link.danger{color:#dc2626}.pagination{margin-top:18px;display:flex;justify-content:flex-end;align-items:center;gap:12px;color:#475569;font-size:14px}.btn-page,.btn-primary,.btn-secondary{border:none;border-radius:8px;cursor:pointer;transition:all .2s ease}.btn-page{padding:8px 14px;background:#f8fafc;color:#334155}.btn-page:disabled{cursor:not-allowed;opacity:.5}.btn-primary{padding:10px 18px;background:#2563eb;color:#fff;font-size:14px}.btn-primary:hover{background:#1d4ed8}.btn-secondary{padding:10px 18px;background:#e2e8f0;color:#334155;font-size:14px}.btn-secondary:hover{background:#cbd5e1}.question-bank-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(15,23,42,.45);display:flex;align-items:center;justify-content:center;padding:24px;z-index:1000}.question-bank-modal{width:min(900px,100%);max-height:calc(100vh - 48px);overflow:auto;background:#ffffff;border-radius:16px;box-shadow:0 20px 60px #0f172a40}.question-bank-modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px 0}.question-bank-modal-header h2{margin:0;font-size:22px;color:#0f172a}.question-bank-modal-close{border:none;background:transparent;color:#64748b;font-size:30px;cursor:pointer;line-height:1}.question-bank-form{padding:20px 24px 24px}.question-bank-form-row{display:grid;grid-template-columns:2fr 1fr 1fr;gap:16px}.question-bank-form-group{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.question-bank-form-group label{color:#475569;font-size:14px;font-weight:600}.question-bank-form-group input,.question-bank-form-group select,.question-bank-form-group textarea{width:100%;padding:12px 14px;border:1px solid #cbd5e1;border-radius:8px;font-size:14px;color:#0f172a;box-sizing:border-box}.question-bank-form-group input:focus,.question-bank-form-group select:focus,.question-bank-form-group textarea:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb26}.question-bank-form-group textarea{resize:vertical;min-height:140px}.question-bank-import-mode{display:flex;gap:10px;flex-wrap:wrap}.question-bank-mode-chip{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid #cbd5e1;border-radius:999px;background:#f8fafc;color:#475569;cursor:pointer;font-size:13px;font-weight:500}.question-bank-mode-chip input{width:auto;margin:0;padding:0}.question-bank-mode-chip.active{border-color:#2563eb;background:#eff6ff;color:#1d4ed8}.question-bank-file-import{display:flex;flex-direction:column;gap:12px;padding:14px;border:1px dashed #cbd5e1;border-radius:12px;background:#f8fafc}.question-bank-file-upload{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.question-bank-file-upload input[type=file]{flex:1 1 260px;min-width:220px;padding:10px 12px;background:#ffffff}.question-bank-file-upload-text{display:flex;flex-direction:column;gap:4px;color:#64748b;font-size:13px}.question-bank-file-upload-text strong{color:#0f172a;font-size:14px}.question-bank-file-preview,.question-bank-import-feedback{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-radius:10px;background:#ffffff;border:1px solid #e2e8f0}.question-bank-file-preview div{display:flex;flex-direction:column;gap:4px}.question-bank-file-preview strong{color:#0f172a;font-size:14px}.question-bank-file-preview span,.question-bank-import-feedback{color:#64748b;font-size:13px}.question-bank-import-feedback{justify-content:flex-start}.question-bank-import-feedback.error{color:#b91c1c;background:#fef2f2;border-color:#fecaca}.question-bank-form-footer{display:flex;justify-content:flex-end;gap:12px;margin-top:8px}@media (max-width: 960px){.question-bank-form-row{grid-template-columns:1fr}}@media (max-width: 720px){.ops-question-bank{padding:16px}.page-header,.filters,.search-box,.section-header{flex-direction:column;align-items:stretch}.table-container{overflow-x:auto}.question-bank-modal-overlay{padding:12px}.question-bank-modal-header,.question-bank-form{padding-left:16px;padding-right:16px}.question-bank-file-upload{flex-direction:column;align-items:stretch}.question-bank-file-preview{flex-direction:column;align-items:flex-start}}a{text-decoration:none}.app-container{display:flex;flex-direction:column;min-height:100vh;width:100%;max-width:1440px;margin:0 auto;padding:60px 0 0;background-color:#f8f9fa}.main-content{padding:24px;flex:1;flex-direction:column;gap:24px;width:100%;max-width:1440px;margin:0 auto}.header{min-height:60px;background-color:#2c3e50;color:#fff;display:flex;align-items:center;padding:0 20px;box-shadow:0 2px 8px #0000001a;overflow-x:auto;white-space:nowrap;position:fixed;top:0;left:0;right:0;z-index:1000}@media (min-width: 651px){.header{overflow-x:visible}}.header-title{font-size:20px;font-weight:700;margin-right:40px;flex-shrink:0}.header-nav{display:flex;gap:20px;margin-left:auto;margin-right:80px;z-index:999;position:relative}.nav-item{color:#fff;text-decoration:none;padding:8px 12px;border-radius:4px;transition:background-color .3s;flex-shrink:0}.nav-item:hover{background-color:#ffffff1a}.nav-item.active{background-color:#fff3}.user-profile-container{position:absolute;right:20px;top:50%;transform:translateY(-50%);z-index:1001;cursor:pointer;padding:0 5px}.user-avatar{width:40px;height:40px;border-radius:50%;overflow:hidden;cursor:pointer;transition:transform .3s;border:2px solid rgba(255,255,255,.3);z-index:1002;position:relative;display:flex;align-items:center;justify-content:center;background-color:#3498db}.user-avatar:hover{transform:scale(1.05)}.avatar-letter{color:#fff;font-size:18px;font-weight:700}.avatar-letter-large{color:#fff;font-size:24px;font-weight:700}.user-dropdown-menu{position:absolute;top:50px;right:0;width:320px;background-color:#2c3e50;border-radius:8px;box-shadow:0 4px 20px #0000004d;z-index:9999;overflow:visible;animation:dropdownFadeIn .3s ease}@keyframes dropdownFadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.user-info-card{padding:20px}.user-info-header{display:flex;align-items:center;margin-bottom:16px}.user-card-avatar{width:60px;height:60px;border-radius:50%;margin-right:16px;border:2px solid rgba(255,255,255,.3);flex-shrink:0;background-color:#3498db;display:flex;align-items:center;justify-content:center}.user-card-info{display:flex;flex-direction:column}.user-card-name{font-size:18px;font-weight:700;margin-bottom:4px;color:#fff}.user-card-id{font-size:14px;color:#ffffffb3}.user-card-actions{display:flex;flex-direction:column;gap:8px}.user-action-btn{display:flex;align-items:center;gap:8px;padding:10px 16px;background-color:#ffffff0d;color:#fff;border:none;border-radius:6px;font-size:14px;cursor:pointer;transition:background-color .3s;text-decoration:none}.user-action-btn:hover{background-color:#ffffff1a}.user-action-btn.logout-btn{border-left:3px solid #e74c3c}.action-icon{width:18px;height:18px;display:inline-block;background-size:cover;background-repeat:no-repeat}.logout-icon{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4'%3E%3C/path%3E%3Cpolyline points='16 17 21 12 16 7'%3E%3C/polyline%3E%3Cline x1='21' y1='12' x2='9' y2='12'%3E%3C/line%3E%3C/svg%3E")}@media (max-width: 768px){.header{padding:0 15px}.header-title{font-size:16px;margin-right:15px}.header-nav{gap:8px;margin-right:80px}.nav-item{font-size:13px;padding:6px 8px}}@media (max-width: 650px){.header{flex-direction:column;justify-content:center;min-height:80px;align-items:stretch;position:fixed}.app-container{padding-top:80px}.header-title{font-size:16px;margin-right:0;margin-bottom:10px;text-align:center;width:100%;order:1}.user-profile-container{order:2;margin:0;position:fixed;right:10px;top:10px;transform:none;z-index:9998}.header-nav{gap:8px;margin-right:0;margin-left:0;justify-content:center;order:2}.nav-item{font-size:12px;padding:5px 8px}.user-avatar{width:40px;height:40px;box-shadow:0 2px 8px #0000004d}.user-dropdown-menu{width:280px;right:10px;transform:none;top:calc(100% + 10px);z-index:9999}}
