/* General Body and Container Styles */ body { font-family: Arial, Helvetica, sans-serif; margin: 0; padding: 0; background-color: #f4f4f4; color: #333; line-height: 1.6; } .container { width: 90%; max-width: 1200px; margin: 20px auto; background-color: #fff; padding: 20px; border-radius: 8px; box-shadow: 0 0 15px rgba(0, 0, 0, 0.1); } /* Navigation Links */ .nav-links { background-color: #e9ecef; padding: 10px 15px; margin-bottom: 25px; border-radius: 5px; display: flex; justify-content: space-between; align-items: center; } .nav-links a { margin-right: 15px; text-decoration: none; color: #007bff; font-weight: bold; padding: 5px 0; } .nav-links a:hover { text-decoration: underline; } .nav-links .logout-link { /* Specific class for logout if needed for positioning */ margin-left: auto; /* Pushes logout to the right */ } /* Headings */ h1, h2, h3, h4, h5, h6 { color: #333; margin-top: 0; margin-bottom: 0.75em; } h1 { font-size: 2em; margin-bottom: 1em; } h2 { font-size: 1.75em; border-bottom: 1px solid #eee; padding-bottom: 0.3em; margin-top: 1.5em; } h3 { font-size: 1.5em; margin-top: 1.25em;} /* Tables */ table { width: 100%; border-collapse: collapse; margin-bottom: 25px; } th, td { padding: 12px 15px; /* Increased padding */ border: 1px solid #ddd; text-align: left; word-break: break-word; /* Keep this for long strings */ } th { background-color: #f0f0f0; font-weight: bold; } tbody tr:nth-child(odd) { background-color: #f9f9f9; /* Subtle striping for readability */ } tbody tr:hover { background-color: #f1f1f1; /* Hover effect for rows */ } /* Actions in tables */ .actions a, .actions button { margin-right: 8px; text-decoration: none; color: #007bff; border: none; background: none; cursor: pointer; padding: 5px; font-size: 0.9em; display: inline-block; /* Align items better */ vertical-align: middle; } .actions a:hover, .actions button:hover { text-decoration: underline; } .actions button.delete, .actions button.reject { color: #dc3545; } .actions button.delete:hover, .actions button.reject:hover { color: #a71d2a; } .actions button.approve { color: #28a745; } .actions button.approve:hover { color: #1c7430; } /* Forms */ .form-group { margin-bottom: 20px; } .form-group label { display: block; margin-bottom: 8px; /* Increased spacing */ font-weight: bold; color: #555; } .form-group input[type="text"], .form-group input[type="password"], .form-group input[type="checkbox"], .form-group textarea, .form-group select { width: 100%; /* Full width */ padding: 10px; border: 1px solid #ccc; border-radius: 4px; box-sizing: border-box; /* Important for width: 100% and padding */ } .form-group input[type="checkbox"] { width: auto; /* Checkboxes shouldn't be full width */ margin-right: 5px; vertical-align: middle; } .form-group label input[type="checkbox"] { /* For labels wrapping checkboxes */ margin-right: 8px; } .form-group textarea { min-height: 100px; resize: vertical; /* Allow vertical resize */ } .form-group select { appearance: none; /* Basic reset for select */ background-image: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M5%208l5%205%205-5z%22%20fill%3D%22%23555%22%2F%3E%3C%2Fsvg%3E'); background-repeat: no-repeat; background-position: right 10px center; background-size: 12px; padding-right: 30px; /* Make space for arrow */ } .form-group input[readonly], .form-group textarea[readonly] { background-color: #e9ecef; cursor: not-allowed; } .form-control-plaintext { /* From Bootstrap for readonly fields that look like text */ display: block; width: 100%; padding-top: .375rem; padding-bottom: .375rem; margin-bottom: 0; line-height: 1.5; background-color: transparent; border: solid transparent; border-width: 1px 0; box-sizing: border-box; } /* Buttons */ .btn { padding: 10px 18px; /* Slightly adjusted padding */ background-color: #007bff; color: white; border: none; border-radius: 4px; cursor: pointer; text-decoration: none; display: inline-block; font-size: 0.95em; transition: background-color 0.2s ease-in-out; } .btn:hover { background-color: #0056b3; color: white; /* Ensure text color remains on hover */ text-decoration: none; } .btn-danger { background-color: #dc3545; } .btn-danger:hover { background-color: #c82333; } .btn-secondary { background-color: #6c757d; } .btn-secondary:hover { background-color: #545b62; } .btn-success { /* Added success button style */ background-color: #28a745; } .btn-success:hover { background-color: #1e7e34; } /* Alerts */ .alert { padding: 15px; /* Increased padding */ margin-bottom: 20px; border-radius: 4px; border: 1px solid transparent; /* Base for border */ position: relative; } .alert-success { background-color: #d4edda; color: #155724; border-color: #c3e6cb; } .alert-error { background-color: #f8d7da; color: #721c24; border-color: #f5c6cb; } .alert-info { /* Added info alert style */ background-color: #cce5ff; color: #004085; border-color: #b8daff; } /* Utility Classes */ .mono { /* For monospace text, like client IDs */ font-family: 'Courier New', Courier, monospace; background-color: #e9ecef; padding: 3px 6px; /* Adjusted padding */ border-radius: 3px; font-size: 0.9em; } .small-text { font-size: 0.85em; color: #555; } .text-danger { /* For error text not in an alert */ color: #dc3545; } .text-muted { color: #6c757d; } .mb-1 { margin-bottom: 0.25rem !important; } .mb-2 { margin-bottom: 0.5rem !important; } .mb-3 { margin-bottom: 1rem !important; } .mt-1 { margin-top: 0.25rem !important; } .mt-2 { margin-top: 0.5rem !important; } .mt-3 { margin-top: 1rem !important; } .ml-1 { margin-left: 0.25rem !important; } .ml-2 { margin-left: 0.5rem !important; } .mr-1 { margin-right: 0.25rem !important; } .mr-2 { margin-right: 0.5rem !important; } /* For inline forms like in table actions */ .form-inline { display: inline-block; vertical-align: middle; margin-right: 5px; /* Add some space between inline forms/buttons */ } .form-inline button { padding: 5px 8px; /* Smaller padding for inline buttons */ } /* Specific section styling */ .settings-section, .section-divider { margin-top: 30px; margin-bottom: 30px; padding-top: 20px; border-top: 1px solid #eee; } .settings-section h3 { margin-top: 0; /* Reset top margin for h3 within this section */ } /* Checkbox list styling for group management */ .checkbox-list div { margin-bottom: 8px; } .checkbox-list label { /* Target labels next to checkboxes */ font-weight: normal; /* Override bold from .form-group label */ margin-left: 5px; } hr { margin: 30px 0; border: 0; border-top: 1px solid #eee; }