/* General Styles */
body {
    font-family: sans-serif;
    margin: 0;
    background-color: #f8f9fa; /* Light background for contrast */
}

.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border-width: 0;
}

/* Login Page Body Centering */
body.login-page-body {
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 100vh;
    /* background-color: #f8f9fa; */ /* Already set on body */
}

/* Login Page Styles */
.login-container {
    background-color: white;
    padding: 40px;
    border-radius: 8px;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
    text-align: center;
    /* max-width: 400px; */ /* Original width */
    max-width: 450px; /* Slightly wider */
    width: 100%;
    /* Remove margin auto if it was used before */
    margin: 0; /* Remove default margins, rely on flex centering */
}

.login-container .logo {
    width: 160px; /* Reverted to fixed size */
    margin-bottom: 15px; /* Add space below fields */
}

.login-container h1 {
    font-size: 1.8em;
    margin-bottom: 30px;
    color: #333;
}

.input-group {
    position: relative;
    margin-bottom: 20px;
}

.input-group .icon {
    position: absolute;
    left: 15px;
    top: 50%;
    transform: translateY(-50%);
    /* color: #aaa; */ /* Original color */
    color: #888; /* Grey color for icon */
}

.input-group input {
    width: calc(100% - 40px); /* Account for padding and icon */
    padding: 15px 15px 15px 40px; /* Add padding for icon */
    border: 1px solid #ccc;
    border-radius: 4px;
    font-size: 1em;
    align-items: center;
}

.options {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 30px;
    font-size: 0.9em;
}

.options label {
    display: flex;
    align-items: center;
}

.options input[type="checkbox"] {
    margin-right: 5px;
    accent-color: #592f96; /* Starling Purple */
}

.options a {
    color: #592f96; /* Starling Purple */
    text-decoration: none;
}

.options a:hover {
    text-decoration: underline;
}

.login-button {
    background-color: #592f96; /* Starling Purple */
    color: white;
    border: none;
    padding: 15px 0;
    width: 100%;
    border-radius: 4px;
    font-size: 1.1em;
    cursor: pointer;
    transition: background-color 0.3s ease;
}

.login-button:hover {
    background-color: #472577; /* Darker purple */
}

/* Signup Page Styles */
.signup-container {
    background-color: white;
    padding: 40px;
    border-radius: 8px;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
    text-align: center;
    max-width: 600px; /* Wider than login */
    width: 100%;
    margin: 30px auto; /* Allow space top/bottom */
}

.signup-container .logo {
    width: 120px; /* Reverted to fixed size */
    margin-bottom: 15px; /* Add space below fields */
}

.signup-container h1 {
    font-size: 1.8em; /* Adjust size as needed */
    margin-bottom: 1.5em;
    color: #333;
}

#signup-form {
    display: flex;
    flex-direction: column;
    gap: 16px; /* Consistent gap */
}

/* Reuse .form-row and .form-group from billing/profile */
.form-group.full-width { /* Ensure this rule exists and works */
    flex-basis: 100%;
}

/* Ensure signup inputs use form-input style if needed */
/* This style might already exist from profile page, adding for safety */
#signup-form .form-input {
    height: 40px;
    border: 1px solid #ccc;
    border-radius: 6px;
    font-size: 0.95em;
    padding: 0 12px;
    background: #fff;
    transition: border-color 0.2s, box-shadow 0.2s;
    box-sizing: border-box;
    width: 100%;
}

#signup-form .form-input:focus {
    border-color: #592f96;
    outline: none;
    box-shadow: 0 0 0 2px rgba(89, 47, 150, 0.2);
}

.signup-button {
    margin-top: 10px; /* Space above button */
}

/* Login/Signup links styling */
.signup-link, 
.login-link { 
    margin-top: 25px;
    font-size: 0.9em;
    color: #555;
}

.signup-link a,
.login-link a {
    color: #592f96; /* Starling Purple */
    text-decoration: none;
}

.signup-link a:hover,
.login-link a:hover {
    text-decoration: underline;
}

/* Add styles for other pages below */

/* Header Styles */
.main-header {
    background-color: white;
    border-bottom: 1px solid #eee;
    padding: 20px 0; /* Doubled padding for height */
    position: fixed; /* Make header fixed */
    top: 0;
    left: 0;
    width: 100%;
    z-index: 1000;
}

.header-content {
    max-width: 1200px; /* Adjust as needed */
    margin: 0 auto;
    padding: 0 20px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.header-logo {
    height: 40px; /* Adjust size */
    width: auto;
}

.main-header nav ul {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
}

.main-header nav ul li {
    margin-left: 25px;
}

.main-header nav ul li a {
    text-decoration: none;
    color: #592f96; /* Purple color */
    font-weight: 500;
    padding-bottom: 18px; /* Space for border */
    border-bottom: 3px solid transparent;
    transition: border-color 0.3s ease, color 0.3s ease;
    font-size: 0.9em; /* Restore smaller font */
}

.main-header nav ul li a.active,
.main-header nav ul li a:hover {
    color: #592f96;
    border-bottom-color: #592f96;
}

/* User Profile Dropdown */
.user-profile {
    position: relative; /* Needed for absolute positioning of dropdown */
}

.user-profile-button {
    background: none;
    border: none;
    padding: 0;
    cursor: pointer;
    display: flex;
    align-items: center;
    color: #592f96; /* Purple color */
}

.user-profile-button span {
    margin-right: 10px;
}

.profile-icon {
    color: #592f96; /* Purple color */
    margin-left: 8px; /* Restore margin */
}

.dropdown-menu {
    display: none; /* Hidden by default */
    position: absolute;
    top: 100%; /* Position below the button */
    right: 0;
    background-color: white;
    border: 1px solid #eee;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
    border-radius: 4px;
    padding: 10px 0;
    min-width: 160px;
    z-index: 1100; /* Above header */
}

.dropdown-menu.show {
    display: block; /* Show when class is added */
}

.dropdown-menu a {
    display: block;
    padding: 10px 20px;
    color: #592f96; /* Purple color */
    text-decoration: none;
    font-size: 0.9em;
    white-space: nowrap;
}

.dropdown-menu a:hover {
    background-color: #f8f9fa;
}

/* Dashboard Container */
.dashboard-container {
    max-width: 1200px;
    margin: 85px auto 20px; /* Adjusted top margin slightly for header */
    padding: 20px;
}

.dashboard-container h1 {
    margin-bottom: 30px;
    font-weight: 500;
    color: #333;
}

.content-row {
    display: flex;
    gap: 30px; /* Space between calendar and sidebar */
}

.calendar-section {
    flex-grow: 1; /* Takes available space */
}

.calendar-section h2 {
    font-size: 1.2em;
    font-weight: 500;
    margin-bottom: 20px;
}

/* Calendar Styles */
.calendar {
    border: 1px solid #eee;
    border-radius: 8px;
    padding: 20px;
    background-color: white;
}

.calendar-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 15px;
}

