:root {

    --gold: #c9a227;

    --dark: #1f1f1f;

    --light: #ffffff;

    --grey: #f4f4f4;

}



* {

    box-sizing: border-box;

}



body {

    margin: 0;

    font-family: Arial, sans-serif;

    background: var(--grey);

    color: var(--dark);

}



.container {

    width: min(1100px, 92%);

    margin: 0 auto;

}



.site-header {

    background: var(--dark);

    color: var(--light);

    padding: 1rem 0;

}







.site-header .container {

    display: flex;

    justify-content: space-between;

    align-items: center;

}



.site-header h1 {

    margin: 0;

    font-size: 1.3rem;

}



.login-link {

    color: var(--gold);

    text-decoration: none;

    font-weight: bold;

}



.hero {

    padding: 5rem 0;

}



.hero h2 {

    font-size: clamp(2rem, 5vw, 4rem);

    margin-bottom: 1rem;

}



.status-card {

    margin-top: 2rem;

    padding: 1.5rem;

    background: white;

    border-left: 6px solid var(--gold);

    border-radius: 8px;

}



.auth-page {

    min-height: 100vh;

    display: grid;

    place-items: center;

    background: #f4f4f4;

    padding: 1rem;

}



.auth-card {

    width: min(420px, 100%);

    background: white;

    padding: 2rem;

    border-radius: 12px;

    border-top: 6px solid var(--gold);

    box-shadow: 0 8px 30px rgba(0,0,0,.08);

}



.auth-card h1 {

    margin: 0 0 .5rem;

}



.auth-card h2 {

    margin-top: 0;

    color: #666;

}



.auth-card label {

    display: block;

    margin-top: 1rem;

    font-weight: bold;

}



.auth-card input {

    width: 100%;

    padding: .8rem;

    margin-top: .35rem;

    border: 1px solid #ccc;

    border-radius: 6px;

}



.auth-card button {

    width: 100%;

    margin-top: 1.5rem;

    padding: .9rem;

    background: var(--gold);

    border: none;

    border-radius: 6px;

    font-weight: bold;

    cursor: pointer;

}



.alert-error {

    background: #ffe5e5;

    color: #a40000;

    padding: .8rem;

    border-radius: 6px;

    margin: 1rem 0;

}



.dashboard-header {

    display: flex;

    align-items: center;

    justify-content: space-between;

    gap: 1rem;

}



.dashboard-header h1 {

    margin: 0;

}



.dashboard-header span {

    color: var(--gold);

    font-size: 0.9rem;

}



.dashboard-page {

    padding: 2rem 0 4rem;

}



.dashboard-welcome {

    margin-bottom: 2rem;

}



.dashboard-welcome h2 {

    margin-bottom: 0.5rem;

}



.dashboard-grid {

    display: grid;

    grid-template-columns:

        repeat(auto-fit, minmax(240px, 1fr));

    gap: 1.25rem;

}



.dashboard-card {

    background: white;

    padding: 1.5rem;

    border-radius: 10px;

    border-top: 4px solid var(--gold);

    box-shadow: 0 5px 20px rgba(0, 0, 0, 0.07);

}



.dashboard-card h3 {

    margin-top: 0;

}



.dashboard-card-count {

    margin: 0.5rem 0 1rem;

    font-size: 1.1rem;

    font-weight: 700;

}



.details-list {

    margin: 0;

}



.details-list div {

    padding: 0.7rem 0;

    border-bottom: 1px solid #e7e7e7;

}



.details-list div:last-child {

    border-bottom: 0;

}



.details-list dt {

    color: #666;

    font-size: 0.85rem;

    font-weight: bold;

}



.details-list dd {

    margin: 0.25rem 0 0;

}



.badge-list {

    display: flex;

    flex-wrap: wrap;

    gap: 0.5rem;

}



.role-badge {

    display: inline-block;

    padding: 0.45rem 0.7rem;

    background: #f5ecd0;

    border: 1px solid var(--gold);

    border-radius: 999px;

    font-size: 0.85rem;

}



.dashboard-button,  

.logout-button {

    display: inline-block;

	padding: 0.7rem 1rem;

    background: var(--gold);

    color: var(--dark);

    border: 0;

    border-radius: 6px;

    text-decoration: none;

    font-weight: bold;

    cursor: pointer;

}







.logout-button, .admin-button {

    font-size: 0.9rem;

}



.admin-navigation {

    display: flex;

    flex-wrap: wrap;

    gap: 0.5rem;

    margin-bottom: 2rem;

    padding: 0.75rem;

    background: white;

    border-radius: 8px;

}



.admin-navigation a {

    padding: 0.65rem 0.9rem;

    color: var(--dark);

    text-decoration: none;

    border-radius: 6px;

    font-weight: bold;

}



.admin-navigation a:hover,

.admin-navigation a.active {

    background: var(--gold);

}



.admin-header-actions {

    display: flex;

    align-items: center;

    flex-wrap: wrap;

    gap: 0.75rem;

}



.admin-header-actions form {

    margin: 0;

}



@media (max-width: 700px) {

    .admin-header-actions {

        justify-content: flex-start;

        width: 100%;

    }

}



.admin-table-wrapper {

    overflow-x: auto;

    margin-top: 1.5rem;

    background: white;

    border-radius: 10px;

    box-shadow: 0 5px 20px rgba(0, 0, 0, 0.07);

}



.admin-table {

    width: 100%;

    min-width: 850px;

    border-collapse: collapse;

}



.admin-table th,

.admin-table td {

    padding: 0.9rem;

    text-align: left;

    vertical-align: top;

    border-bottom: 1px solid #e8e8e8;

}



.admin-table th {

    background: var(--dark);

    color: white;

}



.admin-table tbody tr:hover {

    background: #faf7ed;

}



/* 

 * MEMBER'S VIEW NAVIGATION - Navigation that members see when they login

 */



.member-header-actions {

    display: flex;

    align-items: center;

    gap: 0.75rem;

}



.member-header-actions form {

    margin: 0;

}



.message-icon-link {

    display: inline-flex;

    align-items: center;

	position: relative;

    justify-content: center;

    width: 2.75rem;

    height: 2.75rem;

    color: #175c36;

    background: #ffffff;

    border: 1px solid #175c36;

    border-radius: 50%;

    text-decoration: none;

    transition:

        background-color 0.2s ease,

        color 0.2s ease;

}



.message-icon-link:hover,

.message-icon-link:focus {

    color: #ffffff;

    background: #175c36;

}



.message-icon-link:focus-visible {

    outline: 3px solid rgba(23, 92, 54, 0.3);

    outline-offset: 2px;

}



.message-notification-badge {

    position: absolute;

    top: -0.45rem;

    right: -0.45rem;



    display: inline-flex;

    align-items: center;

    justify-content: center;



    min-width: 1.35rem;

    height: 1.35rem;

    padding: 0 0.3rem;



    color: #ffffff;

    background: #d92d20;

    border: 2px solid #ffffff;

    border-radius: 999px;



    font-size: 0.7rem;

    font-weight: 700;

    line-height: 1;

    box-sizing: border-box;

}



.table-action {

    display: inline-block;

    padding: 0.45rem 0.65rem;

    background: var(--gold);

    color: var(--dark);

    border-radius: 5px;

    text-decoration: none;

    font-weight: bold;

    white-space: nowrap;

}



/*



.member-site-header {

    display: flex;

    align-items: center;

    justify-content: space-between;

    gap: 1.5rem;

}



.member-site-header h1 {

    margin-top: 0;

}



.member-site-header span {

    color: var(--gold);

    font-size: 0.9rem;

}



@media (max-width: 700px) {

    .member-site-header {

        align-items: flex-start;

        flex-direction: column;

    }



    .member-header-actions {

        align-self: stretch;

        justify-content: flex-start;

    }

}





 * END OF MEMBER VIEW NAVIGATION

 */





.status-badge,

.system-label {

    display: inline-block;

    padding: 0.25rem 0.5rem;

    background: #eeeeee;

    border-radius: 999px;

    font-size: 0.8rem;

}



.system-label {

    margin-left: 0.35rem;

    background: #f5ecd0;

}



.alert-success {

    margin: 1rem 0;

    padding: 0.9rem;

    background: #e5f7e9;

    color: #17652a;

    border: 1px solid #9dd8aa;

    border-radius: 6px;

}



.admin-form-container {

    max-width: 900px;

}



.admin-form {

    padding: 1.5rem;

    background: white;

    border-radius: 10px;

    box-shadow: 0 5px 20px rgba(0, 0, 0, 0.07);

}



.admin-form label:not(.permission-option) {

    display: block;

    margin-top: 1rem;

    font-weight: bold;

}



.admin-form input[type="text"],

.admin-form textarea {

    width: 100%;

    margin-top: 0.35rem;

    padding: 0.8rem;

    border: 1px solid #cccccc;

    border-radius: 6px;

    font: inherit;

}



.admin-form fieldset {

    margin: 1.5rem 0;

    padding: 1rem;

    border: 1px solid #dddddd;

    border-radius: 8px;

}



.admin-form legend {

    padding: 0 0.5rem;

    font-weight: bold;

}



.permission-grid {

    display: grid;

    grid-template-columns:

        repeat(auto-fit, minmax(240px, 1fr));

    gap: 0.8rem;

}



.permission-option {

    display: flex;

    align-items: flex-start;

    gap: 0.7rem;

    padding: 0.9rem;

    border: 1px solid #dddddd;

    border-radius: 7px;

    cursor: pointer;

}



.permission-option:hover {

    border-color: var(--gold);

    background: #faf7ed;

}



.permission-option input {

    margin-top: 0.2rem;

}



.permission-option span {

    display: block;

}



.permission-option small,

.permission-option code {

    display: block;

    margin-top: 0.3rem;

}



.admin-create-card {

    margin-bottom: 1.5rem;

}



.admin-create-card .admin-form {

    padding: 0;

    box-shadow: none;

}



.table-actions {

    display: flex;

    flex-wrap: wrap;

    align-items: center;

    gap: 0.5rem;

}



.inline-form {

    display: inline;

    margin: 0;

}



.match-result-form {

    display: flex;

    flex-wrap: wrap;

    align-items: center;

    gap: 0.4rem;

    margin: 0;

}



.match-result-form input[type="number"] {

    width: 4.5rem;

}



.danger-button {

    display: inline-block;

    padding: 0.45rem 0.65rem;

    border: 0;

    border-radius: 5px;

    background: #b42318;

    color: white;

    font: inherit;

    font-weight: bold;

    cursor: pointer;

}



.danger-button:hover {

    background: #8f1c13;

}



.danger-button:disabled {

    background: #aaaaaa;

    cursor: not-allowed;

    opacity: 0.7;

}



.protected-role-label {

    display: inline-block;

    padding: 0.35rem 0.55rem;

    border-radius: 5px;

    background: #eeeeee;

    color: #555555;

    font-size: 0.8rem;

    font-weight: bold;

}



.page-heading-row {

    display: flex;

    align-items: flex-start;

    justify-content: space-between;

    gap: 1rem;

    margin-bottom: 1rem;

}



