body {
            font-family: 'Arial', '微軟正黑體', 'Microsoft JhengHei', sans-serif;
            background-color: #f0f8ff;
            color: #333;
            display: flex;
            flex-direction: column;
            min-height: 100vh;
            margin: 0;
        }
        #mainPageContent {
            display: none;
            flex-direction: column;
            min-height: 100vh;
        }
        .header {
            background-color: #007bff;
            color: white;
            padding: 1rem 0;
            text-align: center;
            box-shadow: 0 2px 4px rgba(0,0,0,0.1);
        }
        .header h1 {
            margin: 0;
            font-size: 2rem;
        }
        .container {
            max-width: 700px;
            margin-top: 2rem;
            margin-bottom: 2rem;
            background-color: #ffffff;
            padding: 2rem;
            border-radius: 8px;
            box-shadow: 0 0 15px rgba(0, 0, 0, 0.1);
        }

        .form-group > label {
            font-weight: bold;
            color: #0056b3;
            display: block; 
            margin-bottom: .5rem; 
        }

        .btn-primary {
            background-color: #28a745;
            border-color: #28a745;
            transition: background-color 0.3s ease;
        }
        .btn-primary:hover {
            background-color: #218838;
            border-color: #1e7e34;
        }
        .captcha-container {
            display: flex;
            align-items: center;
            gap: 10px;
            margin-bottom: 1rem;
        }
        #captcha-text {
            font-size: 1.5rem;
            font-weight: bold;
            padding: 10px 15px;
            background-color: #e9ecef;
            border-radius: 5px;
            user-select: none;
            text-decoration: line-through;
            color: #495057;
            letter-spacing: 2px;
        }
        #reload-captcha {
            cursor: pointer;
            font-size: 1.2rem;
            color: #007bff;
        }
        #reload-captcha:hover {
            color: #0056b3;
        }
        .footer {
            background-color: #343a40;
            color: white;
            text-align: center;
            padding: 1rem 0;
            margin-top: auto;
        }
        .footer p {
            margin: 0;
        }
        .form-check-input.is-invalid ~ .form-check-label {
            color: #dc3545;
        }

        #name,
        #sex,
        #phone,
        #contactTime {
            width: 50% !important;
        }

        #captchaInput {
            width: 50% !important;
        }
		#loginUsername,
        #loginPassword {
            width: 100% !important;
        }

        .form-control.is-invalid:focus,
        .custom-select.is-invalid:focus,
        .form-check-input.is-invalid:focus {
            border-color: #dc3545;
            box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);
        }
        
        .form-group .invalid-feedback {
            margin-top: 0.25rem;
        }
        #loginModal .modal-header {
            background-color: #007bff;
            color: white;
        }
        #loginModal .modal-title {
            font-weight: bold;
        }

        /* --- Custom Multi-Line Dropdown Styles --- */
        .custom-select-wrapper {
            position: relative;
            width: 100%;
            user-select: none;
        }
        .custom-select-display {
            background-color: #fff;
            border: 1px solid #ced4da;
            border-radius: .25rem;
            padding: .375rem .75rem;
            line-height: 1.5; 
            color: #495057;
            cursor: pointer;
            display: flex;
            justify-content: space-between;
            align-items: center;
            min-height: calc(1.5em + .75rem + 2px); /* Will expand if content is taller */
        }
        .custom-select-display.is-invalid {
            border-color: #dc3545;
            box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);
        }
        .custom-select-display-text {
            white-space: normal; 
            word-break: break-word;
            padding-right: 10px;
            /* line-height for display text can be inherited or set if specific spacing for <br> is needed */
            /* For now, relying on parent's line-height and natural <br> behavior */
        }
        .custom-select-arrow {
            font-size: 0.8em;
            color: #333;
        }
        .custom-select-options {
            display: none;
            position: absolute;
            top: 100%; left: 0; right: 0;
            background-color: #fff;
            border: 1px solid #ced4da; border-top: none;
            border-radius: 0 0 .25rem .25rem;
            max-height: 220px; 
            overflow-y: auto;
            z-index: 1000; list-style: none;
            padding: 0; margin: 0;
        }
        .custom-select-options li {
            padding: .6rem .75rem; 
            cursor: pointer;
            white-space: normal; 
            word-break: break-word;
            line-height: 1.6; 
        }
        .custom-select-options li:hover,
        .custom-select-options li.selected-option-highlight {
            background-color: #007bff; color: white;
        }
        /* --- End Custom Dropdown Styles --- */

        @media (max-width: 576px) {
            .header h1 { font-size: 1.5rem; }
            .container { padding: 1.5rem; }
            .captcha-container { flex-direction: column; align-items: flex-start; }
            #captcha-text { margin-bottom: 10px; }

            #name,
            #sex,
            #phone,
            #contactTime,
            #captchaInput,
            #loginUsername,
            #loginPassword {
                width: 100% !important;
            }
            .d-flex.justify-content-between.align-items-center {
                flex-direction: column; 
            }
            .d-flex.justify-content-between.align-items-center > .btn {
                width: 100%; 
                margin-top: 0.5rem; 
            }
            .d-flex.justify-content-between.align-items-center > a {
                /*--align-self: flex-start; --*/
				align-self: center;
            }
        }