.calendar-header span {
    font-weight: bold;
    font-size: 1.1em;
}

.calendar-header button {
    background: none;
    border: none;
    font-size: 1.2em;
    cursor: pointer;
    color: #592f96;
}

.calendar table {
    width: 100%;
    border-collapse: collapse;
    text-align: center;
}

.calendar th,
.calendar td {
    padding: 10px;
    border: 1px solid #eee;
}

.calendar th {
    font-weight: normal;
    font-size: 0.9em;
    color: #888;
}

.calendar td span.other-month {
    color: #ccc;
}

.calendar td span.today {
    background-color: #00e91c; /* Updated green color */
    color: white;
    border-radius: 4px;
    padding: 5px 8px;
    display: inline-block;
}

/* Sidebar Styles */
.sidebar {
    width: 300px; /* Fixed width */
    flex-shrink: 0; /* Prevent shrinking */
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.updates-section, .service-lookup-section {
    border: 1px solid #eee;
    border-radius: 8px;
    padding: 20px;
    background-color: white;
}

.sidebar h3 {
    font-size: 1.1em;
    margin-bottom: 15px;
    font-weight: 500;
    display: flex;
    align-items: center;
}

.sidebar h3 .icon {
    margin-right: 8px;
    font-size: 1.2em;
}

.update-item {
    font-size: 0.9em;
    line-height: 1.5;
    color: #555;
    border-top: 1px solid #eee;
    padding-top: 15px;
}

.updates-section .update-item:first-of-type {
    border-top: none;
    padding-top: 0;
}

.service-lookup-section p {
    font-size: 0.9em;
    color: #555;
    margin-bottom: 15px;
    line-height: 1.4;
}

.form-group {
    margin-bottom: 15px;
}

.form-group label {
    display: block;
    margin-bottom: 5px;
    font-size: 0.9em;
    color: #555;
}

.form-group input[type="text"] {
    width: calc(100% - 22px); /* Account for padding and border */
    padding: 10px;
    border: 1px solid #ccc;
    border-radius: 4px;
    font-size: 0.9em;
}

.action-button {
    padding: 10px 20px;
    font-size: 1em;
    font-weight: 500;
    border-radius: 6px;
    cursor: pointer;
    transition: background-color 0.2s, border-color 0.2s;
    height: 40px; /* Explicit height */
    display: inline-flex; 
    align-items: center; 
    justify-content: center; 
    box-sizing: border-box; 
    vertical-align: middle; 
    border: 1px solid transparent; /* Define base border */
    border-color: transparent; /* Ensure transparent border if needed */
}

/* General disabled state for action buttons */
.action-button:disabled,
.action-button[disabled] /* Cover both ways of disabling */ {
    background: #e0e0e0 !important; /* Important to override specifics */
    color: #999 !important;
    cursor: not-allowed !important;
    border-color: #e0e0e0 !important;
}

.action-button:disabled:hover,
.action-button[disabled]:hover {
    background: #e0e0e0 !important; /* Prevent hover effect when disabled */
    border-color: #e0e0e0 !important;
}

/* Active state for signup button */
.signup-button:not(:disabled) {
    background-color: #592f96; /* Purple */
    color: #fff;
    border: none; /* Assuming no border for active state like login */
}

.signup-button:not(:disabled):hover {
    background-color: #4a257c; /* Darker Purple */
}

.save-payment-info-button {
    background-color: #592f96; /* Purple */
    color: #fff;
    /* border rule removed, inherits from .action-button */
    margin-top: 0 !important; 
}

.save-payment-info-button:hover {
    background-color: #4a257c; 
    border-color: transparent; /* Keep border transparent */
}

.save-payment-info-button:disabled {
    background: #e0e0e0; 
    color: #999;
    cursor: not-allowed;
    border-color: #e0e0e0; /* Override border color */
    margin-top: 0 !important; 
}

.save-payment-info-button:disabled:hover {
    background: #e0e0e0;
    border-color: #e0e0e0; /* Keep disabled border color */
}

.cancel-button {
    background-color: #fff !important; /* Ensure white background */
    color: #555 !important; /* Ensure dark text */
    border-color: #ccc !important; /* Ensure grey border */
    /* border rule and box-sizing removed, inherits from .action-button */
}

.cancel-button:hover {
    background-color: #f5f5f5;
    border-color: #bbb;
}

/* Billing Page Styles */
.billing-container {
    max-width: 800px; /* Increase max-width for the container */
    margin: 85px auto 20px;
    padding: 20px;
    display: flex; /* Use flexbox for layout */
    flex-direction: column; /* Stack children vertically */
    /* align-items: center; */ /* Changed from center */
    align-items: stretch; /* Ensure children stretch to full width */
    gap: 32px; /* Gap between form and invoice section */
}

.billing-container h1 {
    font-size: 2em; /* Reduced from previous default */
    margin-bottom: 30px;
    font-weight: 600;
    padding-bottom: 15px;
    border-bottom: 1px solid #eee;
}

.combined-billing-section,
.invoice-notifications-section {
    padding: 25px;
    border: 1px solid #eee;
    border-radius: 8px;
    background-color: white;
    margin-bottom: 30px;
}

.combined-billing-section > *:not(:last-child) {
    margin-bottom: 20px; /* Consistent spacing between elements/forms inside */
}

.combined-billing-section h2 {
    margin-top: 30px; /* Add space above subsequent h2s within the section */
    margin-bottom: 15px; /* Reduced bottom margin for headers */
    font-size: 1.4em; /* Keep consistent header size */
    font-weight: 500;
}

.combined-billing-section h2.sub-header {
    margin-top: 25px; /* Space above pre-auth header */
}

.combined-billing-section form {
    margin-bottom: 0;
}

.payment-details-section,
.billing-address-section,
.pre-auth-section,
.invoice-notifications-section {
    border-bottom: none; /* Remove individual borders */
    padding-bottom: 0; /* Remove individual padding */
    margin-bottom: 0; /* Remove individual margin */
}

.payment-form {
    display: flex;
    align-items: center;
    gap: 15px;
}

.card-input-group {
    position: relative;
    margin-bottom: 15px; /* Space below the card input group */
}

.card-input-group .card-icon {
    position: absolute;
    left: 18px; /* Adjust position */
    top: 18px; /* Adjust position */
    transform: translateY(-50%);
    color: #aaa;
    font-size: 1.2em;
}

.card-input {
    padding: 10px 15px;
    border: 1px solid #ccc;
    border-radius: 4px;
    font-size: 0.9em;
    height: 38px; /* Explicit height for alignment */
    box-sizing: border-box; /* Include padding/border in height */
}

.main-card-input {
    width: calc(100% - 55px); /* Adjust width for icon padding */
    padding-left: 40px; /* Padding for icon */
    margin-bottom: 10px; /* Keep space before sub-inputs */
}

.card-sub-inputs {
    display: flex;
    gap: 10px;
    padding-left: 40px; /* Align with main input's text start */
    align-items: center; /* Vertically align items */
}

.expiry-input {
    width: 80px; /* Fixed width for MM/YY */
}

.cvc-input {
    width: 60px; /* Fixed width for CVC */
}

.save-card-button {
    display: none; /* Hide the old button */
}

.payment-details-section,
.billing-address-section,
.pre-auth-section,
.invoice-notifications-section {
    border-bottom: none; /* Remove individual borders */
    padding-bottom: 0; /* Remove individual padding */
    margin-bottom: 0; /* Remove individual margin */
}

.address-form.single-field label {
    display: block;
    margin-bottom: 5px;
    font-size: 0.9em;
    color: #555;
    font-weight: 500; /* Make label slightly bolder */
}

.suggestions-list {
    display: none; /* Hidden by default */
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background-color: white;
    border: 1px solid #ccc;
    border-top: none;
    border-radius: 0 0 4px 4px;
    max-height: 150px;
    overflow-y: auto;
    z-index: 100;
}

.suggestions-list div {
    padding: 10px;
    cursor: pointer;
}

.suggestions-list div:hover {
    background-color: #f0f0f0;
}

.pre-auth-form {
    margin-top: 0; /* Reset margin if needed */
}

.invoice-notifications-section .checkbox-group,
.pre-auth-form .checkbox-group {
    margin-bottom: 15px;
    display: flex; /* Align items */
    align-items: center; /* Center vertically */
}

.invoice-notifications-section .checkbox-group label,
.pre-auth-form .checkbox-group label {
    display: flex;
    align-items: center;
    cursor: pointer;
    color: #333;
    font-size: 0.95em; /* Adjust text size slightly */
}

.invoice-notifications-section .checkbox-group input[type="checkbox"],
.pre-auth-form .checkbox-group input[type="checkbox"] {
    margin-right: 10px;
    width: 18px;
    height: 18px;
    cursor: pointer;
    flex-shrink: 0; /* Prevent checkbox from shrinking */
}

/* Invoices Table */
.invoices-table-container {
    border: 1px solid #eee;
    border-radius: 8px;
    padding: 0; /* Remove padding, let table control spacing */
    background-color: white;
    overflow-x: auto; /* Add scroll for smaller screens */
}

.invoices-section table {
    width: 100%;
    border-collapse: collapse;
}

.invoices-section th,
.invoices-section td {
    padding: 15px;
    text-align: left;
    border-bottom: 1px solid #eee;
}

.invoices-section thead tr:first-child th {
    font-size: 1.1em;
    font-weight: 500;
    color: #333;
    border-bottom: 2px solid #eee; /* Thicker border below main header */
}

.invoices-section thead tr.sub-header th {
    font-weight: bold;
    font-size: 0.9em;
    color: #555;
    background-color: #f8f9fa; /* Light background for sub-header */
    border-bottom-width: 1px;
}

.invoices-section tbody tr:last-child td {
    border-bottom: none;
}

.invoices-section td.no-invoices {
    text-align: center;
    color: #888;
    padding: 30px;
    font-style: italic;
}

/* Single Address Field & Autocomplete */
.address-form.single-field .form-group {
    margin-bottom: 15px; /* Consistent spacing */
}

.autocomplete-container {
    position: relative;
}

#address-form.single-field input[type="text"], #billing-address {
    width: calc(100% - 22px); /* Account for padding and border */
    padding: 10px;
    border: 1px solid #ccc;
    border-radius: 4px;
    font-size: 0.9em;
}