.form-grid {

    display: grid;

    grid-template-columns:

        repeat(auto-fit, minmax(240px, 1fr));

    gap: 1rem;

}



.form-grid-full {

    grid-column: 1 / -1;

}



.admin-form input[type="email"],

.admin-form input[type="tel"],

.admin-form input[type="date"],

.admin-form input[type="time"],

.admin-form input[type="number"],

.admin-form select {

    width: 100%;

    margin-top: 0.35rem;

    padding: 0.8rem;

    border: 1px solid #cccccc;

    border-radius: 6px;

    background: white;

    font: inherit;

}



.temporary-password-box {

    margin: 1rem 0;

    padding: 1.25rem;

    background: #fff8dd;

    border: 2px solid var(--gold);

    border-radius: 8px;

}



.temporary-password-box h3 {

    margin-top: 0;

}



.temporary-password-box code {

    display: inline-block;

    padding: 0.35rem 0.5rem;

    background: white;

    border: 1px solid #d8c474;

    border-radius: 4px;

    font-size: 1rem;

}



@media (max-width: 650px) {

    .page-heading-row {

        flex-direction: column;

    }

}



.permanent-delete-warning {

    max-width: 800px;

    padding: 1.5rem;

    background: #ffffff;

    border: 2px solid #b42318;

    border-radius: 8px;

}



.permanent-delete-warning h2 {

    margin-top: 0;

    color: #b42318;

}



.delete-warning-heading {

    font-size: 1.2rem;

    font-weight: bold;

    color: #b42318;

}



.member-delete-summary {

    margin: 1rem 0;

    padding: 1rem;

    background: #f5f5f5;

    border-radius: 6px;

}



.member-delete-summary p {

    margin: 0.4rem 0;

}



.delete-warning-list {

    margin-bottom: 1.5rem;

}



.delete-warning-list li {

    margin-bottom: 0.75rem;

}



.delete-warning-actions {

    display: flex;

    flex-wrap: wrap;

    gap: 1rem;

    align-items: center;

    margin: 1.5rem 0;

}



.danger-button {

    display: inline-block;

}



.delete-blocker {

    font-weight: bold;

    color: #b42318;

}



.delete-cleanup {

    font-weight: bold;

    color: #176b3a;

}



.permanent-delete-form {

    width: 100%;

    margin-top: 1.5rem;

    padding: 1.25rem;

    background: #fff5f5;

    border: 2px solid #b42318;

    border-radius: 8px;

}



.permanent-delete-form .form-group {

    margin-bottom: 1rem;

}



.permanent-delete-form input[type="text"] {

    width: 100%;

    max-width: 300px;

    margin-top: 0.5rem;

    padding: 0.8rem;

    border: 2px solid #b42318;

    border-radius: 6px;

    font: inherit;

}



.delete-confirmation-checkbox {

    display: flex;

    align-items: flex-start;

    gap: 0.75rem;

    margin: 1rem 0;

    font-weight: bold;

}



.delete-confirmation-checkbox input {

    margin-top: 0.25rem;

}



.membership-application-page {

    padding: 2rem 0;

    background: #f5f5f5;

    min-height: calc(100vh - 90px);

}



.membership-application-card {

    max-width: 850px;

    margin: 0 auto;

    padding: 1.5rem;

    background: #ffffff;

    border-radius: 8px;

    box-shadow: 0 4px 16px rgb(0 0 0 / 8%);

}



.membership-application-card h2 {

    margin-top: 0;

}



.application-notice {

    margin: 1rem 0;

    padding: 1rem;

    background: #fff8dd;

    border-left: 4px solid #b58b00;

    border-radius: 4px;

}



.application-notice p {

    margin: 0.35rem 0;

}



.application-status-submitted {

    background: #fff3cd;

    color: #664d03;

}



.application-status-under_review {

    background: #cfe2ff;

    color: #084298;

}



.application-status-approved {

    background: #d1e7dd;

    color: #0f5132;

}



.application-status-rejected {

    background: #f8d7da;

    color: #842029;

}



.application-status-activated {

    background: #d3d3d3;

    color: #333333;

}



.application-review-card {

    padding: 1.5rem;

    background: #ffffff;

    border-radius: 8px;

    box-shadow: 0 4px 16px rgb(0 0 0 / 8%);

}



.application-review-heading {

    display: flex;

    align-items: flex-start;

    justify-content: space-between;

    gap: 1rem;

    margin-bottom: 1.5rem;

}



.application-review-heading h3 {

    margin-top: 0;

    margin-bottom: 0.35rem;

}



.application-review-heading p {

    margin: 0;

}



.application-detail-grid {

    display: grid;

    grid-template-columns:

        repeat(auto-fit, minmax(220px, 1fr));

    gap: 1rem;

    margin-bottom: 1.5rem;

}



.application-detail-item {

    padding: 1rem;

    background: #f5f5f5;

    border-radius: 6px;

}



.application-detail-item span {

    display: block;

    margin-bottom: 0.35rem;

    font-size: 0.85rem;

    color: #555555;

}



.application-address {

    margin-bottom: 1.5rem;

    padding: 1rem;

    background: #f5f5f5;

    border-radius: 6px;

    line-height: 1.6;

}



.application-notes-box {

    margin: 1.5rem 0;

    padding: 1rem;

    background: #fff8dd;

    border-left: 4px solid #b58b00;

    border-radius: 4px;

}



.application-notes-box h3 {

    margin-top: 0;

}



.application-review-actions {

    display: flex;

    flex-wrap: wrap;

    gap: 1rem;

    align-items: center;

    margin-top: 1.5rem;

}



@media (max-width: 650px) {

    .application-review-heading {

        flex-direction: column;

    }

}



.application-status-interview {

    background: #e2d9f3;

    color: #432874;

}



.review-action-form {

    width: 100%;

    margin-top: 1rem;

    padding: 1rem;

    background: #f5f5f5;

    border-radius: 8px;

}



.review-action-form textarea {

    width: 100%;

    margin-top: 0.5rem;

    padding: 0.8rem;

    border: 1px solid #cccccc;

    border-radius: 6px;

    font: inherit;

    resize: vertical;

}



.announcement-list {

    display: grid;

    gap: 1.25rem;

}



.announcement-card {

    padding: 1.25rem;

    background: #ffffff;

    border: 1px solid #d8ddd9;

    border-radius: 0.5rem;

}



.announcement-card-pinned {

    border-left: 0.35rem solid #175c36;

    background: #f4f8f5;

}



.announcement-header {

    display: flex;

    justify-content: space-between;

    align-items: flex-start;

    gap: 1rem;

    margin-bottom: 1rem;

}



.announcement-header h4 {

    margin: 0 0 0.5rem;

}



.announcement-header p {

    margin: 0;

    white-space: nowrap;

}



.announcement-content {

    line-height: 1.65;

}



.announcement-footer {

    margin-top: 1rem;

    padding-top: 0.75rem;

    border-top: 1px solid #d8ddd9;

}



@media (max-width: 700px) {

    .announcement-header {

        display: block;

    }



    .announcement-header p {

        margin-top: 0.75rem;

        white-space: normal;

    }

}



.table-responsive {

    width: 100%;

    max-width: 100%;

    overflow-x: auto;

    overflow-y: hidden;

    -webkit-overflow-scrolling: touch;

    border: 1px solid #d8ddd9;

    border-radius: 0.5rem;

}



.table-responsive .admin-table {

    width: 100%;

    min-width: 1100px;

    border-collapse: collapse;

}



.table-responsive .admin-table th,

.table-responsive .admin-table td {

    white-space: normal;

    vertical-align: top;

}



/*

 * Prevent grid or flex containers from forcing the card

 * beyond the width of the page.

 */

.dashboard-card {

    min-width: 0;

}



/*.admin-table th:first-child,

.admin-table td:first-child,

.admin-table th:nth-child(6),

.admin-table td:nth-child(6) {

    white-space: nowrap;

}*/



/*

* MEMBER NOTIFICATION PAGE

*

*/



.notification-list {

    display: grid;

    gap: 1rem;

}



.notification-card {

    display: flex;

    justify-content: space-between;

    align-items: center;

    gap: 1.5rem;

    padding: 1.25rem;

    background: #ffffff;

    border: 1px solid #d8ddd9;

    border-radius: 0.5rem;

}



.notification-card-unread {

    border-left: 0.35rem solid #d92d20;

    background: #fff8f7;

}



.notification-card-main {

    min-width: 0;

    flex: 1;

}



.notification-heading {

    display: flex;

    align-items: center;

    flex-wrap: wrap;

    gap: 0.75rem;

}



.notification-heading h3 {

    margin: 0;

}



.notification-card-actions {

    flex-shrink: 0;

}



@media (max-width: 700px) {

    .notification-card {

        display: block;

    }



    .notification-card-actions {

        margin-top: 1rem;

    }

}



/*

*

* EVENT BOOKING SYSTEM

*

*/



.resource-selection-grid {

    display: grid;

    gap: 0.75rem;

    margin-top: 1rem;

}



.resource-selection-option {

    display: flex;

    align-items: flex-start;

    gap: 0.75rem;

    padding: 1rem;

    background: #ffffff;

    border: 1px solid #d8ddd9;

    border-radius: 0.5rem;

    cursor: pointer;

}



.resource-selection-option input {

    margin-top: 0.25rem;

}



.resource-selection-option span {

    display: grid;

    gap: 0.25rem;

}



.resource-selection-option small {

    display: block;

}



.resource-selection-parent {

    font-weight: 600;

    border-left-width: 0.35rem;

}



.resource-selection-child {

    margin-left: 2rem;

}



@media (max-width: 700px) {

    .resource-selection-child {

        margin-left: 0.75rem;

    }

}



.hall-calendar-heading,

.hall-calendar-title {

    display: flex;

    align-items: center;

    justify-content: space-between;

    flex-wrap: wrap;

    gap: 1rem;

}



.hall-calendar-heading {

    margin-bottom: 1.25rem;

}



.hall-calendar-heading h2,

.hall-calendar-title h3 {

    margin-top: 0;

    margin-bottom: 0.35rem;

}



.hall-calendar-heading p {

    margin: 0;

}



.hall-calendar-navigation {

    display: flex;

    flex-wrap: wrap;

    gap: 0.6rem;

}



.hall-calendar-title {

    margin-bottom: 1rem;

}



.hall-calendar-legend {

    display: flex;

    flex-wrap: wrap;

    gap: 1rem;

    font-size: 0.9rem;

}



.hall-calendar-legend span {

    display: inline-flex;

    align-items: center;

    gap: 0.4rem;

}



.hall-calendar-key {

    display: inline-block;

    width: 0.9rem;

    height: 0.9rem;

    border-radius: 0.2rem;

}



.hall-calendar-key.available {

    background: #eef5f0;

    border: 1px solid #175c36;

}



.hall-calendar-key.unavailable {

    background: #f3dddd;

    border: 1px solid #a74747;

}



.hall-calendar {

    display: grid;

    grid-template-columns: repeat(7, minmax(0, 1fr));

    overflow: hidden;

    border: 1px solid #d8ddd9;

    border-radius: 0.5rem;

}



