.login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);padding:20px}.login-box{background:#fff;border-radius:12px;padding:40px;box-shadow:0 20px 60px #0000004d;max-width:400px;width:100%}.login-box h1{margin:0 0 10px;color:#333;font-size:24px;text-align:center}.login-subtitle{text-align:center;color:#666;margin:0 0 30px;font-size:14px}.form-group{margin-bottom:20px}.form-group label{display:block;margin-bottom:8px;color:#333;font-weight:500;font-size:14px}.form-group input{width:100%;padding:12px;border:2px solid #e0e0e0;border-radius:6px;font-size:16px;transition:border-color .2s;box-sizing:border-box}.form-group input:focus{outline:none;border-color:#667eea}.error-message{color:#e74c3c;font-size:12px;margin-top:6px}.login-button{width:100%;padding:12px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:6px;font-size:16px;font-weight:600;cursor:pointer;transition:transform .2s,box-shadow .2s}.login-button:hover{transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.login-button:active{transform:translateY(0)}.login-hint{text-align:center;color:#999;font-size:12px;margin-top:20px}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f5f5f5;color:#333}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.container{max-width:1400px;margin:0 auto;padding:20px}.header{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:30px;border-radius:10px;margin-bottom:30px;box-shadow:0 4px 6px #0000001a}.header h1{font-size:2.5rem;margin-bottom:10px}.header p{font-size:1.1rem;opacity:.9}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px;margin-bottom:30px}.stat-card{background:#fff;padding:25px;border-radius:10px;box-shadow:0 2px 4px #0000001a;transition:transform .2s,box-shadow .2s}.stat-card:hover{transform:translateY(-2px);box-shadow:0 4px 8px #00000026}.stat-card-prominent{grid-column:1 / -1;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:40px;box-shadow:0 4px 12px #667eea4d}.stat-card-prominent:hover{transform:translateY(-4px);box-shadow:0 6px 16px #667eea66}.stat-card h3{font-size:.9rem;color:#666;margin-bottom:10px;text-transform:uppercase;letter-spacing:.5px}.stat-card-prominent h3{color:#ffffffe6;font-size:1rem;margin-bottom:15px}.stat-card .value{font-size:2rem;font-weight:700;color:#667eea;margin-bottom:5px}.stat-card-prominent .value{font-size:3.5rem;color:#fff;margin-bottom:10px}.stat-card .subvalue{font-size:.9rem;color:#999}.stat-card-prominent .subvalue{font-size:1.1rem;color:#ffffffe6;font-weight:500}.section{background:#fff;padding:30px;border-radius:10px;box-shadow:0 2px 4px #0000001a;margin-bottom:30px}.section h2{font-size:1.8rem;margin-bottom:20px;color:#333;border-bottom:3px solid #667eea;padding-bottom:10px}.table-container{overflow-x:auto;margin-top:20px}table{width:100%;border-collapse:collapse}thead{background-color:#f8f9fa}th{padding:12px;text-align:left;font-weight:600;color:#333;border-bottom:2px solid #dee2e6;cursor:pointer;-webkit-user-select:none;user-select:none}th:hover{background-color:#e9ecef}td{padding:12px;border-bottom:1px solid #dee2e6}tr:hover{background-color:#f8f9fa}.chart-container{margin-top:20px;padding:20px;background:#fafafa;border-radius:8px}.loading{text-align:center;padding:40px;color:#666}.error{background:#fee;color:#c33;padding:20px;border-radius:8px;margin:20px 0}.search-box{margin-bottom:20px}.search-box input{width:100%;padding:12px;border:2px solid #dee2e6;border-radius:6px;font-size:1rem}.search-box input:focus{outline:none;border-color:#667eea}.tabs{display:flex;gap:10px;margin-bottom:20px;border-bottom:2px solid #dee2e6}.tab{padding:12px 24px;background:none;border:none;cursor:pointer;font-size:1rem;color:#666;border-bottom:3px solid transparent;transition:all .2s}.tab:hover{color:#667eea}.tab.active{color:#667eea;border-bottom-color:#667eea;font-weight:600}