/* Invoice Notifications / Pre-Auth Checkboxes */
.checkbox-group {
    margin-bottom: 15px;
}

.checkbox-group label {
    display: flex;
    align-items: center;
    cursor: pointer;
    color: #333;
}

.checkbox-group input[type="checkbox"] {
    margin-right: 10px;
    width: 18px;
    height: 18px;
    cursor: pointer;
}

.pre-auth-section .checkbox-group.mandatory label {
    color: #555; /* Slightly muted text for mandatory item */
}

.pre-auth-section .mandatory-note {
    font-size: 0.9em;
    color: #777;
    margin-top: 5px;
    padding-left: 28px; /* Align with checkbox text */
}

/* --- New Checkout Form Styles (Sample-Based) --- */
.checkout-form {
    /* max-width: 550px; */ /* Removed max-width */
    width: 100%; /* Ensure it tries to take full width */
    background: #fff;
    border: 1px solid #e0e0e0; 
    border-radius: 8px; 
    /* padding: 32px; */ /* Original padding */
    padding: 16px 32px 32px 32px; /* Reduced top padding */
    margin: 0; /* Use container gap instead */
    display: flex;
    flex-direction: column;
    gap: 16px; /* Reduced vertical gap between rows */
    box-sizing: border-box; 
}

/* Remove extra space above title */
.checkout-form h2 {
    margin-top: 0;
    margin-bottom: 12px; /* Add some space below title */
}