.hall-calendar-weekday {

    padding: 0.65rem 0.25rem;

    text-align: center;

    background: #175c36;

    color: #ffffff;

    font-size: 0.85rem;

    font-weight: 700;

}



.hall-calendar-day {

    min-height: 88px;

    padding: 0;

    background: #ffffff;

    border-right: 1px solid #d8ddd9;

    border-bottom: 1px solid #d8ddd9;

}



.hall-calendar-day:nth-child(7n) {

    border-right: 0;

}



.hall-calendar-day > span,

.hall-calendar-date-button {

    display: flex;

    width: 100%;

    min-height: 88px;

    padding: 0.65rem;

    flex-direction: column;

    align-items: flex-start;

    justify-content: space-between;

    box-sizing: border-box;

}



.hall-calendar-date-button {

    appearance: none;

    background: #eef5f0;

    border: 0;

    color: inherit;

    font: inherit;

    cursor: pointer;

}



.hall-calendar-date-button:hover,

.hall-calendar-date-button:focus {

    background: #dfeee3;

}



.hall-calendar-date-button:focus-visible {

    position: relative;

    z-index: 1;

    outline: 3px solid rgba(23, 92, 54, 0.35);

    outline-offset: -3px;

}



.hall-calendar-day strong {

    font-size: 1rem;

}



.hall-calendar-day small {

    font-size: 0.72rem;

}



.hall-calendar-unavailable > span {

    background: #f3dddd;

    color: #7b2424;

}



.hall-calendar-past > span {

    background: #f1f1f1;

    color: #777777;

}



.hall-calendar-empty {

    background: #f8f8f8;

}



.hall-calendar-privacy-note {

    margin: 1rem 0 0;

    font-size: 0.9rem;

}



@media (max-width: 650px) {

    .hall-calendar-weekday {

        font-size: 0.7rem;

    }



    .hall-calendar-day,

    .hall-calendar-day > span,

    .hall-calendar-date-button {

        min-height: 62px;

    }



    .hall-calendar-day > span,

    .hall-calendar-date-button {

        padding: 0.4rem;

    }



    .hall-calendar-day small {

        display: none;

    }

}



.hall-hire-honeypot {

    position: absolute;

    left: -10000px;

    width: 1px;

    height: 1px;

    overflow: hidden;

}



/*

 * MEMBERSHIP TYPES

 */



.table-description {

    max-width: 420px;

    margin: 0.5rem 0 0;

    font-size: 0.9rem;

}



.status-inactive {

    opacity: 0.7;

}



.membership-capabilities {

    display: grid;

    gap: 0.75rem;

    margin: 1.5rem 0;

    padding: 1.25rem;

    border: 1px solid #d8ddd9;

    border-radius: 0.5rem;

}



.membership-capabilities legend {

    padding: 0 0.5rem;

    font-weight: 700;

}



.checkbox-option {

    display: flex;

    align-items: center;

    gap: 0.65rem;

}



.checkbox-option input {

    width: auto;

    margin: 0;

}



.form-error {

    margin: 0.4rem 0 0;

    color: #b42318;

    font-weight: 600;

}



.form-actions {

    display: flex;

    align-items: center;

    flex-wrap: wrap;

    gap: 0.75rem;

    margin-top: 1.5rem;

}



/*

 MEMBERSHIP RENEWALS

 */



.renewal-year-form {

    display: flex;

    align-items: flex-end;

    flex-wrap: wrap;

    gap: 0.75rem;

    margin-bottom: 1.25rem;

}



.renewal-year-form .form-group {

    margin: 0;

}



.renewal-year-form input {

    max-width: 140px;

}



.renewal-summary-grid {

    display: grid;

    grid-template-columns:

        repeat(auto-fit, minmax(140px, 1fr));

    gap: 1rem;

    margin-bottom: 1.25rem;

}



.renewal-summary-card {

    display: flex;

    flex-direction: column;

    gap: 0.4rem;

}



.renewal-summary-card span {

    font-size: 0.9rem;

    font-weight: 600;

}



.renewal-summary-card strong {

    font-size: 2rem;

    line-height: 1;

}



.renewal-filter-form {

    padding: 1.25rem;

    margin-bottom: 1.25rem;

    background: #f6f8f6;

    border: 1px solid #d8ddd9;

    border-radius: 0.5rem;

}



.renewal-filter-grid {

    display: grid;

    grid-template-columns:

        minmax(240px, 2fr)

        repeat(2, minmax(180px, 1fr));

    gap: 1rem;

}



.renewal-filter-grid .form-group {

    margin-bottom: 0;

}



@media (max-width: 850px) {

    .renewal-filter-grid {

        grid-template-columns: 1fr;

    }

}



.member-renewal-card {

    margin-bottom: 1.25rem;

}



.member-renewal-heading {

    display: flex;

    align-items: flex-start;

    justify-content: space-between;

    flex-wrap: wrap;

    gap: 1rem;

    margin-bottom: 1.25rem;

}



.member-renewal-heading h2 {

    margin-top: 0;

    margin-bottom: 0.35rem;

}



.member-renewal-heading p {

    margin: 0;

}



.member-renewal-grid {

    display: grid;

    grid-template-columns:

        repeat(auto-fit, minmax(150px, 1fr));

    gap: 1rem;

    margin: 0 0 1.25rem;

}



.member-renewal-grid div {

    padding: 1rem;

    background: #f6f8f6;

    border: 1px solid #d8ddd9;

    border-radius: 0.4rem;

}



.member-renewal-grid dt {

    margin-bottom: 0.35rem;

    font-size: 0.9rem;

    font-weight: 600;

}



.member-renewal-grid dd {

    margin: 0;

    font-size: 1.2rem;

    font-weight: 700;

}





/*

 MEMBER SEARCH

*/



.member-filter-form {

    padding: 1.25rem;

    margin-bottom: 1.25rem;

    background: #f6f8f6;

    border: 1px solid #d8ddd9;

    border-radius: 0.5rem;

}



.member-filter-grid {

    display: grid;

    grid-template-columns:

        minmax(240px, 2fr)

        repeat(2, minmax(180px, 1fr));

    gap: 1rem;

}



.member-filter-grid .form-group {

    margin-bottom: 0;

}



.member-result-summary {

    margin-bottom: 1rem;

    color: #475467;

}



@media (max-width: 850px) {

    .member-filter-grid {

        grid-template-columns: 1fr;

    }

}



.pagination-navigation {

    display: flex;

    align-items: center;

    justify-content: center;

    flex-wrap: wrap;

    gap: 1rem;

    margin-top: 1.5rem;

}



.pagination-status {

    font-weight: 600;

    color: #475467;

}



.secondary-button {

    display: inline-flex;

    align-items: center;

    justify-content: center;

    min-height: 2.75rem;

    padding: 0.65rem 1rem;

    color: #175c36;

    background: #ffffff;

    border: 1px solid #175c36;

    border-radius: 0.35rem;

    font: inherit;

    font-weight: 600;

    line-height: 1;

    text-decoration: none;

    cursor: pointer;

    box-sizing: border-box;

}



.pagination {

    display: flex;

    flex-wrap: wrap;

    align-items: center;

    justify-content: center;

    gap: 0.5rem;

    margin-top: 1.5rem;

}



.pagination-link {

    display: inline-flex;

    align-items: center;

    justify-content: center;

    min-width: 2.5rem;

    min-height: 2.5rem;

    padding: 0.45rem 0.75rem;

    border: 1px solid currentColor;

    border-radius: 0.35rem;

    text-decoration: none;

}



.pagination-link.active {

    font-weight: 700;

    text-decoration: underline;

}



.pagination-link.disabled {

    cursor: not-allowed;

    opacity: 0.45;

}



.secondary-button:hover,

.secondary-button:focus {

    background: #f1f7f3;

}



.secondary-button:focus-visible {

    outline: 3px solid rgba(23, 92, 54, 0.25);

    outline-offset: 2px;

}



/*

//////////////

MEMBER VIEW - READ ONLY

//////////////

*/



.member-detail-heading {

    display: flex;

    align-items: flex-start;

    justify-content: space-between;

    gap: 1rem;

    margin-bottom: 1.25rem;

}



.member-detail-heading h3 {

    margin: 0;

}



.member-detail-statuses {

    display: flex;

    flex-wrap: wrap;

    gap: 0.5rem;

}



.member-detail-grid {

    display: grid;

    grid-template-columns:

        repeat(auto-fit, minmax(210px, 1fr));

    gap: 1rem;

    margin: 0;

}



.member-detail-grid div {

    padding: 1rem;

    background: #f6f8f6;

    border: 1px solid #d8ddd9;

    border-radius: 0.5rem;

}



.member-detail-grid dt {

    margin-bottom: 0.35rem;

    font-size: 0.85rem;

    font-weight: 700;

}



.member-detail-grid dd {

    margin: 0;

}



.member-address {

    font-style: normal;

    line-height: 1.7;

}



@media (max-width: 700px) {

    .member-detail-heading {

        flex-direction: column;

    }

}



/*

 * ADMIN HALL HIRE MODULE

 */



.hall-hire-settings-grid {

    display: grid;

    grid-template-columns:

        repeat(auto-fit, minmax(160px, 1fr));

    gap: 1rem;

    margin: 0;

}



.hall-hire-settings-grid div {

    padding: 1rem;

    background: #f6f8f6;

    border: 1px solid #d8ddd9;

    border-radius: 0.4rem;

}



.hall-hire-settings-grid dt {

    margin-bottom: 0.35rem;

    font-size: 0.9rem;

    font-weight: 600;

}



.hall-hire-settings-grid dd {

    margin: 0;

    font-size: 1.1rem;

    font-weight: 700;

}



/*

//////////////////////////////

         PUBLIC WEBSITE

//////////////////////////////

*/



.public-site-header {

    background: #ffffff;

    border-bottom: 1px solid #d8ddd9;

}



.public-header-content {

    display: flex;

    align-items: center;

    justify-content: space-between;

    gap: 1rem;

    min-height: 4.5rem;

}



.public-club-name {

    color: #175c36;

    font-size: 1.2rem;

    font-weight: 700;

    text-decoration: none;

}



.hall-hire-hero {

    padding: 3.5rem 0;

    background: #eef5f0;

}



.hall-hire-hero-content {

    max-width: 760px;

}



.hall-hire-hero h1 {

    margin: 0 0 1rem;

    font-size: clamp(2rem, 6vw, 3.5rem);

    line-height: 1.1;

}



.hall-hire-hero p {

    max-width: 650px;

    font-size: 1.1rem;

}



.hall-hire-eyebrow {

    color: #175c36;

    font-size: 0.85rem;

    font-weight: 700;

    letter-spacing: 0.08em;

    text-transform: uppercase;

}



.hall-hire-public-layout {

    display: grid;

    gap: 1.25rem;

    padding-top: 2rem;

    padding-bottom: 3rem;

}



.public-hall-pricing-grid {

    display: grid;

    grid-template-columns:

        repeat(auto-fit, minmax(200px, 1fr));

    gap: 1rem;

    margin: 1.25rem 0;

}



.public-hall-pricing-grid article {

    display: flex;

    flex-direction: column;

    gap: 0.4rem;

    padding: 1.25rem;

    background: #f6f8f6;

    border: 1px solid #d8ddd9;

    border-radius: 0.5rem;

}



