diff --git a/public/style.css b/public/style.css index b80d961..f8c2612 100644 --- a/public/style.css +++ b/public/style.css @@ -1 +1 @@ -.admin-container{max-width:1200px;margin:0 auto;padding:24px}.login-section{background:var(--card-bg);color:var(--text-color);padding:32px;border-radius:8px;box-shadow:0 2px 4px rgba(0,0,0,.1);max-width:400px;margin:50px auto}.admin-section{display:none}.admin-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.header-buttons{display:flex;gap:8px;align-items:center}.header-btn{border:none;border-radius:4px;cursor:pointer;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;text-decoration:none;display:inline-block;transition:all .2s ease;padding:8px 16px;font-size:14px;background-color:#6c757d;color:#fff}.header-btn:hover{opacity:.9;transform:translateY(-1px)}.header-btn:active{transform:translateY(0)}.header-btn.btn-refresh{border:none;border-radius:4px;cursor:pointer;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;text-decoration:none;display:inline-block;transition:all .2s ease;padding:8px 16px;font-size:14px;background-color:#2196f3;color:#fff}.header-btn.btn-refresh:hover{opacity:.9;transform:translateY(-1px)}.header-btn.btn-refresh:active{transform:translateY(0)}.header-btn.btn-home{border:none;border-radius:4px;cursor:pointer;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;text-decoration:none;display:inline-block;transition:all .2s ease;padding:8px 16px;font-size:14px;background-color:#28a745;color:#fff}.header-btn.btn-home:hover{opacity:.9;transform:translateY(-1px)}.header-btn.btn-home:active{transform:translateY(0)}.header-btn.btn-logout{border:none;border-radius:4px;cursor:pointer;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;text-decoration:none;display:inline-block;transition:all .2s ease;padding:8px 16px;font-size:14px;background-color:#dc3545;color:#fff}.header-btn.btn-logout:hover{opacity:.9;transform:translateY(-1px)}.header-btn.btn-logout:active{transform:translateY(0)}.theme-toggle-admin{background:var(--card-bg) !important;color:var(--text-color) !important;border:2px solid var(--border-color) !important;width:40px;height:40px;border-radius:50% !important;display:flex;align-items:center;justify-content:center;padding:0 !important}.stats{display:grid;grid-template-columns:repeat(auto-fit, minmax(200px, 1fr));gap:24px;margin-bottom:24px}.stat-card{background:var(--card-bg);color:var(--text-color);padding:24px;border-radius:8px;box-shadow:0 2px 4px rgba(0,0,0,.1);text-align:center}.stat-number{font-size:2em;font-weight:bold;color:#2196f3}.locations-table{width:100%;border-collapse:collapse;background:var(--card-bg);color:var(--text-color);border-radius:8px;overflow:hidden;box-shadow:0 2px 4px rgba(0,0,0,.1);margin-top:24px}.locations-table th,.locations-table td{padding:8px 16px;text-align:left;border-bottom:1px solid var(--border-color);color:var(--text-color)}.locations-table th{background-color:var(--table-header-bg);font-weight:bold}.locations-table tr:hover{background-color:var(--table-hover)}.action-buttons{display:flex;gap:5px}.btn{border:none;border-radius:4px;cursor:pointer;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;text-decoration:none;display:inline-block;transition:all .2s ease;padding:4px 8px;font-size:12px;background-color:#2196f3;color:#fff}.btn:hover{opacity:.9;transform:translateY(-1px)}.btn:active{transform:translateY(0)}.btn-edit{border:none;border-radius:4px;cursor:pointer;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;text-decoration:none;display:inline-block;transition:all .2s ease;padding:4px 8px;font-size:12px;background-color:#2196f3;color:#fff}.btn-edit:hover{opacity:.9;transform:translateY(-1px)}.btn-edit:active{transform:translateY(0)}.btn-delete{border:none;border-radius:4px;cursor:pointer;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;text-decoration:none;display:inline-block;transition:all .2s ease;padding:4px 8px;font-size:12px;background-color:#dc3545;color:#fff}.btn-delete:hover{opacity:.9;transform:translateY(-1px)}.btn-delete:active{transform:translateY(0)}.btn-save{border:none;border-radius:4px;cursor:pointer;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;text-decoration:none;display:inline-block;transition:all .2s ease;padding:4px 8px;font-size:12px;background-color:#28a745;color:#fff}.btn-save:hover{opacity:.9;transform:translateY(-1px)}.btn-save:active{transform:translateY(0)}.btn-cancel{border:none;border-radius:4px;cursor:pointer;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;text-decoration:none;display:inline-block;transition:all .2s ease;padding:4px 8px;font-size:12px;background-color:#6c757d;color:#fff}.btn-cancel:hover{opacity:.9;transform:translateY(-1px)}.btn-cancel:active{transform:translateY(0)}.edit-row{background-color:#fff3cd !important}.edit-input{padding:8px 16px;border:1px solid var(--input-border);border-radius:4px;font-size:14px;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;background-color:var(--input-bg);color:var(--text-color);transition:border-color .2s ease;width:100%;font-size:12px}.edit-input:focus{outline:none;border-color:#2196f3;box-shadow:0 0 0 2px rgba(33,150,243,.2)}.status-indicator{padding:4px 8px;border-radius:12px;font-size:12px;font-weight:bold;background-color:rgba(0,0,0,0);color:inherit}.status-active{padding:4px 8px;border-radius:12px;font-size:12px;font-weight:bold;background-color:#d4edda;color:#155724}.status-expired{padding:4px 8px;border-radius:12px;font-size:12px;font-weight:bold;background-color:#f8d7da;color:#721c24}.tab-navigation{display:flex;margin-bottom:24px;border-bottom:2px solid var(--border-color)}.tab-btn{border:none;border-radius:4px;cursor:pointer;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;text-decoration:none;display:inline-block;transition:all .2s ease;padding:8px 16px;font-size:14px;background-color:rgba(0,0,0,0);color:var(--text-color);border-bottom:3px solid rgba(0,0,0,0);border-radius:0}.tab-btn:hover{opacity:.9;transform:translateY(-1px)}.tab-btn:active{transform:translateY(0)}.tab-btn.active{border-bottom-color:#2196f3;color:#2196f3}.tab-btn:hover{background-color:var(--table-hover);transform:none}.tab-content{display:none}.tab-content.active{display:block}.profanity-management .management-section{background:var(--card-bg);color:var(--text-color);padding:24px;border-radius:8px;box-shadow:0 2px 4px rgba(0,0,0,.1);margin-bottom:24px}.profanity-management .management-section h4{margin-top:0;color:#2196f3}.profanity-management .profanity-form{display:grid;grid-template-columns:2fr 1fr 1fr auto;gap:8px;align-items:end;margin-bottom:24px}.profanity-management .profanity-form input,.profanity-management .profanity-form select{padding:8px 16px;border:1px solid var(--input-border);border-radius:4px;font-size:14px;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;background-color:var(--input-bg);color:var(--text-color);transition:border-color .2s ease}.profanity-management .profanity-form input:focus,.profanity-management .profanity-form select:focus{outline:none;border-color:#2196f3;box-shadow:0 0 0 2px rgba(33,150,243,.2)}.profanity-management .test-section .test-form{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:end}.profanity-management .test-section .test-form textarea{padding:8px 16px;border:1px solid var(--input-border);border-radius:4px;font-size:14px;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;background-color:var(--input-bg);color:var(--text-color);transition:border-color .2s ease;resize:vertical;min-height:60px}.profanity-management .test-section .test-form textarea:focus{outline:none;border-color:#2196f3;box-shadow:0 0 0 2px rgba(33,150,243,.2)}.test-results{margin-top:16px;padding:16px;border-radius:4px}.test-results.profane{background-color:#f8d7da;color:#721c24;border:1px solid #f5c6cb}.test-results.clean{background-color:#d4edda;color:#155724;border:1px solid #c3e6cb}.test-results.empty{background-color:#f8f9fa;color:#6c757d;border:1px solid #dee2e6}.severity-low{padding:4px 8px;border-radius:12px;font-size:12px;font-weight:bold;background-color:#d1ecf1;color:#0c5460}.severity-medium{padding:4px 8px;border-radius:12px;font-size:12px;font-weight:bold;background-color:#fff3cd;color:#856404}.severity-high{padding:4px 8px;border-radius:12px;font-size:12px;font-weight:bold;background-color:#f8d7da;color:#721c24}.action-btn{border:none;border-radius:4px;cursor:pointer;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;text-decoration:none;display:inline-block;transition:all .2s ease;padding:4px 8px;font-size:12px;background-color:#2196f3;color:#fff}.action-btn:hover{opacity:.9;transform:translateY(-1px)}.action-btn:active{transform:translateY(0)}.action-btn.danger{border:none;border-radius:4px;cursor:pointer;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;text-decoration:none;display:inline-block;transition:all .2s ease;padding:4px 8px;font-size:12px;background-color:#dc3545;color:#fff}.action-btn.danger:hover{opacity:.9;transform:translateY(-1px)}.action-btn.danger:active{transform:translateY(0)}.persistent-toggle.active{border:none;border-radius:4px;cursor:pointer;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;text-decoration:none;display:inline-block;transition:all .2s ease;padding:8px 16px;font-size:14px;background-color:#ffc107;color:#000}.persistent-toggle.active:hover{opacity:.9;transform:translateY(-1px)}.persistent-toggle.active:active{transform:translateY(0)}.persistent-toggle.inactive{border:none;border-radius:4px;cursor:pointer;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;text-decoration:none;display:inline-block;transition:all .2s ease;padding:8px 16px;font-size:14px;background-color:#6c757d;color:#fff}.persistent-toggle.inactive:hover{opacity:.9;transform:translateY(-1px)}.persistent-toggle.inactive:active{transform:translateY(0)}@media(max-width: 768px){.admin-container{padding:16px}.admin-header{flex-direction:column;gap:16px;align-items:stretch}.header-buttons{justify-content:center;flex-wrap:wrap}.stats{grid-template-columns:1fr 1fr}.locations-table{font-size:12px}.locations-table th,.locations-table td{padding:4px 4px}.locations-table .address-cell{max-width:100px}.btn{padding:3px 4px;font-size:9px}.profanity-form{grid-template-columns:1fr;gap:8px}}:root{--background-color: #ffffff;--text-color: #333333;--card-bg: #f8f9fa;--border-color: #dee2e6;--input-bg: #ffffff;--input-border: #dee2e6;--table-header-bg: #e9ecef;--table-hover: #f5f5f5;--shadow: rgba(0, 0, 0, 0.1)}[data-theme=dark]{--background-color: #1a1a1a;--text-color: #ffffff;--card-bg: #2d2d2d;--border-color: #444444;--input-bg: #2d2d2d;--input-border: #444444;--table-header-bg: #3d3d3d;--table-hover: #3d3d3d;--shadow: rgba(0, 0, 0, 0.3)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;background-color:var(--background-color);color:var(--text-color);line-height:1.6;min-height:100vh;transition:background-color .3s ease,color .3s ease}.form-group{margin-bottom:16px}.form-group label{display:block;margin-bottom:4px;font-weight:500}.form-group input,.form-group select,.form-group textarea{padding:8px 16px;border:1px solid var(--input-border);border-radius:4px;font-size:14px;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;background-color:var(--input-bg);color:var(--text-color);transition:border-color .2s ease;width:100%}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:#2196f3;box-shadow:0 0 0 2px rgba(33,150,243,.2)}button{border:none;border-radius:4px;cursor:pointer;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;text-decoration:none;display:inline-block;transition:all .2s ease;padding:8px 16px;font-size:14px;background-color:#2196f3;color:#fff}button:hover{opacity:.9;transform:translateY(-1px)}button:active{transform:translateY(0)}button:disabled{opacity:.6;cursor:not-allowed}.message{padding:16px;border-radius:4px;margin:16px 0;display:none}.message.error{background-color:#f8d7da;color:#721c24;border:1px solid #f5c6cb}.message.success{background-color:#d4edda;color:#155724;border:1px solid #c3e6cb}.message.info{background-color:#d1ecf1;color:#0c5460;border:1px solid #bee5eb}.theme-toggle{border:none;border-radius:4px;cursor:pointer;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;text-decoration:none;display:inline-block;transition:all .2s ease;padding:8px 16px;font-size:14px;background-color:rgba(0,0,0,0);color:#fff;border:2px solid var(--border-color);border-radius:50%;width:40px;height:40px;display:flex;align-items:center;justify-content:center}.theme-toggle:hover{opacity:.9;transform:translateY(-1px)}.theme-toggle:active{transform:translateY(0)}.theme-toggle:hover{background-color:var(--table-hover);transform:none}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.mb-sm{margin-bottom:8px}.mb-md{margin-bottom:16px}.mb-lg{margin-bottom:24px}.mt-sm{margin-top:8px}.mt-md{margin-top:16px}.mt-lg{margin-top:24px}.p-sm{padding:8px}.p-md{padding:16px}.p-lg{padding:24px}.d-flex{display:flex}.flex-center{display:flex;align-items:center;justify-content:center}.flex-between{display:flex;align-items:center;justify-content:space-between}.flex-column{display:flex;flex-direction:column}.w-100{width:100%}.h-100{height:100%}/*# sourceMappingURL=style.css.map */ +.admin-container{max-width:1200px;margin:0 auto;padding:24px}.login-section{background:var(--card-bg);color:var(--text-color);padding:32px;border-radius:8px;box-shadow:0 2px 4px rgba(0,0,0,.1);max-width:400px;margin:50px auto}.admin-section{display:none}.admin-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.header-buttons{display:flex;gap:8px;align-items:center}.header-btn{border:none;border-radius:4px;cursor:pointer;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;text-decoration:none;display:inline-block;transition:all .2s ease;padding:8px 16px;font-size:14px;background-color:#6c757d;color:#fff}.header-btn:hover{opacity:.9;transform:translateY(-1px)}.header-btn:active{transform:translateY(0)}.header-btn.btn-refresh{border:none;border-radius:4px;cursor:pointer;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;text-decoration:none;display:inline-block;transition:all .2s ease;padding:8px 16px;font-size:14px;background-color:#2196f3;color:#fff}.header-btn.btn-refresh:hover{opacity:.9;transform:translateY(-1px)}.header-btn.btn-refresh:active{transform:translateY(0)}.header-btn.btn-home{border:none;border-radius:4px;cursor:pointer;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;text-decoration:none;display:inline-block;transition:all .2s ease;padding:8px 16px;font-size:14px;background-color:#28a745;color:#fff}.header-btn.btn-home:hover{opacity:.9;transform:translateY(-1px)}.header-btn.btn-home:active{transform:translateY(0)}.header-btn.btn-logout{border:none;border-radius:4px;cursor:pointer;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;text-decoration:none;display:inline-block;transition:all .2s ease;padding:8px 16px;font-size:14px;background-color:#dc3545;color:#fff}.header-btn.btn-logout:hover{opacity:.9;transform:translateY(-1px)}.header-btn.btn-logout:active{transform:translateY(0)}.theme-toggle-admin{background:var(--card-bg) !important;color:var(--text-color) !important;border:2px solid var(--border-color) !important;width:40px;height:40px;border-radius:50% !important;display:flex;align-items:center;justify-content:center;padding:0 !important}.stats{display:grid;grid-template-columns:repeat(auto-fit, minmax(200px, 1fr));gap:24px;margin-bottom:24px}.stat-card{background:var(--card-bg);color:var(--text-color);padding:24px;border-radius:8px;box-shadow:0 2px 4px rgba(0,0,0,.1);text-align:center}.stat-number{font-size:2em;font-weight:bold;color:#2196f3}.locations-table{width:100%;border-collapse:collapse;background:var(--card-bg);color:var(--text-color);border-radius:8px;overflow:hidden;box-shadow:0 2px 4px rgba(0,0,0,.1);margin-top:24px}.locations-table th,.locations-table td{padding:8px 16px;text-align:left;border-bottom:1px solid var(--border-color);color:var(--text-color)}.locations-table th{background-color:var(--table-header-bg);font-weight:bold}.locations-table tr:hover{background-color:var(--table-hover)}.action-buttons{display:flex;gap:5px}.btn{border:none;border-radius:4px;cursor:pointer;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;text-decoration:none;display:inline-block;transition:all .2s ease;padding:4px 8px;font-size:12px;background-color:#2196f3;color:#fff}.btn:hover{opacity:.9;transform:translateY(-1px)}.btn:active{transform:translateY(0)}.btn-edit{border:none;border-radius:4px;cursor:pointer;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;text-decoration:none;display:inline-block;transition:all .2s ease;padding:4px 8px;font-size:12px;background-color:#2196f3;color:#fff}.btn-edit:hover{opacity:.9;transform:translateY(-1px)}.btn-edit:active{transform:translateY(0)}.btn-delete{border:none;border-radius:4px;cursor:pointer;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;text-decoration:none;display:inline-block;transition:all .2s ease;padding:4px 8px;font-size:12px;background-color:#dc3545;color:#fff}.btn-delete:hover{opacity:.9;transform:translateY(-1px)}.btn-delete:active{transform:translateY(0)}.btn-save{border:none;border-radius:4px;cursor:pointer;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;text-decoration:none;display:inline-block;transition:all .2s ease;padding:4px 8px;font-size:12px;background-color:#28a745;color:#fff}.btn-save:hover{opacity:.9;transform:translateY(-1px)}.btn-save:active{transform:translateY(0)}.btn-cancel{border:none;border-radius:4px;cursor:pointer;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;text-decoration:none;display:inline-block;transition:all .2s ease;padding:4px 8px;font-size:12px;background-color:#6c757d;color:#fff}.btn-cancel:hover{opacity:.9;transform:translateY(-1px)}.btn-cancel:active{transform:translateY(0)}.edit-row{background-color:#fff3cd !important}.edit-input{padding:8px 16px;border:1px solid var(--input-border);border-radius:4px;font-size:14px;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;background-color:var(--input-bg);color:var(--text-color);transition:border-color .2s ease;width:100%;font-size:12px}.edit-input:focus{outline:none;border-color:#2196f3;box-shadow:0 0 0 2px rgba(33,150,243,.2)}.status-indicator{padding:4px 8px;border-radius:12px;font-size:12px;font-weight:bold;background-color:rgba(0,0,0,0);color:inherit}.status-active{padding:4px 8px;border-radius:12px;font-size:12px;font-weight:bold;background-color:#d4edda;color:#155724}.status-expired{padding:4px 8px;border-radius:12px;font-size:12px;font-weight:bold;background-color:#f8d7da;color:#721c24}.tab-navigation{display:flex;margin-bottom:24px;border-bottom:2px solid var(--border-color)}.tab-btn{border:none;border-radius:4px;cursor:pointer;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;text-decoration:none;display:inline-block;transition:all .2s ease;padding:8px 16px;font-size:14px;background-color:rgba(0,0,0,0);color:var(--text-color);border-bottom:3px solid rgba(0,0,0,0);border-radius:0}.tab-btn:hover{opacity:.9;transform:translateY(-1px)}.tab-btn:active{transform:translateY(0)}.tab-btn.active{border-bottom-color:#2196f3;color:#2196f3}.tab-btn:hover{background-color:var(--table-hover);transform:none}.tab-content{display:none}.tab-content.active{display:block}.profanity-management .management-section{background:var(--card-bg);color:var(--text-color);padding:24px;border-radius:8px;box-shadow:0 2px 4px rgba(0,0,0,.1);margin-bottom:24px}.profanity-management .management-section h4{margin-top:0;color:#2196f3}.profanity-management .profanity-form{display:grid;grid-template-columns:2fr 1fr 1fr auto;gap:8px;align-items:end;margin-bottom:24px}.profanity-management .profanity-form input,.profanity-management .profanity-form select{padding:8px 16px;border:1px solid var(--input-border);border-radius:4px;font-size:14px;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;background-color:var(--input-bg);color:var(--text-color);transition:border-color .2s ease}.profanity-management .profanity-form input:focus,.profanity-management .profanity-form select:focus{outline:none;border-color:#2196f3;box-shadow:0 0 0 2px rgba(33,150,243,.2)}.profanity-management .test-section .test-form{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:end}.profanity-management .test-section .test-form textarea{padding:8px 16px;border:1px solid var(--input-border);border-radius:4px;font-size:14px;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;background-color:var(--input-bg);color:var(--text-color);transition:border-color .2s ease;resize:vertical;min-height:60px}.profanity-management .test-section .test-form textarea:focus{outline:none;border-color:#2196f3;box-shadow:0 0 0 2px rgba(33,150,243,.2)}.test-results{margin-top:16px;padding:16px;border-radius:4px}.test-results.profane{background-color:#f8d7da;color:#721c24;border:1px solid #f5c6cb}.test-results.clean{background-color:#d4edda;color:#155724;border:1px solid #c3e6cb}.test-results.empty{background-color:#f8f9fa;color:#6c757d;border:1px solid #dee2e6}.severity-low{padding:4px 8px;border-radius:12px;font-size:12px;font-weight:bold;background-color:#d1ecf1;color:#0c5460}.severity-medium{padding:4px 8px;border-radius:12px;font-size:12px;font-weight:bold;background-color:#fff3cd;color:#856404}.severity-high{padding:4px 8px;border-radius:12px;font-size:12px;font-weight:bold;background-color:#f8d7da;color:#721c24}.action-btn{border:none;border-radius:4px;cursor:pointer;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;text-decoration:none;display:inline-block;transition:all .2s ease;padding:4px 8px;font-size:12px;background-color:#2196f3;color:#fff}.action-btn:hover{opacity:.9;transform:translateY(-1px)}.action-btn:active{transform:translateY(0)}.action-btn.danger{border:none;border-radius:4px;cursor:pointer;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;text-decoration:none;display:inline-block;transition:all .2s ease;padding:4px 8px;font-size:12px;background-color:#dc3545;color:#fff}.action-btn.danger:hover{opacity:.9;transform:translateY(-1px)}.action-btn.danger:active{transform:translateY(0)}.persistent-toggle.active{border:none;border-radius:4px;cursor:pointer;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;text-decoration:none;display:inline-block;transition:all .2s ease;padding:8px 16px;font-size:14px;background-color:#ffc107;color:#000}.persistent-toggle.active:hover{opacity:.9;transform:translateY(-1px)}.persistent-toggle.active:active{transform:translateY(0)}.persistent-toggle.inactive{border:none;border-radius:4px;cursor:pointer;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;text-decoration:none;display:inline-block;transition:all .2s ease;padding:8px 16px;font-size:14px;background-color:#6c757d;color:#fff}.persistent-toggle.inactive:hover{opacity:.9;transform:translateY(-1px)}.persistent-toggle.inactive:active{transform:translateY(0)}@media(max-width: 768px){.admin-container{padding:16px}.admin-header{flex-direction:column;gap:16px;align-items:stretch}.header-buttons{justify-content:center;flex-wrap:wrap}.stats{grid-template-columns:1fr 1fr}.locations-table{font-size:12px}.locations-table th,.locations-table td{padding:4px 4px}.locations-table .address-cell{max-width:100px}.btn{padding:3px 4px;font-size:9px}.profanity-form{grid-template-columns:1fr;gap:8px}}.container{max-width:1200px;margin:0 auto;padding:24px}.header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;padding:16px 0;border-bottom:1px solid var(--border-color)}.title{color:var(--text-color);font-size:24px;margin:0}.subtitle{color:var(--text-color);opacity:.8;margin:4px 0}.view-controls{display:flex;align-items:center;justify-content:center;gap:8px;margin-bottom:24px}.view-btn{border:none;border-radius:4px;cursor:pointer;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;text-decoration:none;display:inline-block;transition:all .2s ease;padding:8px 16px;font-size:14px;background-color:#2196f3;color:#fff}.view-btn:hover{opacity:.9;transform:translateY(-1px)}.view-btn:active{transform:translateY(0)}.view-btn.active{background-color:#2196f3;color:#fff}.view-btn:not(.active){background-color:rgba(0,0,0,0);color:var(--text-color);border:1px solid var(--border-color)}.map-view{width:100%;height:500px;border-radius:8px;overflow:hidden;box-shadow:0 2px 4px rgba(0,0,0,.1)}@media(max-width: 768px){.map-view{height:400px}}.reports-table{width:100%;border-collapse:collapse;background:var(--card-bg);color:var(--text-color);border-radius:8px;overflow:hidden;box-shadow:0 2px 4px rgba(0,0,0,.1)}.reports-table th,.reports-table td{padding:8px 16px;text-align:left;border-bottom:1px solid var(--border-color);color:var(--text-color)}.reports-table th{background-color:var(--table-header-bg);font-weight:bold}.reports-table tr:hover{background-color:var(--table-hover)}.reports-table th{background-color:var(--bg-secondary, var(--card-bg));color:var(--text-color);font-weight:600;padding:1rem;border-bottom:2px solid var(--border-color)}.reports-table th:first-child{border-top-left-radius:8px}.reports-table th:last-child{border-top-right-radius:8px}.reports-table td{padding:1rem;border-bottom:1px solid var(--border-color);color:var(--text-color) !important;vertical-align:top}.reports-table td:first-child{padding-left:1.5rem}.reports-table td:last-child{padding-right:1.5rem}.reports-table tbody tr{transition:background-color .2s ease}.reports-table tbody tr:hover{background-color:var(--bg-hover, var(--table-hover))}.reports-table tbody tr:last-child td{border-bottom:none}.reports-table .location-cell{color:var(--text-color) !important;font-size:14px;font-weight:500;max-width:250px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.reports-table .details-cell{color:var(--text-color) !important;font-size:14px;font-weight:400;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-style:italic}.reports-table .time-cell{color:var(--text-color) !important;font-size:12px;font-weight:400}.reports-table .remaining-cell{color:var(--text-color) !important;font-size:12px;font-weight:500}.reports-table .remaining-cell.urgent{padding:4px 8px;border-radius:12px;font-size:12px;font-weight:bold;background-color:var(--status-danger, #dc3545);color:#fff;text-transform:uppercase;letter-spacing:.025em}.reports-table .remaining-cell.warning{padding:4px 8px;border-radius:12px;font-size:12px;font-weight:bold;background-color:var(--status-warning, #ffc107);color:#fff;text-transform:uppercase;letter-spacing:.025em}.reports-table .remaining-cell.normal{padding:4px 8px;border-radius:12px;font-size:12px;font-weight:bold;background-color:var(--status-info, #17a2b8);color:#fff}@media(max-width: 768px){.reports-table{display:block;overflow-x:auto;white-space:nowrap}.reports-table th,.reports-table td{min-width:120px}}.form-section{background:var(--card-bg);color:var(--text-color);padding:24px;border-radius:8px;box-shadow:0 2px 4px rgba(0,0,0,.1);margin-bottom:24px}.form-section h3{margin-top:0;margin-bottom:16px;color:var(--text-color)}.add-location-form{display:grid;grid-template-columns:1fr auto;gap:16px;align-items:end}@media(max-width: 768px){.add-location-form{grid-template-columns:1fr}}.add-location-form .location-input{padding:8px 16px;border:1px solid var(--input-border);border-radius:4px;font-size:14px;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;background-color:var(--input-bg);color:var(--text-color);transition:border-color .2s ease;min-width:300px}.add-location-form .location-input:focus{outline:none;border-color:#2196f3;box-shadow:0 0 0 2px rgba(33,150,243,.2)}@media(max-width: 768px){.add-location-form .location-input{min-width:unset}}.add-location-form .add-btn{border:none;border-radius:4px;cursor:pointer;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;text-decoration:none;display:inline-block;transition:all .2s ease;padding:8px 16px;font-size:14px;background-color:#28a745;color:#fff}.add-location-form .add-btn:hover{opacity:.9;transform:translateY(-1px)}.add-location-form .add-btn:active{transform:translateY(0)}.location-count{color:var(--text-color);font-size:14px;margin-bottom:16px;text-align:center}.error-message{background:var(--card-bg);color:var(--text-color);padding:16px;border-radius:8px;box-shadow:0 2px 4px rgba(0,0,0,.1);background-color:#f8d7da;color:#721c24;border:1px solid #f5c6cb;margin:16px 0}.error-message.success{background-color:#d4edda;color:#155724;border-color:#c3e6cb}.loading{text-align:center;color:var(--text-color);opacity:.7;padding:24px}.theme-section{position:fixed;top:24px;right:24px;z-index:100}@media(max-width: 768px){.theme-section{position:static;margin-bottom:24px;text-align:center}}:root{--background-color: #ffffff;--text-color: #1f2937;--card-bg: #f3f4f6;--border-color: #d1d5db;--input-bg: #ffffff;--input-border: #d1d5db;--table-header-bg: #e9ecef;--table-hover: #f5f5f5;--shadow: rgba(0, 0, 0, 0.1);--bg-secondary: #f3f4f6;--bg-hover: #f1f5f9;--status-active: #10b981;--status-warning: #f59e0b;--status-danger: #ef4444;--status-info: #3b82f6}[data-theme=dark]{--background-color: #111827;--text-color: #f9fafb;--card-bg: #1f2937;--border-color: #374151;--input-bg: #1f2937;--input-border: #374151;--table-header-bg: #3d3d3d;--table-hover: #3d3d3d;--shadow: rgba(0, 0, 0, 0.3);--bg-secondary: #1f2937;--bg-hover: #4b5563}*{margin:0;padding:0;box-sizing:border-box}body{font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;background-color:var(--background-color);color:var(--text-color);line-height:1.6;min-height:100vh;transition:background-color .3s ease,color .3s ease}.form-group{margin-bottom:16px}.form-group label{display:block;margin-bottom:4px;font-weight:500}.form-group input,.form-group select,.form-group textarea{padding:8px 16px;border:1px solid var(--input-border);border-radius:4px;font-size:14px;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;background-color:var(--input-bg);color:var(--text-color);transition:border-color .2s ease;width:100%}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:#2196f3;box-shadow:0 0 0 2px rgba(33,150,243,.2)}button{border:none;border-radius:4px;cursor:pointer;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;text-decoration:none;display:inline-block;transition:all .2s ease;padding:8px 16px;font-size:14px;background-color:#2196f3;color:#fff}button:hover{opacity:.9;transform:translateY(-1px)}button:active{transform:translateY(0)}button:disabled{opacity:.6;cursor:not-allowed}.message{padding:16px;border-radius:4px;margin:16px 0;display:none}.message.error{background-color:#f8d7da;color:#721c24;border:1px solid #f5c6cb}.message.success{background-color:#d4edda;color:#155724;border:1px solid #c3e6cb}.message.info{background-color:#d1ecf1;color:#0c5460;border:1px solid #bee5eb}.theme-toggle{border:none;border-radius:4px;cursor:pointer;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;text-decoration:none;display:inline-block;transition:all .2s ease;padding:8px 16px;font-size:14px;background-color:rgba(0,0,0,0);color:#fff;border:2px solid var(--border-color);border-radius:50%;width:40px;height:40px;display:flex;align-items:center;justify-content:center}.theme-toggle:hover{opacity:.9;transform:translateY(-1px)}.theme-toggle:active{transform:translateY(0)}.theme-toggle:hover{background-color:var(--table-hover);transform:none}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.mb-sm{margin-bottom:8px}.mb-md{margin-bottom:16px}.mb-lg{margin-bottom:24px}.mt-sm{margin-top:8px}.mt-md{margin-top:16px}.mt-lg{margin-top:24px}.p-sm{padding:8px}.p-md{padding:16px}.p-lg{padding:24px}.d-flex{display:flex}.flex-center{display:flex;align-items:center;justify-content:center}.flex-between{display:flex;align-items:center;justify-content:space-between}.flex-column{display:flex;flex-direction:column}.w-100{width:100%}.h-100{height:100%}/*# sourceMappingURL=style.css.map */ diff --git a/public/style.css.map b/public/style.css.map index 8b4017e..7c0701d 100644 --- a/public/style.css.map +++ b/public/style.css.map @@ -1 +1 @@ -{"version":3,"sourceRoot":"","sources":["../src/scss/pages/_admin.scss","../src/scss/_variables.scss","../src/scss/_mixins.scss","../src/scss/main.scss"],"names":[],"mappings":"AAKA,iBACE,iBACA,cACA,QCeW,KDZb,eE4BE,0BACA,wBACA,QDjBW,KCkBX,cDbiB,ICcjB,WDRU,yBDtBV,gBACA,iBAGF,eACE,aAIF,cEgCE,aACA,mBACA,8BFhCA,cCDW,KDIb,gBACE,aACA,ICRW,IDSX,mBAGF,YE5BE,YACA,cDsBiB,ICrBjB,eACA,YD+BY,wEC9BZ,qBACA,qBACA,wBASE,iBACA,UDoBW,KCjBb,iBFU2B,QET3B,MArBoD,KAuBpD,kBACE,WACA,2BAGF,mBACE,wBFGF,wBE/BA,YACA,cDsBiB,ICrBjB,eACA,YD+BY,wEC9BZ,qBACA,qBACA,wBASE,iBACA,UDoBW,KCjBb,iBDvBc,QCwBd,MArBoD,KAuBpD,8BACE,WACA,2BAGF,+BACE,wBFOF,qBEnCA,YACA,cDsBiB,ICrBjB,eACA,YD+BY,wEC9BZ,qBACA,qBACA,wBASE,iBACA,UDoBW,KCjBb,iBDrBc,QCsBd,MArBoD,KAuBpD,2BACE,WACA,2BAGF,4BACE,wBFWF,uBEvCA,YACA,cDsBiB,ICrBjB,eACA,YD+BY,wEC9BZ,qBACA,qBACA,wBASE,iBACA,UDoBW,KCjBb,iBDnBa,QCoBb,MArBoD,KAuBpD,6BACE,WACA,2BAGF,8BACE,wBFgBJ,oBACE,qCACA,mCACA,gDACA,WACA,YACA,6BEPA,aACA,mBACA,uBFOA,qBAIF,OACE,aACA,2DACA,ICzCW,KD0CX,cC1CW,KD6Cb,WE7BE,0BACA,wBACA,QDlBW,KCmBX,cDbiB,ICcjB,WDRU,yBDmCV,kBAGF,aACE,cACA,iBACA,MC3Ec,QD+EhB,iBEdE,WACA,yBACA,0BACA,wBACA,cDzCiB,IC0CjB,gBACA,WDrCU,yBD+CV,WC3DW,KCmDX,wCACE,iBACA,gBACA,4CACA,wBAGF,oBACE,wCACA,iBAGF,0BACE,oCFDJ,gBACE,aACA,QAGF,KEtFE,YACA,cDsBiB,ICrBjB,eACA,YD+BY,wEC9BZ,qBACA,qBACA,wBAGE,gBACA,UDyBW,KChBb,iBDvBc,QCwBd,MArBoD,KAuBpD,WACE,WACA,2BAGF,YACE,wBF6DF,UEzFA,YACA,cDsBiB,ICrBjB,eACA,YD+BY,wEC9BZ,qBACA,qBACA,wBAGE,gBACA,UDyBW,KChBb,iBDvBc,QCwBd,MArBoD,KAuBpD,gBACE,WACA,2BAGF,iBACE,wBFiEF,YE7FA,YACA,cDsBiB,ICrBjB,eACA,YD+BY,wEC9BZ,qBACA,qBACA,wBAGE,gBACA,UDyBW,KChBb,iBDnBa,QCoBb,MArBoD,KAuBpD,kBACE,WACA,2BAGF,mBACE,wBFqEF,UEjGA,YACA,cDsBiB,ICrBjB,eACA,YD+BY,wEC9BZ,qBACA,qBACA,wBAGE,gBACA,UDyBW,KChBb,iBDrBc,QCsBd,MArBoD,KAuBpD,gBACE,WACA,2BAGF,iBACE,wBFyEF,YErGA,YACA,cDsBiB,ICrBjB,eACA,YD+BY,wEC9BZ,qBACA,qBACA,wBAGE,gBACA,UDyBW,KChBb,iBFmF6B,QElF7B,MArBoD,KAuBpD,kBACE,WACA,2BAGF,mBACE,wBF+EJ,UACE,oCAGF,YEvBE,iBACA,qCACA,cDnEiB,ICoEjB,UDvDa,KCwDb,YD1DY,wEC2DZ,iCACA,wBACA,iCFkBA,WACA,UC/Ea,KC8Db,kBACE,aACA,aDvGY,QCwGZ,yCFkBJ,kBEZE,gBACA,cDlFiB,KCmFjB,UDzEa,KC0Eb,iBACA,iBFS0B,cER1B,MFQuC,QAGzC,eEhBE,gBACA,cDlFiB,KCmFjB,UDzEa,KC0Eb,iBACA,iBFa0B,QEZ1B,MFYmC,QAGrC,gBEpBE,gBACA,cDlFiB,KCmFjB,UDzEa,KC0Eb,iBACA,iBFiB0B,QEhB1B,MFgBmC,QAIrC,gBACE,aACA,cCnHW,KDoHX,4CAGF,SEzIE,YACA,cDsBiB,ICrBjB,eACA,YD+BY,wEC9BZ,qBACA,qBACA,wBASE,iBACA,UDoBW,KCjBb,iBFuH2B,cEtH3B,MFsHqD,kBACrD,sCACA,gBEtHA,eACE,WACA,2BAGF,gBACE,wBFkHF,gBACE,oBCnJY,QDoJZ,MCpJY,QDuJd,eACE,oCACA,eAIJ,aACE,aAEA,oBACE,cAMF,0CEjIA,0BACA,wBACA,QDlBW,KCmBX,cDbiB,ICcjB,WDRU,yBDuIR,cCnJS,KDqJT,6CACE,aACA,MC7KU,QDiLd,sCACE,aACA,uCACA,IChKS,IDiKT,gBACA,cChKS,KDkKT,yFE5FF,iBACA,qCACA,cDnEiB,ICoEjB,UDvDa,KCwDb,YD1DY,wEC2DZ,iCACA,wBACA,iCAEA,qGACE,aACA,aDvGY,QCwGZ,yCFsFA,+CACE,aACA,+BACA,IC7KO,ID8KP,gBAEA,wDExGJ,iBACA,qCACA,cDnEiB,ICoEjB,UDvDa,KCwDb,YD1DY,wEC2DZ,iCACA,wBACA,iCFmGM,gBACA,gBElGN,8DACE,aACA,aDvGY,QCwGZ,yCFqGJ,cACE,WCzLW,KD0LX,QC1LW,KD2LX,cCrLiB,IDuLjB,sBACE,yBACA,cACA,yBAGF,oBACE,yBACA,cACA,yBAGF,oBACE,yBACA,cACA,yBAIJ,cEvHE,gBACA,cDlFiB,KCmFjB,UDzEa,KC0Eb,iBACA,iBFoH0B,QEnH1B,MFmHmC,QAGrC,iBE3HE,gBACA,cDlFiB,KCmFjB,UDzEa,KC0Eb,iBACA,iBFwH0B,QEvH1B,MFuHmC,QAGrC,eE/HE,gBACA,cDlFiB,KCmFjB,UDzEa,KC0Eb,iBACA,iBF4H0B,QE3H1B,MF2HmC,QAGrC,YE7OE,YACA,cDsBiB,ICrBjB,eACA,YD+BY,wEC9BZ,qBACA,qBACA,wBAGE,gBACA,UDyBW,KChBb,iBDvBc,QCwBd,MArBoD,KAuBpD,kBACE,WACA,2BAGF,mBACE,wBFoNF,mBEhPA,YACA,cDsBiB,ICrBjB,eACA,YD+BY,wEC9BZ,qBACA,qBACA,wBAGE,gBACA,UDyBW,KChBb,iBDnBa,QCoBb,MArBoD,KAuBpD,yBACE,WACA,2BAGF,0BACE,wBF2NF,0BEvPA,YACA,cDsBiB,ICrBjB,eACA,YD+BY,wEC9BZ,qBACA,qBACA,wBASE,iBACA,UDoBW,KCjBb,iBDpBc,QCqBd,MFoO0D,KElO1D,gCACE,WACA,2BAGF,iCACE,wBF+NF,4BE3PA,YACA,cDsBiB,ICrBjB,eACA,YD+BY,wEC9BZ,qBACA,qBACA,wBASE,iBACA,UDoBW,KCjBb,iBFyO6B,QExO7B,MArBoD,KAuBpD,kCACE,WACA,2BAGF,mCACE,wBAwFF,yBF8IA,iBACE,QClPS,KDqPX,cACE,sBACA,ICvPS,KDwPT,oBAGF,gBACE,uBACA,eAGF,OACE,8BAGF,iBACE,UCnPW,KDqPX,wCACE,gBAGF,+BACE,gBAIJ,KACE,gBACA,cAGF,gBACE,0BACA,ICxRS,KEZb,MAEE,4BACA,sBACA,mBACA,wBACA,oBACA,wBACA,2BACA,uBACA,6BAGF,kBAEE,4BACA,sBACA,mBACA,wBACA,oBACA,wBACA,2BACA,uBACA,6BAGF,EACE,SACA,UACA,sBAGF,KACE,YFHY,wEEIZ,yCACA,wBACA,gBACA,iBACA,oDAIF,YACE,cF9BW,KEgCX,kBACE,cACA,cFpCS,IEqCT,gBAGF,0DDiCA,iBACA,qCACA,cDnEiB,ICoEjB,UDvDa,KCwDb,YD1DY,wEC2DZ,iCACA,wBACA,iCCtCE,WDwCF,4EACE,aACA,aDvGY,QCwGZ,yCCvCJ,OD7DE,YACA,cDsBiB,ICrBjB,eACA,YD+BY,wEC9BZ,qBACA,qBACA,wBASE,iBACA,UDoBW,KCjBb,iBDvBc,QCwBd,MArBoD,KAuBpD,aACE,WACA,2BAGF,cACE,wBCoCF,gBACE,WACA,mBAKJ,SACE,QFvDW,KEwDX,cFlDiB,IEmDjB,cACA,aAEA,eACE,yBACA,cACA,yBAGF,iBACE,yBACA,cACA,yBAGF,cACE,yBACA,cACA,yBAOJ,cDnGE,YACA,cDsBiB,ICrBjB,eACA,YD+BY,wEC9BZ,qBACA,qBACA,wBASE,iBACA,UDoBW,KCjBb,iBCiF2B,cDhF3B,MArBoD,KCsGpD,qCACA,cF5EmB,IE6EnB,WACA,YD7DA,aACA,mBACA,uBAvBA,oBACE,WACA,2BAGF,qBACE,wBC+EF,oBACE,oCACA,eAKJ,+BACA,2BACA,6BAEA,qBFtGa,IEuGb,qBFtGa,KEuGb,qBFtGa,KEwGb,kBF1Ga,IE2Gb,kBF1Ga,KE2Gb,kBF1Ga,KE4Gb,cF9Ga,IE+Gb,cF9Ga,KE+Gb,cF9Ga,KEgHb,qBACA,aDxFE,aACA,mBACA,uBCuFF,cDnFE,aACA,mBACA,8BCkFF,aD9EE,aACA,sBC+EF,kBACA","file":"style.css"} \ No newline at end of file +{"version":3,"sourceRoot":"","sources":["../src/scss/pages/_admin.scss","../src/scss/_variables.scss","../src/scss/_mixins.scss","../src/scss/pages/_index.scss","../src/scss/main.scss"],"names":[],"mappings":"AAKA,iBACE,iBACA,cACA,QCeW,KDZb,eE4BE,0BACA,wBACA,QDjBW,KCkBX,cDbiB,ICcjB,WDRU,yBDtBV,gBACA,iBAGF,eACE,aAIF,cEgCE,aACA,mBACA,8BFhCA,cCDW,KDIb,gBACE,aACA,ICRW,IDSX,mBAGF,YE5BE,YACA,cDsBiB,ICrBjB,eACA,YD+BY,wEC9BZ,qBACA,qBACA,wBASE,iBACA,UDoBW,KCjBb,iBFU2B,QET3B,MArBoD,KAuBpD,kBACE,WACA,2BAGF,mBACE,wBFGF,wBE/BA,YACA,cDsBiB,ICrBjB,eACA,YD+BY,wEC9BZ,qBACA,qBACA,wBASE,iBACA,UDoBW,KCjBb,iBDvBc,QCwBd,MArBoD,KAuBpD,8BACE,WACA,2BAGF,+BACE,wBFOF,qBEnCA,YACA,cDsBiB,ICrBjB,eACA,YD+BY,wEC9BZ,qBACA,qBACA,wBASE,iBACA,UDoBW,KCjBb,iBDrBc,QCsBd,MArBoD,KAuBpD,2BACE,WACA,2BAGF,4BACE,wBFWF,uBEvCA,YACA,cDsBiB,ICrBjB,eACA,YD+BY,wEC9BZ,qBACA,qBACA,wBASE,iBACA,UDoBW,KCjBb,iBDnBa,QCoBb,MArBoD,KAuBpD,6BACE,WACA,2BAGF,8BACE,wBFgBJ,oBACE,qCACA,mCACA,gDACA,WACA,YACA,6BEPA,aACA,mBACA,uBFOA,qBAIF,OACE,aACA,2DACA,ICzCW,KD0CX,cC1CW,KD6Cb,WE7BE,0BACA,wBACA,QDlBW,KCmBX,cDbiB,ICcjB,WDRU,yBDmCV,kBAGF,aACE,cACA,iBACA,MC3Ec,QD+EhB,iBEdE,WACA,yBACA,0BACA,wBACA,cDzCiB,IC0CjB,gBACA,WDrCU,yBD+CV,WC3DW,KCmDX,wCACE,iBACA,gBACA,4CACA,wBAGF,oBACE,wCACA,iBAGF,0BACE,oCFDJ,gBACE,aACA,QAGF,KEtFE,YACA,cDsBiB,ICrBjB,eACA,YD+BY,wEC9BZ,qBACA,qBACA,wBAGE,gBACA,UDyBW,KChBb,iBDvBc,QCwBd,MArBoD,KAuBpD,WACE,WACA,2BAGF,YACE,wBF6DF,UEzFA,YACA,cDsBiB,ICrBjB,eACA,YD+BY,wEC9BZ,qBACA,qBACA,wBAGE,gBACA,UDyBW,KChBb,iBDvBc,QCwBd,MArBoD,KAuBpD,gBACE,WACA,2BAGF,iBACE,wBFiEF,YE7FA,YACA,cDsBiB,ICrBjB,eACA,YD+BY,wEC9BZ,qBACA,qBACA,wBAGE,gBACA,UDyBW,KChBb,iBDnBa,QCoBb,MArBoD,KAuBpD,kBACE,WACA,2BAGF,mBACE,wBFqEF,UEjGA,YACA,cDsBiB,ICrBjB,eACA,YD+BY,wEC9BZ,qBACA,qBACA,wBAGE,gBACA,UDyBW,KChBb,iBDrBc,QCsBd,MArBoD,KAuBpD,gBACE,WACA,2BAGF,iBACE,wBFyEF,YErGA,YACA,cDsBiB,ICrBjB,eACA,YD+BY,wEC9BZ,qBACA,qBACA,wBAGE,gBACA,UDyBW,KChBb,iBFmF6B,QElF7B,MArBoD,KAuBpD,kBACE,WACA,2BAGF,mBACE,wBF+EJ,UACE,oCAGF,YEvBE,iBACA,qCACA,cDnEiB,ICoEjB,UDvDa,KCwDb,YD1DY,wEC2DZ,iCACA,wBACA,iCFkBA,WACA,UC/Ea,KC8Db,kBACE,aACA,aDvGY,QCwGZ,yCFkBJ,kBEZE,gBACA,cDlFiB,KCmFjB,UDzEa,KC0Eb,iBACA,iBFS0B,cER1B,MFQuC,QAGzC,eEhBE,gBACA,cDlFiB,KCmFjB,UDzEa,KC0Eb,iBACA,iBFa0B,QEZ1B,MFYmC,QAGrC,gBEpBE,gBACA,cDlFiB,KCmFjB,UDzEa,KC0Eb,iBACA,iBFiB0B,QEhB1B,MFgBmC,QAIrC,gBACE,aACA,cCnHW,KDoHX,4CAGF,SEzIE,YACA,cDsBiB,ICrBjB,eACA,YD+BY,wEC9BZ,qBACA,qBACA,wBASE,iBACA,UDoBW,KCjBb,iBFuH2B,cEtH3B,MFsHqD,kBACrD,sCACA,gBEtHA,eACE,WACA,2BAGF,gBACE,wBFkHF,gBACE,oBCnJY,QDoJZ,MCpJY,QDuJd,eACE,oCACA,eAIJ,aACE,aAEA,oBACE,cAMF,0CEjIA,0BACA,wBACA,QDlBW,KCmBX,cDbiB,ICcjB,WDRU,yBDuIR,cCnJS,KDqJT,6CACE,aACA,MC7KU,QDiLd,sCACE,aACA,uCACA,IChKS,IDiKT,gBACA,cChKS,KDkKT,yFE5FF,iBACA,qCACA,cDnEiB,ICoEjB,UDvDa,KCwDb,YD1DY,wEC2DZ,iCACA,wBACA,iCAEA,qGACE,aACA,aDvGY,QCwGZ,yCFsFA,+CACE,aACA,+BACA,IC7KO,ID8KP,gBAEA,wDExGJ,iBACA,qCACA,cDnEiB,ICoEjB,UDvDa,KCwDb,YD1DY,wEC2DZ,iCACA,wBACA,iCFmGM,gBACA,gBElGN,8DACE,aACA,aDvGY,QCwGZ,yCFqGJ,cACE,WCzLW,KD0LX,QC1LW,KD2LX,cCrLiB,IDuLjB,sBACE,yBACA,cACA,yBAGF,oBACE,yBACA,cACA,yBAGF,oBACE,yBACA,cACA,yBAIJ,cEvHE,gBACA,cDlFiB,KCmFjB,UDzEa,KC0Eb,iBACA,iBFoH0B,QEnH1B,MFmHmC,QAGrC,iBE3HE,gBACA,cDlFiB,KCmFjB,UDzEa,KC0Eb,iBACA,iBFwH0B,QEvH1B,MFuHmC,QAGrC,eE/HE,gBACA,cDlFiB,KCmFjB,UDzEa,KC0Eb,iBACA,iBF4H0B,QE3H1B,MF2HmC,QAGrC,YE7OE,YACA,cDsBiB,ICrBjB,eACA,YD+BY,wEC9BZ,qBACA,qBACA,wBAGE,gBACA,UDyBW,KChBb,iBDvBc,QCwBd,MArBoD,KAuBpD,kBACE,WACA,2BAGF,mBACE,wBFoNF,mBEhPA,YACA,cDsBiB,ICrBjB,eACA,YD+BY,wEC9BZ,qBACA,qBACA,wBAGE,gBACA,UDyBW,KChBb,iBDnBa,QCoBb,MArBoD,KAuBpD,yBACE,WACA,2BAGF,0BACE,wBF2NF,0BEvPA,YACA,cDsBiB,ICrBjB,eACA,YD+BY,wEC9BZ,qBACA,qBACA,wBASE,iBACA,UDoBW,KCjBb,iBDpBc,QCqBd,MFoO0D,KElO1D,gCACE,WACA,2BAGF,iCACE,wBF+NF,4BE3PA,YACA,cDsBiB,ICrBjB,eACA,YD+BY,wEC9BZ,qBACA,qBACA,wBASE,iBACA,UDoBW,KCjBb,iBFyO6B,QExO7B,MArBoD,KAuBpD,kCACE,WACA,2BAGF,mCACE,wBAw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","file":"style.css"} \ No newline at end of file diff --git a/src/scss/_variables.scss b/src/scss/_variables.scss index 5fec122..f4ead72 100644 --- a/src/scss/_variables.scss +++ b/src/scss/_variables.scss @@ -8,14 +8,14 @@ $info-color: #17a2b8; // Theme Colors (CSS Variables will be generated) $light-bg: #ffffff; -$light-text: #333333; -$light-card-bg: #f8f9fa; -$light-border: #dee2e6; +$light-text: #1f2937; +$light-card-bg: #f3f4f6; +$light-border: #d1d5db; -$dark-bg: #1a1a1a; -$dark-text: #ffffff; -$dark-card-bg: #2d2d2d; -$dark-border: #444444; +$dark-bg: #111827; +$dark-text: #f9fafb; +$dark-card-bg: #1f2937; +$dark-border: #374151; // Spacing $spacing-xs: 4px; diff --git a/src/scss/main.scss b/src/scss/main.scss index 99567a2..ce873e8 100644 --- a/src/scss/main.scss +++ b/src/scss/main.scss @@ -2,8 +2,15 @@ @use 'variables' as *; @use 'mixins' as *; @use 'pages/admin'; +@use 'pages/index'; -// Import existing styles from style.css (converted to SCSS) +// Override with additional variables from original style-backup +$bg-hover: #f1f5f9; +$status-active: #10b981; +$status-warning: #f59e0b; +$status-danger: #ef4444; +$status-info: #3b82f6; +// Import any additional styles from style-backup as necessary // We'll keep the existing theme variables and base styles // Base styles and theme variables (from existing style.css) @@ -18,6 +25,14 @@ --table-header-bg: #e9ecef; --table-hover: #f5f5f5; --shadow: rgba(0, 0, 0, 0.1); + + /* Additional variables from original */ + --bg-secondary: #{$light-card-bg}; + --bg-hover: #{$bg-hover}; + --status-active: #{$status-active}; + --status-warning: #{$status-warning}; + --status-danger: #{$status-danger}; + --status-info: #{$status-info}; } [data-theme="dark"] { @@ -31,6 +46,10 @@ --table-header-bg: #3d3d3d; --table-hover: #3d3d3d; --shadow: rgba(0, 0, 0, 0.3); + + /* Dark theme additional variables */ + --bg-secondary: #{$dark-card-bg}; + --bg-hover: #4b5563; } * { diff --git a/src/scss/pages/_index.scss b/src/scss/pages/_index.scss new file mode 100644 index 0000000..ad64c69 --- /dev/null +++ b/src/scss/pages/_index.scss @@ -0,0 +1,254 @@ +// Import variables and mixins +@use '../variables' as *; +@use '../mixins' as *; + +// Main application styles for index.html +.container { + max-width: 1200px; + margin: 0 auto; + padding: $spacing-lg; +} + +.header { + @include flex-between; + margin-bottom: $spacing-lg; + padding: $spacing-md 0; + border-bottom: 1px solid var(--border-color); +} + +.title { + color: var(--text-color); + font-size: $font-size-xxl; + margin: 0; +} + +.subtitle { + color: var(--text-color); + opacity: 0.8; + margin: $spacing-xs 0; +} + +// Map and view controls +.view-controls { + @include flex-center; + gap: $spacing-sm; + margin-bottom: $spacing-lg; +} + +.view-btn { + @include button; + + &.active { + background-color: $primary-color; + color: white; + } + + &:not(.active) { + background-color: transparent; + color: var(--text-color); + border: 1px solid var(--border-color); + } +} + +// Map container +.map-view { + width: 100%; + height: 500px; + border-radius: $border-radius-md; + overflow: hidden; + box-shadow: $shadow-md; + + @include mobile { + height: 400px; + } +} + +// Reports table (main page) +.reports-table { + @include table-base; + + th { + background-color: var(--bg-secondary, var(--card-bg)); + color: var(--text-color); + font-weight: 600; + padding: 1rem; + border-bottom: 2px solid var(--border-color); + + &:first-child { + border-top-left-radius: $border-radius-md; + } + + &:last-child { + border-top-right-radius: $border-radius-md; + } + } + + td { + padding: 1rem; + border-bottom: 1px solid var(--border-color); + color: var(--text-color) !important; + vertical-align: top; + + &:first-child { + padding-left: 1.5rem; + } + + &:last-child { + padding-right: 1.5rem; + } + } + + tbody tr { + transition: background-color 0.2s ease; + + &:hover { + background-color: var(--bg-hover, var(--table-hover)); + } + + &:last-child td { + border-bottom: none; + } + } + + // Specific cell styles + .location-cell { + color: var(--text-color) !important; + font-size: 14px; + font-weight: 500; + max-width: 250px; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + } + + .details-cell { + color: var(--text-color) !important; + font-size: 14px; + font-weight: 400; + max-width: 200px; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + font-style: italic; + } + + .time-cell { + color: var(--text-color) !important; + font-size: 12px; + font-weight: 400; + } + + .remaining-cell { + color: var(--text-color) !important; + font-size: 12px; + font-weight: 500; + + &.urgent { + @include status-indicator(var(--status-danger, $danger-color), white); + text-transform: uppercase; + letter-spacing: 0.025em; + } + + &.warning { + @include status-indicator(var(--status-warning, $warning-color), white); + text-transform: uppercase; + letter-spacing: 0.025em; + } + + &.normal { + @include status-indicator(var(--status-info, $info-color), white); + } + } + + @include mobile { + display: block; + overflow-x: auto; + white-space: nowrap; + + th, td { + min-width: 120px; + } + } +} + +// Form section +.form-section { + @include card; + margin-bottom: $spacing-lg; + + h3 { + margin-top: 0; + margin-bottom: $spacing-md; + color: var(--text-color); + } +} + +// Add location form +.add-location-form { + display: grid; + grid-template-columns: 1fr auto; + gap: $spacing-md; + align-items: end; + + @include mobile { + grid-template-columns: 1fr; + } + + .location-input { + @include input-base; + min-width: 300px; + + @include mobile { + min-width: unset; + } + } + + .add-btn { + @include button($bg-color: $success-color); + } +} + +// Location count display +.location-count { + color: var(--text-color); + font-size: $font-size-md; + margin-bottom: $spacing-md; + text-align: center; +} + +// Error/Success messages +.error-message { + @include card($spacing-md); + background-color: #f8d7da; + color: #721c24; + border: 1px solid #f5c6cb; + margin: $spacing-md 0; + + &.success { + background-color: #d4edda; + color: #155724; + border-color: #c3e6cb; + } +} + +// Loading states +.loading { + text-align: center; + color: var(--text-color); + opacity: 0.7; + padding: $spacing-lg; +} + +// Theme toggle (shared with admin) +.theme-section { + position: fixed; + top: $spacing-lg; + right: $spacing-lg; + z-index: 100; + + @include mobile { + position: static; + margin-bottom: $spacing-lg; + text-align: center; + } +}