*{box-sizing:border-box;padding:0}*,body{margin:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:linear-gradient(135deg,#667eea,#764ba2);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;min-height:100vh}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.App{background:linear-gradient(135deg,#667eea,#764ba2);min-height:100vh}.app-header{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff1a;box-shadow:0 4px 6px #0000001a;color:#fff;padding:2rem}.header-content{align-items:center;display:flex;justify-content:space-between;margin:0 auto;max-width:1400px}.header-content h1{font-size:2.5rem;font-weight:700;margin-bottom:.5rem;text-shadow:2px 2px 4px #0003}.header-content p{font-size:1.1rem;opacity:.9}.header-user{align-items:center;display:flex;gap:1rem}.user-name{font-size:1rem;font-weight:500;opacity:.9}.logout-button{background:#fff3;border:1px solid #ffffff4d;border-radius:8px;color:#fff;cursor:pointer;font-size:.9rem;font-weight:500;padding:.5rem 1.5rem;transition:background .2s,transform .2s}.logout-button:hover{background:#ffffff4d;transform:translateY(-1px)}.app-loading{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;display:flex;flex-direction:column;font-size:1.2rem;justify-content:center;min-height:100vh}.app-main{margin:0 auto;max-width:1400px;padding:2rem}@media (max-width:768px){.app-main{padding:1rem}.header-content h1{font-size:1.8rem}}.login-container{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;justify-content:center;min-height:100vh;padding:2rem}.login-card{animation:slideUp .5s ease-out;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff2;border:1px solid #fff3;border-radius:20px;box-shadow:0 20px 60px #0000004d;max-width:450px;padding:3rem;width:100%}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.login-header{margin-bottom:2rem;text-align:center}.login-header h1{color:#333;font-size:2rem;font-weight:700;margin-bottom:.5rem}.login-header p{color:#666;font-size:1rem}.login-form{gap:1.5rem}.form-group,.login-form{display:flex;flex-direction:column}.form-group{gap:.5rem}.form-group label{font-size:.9rem}.form-group input{background:#fff;padding:.875rem 1rem;transition:border-color .2s,box-shadow .2s}.form-group input:focus{box-shadow:0 0 0 3px #667eea1a}.error-message{font-size:.9rem;padding:.875rem 1rem;text-align:center}.login-button{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;box-shadow:0 4px 6px #667eea4d;color:#fff;cursor:pointer;font-size:1.1rem;font-weight:600;margin-top:.5rem;padding:1rem;transition:transform .2s,box-shadow .2s;width:100%}.login-button:hover:not(:disabled){box-shadow:0 6px 12px #667eea66;transform:translateY(-2px)}.login-button:disabled{cursor:not-allowed;opacity:.6}.login-footer{border-top:1px solid #e0e0e0;margin-top:2rem;padding-top:1.5rem;text-align:center}.login-footer p{color:#999;font-size:.85rem}@media (max-width:768px){.login-card{padding:2rem}.login-header h1{font-size:1.5rem}}.summary-cards{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.summary-card{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff2;border:1px solid #fff3;border-radius:16px;box-shadow:0 8px 32px #0000001a;display:flex;gap:1rem;padding:1.5rem;transition:transform .2s,box-shadow .2s}.summary-card:hover{box-shadow:0 12px 40px #00000026;transform:translateY(-4px)}.card-icon{align-items:center;border-radius:12px;box-shadow:0 4px 6px #0000001a;display:flex;flex-shrink:0;font-size:2rem;height:60px;justify-content:center;width:60px}.card-content{flex:1 1}.card-content h3{color:#666;font-size:.9rem;font-weight:500;letter-spacing:.5px;margin-bottom:.5rem;text-transform:uppercase}.card-value{color:#333;font-size:1.8rem;font-weight:700;margin:0}@media (max-width:768px){.summary-cards{grid-template-columns:1fr}.card-value{font-size:1.5rem}}.chart-container{height:100%;width:100%}.chart-empty{align-items:center;color:#666;font-size:1rem;height:350px}.chart-empty,.chart-legend{display:flex;justify-content:center}.chart-legend{border-top:1px solid #e0e0e0;gap:2rem;margin-top:1rem;padding-top:1rem}.legend-item{align-items:center;color:#666;display:flex;font-size:.9rem;gap:.5rem}.legend-color{border-radius:4px;display:inline-block;height:16px;width:16px}.table-container{overflow-x:auto;width:100%}.table-wrapper{max-height:400px;overflow-y:auto}.table-empty{align-items:center;color:#666;display:flex;font-size:1rem;height:350px;justify-content:center}.ips-table{border-collapse:collapse;width:100%}.ips-table thead{background:linear-gradient(135deg,#667eea,#764ba2);position:-webkit-sticky;position:sticky;top:0;z-index:10}.ips-table th{color:#fff;font-size:.9rem;font-weight:600;letter-spacing:.5px;padding:1rem;text-align:left;text-transform:uppercase}.ips-table tbody tr{border-bottom:1px solid #e0e0e0;transition:background-color .2s}.ips-table tbody tr:hover{background-color:#f5f5f5}.ips-table td{color:#333;padding:1rem}.rank-cell{text-align:center;width:80px}.rank-badge{align-items:center;border-radius:50%;color:#fff;display:inline-block;display:flex;font-size:.85rem;font-weight:700;height:32px;justify-content:center;width:32px}.rank-1{background:linear-gradient(135deg,#f6d365,#fda085)}.rank-2{background:linear-gradient(135deg,silver,#a0a0a0)}.rank-3{background:linear-gradient(135deg,#cd7f32,#b87333)}.rank-badge:not(.rank-1):not(.rank-2):not(.rank-3){background:linear-gradient(135deg,#667eea,#764ba2)}.ip-cell{font-family:Courier New,monospace}.ip-cell code{background:#f0f0f0;border-radius:4px;color:#333;font-size:.9rem;padding:.25rem .5rem}.hits-cell{color:#667eea;font-weight:600;text-align:right}.hits-value{font-size:1.1rem}.table-wrapper::-webkit-scrollbar{width:8px}.table-wrapper::-webkit-scrollbar-track{background:#f1f1f1;border-radius:4px}.table-wrapper::-webkit-scrollbar-thumb{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:4px}.table-wrapper::-webkit-scrollbar-thumb:hover{background:linear-gradient(135deg,#5568d3,#653a91)}.month-selector{align-items:center;display:flex;gap:.75rem}.month-label{color:#666;font-size:.9rem;font-weight:500;white-space:nowrap}.month-select{background:#fff;border:2px solid #e0e0e0;border-radius:8px;color:#333;cursor:pointer;font-size:.95rem;min-width:150px;padding:.5rem 1rem;transition:border-color .2s,box-shadow .2s}.month-select:focus{box-shadow:0 0 0 3px #667eea1a;outline:none}.month-select:focus,.month-select:hover{border-color:#667eea}.user-management{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff2;border:1px solid #fff3;border-radius:16px;box-shadow:0 8px 32px #0000001a;margin-bottom:2rem;padding:2rem}.user-management-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1.5rem}.user-management-header h2{color:#333;font-size:1.5rem;font-weight:600;margin:0}.btn-add-user{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1rem;font-weight:500;padding:.75rem 1.5rem;transition:transform .2s,box-shadow .2s}.btn-add-user:hover{box-shadow:0 4px 12px #667eea66;transform:translateY(-2px)}.user-form{background:#f8f9fa;border-radius:12px;margin-bottom:2rem;padding:1.5rem}.form-group{margin-bottom:1rem}.form-group label{color:#333;display:block;font-size:.95rem;font-weight:500;margin-bottom:.5rem}.form-group input{border:2px solid #e0e0e0;border-radius:8px;box-sizing:border-box;font-size:1rem;padding:.75rem;transition:border-color .2s;width:100%}.form-group input:focus{border-color:#667eea;outline:none}.btn-submit{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1rem;font-weight:500;margin-top:.5rem;padding:.75rem 2rem;transition:transform .2s,box-shadow .2s;width:100%}.btn-submit:hover:not(:disabled){box-shadow:0 4px 12px #667eea66;transform:translateY(-2px)}.btn-submit:disabled{cursor:not-allowed;opacity:.6}.error-message{background:#fee;border:1px solid #fcc;border-radius:8px;color:#c33}.error-message,.success-message{margin-bottom:1rem;padding:.75rem}.success-message{background:#efe;border:1px solid #cfc;border-radius:8px;color:#3c3}.users-list h3{color:#333;font-size:1.2rem;margin-bottom:1rem}.no-users{color:#666;padding:2rem;text-align:center}.users-table{background:#fff;border-collapse:collapse;border-radius:8px;overflow:hidden;width:100%}.users-table thead{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.users-table th{font-weight:600;padding:1rem;text-align:left}.users-table td{border-bottom:1px solid #e0e0e0;padding:1rem}.users-table tbody tr:hover{background:#f8f9fa}.users-table tbody tr:last-child td{border-bottom:none}.dashboard{display:flex;flex-direction:column;gap:2rem}.dashboard-tabs{display:flex;gap:1rem;margin-bottom:1rem}.tab-button{background:#ffffffb3;border:2px solid #ffffff4d;border-radius:8px;color:#333;cursor:pointer;font-size:1rem;font-weight:500;padding:.75rem 1.5rem;transition:all .2s}.tab-button:hover{background:#ffffffe6;border-color:#667eea80}.tab-button.active{background:linear-gradient(135deg,#667eea,#764ba2);border-color:#0000;box-shadow:0 4px 12px #667eea4d;color:#fff}.dashboard-loading{align-items:center;color:#fff;display:flex;flex-direction:column;font-size:1.2rem;justify-content:center;min-height:400px}.loading-spinner{animation:spin 1s linear infinite;border:4px solid #ffffff4d;border-radius:50%;border-top-color:#fff;height:50px;margin-bottom:1rem;width:50px}@keyframes spin{to{transform:rotate(1turn)}}.dashboard-grid{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:2fr 1fr}.dashboard-card{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff2;border:1px solid #fff3;border-radius:16px;box-shadow:0 8px 32px #0000001a;padding:2rem}.dashboard-card h2{color:#333;font-size:1.5rem;font-weight:600;margin-bottom:1.5rem}.chart-header{align-items:center;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;margin-bottom:1.5rem}.chart-header h2{margin-bottom:0}.chart-card,.table-card{min-height:400px}@media (max-width:1024px){.dashboard-grid{grid-template-columns:1fr}}
/*# sourceMappingURL=main.40cc202a.css.map*/