.public-hall-pricing-grid strong {

    color: #175c36;

    font-size: 1.8rem;

}



.public-hall-pricing-grid small {

    display: block;

}



.hall-hire-estimate-note {

    margin-bottom: 0;

}



.hall-calendar-placeholder {

    padding: 2rem;

    text-align: center;

    background: #f6f8f6;

    border: 1px dashed #aeb8b0;

    border-radius: 0.5rem;

}



.hall-hire-public-form fieldset {

    padding: 0;

    margin: 0 0 2rem;

    border: 0;

}



.hall-hire-public-form legend {

    width: 100%;

    padding-bottom: 0.65rem;

    margin-bottom: 1rem;

    border-bottom: 1px solid #d8ddd9;

    font-size: 1.15rem;

    font-weight: 700;

}



.hall-hire-form-grid {

    display: grid;

    grid-template-columns:

        repeat(2, minmax(0, 1fr));

    gap: 1rem;

}



.hall-hire-full-width {

    grid-column: 1 / -1;

}



.hall-hire-addon-row {

    display: flex;

    align-items: center;

    justify-content: space-between;

    gap: 1rem;

    padding: 1rem;

    margin-bottom: 0.75rem;

    background: #f6f8f6;

    border: 1px solid #d8ddd9;

    border-radius: 0.45rem;

}



.hall-hire-addon-row label {

    display: flex;

    align-items: flex-start;

    gap: 0.75rem;

    margin: 0;

}



.hall-hire-addon-row small {

    display: block;

    margin-top: 0.2rem;

}



.hall-addon-quantity {

    display: grid;

    grid-template-columns: auto minmax(80px, 100px);

    align-items: center;

    gap: 0.4rem 0.75rem;

}



.hall-addon-quantity label {

    display: block;

}



.hall-addon-quantity span {

    grid-column: 2;

    font-size: 0.85rem;

}



.hall-hire-estimate {

    padding: 1.25rem;

    margin-bottom: 1.25rem;

    background: #eef5f0;

    border: 2px solid #175c36;

    border-radius: 0.5rem;

}



.hall-hire-estimate div {

    display: flex;

    align-items: center;

    justify-content: space-between;

    gap: 1rem;

}



.hall-hire-estimate span {

    font-weight: 700;

}



.hall-hire-estimate strong {

    color: #175c36;

    font-size: 1.8rem;

}



.hall-hire-estimate p {

    margin: 0.5rem 0 0;

}



.hall-hire-submit-notice {

    margin-bottom: 0;

    font-size: 0.9rem;

}



@media (max-width: 700px) {

    .hall-hire-hero {

        padding: 2.5rem 0;

    }



    .hall-hire-form-grid {

        grid-template-columns: 1fr;

    }



    .hall-hire-full-width {

        grid-column: auto;

    }



    .hall-hire-addon-row {

        align-items: flex-start;

        flex-direction: column;

    }



    .hall-addon-quantity {

        width: 100%;

    }



    .hall-hire-estimate div {

        align-items: flex-start;

        flex-direction: column;

    }

}



.hall-enquiry-detail-grid {

    display: grid;

    grid-template-columns:

        repeat(auto-fit, minmax(180px, 1fr));

    gap: 1rem;

}



.hall-enquiry-detail-grid > div {

    display: flex;

    flex-direction: column;

    gap: 0.35rem;

    padding: 1rem;

    background: #f6f8f6;

    border: 1px solid #d8ddd9;

    border-radius: 0.45rem;

}



.hall-enquiry-detail-grid span,

.hall-enquiry-cost-summary span {

    color: #5d655f;

    font-size: 0.85rem;

}



.hall-enquiry-definition-list {

    display: grid;

    gap: 0;

    margin: 0;

}



.hall-enquiry-definition-list > div {

    display: grid;

    grid-template-columns: minmax(130px, 0.7fr) 1fr;

    gap: 1rem;

    padding: 0.85rem 0;

    border-bottom: 1px solid #d8ddd9;

}



.hall-enquiry-definition-list > div:last-child {

    border-bottom: 0;

}



.hall-enquiry-definition-list dt {

    font-weight: 700;

}



.hall-enquiry-definition-list dd {

    margin: 0;

}



.hall-enquiry-cost-summary {

    display: grid;

    gap: 0.75rem;

    max-width: 540px;

}



.hall-enquiry-cost-summary > div {

    display: flex;

    align-items: center;

    justify-content: space-between;

    gap: 1rem;

    padding: 0.75rem 0;

    border-bottom: 1px solid #d8ddd9;

}



.hall-enquiry-cost-total {

    color: #175c36;

    font-size: 1.15rem;

    border-bottom: 0 !important;

}



@media (max-width: 650px) {

    .hall-enquiry-definition-list > div {

        grid-template-columns: 1fr;

        gap: 0.3rem;

    }

}



/*

 * ADMIN SETTINGS

 */



.settings-card {

    display: grid;

    gap: 1.5rem;

}



.settings-tabs {

    display: flex;

    gap: 0.4rem;

    overflow-x: auto;

    margin: 1.25rem 0;

    padding-bottom: 1px;

    border-bottom: 1px solid #d8ddd9;

}



.settings-tabs a {

    flex: 0 0 auto;

    padding: 0.8rem 1rem;

    border: 1px solid transparent;

    border-bottom: 0;

    border-radius: 0.45rem 0.45rem 0 0;

    color: var(--dark);

    font-weight: 700;

    text-decoration: none;

}



.settings-tabs a:hover,

.settings-tabs a.active {

    background: #ffffff;

    border-color: #d8ddd9;

    color: #725d08;

}



.settings-stage-notice {

    padding: 0.9rem 1rem;

    background: #fff8dd;

    border-left: 4px solid var(--gold);

    border-radius: 0.35rem;

}



.settings-group {

    display: grid;

    gap: 1rem;

    margin: 0 0 1.5rem;

    padding: 1.25rem;

    border: 1px solid #d8ddd9;

    border-radius: 0.5rem;

}



.settings-group legend {

    padding: 0 0.5rem;

    font-weight: 700;

}



.settings-group input[type="text"],

.settings-group input[type="email"],

.settings-group input[type="tel"],

.settings-group input[type="url"],

.settings-group input[type="number"],

.settings-group textarea {

    width: 100%;

    margin-top: 0.35rem;

    padding: 0.8rem;

    border: 1px solid #cccccc;

    border-radius: 6px;

    background: white;

    font: inherit;

}



.settings-group textarea {

    resize: vertical;

}



.settings-help-text {

    margin: 0;

    color: #5d655f;

    font-size: 0.92rem;

}



/*

 * PUBLIC HOMEPAGE

 */



.homepage-site-header {

    position: sticky;

    top: 0;

    z-index: 10;

    background: var(--dark);

    color: var(--light);

    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.16);

}



.homepage-header-inner {

    display: flex;

    align-items: center;

    justify-content: space-between;

    gap: 1.5rem;

    min-height: 72px;

}



.homepage-site-name {

    color: var(--light);

    font-size: 1.1rem;

    font-weight: 700;

    text-decoration: none;

}



.homepage-navigation {

    display: flex;

    align-items: center;

    flex-wrap: wrap;

    gap: 1rem;

}



.homepage-navigation a {

    color: var(--light);

    font-weight: 700;

    text-decoration: none;

}



.homepage-navigation a:hover {

    color: var(--gold);

}



.homepage-emergency-notice {

    padding: 0.9rem 0;

    background: #b42318;

    color: #ffffff;

}



.homepage-hero {

    display: grid;

    align-items: center;

    min-height: 68vh;

    padding: 5rem 0;

    background:

        linear-gradient(

            135deg,

            #1f1f1f 0%,

            #2f3d32 100%

        );

    color: #ffffff;

}



.homepage-hero-content {

    max-width: 780px;

}



.homepage-eyebrow {

    margin: 0 0 0.65rem;

    color: var(--gold);

    font-size: 0.85rem;

    font-weight: 800;

    letter-spacing: 0.12em;

    text-transform: uppercase;

}



.homepage-hero h1 {

    max-width: 760px;

    margin: 0;

    font-size: clamp(2.6rem, 8vw, 5.8rem);

    line-height: 0.98;

}



.homepage-hero-text {

    max-width: 680px;

    margin: 1.5rem 0 0;

    font-size: clamp(1.05rem, 2vw, 1.3rem);

    line-height: 1.7;

}



.homepage-hero-actions {

    display: flex;

    flex-wrap: wrap;

    gap: 0.8rem;

    margin-top: 2rem;

}



.homepage-secondary-button {

    display: inline-block;

    padding: 0.75rem 1rem;

    border: 1px solid var(--gold);

    border-radius: 6px;

    color: var(--gold);

    font-weight: 700;

    text-decoration: none;

}



.homepage-secondary-button:hover {

    background: var(--gold);

    color: var(--dark);

}



.homepage-section {

    padding: 4.5rem 0;

    scroll-margin-top: 80px;

}



.homepage-section-muted {

    background: #e9ede9;

}



.homepage-content-card {

    max-width: 900px;

}



.homepage-content-card h2 {

    margin: 0 0 1rem;

    font-size: clamp(1.8rem, 4vw, 2.8rem);

}



.homepage-prose,

.homepage-content-card > p {

    font-size: 1.05rem;

    line-height: 1.75;

}



.homepage-contact-grid {

    display: grid;

    grid-template-columns:

        repeat(auto-fit, minmax(200px, 1fr));

    gap: 1rem;

    margin-top: 1.5rem;

}



.homepage-contact-grid > div {

    padding: 1.25rem;

    background: #ffffff;

    border: 1px solid #d8ddd9;

    border-radius: 0.55rem;

}



.homepage-contact-grid h3 {

    margin-top: 0;

}



.homepage-contact-grid a {

    color: #725d08;

    overflow-wrap: anywhere;

}



.homepage-contact-alert {

    margin-top: 1.5rem;

}



.homepage-contact-form {

    position: relative;

    margin-top: 1.5rem;

    padding: 1.5rem;

    background: #ffffff;

    border: 1px solid #d8ddd9;

    border-radius: 0.55rem;

}



.homepage-contact-form-grid {

    display: grid;

    grid-template-columns: repeat(2, minmax(0, 1fr));

    gap: 1rem;

}



.homepage-contact-form label {

    display: block;

    margin-bottom: 0.35rem;

    font-weight: 700;

}



.homepage-contact-form input,

.homepage-contact-form textarea {

    width: 100%;

    padding: 0.8rem;

    border: 1px solid #b8c0ba;

    border-radius: 6px;

    background: #ffffff;

    font: inherit;

}



.homepage-contact-form textarea {

    resize: vertical;

}



.homepage-contact-full-width {

    grid-column: 1 / -1;

}



.homepage-contact-form button {

    margin-top: 1rem;

    padding: 0.8rem 1.1rem;

    background: var(--gold);

    border: 0;

    border-radius: 6px;

    color: var(--dark);

    font: inherit;

    font-weight: 700;

    cursor: pointer;

}