.form-row {
    display: flex;
    gap: 16px; /* Horizontal gap within rows */
    width: 100%;
}

.form-group {
    display: flex;
    flex-direction: column;
    flex: 1; /* Default flex behavior */
}

.form-group.full-width {
    flex-basis: 100%;
}

/* Specific widths for card row */
.card-row .card-group {
    flex: 3; /* Card number takes more space */
}

.card-row .expiry-group,
.card-row .cvc-group {
    flex: 1; /* Expiry and CVC take less space */
}

.form-group label {
    display: block;
    margin-bottom: 6px;
    font-size: 0.9em;
    font-weight: 500;
    color: #333;
    text-align: left; /* Ensure left alignment */
}

/* Style all text inputs similarly */
.card-input,
#billing-address,
#cardholder-name { 
    height: 44px;
    border: 1px solid #ccc;
    border-radius: 6px;
    font-size: 1em;
    padding: 0 12px; /* Standard padding, removed icon space */
    background: #fff; 
    transition: border-color 0.2s, box-shadow 0.2s;
}

.card-input:focus,
#billing-address:focus,
#cardholder-name:focus {
    border-color: #592f96; /* Purple focus */
    outline: none;
    box-shadow: 0 0 0 2px rgba(89, 47, 150, 0.2); /* Subtle focus ring */
}

.address-group {
    width: 100%; /* Address takes full width in its row */
}

/* Autocomplete styles */
.autocomplete-container {
    position: relative; /* Needed for absolute positioning of suggestions */
}

.suggestions-list {
    display: none;
    position: absolute;
    top: 100%; /* Position below the input */
    left: 0;
    right: 0;
    background: #fff;
    border: 1px solid #ccc;
    border-top: none;
    border-radius: 0 0 6px 6px;
    max-height: 150px;
    overflow-y: auto;
    z-index: 10;
    box-shadow: 0 4px 6px rgba(0,0,0,0.1);
}

.suggestions-list div {
    padding: 10px 12px;
    cursor: pointer;
    font-size: 0.95em;
}

.suggestions-list div:hover {
    background: #f0f0f0;
}

/* Checkbox Row */
.checkbox-row {
    margin-top: 8px; /* Space above checkbox */
}

.checkbox-label {
    display: flex;
    align-items: center;
    font-size: 0.95em;
    color: #444;
    gap: 8px;
    cursor: pointer;
}

.checkbox-label input[type="checkbox"] {
    width: 18px;
    height: 18px;
    accent-color: #592f96; /* Purple checkbox */
    margin: 0; /* Remove default margin */
}

/* Action Buttons Area */
.form-actions {
    display: flex;
    justify-content: flex-end; /* Align buttons right */
    gap: 12px;
    margin-top: 24px;
    padding-top: 20px;
    border-top: 1px solid #eee; /* Separator line like sample */
}

.action-button {
    padding: 10px 20px;
    font-size: 1em;
    font-weight: 500;
    border-radius: 6px;
    border: none;
    cursor: pointer;
    transition: background-color 0.2s, border-color 0.2s;
}

.save-payment-info-button {
    background-color: #592f96; /* Purple */
    color: #fff;
}

.save-payment-info-button:hover {
    background-color: #4a257c; /* Darker purple */
}

.cancel-button {
    background-color: #fff !important; /* Ensure white background */
    color: #555 !important; /* Ensure dark text */
    border-color: #ccc !important; /* Ensure grey border */
    /* border rule and box-sizing removed, inherits from .action-button */
}

.cancel-button:hover {
    background-color: #f5f5f5;
    border-color: #bbb;
}

.save-payment-info-button:disabled {
    background: #e0e0e0; /* Lighter grey disabled */
    color: #999;
    cursor: not-allowed;
    border-color: #e0e0e0;
    margin-top: 0 !important;
}

.save-payment-info-button:disabled:hover {
    background: #e0e0e0;
}

/* Responsive adjustments */
@media (max-width: 600px) {
    .checkout-form {
        padding: 20px;
        gap: 15px;
    }

    .form-row {
        flex-direction: column; /* Stack elements vertically */
        gap: 15px; 
    }

    .card-row .expiry-group,
    .card-row .cvc-group {
        max-width: none; /* Allow full width when stacked */
    }

    .form-actions {
        flex-direction: column-reverse; /* Stack buttons, Save on top */
        align-items: stretch;
    }

    .action-button {
        width: 100%;
    }
}

/* --- End New Checkout Form Styles --- */

/* Invoice Notifications Section */
.invoice-notifications-section {
    max-width: 500px;
    margin: 0 auto 32px auto;
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 2px 16px rgba(0,0,0,0.04), 0 1.5px 5px rgba(0,0,0,0.03); /* Same shadow as old form */
    padding: 28px 24px 18px 24px; /* Keep existing padding */
}

.invoice-notifications-section h2 {
    font-size: 1.2em;
    margin-bottom: 8px;
}

.invoice-notifications-section p {
    margin-bottom: 16px; /* Increased space */
    color: #555;
    font-size: 1em;
}

.notifications-form {
    display: flex;
    flex-direction: column;
    gap: 10px; /* Increased gap */
}

.notifications-form .checkbox-group {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 0.95em; /* Match form checkbox */
    color: #333;
    cursor: pointer;
}

