:root {
    color-scheme: light;
    font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    color: #202124;
    background: #f4f5f7;
}

body { margin: 0; }
.home-main { line-height: 1.6; }
.home-hero { padding: clamp(1rem, 4vw, 2.5rem); background: #fff; border: 1px solid #cbd5e1; border-radius: .5rem; }
.home-hero h1 { margin: .25rem 0 1rem; font-size: clamp(1.8rem, 5vw, 3rem); line-height: 1.2; }
.home-eyebrow { margin: 0; font-weight: 700; color: #334155; }
.home-book-button { display: inline-block; padding: .8rem 1.25rem; border-radius: .35rem; background: #174ea6; color: #fff; font-weight: 700; text-decoration: none; }
.home-book-button:hover { background: #123c80; text-decoration: underline; }
.home-sections { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1rem; margin-top: 1.5rem; }
.home-sections > section { min-width: 0; padding: 1.25rem; border: 1px solid #cbd5e1; border-radius: .5rem; background: #fff; overflow-wrap: anywhere; }
.home-sections h2 { margin-top: 0; }
.home-catalog { margin-top: 1.5rem; }
.home-introduction { margin-top: 1.5rem; line-height: 1.6; overflow-wrap: anywhere; }
.manager-shell small { display: block; margin-top: .35rem; line-height: 1.5; }
.home-service-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1rem; }
.home-service-card { min-width: 0; border: 1px solid #cbd5e1; border-radius: .5rem; background: #fff; padding: 1.25rem; overflow-wrap: anywhere; }
.home-service-card h3 { margin-top: .25rem; }
.home-service-category { color: #334155; font-weight: 700; margin: 0; }
.legal-main { max-width: 50rem; line-height: 1.6; overflow-wrap: anywhere; }
.legal-main h1 { border-bottom: 2px solid #333; padding-bottom: .6rem; }
.legal-main h2 { margin-top: 1.8rem; }
.legal-main h3 { margin-top: 1.3rem; }
.legal-main .highlight { background: #f9f9f9; padding: 1rem; border-left: 4px solid #0066cc; margin-block: 1.25rem; }
.manager-shell { box-sizing: border-box; overflow-wrap: anywhere; }
.manager-shell input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]), .manager-shell select { max-width: 100%; }
.manager-shell form { margin-block: 1rem; }
.manager-shell form > div { margin-block: 1rem; }
@media (min-width: 48rem) { .home-service-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.voicemail-table-scroll { max-width: 100%; overflow-x: auto; }
.voicemail-table-scroll:focus-visible { outline: 3px solid #174ea6; outline-offset: 3px; }
.voicemail-table-scroll th, .voicemail-table-scroll td { padding: .6rem; text-align: left; vertical-align: top; }
.voicemail-player { max-width: 100%; }
@media (min-width: 48rem) { .home-sections { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.site-shell { width: min(calc(100% - 2rem), 68rem); margin-inline: auto; }
.site-main { padding-block: 1.5rem 3rem; min-width: 0; }
.site-skip-link { position: absolute; left: .75rem; top: -5rem; z-index: 10; padding: .7rem 1rem; background: #fff; color: #174ea6; }
.site-skip-link:focus { top: .75rem; }
.site-header { background: #172b3a; color: #fff; }
.site-header-inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem 2rem; padding-block: 1rem; }
.site-brand { color: #fff; font-size: 1.3rem; font-weight: 800; text-decoration: none; }
.site-nav ul, .site-footer ul { display: flex; flex-wrap: wrap; gap: .25rem 1.25rem; list-style: none; margin: 0; padding: 0; }
.site-nav a { color: #fff; display: inline-block; padding: .5rem .1rem; text-underline-offset: .2rem; }
.site-nav a[aria-current="page"] { font-weight: 800; text-decoration-thickness: .18rem; }
.site-footer { border-top: 1px solid #cbd5e1; padding-block: 1.25rem; }
.site-skip-link:focus-visible, .site-footer a:focus-visible, .site-main a:focus-visible, .site-main button:focus-visible, .site-main input:focus-visible, .site-main select:focus-visible, .site-main textarea:focus-visible { outline: 3px solid #174ea6; outline-offset: 3px; }
.site-header a:focus-visible { outline: 3px solid #fbbf24; outline-offset: 3px; }
.account-container { max-width: 68rem; margin: 0 auto; padding: 1.25rem; }
#addressForm > div, #editAddressForm > div { margin-block: 1rem; }
#addressForm > div > input:not([type="checkbox"]), #editAddressForm > div > input:not([type="checkbox"]) { display: block; width: min(100%, 26rem); max-width: 100%; }
#addressForm > div > small, #editAddressForm > div > small { display: block; max-width: 40rem; margin-top: .35rem; line-height: 1.45; }
.manager-technicians-table-scroll { max-width: 100%; overflow-x: auto; }
.manager-technicians-table-scroll:focus-visible { outline: 3px solid #174ea6; outline-offset: 2px; }
.schedule-shell > header { margin-bottom: 1rem; }
.schedule-step-context { color: #334155; font-weight: 700; margin: 0 0 .45rem; }
.schedule-shell > section { background: #fff; border: 1px solid #d8dce2; border-radius: .5rem; padding: clamp(1rem, 3vw, 1.5rem); margin-block: 1rem; min-width: 0; }
.schedule-shell > section > h2 { margin-top: 0; }
.schedule-shell fieldset { min-width: 0; }
.schedule-shell .booking-service-form { padding: 0; border: 0; background: transparent; }
.booking-service-category { margin-block: 1.5rem; }
.booking-service-grid, .booking-review-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1rem; }
.booking-service-option { display: flex; flex-direction: column; min-width: 0; margin: 0; padding: 1rem; border: 2px solid #717780; border-radius: .5rem; background: #fff; overflow-wrap: anywhere; cursor: pointer; font-weight: 400; }
.booking-service-heading { display: flex; align-items: flex-start; gap: .65rem; }
.booking-service-heading input { flex: 0 0 auto; width: 1.25rem; height: 1.25rem; margin: .2rem 0 0; accent-color: #174ea6; }
.booking-service-heading > span { font-size: 1.1rem; line-height: 1.45; }
.booking-service-description { display: block; line-height: 1.55; margin-block: .75rem; }
.booking-service-facts { display: flex; flex-wrap: wrap; gap: .5rem 1rem; margin: auto 0 0; padding-top: .75rem; border-top: 1px solid #d8dce2; line-height: 1.5; }
.booking-service-option:has(input:checked) { background: #e8f0fe; border-color: #174ea6; }
.booking-service-option:focus-within { outline: 3px solid #174ea6; outline-offset: 3px; }
.schedule-shell form:not(.booking-service-form):not(.schedule-date-form), .booking-review-grid > section { min-width: 0; padding: 1rem; border: 1px solid #b8c1ce; border-radius: .5rem; background: #f8fafc; margin-block: 1rem; }
.schedule-shell form > div { margin-block: 1rem; }
.schedule-shell fieldset { padding: 1rem; margin-block: 1rem; border: 1px solid #717780; border-radius: .35rem; }
.schedule-shell legend { font-weight: 700; padding-inline: .35rem; }
.schedule-shell input:not([type="radio"]):not([type="checkbox"]):not([type="hidden"]), .schedule-shell select { max-width: 100%; }
.booking-review-grid > section { margin: 0; overflow-wrap: anywhere; }
.booking-review-grid h3 { margin-top: 0; }
.booking-review-grid p, .booking-review-grid li { line-height: 1.55; }
@media (min-width: 48rem) {
    .booking-service-grid, .booking-review-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.account-container section, .schedule-card, .crew-card { background: #fff; border: 1px solid #d8dce2; border-radius: .5rem; margin: 1rem 0; padding: 1rem; }
a { color: #174ea6; }
label { display: block; font-weight: 700; margin-bottom: .35rem; }
input, textarea, button { box-sizing: border-box; font: inherit; }
input, textarea { border: 1px solid #717780; border-radius: .25rem; padding: .55rem; }
textarea { max-width: 100%; width: 100%; }
button { cursor: pointer; padding: .55rem .9rem; }
.schedule-date-form { align-items: end; display: flex; flex-wrap: wrap; gap: .65rem; }
.booking-time-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem; max-width: 48rem; }
.booking-time-option { display: flex; align-items: center; gap: .45rem; min-height: 2.75rem; padding: .35rem .5rem; border: 1px solid #717780; border-radius: .25rem; }
.booking-time-option label { flex: 1; margin: 0; cursor: pointer; }
.booking-time-option:focus-within { outline: 3px solid #174ea6; outline-offset: 2px; }
.booking-time-option:has(input:checked) { background: #e8f0fe; border-color: #174ea6; }
.schedule-list { display: grid; gap: 1rem; }
.schedule-card { margin: 0; }
.schedule-card address, .schedule-container address { font-style: normal; }
.status-badge { font-weight: 700; }
.technician-instructions-panel { border-left: .35rem solid #c2410c !important; }
.staff-priority-warning { background: #fff1f2; border: 2px solid #be123c; border-radius: .35rem; color: #881337; padding: .75rem; }
.instruction-notice { border-radius: .35rem; font-weight: 700; padding: .75rem; }
.instruction-notice-success { background: #ecfdf5; border: 2px solid #047857; color: #065f46; }
.instruction-notice-error { background: #fff1f2; border: 2px solid #be123c; color: #881337; }
.required-arrival { font-size: 1.15rem; }
.secondary-schedule-time { color: #4b5563; font-size: .95rem; }

@media (min-width: 48rem) {
    .booking-time-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .schedule-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 35rem) {
    .site-shell { width: min(calc(100% - 1.5rem), 68rem); }
    .site-header-inner { display: block; }
    .site-nav { margin-top: .5rem; }
    .site-nav ul { gap: 0 1rem; }
    .account-container { padding: .75rem; }
    .schedule-date-form > * { width: 100%; }
    input, button { min-height: 2.75rem; }
}
.appointment-photo-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
    gap: 1rem;
}
.appointment-photo-group {
    background: #f8fafc;
    border-left: .3rem solid #2563eb;
    margin-top: 1rem;
    padding: .8rem;
}
.appointment-photo-group h3 { margin-top: 0; }

.appointment-photo-card {
    border: 1px solid #d7d7d7;
    border-radius: .5rem;
    padding: 1rem;
    min-width: 0;
}

.appointment-photo-card img {
    display: block;
    width: 100%;
    height: auto;
    max-height: 24rem;
    object-fit: contain;
}

.appointment-media-upload-form,
.appointment-deleted-photos { margin-top: 1.5rem; }
.appointment-photo-card form { margin-top: .5rem; }
.appointment-photo-card button { max-width: 100%; white-space: normal; }
.appointment-media-notice-success { color: #176b2c; }
.appointment-media-notice-error { color: #9b1c1c; }
.customer-appointment-status { border-left: .35rem solid #2563eb !important; }
@media (max-width: 35rem) {
    .appointment-photo-grid { grid-template-columns: minmax(0, 1fr); }
}