.homepage-contact-honeypot {

    position: absolute !important;

    left: -10000px !important;

    width: 1px !important;

    height: 1px !important;

    overflow: hidden !important;

}



.homepage-social-links {

    display: flex;

    flex-wrap: wrap;

    gap: 0.75rem;

    margin-top: 1.5rem;

}



.homepage-social-links a {

    padding: 0.6rem 0.8rem;

    border: 1px solid #d8ddd9;

    border-radius: 6px;

    color: var(--dark);

    font-weight: 700;

    text-decoration: none;

}



.homepage-social-links a:hover {

    border-color: var(--gold);

    color: #725d08;

}



.homepage-site-footer {

    padding: 1.5rem 0;

    background: var(--dark);

    color: #ffffff;

    text-align: center;

}



@media (max-width: 760px) {

    .homepage-site-header {

        position: static;

    }



    .homepage-header-inner {

        align-items: flex-start;

        flex-direction: column;

        padding-top: 1rem;

        padding-bottom: 1rem;

    }



    .homepage-navigation {

        gap: 0.75rem;

    }



    .homepage-hero {

        min-height: auto;

        padding: 4rem 0;

    }



    .homepage-contact-form-grid {

        grid-template-columns: 1fr;

    }

}



/*

 * PUBLIC CLUB EVENTS

 */



.public-events-hero {

    padding: 3.5rem 0;

    background: #eef5f0;

}



.public-events-hero h1 {

    margin: 0 0 1rem;

    font-size: clamp(2rem, 6vw, 3.5rem);

    line-height: 1.1;

}



.public-events-hero p:last-child {

    max-width: 650px;

    font-size: 1.1rem;

}



.public-events-layout {

    padding-top: 2rem;

    padding-bottom: 3rem;

}



.public-event-grid {

    display: grid;

    grid-template-columns:

        repeat(auto-fit, minmax(260px, 1fr));

    gap: 1.25rem;

}



.public-event-card {

    padding: 1.4rem;

    background: #ffffff;

    border: 1px solid #d8ddd9;

    border-top: 5px solid #175c36;

    border-radius: 0.55rem;

}



.public-event-card h2,

.public-event-card h3 {

    margin: 0.35rem 0 0.65rem;

}



.public-event-featured {

    border-top-color: var(--gold);

    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);

}



.public-event-date {

    margin: 0;

    color: #175c36;

    font-size: 0.9rem;

    font-weight: 800;

    letter-spacing: 0.04em;

    text-transform: uppercase;

}



.public-event-time {

    font-weight: 700;

}



/* Public Hall Hire enquiry form controls */

.hall-hire-public-form .form-group {

    display: flex;

    flex-direction: column;

    gap: 0.45rem;

}



.hall-hire-public-form .form-group label,

.hall-addon-quantity label {

    color: #24352a;

    font-size: 0.92rem;

    font-weight: 700;

}



.hall-hire-public-form .form-group input:not([type="checkbox"]):not([type="radio"]),

.hall-hire-public-form .form-group select,

.hall-hire-public-form .form-group textarea,

.hall-addon-quantity input[type="number"] {

    width: 100%;

    min-height: 3rem;

    padding: 0.75rem 0.9rem;

    color: #1f2a23;

    background: #fbfcfb;

    border: 1px solid #c8d2ca;

    border-radius: 0.65rem;

    box-shadow: 0 1px 2px rgba(18, 45, 28, 0.04);

    font: inherit;

    line-height: 1.35;

    transition:

        border-color 0.18s ease,

        box-shadow 0.18s ease,

        background-color 0.18s ease;

}



.hall-hire-public-form .form-group textarea {

    min-height: 8rem;

    resize: vertical;

}



.hall-hire-public-form .form-group input:hover:not([disabled]),

.hall-hire-public-form .form-group select:hover:not([disabled]),

.hall-hire-public-form .form-group textarea:hover:not([disabled]),

.hall-addon-quantity input[type="number"]:hover:not([disabled]) {

    border-color: #93aa99;

    background: #ffffff;

}



.hall-hire-public-form .form-group input:focus,

.hall-hire-public-form .form-group select:focus,

.hall-hire-public-form .form-group textarea:focus,

.hall-addon-quantity input[type="number"]:focus {

    outline: none;

    border-color: #175c36;

    background: #ffffff;

    box-shadow: 0 0 0 3px rgba(23, 92, 54, 0.14);

}



.hall-hire-public-form .form-group input::placeholder,

.hall-hire-public-form .form-group textarea::placeholder {

    color: #7b8980;

    opacity: 1;

}



.hall-hire-public-form .form-group small {

    color: #66756c;

    font-size: 0.82rem;

    line-height: 1.45;

}



.hall-hire-public-form input[type="date"],

.hall-hire-public-form input[type="time"] {

    cursor: pointer;

}



.hall-hire-public-form input[type="checkbox"] {

    width: 1.15rem;

    height: 1.15rem;

    margin-top: 0.1rem;

    accent-color: #175c36;

}



.hall-hire-public-form .hall-hire-addon-row:focus-within {

    border-color: #93aa99;

    box-shadow: 0 0 0 3px rgba(23, 92, 54, 0.08);

}



.hall-hire-public-form input:disabled,

.hall-hire-public-form select:disabled,

.hall-hire-public-form textarea:disabled {

    color: #77827b;

    background: #eef1ef;

    cursor: not-allowed;

}



@media (max-width: 700px) {

    .hall-hire-public-form .form-group input:not([type="checkbox"]):not([type="radio"]),

    .hall-hire-public-form .form-group select,

    .hall-hire-public-form .form-group textarea,

    .hall-addon-quantity input[type="number"] {

        min-height: 3.15rem;

        font-size: 16px;

    }

}



/* Admin Membership Renewals filter controls */

.renewal-filter-form .form-group {

    display: flex;

    flex-direction: column;

    gap: 0.45rem;

}



.renewal-filter-form .form-group label {

    color: #24352a;

    font-size: 0.92rem;

    font-weight: 700;

}



.renewal-filter-form .form-group input[type="search"],

.renewal-filter-form .form-group select {

    width: 100%;

    min-height: 3rem;

    padding: 0.75rem 0.9rem;

    color: #1f2a23;

    background: #fbfcfb;

    border: 1px solid #c8d2ca;

    border-radius: 0.65rem;

    box-shadow: 0 1px 2px rgba(18, 45, 28, 0.04);

    font: inherit;

    line-height: 1.35;

    transition:

        border-color 0.18s ease,

        box-shadow 0.18s ease,

        background-color 0.18s ease;

}



.renewal-filter-form .form-group input[type="search"]:hover:not([disabled]),

.renewal-filter-form .form-group select:hover:not([disabled]) {

    border-color: #93aa99;

    background: #ffffff;

}



.renewal-filter-form .form-group input[type="search"]:focus,

.renewal-filter-form .form-group select:focus {

    outline: none;

    border-color: #175c36;

    background: #ffffff;

    box-shadow: 0 0 0 3px rgba(23, 92, 54, 0.14);

}



.renewal-filter-form .form-group input[type="search"]::placeholder {

    color: #7b8980;

    opacity: 1;

}



@media (max-width: 700px) {

    .renewal-filter-form .form-group input[type="search"],

    .renewal-filter-form .form-group select {

        min-height: 3.15rem;

        font-size: 16px;

    }

}





/* Admin Members filter controls */

.member-filter-form .form-group {

    display: flex;

    flex-direction: column;

    gap: 0.45rem;

}



.member-filter-form .form-group label {

    color: #24352a;

    font-size: 0.92rem;

    font-weight: 700;

}



.member-filter-form .form-group input[type="search"],

.member-filter-form .form-group select {

    width: 100%;

    min-height: 3rem;

    padding: 0.75rem 0.9rem;

    color: #1f2a23;

    background: #fbfcfb;

    border: 1px solid #c8d2ca;

    border-radius: 0.65rem;

    box-shadow: 0 1px 2px rgba(18, 45, 28, 0.04);

    font: inherit;

    line-height: 1.35;

    transition:

        border-color 0.18s ease,

        box-shadow 0.18s ease,

        background-color 0.18s ease;

}



.member-filter-form .form-group input[type="search"]:hover:not([disabled]),

.member-filter-form .form-group select:hover:not([disabled]) {

    border-color: #93aa99;

    background: #ffffff;

}



.member-filter-form .form-group input[type="search"]:focus,

.member-filter-form .form-group select:focus {

    outline: none;

    border-color: #175c36;

    background: #ffffff;

    box-shadow: 0 0 0 3px rgba(23, 92, 54, 0.14);

}



.member-filter-form .form-group input[type="search"]::placeholder {

    color: #7b8980;

    opacity: 1;

}



@media (max-width: 700px) {

    .member-filter-form .form-group input[type="search"],

    .member-filter-form .form-group select {

        min-height: 3.15rem;

        font-size: 16px;

    }

}



/* Admin breadcrumb / folder-style navigation */

.admin-breadcrumb-navigation {

    padding: 0.65rem 0.8rem;

    overflow-x: auto;

    -webkit-overflow-scrolling: touch;

}



.admin-breadcrumb-list {

    display: flex;

    align-items: center;

    flex-wrap: wrap;

    gap: 0.2rem;

    margin: 0;

    padding: 0;

    list-style: none;

}



.admin-breadcrumb-item {

    display: inline-flex;

    align-items: center;

    min-width: 0;

}



.admin-breadcrumb-navigation .admin-breadcrumb-item a,

.admin-breadcrumb-navigation .admin-breadcrumb-item span {

    display: inline-flex;

    align-items: center;

    padding: 0.55rem 0.75rem;

    border-radius: 6px;

    font-weight: 700;

    white-space: nowrap;

}



.admin-breadcrumb-navigation .admin-breadcrumb-item a {

    color: var(--dark);

    text-decoration: none;

}



.admin-breadcrumb-navigation .admin-breadcrumb-item a:hover,

.admin-breadcrumb-navigation .admin-breadcrumb-item a:focus-visible {

    background: rgba(212, 175, 55, 0.25);

}



.admin-breadcrumb-navigation .admin-breadcrumb-item .active {

    background: var(--gold);

    color: var(--dark);

}



.admin-breadcrumb-parent {

    color: #5f665f;

}



.admin-breadcrumb-separator {

    display: inline-flex;

    align-items: center;

    color: #8b918b;

    font-size: 1.15rem;

    font-weight: 700;

    line-height: 1;

    user-select: none;

}



@media (max-width: 700px) {

    .admin-breadcrumb-navigation {

        padding: 0.55rem 0.6rem;

    }



    .admin-breadcrumb-list {

        flex-wrap: nowrap;

        min-width: max-content;

    }



    .admin-breadcrumb-navigation .admin-breadcrumb-item a,

    .admin-breadcrumb-navigation .admin-breadcrumb-item span {

        padding: 0.5rem 0.6rem;

        font-size: 0.9rem;

    }

}





/* Membership Types: compact desktop table */

.membership-types-table-wrap {

    overflow-x: visible;

}



.table-responsive .membership-types-table {

    min-width: 0;

    table-layout: fixed;

    font-size: 0.9rem;

}



.membership-types-table th,

.membership-types-table td {

    padding: 0.55rem 0.45rem;

    overflow-wrap: anywhere;

}