.notifications-form input[type="checkbox"] {
    width: 18px;
    height: 18px;
    accent-color: #592f96; /* Purple checkbox */
    margin: 0; /* Align with form checkbox */
}

/* Style the update password button to be subtle like a link */
.update-password-button {
    /* Reset styles */
    background-color: transparent;
    color: #4a257c; 
}

/* --- Ensure Invoice section has card styling --- */
.invoices-section {
    width: 100%; /* Match form width */
    max-width: none; /* Remove any potential max-width */
    margin: 0; /* Rely on container gap */
    background: #fff; /* Card styles */
    border: 1px solid #e0e0e0;
    border-radius: 8px;
    padding: 24px; /* Match form padding */
    box-sizing: border-box; /* Ensure padding doesn't increase size */
}

.invoices-section h2 {
    margin-top: 0; /* Remove default margin */
    margin-bottom: 16px;
}

.invoices-table-container {
    border: none; /* Remove double border from previous attempts */
    border-radius: 0;
    padding: 0;
    background-color: transparent;
    overflow-x: auto;
}

.profile-actions {
    width: 100%;
}

/* Action Buttons Area in Billing/Checkout Form */
.checkout-form .form-actions .action-button {
    min-width: 150px; /* Set a minimum width for buttons */
    text-align: center; /* Ensure text centers within the button */
}

/* End Notification Styles */


/* --- Profile Page Styles --- */
.profile-container {
    max-width: 800px;
    margin: 105px auto 20px; /* Adjust top margin for fixed header height */
    padding: 20px;
    display: flex;
    flex-direction: column;
    gap: 32px;
}

.profile-container h1 {
    margin-bottom: 10px; /* Reduce space below main title */
    text-align: center;
}

.profile-form {
    width: 100%;
    background: #fff;
    border: 1px solid #e0e0e0;
    border-radius: 8px;
    padding: 24px;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    gap: 16px; /* Space between rows/elements within a form */
}

.profile-form h2 {
    margin-top: 0;
    margin-bottom: 12px;
    font-size: 1.3em;
    font-weight: 500;
    border-bottom: 1px solid #eee;
    padding-bottom: 8px;
}

/* Use existing .form-row and .form-group styles */

/* Style specifically for profile page inputs if needed */
.profile-form .form-input {
    height: 40px;
    border: 1px solid #ccc;
    border-radius: 6px;
    font-size: 0.95em;
    padding: 0 12px;
    background: #fff;
    transition: border-color 0.2s, box-shadow 0.2s;
    box-sizing: border-box;
    width: 100%; /* Ensure inputs take full group width */
}

.profile-form .form-input:focus {
    border-color: #592f96;
    outline: none;
    box-shadow: 0 0 0 2px rgba(89, 47, 150, 0.2);
}

.profile-form fieldset.radio-group {
    border: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.profile-form fieldset.radio-group legend {
    font-weight: 500;
    margin-bottom: 8px;
    font-size: 0.9em;
    color: #333;
    padding: 0;
}

.profile-form .radio-label {
    display: flex;
    align-items: center;
    font-size: 0.95em;
    color: #444;
    gap: 8px;
    cursor: pointer;
}

.profile-form input[type="radio"] {
    width: 18px;
    height: 18px;
    accent-color: #592f96;
    margin: 0;
}

/* Style the update password button to be subtle like a link */
.update-password-button {
    /* Reset styles */
    background-color: transparent;
    border: none;
    padding: 0;
    margin: 0; 
    margin-top: 5px; /* Add small space above */
    /* Link styles */
    color: #592f96; /* Starling Purple */
    font-size: 0.9em; /* Smaller font */
    font-weight: normal;
    text-decoration: underline;
    cursor: pointer;
    text-align: left; /* Align to the left */
    width: auto; /* Don't force width */
    display: inline-block; /* Allow left alignment */
}

.update-password-button:hover {
    color: #4a257c; 
}


.profile-actions {
    width: 100%;
    display: flex;
    justify-content: flex-end;
    margin-top: 16px;
}

.save-profile-button {
    /* Add specific profile save button styles if needed */
    background-color: #592f96; /* Set purple background */
    color: #fff; /* Set white text */
    border-color: transparent; /* Ensure transparent border if needed */
}

/* --- Ensure Invoice section has card styling --- */
.invoices-section {
    width: 100%; /* Match form width */
}

/* Style for the new Terms and Conditions checkbox */
.terms-group {
    display: flex;
    align-items: center;
    margin-bottom: 15px; /* Space before button */
    font-size: 0.9em;
    color: #555;
}

.terms-group input[type="checkbox"] {
    margin-right: 8px;
    accent-color: #5cb85c; /* Use theme green */
    cursor: pointer;
}

.terms-group label {
    cursor: pointer;
}

.terms-group a {
    color: #7a00ff; /* Use theme purple */
    text-decoration: none;
}

.terms-group a:hover {
    text-decoration: underline;
}

/* --- Link Spotlight Animation --- */
@keyframes pulse-outline {
  0% {
    outline: 2px solid rgba(89, 47, 150, 0.4); /* Start purple */
    outline-offset: 2px;
    box-shadow: 0 0 0 0 rgba(89, 47, 150, 0.4);
  }
  70% {
    outline: 2px solid rgba(89, 47, 150, 0.1);
    outline-offset: 4px;
    box-shadow: 0 0 0 5px rgba(89, 47, 150, 0);
  }
  100% {
    outline: 2px solid rgba(89, 47, 150, 0);
    outline-offset: 3px;
    box-shadow: 0 0 0 0 rgba(89, 47, 150, 0);
  }
}

a.link-spotlight {
  position: relative; /* Needed for potential pseudo-elements if used later */
  border-radius: 4px; /* Match button/input radius */
  animation: pulse-outline 1s ease-out infinite;
  /* Ensure visibility if link is just text */
  display: inline-block; /* Or inline, depending on context */
  padding: 2px 4px; /* Small padding to make outline visible */
  margin: -2px -4px; /* Counteract padding */
}
/* --- End Link Spotlight Animation --- */

/* Style for spotlight on buttons */
button.button-spotlight {
  position: relative;
  border-radius: 4px; /* Match button radius */
  animation: pulse-outline 1s ease-out infinite;
  /* Adjust outline offset if needed for button borders */
  outline-offset: 2px;
}

.step.active-step i {
    color: #592f96; /* Purple icon for active step */
    font-size: 1.9em; /* Slightly larger active icon */
}

.step div {
    display: flex;
    flex-direction: column;
}

.step strong {
    font-weight: 600;
    font-size: 1.05em;
}

.step span {
    font-size: 0.9em;
}

/* Steps Indicator */
.steps-indicator {
    display: flex;
    align-items: stretch; /* Make items same height */
    /* background-color: #f0f0f0; */ /* Removed overall background */
    border-radius: 8px;
    overflow: hidden; /* Clip children */
    margin-bottom: 10px; /* Space below steps */
    border: 1px solid #e0e0e0;
    gap: 18px; /* Slightly reduced gap */
}

.step {
    padding: 15px 25px;
    display: flex;
    align-items: center;
    gap: 15px;
    background-color: #f8f9fa; /* Slightly off-white for inactive */
    color: #6c757d; /* Grey text */
    flex: 1; /* Share space */
    border-right: 1px solid #e0e0e0; /* Add border between steps */
}

/* Remove border from the last step */
.step:last-child {
    border-right: none;
}

.step.active-step {
    background-color: #e9ecef; /* Slightly darker grey for active */
    color: #343a40; /* Darker text */
}

/* Form Section General Styles */
.form-section {
    background-color: white;
    border: 1px solid #e0e0e0;
    border-radius: 8px;
}

.section-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    background-color: #592f96; /* Purple header */
    color: white;
    padding: 10px 15px; /* Reduced padding */
    border-top-left-radius: 8px; /* Match parent */
    border-top-right-radius: 8px;
    cursor: pointer;
}

