/* Application pages redesign (AddressRequest.aspx, DrivewayApplication.aspx).
   Scoped to .app-redesign so ROWUtilityApplication and the rest of the site are unaffected.
   Revert: restore the files in _backup/2026-10-27-pre-redesign and remove the link to this file. */
.app-redesign {
    --ar-radius: 18px;
    --ar-shadow: 0 1px 2px rgba(17,59,40,.06), 0 12px 32px rgba(17,59,40,.08);
    --ar-ring: rgba(38,100,71,.18);
    max-width: 1080px; margin: 0 auto; padding: 8px 16px 72px;
    color: var(--text);
}

/* ---------- Hero ---------- */
.app-redesign .ar-hero {
    position: relative; overflow: hidden; margin: 8px 0 28px; padding: 40px 36px;
    border-radius: 24px; color: #fff;
    background: radial-gradient(900px 300px at 100% 0%, rgba(201,162,39,.28), transparent 60%),
                linear-gradient(135deg, var(--green-dark), var(--green));
    box-shadow: var(--ar-shadow);
}
.app-redesign .ar-hero .ar-eyebrow { display: inline-block; font-size: 12px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: #f3dc8f; margin-bottom: 10px; }
.app-redesign .ar-hero h1, .app-redesign .ar-hero h2 { margin: 0 0 10px; color: #fff; font-size: clamp(28px, 4vw, 40px); line-height: 1.15; font-weight: 800; }
.app-redesign .ar-hero p { margin: 0; max-width: 62ch; font-size: 17px; line-height: 1.6; color: rgba(255,255,255,.9); }
.app-redesign .ar-hero-points { display: flex; flex-wrap: wrap; gap: 10px; margin: 22px 0 0; padding: 0; list-style: none; }
.app-redesign .ar-hero-points li { padding: 7px 14px; border-radius: 999px; background: rgba(255,255,255,.14); border: 1px solid rgba(255,255,255,.22); font-size: 14px; font-weight: 600; }

/* ---------- Cards ---------- */
.app-redesign .ar-card, .app-redesign .card-section, .app-redesign .dwapp-card, .app-redesign .premium-card {
    background: #fff; border: 1px solid #dbe5e0; border-radius: var(--ar-radius);
    box-shadow: var(--ar-shadow); margin: 0 0 24px !important; overflow: hidden;
}
.app-redesign .ar-card > .card-body, .app-redesign .card-section > .card-body, .app-redesign .dwapp-card > .card-body, .app-redesign .dwapp-card-body { padding: 28px 32px; }
.app-redesign #map-section > .card-body { padding: 0; }
.app-redesign .ar-card-head { display: flex; align-items: center; gap: 14px; margin: 0 0 22px; }
.app-redesign .ar-card-head h3, .app-redesign .ar-section-heading, .app-redesign .dwapp-numbered-title, .app-redesign .ba-section-title-mt80 {
    margin: 0 0 18px; padding: 0; font-size: 22px; font-weight: 800; color: var(--green-dark); letter-spacing: -.01em; border: 0;
}
.app-redesign .ar-card-head h3 { margin: 0; }
.app-redesign .ar-card-head p { margin: 2px 0 0; color: #4a5a6b; font-size: 14px; }
.app-redesign .ar-num {
    flex: none; width: 38px; height: 38px; border-radius: 12px; display: grid; place-items: center;
    background: var(--green-dark); color: #fff; font-weight: 800; font-size: 17px;
}
.app-redesign .ar-doc-heading-margin { margin-bottom: 14px; }

/* ---------- Guide + stepper ---------- */
.app-redesign .application-guide { padding: 26px 32px 22px; background: linear-gradient(180deg, var(--sand), #fff); border-bottom: 1px solid #dbe5e0; }
.app-redesign .application-guide h3 { font-size: 22px; font-weight: 800; color: var(--green-dark); margin: 0 0 4px; }
.app-redesign .application-progress { gap: 10px; margin: 18px 0 8px; counter-reset: step; }
.app-redesign .application-progress li {
    counter-increment: step; position: relative; padding: 14px 14px 14px 52px; border: 1px solid #dbe5e0; border-top-width: 1px;
    border-radius: 14px; background: #fff; font-weight: 700; color: #3a4a5c; min-height: 64px;
}
.app-redesign .application-progress li::before {
    content: counter(step); position: absolute; left: 14px; top: 14px; width: 28px; height: 28px; border-radius: 50%;
    display: grid; place-items: center; font-size: 14px; font-weight: 800; background: #e8eeeb; color: #3a4a5c;
}
.app-redesign .application-progress li[aria-current="step"] { border-color: var(--green); background: #f1f8f4; box-shadow: 0 0 0 3px var(--ar-ring); color: var(--green-dark); }
.app-redesign .application-progress li[aria-current="step"]::before { background: var(--green); color: #fff; }
.app-redesign .application-progress li.is-complete { border-color: var(--green-light); color: var(--green-dark); }
.app-redesign .application-progress li.is-complete::before { content: "\2713"; background: var(--green-light); color: #fff; }
.app-redesign .application-progress span { font-weight: 500; color: #4a5a6b; }
.app-redesign .application-map-tools { margin-top: 16px; }
.app-redesign .application-map-tools button, .app-redesign .application-continue {
    min-height: 48px; padding: 10px 22px; border-radius: 999px; font-weight: 700; border: 2px solid var(--green);
    background: #fff; color: var(--green-dark); transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
}
.app-redesign .application-map-tools button:first-child, .app-redesign .application-continue { background: var(--green); color: #fff; box-shadow: 0 6px 18px rgba(38,100,71,.28); }
.app-redesign .application-map-tools button:hover:not(:disabled) { transform: translateY(-2px); background: var(--green-dark); color: #fff; }
.app-redesign .app-map { border-radius: 0; height: clamp(380px, 62vh, 600px); }
.app-redesign .ar-map-footer-bg, .app-redesign #map-section .bg-light { background: var(--sand) !important; padding: 16px 20px !important; border-top: 1px solid #dbe5e0; }
.app-redesign .ar-map-footer-bg br, .app-redesign #map-section .bg-light br { display: none; }
.app-redesign .application-map-legend { background: #fff; border-bottom: 1px solid #dbe5e0; padding: 12px 32px; }

/* ---------- Form controls ---------- */
.app-redesign .form-label, .app-redesign .dwapp-field-label, .app-redesign label.ar-label {
    display: block; margin: 0 0 6px; font-size: 14px; font-weight: 700; color: var(--green-dark);
}
.app-redesign .form-control, .app-redesign .form-control-lg {
    height: auto; min-height: 48px; padding: 11px 14px; font-size: 16px; line-height: 1.4; color: var(--text);
    background: #fff; border: 1.5px solid #b9c9c2; border-radius: 12px; box-shadow: none;
    transition: border-color .15s ease, box-shadow .15s ease;
}
.app-redesign textarea.form-control { min-height: 120px; resize: vertical; }
.app-redesign .form-control:hover { border-color: var(--green-light); }
.app-redesign .form-control:focus { border-color: var(--green); box-shadow: 0 0 0 4px var(--ar-ring); outline: 0; }
.app-redesign .form-control[disabled], .app-redesign .form-control[readonly] { background: var(--sand); color: #3a4a5c; border-style: dashed; }
.app-redesign .row.g-4 > [class*="col-"] { margin-bottom: 18px; }
.app-redesign .text-muted, .app-redesign small.text-muted { color: #566678; }
.app-redesign .text-danger { color: #a61e1e; }
.app-redesign .alert { border-radius: 12px; border-width: 1px; padding: 14px 16px; }
.app-redesign .alert-danger { background: #fff6f5; border-color: #e4b4b0; color: #6b2222; }
.app-redesign .alert-warning { background: #fffaf0; border-color: #ecd9a2; color: #5d4800; }

/* ---------- Required / valid indicator (added by _base.js .req-wrap) ----------
   Pin the icon to the first line of the field so it lines up the same on single-line
   inputs and tall textareas (it was vertically centred, which floated it mid-textarea). */
.app-redesign .req-wrap { position: relative; display: block; }
.app-redesign .req-wrap > .form-control { padding-right: 46px !important; }
.app-redesign .req-wrap::after { top: 13px; right: 14px; transform: none; width: 22px; height: 22px; }

/* ---------- Buttons ---------- */
.app-redesign .largeButton { padding: 13px 32px !important; font-size: 16px !important; border-radius: 999px !important; }
.app-redesign .largeButton.cancel { background: #fff !important; color: var(--green-dark) !important; border: 2px solid var(--border) !important; box-shadow: none !important; }
.app-redesign .largeButton.cancel:hover { background: var(--sand) !important; border-color: var(--green) !important; transform: none !important; }
.app-redesign .ar-submit-btn, .app-redesign .dwapp-submit-btn { padding: 16px 48px !important; font-size: 18px !important; }
.app-redesign .app-redraw-btn { padding: 10px 24px !important; font-size: 15px !important; }

/* ---------- Documents ---------- */
.app-redesign .dwapp-doc-row {
    margin: 0 0 12px !important; padding: 16px 18px !important; border: 1px solid #dbe5e0; border-radius: 14px; background: var(--sand);
}
.app-redesign .ar-doc-status-icon, .app-redesign .dwapp-doc-status-icon { width: 20px; height: 20px; vertical-align: -4px; margin: 0 6px; }
.app-redesign .app-doc-ok { color: #1c6b43; font-weight: 700; }
.app-redesign .app-doc-bad { color: #8a5a00; font-weight: 600; }
.app-redesign input[type="file"].largeButton { max-width: 100%; }
.app-redesign .ar-doc-filenames { margin-top: 8px; font-size: 13px; color: #3a4a5c; overflow-wrap: anywhere; }

/* ---------- Review / agreement ---------- */
.app-redesign .ar-agree-label, .app-redesign .app-agree-box { display: block; text-align: left; }
.app-redesign .ar-agree-box, .app-redesign .app-agree-box { padding: 20px 22px; border: 1px solid #dbe5e0; border-radius: 14px; background: var(--sand); }
.app-redesign .app-agree-box > div { gap: 12px; margin-bottom: 14px !important; align-items: flex-start !important; display: flex; }
.app-redesign .app-agree-box > div:last-child { margin-bottom: 0 !important; }
.app-redesign .dwapp-agree-label { margin: 0; font-weight: 500; line-height: 1.55; cursor: pointer; flex: 1; }
.app-redesign .dwapp-agree-checkbox input, .app-redesign #Agree { width: 22px; height: 22px; accent-color: var(--green); margin: 2px 0 0; }
.app-redesign .ar-submit-intro, .app-redesign .dwapp-submit-intro { max-width: 60ch; margin: 0 auto 22px; color: #2c3b4d; }
.app-redesign .ar-submit-bar { text-align: center; padding-top: 6px; }

/* ---------- Payment + notes ---------- */
.app-redesign .app-invoiced-box, .app-redesign .app-paid-box, .app-redesign .app-due-box {
    height: 100%; padding: 20px; border: 1px solid #dbe5e0; border-radius: 14px; background: var(--sand);
}
.app-redesign .app-due-box { background: #fff8e6; border-color: #ecd9a2; }
.app-redesign .app-summary-label { font-size: 12px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: #566678; margin-bottom: 6px; }
.app-redesign .app-invoiced-value, .app-redesign .app-paid-value, .app-redesign .app-due-value { font-size: 30px; font-weight: 800; color: var(--green-dark); margin-bottom: 8px; }
.app-redesign .app-review-notes-box { padding: 16px 18px; border-left: 4px solid var(--gold); background: #fffdf5; border-radius: 0 12px 12px 0; }
.app-redesign .app-review-notes-box .table { margin: 0; }
.app-redesign .table-custom thead th, .app-redesign .app-review-notes-box thead th { background: var(--green-dark); color: #fff; border: 0; }

/* ---------- Modals (same markup/behavior, new look) ---------- */
.app-redesign .modal-content, .modal .modal-content { border: 0; border-radius: 20px; overflow: hidden; box-shadow: 0 30px 80px rgba(10,30,20,.35); }
.app-redesign .modal-header {
    padding: 20px 24px; background: linear-gradient(135deg, var(--green-dark), var(--green)); color: #fff; border: 0; text-align: left !important;
}
.app-redesign .modal-title { color: #fff; font-weight: 800; font-size: 22px; line-height: 1.3; }
.app-redesign .modal-header .close { opacity: .9; color: #fff; text-shadow: none; font-size: 30px; font-weight: 400; margin-top: -2px; border-radius: 10px; }
.app-redesign .modal-header .close:hover { opacity: 1; background: rgba(255,255,255,.16); }
.app-redesign .modal-body { padding: 24px 28px; font-size: 17px; line-height: 1.65; color: var(--text); }
.app-redesign #message h4, .app-redesign .ar-msg-heading { font-size: 19px; line-height: 1.6; font-weight: 600; color: var(--green-dark); margin: 0; }
.app-redesign #message .ar-msg-heading br { display: none; }
.app-redesign #message ol { padding-left: 22px; } .app-redesign #message li { margin-bottom: 8px; }
.app-redesign .modal-footer, .app-redesign .app-modal-footer-wrap { padding: 16px 24px 22px; border: 0; text-align: center; }
.app-redesign .modal-footer .btn, .app-redesign .app-modal-close-btn, .app-redesign .btn-close-modal {
    min-width: 140px; padding: 11px 28px; border-radius: 999px; font-weight: 700; font-size: 16px;
    background: var(--green); border: 2px solid var(--green); color: #fff;
}
.app-redesign .modal-footer .btn:hover, .app-redesign .app-modal-close-btn:hover { background: var(--green-dark); border-color: var(--green-dark); color: #fff; }
.app-redesign .application-validation-warning { border-radius: 12px; background: #fffaf0; border-left: 4px solid var(--gold); }
.app-redesign #searchResultsModal .modal-body { background: var(--sand); }
.app-redesign #searchResultsModal #searchText { height: 52px; font-size: 17px; }
.app-redesign #searchResultsModal .btn-success { height: 52px; border-radius: 12px; font-weight: 700; }
.app-redesign #search_results_table { background: #fff; border-radius: 12px; overflow: hidden; border: 1px solid #dbe5e0; }
.app-redesign #search_results_table thead th { background: var(--green-dark); color: #fff; border-color: var(--green-dark); }
.app-redesign #search_results_table > tbody > tr:hover { background: #f1f8f4; }
.app-redesign .dwapp-instr-img { border-radius: 12px; }
.app-redesign .dwapp-instr-correct { color: #1c6b43; } .app-redesign .dwapp-instr-wrong { color: #a61e1e; }

/* ---------- Validation (shared script output) ---------- */
.app-redesign .application-errors { border-radius: 14px; border-width: 1.5px; }

@media (max-width: 767px) {
    .app-redesign { padding: 0 12px 56px; }
    .app-redesign .ar-hero { padding: 28px 22px; border-radius: 18px; }
    .app-redesign .ar-card > .card-body, .app-redesign .card-section > .card-body, .app-redesign .dwapp-card > .card-body, .app-redesign .dwapp-card-body { padding: 22px 18px; }
    .app-redesign .application-guide { padding: 20px 16px 16px; }
    .app-redesign .application-progress li { padding: 10px 8px 10px 44px; min-height: 0; }
    .app-redesign .application-progress li::before { left: 8px; top: 8px; }
    .app-redesign .modal-body { padding: 18px; font-size: 16px; }
    .app-redesign .ar-submit-btn, .app-redesign .dwapp-submit-btn { width: 100%; padding: 16px 20px !important; }
}
@media (prefers-reduced-motion: reduce) { .app-redesign * { transition: none !important; } }
.app-redesign .ar-card-head h3 small { font-size: 14px; font-weight: 600; margin-left: 6px; }

/* ---------- Sub-section inside a card (Document Uploads on AddressRequest) ---------- */
.app-redesign .ar-subsection { margin-top: 36px; padding-top: 30px; border-top: 2px dashed #cfdcd5; }
.app-redesign .ar-subhead { display: flex; align-items: center; gap: 14px; margin: 0 0 18px; }
.app-redesign .ar-subhead-icon { flex: none; width: 42px; height: 42px; border-radius: 12px; display: grid; place-items: center; background: #e6f1ec; color: var(--green-dark); font-size: 18px; }
.app-redesign .ar-subhead h4 { margin: 0; font-size: 19px; font-weight: 800; color: var(--green-dark); }
.app-redesign .ar-subhead h4 small { font-size: 13px; font-weight: 600; color: #566678; margin-left: 6px; }
.app-redesign .ar-subhead p { margin: 2px 0 0; font-size: 14px; color: #4a5a6b; }


/* =====================================================================
   Batch 2: MyBNZPortal, BuildingApplication, ZoningApplicationForm, LocationSearch
   ===================================================================== */
.app-redesign.portal-page { max-width: none; width: min(1560px, 96vw); margin-left: auto; margin-right: auto; padding-left: 0; padding-right: 0; }
.app-redesign.portal-page .p-block { margin-bottom: 24px; }
/* Applications table: full width, wrapping cells, no scrollbars */
.app-redesign.portal-page .table-responsive { overflow: visible !important; border: 1px solid #dbe5e0; border-radius: 14px; width: 100%; }
.app-redesign.portal-page #dt { width: 100% !important; table-layout: auto; font-size: 14px; }
.app-redesign.portal-page #dt > thead > tr > th { white-space: normal; padding: 12px 10px; font-size: 12px; }
.app-redesign.portal-page #dt > tbody > tr > td { padding: 12px 10px; overflow-wrap: anywhere; word-break: normal; }
.app-redesign.portal-page #dt .smallButton { white-space: normal !important; }
.app-redesign.portal-page .dataTables_wrapper { overflow: visible; }
.app-redesign .pp-form-label { display: block; margin: 0 0 6px; font-size: 14px; font-weight: 700; color: var(--green-dark); }
.app-redesign .visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* Input groups with icon addons (Building) */
.app-redesign .input-group { width: 100%; }
.app-redesign .input-group-addon { min-width: 46px; background: #e6f1ec; color: var(--green-dark); border: 1.5px solid #b9c9c2; border-right: 0; border-radius: 12px 0 0 12px; font-weight: 700; }
.app-redesign .input-group .form-control:not(:first-child) { border-radius: 0 12px 12px 0; }
.app-redesign .readonly-field, .app-redesign .form-control[readonly] { background: var(--sand); border-style: dashed; color: #3a4a5c; }
.app-redesign .ba-save-wrap { margin-top: 28px; padding-top: 22px; border-top: 1px solid #e3ebe7; }
.app-redesign .section-divider { border-top: 2px dashed #cfdcd5; margin: 30px 0 24px; }
.app-redesign .contractor-header, .app-redesign .subcontractor-header { margin: 0 0 14px; font-size: 18px; font-weight: 800; color: var(--green-dark); }
.app-redesign .ba-siteuse-box { padding: 18px 20px; border-left: 4px solid var(--gold); background: #fffdf5; border-radius: 0 12px 12px 0; margin-bottom: 20px; }
.app-redesign .app-agree-box p { line-height: 1.65; }
.app-redesign .ba-readonly-mode .form-control { background: var(--sand); }

/* Tables (checklists, inspections, portal) */
.app-redesign .table { margin-bottom: 0; background: #fff; }
.app-redesign .table > thead > tr > th, .app-redesign .table-header-row th, .app-redesign .custom-table-header th {
    background: var(--green-dark); color: #fff; border: 0; padding: 13px 14px; font-size: 13px; letter-spacing: .04em; text-transform: uppercase; white-space: nowrap;
}
.app-redesign .table > tbody > tr > td { padding: 14px; vertical-align: middle; border-top: 1px solid #e3ebe7; }
.app-redesign .table-hover > tbody > tr:hover { background: #f1f8f4; }
.app-redesign .table-responsive { border: 1px solid #dbe5e0; border-radius: 14px; overflow-x: auto; background: #fff; }
.app-redesign .table caption { padding: 12px 14px; color: #4a5a6b; caption-side: top; }
.app-redesign .ba-empty-note { text-align: center; color: #566678; padding: 22px; }
.app-redesign .status-badge, .app-redesign .label, .app-redesign .badge { display: inline-block; padding: 4px 12px; border-radius: 999px; font-size: 12px; font-weight: 700; }
.app-redesign .smallButton { padding: 8px 18px !important; font-size: 14px !important; border-radius: 999px !important; }
.app-redesign .smallButton-outline { background: #fff !important; color: var(--green-dark) !important; border: 2px solid var(--green) !important; box-shadow: none !important; }

/* Zoning sections */
.app-redesign .zaf-success-box { background: var(--sand); border: 1px solid #dbe5e0; border-left: 5px solid var(--green-light); border-radius: 14px; padding: 22px 26px; margin: 0 0 8px; }
.app-redesign .zaf-danger-box { background: #fffaf0; border: 1px solid #ecd9a2; border-left: 5px solid var(--gold); border-radius: 14px; padding: 24px 28px; margin: 8px 0 0; }
.app-redesign .zaf-narrow-center, .app-redesign .zaf-narrow-center-800 { max-width: 100%; }
.app-redesign .zaf-error-text { color: #6b2222; text-align: left; background: #fff6f5; border-radius: 10px; padding: 10px 14px; }
.app-redesign .zaf-parcel-list { padding-left: 20px; } .app-redesign .zaf-parcel-list li { margin: 6px 0; }
.app-redesign .zaf-doc-intro { font-weight: 700; color: var(--green-dark); margin: 18px 0 8px; }
.app-redesign .zaf-doc-note { color: #4a5a6b; font-size: 14px; }
.app-redesign .zaf-agree-check { display: inline-flex; align-items: flex-start; gap: 12px; text-align: left; }
.app-redesign .body-copy { line-height: 1.65; }
.app-redesign .my-40 { margin-top: 28px; margin-bottom: 8px; }
.app-redesign .ar-card-head i { font-size: 17px; }

/* Portal (MyBNZPortal) */
.app-redesign .portal-heading { margin: 0 0 16px; font-size: 24px; font-weight: 800; color: var(--green-dark); }
.app-redesign .profile-nav { display: inline-flex; flex-wrap: wrap; gap: 10px; align-items: center; margin: 0 0 22px; }
.app-redesign .profile-nav > span { display: none; }
.app-redesign .profile-nav a { display: inline-flex; align-items: center; gap: 8px; padding: 9px 18px; border-radius: 999px; background: #fff; border: 1.5px solid #cfdcd5; text-decoration: none; }
.app-redesign .profile-nav a:hover { border-color: var(--green); background: #f1f8f4; }
.app-redesign .summary-card { height: 100%; margin: 0 0 18px; padding: 20px 22px; background: #fff; border: 1px solid #dbe5e0; border-radius: 16px; box-shadow: var(--ar-shadow); text-align: left; }
.app-redesign .summary-card--green { border-bottom: 4px solid var(--green-light); } .app-redesign .summary-card--red { border-bottom: 4px solid #c9524a; }
.app-redesign .summary-label { font-size: 12px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: #566678; }
.app-redesign .summary-value { font-size: 30px; font-weight: 800; color: var(--green-dark); }
.app-redesign .summary-value--red { color: #a61e1e; }
.app-redesign .invoice-alert-row { display: flex; gap: 8px; align-items: flex-start; margin: 0 0 6px; padding: 8px 12px; border-radius: 10px; font-size: 13px; background: #eef6fb; border: 1px solid #c4dcec; color: #1d4560; }
.app-redesign .due-amount { font-weight: 800; }
.app-redesign .dataTables_wrapper { padding: 14px; }
.app-redesign .dataTables_wrapper .dataTables_filter input, .app-redesign .dataTables_wrapper .dataTables_length select { border: 1.5px solid #b9c9c2; border-radius: 10px; padding: 7px 12px; margin-left: 6px; }
.app-redesign .dataTables_wrapper .dataTables_paginate .paginate_button { border-radius: 999px !important; }
.app-redesign .dataTables_wrapper .dataTables_paginate .paginate_button.current { background: var(--green) !important; color: #fff !important; border-color: var(--green) !important; }

/* LocationSearch */
.app-redesign.ls-page .row { margin: 0; }
.app-redesign.ls-page .search-card { background: #fff; border: 1px solid #dbe5e0; border-radius: var(--ar-radius); box-shadow: var(--ar-shadow); padding: 30px 32px; margin: 0 0 24px; }
.app-redesign.ls-page .intro-text { color: var(--text); font-size: 16px; line-height: 1.65; margin: 0 0 22px; text-align: left !important; }
.app-redesign.ls-page .new-address-card { background: #fffaf0; border: 1px solid #ecd9a2; border-left: 5px solid var(--gold); border-radius: 12px; padding: 14px 18px; margin: 0 0 22px; }
.app-redesign.ls-page .new-address-label { display: flex; align-items: center; gap: 12px; margin: 0; font-weight: 700; cursor: pointer; }
.app-redesign.ls-page .gold-checkbox { width: 22px; height: 22px; accent-color: var(--green); }
.app-redesign.ls-page .custom-search-group { display: flex; gap: 10px; border: 0; box-shadow: none; background: transparent; }
.app-redesign.ls-page .search-input { flex: 1; height: 56px; font-size: 17px; border-radius: 14px !important; }
.app-redesign.ls-page .custom-search-group .smallButton { height: 56px; padding: 0 34px !important; font-size: 16px !important; }
.app-redesign.ls-page .results-container { margin: 0; background: #fff; border: 1px solid #dbe5e0; border-radius: var(--ar-radius); box-shadow: var(--ar-shadow); overflow-x: auto; }
.app-redesign.ls-page .table-custom { width: 100%; margin: 0; border-collapse: collapse; }
.app-redesign.ls-page .table-custom thead th { background: var(--green-dark); color: #fff; padding: 14px; font-size: 13px; letter-spacing: .04em; text-transform: uppercase; border: 0; }
.app-redesign.ls-page .table-custom tbody td { padding: 14px; border-top: 1px solid #e3ebe7; vertical-align: middle; }
.app-redesign.ls-page .table-custom tbody tr:hover { background: #f1f8f4; }
.app-redesign.ls-page .btn-select { background: var(--green); color: #fff; border: 0; border-radius: 999px; padding: 9px 22px; font-weight: 700; }
.app-redesign.ls-page .btn-select:hover { background: var(--green-dark); }
.app-redesign.ls-page .btn-city-warning { background: #fff3d6; color: #6b4b00; border: 1.5px solid #ecd9a2; border-radius: 999px; padding: 9px 20px; font-weight: 700; }
.app-redesign.ls-page .no-results-box { background: #fff; border: 1px dashed #b9c9c2; border-radius: var(--ar-radius); }
@media (max-width: 767px) {
    .app-redesign.ls-page .search-card { padding: 22px 18px; }
    .app-redesign.ls-page .custom-search-group { flex-direction: column; }
    .app-redesign.ls-page .custom-search-group .smallButton { width: 100%; }
    .app-redesign .summary-value { font-size: 26px; }
}

/* LocationSearch: search terms textbox uses the same field styling as the application forms (.form-control) */
.app-redesign.ls-page .search-wrapper { max-width: none; margin: 0; }
.app-redesign.ls-page .custom-search-group { padding: 0 !important; border: 0 !important; background: transparent !important; box-shadow: none !important; align-items: stretch; }
.app-redesign.ls-page .form-control.search-input {
    height: auto !important; min-height: 48px; padding: 11px 14px !important; font-size: 16px !important; line-height: 1.4; color: var(--text);
    background: #fff !important; border: 1.5px solid #b9c9c2 !important; border-radius: 12px !important; box-shadow: none !important;
    transition: border-color .15s ease, box-shadow .15s ease;
}
.app-redesign.ls-page .form-control.search-input:hover { border-color: var(--green-light) !important; }
.app-redesign.ls-page .form-control.search-input:focus { border-color: var(--green) !important; box-shadow: 0 0 0 4px var(--ar-ring) !important; outline: 0; }
.app-redesign.ls-page .custom-search-group .smallButton { height: 48px; min-height: 48px; margin: 0; }
/* global .search-input { margin-bottom: 15px } (premiere2.css) was making the row ~15px too tall and stretching the button */
.app-redesign.ls-page .form-control.search-input { margin-bottom: 0 !important; height: 48px !important; }
.app-redesign.ls-page .custom-search-group { align-items: center; }

/* ApplicationType (application details) */
.app-redesign .app-detail-card { box-shadow: var(--ar-shadow); }
.app-redesign .instruction-box { padding: 20px 24px; background: var(--sand); border: 1px solid #dbe5e0; border-left: 5px solid var(--green-light); border-radius: 14px; line-height: 1.7; margin: 0 0 20px; }
.app-redesign .instruction-box ul, .app-redesign .instruction-box ol { padding-left: 22px; }
.app-redesign .alert-required { padding: 18px 22px; background: #fff6f5; border: 1px solid #e4b4b0; border-left: 5px solid #c9524a; border-radius: 14px; color: #6b2222; margin: 0 0 20px; }
.app-redesign .alert-required-text { font-weight: 800; margin: 0 0 8px; }
.app-redesign .alert-available { padding: 18px 22px; background: #f1f8f4; border: 1px solid #cfe3d8; border-left: 5px solid var(--green-light); border-radius: 14px; margin: 0 0 20px; }
.app-redesign .alert-available-text { font-weight: 800; color: var(--green-dark); margin: 0 0 8px; }
.app-redesign .pdf-link { display: inline-block; padding: 6px 0; font-weight: 600; }
.app-redesign .sand-notice-box { background: #fffaf0; border: 1px solid #ecd9a2; border-left: 5px solid var(--gold); border-radius: 14px; padding: 16px 20px; margin: 0 0 20px; }
.app-redesign .chkSiteUse > span { display: flex; align-items: flex-start; gap: 12px; }
.app-redesign .chkSiteUse input[type="checkbox"] { flex: none; width: 22px; height: 22px; margin: 2px 0 0; accent-color: var(--green); cursor: pointer; }
.app-redesign .chkSiteUse label { flex: 1; margin: 0; font-weight: 600; line-height: 1.55; cursor: pointer; }
/* No checkbox rendered (site use approval not required): hide the empty notice box */
.app-redesign .sand-notice-box:not(:has(input)), .app-redesign .sand-notice-box.is-empty { display: none; }
.app-redesign .action-area { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; padding-top: 22px; margin-top: 8px; border-top: 1px solid #e3ebe7; }

/* Contractor / Private Provider forms */
.app-redesign .ar-subhead { display: flex; align-items: center; gap: 14px; margin: 0 0 18px; }
.app-redesign .ar-subhead-top { margin-top: 36px; padding-top: 30px; border-top: 2px dashed #cfdcd5; }
.app-redesign .pp-instructions-box { padding: 18px 22px; background: #fffaf0; border: 1px solid #ecd9a2; border-left: 5px solid var(--gold); border-radius: 14px; margin: 0 0 26px; }
.app-redesign .pp-instructions-title { margin: 0 0 6px; font-size: 18px; font-weight: 800; color: var(--green-dark); }
.app-redesign .pp-instructions-text { margin: 0; line-height: 1.65; color: var(--text); }
.app-redesign .ca-header-title, .app-redesign .ar-header-flex { margin: 0 0 18px; font-size: 22px; font-weight: 800; color: var(--green-dark); }
.app-redesign .form-control.pp-form-input { min-height: 48px; padding: 11px 14px !important; font-size: 16px; background: #fff !important; border: 1.5px solid #b9c9c2 !important; border-radius: 12px !important; box-shadow: none !important; }
.app-redesign .form-control.pp-form-input:hover { border-color: var(--green-light) !important; }
.app-redesign .form-control.pp-form-input:focus { border-color: var(--green) !important; box-shadow: 0 0 0 4px var(--ar-ring) !important; outline: 0; }
.app-redesign .input-group .form-control.pp-form-input { border-radius: 0 12px 12px 0 !important; }
.app-redesign .pp-doc-divider { display: none; }
.app-redesign .pp-doc-notes { margin: 8px 0 0; font-size: 14px; color: #4a5a6b; }
.app-redesign .pp-doc-received { display: inline-block; padding: 6px 12px; border-radius: 12px; background: #e3f4ea; color: #1c6b43; font-weight: 700; font-size: 14px; }
.app-redesign .pp-doc-received em { font-weight: 500; }
.app-redesign .pp-doc-missing { display: inline-block; padding: 6px 12px; border-radius: 999px; background: #fff3d6; color: #6b4b00; font-weight: 700; font-size: 14px; }
.app-redesign .pp-save-btn { margin-top: 20px; }
.app-redesign .pp-message-label, .app-redesign .ca-message-label { color: #6b2222; }
.app-redesign .pp-submit-intro { max-width: 60ch; margin: 0 auto 22px; }
.app-redesign .pp-agree-label { display: flex; gap: 12px; align-items: flex-start; text-align: left; margin: 0; padding: 18px 22px; background: var(--sand); border: 1px solid #dbe5e0; border-radius: 14px; line-height: 1.6; font-weight: 500; cursor: pointer; }
.app-redesign .pp-agree-label input[type="checkbox"] { width: 22px; height: 22px; accent-color: var(--green); margin-top: 3px; flex: none; }
.app-redesign .mb-100 { margin-bottom: 24px !important; }

/* Message modal on pages where the modal sits outside the .app-redesign container */
.ar-modal .modal-content { border: 0; border-radius: 20px; overflow: hidden; box-shadow: 0 30px 80px rgba(10,30,20,.35); }
.ar-modal .modal-header { padding: 20px 24px; background: linear-gradient(135deg, var(--green-dark), var(--green)); color: #fff; border: 0; }
.ar-modal .modal-title { color: #fff; font-weight: 800; font-size: 22px; }
.ar-modal .modal-header .close { opacity: .9; color: #fff; text-shadow: none; font-size: 30px; font-weight: 400; }
.ar-modal .modal-body { padding: 24px 28px; font-size: 17px; line-height: 1.65; }
.ar-modal .modal-footer { padding: 16px 24px 22px; border: 0; text-align: center; }
.ar-modal .modal-footer .btn { min-width: 140px; padding: 11px 28px; border-radius: 999px; font-weight: 700; background: var(--green); border: 2px solid var(--green); color: #fff; }
.ar-modal .modal-footer .btn:hover { background: var(--green-dark); border-color: var(--green-dark); }

/* ApplicationTypesList */
.app-redesign .app-list-container { border: 1px solid #dbe5e0; border-radius: 14px; overflow: hidden; background: #fff; }
.app-redesign .app-table { width: 100%; border-collapse: collapse; margin: 0; }
.app-redesign .app-table thead th { background: var(--green-dark); color: #fff; padding: 14px 18px; font-size: 13px; letter-spacing: .04em; text-transform: uppercase; border: 0; }
.app-redesign .app-table tbody td { padding: 16px 18px; border-top: 1px solid #e3ebe7; vertical-align: middle; }
.app-redesign .app-table tbody tr:first-child td { border-top: 0; }
.app-redesign .app-table tbody tr:hover { background: #f1f8f4; }
.app-redesign .app-name { font-size: 17px; font-weight: 700; color: var(--green-dark); }
.app-redesign .app-table .btn-select { display: inline-block; min-width: 120px; padding: 10px 24px; border-radius: 999px; background: var(--green); color: #fff !important; font-weight: 700; text-align: center; text-decoration: none !important; transition: background .15s ease, transform .15s ease; }
.app-redesign .app-table .btn-select:hover, .app-redesign .app-table .btn-select:focus { background: var(--green-dark); transform: translateY(-2px); }
.app-redesign .atl-btn-cancel { text-decoration: none !important; }
@media (max-width: 600px) { .app-redesign .app-table .btn-select { min-width: 0; padding: 9px 16px; } .app-redesign .app-name { font-size: 16px; } }

/* ROWUtilityApplication: agreement checklist + drawn-roads table */
.app-redesign .app-agree-box > .checkbox-list, .app-redesign .app-agree-box > .text-center { display: block; }
.app-redesign .checkbox-list .checkbox { margin: 0 0 12px; padding: 14px 16px; background: #fff; border: 1.5px solid #dbe5e0; border-radius: 12px; transition: border-color .15s ease; }
.app-redesign .checkbox-list .checkbox:hover { border-color: var(--green-light); }
.app-redesign .checkbox-list .checkbox label { display: flex; gap: 12px; align-items: flex-start; padding-left: 0; margin: 0; font-weight: 500; line-height: 1.6; cursor: pointer; }
.app-redesign .checkbox-list .checkbox input[type="checkbox"] { position: static; flex: none; width: 22px; height: 22px; margin: 2px 0 0; accent-color: var(--green); }
.app-redesign .checkbox-inline#same, .app-redesign #same { width: 20px; height: 20px; accent-color: var(--green); vertical-align: -4px; margin-right: 8px; }
.app-redesign #drawnRoads td { vertical-align: middle; }
.app-redesign .dwapp-steps-list { padding-left: 22px; line-height: 1.7; }
@media (max-width: 768px) { .app-redesign.ls-page .custom-search-group { align-items: stretch; } .app-redesign.ls-page .form-control.search-input { flex: none; } }
/* LocationSearch: wider than the default 1080px application width */
.app-redesign.ls-page { max-width: min(1320px, 96vw); }
/* Bootstrap gives table captions #777 (4.48:1 on white, fails AA); the LocationSearch caption is screen-reader-only but still gets flagged */
.app-redesign caption, .app-redesign caption.sr-only { color: #3a4a5c; }