.membership-types-table th:nth-child(1),

.membership-types-table td:nth-child(1) { width: 27%; }

.membership-types-table th:nth-child(2),

.membership-types-table td:nth-child(2) { width: 10%; }

.membership-types-table th:nth-child(3),

.membership-types-table td:nth-child(3) { width: 13%; }

.membership-types-table th:nth-child(4),

.membership-types-table td:nth-child(4) { width: 9%; }

.membership-types-table th:nth-child(5),

.membership-types-table td:nth-child(5) { width: 10%; }

.membership-types-table th:nth-child(6),

.membership-types-table td:nth-child(6) { width: 13%; }

.membership-types-table th:nth-child(7),

.membership-types-table td:nth-child(7) { width: 18%; }



.membership-types-table .table-action-buttons {

    display: flex;

    flex-direction: row;

    align-items: center;

    flex-wrap: nowrap;

    gap: 0.4rem;

}



.membership-types-table .table-action-buttons form {

    margin: 0;

}



.membership-types-table .dashboard-button,

.membership-types-table .danger-button {

    white-space: nowrap;

    padding: 0.5rem 0.65rem;

    font-size: 0.85rem;

}



@media (max-width: 850px) {

    .membership-types-table-wrap {

        overflow-x: auto;

    }



    .table-responsive .membership-types-table {

        min-width: 760px;

    }

}



/*

 * Member dashboard account and membership summaries.

 * Keep key account details compact and easy to scan instead

 * of presenting every value in one long vertical list.

 */

.dashboard-summary-grid {

    grid-template-columns: repeat(2, minmax(0, 1fr));

    margin-bottom: 1.25rem;

}



.dashboard-summary-card {

    height: 100%;

}



.dashboard-detail-grid {

    display: grid;

    grid-template-columns: repeat(2, minmax(0, 1fr));

    gap: 0.85rem;

    margin: 0;

}



.dashboard-detail-grid > div {

    min-width: 0;

    padding: 0.9rem 1rem;

    background: #f8faf8;

    border: 1px solid #e1e7e2;

    border-radius: 0.65rem;

}



.dashboard-detail-grid > div:last-child:nth-child(odd) {

    grid-column: 1 / -1;

}



.dashboard-detail-grid dt {

    margin: 0 0 0.35rem;

    color: #68706b;

    font-size: 0.78rem;

    font-weight: 700;

    letter-spacing: 0.02em;

    text-transform: uppercase;

}



.dashboard-detail-grid dd {

    margin: 0;

    color: #202923;

    font-weight: 650;

    line-height: 1.4;

    overflow-wrap: anywhere;

}



.dashboard-direction-detail {

    border-left: 4px solid var(--gold) !important;

}



.dashboard-direction-badge {

    display: inline-flex;

    align-items: center;

    min-height: 1.9rem;

    padding: 0.25rem 0.65rem;

    border-radius: 999px;

    background: #f5ecd0;

    color: #314437;

    font-weight: 700;

}



@media (max-width: 800px) {

    .dashboard-summary-grid {

        grid-template-columns: 1fr;

    }

}



@media (max-width: 520px) {

    .dashboard-detail-grid {

        grid-template-columns: 1fr;

    }



    .dashboard-detail-grid > div:last-child:nth-child(odd) {

        grid-column: auto;

    }

}





/* Member dashboard visual polish */

.member-dashboard-title p {

    color: var(--dark);

    font-weight: 600;

}



.dashboard-direction-status {

    display: flex;

    align-items: center;

    justify-content: space-between;

    gap: 1rem;

    margin: 0 0 1.25rem;

    padding: 0.9rem 1.1rem;

    background: #ffffff;

    border: 1px solid #e1e7e2;

    border-left: 4px solid var(--gold);

    border-radius: 0.65rem;

    box-shadow: 0 3px 12px rgba(0, 0, 0, 0.05);

}



.dashboard-direction-status-label {

    color: #68706b;

    font-size: 0.8rem;

    font-weight: 700;

    letter-spacing: 0.02em;

    text-transform: uppercase;

}



.dashboard-direction-status-value {

    display: inline-flex;

    align-items: center;

    min-height: 1.9rem;

    padding: 0.25rem 0.7rem;

    border-radius: 999px;

    background: #f5ecd0;

    color: #314437;

    font-weight: 700;

    text-align: right;

}



.dashboard-action-grid > .dashboard-card {

    display: flex;

    flex-direction: column;

    height: 100%;

}



.dashboard-action-grid > .dashboard-card .dashboard-button {

    margin-top: auto;

    align-self: flex-start;

}



@media (max-width: 600px) {

    .dashboard-direction-status {

        align-items: flex-start;

        flex-direction: column;

        gap: 0.55rem;

    }



    .dashboard-direction-status-value {

        text-align: left;

    }

}





/* Member portal header subtitle */

.member-header-subtitle {

    color: var(--gold);

    font-size: 0.9rem;

}





/* Member profile polish */

.member-profile-membership-grid {

    margin-top: 0.9rem;

}



.member-profile-contact-form .form-group {

    display: flex;

    flex-direction: column;

    gap: 0.45rem;

}



.member-profile-contact-form .form-group label {

    color: #24352a;

    font-size: 0.92rem;

    font-weight: 700;

}



.member-profile-contact-form .form-group input:not([type="checkbox"]):not([type="radio"]),

.member-profile-contact-form .form-group select,

.member-profile-contact-form .form-group textarea {

    width: 100%;

    min-height: 3rem;

    padding: 0.75rem 0.9rem;

    color: #1f2a23;

    background: #fbfcfb;

    border: 1px solid #c8d2ca;

    border-radius: 0.65rem;

    box-shadow: 0 1px 2px rgba(18, 45, 28, 0.04);

    font: inherit;

    line-height: 1.35;

    transition:

        border-color 0.18s ease,

        box-shadow 0.18s ease,

        background-color 0.18s ease;

}



.member-profile-contact-form .form-group input:hover:not([disabled]),

.member-profile-contact-form .form-group select:hover:not([disabled]),

.member-profile-contact-form .form-group textarea:hover:not([disabled]) {

    border-color: #93aa99;

    background: #ffffff;

}



.member-profile-contact-form .form-group input:focus,

.member-profile-contact-form .form-group select:focus,

.member-profile-contact-form .form-group textarea:focus {

    outline: none;

    border-color: #175c36;

    background: #ffffff;

    box-shadow: 0 0 0 3px rgba(23, 92, 54, 0.14);

}



.member-profile-contact-form .form-group input:disabled,

.member-profile-contact-form .form-group select:disabled,

.member-profile-contact-form .form-group textarea:disabled {

    color: #77827b;

    background: #eef1ef;

    cursor: not-allowed;

}



@media (max-width: 700px) {

    .member-profile-contact-form .form-group input:not([type="checkbox"]):not([type="radio"]),

    .member-profile-contact-form .form-group select,

    .member-profile-contact-form .form-group textarea {

        min-height: 3.15rem;

        font-size: 16px;

    }

}



/* Member settings: Security tab */

.member-security-form .form-group {

    display: flex;

    flex-direction: column;

    gap: 0.45rem;

}



.member-security-form .form-group label {

    color: #24352a;

    font-size: 0.92rem;

    font-weight: 700;

}



.member-security-form .form-group input[type="password"] {

    width: 100%;

    min-height: 3rem;

    padding: 0.75rem 0.9rem;

    color: #1f2a23;

    background: #fbfcfb;

    border: 1px solid #c8d2ca;

    border-radius: 0.65rem;

    box-shadow: 0 1px 2px rgba(18, 45, 28, 0.04);

    font: inherit;

    line-height: 1.35;

    transition:

        border-color 0.18s ease,

        box-shadow 0.18s ease,

        background-color 0.18s ease;

}



.member-security-form .form-group input[type="password"]:hover:not([disabled]) {

    border-color: #93aa99;

    background: #ffffff;

}



.member-security-form .form-group input[type="password"]:focus {

    outline: none;

    border-color: #175c36;

    background: #ffffff;

    box-shadow: 0 0 0 3px rgba(23, 92, 54, 0.14);

}



.member-security-form .form-group input[type="password"]:disabled {

    color: #77827b;

    background: #eef1ef;

    cursor: not-allowed;

}



@media (max-width: 700px) {

    .member-security-form .form-group input[type="password"] {

        min-height: 3.15rem;

        font-size: 16px;

    }

}





/*

 * ADMIN DASHBOARD SNAPSHOTS

 */

.admin-snapshot-grid {

    display: grid;

    grid-template-columns: repeat(4, minmax(0, 1fr));

    gap: 1rem;

    margin: 0 0 1.5rem;

}



.admin-snapshot-card {

    min-width: 0;

    min-height: 126px;

    padding: 1.15rem 1.25rem;

    border-radius: 12px;

    color: #ffffff;

    text-decoration: none;

    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.10);

    display: flex;

    flex-direction: column;

    justify-content: space-between;

    transition: transform 0.18s ease, box-shadow 0.18s ease;

}



.admin-snapshot-card:hover,

.admin-snapshot-card:focus-visible {

    transform: translateY(-2px);

    box-shadow: 0 9px 24px rgba(0, 0, 0, 0.14);

}



.admin-snapshot-card--green {

    background: #2f7d4a;

}



.admin-snapshot-card--orange {

    background: #c66a18;

}



.admin-snapshot-card--blue {

    background: #2f6690;

}



.admin-snapshot-card--red {

    background: #b64040;

}



.admin-snapshot-label {

    font-size: 0.9rem;

    line-height: 1.3;

    font-weight: 700;

}



.admin-snapshot-value {

    display: block;

    margin-top: 0.5rem;

    font-size: clamp(2rem, 4vw, 2.8rem);

    line-height: 1;

}



/* Keep admin dashboard action buttons aligned at the foot of each card. */

.admin-dashboard-menu-grid > .dashboard-card {

    display: flex;

    flex-direction: column;

    height: 100%;

}



.admin-dashboard-menu-grid > .dashboard-card .dashboard-button {

    margin-top: auto;

    align-self: flex-start;

}



@media (max-width: 900px) {

    .admin-snapshot-grid {

        grid-template-columns: repeat(2, minmax(0, 1fr));

    }

}



@media (max-width: 520px) {

    .admin-snapshot-grid {

        grid-template-columns: 1fr;

    }

}



/* Public website branding settings */

.homepage-hero.has-custom-hero {

    background-image:

        linear-gradient(

            135deg,

            rgba(31, 31, 31, 0.74),

            rgba(31, 47, 37, 0.62)

        ),

        var(--homepage-hero-image);

    background-position: center;

    background-repeat: no-repeat;

    background-size: cover;

}



.website-branding-grid input[type="color"] {

    width: 100%;

    min-height: 48px;

    padding: 0.3rem;

    border: 1px solid #cfd4d0;

    border-radius: 8px;

    background: #ffffff;

    cursor: pointer;

}



.website-branding-grid input[type="file"] {

    width: 100%;

    padding: 0.7rem;

    border: 1px solid #cfd4d0;

    border-radius: 8px;

    background: #ffffff;

}



.website-branding-preview,