.section-header h2 {
    margin: 0;
    font-size: 1.1em; /* Slightly smaller */
    font-weight: 500;
    display: flex;
    align-items: center;
    gap: 8px; /* Reduced gap */
}

/* --- Deliveries Page Styles --- */

.deliveries-container {
    max-width: 900px; /* Adjust width as needed */
    margin: 105px auto 20px; /* Top margin for fixed header */
    padding: 20px;
    display: flex;
    flex-direction: column;
    gap: 20px; /* Reduced gap */
    background-color: #fff; /* <<< Set page background to white */
}

.deliveries-container h1 {
    font-size: 1.8em; /* Slightly smaller H1 */
    font-weight: 600;
    margin-bottom: 10px; /* Add some space below title */
    text-align: left; /* <<< Left align title */
    padding-left: 5px; /* Small padding to align with content */
    width: 100%;
}

/* Specific icon size adjustments */
.deliveries-container .section-header h2 i.fa-arrow-alt-circle-up {
    font-size: 1.3em; /* Adjust specific icon size */
}

.deliveries-container .toggle-button {
    background: none;
    border: none;
    color: white;
    font-size: 1.1em; /* Adjusted size for chevron */
    cursor: pointer;
    padding: 5px;
    line-height: 1; /* Keep line height 1 for icon centering */
}

.deliveries-container .section-content {
    padding: 20px 25px; /* Adjusted padding */
    display: flex;
    flex-direction: column;
    gap: 18px; /* Slightly reduced gap */
}

/* Pickup Section Specifics */
.deliveries-container .radio-group.horizontal {
    display: flex;
    gap: 30px; /* Increased gap */
    align-items: center;
    padding-bottom: 5px; /* Add small space below */
}

.deliveries-container .radio-group.horizontal legend {
    margin-right: 15px;
    margin-bottom: 0; /* Override default */
    padding-bottom: 0; /* Align baseline with radio buttons */
}

.deliveries-container .radio-group legend {
    font-weight: 600;
    margin-bottom: 8px;
    font-size: 1em;
    color: #333;
}

.deliveries-container .required {
    color: #dc3545; /* Red */
    margin-left: 2px;
}

.deliveries-container .radio-group label {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 0.95em;
    cursor: pointer;
}

.deliveries-container .form-row {
    display: flex;
    gap: 16px; /* Horizontal gap within rows */
    width: 100%;
}

/* Specific style for the saved addresses button */
.deliveries-container .saved-addresses-button.action-button.secondary-action {
    background-color: #fff !important; /* Override default action button */
    color: #592f96 !important;
    border: 1px solid #592f96 !important;
    flex-shrink: 0;
    margin-bottom: 0;
    height: 40px;
    padding: 0 15px; /* Adjust padding */
    gap: 8px; /* Space between icon and text */
}

.deliveries-container .saved-addresses-button i {
    font-size: 0.9em; /* Adjust icon size */
}

.deliveries-container .saved-addresses-button:hover {
    background-color: #f8f0ff !important; /* Light purple background on hover */
    border-color: #592f96 !important;
}

.deliveries-container .form-group.unit-suite {
    max-width: 120px; /* Slightly smaller width */
}

.deliveries-container .pickup-section h3 {
    font-size: 1.1em;
    margin-bottom: 0px; /* Reduced margin */
    font-weight: 500;
    display: flex;
    align-items: center;
    gap: 8px;
    color: #333;
}

.deliveries-container .pickup-section h3 i {
    color: #6c757d;
    font-size: 1.1em; /* Match text size */
}

.deliveries-container .pickup-hours-section {
    margin-top: 5px; /* Add a bit of space above */
}

.deliveries-container .pickup-hours-section .pickup-hours-label {
    font-weight: 600;
    font-size: 1em;
    color: #333;
    display: block; /* Make it block */
    margin-bottom: 5px;
}

.deliveries-container .hours-grid-header {
    display: grid;
    grid-template-columns: 90px 1fr 1fr minmax(90px, auto); /* Adjusted columns */
    gap: 5px 15px; /* Reduced Row gap */
    margin-bottom: 8px; 
    font-size: 0.8em; 
    color: #555;
    font-weight: 500;
    /* padding-left: 95px; */ /* <<< Remove problematic padding */
    /* Align items to the start of their cells */
    align-items: start;
}

