.need_map_write {margin:2rem 0 !important;padding:2rem;border:1px solid #e1e5ea;border-radius:0.8rem;background:#fafbfc}
.need_map_write fieldset {margin:0;padding:0;border:0}
.need_map_write legend {margin-bottom:1.5rem;color:#222;font-size:1.8rem;font-weight:600}
.need_map_field {display:grid;grid-template-columns:11rem minmax(0, 1fr);gap:1rem;align-items:center;margin-top:1rem}
.need_map_field label {color:#333;font-weight:500}
.need_map_field .frm_input {width:100%}
.need_map_address_fields {display:grid;gap:0.8rem}
.need_map_zip_row {display:flex;gap:0.8rem}
.need_map_zip_row .frm_input {width:15rem}
.need_map_search_button {flex:0 0 auto;height:4rem;padding:0 1.8rem;border:0;border-radius:0.4rem;background:#333;color:#fff;cursor:pointer}
.need_map_help {margin:0.8rem 0 0 12rem;color:#667085;font-size:1.3rem}
.need_map_status {min-height:2rem;margin:0.6rem 0 0;color:#475467;font-size:1.3rem}
.need_map_status.is_error {color:#d92d20}
.need_map_canvas {width:100%;height:38rem;overflow:hidden;border:1px solid #dfe3e8;border-radius:0.8rem;background:#f2f4f7}
.need_map_write_canvas {display:none;height:32rem;margin-top:1rem}
.need_map_write_canvas:not(:empty) {display:block}
.need_map_marker_label {padding:0.6rem 1rem;border:1px solid #d0d5dd;border-radius:0.5rem;background:#fff;box-shadow:0 0.5rem 1.5rem rgba(16,24,40,.18);color:#101828;font-size:1.3rem;font-weight:600;white-space:nowrap}
.need_map_trigger {padding:0;border:0;background:transparent;color:#175cd3;font:inherit;text-align:left;text-decoration:underline;text-underline-offset:0.25em;cursor:pointer}
.need_map_tel a {color:#175cd3;text-decoration:underline;text-underline-offset:0.2em}
.need_map_contact {margin:0 0 2.5rem;border-top:2px solid #222}
.need_map_contact table {width:100%;border-collapse:collapse}
.need_map_contact caption {overflow:hidden;position:absolute;width:1px;height:1px;clip:rect(0,0,0,0)}
.need_map_contact th,.need_map_contact td {padding:1.5rem;border-bottom:1px solid #e5e7eb;text-align:left}
.need_map_contact th {width:18%;background:#f8fafc;color:#344054;font-weight:600}
.need_map_view {margin:0 0 3rem}
.need_map_view h3 {margin:0 0 1rem;color:#222;font-size:1.8rem}
.need_map_modal[hidden] {display:none}
.need_map_modal {position:fixed;z-index:100000;inset:0;display:flex;align-items:center;justify-content:center;padding:2rem}
.need_map_modal_backdrop {position:absolute;inset:0;background:rgba(15,23,42,.62)}
.need_map_modal_panel {position:relative;width:min(90vw, 88rem);max-height:90vh;padding:2rem;border-radius:1rem;background:#fff;box-shadow:0 2rem 5rem rgba(15,23,42,.28)}
.need_map_modal_panel header {display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:0.6rem}
.need_map_modal_panel h3 {margin:0;color:#111827;font-size:2rem}
.need_map_modal_close {width:4rem;height:4rem;border:0;background:transparent;color:#475467;font-size:3rem;line-height:1;cursor:pointer}
.need_map_modal_address {margin:0 0 1rem;color:#667085}
.need_map_modal_canvas {height:min(62vh, 52rem)}
.need_map_modal_open {overflow:hidden}
#bo_btn_top {display:flex;align-items:center;justify-content:flex-start;gap:2rem}
.need_card_check_all {display:flex;align-items:center;gap:.7rem;color:#555;font-size:1.4rem;line-height:1}
.need_card_check_all input {appearance:auto;width:1.7rem;height:1.7rem;margin:0;accent-color:#2583f8;cursor:pointer}
.need_card_check_all label {position:static;width:auto;margin:0;padding:0;cursor:pointer}
.need_card_grid {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:2.8rem 2rem;margin:2.8rem 0 3rem}
.need_card {position:relative;min-width:0;min-height:24rem;padding:4rem 3rem 2.8rem;border:1px solid #d9dce1;border-radius:1rem;background:#fff;transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease}
.need_card:hover {border-color:#b9c7da;box-shadow:0 1.2rem 3rem rgba(31,41,55,.08);transform:translateY(-2px)}
.need_card.is_current {border-color:#2583f8;box-shadow:0 0 0 1px #2583f8}
.need_card_select {position:absolute;z-index:2;top:1.4rem;left:1.5rem}
.need_card_badge {position:absolute;top:0;right:0;padding:.8rem 1.4rem;border-radius:0 .9rem 0 .6rem;background:#2583f8;color:#fff!important;font-size:1.4rem;font-weight:600;line-height:1.2;text-decoration:none}
.need_card_badge.is_default {background:#f0f0f0;color:#333!important}
.need_card_badge.is_notice {background:#e5484d}
.need_card_title {min-height:6.8rem;margin:0;padding:0 0 2.2rem;border-bottom:1px solid #e5e7eb;color:#111;font-size:2rem;font-weight:700;line-height:1.45;word-break:keep-all;overflow-wrap:anywhere}
.need_card_title>a {color:inherit;text-decoration:none}
.need_card_title>a:hover {color:#175cd3}
.need_card_meta {display:flex;flex-direction:column;gap:1rem;margin-top:2.2rem}
.need_card_info {display:flex;align-items:flex-start;gap:1rem;min-width:0;color:#555;font-size:1.6rem;line-height:1.55}
.need_card_info>a {color:#555;text-decoration:none}
.need_card_icon {display:inline-flex;flex:0 0 2.8rem;align-items:center;justify-content:center;width:2.8rem;height:2.8rem;margin-top:.05rem;border-radius:50%;background:#5c6d82;color:#fff;font-size:1.45rem;line-height:1}
.need_card_address>div {min-width:0;padding-top:.1rem}
.need_card_address .need_map_trigger {color:#2583f8;line-height:1.55;word-break:keep-all;overflow-wrap:anywhere}
.need_card_empty {grid-column:1/-1;margin:0;padding:8rem 2rem;border-top:1px solid #e5e7eb;border-bottom:1px solid #e5e7eb;color:#777;text-align:center}

@media all and (max-width:1279px) {
    .need_card_grid {grid-template-columns:repeat(3,minmax(0,1fr))}
}

@media all and (max-width:991px) {
    .need_card_grid {grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media all and (max-width:767px) {
    .need_map_write {padding:1.5rem}
    .need_map_field {grid-template-columns:1fr;gap:0.6rem}
    .need_map_help {margin-left:0}
    .need_map_zip_row .frm_input {width:calc(100% - 10rem)}
    .need_map_canvas {height:32rem}
    .need_map_modal {padding:1rem}
    .need_map_modal_panel {width:94vw;padding:1.5rem}
    .need_map_modal_canvas {height:55vh}
    .need_map_contact th {width:9rem}
    #bo_btn_top {align-items:flex-start}
    .need_card_grid {grid-template-columns:1fr;gap:1.5rem;margin-top:2rem}
    .need_card {min-height:0;padding:3.8rem 2.2rem 2.4rem}
    .need_card_title {min-height:0;font-size:1.8rem}
    .need_card_info {font-size:1.5rem}
}