.website-favicon-preview {

    display: grid;

    gap: 0.65rem;

    padding: 1rem;

    border: 1px solid #e0e3e1;

    border-radius: 10px;

    background: #fafbfa;

}



.website-branding-preview > span,

.website-favicon-preview > span {

    font-weight: 700;

}



.website-branding-preview img {

    display: block;

    width: min(420px, 100%);

    max-height: 210px;

    object-fit: cover;

    border-radius: 8px;

}



.website-favicon-preview img {

    display: block;

    width: 48px;

    height: 48px;

    object-fit: contain;

}



.settings-help-text {

    display: block;

    margin-top: 0.35rem;

    color: #5d625f;

    font-size: 0.88rem;

    line-height: 1.45;

}



/* Public Hall Hire notice */

.hall-hire-public-notice {

    margin-top: 0.85rem;

    padding: 0.9rem 1rem;

    border: 1px solid color-mix(in srgb, var(--gold) 45%, #d7d7d7);

    border-left: 4px solid var(--gold);

    border-radius: 10px;

    background: color-mix(in srgb, var(--gold) 9%, #ffffff);

    color: #222222;

    font-weight: 600;

    line-height: 1.5;

}





/* Hall-hire approval/rejection decision buttons */

.hall-enquiry-decision-actions {

    margin-top: 1.5rem;

}



.hall-enquiry-decision-actions .application-notes-box {

    margin-bottom: 1.25rem;

}



.hall-enquiry-decision-buttons {

    display: flex;

    align-items: stretch;

    gap: 1rem;

    flex-wrap: wrap;

}



.hall-enquiry-decision-buttons form {

    margin: 0;

}



.hall-enquiry-decision-buttons .dashboard-button,

.hall-enquiry-decision-buttons .secondary-button {

    width: 12.5rem;

    min-height: 2.75rem;

    display: inline-flex;

    align-items: center;

    justify-content: center;

    box-sizing: border-box;

}



@media (max-width: 640px) {

    .hall-enquiry-decision-buttons {

        display: grid;

        grid-template-columns: 1fr;

    }



    .hall-enquiry-decision-buttons .dashboard-button,

    .hall-enquiry-decision-buttons .secondary-button {

        width: 100%;

    }

}







/* Hall Hire enquiry review section spacing */

.hall-enquiry-view > .dashboard-card,

.hall-enquiry-view > .hall-hire-settings-grid,

.hall-enquiry-view > .hall-enquiry-decision-actions {

    margin-bottom: 1rem;

}



.hall-enquiry-view .hall-hire-settings-grid {

    gap: 1rem;

}



/* Hall Hire admin refund/cancellation form fields - consolidated fix */

.hall-hire-admin-form input[type="number"],

.hall-hire-admin-form input[type="text"],

.hall-hire-admin-form textarea,

#refund_amount,

#refund_reason {

    width: 100%;

    box-sizing: border-box;

    margin-top: 0.4rem;

    padding: 0.85rem 0.95rem;

    border: 1px solid #c9d1cb;

    border-radius: 0.6rem;

    background: #ffffff;

    color: #1f2923;

    font: inherit;

    line-height: 1.4;

    transition: border-color 0.18s ease, box-shadow 0.18s ease, background-color 0.18s ease;

}



.hall-hire-admin-form textarea,

#refund_reason {

    min-height: 7rem;

    resize: vertical;

}



.hall-hire-admin-form input[type="number"]:hover,

.hall-hire-admin-form input[type="text"]:hover,

.hall-hire-admin-form textarea:hover,

#refund_amount:hover,

#refund_reason:hover {

    border-color: #9eaaa2;

}



.hall-hire-admin-form input[type="number"]:focus,

.hall-hire-admin-form input[type="text"]:focus,

.hall-hire-admin-form textarea:focus,

#refund_amount:focus,

#refund_reason:focus {

    outline: none;

    border-color: var(--gold);

    box-shadow: 0 0 0 3px color-mix(in srgb, var(--gold) 18%, transparent);

    background: #fffef9;

}



.hall-hire-admin-form .form-group > label {

    display: block;

    font-weight: 600;

}



.hall-hire-admin-form .form-group > small {

    display: block;

    margin-top: 0.4rem;

    color: #68736b;

}



/* Keep admin notification counts white instead of the header subtitle gold. */

.site-header .dashboard-header .message-notification-badge {

    color: #ffffff;

}

/* Admin notification composer: match the site's shared form styling. */

form[action="/admin/notifications/send"] .form-group {

    display: flex;

    flex-direction: column;

    gap: 0.45rem;

    margin-bottom: 1.25rem;

}



form[action="/admin/notifications/send"] .form-group label {

    color: #24352a;

    font-size: 0.92rem;

    font-weight: 700;

}



form[action="/admin/notifications/send"] .form-group input[type="text"],

form[action="/admin/notifications/send"] .form-group select,

form[action="/admin/notifications/send"] .form-group textarea {

    width: 100%;

    box-sizing: border-box;

    min-height: 3rem;

    padding: 0.75rem 0.9rem;

    color: #1f2a23;

    background: #fbfcfb;

    border: 1px solid #c8d2ca;

    border-radius: 0.65rem;

    box-shadow: 0 1px 2px rgba(18, 45, 28, 0.04);

    font: inherit;

    line-height: 1.35;

    transition: border-color 0.18s ease, box-shadow 0.18s ease, background-color 0.18s ease;

}



form[action="/admin/notifications/send"] .form-group textarea {

    min-height: 12rem;

    resize: vertical;

}



form[action="/admin/notifications/send"] .form-group input:hover:not([disabled]),

form[action="/admin/notifications/send"] .form-group select:hover:not([disabled]),

form[action="/admin/notifications/send"] .form-group textarea:hover:not([disabled]) {

    border-color: #93aa99;

    background: #ffffff;

}



form[action="/admin/notifications/send"] .form-group input:focus,

form[action="/admin/notifications/send"] .form-group select:focus,

form[action="/admin/notifications/send"] .form-group textarea:focus {

    outline: none;

    border-color: #175c36;

    background: #ffffff;

    box-shadow: 0 0 0 3px rgba(23, 92, 54, 0.14);

}



form[action="/admin/notifications/send"] .form-group input::placeholder,

form[action="/admin/notifications/send"] .form-group textarea::placeholder {

    color: #7b8980;

    opacity: 1;

}



@media (max-width: 768px) {

    form[action="/admin/notifications/send"] .form-group input[type="text"],

    form[action="/admin/notifications/send"] .form-group select,

    form[action="/admin/notifications/send"] .form-group textarea {

        min-height: 3.15rem;

        font-size: 16px;

    }

    form[action="/admin/notifications/send"] .form-group textarea {

        min-height: 12rem;

    }

}



/* Create Announcement: match the site's shared form styling. */

form[action="/admin/announcements/store"] .form-group {

    display: flex;

    flex-direction: column;

    gap: 0.45rem;

    margin-bottom: 1.25rem;

}



form[action="/admin/announcements/store"] .form-group label {

    color: #24352a;

    font-size: 0.92rem;

    font-weight: 700;

}



form[action="/admin/announcements/store"] .form-group input:not([type="hidden"]):not([type="checkbox"]),

form[action="/admin/announcements/store"] .form-group select,

form[action="/admin/announcements/store"] .form-group textarea {

    width: 100%;

    box-sizing: border-box;

    min-height: 3rem;

    padding: 0.75rem 0.9rem;

    color: #1f2a23;

    background: #fbfcfb;

    border: 1px solid #c8d2ca;

    border-radius: 0.65rem;

    box-shadow: 0 1px 2px rgba(18, 45, 28, 0.04);

    font: inherit;

    line-height: 1.35;

    transition: border-color 0.18s ease, box-shadow 0.18s ease, background-color 0.18s ease;

}



form[action="/admin/announcements/store"] .form-group textarea {

    min-height: 12rem;

    resize: vertical;

}



form[action="/admin/announcements/store"] .form-group input:not([type="checkbox"]):hover:not([disabled]),

form[action="/admin/announcements/store"] .form-group select:hover:not([disabled]),

form[action="/admin/announcements/store"] .form-group textarea:hover:not([disabled]) {

    border-color: #93aa99;

    background: #ffffff;

}



form[action="/admin/announcements/store"] .form-group input:not([type="checkbox"]):focus,

form[action="/admin/announcements/store"] .form-group select:focus,

form[action="/admin/announcements/store"] .form-group textarea:focus {

    outline: none;

    border-color: #175c36;

    background: #ffffff;

    box-shadow: 0 0 0 3px rgba(23, 92, 54, 0.14);

}



form[action="/admin/announcements/store"] .form-group input::placeholder,

form[action="/admin/announcements/store"] .form-group textarea::placeholder {

    color: #7b8980;

    opacity: 1;

}



@media (max-width: 768px) {

    form[action="/admin/announcements/store"] .form-group input:not([type="hidden"]):not([type="checkbox"]),

    form[action="/admin/announcements/store"] .form-group select,

    form[action="/admin/announcements/store"] .form-group textarea {

        min-height: 3.15rem;

        font-size: 16px;

    }

    form[action="/admin/announcements/store"] .form-group textarea {

        min-height: 12rem;

    }

}

form[action="/admin/announcements/store"] input[type="checkbox"] {

    width: 1.1rem;

    height: 1.1rem;

    margin-right: 0.4rem;

    vertical-align: middle;

    accent-color: #175c36;

}



form[action="/admin/announcements/store"] .form-group p {

    margin-top: 0;

}



/* Member dashboard feedback: shared website field styling. */

.member-feedback-form .form-group {

    display: flex;

    flex-direction: column;

    gap: 0.45rem;

    margin-bottom: 1rem;

}

.member-feedback-form label {

    color: #24352a;

    font-size: 0.92rem;

    font-weight: 700;

}

.member-feedback-form textarea {

    width: 100%;

    box-sizing: border-box;

    min-height: 8rem;

    padding: 0.75rem 0.9rem;

    color: #1f2a23;

    background: #fbfcfb;

    border: 1px solid #c8d2ca;

    border-radius: 0.65rem;

    box-shadow: 0 1px 2px rgba(18, 45, 28, 0.04);

    font: inherit;

    line-height: 1.35;

    resize: vertical;

}