/* Remove specific header alignment overrides */
/*
.deliveries-container .hours-grid-header span:nth-child(1) {
    grid-column: 2 / 3; 
}
.deliveries-container .hours-grid-header span:nth-child(2) {
    grid-column: 3 / 4;
}
.deliveries-container .hours-grid-header span:nth-child(3) {
    grid-column: 4 / 5;
    text-align: left;
    padding-left: 5px;
}
*/

.deliveries-container .hours-grid {
    display: grid;
    grid-template-columns: 90px 1fr 1fr minmax(90px, auto); /* Adjusted columns */
    gap: 10px 15px; /* Row gap, Column gap */
    align-items: center;
}

.deliveries-container .hours-grid label:not(.apply-all-label) {
    font-weight: normal; /* Lighter font weight */
    font-size: 0.9em; /* Slightly smaller */
    text-align: left; /* Left align days */
    padding-right: 0; /* Remove right padding */
    justify-self: start; /* Align label to the start of the grid cell */
}

.deliveries-container .apply-all-label {
    grid-column: 4 / 5; /* Place in the 4th column */
    grid-row: 2 / 3;    /* Place in the 2nd row (Monday) */
    font-size: 0.85em; /* Smaller text */
    display: flex;
    align-items: center;
    gap: 5px;
    cursor: pointer;
    white-space: nowrap;
    padding-left: 5px; /* Align checkbox slightly */
    justify-self: start; /* Align to start of cell */
}

.deliveries-container .apply-all-label input[type="checkbox"] {
    width: 16px; /* Adjust checkbox size */
    height: 16px;
    accent-color: #592f96;
}

.deliveries-container .description {
    font-size: 0.9em;
    color: #6c757d;
    margin-top: 0;
    margin-bottom: 10px; /* Reduced margin */
}

.deliveries-container .form-group.full-width .description {
    margin-bottom: 5px; /* Space before textarea */
}

.deliveries-container .form-group textarea {
    min-height: 80px;
}

/* Ensure horizontal radio buttons have correct styles */
.deliveries-container .radio-group.horizontal input[type="radio"] {
    width: 18px;
    height: 18px;
    accent-color: #592f96;
    margin: 0; /* Remove default margins */
}

/* Error Banner - Restore styles */
.error-banner {
    background-color: #f8d7da !important; /* Light red */
    color: #721c24 !important; /* Dark red */
    border: 1px solid #f5c6cb !important; /* Red border */
    border-radius: 8px;
    padding: 15px 20px;
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 0.95em;
}

.error-banner i {
    font-size: 1.2em;
}

.error-banner a {
    color: #721c24; /* Dark red link */
    font-weight: bold;
    text-decoration: underline;
}

/* Pickup Section Specifics */
/* Address Type Radios - ensure horizontal and no border */
.deliveries-container .pickup-section fieldset.radio-group.horizontal {
    display: flex;
    flex-direction: row; /* <<< Explicitly set row direction */
    gap: 30px;
    align-items: center;
    padding-bottom: 5px;
    border: none;
    padding: 0;
    margin: 0;
}

.deliveries-container .pickup-section .radio-group.horizontal legend {
    margin-right: 15px;
    margin-bottom: 0;
    cursor: pointer;
    font-weight: 600; /* Ensure legend is bold */
}

/* Apply same bold style to street/unit labels */
.deliveries-container .pickup-section .form-group > label {
    margin-bottom: 6px;
    font-size: 0.9em;
    color: #555;
    font-weight: 600; /* <<< Make labels bold */
}

.deliveries-container .pickup-section .form-row {
    display: flex;
    gap: 16px;
    width: 100%;
}

/* Saved Addresses Button - Manual top margin for alignment */
.deliveries-container .pickup-section .saved-addresses-button.action-button {
    background-color: #592f96 !important; /* Purple */
    color: #fff !important; /* White */
    border: 1px solid #592f96 !important;
    flex-shrink: 0;
    margin-bottom: 0;
    height: 40px;
    padding: 0 15px;
    gap: 8px;
    margin-top: 24px; /* <<< Add margin-top (~label height + label margin) */
}

.deliveries-container .pickup-section .saved-addresses-button i {
    font-size: 0.9em;
}

.deliveries-container .pickup-section .saved-addresses-button:hover {
    background-color: #4a257c !important; /* Darker purple */
    border-color: #4a257c !important;
}

.deliveries-container .pickup-section .form-group.unit-suite {
    cursor: pointer;
}

/* Add background to pickup section content */
.deliveries-container .pickup-section .section-content {
    background-color: #e2e2e250; /* <<< Add light grey background */
}

.deliveries-container .hours-grid label:not(.apply-all-label) {
    font-weight: normal; /* Lighter font weight */
    font-size: 0.9em; /* Slightly smaller */
    text-align: left; /* Left align days */
    padding-right: 0; /* Remove right padding */
    justify-self: start; /* Align label to the start of the grid cell */
}

/* Reduce space before Pickup Access Instructions */
.deliveries-container .pickup-section .section-divider {
    border: none;
    border-top: 1px solid #eee;
    margin: 15px 0 10px 0; /* Adjusted margins */
}

.deliveries-container .pickup-section h3 {
    font-size: 1.1em;
    margin-top: 0; /* Reduce top margin */
    margin-bottom: 5px; /* Add small space below */
    font-weight: 500;
    display: flex;
    align-items: center;
    gap: 8px;
    color: #333;
    background-color: #e2e2e240; /* <<< Add light grey background */
}

/* Restore Correct Select Dropdown Styles */
.deliveries-container .hours-grid select {
    width: 100%; /* Make select fill grid cell */
    max-width: 140px; /* <<< Shorter width */
    height: 45px; /* <<< Taller height */
    padding: 5px 30px 5px 10px; /* Adjust padding for text and arrow */
    border: 1px solid #ccc;
    border-radius: 6px;
    font-size: 0.9em; /* Adjust font size if needed */
    background-color: white;
    appearance: none; /* Remove default arrow */
    -webkit-appearance: none;
    -moz-appearance: none;
    background-image: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22%236c757d%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E'); /* Simple grey SVG arrow */
    background-repeat: no-repeat;
    background-position: right 10px center;
    background-size: .7em;
    cursor: pointer;
}

