body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.App{background-color:#f5f5f5;min-height:100vh;text-align:center}.App-header{background-color:#282c34;color:#fff;margin-bottom:0;padding:20px}.header-content{align-items:center;display:flex;justify-content:space-between;margin:0 auto;max-width:1200px}.header-left h1{font-size:2rem;margin:0 0 10px}.header-left p{font-size:1.1rem;margin:0;opacity:.9}.header-right{text-align:right}.user-info{align-items:flex-end;display:flex;flex-direction:column;gap:10px}.user-info span{font-size:1rem;opacity:.9}.logout-button{background:#dc3545;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:.9rem;padding:8px 16px;transition:background-color .3s ease}.logout-button:hover{background:#c82333}.log-type-selector{border-top:1px solid #444;margin-top:20px;padding-top:20px;text-align:center}.log-type-selector h3{color:#fff;font-size:1.1rem;font-weight:500;margin:0 0 15px}.log-type-buttons{display:flex;flex-wrap:wrap;gap:15px;justify-content:center}.log-type-button{background-color:initial;border:2px solid #fff;border-radius:8px;color:#fff;cursor:pointer;font-size:1rem;font-weight:500;min-width:160px;padding:12px 24px;transition:all .3s ease}.log-type-button:hover{background-color:#ffffff1a;transform:translateY(-2px)}.log-type-button.active{background-color:#fff;box-shadow:0 4px 8px #0003;color:#282c34}main{flex:1 1;padding:20px 0}@media (max-width:768px){.header-content{flex-direction:column;gap:20px}.header-content,.header-right{text-align:center}.user-info{align-items:center}.log-type-selector{flex-direction:column;gap:10px}.log-type-select{min-width:250px}}.csv-download-section{background-color:#fff;border-radius:12px;box-shadow:0 4px 12px #0000001a;margin:20px auto;max-width:1200px;padding:30px}.csv-download-section h3{border-bottom:2px solid #007bff;color:#333;font-size:1.5rem;font-weight:600;margin:0 0 25px;padding-bottom:15px;text-align:center}.download-links{grid-gap:25px;display:grid;gap:25px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.download-group{background-color:#f8f9fa;border-left:4px solid #007bff;border-radius:8px;padding:20px}.download-group h4{color:#495057;font-size:1.2rem;font-weight:600;margin:0 0 15px}.download-link{background-color:#fff;border:1px solid #dee2e6;border-radius:6px;color:#007bff;display:block;font-weight:500;margin:8px 0;padding:12px 16px;text-decoration:none;transition:all .3s ease}.download-link:hover{background-color:#007bff;box-shadow:0 4px 8px #007bff4d;color:#fff;text-decoration:none;transform:translateY(-2px)}@media (max-width:768px){.csv-download-section{margin:20px 15px;padding:20px}.download-links{gap:20px;grid-template-columns:1fr}.download-group{padding:15px}}.csv-viewer{margin:0 auto;max-width:1200px;padding:20px}.csv-viewer h2{color:#333;margin-bottom:20px;text-align:center}.csv-table-container{border:1px solid #ddd;border-radius:8px;box-shadow:0 2px 4px #0000001a;overflow-x:auto}.csv-table{background-color:#fff;border-collapse:collapse;width:100%}.csv-table th{background-color:#f8f9fa;border-bottom:2px solid #dee2e6;color:#333;font-weight:700;padding:12px 8px;position:sticky;text-align:left;top:0;z-index:10}.csv-table td{border-bottom:1px solid #dee2e6;padding:8px;vertical-align:top}.csv-table tbody tr:hover{background-color:#f8f9fa}.csv-table tbody tr:nth-child(2n){background-color:#fafafa}.csv-info{background-color:#e9ecef;border-radius:5px;margin-top:20px;padding:15px;text-align:center}.csv-info p{color:#495057;font-weight:500;margin:5px 0}.csv-viewer-loading{color:#666;font-size:18px;padding:40px;text-align:center}.csv-viewer-error{background-color:#f8d7da;border:1px solid #f5c6cb;border-radius:5px;color:#dc3545;margin:20px 0;padding:40px;text-align:center}@media (max-width:768px){.csv-viewer{padding:10px}.csv-table td,.csv-table th{font-size:14px;padding:6px 4px}}.user-daily-log-viewer{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;margin:0 auto;max-width:1200px;padding:20px}.date-filter{align-items:center;display:flex;flex-wrap:wrap;gap:15px}.filter-group label{font-size:12px;letter-spacing:.5px;text-transform:uppercase}.filter-group select{background-color:#fff;cursor:pointer;min-width:100px}.search-input{background-color:#fff;border:1px solid #ced4da;min-width:150px;padding:8px 12px;transition:border-color .2s ease}.search-input:focus{border-color:#007bff;box-shadow:0 0 0 2px #007bff40}.clear-filter-button{background-color:#6c757d;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;margin-left:10px;padding:8px 16px;transition:background-color .2s ease}.clear-filter-button:hover:not(:disabled){background-color:#5a6268}.clear-filter-button:disabled{background-color:#dee2e6;color:#adb5bd;cursor:not-allowed}.log-summary{margin-bottom:30px}.summary-card{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:12px;box-shadow:0 4px 6px #0000001a;color:#fff;padding:25px}.summary-card h3{font-size:20px;font-weight:500;margin:0 0 15px}.summary-card p{font-size:16px;margin:5px 0;opacity:.9}.summary-stats{display:flex;flex-wrap:wrap;gap:20px;margin-top:15px}.summary-stats span{background:#fff3;border-radius:20px;font-size:14px;font-weight:500;padding:8px 16px}.log-content{grid-gap:20px;display:grid;gap:20px}.daily-log-card{background:#fff;border:1px solid #e9ecef;border-radius:12px;box-shadow:0 2px 4px #0000001a;overflow:hidden;transition:transform .2s ease,box-shadow .2s ease}.daily-log-card:hover{box-shadow:0 4px 8px #00000026;transform:translateY(-2px)}.card-header{align-items:center}.date-info{display:flex;flex-direction:column;gap:5px}.date{color:#495057;font-size:18px;font-weight:600}.user-name{color:#6c757d;font-size:14px;font-weight:500}.status-badge{font-size:12px;padding:6px 16px}.time-info{grid-gap:15px;background:#f8f9fa;border-radius:8px;display:grid;gap:15px;grid-template-columns:1fr 1fr 1fr;margin-bottom:20px;padding:15px}.time-item{display:flex;flex-direction:column;gap:5px}.bonus-info{grid-gap:15px;background:#e3f2fd;border-left:4px solid #2196f3;border-radius:8px;display:grid;gap:15px;grid-template-columns:1fr 1fr 1fr;margin-bottom:20px;padding:15px}.bonus-item{display:flex;flex-direction:column;gap:5px}.activity-info{grid-gap:15px;display:grid;gap:15px;grid-template-columns:1fr 1fr;margin-bottom:20px}.activity-item{display:flex;flex-direction:column;gap:5px}.value{font-size:16px}.notes-section{border-top:1px solid #e9ecef;padding-top:15px}.notes-text{background:#f8f9fa;line-height:1.5;padding:10px}.user-daily-log-loading{color:#666;font-size:18px;padding:60px;text-align:center}.user-daily-log-error{background-color:#f8d7da;border:1px solid #f5c6cb;border-radius:8px;color:#dc3545;margin:20px 0;padding:40px;text-align:center}@media (max-width:768px){.user-daily-log-viewer{padding:15px}.log-header{gap:15px}.date-filter,.log-header{align-items:stretch;flex-direction:column}.date-filter{gap:10px}.filter-group{align-items:center;flex-direction:row;gap:10px}.filter-group label{min-width:30px}.filter-group select{flex:1 1}.clear-filter-button{margin-left:0;margin-top:10px}.bonus-info,.time-info{grid-template-columns:1fr}.footer-stats,.summary-stats{flex-direction:column;gap:10px}}@media (max-width:480px){.pagination{flex-direction:column;gap:15px}.pagination-controls{flex-wrap:wrap;justify-content:center}}.business-daily-log-viewer{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;margin:0 auto;max-width:1400px;padding:20px}.filter-controls{align-items:center}.filter-group label{min-width:80px}.filter-group select:disabled{background-color:#f8f9fa;color:#6c757d;cursor:not-allowed}.summary-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.summary-item{padding:25px}.summary-item h3{font-size:14px;margin:0 0 15px}.summary-item .count{font-size:32px}.summary-item .count.total-users{color:#28a745}.summary-item .count.total-interviews{color:#17a2b8}.business-log-content{grid-gap:20px;display:grid;gap:20px}.business-log-card{background:#fff;border:1px solid #e9ecef;border-radius:12px;box-shadow:0 2px 4px #0000001a;cursor:pointer;overflow:hidden;transition:transform .2s ease,box-shadow .2s ease}.business-log-card:hover{box-shadow:0 4px 8px #00000026;transform:translateY(-2px)}.card-header{align-items:flex-start;background:#f8f9fa;border-bottom:1px solid #e9ecef;display:flex;justify-content:space-between;padding:20px}.date-info{flex:1 1}.date-title{color:#495057;font-size:20px;font-weight:600;margin:0 0 10px}.date-badge{background:#e9ecef;border-radius:20px;color:#495057;display:inline-block;font-size:12px;font-weight:500;padding:4px 12px}.card-badges{align-items:flex-end;display:flex;flex-direction:column;gap:10px}.interviews-badge,.users-badge{align-items:center;background:#f8f9fa;border-radius:8px;display:flex;flex-direction:column;min-width:80px;padding:8px 12px}.users-badge{background:#d4edda;color:#155724}.interviews-badge{background:#d1ecf1;color:#0c5460}.badge-label{font-size:10px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.badge-value{font-size:16px;font-weight:700;margin-top:2px}.card-body{padding:20px}.interviews-section,.notes-section,.users-section{margin-bottom:20px}.section-title{border-bottom:1px solid #e9ecef;color:#495057;font-size:14px;font-weight:600;letter-spacing:.5px;margin-bottom:10px;padding-bottom:5px;text-transform:uppercase}.interviews-grid,.users-grid{grid-gap:15px;display:grid;gap:15px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.interview-item,.user-item{align-items:center;background:#f8f9fa;border-radius:6px;display:flex;justify-content:space-between;padding:10px}.label{color:#6c757d;font-size:12px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.value{font-weight:500}.notes-text,.value{color:#495057;font-size:14px}.notes-text{background:#fff3cd;border-left:4px solid #ffc107;border-radius:6px;line-height:1.6;margin:8px 0 0;padding:12px}.detail-modal-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:1000}.detail-modal{background:#fff;border-radius:12px;box-shadow:0 10px 30px #0000004d;max-height:90vh;max-width:800px;overflow-y:auto;width:100%}.modal-header{align-items:center;background:#f8f9fa;border-bottom:1px solid #e9ecef;border-radius:12px 12px 0 0;display:flex;justify-content:space-between;padding:20px}.modal-header h3{color:#495057;font-size:20px;font-weight:600;margin:0}.close-button{align-items:center;background:none;border:none;border-radius:50%;color:#6c757d;cursor:pointer;display:flex;font-size:24px;height:30px;justify-content:center;padding:0;transition:background-color .2s ease;width:30px}.close-button:hover{background:#e9ecef;color:#495057}.modal-content{padding:20px}.detail-section{margin-bottom:25px}.detail-section h4{border-bottom:2px solid #e9ecef;color:#495057;font-size:16px;font-weight:600;margin:0 0 15px;padding-bottom:8px}.detail-grid{grid-gap:15px;display:grid;gap:15px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.detail-item{align-items:center;background:#f8f9fa;border-radius:6px;display:flex;justify-content:space-between;padding:12px}.child-data-table{margin-top:15px}.child-data-table table{background:#fff;border-collapse:collapse;border-radius:8px;box-shadow:0 2px 4px #0000001a;overflow:hidden;width:100%}.child-data-table th{background:#495057;color:#fff;font-size:12px;font-weight:600;letter-spacing:.5px;padding:12px;text-align:left;text-transform:uppercase}.child-data-table td{border-bottom:1px solid #e9ecef;font-size:14px;padding:12px}.child-data-table tr:hover{background:#f8f9fa}.notes-detail{background:#fff3cd;border-left:4px solid #ffc107;border-radius:6px;padding:15px}.notes-detail p{color:#495057;font-size:14px;line-height:1.6;margin:0}.business-daily-log-loading{color:#666;font-size:18px;padding:60px;text-align:center}.business-daily-log-error{background-color:#f8d7da;border:1px solid #f5c6cb;border-radius:8px;color:#dc3545;margin:20px 0;padding:40px;text-align:center}@media (max-width:1024px){.business-daily-log-viewer{padding:15px}.log-header{align-items:stretch;flex-direction:column;gap:20px}.filter-controls{flex-wrap:wrap;gap:15px;justify-content:center}.card-header{flex-direction:column;gap:15px}.card-badges{align-items:stretch;flex-direction:row;justify-content:space-between}.detail-modal{margin:10px;max-height:95vh}}@media (max-width:768px){.summary-grid{grid-template-columns:repeat(2,1fr)}.interviews-grid,.users-grid{grid-template-columns:1fr}.footer-stats{flex-direction:column;gap:10px}.filter-group{align-items:stretch;flex-direction:column}.filter-group label{min-width:auto}.detail-grid{grid-template-columns:1fr}.child-data-table{overflow-x:auto}.child-data-table table{min-width:500px}}@media (max-width:480px){.summary-grid{grid-template-columns:1fr}.card-badges,.modal-header{flex-direction:column}.modal-header{gap:10px}}.staff-attendance-viewer{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;margin:0 auto;max-width:1600px;padding:20px}.log-header{align-items:center;border-bottom:2px solid #e9ecef;display:flex;justify-content:space-between;margin-bottom:30px;padding-bottom:20px}.log-header h2{color:#495057;font-size:28px;font-weight:600;margin:0}.filter-controls{display:flex;gap:20px}.filter-group{align-items:center;gap:8px}.filter-group label{font-weight:500;min-width:60px}.filter-group select{border:1px solid #ced4da;border-radius:6px;font-size:14px;min-width:120px;padding:8px 12px}.summary-dashboard{margin-bottom:30px}.summary-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.summary-item{background:#fff;border-left:4px solid #007bff;border-radius:12px;box-shadow:0 2px 4px #0000001a;padding:20px;text-align:center}.summary-item.total-days{border-left-color:#17a2b8}.summary-item.total-hours{border-left-color:#28a745}.summary-item.average-hours{border-left-color:#6f42c1}.summary-item.late-count{border-left-color:#ffc107}.summary-item.early-leave{border-left-color:#fd7e14}.summary-item.attendance-rate{border-left-color:#20c997}.summary-item h3{color:#6c757d;font-size:13px;font-weight:600;letter-spacing:.5px;margin:0 0 12px;text-transform:uppercase}.summary-item .count{color:#495057;font-size:24px;font-weight:700}.summary-item .count.danger,.summary-item .count.warning{color:#dc3545}.summary-item .count.good{color:#28a745}.attendance-content{margin-bottom:30px}.attendance-table-container{border:1px solid #ddd;border-radius:8px;box-shadow:0 2px 4px #0000001a;overflow-x:auto}.attendance-table{background-color:#fff;border-collapse:collapse;min-width:800px;width:100%}.attendance-table th{background-color:#f8f9fa;border-bottom:2px solid #dee2e6;color:#333;font-size:14px;font-weight:700;padding:15px 12px;position:sticky;text-align:left;top:0;z-index:10}.attendance-table td{border-bottom:1px solid #dee2e6;font-size:14px;padding:12px;vertical-align:middle}.attendance-table tbody tr:hover{background-color:#f8f9fa}.attendance-table tbody tr:nth-child(2n){background-color:#fafafa}.date-cell{color:#495057;font-weight:600;min-width:100px}.staff-cell{min-width:120px}.day-cell,.staff-cell{color:#495057;font-weight:500}.day-cell{min-width:60px;text-align:center}.time-cell{font-weight:500}.break-cell,.time-cell,.work-hours-cell{font-family:Courier New,monospace;min-width:80px;text-align:center}.break-cell,.work-hours-cell{font-weight:600}.work-hours-cell{color:#28a745}.status-cell{min-width:80px;text-align:center}.status-badge{border-radius:20px;color:#fff;font-size:11px;font-weight:600;letter-spacing:.5px;padding:4px 12px;text-transform:uppercase}.notes-cell{word-wrap:break-word;color:#6c757d;font-size:13px;max-width:150px}.status-normal{background-color:#28a7450d}.status-late{background-color:#ffc1070d}.status-early{background-color:#fd7e140d}.status-incomplete{background-color:#dc35450d}.status-irregular{background-color:#6f42c10d}.status-absence{background-color:#6c757d0d}.no-data{font-size:18px}.log-footer{border-top:1px solid #e9ecef;margin-top:30px;padding-top:20px}.footer-stats{color:#6c757d;display:flex;font-size:14px;font-weight:500;gap:30px;justify-content:center}.staff-attendance-loading{color:#666;font-size:18px;padding:60px;text-align:center}.staff-attendance-error{background-color:#f8d7da;border:1px solid #f5c6cb;border-radius:8px;color:#dc3545;margin:20px 0;padding:40px;text-align:center}@media (max-width:1200px){.staff-attendance-viewer{padding:15px}.log-header{align-items:stretch;flex-direction:column;gap:20px}.filter-controls{flex-wrap:wrap;justify-content:center}.summary-grid{grid-template-columns:repeat(3,1fr)}}@media (max-width:768px){.summary-grid{grid-template-columns:repeat(2,1fr)}.footer-stats{flex-direction:column;gap:10px}.filter-group{align-items:stretch;flex-direction:column}.filter-group label{min-width:auto}.attendance-table td,.attendance-table th{font-size:12px;padding:8px 6px}}.pagination{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;justify-content:space-between;margin:30px 0}.pagination-info{color:#6c757d;font-size:14px;font-weight:500}.pagination-controls{align-items:center;display:flex;gap:8px}.pagination-button{background:#fff;border:1px solid #dee2e6;border-radius:4px;color:#495057;font-size:14px;min-width:40px;padding:8px 12px;transition:all .2s ease}.pagination-button:hover:not(:disabled){background:#f8f9fa;border-color:#adb5bd}.pagination-button.active{background:#007bff;border-color:#007bff;color:#fff}.pagination-button:disabled{opacity:.5}@media (max-width:480px){.summary-grid{grid-template-columns:1fr}.attendance-table-container{font-size:11px}.status-badge{font-size:10px;padding:3px 8px}.pagination{flex-direction:column;gap:15px}.pagination-controls{flex-wrap:wrap;justify-content:center}}.user-report-viewer{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;margin:0 auto;max-width:1400px;padding:20px}.viewer-header{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:10px;box-shadow:0 4px 15px #0000001a;color:#fff;margin-bottom:30px;padding:20px;text-align:center}.viewer-header h2{font-size:2.2em;font-weight:600;margin:0 0 10px}.viewer-header p{font-size:1.1em;margin:0;opacity:.9}.filter-section{background:#f8f9fa;border:1px solid #e9ecef;border-radius:10px;box-shadow:0 2px 10px #0000000d;margin-bottom:25px;padding:25px}.filter-row{align-items:center;display:flex;flex-wrap:wrap;gap:20px;margin-bottom:15px}.filter-row:last-child{margin-bottom:0}.filter-group{display:flex;flex-direction:column;gap:5px;min-width:120px}.filter-group.keyword-search{flex:1 1;min-width:300px}.filter-group label{color:#495057;font-size:.9em;font-weight:600;margin-bottom:2px}.filter-select{background:#fff;border:2px solid #dee2e6;border-radius:6px;font-size:14px;min-width:100px;padding:8px 12px;transition:all .3s ease}.filter-select:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.search-input{background:#fff;border:2px solid #dee2e6;border-radius:6px;font-size:14px;padding:10px 15px;transition:all .3s ease;width:100%}.search-input:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.clear-filters-button{background:#6c757d;border:none;border-radius:6px;color:#fff;cursor:pointer;font-weight:600;padding:10px 20px;transition:all .3s ease;white-space:nowrap}.clear-filters-button:hover{background:#5a6268;transform:translateY(-1px)}.results-summary{align-items:center;background:#e3f2fd;border:1px solid #bbdefb;border-radius:6px;display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;margin-bottom:20px;padding:15px 20px}.results-summary p{color:#1976d2;font-weight:600;margin:0}.table-container{background:#fff;border:1px solid #e9ecef;border-radius:10px;box-shadow:0 4px 15px #0000001a;overflow:hidden}.data-table{background:#fff;border-collapse:collapse;width:100%}.data-table th{background:linear-gradient(135deg,#667eea,#764ba2);border-bottom:2px solid #5a6fd8;color:#fff;font-size:14px;font-weight:600;padding:15px 12px;text-align:left}.data-table th:first-child{border-top-left-radius:10px}.data-table th:last-child{border-top-right-radius:10px}.data-row{border-bottom:1px solid #e9ecef;transition:background-color .2s ease}.data-row:hover{background-color:#f8f9fa}.data-row td{border-bottom:1px solid #f1f3f4;font-size:14px;padding:12px;vertical-align:top}.data-row:last-child td{border-bottom:none}.time-range{border-radius:4px;display:inline-block;font-size:12px;font-weight:600;min-width:60px;padding:4px 8px;text-align:center}.time-range.green{background:#d4edda;border:1px solid #c3e6cb;color:#155724}.time-range.orange{background:#fff3cd;border:1px solid #ffeaa7;color:#856404}.time-range.blue{background:#d1ecf1;border:1px solid #bee5eb;color:#0c5460}.time-range.gray{background:#f8f9fa;border:1px solid #dee2e6;color:#6c757d}.report-title{word-wrap:break-word;line-height:1.4;max-width:200px;white-space:normal}.expand-button{background:#667eea;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:12px;font-weight:600;min-width:30px;padding:6px 10px;transition:all .3s ease}.expand-button:hover{background:#5a6fd8;transform:scale(1.05)}.detail-row{background:#f8f9fa}.detail-row td{border:none;padding:0}.detail-content{border-top:2px solid #e9ecef;padding:20px}.detail-content h4{color:#495057;font-size:16px;font-weight:600;margin:0 0 15px}.comment-content{word-wrap:break-word;background:#fff;border:1px solid #e9ecef;border-radius:6px;color:#495057;font-size:14px;line-height:1.6;max-height:300px;overflow-y:auto;padding:15px;white-space:normal}.no-data{color:#6c757d;padding:60px 20px;text-align:center}.no-data p{font-size:16px;margin:10px 0}.no-data p:first-child{color:#495057;font-size:18px;font-weight:600}.pagination{align-items:center;display:flex;gap:20px;justify-content:center;margin-top:30px;padding:20px}.pagination-button{background:#667eea;border:none;border-radius:6px;color:#fff;cursor:pointer;font-weight:600;padding:10px 20px;transition:all .3s ease}.pagination-button:hover:not(:disabled){background:#5a6fd8;transform:translateY(-1px)}.pagination-button:disabled{background:#6c757d;cursor:not-allowed;opacity:.6}.page-info{color:#495057;font-size:16px;font-weight:600}.loading-container{padding:60px 20px;text-align:center}.loading-spinner{animation:spin 1s linear infinite;border:4px solid #f3f3f3;border-radius:50%;border-top-color:#667eea;height:40px;margin:0 auto 20px;width:40px}.loading-progress-bar{background-color:#f3f3f3;border-radius:4px;height:8px;margin:20px auto 0;overflow:hidden;width:300px}.loading-progress{background:linear-gradient(90deg,#667eea,#764ba2);border-radius:4px;height:100%;transition:width .3s ease}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.error-container{color:#dc3545;padding:60px 20px;text-align:center}.error-container h3{color:#dc3545;margin:0 0 15px}@media (max-width:768px){.user-report-viewer{padding:10px}.viewer-header{padding:15px}.viewer-header h2{font-size:1.8em}.filter-section{padding:15px}.filter-row{align-items:stretch;flex-direction:column;gap:15px}.filter-group,.filter-group.keyword-search{min-width:auto}.results-summary{flex-direction:column;text-align:center}.data-table{font-size:12px}.data-table td,.data-table th{padding:8px 6px}.report-title{max-width:120px}.pagination{flex-direction:column;gap:10px}}@media (max-width:480px){.viewer-header h2{font-size:1.5em}.data-table{font-size:11px}.data-table td,.data-table th{padding:6px 4px}.time-range{font-size:10px;padding:2px 4px}.expand-button{font-size:10px;padding:4px 6px}}.user-management{background:#fff;border-radius:8px;box-shadow:0 2px 10px #0000001a;margin:0 auto;max-width:1200px;padding:20px}.csv-operations-section{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:8px;color:#fff;margin-bottom:30px;padding:25px;text-align:center}.csv-operations-section h3{font-size:1.3rem;margin-bottom:20px}.csv-buttons{display:flex;flex-wrap:wrap;gap:15px;justify-content:center;margin-bottom:15px}.download-csv-button,.refresh-csv-button,.upload-csv-button{background:#fff3;border:2px solid #ffffff4d;border-radius:6px;color:#fff;cursor:pointer;display:inline-block;font-size:1rem;font-weight:500;padding:12px 24px;text-decoration:none;transition:all .3s ease}.download-csv-button:hover,.refresh-csv-button:hover,.upload-csv-button:hover{background:#ffffff4d;border-color:#ffffff80;transform:translateY(-2px)}.upload-csv-container{position:relative}.csv-instructions{font-size:.9rem;line-height:1.5;margin:0;opacity:.9}.read-only-badge{background:linear-gradient(135deg,#6c757d,#495057);border-radius:12px;color:#fff;font-size:.8rem;font-weight:500;padding:6px 12px}.user-info-display{background:#fff;border:1px solid #dee2e6;border-radius:6px;padding:20px;text-align:center}.user-info-display p{color:#666;font-size:1rem;margin:10px 0}.user-management-header{border-bottom:2px solid #e0e0e0;margin-bottom:30px;padding-bottom:20px;text-align:center}.user-management-header h2{color:#333;font-size:2rem;margin-bottom:10px}.user-management-header p{color:#666;font-size:1.1rem}.message{border-radius:5px;font-weight:500;margin-bottom:20px;padding:15px}.message.success{background-color:#d4edda;border:1px solid #c3e6cb;color:#155724}.message.error{background-color:#f8d7da;border:1px solid #f5c6cb;color:#721c24}.user-management-content{margin:0 auto;max-width:800px}.user-form-section{background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;padding:25px}.user-form-section h3{color:#333;font-size:1.3rem;margin-bottom:20px}.add-user-button{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:1rem;font-weight:500;padding:12px 24px;transition:all .3s ease;width:100%}.add-user-button:hover{box-shadow:0 4px 12px #667eea66;transform:translateY(-2px)}.user-form{background:#fff;border:1px solid #dee2e6;border-radius:6px;margin-top:15px;padding:20px}.form-group input,.form-group select{border:2px solid #e9ecef;border-radius:6px;font-size:1rem;padding:12px;transition:border-color .3s ease;width:100%}.form-group input:focus,.form-group select:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.form-actions{display:flex;gap:10px;margin-top:25px}.save-button{background:linear-gradient(135deg,#28a745,#20c997);border:none;border-radius:6px;color:#fff;cursor:pointer;flex:1 1;font-size:1rem;font-weight:500;padding:12px 24px;transition:all .3s ease}.save-button:hover{box-shadow:0 4px 12px #28a74566;transform:translateY(-2px)}.cancel-button{background:linear-gradient(135deg,#6c757d,#495057);border:none;border-radius:6px;color:#fff;cursor:pointer;flex:1 1;font-size:1rem;font-weight:500;padding:12px 24px;transition:all .3s ease}.cancel-button:hover{box-shadow:0 4px 12px #6c757d66;transform:translateY(-2px)}.user-list-section{background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;padding:25px}.user-list-section h3{color:#333;font-size:1.3rem;margin-bottom:20px}.user-list{display:flex;flex-direction:column;gap:15px}.user-item{align-items:center;background:#fff;border:1px solid #dee2e6;border-radius:8px;display:flex;justify-content:space-between;padding:20px;transition:all .3s ease}.user-item:hover{box-shadow:0 4px 12px #0000001a;transform:translateY(-2px)}.user-info{flex:1 1}.user-name{align-items:center;display:flex;gap:10px;margin-bottom:8px}.user-name strong{color:#333;font-size:1.1rem}.user-role{border-radius:12px;font-size:.8rem;font-weight:500;padding:4px 8px}.user-role.admin{background:linear-gradient(135deg,gold,#ffed4e);color:#856404}.user-role.user{background:linear-gradient(135deg,#e3f2fd,#bbdefb);color:#1976d2}.user-details{color:#666;display:flex;flex-direction:column;font-size:.9rem;gap:4px}.user-actions{display:flex;gap:8px}.delete-button,.edit-button{border:none;border-radius:4px;cursor:pointer;font-size:.9rem;font-weight:500;padding:8px 16px;transition:all .3s ease}.edit-button{background:linear-gradient(135deg,#17a2b8,#20c997);color:#fff}.edit-button:hover{box-shadow:0 2px 8px #17a2b84d;transform:translateY(-1px)}.delete-button{background:linear-gradient(135deg,#dc3545,#e74c3c);color:#fff}.delete-button:hover:not(:disabled){box-shadow:0 2px 8px #dc35454d;transform:translateY(-1px)}.delete-button:disabled{background:#6c757d;cursor:not-allowed;opacity:.6}.user-management-notice{background:#fff3cd;border:1px solid #ffeaa7;border-radius:8px;grid-column:1/-1;margin-top:20px;padding:20px}.user-management-notice h4{color:#856404;font-size:1.1rem;margin-bottom:15px}.user-management-notice ul{color:#856404;padding-left:20px}.user-management-notice li{line-height:1.5;margin-bottom:8px}@media (max-width:768px){.user-management{padding:15px}.csv-buttons{align-items:center;flex-direction:column}.download-csv-button,.upload-csv-button{max-width:300px;width:100%}.user-item{align-items:flex-start;flex-direction:column;gap:15px}.user-actions{justify-content:space-between;width:100%}.form-actions{flex-direction:column}.user-management-header h2{font-size:1.5rem}}.login-container{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;justify-content:center;min-height:100vh;padding:20px}.login-box{background:#fff;border-radius:10px;box-shadow:0 15px 35px #0000001a;max-width:400px;padding:40px;width:100%}.login-box h2{color:#333;font-size:28px;margin-bottom:10px;text-align:center}.login-subtitle{color:#666;font-size:16px;margin-bottom:30px;text-align:center}.form-group{margin-bottom:20px}.form-group label{color:#333;display:block;font-weight:500;margin-bottom:8px}.form-group input{border:2px solid #e1e5e9;border-radius:5px;box-sizing:border-box;font-size:16px;padding:12px 15px;transition:border-color .3s ease;width:100%}.form-group input:focus{border-color:#667eea;outline:none}.login-button{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:5px;color:#fff;cursor:pointer;font-size:16px;font-weight:600;padding:12px;transition:transform .2s ease;width:100%}.login-button:hover:not(:disabled){transform:translateY(-2px)}.login-button:disabled{cursor:not-allowed;opacity:.7}.error-message{background:#fee;border:1px solid #fcc;border-radius:5px;color:#c33;margin-bottom:20px;padding:12px;text-align:center}.login-info{background:#f8f9fa;border-left:4px solid #667eea;border-radius:5px;margin-top:30px;padding:20px}.login-info p{color:#666;font-size:14px;margin:5px 0}.login-info strong{color:#333}@media (max-width:480px){.login-box{padding:30px 20px}.login-box h2{font-size:24px}}
/*# sourceMappingURL=main.fec023a9.css.map*/