/*
 * AIC Services stable form-layout standard.
 * Do not override with page-specific fixed widths, absolute positioning,
 * negative margins or non-responsive column rules. Changes require regression
 * testing across desktop, tablet and mobile.
 */

/* Universal containment for application data-entry forms. These rules do not
   change business logic, colours, typography, or field order. */
.content form,
.content form *,
.content .form,
.content .form * {
    box-sizing: border-box;
}

.content form,
.content .form,
.content .form-grid,
.content .ndis-form-grid,
.content .ac-form-grid,
.content .grid-2,
.content .grid-3,
.content .grid-4 {
    min-width: 0;
    max-width: 100%;
}

.content form label,
.content .form label,
.content form .field,
.content .form .field,
.content form [class*="field"],
.content .form [class*="field"] {
    min-width: 0;
    overflow-wrap: break-word;
    word-break: normal;
}

.content form input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
.content form select,
.content form textarea,
.content .form input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
.content .form select,
.content .form textarea {
    width: 100%;
    max-width: 100%;
    min-width: 0;
}

.content form textarea,
.content .form textarea {
    resize: vertical;
    min-height: 96px;
}

.content form input[type="file"],
.content .form input[type="file"] {
    overflow: hidden;
    white-space: normal;
}

.content form small,
.content form .muted,
.content form .error,
.content form .alert,
.content .form small,
.content .form .muted,
.content .form .error,
.content .form .alert {
    max-width: 100%;
    overflow-wrap: break-word;
    word-break: normal;
}

.content .form-actions,
.content form .form-actions,
.content .ac-action-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    min-width: 0;
    max-width: 100%;
}

/* Reusable stable grids. Existing page-specific proportions remain respected. */
.aic-form-standard,
.aic-form-page {
    min-width: 0;
    max-width: 100%;
}

.aic-form-standard .grid-2,
.aic-form-standard .form-grid,
.aic-form-standard .ndis-form-grid,
.aic-form-standard .ac-form-grid {
    min-width: 0;
}

/* Houses Add/Edit: single full-width form card, with information card below. */
.content .house-form-grid {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 18px !important;
    align-items: start;
    width: 100%;
    max-width: 100%;
}

.content .house-address-card {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    overflow: visible;
}

.content .house-address-form {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 16px !important;
    width: 100%;
    max-width: 100%;
    min-width: 0;
}

.content .house-address-form > label,
.content .house-address-search-field,
.content .house-address-structured-grid,
.content .house-manual-override,
.content .house-property-grid,
.content .house-address-form > .form-actions {
    min-width: 0;
    max-width: 100%;
}

.content .house-address-search-field {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 7px;
}

.content .house-address-search-field > label {
    margin: 0;
}

.content .house-address-search-field > small {
    display: block;
    margin: 0;
    line-height: 1.4;
}

.content .house-autocomplete-host:not([hidden]),
.content .house-address-fallback:not([hidden]),
.content .house-autocomplete-host:not([hidden]) gmp-place-autocomplete {
    display: block;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
}

.content .house-autocomplete-host[hidden],
.content .house-address-fallback[hidden] {
    display: none !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
}

.content .house-autocomplete-host:not([hidden]) {
    min-height: 44px;
    position: relative;
    z-index: 4;
}

.content .house-address-structured-grid {
    display: grid !important;
    grid-template-columns: minmax(220px, 1.5fr) minmax(220px, 1.25fr) minmax(170px, 1fr) minmax(110px, .55fr) minmax(120px, .65fr) minmax(150px, .8fr) !important;
    gap: 14px !important;
    align-items: start;
    width: 100%;
}

.content .house-address-structured-grid > label,
.content .house-property-grid > label {
    min-width: 0 !important;
    width: 100%;
    margin: 0;
}

.content .house-address-structured-grid input,
.content .house-address-structured-grid select,
.content .house-property-grid input {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
}

.content .house-property-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(180px, 1fr)) !important;
    gap: 14px !important;
    width: min(100%, 520px);
}

.content .house-manual-override {
    display: inline-flex !important;
    align-items: flex-start;
    gap: 10px;
    width: 100%;
    max-width: 100%;
    padding: 12px 14px;
    border: 1px solid #e5e7eb;
    border-radius: 10px;
    background: #fafafa;
    line-height: 1.45;
}

.content .house-manual-override input[type="checkbox"] {
    flex: 0 0 auto;
    width: auto !important;
    min-width: auto !important;
    margin: 3px 0 0;
}

.content .house-address-form > label > textarea {
    width: 100% !important;
    min-height: 108px;
    resize: vertical;
}

/* Standard desktop reduction when the application sidebar limits content width. */
@media (max-width: 1500px) {
    .content .house-address-structured-grid {
        grid-template-columns: repeat(3, minmax(180px, 1fr)) !important;
    }
}

@media (max-width: 1180px) {
    .content .house-address-structured-grid,
    .content .house-property-grid,
    .content form .grid-4,
    .content form .four,
    .content form .ndis-form-grid,
    .content form .ac-form-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 820px) {
    .content .house-address-structured-grid,
    .content .house-property-grid,
    .content form .grid-2,
    .content form .grid-3,
    .content form .grid-4,
    .content form .two,
    .content form .three,
    .content form .four,
    .content form .form-grid,
    .content form .ndis-form-grid,
    .content form .ac-form-grid {
        grid-template-columns: minmax(0, 1fr) !important;
    }

    .content .house-manual-override,
    .content .house-property-grid {
        width: 100%;
    }

    .content .form-actions .btn,
    .content form .form-actions .btn {
        max-width: 100%;
    }
}

@media (max-width: 480px) {
    .content form input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
    .content form select,
    .content form textarea,
    .content .form input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
    .content .form select,
    .content .form textarea {
        font-size: 16px;
    }

    .content .form-actions,
    .content form .form-actions {
        align-items: stretch;
    }

    .content .form-actions .btn,
    .content form .form-actions .btn {
        width: 100%;
        justify-content: center;
    }
}