.deliveries-container .hours-grid select:focus {
    border-color: #592f96;
    outline: none;
    box-shadow: 0 0 0 2px rgba(89, 47, 150, 0.2);
}

.profile-form fieldset.checkbox-group {
    border: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.profile-form fieldset.checkbox-group legend {
    font-weight: 500;
    margin-bottom: 8px;
    font-size: 0.9em;
    color: #333;
    padding: 0;
}

.profile-form .checkbox-label {
    display: flex;
    align-items: center;
    font-size: 0.95em;
    color: #444;
    gap: 8px;
    cursor: pointer;
}

.profile-form input[type="checkbox"] {
    width: 18px;
    height: 18px;
    accent-color: #592f96;
    margin: 0;
    cursor: pointer;
}

/* Company Section Styles */
.company-section {
    width: 100%;
    background: #fff;
    border: 1px solid #e0e0e0;
    border-radius: 8px;
    padding: 24px;
    box-sizing: border-box;
    margin-bottom: 32px;
}

.company-section h2 {
    margin-top: 0;
    margin-bottom: 16px;
    font-size: 1.3em;
    font-weight: 500;
    border-bottom: 1px solid #eee;
    padding-bottom: 8px;
}

.company-form {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.company-form .form-input {
    height: 40px;
    border: 1px solid #ccc;
    border-radius: 6px;
    font-size: 0.95em;
    padding: 0 12px;
    background: #fff;
    transition: border-color 0.2s, box-shadow 0.2s;
    box-sizing: border-box;
    width: 100%;
}

.company-form .form-input:focus {
    border-color: #592f96;
    outline: none;
    box-shadow: 0 0 0 2px rgba(89, 47, 150, 0.2);
}

.contact-preferences-section {
    margin-top: 20px;
}

.contact-preferences-section h3 {
    margin-bottom: 12px;
    font-size: 1.1em;
    font-weight: 500;
    color: #333;
}

.preferences-grid {
    display: grid;
    grid-template-columns: 1fr auto auto auto;
    gap: 8px 20px;
    align-items: center;
}

.profile-preferences.preferences-grid {
    grid-template-columns: 150px 150px 150px;
    justify-content: start;
    gap: 8px 24px;
}

.preference-info {
    font-size: 0.75em;
    color: #6c757d;
    margin-left: 4px;
    cursor: help;
    opacity: 0.7;
    transition: opacity 0.2s;
    position: relative;
    display: inline-block;
}

.preference-info:hover {
    opacity: 1;
    color: #592f96;
}

.preference-info::after {
    content: attr(data-tooltip);
    position: absolute;
    bottom: 130%;
    left: 50%;
    transform: translateX(-50%);
    background-color: white;
    color: #333;
    padding: 8px 12px;
    border: 1px solid #ccc;
    border-radius: 4px;
    font-size: 0.85em;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    font-weight: normal;
    white-space: normal;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.1s, visibility 0.1s;
    pointer-events: none;
    z-index: 1000;
    width: 200px;
    text-align: left;
    box-shadow: 0 2px 4px rgba(0,0,0,0.1);
    line-height: 1.3;
}

.preference-info:hover::after {
    opacity: 1;
    visibility: visible;
}

.grid-header {
    display: contents;
    font-weight: 600;
    font-size: 0.9em;
    color: #555;
}

.user-header {
    padding-bottom: 8px;
    border-bottom: 1px solid #dee2e6;
}

.preference-header {
    text-align: center;
    padding-bottom: 8px;
    border-bottom: 1px solid #dee2e6;
}

.grid-row {
    display: contents;
}

.user-name {
    font-size: 0.95em;
    color: #333;
    padding: 8px 0;
}

.preference-dropdown {
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 8px 0;
}

.preference-dropdown select {
    width: 100px;
    height: 35px;
    padding: 5px 25px 5px 8px;
    border: 1px solid #ccc;
    border-radius: 4px;
    font-size: 0.85em;
    background-color: white;
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    background-image: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22%236c757d%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E');
    background-repeat: no-repeat;
    background-position: right 8px center;
    background-size: 0.6em;
    cursor: pointer;
}

.preference-dropdown select:focus {
    border-color: #592f96;
    outline: none;
    box-shadow: 0 0 0 2px rgba(89, 47, 150, 0.2);
}

/* Profile page contact preferences - simple styling without card/border */
.profile-form .contact-preferences {
    display: flex;
    flex-direction: column;
    gap: 16px;
    margin-top: 16px;
    margin-bottom: 20px;
}

.profile-form .contact-preferences .form-group {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 12px;
}

.profile-form .contact-preferences .form-group label {
    font-size: 0.95em;
    font-weight: 500;
    color: #444;
    min-width: 140px;
    flex-shrink: 0;
}

.profile-form .contact-preferences .form-group select {
    height: 40px;
    border: 1px solid #ccc;
    border-radius: 6px;
    font-size: 0.95em;
    padding: 0 35px 0 12px;
    background: #fff;
    transition: border-color 0.2s, box-shadow 0.2s;
    box-sizing: border-box;
    width: 100%;
    max-width: 200px;
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    background-image: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22%236c757d%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E');
    background-repeat: no-repeat;
    background-position: right 10px center;
    background-size: 0.7em;
    cursor: pointer;
}

.profile-form .contact-preferences .form-group select:focus {
    border-color: #592f96;
    outline: none;
    box-shadow: 0 0 0 2px rgba(89, 47, 150, 0.2);
}

.profile-form h3 {
    margin-top: 20px;
    margin-bottom: 8px;
    font-size: 1.1em;
    font-weight: 500;
    color: #333;
}

.save-company-button {
    background-color: #592f96;
    color: #fff;
    border: none;
}