.member-feedback-form textarea:hover { border-color: #93aa99; background: #ffffff; }

.member-feedback-form textarea:focus {

    outline: none;

    border-color: #175c36;

    background: #ffffff;

    box-shadow: 0 0 0 3px rgba(23, 92, 54, 0.14);

}

@media (max-width: 768px) {

    .member-feedback-form textarea { font-size: 16px; }

}



/* Members list: compact, accessible action icons in a single row. */

.admin-table .member-list-actions {

    display: flex;

    flex-direction: row;

    flex-wrap: nowrap;

    align-items: center;

    gap: 0.5rem;

}

.admin-table .member-list-actions > a.table-action,

.admin-table .member-list-actions > form[action="/admin/members/archive"] > button {

    display: inline-flex;

    align-items: center;

    justify-content: center;

    width: 44px;

    height: 44px;

    flex: 0 0 44px;

    padding: 0;

    box-sizing: border-box;

    line-height: 1;

}

.admin-table .member-list-actions > form[action="/admin/members/archive"] {

    display: flex;

    flex: 0 0 44px;

    width: 44px;

    margin: 0;

}

.admin-table .member-list-actions svg {

    display: block;

    flex-shrink: 0;

    pointer-events: none;

}

.admin-table .member-list-actions > a.table-action:focus-visible,

.admin-table .member-list-actions > form[action="/admin/members/archive"] > button:focus-visible {

    outline: 3px solid #175c36;

    outline-offset: 3px;

}





/* Manage membership renewal: shared website form styling. */

form[action="/admin/membership-renewals/save"] .form-group {

    display: flex;

    flex-direction: column;

    gap: .45rem;

    margin-bottom: 1.25rem;

    min-width: 0;

}

form[action="/admin/membership-renewals/save"] .form-group label {

    color: #24352a;

    font-size: .92rem;

    font-weight: 700;

}

form[action="/admin/membership-renewals/save"] .form-group input {

    width: 100%;

    min-width: 0;

    box-sizing: border-box;

    min-height: 3rem;

    padding: .75rem .9rem;

    color: #1f2a23;

    background: #fbfcfb;

    border: 1px solid #c8d2ca;

    border-radius: .65rem;

    box-shadow: 0 1px 2px rgba(18,45,28,.04);

    font: inherit;

    line-height: 1.35;

}

form[action="/admin/membership-renewals/save"] .form-group input:hover {

    border-color: #93aa99;

    background: #fff;

}

form[action="/admin/membership-renewals/save"] .form-group input:focus {

    border-color: #175c36;

    background: #fff;

    box-shadow: 0 0 0 3px rgba(23,92,54,.14);

    outline: none;

}

@media (max-width: 768px) {

    form[action="/admin/membership-renewals/save"] .form-group input {

        font-size: 16px;

        min-height: 3.15rem;

    }

}





/* Create and edit membership types: website form styling. */



:is(form[action="/admin/membership-types/update"], form[action="/admin/membership-types/store"]) .form-group {

    display: flex;

    flex-direction: column;

    gap: .45rem;

    margin-bottom: 1.25rem;

    min-width: 0;

}

:is(form[action="/admin/membership-types/update"], form[action="/admin/membership-types/store"]) .form-group > label {

    color: #24352a;

    font-size: .92rem;

    font-weight: 700;

}

:is(form[action="/admin/membership-types/update"], form[action="/admin/membership-types/store"]) .form-group input[type="text"],

:is(form[action="/admin/membership-types/update"], form[action="/admin/membership-types/store"]) .form-group textarea {

    width: 100%;

    min-width: 0;

    box-sizing: border-box;

    min-height: 3rem;

    padding: .75rem .9rem;

    color: #1f2a23;

    background: #fbfcfb;

    border: 1px solid #c8d2ca;

    border-radius: .65rem;

    box-shadow: 0 1px 2px rgba(18,45,28,.04);

    font: inherit;

    line-height: 1.35;

}

:is(form[action="/admin/membership-types/update"], form[action="/admin/membership-types/store"]) .form-group textarea {

    min-height: 8rem;

    resize: vertical;

}

:is(form[action="/admin/membership-types/update"], form[action="/admin/membership-types/store"]) .form-group input[type="text"]:hover,

:is(form[action="/admin/membership-types/update"], form[action="/admin/membership-types/store"]) .form-group textarea:hover {

    border-color: #93aa99;

    background: #fff;

}

:is(form[action="/admin/membership-types/update"], form[action="/admin/membership-types/store"]) .form-group input[type="text"]:focus,

:is(form[action="/admin/membership-types/update"], form[action="/admin/membership-types/store"]) .form-group textarea:focus {

    border-color: #175c36;

    background: #fff;

    box-shadow: 0 0 0 3px rgba(23,92,54,.14);

    outline: none;

}

:is(form[action="/admin/membership-types/update"], form[action="/admin/membership-types/store"]) input[type="checkbox"] {

    accent-color: #175c36;

}

:is(form[action="/admin/membership-types/update"], form[action="/admin/membership-types/store"]) input[type="checkbox"]:focus-visible {

    outline: 2px solid #175c36;

    outline-offset: 3px;

}

@media (max-width: 768px) {

    :is(form[action="/admin/membership-types/update"], form[action="/admin/membership-types/store"]) .form-group input[type="text"],

    :is(form[action="/admin/membership-types/update"], form[action="/admin/membership-types/store"]) .form-group textarea {

        font-size: 16px;

        min-height: 3.15rem;

    }

    :is(form[action="/admin/membership-types/update"], form[action="/admin/membership-types/store"]) .form-group textarea {

        min-height: 8rem;

    }

}



/* Space between the member dashboard cards and feedback form. */
.dashboard-action-grid + #member-feedback {
    margin-top: 2rem;
}


/* Create Hall Hire Extra: website form styling. */
form[action="/admin/hall-hire/addons/store"] .form-group {
    display: flex;
    flex-direction: column;
    gap: .45rem;
    margin-bottom: 1.25rem;
    min-width: 0;
}
form[action="/admin/hall-hire/addons/store"] .form-group > label {
    color: #24352a;
    font-size: .92rem;
    font-weight: 700;
}
form[action="/admin/hall-hire/addons/store"] .form-group :is(input[type="text"], input[type="number"], select, textarea) {
    width: 100%;
    min-width: 0;
    box-sizing: border-box;
    min-height: 3rem;
    padding: .75rem .9rem;
    color: #1f2a23;
    background-color: #fbfcfb;
    border: 1px solid #c8d2ca;
    border-radius: .65rem;
    box-shadow: 0 1px 2px rgba(18,45,28,.04);
    font: inherit;
    line-height: 1.35;
}
form[action="/admin/hall-hire/addons/store"] .form-group textarea {
    min-height: 8rem;
    resize: vertical;
}
form[action="/admin/hall-hire/addons/store"] .form-group :is(input[type="text"], input[type="number"], select, textarea):hover {
    border-color: #93aa99;
    background-color: #fff;
}
form[action="/admin/hall-hire/addons/store"] .form-group :is(input[type="text"], input[type="number"], select, textarea):focus {
    border-color: #175c36;
    background-color: #fff;
    box-shadow: 0 0 0 3px rgba(23,92,54,.14);
    outline: none;
}
form[action="/admin/hall-hire/addons/store"] .checkbox-group > label {
    display: flex;
    align-items: flex-start;
    gap: .65rem;
    cursor: pointer;
}
form[action="/admin/hall-hire/addons/store"] .checkbox-group input[type="checkbox"] {
    width: 1.15rem;
    height: 1.15rem;
    min-height: 0;
    flex: 0 0 1.15rem;
    margin: .15rem 0 0;
    accent-color: #175c36;
}
form[action="/admin/hall-hire/addons/store"] input[type="checkbox"]:focus-visible {
    outline: 2px solid #175c36;
    outline-offset: 3px;
}
@media (max-width: 768px) {
    form[action="/admin/hall-hire/addons/store"] .form-group :is(input[type="text"], input[type="number"], select, textarea) {
        font-size: 16px;
        min-height: 3.15rem;
    }
    form[action="/admin/hall-hire/addons/store"] .form-group textarea {
        min-height: 8rem;
    }
}


/* Locker assignments: spacing and the shared Members search layout. */
.dashboard-grid + .locker-assignment-section {
    margin-top: 2rem;
}
.locker-filter-form .member-filter-grid {
    grid-template-columns: minmax(0, 1fr);
}


/* Public Hall Hire terms and adjacent hero buttons. */
.hall-hire-hero-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .75rem;
}
.hall-hire-terms-page {
    padding-top: 2rem;
    padding-bottom: 2rem;
}
.hall-hire-terms-list {
    padding-left: 1.5rem;
    line-height: 1.65;
    overflow-wrap: anywhere;
}
.hall-hire-terms-list li + li {
    margin-top: .8rem;
}


/* Hall hire document management and customer agreement. */
.hall-hire-terms-upload input[type="file"] {
    display: block;
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    padding: 0.75rem;
    border: 1px solid #ccc;
    border-radius: 6px;
    font: inherit;
    background: #fff;
    color: #222;
}
.hall-hire-terms-upload input[type="file"]:focus-visible {
    outline: 2px solid var(--gold, #c9a227);
    outline-offset: 2px;
}
.hall-hire-terms-delete { margin-top: 1rem; }
.hall-hire-terms-download { display: inline-flex; align-items: center; gap: 0.5rem; }
.hall-hire-terms-download svg { flex-shrink: 0; }
.hall-hire-terms-agreement {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    margin: 1.5rem 0;
    line-height: 1.5;
    cursor: pointer;
}
.hall-hire-terms-agreement input[type="checkbox"] {
    flex: 0 0 auto;
    width: 1.2rem;
    height: 1.2rem;
    margin: 0.15rem 0 0;
    accent-color: var(--gold, #c9a227);
}


/* Keep calendar navigation targets clear of the public header. */
#hall-availability {
    scroll-margin-top: 6rem;
}
@media (max-width: 768px) {
    #hall-availability {
        scroll-margin-top: 1rem;
    }
}


/* Colour each date cell by daytime (top) and evening (bottom) availability. */
.hall-calendar-day.hall-calendar-half-days {
    --hall-daytime-colour: #eef5f0;
    --hall-evening-colour: #eef5f0;
    position: relative;
    min-height: 88px;
    background: linear-gradient(to bottom,
        var(--hall-daytime-colour) 0%, var(--hall-daytime-colour) 50%,
        var(--hall-evening-colour) 50%, var(--hall-evening-colour) 100%);
}
.hall-calendar-half-days.hall-daytime-booked { --hall-daytime-colour: #f3dddd; }
.hall-calendar-half-days.hall-evening-booked { --hall-evening-colour: #f3dddd; }
.hall-calendar-half-days.hall-calendar-past {
    --hall-daytime-colour: #f1f1f1;
    --hall-evening-colour: #f1f1f1;
}

.hall-calendar-half-days .hall-calendar-date-button,
.hall-calendar-day.hall-calendar-half-days > span {
    position: relative;
    min-height: 88px;
    height: 100%;
    background: transparent;
    color: #222;
}
.hall-calendar-half-days .hall-calendar-date-button:hover {
    box-shadow: inset 0 0 0 2px #175c36;
}
.hall-calendar-half-days .hall-calendar-date-button:focus-visible {
    outline: 3px solid #175c36;
    outline-offset: -3px;
    z-index: 1;
}
.hall-calendar-half-days.hall-calendar-selected .hall-calendar-date-button {
    box-shadow: inset 0 0 0 3px var(--gold, #c9a227);
}
.hall-calendar-half-day-key { margin: 0.75rem 0; font-size: 0.9rem; }
@media (max-width: 650px) {
    .hall-calendar-day.hall-calendar-half-days,
    .hall-calendar-half-days .hall-calendar-date-button,
    .hall-calendar-day.hall-calendar-half-days > span {
        min-height: 62px;
    }
}


/* Separate right-aligned calendar navigation row between heading and title. */
#hall-availability > .hall-calendar-navigation {
    justify-content: flex-end;
    margin: 0 0 1rem;
}
