body{margin:0;font-family:sans-serif}.navbar{display:flex;justify-content:space-between;align-items:center;padding:1rem 2rem;background-color:#f8f9fa;border-bottom:1px solid #dee2e6}.navbar-brand{display:flex;align-items:center;gap:1rem}.logo{height:40px;width:auto;object-fit:contain}.main-nav{display:flex;gap:2rem}.nav-hidden{display:none!important}.nav-link{text-decoration:none;color:#495057;font-weight:500;padding:.5rem 1rem;border-radius:4px;transition:background-color .2s ease}.nav-link:hover{background-color:#e9ecef}.nav-link.router-link-active{color:#007bff;background-color:#e3f2fd}.nav-actions{display:flex;align-items:center;gap:1.5rem}.nav-dropdown-wrapper{position:relative}.hamburger-btn{display:flex;flex-direction:column;justify-content:space-between;width:28px;height:20px;background:none;border:none;cursor:pointer;padding:0}.hamburger-btn span{display:block;height:2px;background:#495057;border-radius:2px;transition:background .2s}.hamburger-btn:hover span{background:#007bff}.nav-dropdown{position:absolute;top:calc(100% + .5rem);left:0;background:#fff;border:1px solid #dee2e6;border-radius:8px;box-shadow:0 4px 12px #0000001f;min-width:160px;z-index:100;overflow:hidden}.dropdown-link{display:block;padding:.65rem 1rem;text-decoration:none;color:#495057;font-weight:500;font-size:.95rem;transition:background .15s}.dropdown-link:hover,.dropdown-link.router-link-active{background:#e3f2fd;color:#007bff}.sign-out-btn{padding:.5rem 1rem;border:1px solid #dc3545;background-color:#dc3545;color:#fff;border-radius:4px;cursor:pointer}.sign-out-btn:hover{background-color:#c82333}main{padding:2rem}@media(max-width:768px){.navbar{flex-direction:column;align-items:flex-start;gap:.75rem;padding:.75rem 1rem}.navbar-brand h1{font-size:1rem}.logo{height:28px}.main-nav{gap:.25rem;flex-wrap:wrap;width:100%}.nav-link{padding:.4rem .6rem;font-size:.85rem}.nav-actions{align-self:stretch;width:100%;justify-content:space-between}.user-info{min-width:unset;font-size:.85rem;align-items:flex-start;flex:1}.sign-out-btn{white-space:nowrap;font-size:.85rem;padding:.4rem .75rem}main{padding:.75rem}}.user-info{display:flex;flex-direction:column;align-items:flex-end;gap:.25rem;padding:.75rem 1rem;background-color:#fff;border:1px solid #dee2e6;border-radius:8px;width:fit-content;box-shadow:0 1px 3px #0000001a}.role-badge{padding:.25rem .5rem;border-radius:12px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.role-base{background-color:#e3f2fd;color:#1565c0}.role-admin{background-color:#fff3e0;color:#e65100}.home[data-v-1a4cc8dd]{max-width:1200px;margin:0 auto}.auth-prompt[data-v-1a4cc8dd]{text-align:center;padding:2rem;background-color:#f8f9fa;border-radius:8px;margin:2rem 0}.features[data-v-1a4cc8dd]{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1rem;margin-top:2rem}.feature-card[data-v-1a4cc8dd]{padding:1.5rem;border:1px solid #dee2e6;border-radius:8px;background-color:#fff;transition:transform .2s ease,box-shadow .2s ease}.feature-card[data-v-1a4cc8dd]:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.feature-card h3[data-v-1a4cc8dd]{margin-top:0;color:#495057}.card-link[data-v-1a4cc8dd]{text-decoration:none;color:inherit;display:block}.card-link[data-v-1a4cc8dd]:hover{text-decoration:none;color:inherit}.users-page[data-v-07fa1212]{max-width:1200px;margin:0 auto;padding:2rem}.page-header[data-v-07fa1212]{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;border-bottom:2px solid #e9ecef;padding-bottom:1rem}.page-header h1[data-v-07fa1212]{margin:0;color:#333}.user-count[data-v-07fa1212]{color:#666;font-size:1rem;background:#f8f9fa;padding:.5rem 1rem;border-radius:20px}.loading[data-v-07fa1212]{text-align:center;padding:2rem;color:#666;font-size:1.1rem}.error[data-v-07fa1212]{background-color:#f8d7da;color:#721c24;padding:1rem;border-radius:4px;margin-bottom:2rem;border:1px solid #f5c6cb}.no-users[data-v-07fa1212]{text-align:center;padding:2rem;color:#666;font-size:1.1rem}.users-grid[data-v-07fa1212]{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:1.5rem}.user-card[data-v-07fa1212]{background:#fff;border:1px solid #dee2e6;border-radius:8px;padding:1.5rem;box-shadow:0 2px 4px #0000001a;transition:transform .2s ease,box-shadow .2s ease}.user-card[data-v-07fa1212]:hover{transform:translateY(-2px);box-shadow:0 4px 8px #00000026}.user-avatar[data-v-07fa1212]{display:flex;justify-content:center;margin-bottom:1rem}.avatar-img[data-v-07fa1212]{width:60px;height:60px;border-radius:50%;object-fit:cover;border:2px solid #e9ecef}.avatar-placeholder[data-v-07fa1212]{width:60px;height:60px;border-radius:50%;background-color:#6c757d;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.2rem}.user-info[data-v-07fa1212]{text-align:center}.user-name[data-v-07fa1212]{margin:0 0 .5rem;color:#333;font-size:1.2rem}.user-email[data-v-07fa1212]{margin:0 0 1rem;color:#666;font-size:.9rem}.user-dates[data-v-07fa1212]{display:flex;flex-direction:column;gap:.5rem}.date-item[data-v-07fa1212]{display:flex;justify-content:space-between;align-items:center;padding:.25rem 0;border-bottom:1px solid #f1f3f4}.date-item[data-v-07fa1212]:last-child{border-bottom:none}.date-label[data-v-07fa1212]{font-size:.85rem;color:#666;font-weight:500}.date-value[data-v-07fa1212]{font-size:.85rem;color:#333}.user-actions[data-v-07fa1212]{margin-top:1.5rem;padding-top:1rem;border-top:1px solid #f1f3f4;display:flex;justify-content:center}.btn[data-v-07fa1212]{padding:.5rem 1rem;border:none;border-radius:4px;font-size:.85rem;font-weight:600;cursor:pointer;transition:all .2s ease;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}.btn-edit[data-v-07fa1212]{background-color:#007bff;color:#fff}.btn-edit[data-v-07fa1212]:hover{background-color:#0056b3;transform:translateY(-1px)}.role-management[data-v-07fa1212]{display:flex;align-items:center;gap:.5rem}.role-badge[data-v-07fa1212]{padding:.25rem .5rem;border-radius:12px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.role-base[data-v-07fa1212]{background-color:#e3f2fd;color:#1565c0}.role-admin[data-v-07fa1212]{background-color:#fff3e0;color:#e65100}.role-select[data-v-07fa1212]{padding:.25rem .5rem;border:1px solid #ddd;border-radius:4px;font-size:.75rem;background:#fff;cursor:pointer}.role-select[data-v-07fa1212]:focus{outline:none;border-color:#007bff;box-shadow:0 0 0 2px #007bff40}@media(max-width:768px){.users-page[data-v-07fa1212]{padding:.75rem}.page-header[data-v-07fa1212]{flex-direction:column;align-items:flex-start;gap:.5rem;margin-bottom:1rem}.page-header h1[data-v-07fa1212]{font-size:1.4rem}.users-grid[data-v-07fa1212]{grid-template-columns:1fr}.user-card[data-v-07fa1212]{padding:1rem}.date-item[data-v-07fa1212]{flex-direction:column;align-items:flex-start;gap:.1rem}.role-management[data-v-07fa1212]{flex-wrap:wrap}}.edit-user-page[data-v-682a74dd]{max-width:600px;margin:0 auto;padding:2rem}.access-denied[data-v-682a74dd]{text-align:center;padding:3rem;color:#721c24;background-color:#f8d7da;border:1px solid #f5c6cb;border-radius:8px}.access-denied h2[data-v-682a74dd]{margin:0 0 .5rem}.page-header[data-v-682a74dd]{margin-bottom:2rem}.header-content[data-v-682a74dd]{display:flex;flex-direction:column;gap:1rem}.back-link[data-v-682a74dd]{color:#007bff;text-decoration:none;font-size:.9rem;transition:color .2s ease}.back-link[data-v-682a74dd]:hover{color:#0056b3}.page-header h1[data-v-682a74dd]{margin:0;color:#333}.loading[data-v-682a74dd]{text-align:center;padding:2rem;color:#666;font-size:1.1rem}.error[data-v-682a74dd]{background-color:#f8d7da;color:#721c24;padding:1rem;border-radius:4px;margin-bottom:2rem;border:1px solid #f5c6cb}.edit-form-container[data-v-682a74dd]{background:#fff;border:1px solid #dee2e6;border-radius:8px;padding:2rem;box-shadow:0 2px 4px #0000001a}.user-preview[data-v-682a74dd]{display:flex;align-items:center;gap:1rem;padding:1.5rem;background:#f8f9fa;border-radius:8px;margin-bottom:2rem}.preview-avatar .avatar-img[data-v-682a74dd]{width:60px;height:60px;border-radius:50%;object-fit:cover;border:2px solid #e9ecef}.preview-avatar .avatar-placeholder[data-v-682a74dd]{width:60px;height:60px;border-radius:50%;background-color:#6c757d;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.2rem}.preview-info h3[data-v-682a74dd]{margin:0 0 .25rem;color:#333}.preview-info p[data-v-682a74dd]{margin:0;color:#666}.edit-form[data-v-682a74dd]{display:flex;flex-direction:column;gap:1.5rem}.form-group[data-v-682a74dd]{display:flex;flex-direction:column;gap:.5rem}.form-label[data-v-682a74dd]{font-weight:600;color:#333;font-size:.9rem}.form-input[data-v-682a74dd]{padding:.75rem;border:1px solid #ced4da;border-radius:4px;font-size:1rem;transition:border-color .2s ease,box-shadow .2s ease}.form-input[data-v-682a74dd]:focus{outline:none;border-color:#007bff;box-shadow:0 0 0 2px #007bff40}.form-select[data-v-682a74dd]{padding:.75rem;border:1px solid #ced4da;border-radius:4px;font-size:1rem;background-color:#fff;cursor:pointer;transition:border-color .2s ease,box-shadow .2s ease}.form-select[data-v-682a74dd]:focus{outline:none;border-color:#007bff;box-shadow:0 0 0 2px #007bff40}.role-display[data-v-682a74dd]{display:flex;align-items:center;gap:1rem}.role-badge[data-v-682a74dd]{padding:.25rem .75rem;border-radius:15px;font-size:.8rem;font-weight:600;text-transform:uppercase}.role-admin[data-v-682a74dd]{background-color:#dc3545;color:#fff}.role-base[data-v-682a74dd]{background-color:#6c757d;color:#fff}.role-note[data-v-682a74dd]{font-size:.8rem;color:#666;font-style:italic}.user-metadata[data-v-682a74dd]{padding:1rem;background:#f8f9fa;border-radius:6px;display:flex;flex-direction:column;gap:.5rem}.metadata-item[data-v-682a74dd]{display:flex;justify-content:space-between;align-items:center}.metadata-label[data-v-682a74dd]{font-size:.9rem;color:#666;font-weight:500}.metadata-value[data-v-682a74dd]{font-size:.9rem;color:#333}.form-actions[data-v-682a74dd]{display:flex;gap:1rem;justify-content:flex-end;padding-top:1rem;border-top:1px solid #e9ecef}.btn[data-v-682a74dd]{padding:.75rem 1.5rem;border:none;border-radius:4px;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .2s ease;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;min-width:120px}.btn[data-v-682a74dd]:disabled{opacity:.6;cursor:not-allowed}.btn-primary[data-v-682a74dd]{background-color:#007bff;color:#fff}.btn-primary[data-v-682a74dd]:hover:not(:disabled){background-color:#0056b3}.btn-secondary[data-v-682a74dd]{background-color:#6c757d;color:#fff}.btn-secondary[data-v-682a74dd]:hover:not(:disabled){background-color:#545b62}@media(max-width:768px){.edit-user-page[data-v-682a74dd]{padding:.75rem}.page-header h1[data-v-682a74dd]{font-size:1.4rem}.edit-form-container[data-v-682a74dd]{padding:1rem}.user-preview[data-v-682a74dd]{flex-direction:column;text-align:center;padding:1rem}.metadata-item[data-v-682a74dd]{flex-direction:column;align-items:flex-start;gap:.1rem}.form-actions[data-v-682a74dd]{flex-direction:column}.btn[data-v-682a74dd]{width:100%}}.upload-page[data-v-902d3880]{max-width:800px;margin:0 auto;padding:2rem}.access-denied[data-v-902d3880]{text-align:center;padding:3rem;color:#721c24;background-color:#f8d7da;border:1px solid #f5c6cb;border-radius:8px}.access-denied h2[data-v-902d3880]{margin:0 0 .5rem}.page-header[data-v-902d3880]{text-align:center;margin-bottom:2rem}.page-header h1[data-v-902d3880]{margin:0 0 .5rem;color:#333}.page-description[data-v-902d3880]{color:#666;font-size:1.1rem;margin:0}.upload-container[data-v-902d3880]{background:#fff;border:1px solid #dee2e6;border-radius:8px;padding:2rem;box-shadow:0 2px 4px #0000001a;margin-bottom:2rem}.file-upload-area[data-v-902d3880]{border:2px dashed #dee2e6;border-radius:8px;padding:3rem 2rem;text-align:center;cursor:pointer;transition:all .3s ease;margin-bottom:1.5rem}.file-upload-area[data-v-902d3880]:hover{border-color:#007bff;background-color:#f8f9fa}.file-upload-area.drag-over[data-v-902d3880]{border-color:#007bff;background-color:#e3f2fd}.file-upload-area.uploading[data-v-902d3880]{pointer-events:none;opacity:.7}.upload-icon[data-v-902d3880]{font-size:3rem;margin-bottom:1rem}.upload-content h3[data-v-902d3880]{margin:0 0 .5rem;color:#333}.upload-content p[data-v-902d3880]{margin:0;color:#666}.uploading-content[data-v-902d3880]{display:flex;flex-direction:column;align-items:center;gap:1rem}.spinner[data-v-902d3880]{width:40px;height:40px;border:4px solid #f3f3f3;border-top:4px solid #007bff;border-radius:50%;animation:spin-902d3880 1s linear infinite}@keyframes spin-902d3880{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.selected-file[data-v-902d3880]{display:flex;justify-content:space-between;align-items:center;background:#f8f9fa;padding:1rem;border-radius:4px;margin-bottom:1.5rem}.clear-btn[data-v-902d3880]{background:none;border:none;font-size:1.2rem;cursor:pointer;color:#666;padding:.25rem}.upload-actions[data-v-902d3880]{text-align:center}.btn[data-v-902d3880]{padding:.75rem 2rem;border:none;border-radius:4px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease;min-width:150px}.btn[data-v-902d3880]:disabled{opacity:.6;cursor:not-allowed}.btn-primary[data-v-902d3880]{background-color:#007bff;color:#fff}.btn-primary[data-v-902d3880]:hover:not(:disabled){background-color:#0056b3}.upload-result[data-v-902d3880]{margin-top:2rem;padding:1.5rem;border-radius:8px}.upload-result.success[data-v-902d3880]{background-color:#d4edda;border:1px solid #c3e6cb;color:#155724}.upload-result.error[data-v-902d3880]{background-color:#f8d7da;border:1px solid #f5c6cb;color:#721c24}.upload-result h3[data-v-902d3880]{margin:0 0 1rem}.result-stats[data-v-902d3880]{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:1rem}.stat[data-v-902d3880]{text-align:center}.stat-number[data-v-902d3880]{display:block;font-size:2rem;font-weight:700;color:#155724}.stat-label[data-v-902d3880]{display:block;font-size:.9rem;color:#155724}.csv-format-info[data-v-902d3880]{background:#f8f9fa;border:1px solid #dee2e6;border-radius:8px;padding:1.5rem}.csv-format-info h3[data-v-902d3880]{margin:0 0 1rem;color:#333}.format-example[data-v-902d3880]{background:#fff;border:1px solid #dee2e6;border-radius:4px;margin-bottom:1rem}.format-example pre[data-v-902d3880]{margin:0;padding:1rem;font-family:monospace;font-size:.9rem;overflow-x:auto}.format-rules[data-v-902d3880]{margin:0;padding-left:1.5rem}.format-rules li[data-v-902d3880]{margin-bottom:.5rem;color:#555}@media(max-width:768px){.upload-page[data-v-902d3880]{padding:.75rem}.page-header h1[data-v-902d3880]{font-size:1.4rem}.upload-container[data-v-902d3880]{padding:1rem}.file-upload-area[data-v-902d3880]{padding:1.5rem 1rem}.upload-icon[data-v-902d3880]{font-size:2rem}.upload-content h3[data-v-902d3880]{font-size:1rem}.result-stats[data-v-902d3880]{grid-template-columns:repeat(2,1fr)}.stat-number[data-v-902d3880]{font-size:1.5rem}.format-example pre[data-v-902d3880]{font-size:.75rem}.csv-format-info[data-v-902d3880]{padding:1rem}}.sessions-page[data-v-7ccc0af7]{max-width:1200px;margin:0 auto;padding:2rem}.page-header[data-v-7ccc0af7]{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;border-bottom:2px solid #e9ecef;padding-bottom:1rem}.page-header h1[data-v-7ccc0af7]{margin:0;color:#333}.header-actions[data-v-7ccc0af7]{display:flex;gap:1rem}.filters-section[data-v-7ccc0af7]{background-color:#f8f9fa;padding:1rem;border-radius:8px;margin-bottom:2rem;display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.filter-group[data-v-7ccc0af7]{display:flex;align-items:center;gap:.5rem}.filter-group label[data-v-7ccc0af7]{font-weight:500;color:#333;font-size:.9rem}.month-selector[data-v-7ccc0af7]{padding:.5rem;border:1px solid #ddd;border-radius:4px;font-size:.9rem;background-color:#fff;min-width:150px}.month-selector[data-v-7ccc0af7]:disabled{background-color:#f5f5f5;color:#666;cursor:not-allowed}.month-selector[data-v-7ccc0af7]:focus{outline:none;border-color:#06c;box-shadow:0 0 0 2px #06c3}.active-filter[data-v-7ccc0af7]{display:flex;align-items:center;gap:.5rem;background-color:#06c;color:#fff;padding:.25rem .75rem;border-radius:20px;font-size:.85rem}.clear-filter[data-v-7ccc0af7]{background:none;border:none;color:#fff;cursor:pointer;padding:0;width:16px;height:16px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px}.clear-filter[data-v-7ccc0af7]:hover{background-color:#fff3}.loading[data-v-7ccc0af7]{text-align:center;padding:2rem;color:#666;font-size:1.1rem}.error[data-v-7ccc0af7]{background-color:#f8d7da;color:#721c24;padding:1rem;border-radius:4px;margin-bottom:2rem;border:1px solid #f5c6cb}.sessions-summary[data-v-7ccc0af7]{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.5rem;margin-bottom:2rem}.summary-card[data-v-7ccc0af7]{background:#fff;border:1px solid #dee2e6;border-radius:8px;padding:1.5rem;text-align:center;box-shadow:0 2px 4px #0000001a}.summary-number[data-v-7ccc0af7]{display:block;font-size:2.5rem;font-weight:700;color:#007bff;margin-bottom:.5rem}.summary-label[data-v-7ccc0af7]{display:block;color:#666;font-size:1rem}.sessions-table-container[data-v-7ccc0af7]{background:#fff;border:1px solid #dee2e6;border-radius:8px;overflow:hidden;box-shadow:0 2px 4px #0000001a;margin-bottom:2rem}.sessions-table[data-v-7ccc0af7]{width:100%;border-collapse:collapse}.sessions-table th[data-v-7ccc0af7]{background:#f8f9fa;padding:1rem;text-align:left;font-weight:600;color:#333;border-bottom:2px solid #dee2e6}.session-row[data-v-7ccc0af7]{transition:background-color .2s ease}.session-row[data-v-7ccc0af7]:hover{background-color:#f8f9fa}.session-row td[data-v-7ccc0af7]{padding:1rem;border-bottom:1px solid #e9ecef}.user-badge[data-v-7ccc0af7],.station-badge[data-v-7ccc0af7]{display:inline-block;padding:.25rem .75rem;border-radius:12px;font-size:.85rem;font-weight:600}.user-badge[data-v-7ccc0af7]{background-color:#e3f2fd;color:#1565c0}.station-badge[data-v-7ccc0af7]{background-color:#f3e5f5;color:#7b1fa2}.energy-cell[data-v-7ccc0af7]{font-weight:600;color:#2e7d32}.pagination[data-v-7ccc0af7]{display:flex;justify-content:center;align-items:center;gap:1rem;margin-bottom:2rem}.page-info[data-v-7ccc0af7]{font-weight:500;color:#666}.no-sessions[data-v-7ccc0af7]{text-align:center;padding:3rem 2rem;background:#fff;border:1px solid #dee2e6;border-radius:8px;color:#666}.no-sessions h3[data-v-7ccc0af7]{margin:0 0 1rem;color:#333}.no-sessions p[data-v-7ccc0af7]{margin:0 0 2rem}.btn[data-v-7ccc0af7]{padding:.75rem 1.5rem;border:none;border-radius:4px;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .2s ease;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}.btn[data-v-7ccc0af7]:disabled{opacity:.6;cursor:not-allowed}.btn-primary[data-v-7ccc0af7]{background-color:#007bff;color:#fff}.btn-primary[data-v-7ccc0af7]:hover:not(:disabled){background-color:#0056b3}.btn-secondary[data-v-7ccc0af7]{background-color:#6c757d;color:#fff}.btn-secondary[data-v-7ccc0af7]:hover:not(:disabled){background-color:#545b62}@media(max-width:768px){.sessions-page[data-v-7ccc0af7]{padding:.75rem}.page-header[data-v-7ccc0af7]{flex-direction:column;align-items:flex-start;gap:.75rem;margin-bottom:1rem}.page-header h1[data-v-7ccc0af7]{font-size:1.4rem}.filters-section[data-v-7ccc0af7]{padding:.75rem;gap:.75rem}.sessions-summary[data-v-7ccc0af7]{grid-template-columns:repeat(3,1fr);gap:.75rem}.summary-card[data-v-7ccc0af7]{padding:.75rem .5rem}.summary-number[data-v-7ccc0af7]{font-size:1.5rem}.summary-label[data-v-7ccc0af7]{font-size:.75rem}.sessions-table-container[data-v-7ccc0af7]{overflow-x:auto;-webkit-overflow-scrolling:touch}.sessions-table[data-v-7ccc0af7]{min-width:600px}.sessions-table th[data-v-7ccc0af7],.session-row td[data-v-7ccc0af7]{padding:.6rem .5rem;font-size:.85rem}.pagination[data-v-7ccc0af7]{gap:.5rem;flex-wrap:wrap}.btn[data-v-7ccc0af7]{padding:.6rem 1rem;font-size:.85rem}}.invoice-grid-page[data-v-63a51d74]{max-width:100%;margin:0 auto;padding:2rem}.page-header[data-v-63a51d74]{margin-bottom:2rem}.page-header h1[data-v-63a51d74]{margin:0 0 .5rem;color:#333}.page-header p[data-v-63a51d74]{margin:0;color:#666;font-size:1.1rem}.loading[data-v-63a51d74]{text-align:center;padding:3rem;color:#666;font-size:1.1rem}.error[data-v-63a51d74]{background-color:#f8d7da;color:#721c24;padding:1rem;border-radius:4px;margin-bottom:2rem;border:1px solid #f5c6cb}.admin-controls[data-v-63a51d74]{background:#f8f9fa;border:1px solid #dee2e6;border-radius:8px;padding:1.5rem;margin-bottom:2rem}.generation-section[data-v-63a51d74]{margin-bottom:2rem}.generation-section[data-v-63a51d74]:last-child{margin-bottom:0}.generation-section h3[data-v-63a51d74]{margin:0 0 1rem;color:#333;font-size:1.1rem}.generate-form[data-v-63a51d74]{display:flex;gap:1rem;align-items:center;flex-wrap:wrap}.bulk-result[data-v-63a51d74]{margin-top:1rem;padding:1rem;background:#e9ecef;border-radius:4px}.bulk-result h4[data-v-63a51d74]{margin:0 0 .5rem;color:#333;font-size:1rem}.result-summary[data-v-63a51d74]{display:flex;gap:1rem;margin-bottom:.5rem;flex-wrap:wrap}.result-stat[data-v-63a51d74]{padding:.25rem .5rem;border-radius:3px;font-size:.85rem;font-weight:600}.result-stat.generated[data-v-63a51d74]{background:#d4edda;color:#155724}.result-stat.skipped[data-v-63a51d74]{background:#fff3cd;color:#856404}.result-stat.errors[data-v-63a51d74]{background:#f8d7da;color:#721c24}.form-select[data-v-63a51d74],.form-input[data-v-63a51d74]{padding:.5rem;border:1px solid #ced4da;border-radius:4px;font-size:.9rem}.amount-input[data-v-63a51d74]{width:120px}.btn[data-v-63a51d74]{padding:.5rem 1rem;border:none;border-radius:4px;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .2s ease}.btn[data-v-63a51d74]:disabled{opacity:.6;cursor:not-allowed}.btn-primary[data-v-63a51d74]{background-color:#007bff;color:#fff}.btn-primary[data-v-63a51d74]:hover:not(:disabled){background-color:#0056b3}.btn-secondary[data-v-63a51d74]{background-color:#6c757d;color:#fff}.btn-secondary[data-v-63a51d74]:hover:not(:disabled){background-color:#545b62}.btn-link[data-v-63a51d74]{background:none;color:#007bff;text-decoration:underline;border:none;padding:0;font-size:.85rem}.btn-link[data-v-63a51d74]:hover{color:#0056b3;text-decoration:none}.grid-wrapper[data-v-63a51d74]{overflow-x:auto;display:inline-block;background:#fff;border:1px solid #dee2e6;border-radius:8px;box-shadow:0 2px 4px #0000001a}.invoice-grid[data-v-63a51d74]{width:auto;border-collapse:collapse}.invoice-grid th[data-v-63a51d74],.invoice-grid td[data-v-63a51d74]{border:1px solid #dee2e6;text-align:center;vertical-align:middle}.invoice-grid th[data-v-63a51d74]{background-color:#f8f9fa;font-weight:600;color:#333;padding:.75rem .5rem;position:sticky;top:0;z-index:10}.user-column[data-v-63a51d74]{width:100px;text-align:left;position:sticky;left:0;background-color:#f8f9fa!important;z-index:11}.month-column[data-v-63a51d74]{width:140px;font-size:.85rem}.user-row[data-v-63a51d74]:nth-child(2n){background-color:#f8f9fa}.user-cell[data-v-63a51d74]{text-align:left;padding:1rem;position:sticky;left:0;background-color:inherit;z-index:5}.user-info[data-v-63a51d74]{display:flex;flex-direction:column;gap:.25rem}.user-name[data-v-63a51d74]{font-weight:600;color:#333;font-size:.9rem}.user-email[data-v-63a51d74]{font-size:.8rem;color:#666}.invoice-cell[data-v-63a51d74]{padding:.5rem;width:140px}.invoice-content[data-v-63a51d74]{display:flex;flex-direction:column;align-items:center;gap:.25rem}.invoice-link[data-v-63a51d74]{display:flex;flex-direction:column;align-items:center;gap:.25rem;text-decoration:none;color:#007bff;padding:.5rem;border-radius:4px;transition:background-color .2s ease;width:100%}.invoice-link[data-v-63a51d74]:hover{background-color:#f0f8ff;text-decoration:none}.invoice-number[data-v-63a51d74]{font-size:.8rem;font-weight:600}.invoice-amount[data-v-63a51d74]{font-size:.75rem;color:#28a745;font-weight:500}.no-invoice[data-v-63a51d74]{color:#6c757d;font-size:1.2rem;opacity:.5}.mobile-view[data-v-63a51d74]{display:none}@media(max-width:768px){.invoice-grid-page[data-v-63a51d74]{padding:.75rem}.grid-info h2[data-v-63a51d74]{font-size:1.2rem;margin-bottom:.25rem}.grid-info .description[data-v-63a51d74]{font-size:.9rem}.desktop-grid[data-v-63a51d74]{display:none}.mobile-view[data-v-63a51d74]{display:block}}.mobile-user-select[data-v-63a51d74]{display:flex;flex-direction:column;gap:.4rem;margin-bottom:1.25rem}.mobile-label[data-v-63a51d74]{font-weight:600;color:#333;font-size:.9rem}.mobile-select[data-v-63a51d74]{padding:.65rem .75rem;border:1px solid #ced4da;border-radius:6px;font-size:1rem;background-color:#fff;width:100%}.mobile-select[data-v-63a51d74]:focus{outline:none;border-color:#007bff;box-shadow:0 0 0 2px #007bff33}.mobile-month-list[data-v-63a51d74]{background:#fff;border:1px solid #dee2e6;border-radius:8px;overflow:hidden;box-shadow:0 2px 4px #00000014}.mobile-month-row[data-v-63a51d74]{display:flex;justify-content:space-between;align-items:center;padding:.85rem 1rem;border-bottom:1px solid #f1f3f4}.mobile-month-row[data-v-63a51d74]:last-child{border-bottom:none}.mobile-month-name[data-v-63a51d74]{font-weight:500;color:#333;font-size:.95rem}.mobile-invoice-link[data-v-63a51d74]{color:#007bff;text-decoration:none;font-weight:600;font-size:.9rem;padding:.35rem .75rem;border:1px solid #007bff;border-radius:4px;transition:background-color .15s ease,color .15s ease}.mobile-invoice-link[data-v-63a51d74]:hover{background-color:#007bff;color:#fff}.mobile-no-invoice[data-v-63a51d74]{color:#adb5bd;font-size:.85rem}.event-log-page[data-v-96693318]{max-width:900px;margin:0 auto;padding:2rem}.page-header[data-v-96693318]{margin-bottom:1.5rem}.page-header h1[data-v-96693318]{margin:0 0 .25rem}.description[data-v-96693318]{color:#666;margin:0;font-size:.95rem}.loading[data-v-96693318],.empty[data-v-96693318]{text-align:center;padding:3rem;color:#666}.error[data-v-96693318]{background:#f8d7da;color:#721c24;border:1px solid #f5c6cb;border-radius:6px;padding:1rem}.access-denied[data-v-96693318]{text-align:center;padding:3rem;color:#721c24;background-color:#f8d7da;border:1px solid #f5c6cb;border-radius:8px}.access-denied h2[data-v-96693318]{margin:0 0 .5rem}.table-wrapper[data-v-96693318]{background:#fff;border:1px solid #dee2e6;border-radius:8px;overflow:hidden;box-shadow:0 2px 4px #00000014}.log-table[data-v-96693318]{width:100%;border-collapse:collapse}.log-table th[data-v-96693318]{background:#f8f9fa;padding:.75rem 1rem;text-align:left;font-weight:600;color:#333;border-bottom:2px solid #dee2e6;font-size:.9rem}.log-table td[data-v-96693318]{padding:.65rem 1rem;border-bottom:1px solid #f1f3f4;font-size:.9rem;color:#333}.log-table tr:last-child td[data-v-96693318]{border-bottom:none}.log-table tr:hover td[data-v-96693318]{background:#f8f9fa}.timestamp[data-v-96693318]{white-space:nowrap;color:#555;font-family:monospace;font-size:.85rem}.username[data-v-96693318]{font-weight:500}
