.viewing-application{max-width:920px;margin:0 auto}.viewing-form-card{background:#fff;border:1px solid #dfe4ec;border-radius:16px;box-shadow:0 10px 28px rgba(22,34,55,.06);overflow:hidden}.viewing-form{padding:30px 32px}.viewing-honeypot{position:absolute;left:-9999px}.viewing-section{margin:0 0 30px;padding:0 0 30px;border:0;border-bottom:1px solid #e6eaf0}.viewing-section:last-of-type{margin-bottom:18px;padding-bottom:18px;border-bottom:0}.viewing-section legend{display:block;width:100%;margin:0 0 20px;padding:0;font-size:18px;line-height:1.25;font-weight:700;color:#172033}.viewing-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 22px;align-items:start}.viewing-field{display:flex;flex-direction:column;gap:7px;min-width:0}.viewing-field--full{grid-column:1/-1}.viewing-field label{display:block;min-height:34px;margin:0;font-size:13px;line-height:1.35;font-weight:700;color:#273248}.viewing-field input:not([type=file]),.viewing-field select,.viewing-field textarea{display:block;width:100%;box-sizing:border-box;border:1px solid #cbd3df;border-radius:9px;background:#fff;color:#172033;font:inherit}.viewing-field input:not([type=file]),.viewing-field select{height:48px;padding:0 13px}.viewing-field textarea{min-height:104px;padding:12px 13px;resize:vertical}.viewing-field input[type=file]{display:block;width:100%;box-sizing:border-box;min-height:48px;padding:9px 10px;border:1px solid #cbd3df;border-radius:9px;background:#fff;color:#172033;font:inherit}.viewing-field input:focus,.viewing-field select:focus,.viewing-field textarea:focus{outline:3px solid rgba(61,93,255,.12);border-color:#4a61ff}.viewing-help{display:block;margin-top:1px;font-size:12px;line-height:1.45;color:#727d8e}.viewing-postcode-lookup{margin:0 0 20px;padding:16px;background:#f6f8fc;border:1px solid #e0e5ee;border-radius:10px}.viewing-postcode-lookup input,.viewing-postcode-lookup select{box-sizing:border-box;height:46px;border:1px solid #cbd3df;border-radius:8px;padding:0 12px;background:#fff;font:inherit}.viewing-postcode-lookup button{height:46px;margin-left:8px;padding:0 17px;border:0;border-radius:8px;background:#465fff;color:#fff;font-weight:700;cursor:pointer}.viewing-check{display:flex;align-items:flex-start;gap:10px;font-size:13px;line-height:1.5;color:#445166}.viewing-check input{margin-top:3px;flex:0 0 auto}.viewing-actions{display:flex;justify-content:flex-end;margin-top:4px}.viewing-actions .btn{min-width:210px;text-align:center}.viewing-actions .btn:disabled{opacity:.5;cursor:not-allowed}.viewing-alert{margin-bottom:20px;padding:14px 16px;border-radius:10px}.viewing-alert--error{background:#fff2f2;border:1px solid #edc5c5;color:#8b2525}.viewing-alert ul{margin:0;padding-left:20px}.viewing-success{padding:36px 28px;text-align:center}.viewing-success h2{margin:0 0 10px;color:#172033}.viewing-success p{max-width:620px;margin:0 auto;color:#5e697b;line-height:1.6}.viewing-booking{max-width:940px}.viewing-booking-card{background:#fff;border:1px solid #dfe4ec;border-radius:18px;box-shadow:0 12px 34px rgba(22,34,55,.07);overflow:hidden}.viewing-booking-card__head{display:flex;justify-content:space-between;gap:28px;align-items:flex-end;padding:26px 28px;border-bottom:1px solid #e7eaf0}.viewing-booking-card__head h2{margin:4px 0 0;font-size:24px;color:#172033}.viewing-booking-card__head p{margin:0;max-width:360px;color:#667186;line-height:1.5}.viewing-booking-card__eyebrow{font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#6b7690}.viewing-booking-form{padding:26px 28px 28px}.viewing-day-list{display:grid;gap:18px}.viewing-day{border:1px solid #e2e7ef;border-radius:14px;overflow:hidden;background:#fbfcfe}.viewing-day__head{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:13px 16px;background:#f4f6fa;border-bottom:1px solid #e2e7ef}.viewing-day__head strong{font-size:15px;color:#172033}.viewing-day__head span{font-size:12px;color:#748095}.viewing-slot-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;padding:14px}.viewing-slot{position:relative;cursor:pointer}.viewing-slot input{position:absolute;opacity:0;pointer-events:none}.viewing-slot span{display:flex;align-items:center;justify-content:center;min-height:44px;padding:0 10px;border:1px solid #cfd7e4;border-radius:10px;background:#fff;color:#23314a;font-weight:700;transition:.15s ease}.viewing-slot:hover span{border-color:#7890ff;background:#f7f8ff}.viewing-slot input:focus-visible+span{outline:3px solid rgba(61,93,255,.16);outline-offset:2px}.viewing-slot input:checked+span{border-color:#465fff;background:#465fff;color:#fff;box-shadow:0 4px 12px rgba(70,95,255,.2)}.viewing-booking-actions{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-top:24px;padding-top:22px;border-top:1px solid #e7eaf0}.viewing-booking-actions p{margin:0;color:#6a7486;font-size:13px}.viewing-booking-actions .btn{min-width:210px;text-align:center}@media(max-width:760px){.viewing-application{max-width:none}.viewing-form{padding:22px 18px}.viewing-section{margin-bottom:24px;padding-bottom:24px}.viewing-grid{grid-template-columns:1fr;gap:16px}.viewing-field--full{grid-column:auto}.viewing-field label{min-height:0}.viewing-actions .btn{width:100%}.viewing-postcode-lookup input,.viewing-postcode-lookup select{width:100%}.viewing-postcode-lookup button{width:100%;margin:8px 0 0}.viewing-booking-card__head{display:block;padding:20px}.viewing-booking-card__head p{margin-top:10px}.viewing-booking-form{padding:18px}.viewing-slot-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;padding:12px}.viewing-day__head{align-items:flex-start;flex-direction:column;gap:3px}.viewing-booking-actions{align-items:stretch;flex-direction:column}.viewing-booking-actions .btn{width:100%}}

/* Manage My Viewing v4 */
.viewing-manage{max-width:940px}
.viewing-manage-card{overflow:hidden;background:#fff;border:1px solid #dfe4ec;border-radius:18px;box-shadow:0 12px 34px rgba(22,34,55,.07)}
.viewing-manage-summary{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:26px 28px;border-bottom:1px solid #e7eaf0}
.viewing-manage-summary h2{margin:5px 0 0;font-size:24px;line-height:1.25;color:#172033}
.viewing-status{display:inline-flex;align-items:center;justify-content:center;padding:7px 12px;border-radius:999px;background:#eef2f7;color:#425069;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}
.viewing-status--scheduled{background:#eaf7ef;color:#17633a}
.viewing-status--cancelled{background:#fff0f0;color:#982d2d}
.viewing-appointment-details{display:grid;grid-template-columns:1fr 1fr 2fr;gap:0;margin:0;padding:0;background:#f7f9fc;border-bottom:1px solid #e7eaf0}
.viewing-appointment-details>div{padding:20px 24px;border-right:1px solid #e2e7ef}
.viewing-appointment-details>div:last-child{border-right:0}
.viewing-appointment-details dt{margin:0 0 5px;color:#727d8e;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.07em}
.viewing-appointment-details dd{margin:0;color:#172033;font-size:15px;font-weight:700;line-height:1.45}
.viewing-manage-section{padding:26px 28px;border-bottom:1px solid #e7eaf0}
.viewing-manage-section:last-child{border-bottom:0}
.viewing-manage-section h3{margin:0 0 6px;color:#172033;font-size:19px}
.viewing-manage-section>p,.viewing-manage-section>div>p{margin:0 0 19px;color:#657085;line-height:1.5}
.viewing-manage-section--confirm{display:flex;align-items:center;justify-content:space-between;gap:28px;background:#fbfcff}
.viewing-manage-section--confirm>div>p{margin-bottom:0}
.viewing-manage-section--confirm .btn{min-width:210px}
.viewing-manage-section--confirm .btn:disabled{cursor:default;opacity:.75}
.viewing-manage-slots{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.viewing-manage-slot{position:relative;cursor:pointer}
.viewing-manage-slot input{position:absolute;opacity:0;pointer-events:none}
.viewing-manage-slot span{display:flex;min-height:58px;box-sizing:border-box;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:8px;border:1px solid #cfd7e4;border-radius:10px;background:#fff;color:#526076;line-height:1.2;transition:.15s ease}
.viewing-manage-slot strong{color:#23314a;font-size:13px}
.viewing-manage-slot:hover span{border-color:#7890ff;background:#f7f8ff}
.viewing-manage-slot input:focus-visible+span{outline:3px solid rgba(61,93,255,.16);outline-offset:2px}
.viewing-manage-slot input:checked+span{border-color:#465fff;background:#465fff;color:#fff;box-shadow:0 4px 12px rgba(70,95,255,.2)}
.viewing-manage-slot input:checked+span strong{color:#fff}
.viewing-manage-action{display:flex;justify-content:flex-end;margin-top:18px}
.viewing-manage-action .btn{min-width:210px}
.viewing-manage-section--cancel{background:#fffafa}
.viewing-manage-section--cancel form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px 18px;align-items:end}
.viewing-manage-section--cancel .viewing-field label{min-height:0}
.viewing-manage-section--cancel .viewing-field label span{font-weight:400;color:#727d8e}
.viewing-cancel-button{min-height:48px;padding:0 20px;border-color:#d8a4a4;color:#8b2525;background:#fff}
.viewing-cancel-button:hover{border-color:#b54c4c;background:#fff2f2}
.viewing-alert--success{background:#edf9f1;border:1px solid #b9dfc6;color:#17633a}
.viewing-alert p{margin:0}

@media(max-width:760px){
  .viewing-manage-summary{align-items:flex-start;padding:21px 18px}
  .viewing-manage-summary h2{font-size:21px}
  .viewing-appointment-details{grid-template-columns:1fr 1fr}
  .viewing-appointment-details>div{padding:17px 18px}
  .viewing-appointment-details>div:nth-child(2){border-right:0}
  .viewing-appointment-details__address{grid-column:1/-1;border-top:1px solid #e2e7ef}
  .viewing-manage-section{padding:22px 18px}
  .viewing-manage-section--confirm{display:block}
  .viewing-manage-section--confirm>div>p{margin-bottom:17px}
  .viewing-manage-section--confirm .btn{width:100%}
  .viewing-manage-slots{grid-template-columns:repeat(2,minmax(0,1fr))}
  .viewing-manage-action .btn{width:100%}
  .viewing-manage-section--cancel form{grid-template-columns:1fr}
  .viewing-cancel-button{width:100%}
}

/* Homige date-first viewing selector */
.viewing-date-selector {
    margin-top: 22px;
    padding: 20px;
    border: 1px solid #dce2ec;
    border-radius: 14px;
    background: #f7f9fc;
}

.viewing-date-toolbar {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 14px;
    align-items: center;
    margin-bottom: 16px;
}

.viewing-date-toolbar > strong {
    color: #536178;
    font-size: 13px;
    text-align: center;
}

.viewing-date-nav {
    min-height: 40px;
    padding: 0 15px;
    border: 1px solid #c8d1df;
    border-radius: 8px;
    background: #fff;
    color: #263651;
    font-weight: 700;
    cursor: pointer;
}

.viewing-date-nav:hover:not(:disabled) {
    border-color: #3157d5;
    color: #3157d5;
}

.viewing-date-nav:disabled {
    opacity: .4;
    cursor: default;
}

.viewing-date-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 10px;
}

.viewing-date-card {
    display: flex;
    min-height: 120px;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 10px;
    border: 1px solid #cbd4e2;
    border-radius: 11px;
    background: #fff;
    color: #35445e;
    cursor: pointer;
}

.viewing-date-card:hover {
    border-color: #3157d5;
}

.viewing-date-card > span {
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
}

.viewing-date-card > strong {
    margin-top: 3px;
    color: #172033;
    font-size: 30px;
    line-height: 1;
}

.viewing-date-card > small {
    margin-top: 4px;
    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
}

.viewing-date-card > em {
    margin-top: 9px;
    color: #748096;
    font-size: 11px;
    font-style: normal;
}

.viewing-date-card.is-selected {
    border-color: #3157d5;
    background: #3157d5;
    color: #fff;
    box-shadow: 0 5px 16px rgba(49, 87, 213, .22);
}

.viewing-date-card.is-selected > strong,
.viewing-date-card.is-selected > em {
    color: #fff;
}

.viewing-time-container {
    margin-top: 16px;
}

.viewing-time-panel {
    padding: 18px;
    border: 1px solid #dce2ec;
    border-radius: 11px;
    background: #fff;
}

.viewing-time-heading {
    display: flex;
    justify-content: space-between;
    gap: 14px;
    align-items: center;
    margin-bottom: 15px;
}

.viewing-time-heading strong {
    color: #172033;
    font-size: 16px;
}

.viewing-time-heading span {
    color: #66748a;
    font-size: 12px;
    font-weight: 700;
}

.viewing-time-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 9px;
}

.viewing-time-option {
    position: relative;
    cursor: pointer;
}

.viewing-time-option input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.viewing-time-option span {
    display: flex;
    min-height: 45px;
    align-items: center;
    justify-content: center;
    border: 1px solid #cbd4e2;
    border-radius: 8px;
    background: #fff;
    color: #263651;
    font-size: 14px;
    font-weight: 800;
}

.viewing-time-option:hover span {
    border-color: #3157d5;
    background: #f4f7ff;
}

.viewing-time-option input:checked + span {
    border-color: #3157d5;
    background: #3157d5;
    color: #fff;
    box-shadow: 0 4px 12px rgba(49, 87, 213, .2);
}

.viewing-time-option input:focus-visible + span {
    outline: 3px solid rgba(49, 87, 213, .2);
    outline-offset: 2px;
}

@media (max-width: 760px) {
    .viewing-date-selector {
        padding: 14px;
    }

    .viewing-date-toolbar {
        grid-template-columns: 1fr 1fr;
    }

    .viewing-date-toolbar > strong {
        grid-column: 1 / -1;
        grid-row: 1;
    }

    .viewing-date-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .viewing-date-card {
        min-height: 105px;
    }

    .viewing-time-heading {
        display: block;
    }

    .viewing-time-heading span {
        display: block;
        margin-top: 5px;
    }

    .viewing-time-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 400px) {
    .viewing-time-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}


.viewing-date-card[hidden],
.viewing-time-panel[hidden] {
    display: none !important;
}
