:root {
    color-scheme: dark;
    --bg: #0b1220;
    --panel: rgba(15, 23, 42, .96);
    --panel-2: rgba(30, 41, 59, .9);
    --text: #e5edf7;
    --muted: #93a4b8;
    --line: rgba(148, 163, 184, .22);
    --sky: #38bdf8;
    --blue: #2563eb;
    --orange: #f97316;
    --danger: #ef4444;
    --radius: 22px;
    --shadow: 0 22px 60px rgba(0, 0, 0, .35);
}
* { box-sizing: border-box; }
html, body { height: 100%; }
body {
    margin: 0;
    min-height: 100vh;
    background:
        radial-gradient(circle at 10% 10%, rgba(56, 189, 248, .16), transparent 32%),
        radial-gradient(circle at 90% 0%, rgba(251, 146, 60, .13), transparent 28%),
        var(--bg);
    color: var(--text);
    font-family: Inter, Segoe UI, Roboto, Arial, sans-serif;
}
.shell {
    display: grid;
    grid-template-columns: 430px 1fr;
    min-height: 100vh;
    padding: 16px;
    gap: 16px;
}
.panel {
    position: relative;
    z-index: 30;
    background: var(--panel);
    border: 1px solid var(--line);
    border-radius: var(--radius);
    box-shadow: var(--shadow);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    min-height: calc(100vh - 32px);
}
.brand {
    display: flex;
    gap: 12px;
    align-items: center;
    padding: 18px 20px;
    border-bottom: 1px solid var(--line);
}
.brand__mark {
    width: 38px;
    height: 38px;
    border-radius: 0;
    display: grid;
    place-items: center;
    background: transparent;
    overflow: visible;
    box-shadow: none;
    flex: 0 0 auto;
}
.brand__mark--button {
    border: 0;
    padding: 0;
    background: transparent;
}
.brand__mark--button:hover { transform: scale(1.04); }
.brand__text { flex: 1 1 auto; min-width: 0; }
.brand__mark img { width: 100%; height: 100%; object-fit: contain; display: block; }
.brand h1 { margin: 0; font-size: 28px; letter-spacing: .02em; }
.brand p { margin: 3px 0 0; color: var(--muted); font-size: 13px; }
.search-card,
.filters,
.list-wrap,
.selected-card { padding: 14px 16px; border-bottom: 1px solid var(--line); }
.input-label { display: block; color: var(--muted); font-size: 12px; margin: 0 0 6px; font-weight: 800; }
.search-row { display: grid; grid-template-columns: 1fr auto auto; gap: 8px; }
input, select {
    width: 100%;
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 11px 12px;
    background: rgba(2, 6, 23, .65);
    color: var(--text);
    outline: none;
}
input:focus, select:focus { border-color: rgba(56, 189, 248, .7); box-shadow: 0 0 0 4px rgba(56, 189, 248, .12); }
button {
    border: 1px solid var(--line);
    border-radius: 14px;
    background: rgba(30, 41, 59, .95);
    color: var(--text);
    padding: 10px 12px;
    cursor: pointer;
    font-weight: 800;
    white-space: nowrap;
}
button:hover { border-color: rgba(56, 189, 248, .55); }
button.active, #go-btn { background: linear-gradient(135deg, rgba(14, 165, 233, .95), rgba(37, 99, 235, .95)); border-color: transparent; }
button.secondary { background: rgba(15, 23, 42, .72); }
.panel-handle {
    display: none;
    border-radius: 0;
    padding: 10px 12px;
    border-left: 0;
    border-right: 0;
    background: linear-gradient(135deg, rgba(14, 165, 233, .95), rgba(37, 99, 235, .95));
    color: #fff;
    font-size: 13px;
    letter-spacing: .02em;
    box-shadow: 0 10px 24px rgba(14, 165, 233, .18);
}
.filter-drawer{position:fixed;z-index:1200;right:16px;top:16px;bottom:16px;width:0}.filter-drawer>summary{position:absolute;right:0;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:30px;height:78px;border:1px solid var(--line);border-right:0;border-radius:11px 0 0 11px;background:var(--panel);color:#e2e8f0;cursor:pointer;box-shadow:-5px 3px 18px rgba(0,0,0,.3);list-style:none}.filter-drawer>summary::-webkit-details-marker{display:none}.filter-drawer>summary::after{content:'‹';font-size:27px;font-weight:900}.filter-drawer[open]{width:370px}.filter-drawer[open]>summary{right:370px}.filter-drawer[open]>summary::after{content:'›'}.filter-drawer .filters{display:block;width:370px;max-height:calc(100vh - 32px);overflow:auto;margin:0;padding:16px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.filter-drawer .filters-grid{margin-bottom:0}
.status-line { color: var(--muted); font-size: 12px; margin-top: 8px; }
.metrics { display: grid; grid-template-columns: repeat(3, 1fr); gap: 9px; padding: 13px 16px; border-bottom: 1px solid var(--line); }
.metric { background: var(--panel-2); border: 1px solid var(--line); border-radius: 16px; padding: 11px; }
.metric span { display: block; color: var(--muted); font-size: 11px; margin-bottom: 3px; }
.metric strong { font-size: 24px; }
.selected-card { display: grid; grid-template-columns: 148px 1fr; gap: 12px; background: rgba(2, 6, 23, .18); }
.detail-photo { width: 148px; height: 148px; object-fit: contain; border-radius: 0; border: 1px solid var(--line); background: rgba(255,255,255,.96); cursor: zoom-in; }
.detail-data h2 { margin: 0 0 3px; color: #e0f2fe; font-size: 18px; line-height: 1.15; }
.detail-data p { margin: 0 0 8px; color: var(--muted); font-size: 12px; font-weight: 700; }
.detail-row { font-size: 12px; line-height: 1.35; margin: 3px 0; color: #dbeafe; }
.detail-row b { color: #bae6fd; }
.badge { display: inline-block; background: rgba(56, 189, 248, .12); border: 1px solid rgba(56, 189, 248, .22); color: #bae6fd; border-radius: 999px; padding: 2px 7px; font-size: 11px; font-weight: 900; margin: 3px 4px 0 0; }
.photo-status { color: var(--muted); font-size: 11px; margin-top: 5px; }
.filters-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; align-items:end; margin-bottom: 11px; }
.toggle-row { display: flex; gap: 8px; align-items: center; color: var(--muted); font-size: 13px; font-weight: 800; padding: 11px 0; }
.toggle-row input { width: auto; margin: 0; }
.photo-checks {
    min-height: 42px;
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 8px 10px;
    background: rgba(2, 6, 23, .46);
}
.photo-checks label {
    display: flex;
    align-items: center;
    gap: 6px;
    color: var(--text);
    font-size: 12px;
    font-weight: 850;
}
.photo-checks input { width: auto; margin: 0; accent-color: var(--sky); }
.button-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.list-wrap { flex: 1; overflow: hidden; display: flex; flex-direction: column; border-bottom: 0; min-height: 130px; }
.list-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px; }
.list-head h2 { font-size: 15px; margin: 0; }
.list-head span { background: rgba(56, 189, 248, .12); color: #bae6fd; border: 1px solid rgba(56, 189, 248, .22); border-radius: 999px; padding: 4px 10px; font-size: 12px; font-weight: 900; }
.hydrant-list { overflow: auto; padding-right: 4px; }
.hydrant-item { background: rgba(2, 6, 23, .35); border: 1px solid var(--line); border-radius: 15px; padding: 11px 12px; margin-bottom: 9px; cursor: pointer; }
.hydrant-item:hover { border-color: rgba(56, 189, 248, .45); background: rgba(15, 23, 42, .8); }
.hydrant-title { font-weight: 900; margin-bottom: 3px; }
.hydrant-meta { color: var(--muted); font-size: 12.5px; line-height: 1.4; }.result-distance{color:#f8fafc;font-size:13.5px;font-weight:900}
.map-area { position: relative; z-index: 1; border-radius: var(--radius); overflow: hidden; border: 1px solid var(--line); box-shadow: var(--shadow); background: #111827; }
#map { width: 100%; height: 100%; min-height: calc(100vh - 32px); }
#map.leaflet-container { overflow: hidden; }
.suggestions { position: absolute; z-index: 1100; background: rgba(15, 23, 42, .98); border: 1px solid var(--line); border-radius: 16px; box-shadow: var(--shadow); max-height: 280px; overflow: auto; width: min(380px, calc(100vw - 36px)); margin-top: 6px; }
.suggestion { padding: 10px 12px; border-bottom: 1px solid var(--line); cursor: pointer; }
.suggestion:hover { background: rgba(56,189,248,.12); }
.suggestion b { color: #bae6fd; }
.suggestion small { color: var(--muted); }
.hidden { display: none !important; }
.error-box { position: absolute; top: 18px; left: 50%; transform: translateX(-50%); z-index: 999; max-width: 860px; background: rgba(127, 29, 29, .95); color: #fee2e2; padding: 14px 18px; border-radius: 16px; border: 1px solid rgba(252, 165, 165, .25); box-shadow: var(--shadow); }
.popup-title { font-weight: 900; font-size: 15px; margin-bottom: 5px; }
.popup-row { margin: 3px 0; }
.popup-label { font-weight: 800; }
.popup-photo-link { display:block; }
.popup-photo { display: block; width: 230px; max-width: 100%; height: 230px; object-fit: contain; margin: 8px 0; border-radius: 0; border: 1px solid rgba(15, 23, 42, .22); background: #fff; }
.leaflet-popup-content { min-width: 230px; }
.legend-dot { display: inline-block; width: 10px; height: 10px; border-radius: 999px; margin-right: 5px; }
.emergency-marker-wrap{background:transparent!important;border:0!important;overflow:visible!important}.emergency-marker{position:relative;display:grid;place-items:center;width:40px;height:40px;border:4px solid #fff;border-radius:50% 50% 50% 0;background:linear-gradient(145deg,#f97316,#dc2626 68%);box-shadow:0 3px 0 #991b1b,0 7px 18px rgba(127,29,29,.55);transform:rotate(-45deg)}.emergency-marker span{display:block;font-size:21px;line-height:1;transform:rotate(45deg)}.emergency-marker::after{content:'';position:absolute;inset:-9px;border:3px solid rgba(239,68,68,.45);border-radius:50%;animation:emergencyPulse 1.35s ease-out infinite}@keyframes emergencyPulse{0%{transform:scale(.72);opacity:1}100%{transform:scale(1.35);opacity:0}}
.selected-resource-pulse-wrap{background:transparent!important;border:0!important;pointer-events:none!important;overflow:visible!important}.selected-resource-pulse{position:absolute;left:7px;top:7px;width:20px;height:20px;border-radius:50%;background:rgba(34,197,94,.2);border:2px solid rgba(255,255,255,.95);box-shadow:0 0 0 4px rgba(34,197,94,.75),0 0 18px 9px rgba(34,197,94,.65);animation:selectedResourcePulse 1.05s ease-in-out infinite}@keyframes selectedResourcePulse{50%{transform:scale(1.22);background:rgba(34,197,94,.38);box-shadow:0 0 0 8px rgba(34,197,94,.2),0 0 24px 13px rgba(34,197,94,.35)}}

.overlay-modal {
    position: fixed;
    inset: 0;
    z-index: 3000;
    display: grid;
    place-items: center;
}
.overlay-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(2, 6, 23, .82);
}
.overlay-modal__dialog {
    position: relative;
    z-index: 1;
    width: min(94vw, 980px);
    max-height: 92vh;
    overflow: auto;
    background: #0f172a;
    color: var(--text);
    border: 1px solid var(--line);
    border-radius: 22px;
    box-shadow: var(--shadow);
    padding: 18px 18px 20px;
}
.overlay-modal__dialog--photo {
    width: min(96vw, 1200px);
    padding: 10px;
    background: rgba(2,6,23,.98);
}
.overlay-modal__dialog h2 {
    margin: 0 0 12px;
    color: #e0f2fe;
    font-size: 24px;
}
.overlay-modal__content {
    color: #dbeafe;
    font-size: 15px;
    line-height: 1.55;
}
.overlay-modal__content ul { padding-left: 18px; }
.overlay-modal__content li { margin: 8px 0; }
.overlay-modal__close {
    position: sticky;
    top: 0;
    float: right;
    min-width: 42px;
    padding: 8px 10px;
    font-size: 24px;
    line-height: 1;
    border-radius: 12px;
    z-index: 2;
}
.overlay-modal__image {
    display: block;
    width: 100%;
    max-height: 82vh;
    object-fit: contain;
    background: #fff;
    border-radius: 0;
}
.overlay-modal__image[hidden] {
    display: none !important;
}
.photo-modal-loading {
    min-height: 46vh;
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 28px;
    color: #cbd5e1;
    font-size: 18px;
    font-weight: 750;
    letter-spacing: .2px;
    text-align: center;
}
.photo-modal-loading[hidden] {
    display: none !important;
}
.overlay-modal__caption {
    color: #cbd5e1;
    font-size: 14px;
    margin-top: 10px;
    text-align: center;
}
.summary-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 12px;
    margin-bottom: 16px;
}
.summary-card {
    background: rgba(2, 6, 23, .35);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 14px;
}
.summary-card h3 { margin: 0 0 8px; font-size: 15px; color: #bae6fd; }
.summary-card ul { margin: 0; padding-left: 18px; }
.summary-card li { margin: 4px 0; }

@media (max-width: 760px) {
    .shell { grid-template-columns: 1fr; grid-template-rows: auto auto 1fr; padding: 0; gap: 0; min-height: 100vh; }
    .panel { border-radius: 0; min-height: auto; max-height: 52vh; overflow: auto; transition: max-height .22s ease, min-height .22s ease; }
    .panel-handle { display: block; position: sticky; top: 0; z-index: 700; }
    .map-area { border-radius: 0; min-height: 48vh; }
    #map { min-height: 48vh; }
    .brand { padding: 12px 14px; }
    .brand__mark { width: 36px; height: 36px; }
    .brand h1 { font-size: 22px; }
    .search-card, .filters, .selected-card { padding: 11px 12px; }
    .metrics { padding: 10px 12px; }
    .selected-card { grid-template-columns: 120px 1fr; }
    .detail-photo { width: 120px; height: 120px; }
    body.panel-collapsed .panel { max-height: 72px; min-height: 72px; overflow: hidden; }
    body.panel-collapsed .brand { padding: 10px 14px; border-bottom: 0; }
    body.panel-collapsed .brand p { display: none; }
    body.panel-collapsed .brand__mark { width: 34px; height: 34px; border-radius: 0; }
    body.panel-collapsed .brand h1 { font-size: 20px; }
    body.panel-collapsed .search-card,
    body.panel-collapsed .metrics,
    body.panel-collapsed .selected-card,
    body.panel-collapsed .filters,
    body.panel-collapsed .list-wrap { display: none; }
    body.panel-collapsed .map-area { min-height: calc(100vh - 110px); }
    body.panel-collapsed #map { min-height: calc(100vh - 110px); }
}
@media (max-width: 560px) {
    .panel { max-height: 58vh; }
    .map-area { min-height: 42vh; }
    #map { min-height: 42vh; }
    .search-row { grid-template-columns: 1fr auto; }
    #clear-btn { grid-column: 1 / 3; padding: 8px 10px; }
    .metrics { grid-template-columns: repeat(3, 1fr); gap: 7px; }
    .metric { padding: 8px; }
    .metric strong { font-size: 19px; }
    .filters-grid { grid-template-columns: 1fr; }
    .button-grid { grid-template-columns: 1fr 1fr; }
    .selected-card { grid-template-columns: 96px 1fr; gap: 9px; }
    .detail-photo { width: 96px; height: 96px; border-radius: 0; }
    .detail-data h2 { font-size: 15px; }
    .detail-row { font-size: 11px; }
    body.panel-collapsed .map-area { min-height: calc(100vh - 108px); }
    body.panel-collapsed #map { min-height: calc(100vh - 108px); }
}

@media (max-width: 560px) { .overlay-modal__dialog{ width:100vw; max-height:100vh; min-height:100vh; border-radius:0; padding:14px 14px 18px;} .overlay-modal__dialog--photo{padding:8px; min-height:100vh;} .overlay-modal__image{max-height:88vh;} }


.help-block {
    background: rgba(2, 6, 23, .24);
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 12px 13px;
    margin: 10px 0;
}
.help-block h3 {
    margin: 0 0 6px;
    color: #bae6fd;
    font-size: 16px;
}
.help-block p {
    margin: 0;
}
.modal-note {
    margin-top: 14px;
    padding: 12px 13px;
    border-radius: 14px;
    background: rgba(56, 189, 248, .10);
    border: 1px solid rgba(56, 189, 248, .24);
    color: #dbeafe;
    font-weight: 800;
}
.summary-lead {
    margin: 0 0 14px;
    color: #dbeafe;
}
.summary-kpis {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(155px, 1fr));
    gap: 10px;
    margin: 12px 0 16px;
}
.summary-kpi {
    background: linear-gradient(135deg, rgba(14, 165, 233, .14), rgba(37, 99, 235, .14));
    border: 1px solid rgba(56, 189, 248, .25);
    border-radius: 16px;
    padding: 13px;
}
.summary-kpi span {
    display: block;
    color: var(--muted);
    font-size: 12px;
    font-weight: 800;
}
.summary-kpi strong {
    display: block;
    margin-top: 4px;
    color: #fff;
    font-size: 26px;
}
.summary-card--wide {
    margin-top: 12px;
}

.summary-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin: 2px 0 14px;
    padding: 8px;
    border: 1px solid rgba(56, 189, 248, .20);
    border-radius: 14px;
    background: rgba(2, 6, 23, .28);
}
.summary-tabs {
    display: flex;
    gap: 7px;
    min-width: 0;
}
.summary-tab,
.summary-print-btn {
    min-height: 38px;
    border-radius: 10px;
    font-weight: 900;
    border: 1px solid rgba(148, 163, 184, .28);
}
.summary-tab {
    padding: 8px 13px;
    background: rgba(30, 41, 59, .85);
    color: #dbeafe;
}
.summary-tab.active {
    border-color: #38bdf8;
    background: linear-gradient(135deg, rgba(14,165,233,.42), rgba(37,99,235,.42));
    color: #fff;
    box-shadow: 0 0 0 2px rgba(56,189,248,.10);
}
.summary-print-btn {
    padding: 8px 14px;
    background: linear-gradient(135deg, #0284c7, #2563eb);
    color: #fff;
    white-space: nowrap;
}
.summary-print-btn:hover { filter: brightness(1.08); }
.summary-report__header {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 12px;
    padding-bottom: 12px;
    border-bottom: 1px solid rgba(56,189,248,.24);
}
.summary-report__logo {
    width: 58px;
    height: 58px;
    object-fit: contain;
    flex: 0 0 auto;
}
.summary-report__titles h1 {
    margin: 0;
    color: #f8fafc;
    font-size: 21px;
    line-height: 1.15;
}
.summary-report__titles p {
    margin: 5px 0 0;
    color: #94a3b8;
    font-size: 12px;
    font-weight: 750;
}
.summary-list { margin: 0; padding-left: 18px; }
.summary-list li { margin: 4px 0; }
.summary-visual-placeholder {
    min-height: 440px;
    display: grid;
    place-items: center;
    align-content: center;
    gap: 10px;
    text-align: center;
    padding: 28px;
    border: 1px dashed rgba(56,189,248,.35);
    border-radius: 18px;
    background: radial-gradient(circle at 50% 20%, rgba(14,165,233,.13), rgba(2,6,23,.18) 58%);
}
.summary-visual-placeholder__icon { font-size: 54px; }
.summary-visual-placeholder h3 { margin: 0; color: #e0f2fe; font-size: 25px; }
.summary-visual-placeholder p { margin: 0; max-width: 650px; color: #cbd5e1; }
.summary-visual-preview {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px;
    margin-top: 8px;
}
.summary-visual-preview span {
    padding: 7px 10px;
    border-radius: 999px;
    border: 1px solid rgba(56,189,248,.22);
    background: rgba(14,165,233,.10);
    color: #bae6fd;
    font-size: 12px;
    font-weight: 850;
}
@media (max-width: 760px) {
    .summary-toolbar { flex-direction: column; align-items: stretch; }
    .summary-tabs { display: grid; grid-template-columns: 1fr 1fr; }
    .summary-tab, .summary-print-btn { width: 100%; }
    .summary-report__header { display: none; }
}

@page {
    size: A4 portrait;
    margin: 9mm;
}
@media print {
    html, body {
        width: auto !important;
        height: auto !important;
        overflow: visible !important;
        background: #fff !important;
        color: #111827 !important;
    }
    body.printing-summary > *:not(#summary-modal) { display: none !important; }
    body.printing-summary #summary-modal {
        position: static !important;
        inset: auto !important;
        display: block !important;
        width: auto !important;
        height: auto !important;
        background: #fff !important;
    }
    body.printing-summary #summary-modal .overlay-modal__backdrop,
    body.printing-summary #summary-modal .overlay-modal__close,
    body.printing-summary #summary-modal .summary-toolbar,
    body.printing-summary #summary-modal .overlay-modal__dialog > h2 {
        display: none !important;
    }
    body.printing-summary #summary-modal .overlay-modal__dialog {
        position: static !important;
        width: 100% !important;
        max-width: none !important;
        max-height: none !important;
        overflow: visible !important;
        padding: 0 !important;
        margin: 0 !important;
        border: 0 !important;
        border-radius: 0 !important;
        box-shadow: none !important;
        background: #fff !important;
        color: #111827 !important;
    }
    body.printing-summary #summary-modal .overlay-modal__content {
        display: block !important;
        min-height: 0 !important;
        padding: 0 !important;
        color: #111827 !important;
        font-size: 9.2pt !important;
        line-height: 1.28 !important;
    }
    body.printing-summary #summary-modal .summary-report,
    body.printing-summary #summary-modal .summary-report * {
        box-sizing: border-box !important;
    }
    body.printing-summary #summary-modal .summary-report__header {
        display: flex !important;
        gap: 10px !important;
        margin: 0 0 6mm !important;
        padding: 0 0 4mm !important;
        border-bottom: 1.5pt solid #1d4ed8 !important;
    }
    body.printing-summary #summary-modal .summary-report__logo {
        width: 18mm !important;
        height: 18mm !important;
    }
    body.printing-summary #summary-modal .summary-report__titles h1 {
        color: #0f2f55 !important;
        font-size: 17pt !important;
    }
    body.printing-summary #summary-modal .summary-report__titles p {
        color: #475569 !important;
        font-size: 8.5pt !important;
    }
    body.printing-summary #summary-modal .summary-lead {
        display: block !important;
        margin: 0 0 4mm !important;
        color: #334155 !important;
        font-size: 8.5pt !important;
    }
    body.printing-summary #summary-modal .summary-kpis {
        display: grid !important;
        grid-template-columns: repeat(4, 1fr) !important;
        gap: 3mm !important;
        margin: 0 0 4mm !important;
    }
    body.printing-summary #summary-modal .summary-kpi {
        padding: 3mm !important;
        border: 1pt solid #93c5fd !important;
        border-radius: 3mm !important;
        background: #eff6ff !important;
        break-inside: avoid !important;
    }
    body.printing-summary #summary-modal .summary-kpi span {
        color: #475569 !important;
        font-size: 7.5pt !important;
    }
    body.printing-summary #summary-modal .summary-kpi strong {
        color: #0f2f55 !important;
        font-size: 16pt !important;
    }
    body.printing-summary #summary-modal .summary-grid {
        display: grid !important;
        grid-template-columns: 1fr 1fr 1fr 1.15fr !important;
        gap: 3mm !important;
        margin: 0 !important;
        align-items: start !important;
    }
    body.printing-summary #summary-modal .summary-card {
        display: block !important;
        padding: 3mm !important;
        margin: 0 !important;
        border: 1pt solid #cbd5e1 !important;
        border-radius: 2.5mm !important;
        background: #fff !important;
        color: #111827 !important;
        break-inside: avoid !important;
    }
    body.printing-summary #summary-modal .summary-card h3 {
        margin: 0 0 2mm !important;
        color: #0f4c81 !important;
        font-size: 9.5pt !important;
    }
    body.printing-summary #summary-modal .summary-card ul {
        margin: 0 !important;
        padding-left: 4mm !important;
    }
    body.printing-summary #summary-modal .summary-card li {
        margin: 1mm 0 !important;
        color: #111827 !important;
        font-size: 7.6pt !important;
        line-height: 1.18 !important;
    }
    body.printing-summary #summary-modal .summary-card--wide,
    body.printing-summary #summary-modal .summary-quick-read,
    body.printing-summary #summary-modal .modal-note {
        display: none !important;
    }
}



.help-qr-block {
    margin: 16px 0 12px;
    padding: 14px;
    border-radius: 16px;
    border: 1px solid rgba(56, 189, 248, .25);
    background: rgba(2, 6, 23, .30);
    text-align: center;
}
.help-qr-block h3 {
    margin: 0 0 6px;
    color: #bae6fd;
    font-size: 16px;
}
.help-qr-block p {
    margin: 0 0 10px;
    color: #dbeafe;
}
.help-qr-img {
    display: block;
    width: min(220px, 72vw);
    height: auto;
    margin: 8px auto 10px;
    padding: 10px;
    background: #fff;
    border-radius: 0;
    border: 1px solid rgba(255,255,255,.18);
}
.help-qr-link {
    display: inline-block;
    color: #bae6fd;
    font-weight: 800;
    font-size: 13px;
    word-break: break-all;
    text-decoration: none;
}
.help-qr-link:hover {
    text-decoration: underline;
}


/* M075I - Ajustes solo celular / safe area.
   No toca la lógica del mapa ni bloquea el movimiento. */
@media (max-width: 760px) {
    body {
        overflow-x: hidden;
    }
    .shell {
        padding-left: env(safe-area-inset-left);
        padding-right: env(safe-area-inset-right);
        padding-bottom: env(safe-area-inset-bottom);
    }
    .panel {
        width: 100%;
        max-width: 100vw;
        position: relative;
        z-index: 30;
    }
    .map-area {
        width: 100%;
        max-width: 100vw;
        z-index: 1;
        overflow: visible;
    }
    #map.leaflet-container {
        overflow: visible;
    }
    .leaflet-popup {
        max-width: calc(100vw - 32px);
    }
    .leaflet-control-container .leaflet-top.leaflet-left {
        margin-top: 6px;
        margin-left: max(6px, env(safe-area-inset-left));
    }
    .leaflet-control-container .leaflet-top.leaflet-right {
        margin-top: 6px;
        margin-right: max(6px, env(safe-area-inset-right));
    }
    .leaflet-popup-content-wrapper {
        max-width: calc(100vw - 34px);
        max-height: min(72vh, 520px);
        overflow: hidden;
        overflow-y: auto;
    }
    .leaflet-popup-content {
        width: min(250px, calc(100vw - 64px)) !important;
        min-width: 0;
        max-width: calc(100vw - 58px);
        margin: 10px 12px;
        overflow-wrap: anywhere;
    }
    .popup-photo {
        width: 100%;
        height: auto;
        max-width: calc(100vw - 74px);
        max-height: min(34vh, 210px);
    }
    .suggestions {
        left: 12px;
        right: 12px;
        width: auto;
        max-width: calc(100vw - 24px);
    }
    .filter-drawer{right:0;top:76px;bottom:12px}.filter-drawer[open]{width:min(86vw,350px)}.filter-drawer[open]>summary{right:min(86vw,350px)}.filter-drawer .filters{width:min(86vw,350px);max-height:calc(100vh - 88px);border-radius:14px 0 0 14px}.filter-drawer>summary{top:42%}
}

@media (max-width: 560px) {
    .brand {
        padding-left: max(12px, env(safe-area-inset-left));
        padding-right: max(12px, env(safe-area-inset-right));
    }
    .search-card,
    .filters,
    .selected-card,
    .list-wrap {
        padding-left: max(12px, env(safe-area-inset-left));
        padding-right: max(12px, env(safe-area-inset-right));
    }
    .panel-handle {
        padding-left: max(12px, env(safe-area-inset-left));
        padding-right: max(12px, env(safe-area-inset-right));
        z-index: 31;
    }
}

html, body { overflow-x: hidden; }

/* M076B: filtro técnico oculto. Se conserva el select de Estación en el DOM
   para compatibilidad interna, pero no se muestra en la interfaz. */
.filter-hidden-technical {
    display: none !important;
}

/* M076F: estabilidad escritorio. Evita scroll vertical del documento en PC
   y fija el área del mapa al alto disponible. Celular conserva sus reglas media. */
@media (min-width: 761px) {
    html, body {
        height: 100%;
        overflow: hidden;
    }
    .shell {
        height: 100vh;
        min-height: 100vh;
    }
    .map-area {
        height: calc(100vh - 32px);
        min-height: calc(100vh - 32px);
    }
    #map {
        height: 100%;
        min-height: 100%;
    }
}

/* Cabecera horizontal del visor. */
body.viewer-topbar-ready{display:grid;grid-template-rows:64px minmax(0,1fr);height:100vh;overflow:hidden}.viewer-topbar{position:relative;z-index:1250;display:grid;grid-template-columns:minmax(390px,auto) minmax(430px,650px) 1fr auto;align-items:center;gap:18px;height:64px;padding:0 12px;background:var(--panel);border-bottom:1px solid var(--line);box-shadow:0 4px 18px rgba(0,0,0,.2)}.viewer-topbar .brand{min-width:0;padding:0;border:0;gap:10px}.viewer-topbar .brand__mark{width:40px;height:40px}.viewer-topbar .brand h1{font-size:21px;white-space:nowrap}.viewer-topbar .brand p{font-size:12px;white-space:nowrap}.viewer-topbar .search-card{position:relative;display:flex;align-items:center;gap:9px;padding:0;border:0;min-width:0}.viewer-topbar .search-card>.input-label{flex:0 0 auto;margin:0;font-size:15px;color:var(--text)}.viewer-topbar .search-row{display:grid;grid-template-columns:minmax(240px,1fr) auto auto;gap:7px;flex:1;min-width:0}.viewer-topbar .search-row input,.viewer-topbar .search-row button{height:38px;padding-top:7px;padding-bottom:7px}.viewer-topbar .status-line{display:none}.viewer-topbar .suggestions{top:43px;left:70px;width:min(470px,calc(100vw - 120px));margin:0}.viewer-topbar .edit-launch{position:static;justify-self:end;padding:10px 15px}.viewer-topbar+.shell{height:calc(100vh - 64px);min-height:0;padding:8px;gap:8px}.viewer-topbar+.shell .panel{min-height:0;height:100%;border-radius:14px}.viewer-topbar+.shell .map-area{height:100%;min-height:0}.viewer-topbar+.shell #map{height:100%;min-height:100%}.viewer-topbar~.shell .filter-drawer{top:72px;bottom:8px}.viewer-topbar~.shell .filter-drawer .filters{max-height:calc(100vh - 80px)}
@media(max-width:1100px) and (min-width:761px){.viewer-topbar{grid-template-columns:minmax(300px,auto) minmax(390px,1fr) auto;gap:10px}.viewer-topbar .brand h1{font-size:17px}.viewer-topbar .brand p{display:none}.viewer-topbar .brand__mark{width:34px;height:34px}.viewer-topbar .edit-launch span{display:none}}
@media(max-width:760px){body.viewer-topbar-ready{display:block;height:auto;overflow:auto}.viewer-topbar{position:relative;grid-template-columns:1fr auto;height:auto;min-height:112px;padding:8px;gap:7px}.viewer-topbar .brand{grid-column:1/2}.viewer-topbar .brand h1{font-size:17px;white-space:normal}.viewer-topbar .brand p{display:none}.viewer-topbar .brand__mark{width:32px;height:32px}.viewer-topbar .search-card{grid-column:1/-1;grid-row:2}.viewer-topbar .search-card>.input-label{display:none}.viewer-topbar .search-row{grid-template-columns:1fr auto auto}.viewer-topbar .edit-launch{grid-column:2;grid-row:1;padding:9px}.viewer-topbar+.shell{height:auto;min-height:calc(100vh - 112px);padding:0;gap:0}.viewer-topbar+.shell .panel{height:auto}.viewer-topbar+.shell .map-area{height:auto}.viewer-topbar+.shell #map{min-height:48vh}.viewer-topbar~.shell .filter-drawer{top:120px}.viewer-topbar .suggestions{top:42px;left:0;width:100%}}
@media(min-width:761px){.filter-drawer[open]{width:430px}.filter-drawer[open]>summary{right:430px}.filter-drawer .filters{width:430px}.viewer-topbar~.shell .filter-drawer>summary{top:122px}}

/* Herramientas superiores, temas y pestaña horizontal del menú. */
.viewer-tools{display:flex;align-items:center;justify-content:flex-end;gap:6px;min-width:0}.viewer-tools__label{font-size:13px;font-weight:900}.viewer-tools button{display:flex;align-items:center;gap:5px;height:36px;padding:6px 9px;border-radius:10px}.theme-swatch{display:block;width:17px;height:17px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1px rgba(148,163,184,.7)}.theme-swatch--dark{background:#111827}.theme-swatch--light{background:#f8fafc}.theme-choice.active{border-color:var(--sky);box-shadow:0 0 0 2px rgba(56,189,248,.2)}.leaflet-container.marking-emergency{cursor:crosshair!important}
body.theme-light{color-scheme:light;--bg:#e8eef5;--panel:rgba(248,250,252,.98);--panel-2:rgba(255,255,255,.96);--text:#172033;--muted:#526579;--line:rgba(71,85,105,.24);--shadow:0 18px 48px rgba(15,23,42,.18);background:linear-gradient(135deg,#eef4f8,#dfe9f1)}body.theme-light input,body.theme-light select{background:#fff;color:#172033}body.theme-light button{background:#e7edf3;color:#172033}body.theme-light button.active,body.theme-light #go-btn{color:#fff}body.theme-light .hydrant-item{background:rgba(255,255,255,.72)}body.theme-light .right-filters,body.theme-light .filter-drawer .filters{background:rgba(248,250,252,.98)}body.theme-light .suggestions{background:rgba(248,250,252,.99)}body.theme-light .suggestion b,body.theme-light .list-head span{color:#075985}
@media(min-width:761px){.viewer-topbar~.shell .filter-drawer>summary{top:0;right:0;transform:none;width:104px;height:42px;border:1px solid var(--line);border-top:0;border-radius:0 0 10px 10px}.viewer-topbar~.shell .filter-drawer>summary::after{content:'Menú+';font-size:16px}.viewer-topbar~.shell .filter-drawer[open]>summary{right:163px}.viewer-topbar~.shell .filter-drawer[open]>summary::after{content:'Menú−'}.viewer-topbar~.shell .filter-drawer .filters{padding-top:58px}}
@media(max-width:1500px) and (min-width:761px){.viewer-topbar{grid-template-columns:minmax(300px,350px) minmax(350px,1fr) auto auto}.viewer-topbar .brand h1{font-size:17px}.viewer-topbar .brand p{display:none}.viewer-tools button{padding:6px}.theme-choice{font-size:0}.viewer-tools__label{display:none}.viewer-topbar .edit-launch span{display:none}}
@media(max-width:760px){.viewer-tools{grid-column:1/-1;grid-row:3;justify-content:flex-start;overflow-x:auto}.viewer-topbar{min-height:158px}.viewer-topbar+.shell{min-height:calc(100vh - 158px)}.viewer-topbar~.shell .filter-drawer{top:166px}.viewer-tools button{flex:0 0 auto}}
.viewer-topbar .search-row{grid-template-columns:minmax(180px,1fr) auto auto auto auto}
#locate-mobile-btn{display:none}
@media(max-width:760px){body.panel-collapsed .viewer-topbar .search-card{display:flex!important}.viewer-topbar .search-row{grid-template-columns:minmax(0,1fr) 38px auto auto}.viewer-topbar #go-btn{width:38px;padding:0;font-size:0}.viewer-topbar #go-btn::before{content:'🔍';font-size:17px}.viewer-topbar #mark-map-btn,.viewer-topbar #clear-btn{padding-left:8px;padding-right:8px}.viewer-topbar #mark-map-btn{font-size:12px}}
@media(max-width:760px){.viewer-topbar .viewer-tools{display:none}.viewer-topbar{min-height:112px}.viewer-topbar+.shell{min-height:calc(100vh - 112px)}.viewer-topbar~.shell .filter-drawer{top:120px}.viewer-topbar .search-row{width:100%;grid-template-columns:minmax(0,1fr) 38px auto 38px 38px;gap:5px}.viewer-topbar #clear-btn,.viewer-topbar #locate-mobile-btn{grid-column:auto;width:38px;padding:0;font-size:18px}.viewer-topbar #locate-mobile-btn{display:block}.viewer-topbar #mark-map-btn{white-space:nowrap}}

/* Diálogos simplificados y sin pestaña lateral en celulares. */
@media(max-width:760px){
  .filter-drawer>summary{display:none}
  #help-modal .overlay-modal__dialog>h2,
  #help-modal .overlay-modal__content>p,
  #help-modal .help-block,
  #help-modal .overlay-modal__content{display:grid;place-items:center;min-height:calc(100vh - 70px);padding:0}
  #help-modal .help-qr-block{display:grid;place-items:center;text-align:center;gap:12px;width:100%;padding:12px;border:0;background:transparent}
  #help-modal .help-qr-block>h3,#help-modal .help-qr-block>p,#help-modal .help-qr-link{display:block;margin:0}
  #help-modal .help-qr-img{width:min(82vw,330px);max-width:100%;margin:0}
  #help-modal .help-qr-link{max-width:100%;overflow-wrap:anywhere;font-weight:800}
  #summary-modal .overlay-modal__dialog>h2,
  #summary-modal .summary-lead,
  #summary-modal .summary-kpis,
  #summary-modal .summary-grid{display:none}
  #summary-modal .overlay-modal__content{display:flex;flex-direction:column;justify-content:center;min-height:calc(100vh - 70px);gap:14px;padding:0}
  #summary-modal .summary-card--wide{width:100%}
  #summary-modal .modal-note{margin:0}
}

/* La pestaña del visor replica la alineación del editor. */
@media(min-width:761px){.viewer-topbar~.shell .filter-drawer{right:0}.viewer-topbar~.shell .filter-drawer[open]>summary{right:163px}}

/* Miniatura ampliada de la ficha del recurso. */
@media(min-width:761px){.selected-card{grid-template-columns:180px minmax(0,1fr);gap:14px}.detail-photo{width:180px;height:180px}}
@media(max-width:760px){.selected-card{grid-template-columns:140px minmax(0,1fr)}.detail-photo{width:140px;height:140px}}
@media(max-width:560px){.selected-card{grid-template-columns:120px minmax(0,1fr)}.detail-photo{width:120px;height:120px}}

@media(min-width:761px){
  .detail-photo{
    width:100%;
    width:-webkit-fill-available;
    width:stretch;
    height:100%;
    height:-webkit-fill-available;
    min-height:180px;
    align-self:stretch;
    object-fit:contain;
  }
}
.popup-toggle{display:flex;align-items:center;gap:7px;margin-top:7px;color:var(--muted);font-size:12px;font-weight:700;cursor:pointer}.popup-toggle input{width:15px;height:15px;margin:0;accent-color:#22c55e;cursor:pointer}

/* Ficha operativa compacta para celulares. */
@media(max-width:760px){
  .panel .list-wrap{display:none}
  .selected-card{grid-template-columns:1fr}
  .selected-card>.detail-photo,
  .selected-card .photo-status,
  .selected-card .popup-toggle,
  .selected-card .detail-title-id,
  .selected-card #detail-subtitle,
  .selected-card .detail-row--desktop{display:none}
  .selected-card .detail-data h2{font-size:20px;margin-bottom:8px}
  .selected-card .detail-row--mobile-keep{display:block;font-size:14px;margin:5px 0}
  .leaflet-popup .popup-photo-link,
  .leaflet-popup .popup-row--desktop{display:none}
  .leaflet-popup-content-wrapper{max-height:none}
  .leaflet-popup-content{width:min(270px,calc(100vw - 64px))!important}
  .leaflet-popup .popup-title{font-size:20px;margin-bottom:10px}
  .leaflet-popup .popup-row--mobile-keep{display:block;font-size:14px;margin:5px 0}
}


/* M185 · Resumen General tabular + Resumen Visual cartográfico */
.summary-loading,.summary-error{min-height:280px;display:flex;align-items:center;justify-content:center;gap:10px;padding:30px;text-align:center;color:#dbeafe;font-weight:850}
.summary-loading span{width:18px;height:18px;border:3px solid rgba(148,163,184,.35);border-top-color:#38bdf8;border-radius:50%;animation:summarySpin .8s linear infinite}@keyframes summarySpin{to{transform:rotate(360deg)}}
.summary-error{display:block;min-height:0;border:1px solid rgba(248,113,113,.35);border-radius:14px;background:rgba(127,29,29,.18);color:#fecaca}
.summary-relevado-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:4px 0 16px}
.summary-relevado-grid>div{padding:12px 13px;border:1px solid rgba(56,189,248,.25);border-radius:14px;background:linear-gradient(135deg,rgba(14,165,233,.14),rgba(37,99,235,.12))}
.summary-relevado-grid span{display:block;color:#94a3b8;font-size:11px;font-weight:850}.summary-relevado-grid strong{display:block;margin-top:4px;color:#fff;font-size:23px}
.summary-table-wrap{border:1px solid rgba(148,163,184,.25);border-radius:14px;overflow:hidden;background:rgba(2,6,23,.18)}
.summary-table-title{padding:10px 12px;background:rgba(14,165,233,.14);color:#bae6fd;font-weight:900;letter-spacing:.02em}
.summary-general-table{width:100%;border-collapse:collapse;font-size:12px}.summary-general-table th{padding:9px 8px;background:#0e4f7a;color:#fff;text-align:center;position:sticky;top:0;z-index:1}.summary-general-table th:first-child{text-align:left}.summary-general-table td{padding:7px 8px;border-top:1px solid rgba(148,163,184,.16);text-align:center;color:#e2e8f0;background:rgba(15,23,42,.38)}
.summary-general-table .summary-dependency-cell{text-align:left;font-weight:800;color:#f8fafc}.summary-group-row td{background:rgba(14,165,233,.16)!important;color:#bae6fd!important;font-weight:950!important;text-align:left!important;text-transform:uppercase;letter-spacing:.03em}.summary-total-cell{background:rgba(56,189,248,.20)!important;color:#e0f2fe!important;font-size:14px;font-weight:950;border-left:2px solid rgba(56,189,248,.35)!important;border-right:2px solid rgba(56,189,248,.35)!important}.summary-reference-cell{background:rgba(250,204,21,.18)!important;color:#fde68a!important;font-size:14px;font-weight:950;border-left:2px solid rgba(250,204,21,.32)!important}.summary-unclassified{margin:9px 0 0;color:#94a3b8;font-size:11px}
.summary-visual-report{min-height:520px}.summary-visual-controls{display:flex;align-items:end;justify-content:space-between;gap:10px;margin-bottom:10px}.summary-visual-select-wrap{display:grid;gap:5px;flex:1}.summary-visual-select-wrap label{font-size:11px;color:#94a3b8;font-weight:850}.summary-visual-select-wrap select{width:100%;min-height:40px;border:1px solid rgba(56,189,248,.28);border-radius:10px;background:#0f172a;color:#e2e8f0;padding:8px 10px;font-weight:800}.summary-visual-nav{display:flex;gap:7px}.summary-visual-nav button{min-height:40px;padding:8px 12px;border:1px solid rgba(56,189,248,.25);border-radius:10px;background:rgba(14,165,233,.12);color:#dbeafe;font-weight:850}.summary-visual-nav button:disabled{opacity:.38;cursor:default}
.summary-visual-sheet{padding:12px;border:1px solid rgba(56,189,248,.25);border-radius:16px;background:rgba(2,6,23,.26)}.summary-visual-heading{display:flex;align-items:start;justify-content:space-between;gap:12px;margin-bottom:10px}.summary-visual-heading h3{margin:0;color:#e0f2fe;font-size:18px}.summary-visual-heading p{margin:4px 0 0;color:#94a3b8;font-size:11px}.summary-visual-stats{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}.summary-visual-stats span{display:inline-flex;align-items:center;gap:5px;padding:6px 8px;border-radius:999px;background:rgba(15,23,42,.8);border:1px solid rgba(148,163,184,.20);color:#cbd5e1;font-size:11px;font-weight:800}.summary-dot{display:inline-block;width:9px;height:9px;border-radius:50%;vertical-align:middle}.summary-dot--photo{background:#2563eb}.summary-dot--no-photo{background:#f59e0b}.summary-visual-map{height:min(58vh,560px);min-height:420px;border:1px solid rgba(148,163,184,.28);border-radius:12px;background:#dbe4ee;overflow:hidden}.summary-visual-note{margin:9px 2px 0;color:#94a3b8;font-size:11px}
.summary-visual-print-area{position:absolute;left:-100000px;top:0;width:190mm;background:#fff;color:#17324d}.summary-visual-print-sheet{width:190mm;min-height:277mm;padding:7mm;box-sizing:border-box;background:#fff;page:summaryVisualPage;break-after:page;page-break-after:always}.summary-visual-print-sheet header{display:flex;align-items:center;gap:4mm;padding-bottom:3mm;border-bottom:1.2pt solid #1f76ad}.summary-visual-print-sheet header img{width:15mm;height:15mm;object-fit:contain}.summary-visual-print-sheet h1{margin:0;color:#123b61;font-size:17pt}.summary-visual-print-sheet header p{margin:1.5mm 0 0;color:#426b8c;font-size:8pt}.summary-visual-print-sheet table{width:100%;border-collapse:collapse;margin:4mm 0}.summary-visual-print-sheet th{padding:2.2mm;background:#1f76ad;color:#fff;font-size:8.5pt}.summary-visual-print-sheet td{padding:2.3mm;text-align:center;border:1px solid #d8ebf8;color:#17324d;font-size:9pt;font-weight:800}.summary-visual-print-sheet td:first-child{text-align:left}.summary-visual-print-map{height:205mm;border:1px solid #b8c4cf;background:#e8eef5}.summary-visual-print-legend{display:flex;gap:5mm;align-items:center;margin-top:2.5mm;color:#426b8c;font-size:7.5pt}.summary-visual-print-legend span{display:inline-flex;align-items:center;gap:1.2mm}
@page summaryGeneralPage{size:A4 portrait;margin:9mm}@page summaryVisualPage{size:A4 portrait;margin:7mm}
.summary-report--general{page:summaryGeneralPage}
@media(max-width:760px){.summary-relevado-grid{grid-template-columns:1fr 1fr}.summary-table-wrap{overflow:auto}.summary-general-table{min-width:650px}.summary-visual-controls,.summary-visual-heading{flex-direction:column;align-items:stretch}.summary-visual-nav{display:grid;grid-template-columns:1fr 1fr}.summary-visual-map{height:55vh;min-height:360px}.summary-visual-stats{justify-content:flex-start}}
@media print{
 body.printing-summary-general #summary-modal .summary-relevado-grid{display:grid!important;grid-template-columns:repeat(2,1fr)!important;gap:2.2mm!important;margin:0 0 3mm!important}
 body.printing-summary-general #summary-modal .summary-relevado-grid>div{padding:2.5mm!important;border:1pt solid #93c5fd!important;border-radius:2.5mm!important;background:#eff6ff!important}
 body.printing-summary-general #summary-modal .summary-relevado-grid span{color:#475569!important;font-size:7pt!important}body.printing-summary-general #summary-modal .summary-relevado-grid strong{color:#0f2f55!important;font-size:14pt!important}
 body.printing-summary-general #summary-modal .summary-table-wrap{display:block!important;border:1pt solid #cbd5e1!important;border-radius:0!important;overflow:visible!important;background:#fff!important}.summary-table-title{color:#0f4c81!important;background:#e0f2fe!important;padding:2mm!important;font-size:9pt!important}.summary-general-table{font-size:6.8pt!important;table-layout:fixed!important;width:100%!important}.summary-general-table th{position:static!important;padding:1.35mm .9mm!important;background:#1f76ad!important;color:#fff!important;white-space:normal!important}.summary-general-table th:nth-child(1){width:31%!important}.summary-general-table th:nth-child(2),.summary-general-table th:nth-child(3){width:13%!important}.summary-general-table th:nth-child(4){width:18%!important}.summary-general-table th:nth-child(5){width:25%!important}.summary-general-table td{padding:1.15mm .9mm!important;color:#111827!important;background:#fff!important;border-top:.5pt solid #d8ebf8!important}.summary-group-row td{background:#d9efff!important;color:#174a73!important}.summary-total-cell{background:#c7e7fb!important;color:#123b61!important}.summary-reference-cell{background:#ffe8a3!important;color:#533800!important}.summary-unclassified{color:#475569!important;font-size:7pt!important}
 body.printing-summary-visual #summary-modal .overlay-modal__content{display:none!important}body.printing-summary-visual #summary-modal .overlay-modal__dialog{overflow:visible!important}body.printing-summary-visual #summary-visual-print-area{display:block!important;position:static!important;left:auto!important;top:auto!important;width:auto!important}.summary-visual-print-sheet{display:block!important;break-after:page!important;page-break-after:always!important}.summary-visual-print-map{height:205mm!important}
}

/* M185.1 · Sólo impresión: Resumen General A4 vertical + vistas manuales de mapas conservadas en PDF. */


/* M186 · Modo claro integral: ficha, modales, ayuda, resumen y controles dinámicos. */
body.theme-light .selected-card{background:rgba(255,255,255,.82)}
body.theme-light .detail-data h2{color:#172033}
body.theme-light .detail-data p{color:#526579}
body.theme-light .detail-row{color:#334155}
body.theme-light .detail-row b{color:#075985}
body.theme-light .photo-status,body.theme-light .popup-toggle,body.theme-light .toggle-row{color:#526579}
body.theme-light .result-distance{color:#172033}
body.theme-light .hydrant-item:hover{background:#f1f5f9}
body.theme-light .hydrant-title{color:#172033}
body.theme-light .hydrant-meta{color:#526579}
body.theme-light .filter-drawer>summary{color:#172033}
body.theme-light button.secondary{background:#edf2f7;color:#172033}
body.theme-light .photo-checks{background:#fff}

body.theme-light .overlay-modal__dialog{background:#f8fafc;color:#172033;border-color:rgba(71,85,105,.24);box-shadow:0 24px 70px rgba(15,23,42,.20)}
body.theme-light .overlay-modal__dialog h2{color:#172033}
body.theme-light .overlay-modal__content{color:#334155}
body.theme-light .overlay-modal__caption{color:#475569}
body.theme-light .photo-modal-loading{color:#475569}
body.theme-light .overlay-modal__close{background:#e2e8f0;color:#172033;border-color:#cbd5e1}
body.theme-light .help-block{background:#fff;border-color:#d6dee8}
body.theme-light .help-block h3{color:#075985}
body.theme-light .help-block p{color:#334155}
body.theme-light .modal-note{background:#e0f2fe;border-color:#7dd3fc;color:#0c4a6e}
body.theme-light .help-qr-link,body.theme-light .mobile-qr-link{color:#0369a1}

body.theme-light .summary-toolbar{background:#fff;border-color:#cbd5e1}
body.theme-light .summary-tab{background:#e7edf3;color:#172033;border-color:#cbd5e1}
body.theme-light .summary-tab.active{background:linear-gradient(135deg,#0284c7,#2563eb);color:#fff;border-color:#0284c7}
body.theme-light .summary-report__titles h1{color:#172033}
body.theme-light .summary-report__titles p{color:#526579}
body.theme-light .summary-loading{color:#334155}
body.theme-light .summary-relevado-grid>div{background:linear-gradient(135deg,#eff6ff,#f8fafc);border-color:#bfdbfe}
body.theme-light .summary-relevado-grid span{color:#526579}
body.theme-light .summary-relevado-grid strong{color:#0f2f55}
body.theme-light .summary-table-wrap{background:#fff;border-color:#cbd5e1}
body.theme-light .summary-table-title{background:#e0f2fe;color:#0c4a6e}
body.theme-light .summary-general-table td{background:#fff;color:#334155;border-top-color:#e2e8f0}
body.theme-light .summary-general-table .summary-dependency-cell{color:#172033}
body.theme-light .summary-group-row td{background:#d9efff!important;color:#174a73!important}
body.theme-light .summary-total-cell{background:#c7e7fb!important;color:#123b61!important}
body.theme-light .summary-reference-cell{background:#fff1b8!important;color:#6b4f00!important}
body.theme-light .summary-unclassified{color:#526579}
body.theme-light .summary-visual-select-wrap label{color:#526579}
body.theme-light .summary-visual-select-wrap select{background:#fff;color:#172033;border-color:#cbd5e1}
body.theme-light .summary-visual-nav button{background:#e0f2fe;color:#0c4a6e;border-color:#7dd3fc}
body.theme-light .summary-visual-sheet{background:#fff;border-color:#cbd5e1}
body.theme-light .summary-visual-heading h3{color:#172033}
body.theme-light .summary-visual-heading p,body.theme-light .summary-visual-note{color:#526579}
body.theme-light .summary-visual-stats span{background:#f1f5f9;color:#334155;border-color:#cbd5e1}

body.theme-light .mobile-config-intro,body.theme-light .mobile-config-note{color:#526579}
body.theme-light .mobile-config-section h3{color:#172033}
body.theme-light .mobile-choice{color:#334155}
body.theme-light .mobile-alarm-sound-card{background:#f8fafc;color:#334155;border-color:#d6dee8}
body.theme-light .mobile-alarm-sound-title,body.theme-light .mobile-alarm-sound-file,body.theme-light .mobile-alarm-sound-help{color:#334155}

/* En modo claro el visor de fotografía también adopta una superficie clara. */
body.theme-light #photo-modal .overlay-modal__dialog--photo{background:#eef2f7;color:#172033}
body.theme-light .summary-print-btn{background:linear-gradient(135deg,#0284c7,#2563eb);color:#fff;border-color:transparent}
body.theme-light .intervention-primary-btn{background:#b91c1c;color:#fff}
body.theme-light .intervention-inline-btn{background:#0f8b7d;color:#fff}
body.theme-light .intervention-secondary-btn{background:#64748b;color:#fff}
body.theme-light .intervention-danger-btn{background:#7f1d1d;color:#fff}
body.theme-light .mobile-save-btn{background:linear-gradient(135deg,#0284c7,#2563eb);color:#fff}
body.theme-light .mobile-config-qr-btn{background:#f8fafc;color:#172033;border-color:#cbd5e1}

/* M186.2 - globos fijos por jurisdicción hasta el tercer scroll */
.jurisdiction-count-icon{background:transparent!important;border:0!important;overflow:visible!important;pointer-events:none!important}
.jurisdiction-count-label{width:146px;min-height:48px;padding:5px 8px;border-radius:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:rgba(15,23,42,.68);border:1.5px solid rgba(125,211,252,.88);box-shadow:0 6px 15px rgba(2,6,23,.24);color:#f8fafc;line-height:1.05;text-align:center;backdrop-filter:blur(3px);box-sizing:border-box;text-shadow:0 1px 2px rgba(0,0,0,.45)}
.jurisdiction-count-name{max-width:132px;font-size:10px;font-weight:900;letter-spacing:.25px;text-transform:uppercase;white-space:normal}
.jurisdiction-count-total{margin-top:3px;font-size:18px;font-weight:950;letter-spacing:.3px;color:#7dd3fc}
.jurisdiction-count-label.is-zero{opacity:.48}
body.theme-light .jurisdiction-count-label{background:rgba(255,255,255,.74);color:#172033;border-color:rgba(2,132,199,.84);box-shadow:0 5px 14px rgba(15,23,42,.15);text-shadow:none}
body.theme-light .jurisdiction-count-total{color:#075985}
body.theme-light .jurisdiction-count-label.is-zero{opacity:.50}


/* M188.1 PC iconos de barra superior */
.toolbar-icon{display:block;width:18px;height:18px;object-fit:contain;flex:0 0 18px}
.toolbar-icon-only{display:inline-flex;align-items:center;justify-content:center}
.toolbar-text-icon-btn{display:inline-flex;align-items:center;gap:6px}
.toolbar-btn-content{display:inline-flex;align-items:center;gap:7px}
.viewer-topbar #go-btn,.viewer-topbar #clear-btn,.viewer-topbar #locate-mobile-btn,.viewer-topbar #mark-map-btn{display:inline-flex;align-items:center;justify-content:center}
.viewer-topbar #go-btn{min-width:38px;padding-left:10px;padding-right:10px}
.viewer-topbar #clear-btn{min-width:38px;padding-left:10px;padding-right:10px}
.viewer-topbar #mark-map-btn{gap:6px}
.viewer-topbar #mark-map-btn .toolbar-icon{width:17px;height:17px}
.viewer-topbar #intervention-open-btn .toolbar-icon{width:17px;height:17px}
.viewer-topbar #intervention-open-btn .toolbar-btn-content{min-width:0}
body.theme-light .viewer-topbar #go-btn img,body.theme-light .viewer-topbar #clear-btn img,body.theme-light .viewer-topbar #mark-map-btn img,body.theme-light .viewer-topbar #intervention-open-btn img{filter:none}
body:not(.theme-light) .viewer-topbar #go-btn img,body:not(.theme-light) .viewer-topbar #clear-btn img,body:not(.theme-light) .viewer-topbar #mark-map-btn img,body:not(.theme-light) .viewer-topbar #intervention-open-btn img{filter:none}
@media(max-width:760px){.viewer-topbar #go-btn::before{content:none!important}.viewer-topbar #go-btn img{display:block}.viewer-topbar #mark-map-btn .toolbar-icon{width:16px;height:16px}}


/* M188.2 - prioridad Buscar/Marcar; sin Mi ubicación en PC */
@media(min-width:761px){
  .viewer-topbar .search-row{grid-template-columns:minmax(180px,1fr) auto auto auto!important;}
  .viewer-topbar #go-btn{width:44px;min-width:44px;padding:0;}
  .viewer-topbar #go-btn .toolbar-icon--primary{width:27px;height:27px;flex-basis:27px;}
  .viewer-topbar #mark-map-btn{height:38px;padding-left:11px;padding-right:13px;gap:8px;font-weight:900;}
  .viewer-topbar #mark-map-btn .toolbar-icon--primary{width:25px;height:25px;flex-basis:25px;}
  .viewer-topbar #clear-btn .toolbar-icon{width:19px;height:19px;flex-basis:19px;}
}


/* M188.3 - visibilidad de iconos PC */
@media(min-width:761px){
  .viewer-topbar #go-btn .toolbar-icon--primary{width:31px;height:31px;flex-basis:31px;display:block;opacity:1;filter:drop-shadow(0 0 2px rgba(255,255,255,.95)) drop-shadow(0 1px 3px rgba(255,255,255,.65));}
  body.theme-light .viewer-topbar #go-btn .toolbar-icon--primary{filter:drop-shadow(0 0 1px rgba(255,255,255,.9)) drop-shadow(0 1px 2px rgba(255,255,255,.55));}
  .viewer-topbar #mark-map-btn.active .mark-map-label{color:inherit;}
  body.theme-light .viewer-topbar #mark-map-btn.active,
  body.theme-light .viewer-topbar #mark-map-btn.active .mark-map-label{color:#172033!important;}
  .viewer-topbar #clear-btn .toolbar-icon{width:24px;height:24px;flex-basis:24px;}
  body:not(.theme-light) .viewer-topbar #clear-btn .toolbar-icon{filter:drop-shadow(0 0 2px rgba(255,255,255,.90)) drop-shadow(0 1px 3px rgba(255,255,255,.50)) brightness(1.08);}
  body.theme-light .viewer-topbar #clear-btn .toolbar-icon{filter:drop-shadow(0 0 1px rgba(255,255,255,.65));}
  .viewer-topbar #go-btn,.viewer-topbar #clear-btn{overflow:visible;}
}


/* M188.4 - iconos blanco/negro sin sombras */
@media(min-width:761px){
  .viewer-topbar .toolbar-icon,
  .viewer-topbar .toolbar-icon--primary,
  .viewer-topbar #intervention-open-btn .toolbar-icon,
  .viewer-topbar #clear-btn .toolbar-icon,
  .viewer-topbar #mark-map-btn .toolbar-icon,
  .viewer-topbar #go-btn .toolbar-icon{
    display:block !important;
    opacity:1 !important;
    position:relative;
    z-index:2;
    box-shadow:none !important;
    filter:none;
    mix-blend-mode:normal;
  }
  .viewer-topbar #go-btn .toolbar-icon--primary{width:28px !important;height:28px !important;flex-basis:28px !important;}
  .viewer-topbar #mark-map-btn .toolbar-icon--primary{width:24px !important;height:24px !important;flex-basis:24px !important;}
  .viewer-topbar #clear-btn .toolbar-icon{width:22px !important;height:22px !important;flex-basis:22px !important;}
  .viewer-topbar #intervention-open-btn .toolbar-icon{width:19px !important;height:19px !important;flex-basis:19px !important;}
  body.theme-light .viewer-topbar .toolbar-icon,
  body.theme-light .viewer-topbar .toolbar-icon--primary{filter:brightness(0) saturate(0) !important;}
  body:not(.theme-light) .viewer-topbar .toolbar-icon,
  body:not(.theme-light) .viewer-topbar .toolbar-icon--primary{filter:brightness(0) invert(1) !important;}
  body.theme-light .viewer-topbar #mark-map-btn,
  body.theme-light .viewer-topbar #mark-map-btn.active,
  body.theme-light .viewer-topbar #mark-map-btn .mark-map-label,
  body.theme-light .viewer-topbar #mark-map-btn.active .mark-map-label{color:#172033 !important;}
  body:not(.theme-light) .viewer-topbar #mark-map-btn,
  body:not(.theme-light) .viewer-topbar #mark-map-btn.active,
  body:not(.theme-light) .viewer-topbar #mark-map-btn .mark-map-label,
  body:not(.theme-light) .viewer-topbar #mark-map-btn.active .mark-map-label{color:#ffffff !important;}
  .viewer-topbar #go-btn,
  .viewer-topbar #mark-map-btn,
  .viewer-topbar #clear-btn,
  .viewer-topbar #intervention-open-btn{overflow:visible;}
}


/* M188.5 - lupa visible y limpiar más grande */
@media(min-width:761px){
  .viewer-topbar #go-btn .toolbar-icon,
  .viewer-topbar #go-btn .toolbar-icon--primary{
    width:30px !important;
    height:30px !important;
    flex-basis:30px !important;
    display:block !important;
    opacity:1 !important;
    visibility:visible !important;
    position:relative;
    z-index:3;
    filter:brightness(0) saturate(0) !important;
  }
  .viewer-topbar #clear-btn .toolbar-icon{
    width:26px !important;
    height:26px !important;
    flex-basis:26px !important;
    display:block !important;
    opacity:1 !important;
    visibility:visible !important;
  }
}


/* M191 · Informe Dinámico + Ayuda + lupa neutra */
.map-help-btn{position:absolute;right:14px;bottom:28px;z-index:900;display:inline-flex;align-items:center;justify-content:center;padding:9px 13px;border:1px solid var(--line);border-radius:12px;background:rgba(15,23,42,.86);color:#fff;text-decoration:none;font-weight:900;box-shadow:0 5px 18px rgba(0,0,0,.18)}
body.theme-light .map-help-btn{background:rgba(255,255,255,.92);color:#172033;border-color:#cbd5e1}
.summary-extra-tools{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.summary-report-option{display:inline-flex;align-items:center;gap:7px;min-height:38px;padding:8px 11px;border-radius:10px;border:1px solid rgba(148,163,184,.28);background:rgba(30,41,59,.55);color:#e5eef9;font-weight:850;font-size:.9rem;cursor:pointer;white-space:nowrap}
.summary-report-option input{width:16px;height:16px;accent-color:#38bdf8;margin:0}
.summary-report-option:has(input:checked){border-color:#38bdf8;background:rgba(14,116,144,.18)}
.summary-report-option[hidden]{display:none!important}
body.theme-light .summary-report-option{background:#fff;color:#172033;border-color:#cbd5e1}
body.theme-light .summary-report-option:has(input:checked){background:#eef8ff;border-color:#38bdf8}
.summary-dynamic-box{margin:0 0 14px;padding:14px 16px;border-radius:14px;border:1px solid rgba(56,189,248,.3);background:rgba(15,23,42,.35)}body.theme-light .summary-dynamic-box{background:#f8fbff;color:#172033;border-color:#bfdbfe}.summary-dynamic-box h2{margin:0 0 9px;font-size:15px}.summary-dynamic-box p{margin:9px 0 0}.summary-dynamic-meta{display:flex;flex-wrap:wrap;gap:7px}.summary-chip{display:inline-flex;gap:5px;padding:5px 9px;border-radius:999px;background:rgba(30,41,59,.72);border:1px solid rgba(148,163,184,.25);color:#e5eef9;font-size:11px;font-weight:750}body.theme-light .summary-chip{background:#eef4fb;color:#172033;border-color:#d2ddeb}
.summary-detail-wrap{margin-top:14px;overflow:auto}.summary-detail-table{width:100%;border-collapse:collapse;font-size:10.5px;min-width:850px}.summary-detail-table th{padding:7px;background:#0e4f7a;color:#fff;text-align:left;position:sticky;top:0}.summary-detail-table td{padding:6px 7px;border-top:1px solid rgba(148,163,184,.16);color:#e2e8f0;vertical-align:top}.summary-detail-address{font-weight:800}.theme-light .summary-detail-table td{color:#334155;background:#fff}
.summary-photo-appendix{margin-top:18px}.summary-photo-appendix h2{font-size:16px;margin:0 0 10px}.summary-photo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.summary-photo-card{overflow:hidden;border:1px solid rgba(148,163,184,.28);border-radius:12px;background:rgba(15,23,42,.4);break-inside:avoid}.summary-photo-card img{display:block;width:100%;height:230px;object-fit:contain;background:#070b13}.summary-photo-card__body{display:flex;flex-direction:column;gap:3px;padding:9px}.summary-photo-card__body small{color:#94a3b8}.theme-light .summary-photo-card{background:#fff}.theme-light .summary-photo-card__body small{color:#64748b}.summary-dynamic-no-photos{padding:12px;border:1px dashed rgba(148,163,184,.35);border-radius:12px}
/* Buscar: icono simple, sin fondo propio. El botón no reemplaza su contenido durante la búsqueda. */
.viewer-topbar #go-btn{background:transparent!important;box-shadow:none!important;border:1px solid var(--line)!important}.viewer-topbar #go-btn .toolbar-icon{width:28px!important;height:28px!important;display:block!important;opacity:1!important}.theme-light .viewer-topbar #go-btn .toolbar-icon{filter:brightness(0)!important}body:not(.theme-light) .viewer-topbar #go-btn .toolbar-icon{filter:brightness(0) invert(1)!important}.viewer-topbar #go-btn.is-searching{opacity:.65}
@media print{
 body.printing-summary-dynamic #summary-modal .summary-dynamic-box{background:#f8fbff!important;color:#111827!important;border:1pt solid #bfdbfe!important;padding:2.5mm!important;margin-bottom:3mm!important}
 body.printing-summary-dynamic #summary-modal .summary-chip{background:#eef4fb!important;color:#111827!important;border:.5pt solid #cbd5e1!important}
 body.printing-summary-dynamic #summary-modal .summary-detail-wrap{display:block!important;overflow:visible!important;margin-top:3mm!important}
 body.printing-summary-dynamic #summary-modal .summary-detail-table{min-width:0!important;width:100%!important;font-size:5.5pt!important;table-layout:fixed!important}
 body.printing-summary-dynamic #summary-modal .summary-detail-table th{position:static!important;background:#1f76ad!important;color:#fff!important;padding:1mm!important}
 body.printing-summary-dynamic #summary-modal .summary-detail-table td{color:#111827!important;background:#fff!important;padding:.9mm!important;border-top:.4pt solid #d8ebf8!important;overflow-wrap:anywhere}
 body.printing-summary-dynamic #summary-modal .summary-detail-table th:nth-child(1){width:12%}body.printing-summary-dynamic #summary-modal .summary-detail-table th:nth-child(2){width:24%}body.printing-summary-dynamic #summary-modal .summary-detail-table th:nth-child(3){width:17%}body.printing-summary-dynamic #summary-modal .summary-detail-table th:nth-child(4){width:12%}body.printing-summary-dynamic #summary-modal .summary-detail-table th:nth-child(5){width:13%}body.printing-summary-dynamic #summary-modal .summary-detail-table th:nth-child(6){width:12%}body.printing-summary-dynamic #summary-modal .summary-detail-table th:nth-child(7){width:10%}
 body.printing-summary-dynamic #summary-modal .summary-photo-appendix{display:block!important;margin-top:5mm!important;break-before:page}
 body.printing-summary-dynamic #summary-modal .summary-photo-grid{display:grid!important;grid-template-columns:1fr 1fr!important;gap:4mm!important}
 body.printing-summary-dynamic #summary-modal .summary-photo-card{border:1pt solid #cbd5e1!important;border-radius:2mm!important;background:#fff!important;break-inside:avoid!important}
 body.printing-summary-dynamic #summary-modal .summary-photo-card img{height:52mm!important;background:#f8fafc!important;object-fit:contain!important}
 body.printing-summary-dynamic #summary-modal .summary-photo-card__body{color:#111827!important;padding:2mm!important;font-size:7pt!important}
 body.printing-summary-dynamic #summary-modal .summary-photo-card__body small{color:#475569!important}
}


/* M192 - carteles navegables y Ayuda exclusiva de PC */
.jurisdiction-count-icon{cursor:pointer!important;}
.jurisdiction-count-label{cursor:pointer;transition:transform .12s ease,border-color .12s ease,background-color .12s ease;}
.jurisdiction-count-icon:hover .jurisdiction-count-label{transform:scale(1.035);border-color:rgba(125,211,252,1);}
body.theme-light .jurisdiction-count-icon:hover .jurisdiction-count-label{border-color:rgba(2,132,199,1);}
@media(max-width:760px){
  #map-help-btn,.map-help-btn{display:none!important;visibility:hidden!important;pointer-events:none!important;}
}


/* M192.1 - carteles navegables: clic real y sin tooltip redundante */
@media(min-width:761px){
  .jurisdiction-count-icon{
    pointer-events:auto !important;
    cursor:pointer !important;
  }
  .jurisdiction-count-icon .jurisdiction-count-label{
    pointer-events:auto !important;
    cursor:pointer !important;
    user-select:none;
  }
}

/* M194.1 - Acciones de compartir desde QR */
body.theme-light .mobile-share-btn{background:#f8fafc;color:#172033;border-color:#cbd5e1}
body.theme-light .mobile-share-btn--whatsapp{color:#157347}


/* M195 - Filtros PC múltiples + acceso desde Informe Dinámico */
@media(min-width:761px){
  .filter-drawer[open],.filter-drawer .filters{width:470px!important}
  .viewer-topbar~.shell .filter-drawer[open]>summary{right:183px!important}
  .filter-drawer .filters-grid--compact{display:block!important}
  .pc-filter-ui{display:grid;gap:14px}
  .pc-filter-section{margin:0;padding:0;border:0;min-width:0}
  .pc-filter-section legend,.pc-filter-section>.input-label{display:block;margin:0 0 7px;color:var(--muted);font-size:12px;font-weight:900;text-transform:none}
  .legacy-filter-select{display:none!important}
  .multi-check-select{position:relative}
  .multi-check-select__button{width:100%;min-height:42px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 12px;border:1px solid var(--line);border-radius:12px;background:var(--panel-2);color:var(--text);font-weight:800;text-align:left}
  .multi-check-select__button:hover{border-color:#38bdf8}
  .multi-check-select__menu{position:absolute;z-index:20;top:calc(100% + 6px);left:0;right:0;max-height:330px;overflow:auto;padding:8px;border:1px solid var(--line);border-radius:13px;background:#0f172a;box-shadow:0 18px 45px rgba(0,0,0,.45)}
  .multi-check-option{display:flex;align-items:center;gap:9px;padding:8px 9px;border-radius:9px;color:#e5eef9;font-size:13px;font-weight:750;cursor:pointer}
  .multi-check-option:hover{background:rgba(56,189,248,.12)}
  .multi-check-option input,.pc-filter-checkbox-group input{accent-color:#38bdf8;width:16px;height:16px;flex:0 0 auto}
  .multi-check-option--all{font-weight:900}
  .multi-check-separator{height:1px;margin:5px 3px;background:var(--line)}
  .pc-filter-checkbox-group{display:grid;grid-template-columns:1fr 1fr;gap:8px 12px}
  .pc-filter-checkbox-group legend{grid-column:1/-1}
  .pc-filter-checkbox-group label{display:flex;align-items:center;gap:8px;min-width:0;padding:7px 9px;border:1px solid rgba(148,163,184,.18);border-radius:9px;background:rgba(30,41,59,.38);color:#e5eef9;font-size:12px;font-weight:800;cursor:pointer}
  .pc-filter-checkbox-group label:has(input:checked){border-color:rgba(56,189,248,.42);background:rgba(14,116,144,.16)}
  .pc-filter-checkbox-group--inline{grid-template-columns:1fr 1fr}
  .pc-filter-checkbox-group--compact{grid-template-columns:1fr 1fr}
  .filter-drawer .toggle-row{margin-top:14px}
  body.theme-light .multi-check-select__menu{background:#fff;color:#172033;border-color:#cbd5e1;box-shadow:0 18px 45px rgba(15,23,42,.18)}
  body.theme-light .multi-check-option{color:#172033}
  body.theme-light .pc-filter-checkbox-group label{background:#fff;color:#172033;border-color:#d6e0ea}
  body.theme-light .pc-filter-checkbox-group label:has(input:checked){background:#eef8ff;border-color:#7dd3fc}
  body.theme-light .multi-check-select__button{background:#fff;color:#172033}
  .summary-filters-btn{white-space:nowrap}
  .summary-filters-btn.is-open{outline:2px solid #38bdf8;outline-offset:1px}
  .filter-drawer.summary-filter-overlay{position:fixed!important;z-index:3600!important;right:14px!important;top:78px!important;bottom:14px!important;width:470px!important}
  .filter-drawer.summary-filter-overlay>summary{display:none!important}
  .filter-drawer.summary-filter-overlay .filters{display:block!important;width:470px!important;max-height:calc(100vh - 92px)!important;padding:18px!important;border-radius:16px!important;box-shadow:0 26px 80px rgba(0,0,0,.62)!important}
  body.theme-light .filter-drawer.summary-filter-overlay .filters{box-shadow:0 26px 80px rgba(15,23,42,.28)!important}
}
@media(max-width:760px){
  #pc-filter-ui{display:none!important}
  #summary-filters-btn{display:none!important}
}
@media print{
  #summary-filters-btn,.filter-drawer.summary-filter-overlay{display:none!important}
}


/* M195.1 - Herramientas del Informe Dinámico ordenadas */
@media(min-width:761px){
  .summary-toolbar{align-items:center}
  .summary-tabs{flex:1 1 auto}
  .summary-extra-tools{flex:0 1 auto}
  #summary-filters-btn{order:1}
  #summary-list-option{order:2}
  #summary-photo-option{order:3}
  #summary-print-btn{order:4}
}
@media(max-width:980px) and (min-width:761px){
  .summary-toolbar{flex-wrap:wrap}
  .summary-extra-tools{width:100%;justify-content:flex-start}
}


/* M195.4 - Informe Dinamico: controles compactos y menu en posicion habitual */
@media(min-width:761px){
  #summary-modal .overlay-modal__dialog{width:min(97vw,1180px)}
  #summary-modal .summary-toolbar{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:center;
    gap:8px;
  }
  #summary-modal .summary-tabs{display:flex;flex-wrap:nowrap;gap:6px;min-width:0}
  #summary-modal .summary-tab{padding:7px 10px;min-height:36px;font-size:.9rem;white-space:nowrap}
  #summary-modal .summary-extra-tools{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:6px;
    flex-wrap:nowrap;
    min-width:max-content;
  }
  #summary-modal .summary-filters-btn,
  #summary-modal .summary-report-option,
  #summary-modal .summary-print-btn{min-height:36px;height:36px;padding:6px 9px;font-size:.88rem;border-radius:9px}
  #summary-modal #summary-photo-option{order:3;margin-left:2px}
  #summary-modal #summary-print-btn{order:4}
  .summary-print-btn--compact{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-width:64px!important;padding-inline:9px!important}
  .summary-pdf-icon{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:0 0 auto}
  /* Abierto desde Informe Dinamico: exactamente en la zona del Menu del visor */
  .filter-drawer.summary-filter-overlay{
    position:fixed!important;
    z-index:3600!important;
    right:0!important;
    top:72px!important;
    bottom:8px!important;
    width:470px!important;
  }
  .filter-drawer.summary-filter-overlay>summary{display:none!important}
  .filter-drawer.summary-filter-overlay .filters{
    display:block!important;
    width:470px!important;
    max-height:calc(100vh - 80px)!important;
    padding:58px 18px 18px!important;
    border-radius:0 0 0 16px!important;
    box-shadow:-10px 18px 48px rgba(0,0,0,.42)!important;
  }
}
@media(max-width:1020px) and (min-width:761px){
  #summary-modal .summary-toolbar{grid-template-columns:1fr}
  #summary-modal .summary-extra-tools{justify-content:flex-end;width:100%}
}


/* M195.4 - Informe Dinámico: ancho y posición fijos en PC */
@media(min-width:761px){
  /* El informe NO cambia de tamaño ni de posición al abrir/cerrar Filtros. */
  #summary-modal.summary-mode-dynamic{
    display:block!important;
    box-sizing:border-box;
    padding:14px 0 14px 14px!important;
  }
  #summary-modal.summary-mode-dynamic .overlay-modal__dialog{
    width:min(1040px, calc(100vw - 32px))!important;
    max-width:1040px!important;
    max-height:calc(100vh - 28px)!important;
    margin:0!important;
    justify-self:auto!important;
  }
  #summary-modal.summary-mode-dynamic .overlay-modal__content--summary{min-width:0}
  /* El menú continúa en el lateral derecho habitual y no mueve el informe. */
  .filter-drawer.summary-filter-overlay{right:0!important;width:470px!important}
}
@media(min-width:761px) and (max-width:1120px){
  #summary-modal.summary-mode-dynamic .overlay-modal__dialog{
    width:calc(100vw - 28px)!important;
    max-width:none!important;
  }
}

/* M195.6 - Dialogos 15 px mas angostos + cierre robusto */
@media (min-width: 761px) {
  /* Resumen General, Resumen Visual e Informe Dinamico comparten exactamente
     el ancho normal del dialogo del visor. */
  #summary-modal .overlay-modal__dialog {
    width: min(94vw, 965px) !important;
    max-width: 965px !important;
  }

  /* En PC ancho normal, todos los controles quedan juntos en una unica fila. */
  #summary-modal .summary-toolbar {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 6px !important;
    padding: 6px !important;
  }
  #summary-modal .summary-tabs {
    display: flex !important;
    flex: 0 1 auto !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    gap: 4px !important;
    min-width: 0 !important;
  }
  #summary-modal .summary-tab {
    min-height: 34px !important;
    height: 34px !important;
    padding: 5px 8px !important;
    border-radius: 9px !important;
    font-size: .84rem !important;
    white-space: nowrap !important;
  }
  #summary-modal .summary-extra-tools {
    display: flex !important;
    flex: 0 0 auto !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: 4px !important;
    width: auto !important;
    min-width: 0 !important;
    margin-left: auto !important;
  }
  #summary-modal .summary-filters-btn,
  #summary-modal .summary-report-option,
  #summary-modal .summary-print-btn {
    min-height: 34px !important;
    height: 34px !important;
    padding: 5px 7px !important;
    border-radius: 9px !important;
    font-size: .84rem !important;
    white-space: nowrap !important;
  }
  #summary-modal .summary-report-option {
    gap: 5px !important;
  }
  #summary-modal .summary-report-option input {
    width: 15px !important;
    height: 15px !important;
  }
  #summary-modal .summary-print-btn--compact {
    min-width: 60px !important;
    padding-inline: 7px !important;
    gap: 4px !important;
  }
  #summary-modal .summary-pdf-icon {
    width: 17px !important;
    height: 17px !important;
  }

  /* Informe Dinamico conserva la posicion fija de M195.4, pero ahora usa
     el mismo ancho de 965 px que los otros dos informes. */
  #summary-modal.summary-mode-dynamic .overlay-modal__dialog {
    width: min(965px, calc(100vw - 32px)) !important;
    max-width: 965px !important;
    margin: 0 !important;
    justify-self: auto !important;
  }

  /* El panel de filtros permanece en su lugar habitual. Con 965 px de informe
     queda separado del panel lateral de 470 px en pantallas de escritorio. */
  .filter-drawer.summary-filter-overlay {
    right: 0 !important;
    width: 470px !important;
  }
}

/* Resguardo para PC muy angosto: no altera el ancho unificado, pero evita
   recortes de controles cuando el viewport ya no permite una sola fila. */
@media (min-width: 761px) and (max-width: 900px) {
  #summary-modal .summary-toolbar {
    flex-wrap: wrap !important;
  }
  #summary-modal .summary-extra-tools {
    width: 100% !important;
    justify-content: flex-end !important;
  }
}


/* M195.6 - El cierre debe prevalecer sobre cualquier layout del Informe Dinámico. */
#summary-modal.hidden,
#summary-modal.summary-mode-dynamic.hidden {
  display: none !important;
}


/* M195.8 - UN SOLO DIALOGO PARA LOS TRES MODOS
   Resumen General, Resumen Visual e Informe Dinamico usan exactamente
   la misma caja: misma posicion, mismo ancho y mismo alto. */
@media (min-width: 761px) {
  #summary-modal {
    display: grid !important;
    place-items: start !important;
    box-sizing: border-box !important;
    padding: 34px 0 24px 6px !important;
  }

  #summary-modal .overlay-modal__dialog,
  #summary-modal.summary-mode-dynamic .overlay-modal__dialog {
    box-sizing: border-box !important;
    width: min(965px, calc(100vw - 24px)) !important;
    max-width: 965px !important;
    height: min(840px, calc(100vh - 58px)) !important;
    min-height: min(840px, calc(100vh - 58px)) !important;
    max-height: min(840px, calc(100vh - 58px)) !important;
    margin: 0 !important;
    justify-self: auto !important;
    align-self: auto !important;
    overflow: auto !important;
  }

  /* La clase dinamica identifica el contenido, pero ya no modifica la geometria. */
  #summary-modal.summary-mode-dynamic {
    display: grid !important;
    padding: 34px 0 24px 6px !important;
  }

  /* El contenido ocupa el alto disponible del mismo dialogo en los tres modos. */
  #summary-modal .overlay-modal__content--summary {
    min-width: 0 !important;
  }
}

/* Hidden siempre manda, tambien en Informe Dinamico. */
#summary-modal.hidden,
#summary-modal.summary-mode-dynamic.hidden {
  display: none !important;
}


/* M195.8 - DIALOGO UNICO CENTRADO
   Conserva exactamente la geometria normalizada de M195.7 (965 x hasta 840 px),
   pero devuelve el modal a su posicion centrada original. */
@media (min-width: 761px) {
  #summary-modal,
  #summary-modal.summary-mode-dynamic {
    display: grid !important;
    place-items: center !important;
    box-sizing: border-box !important;
    padding: 14px !important;
  }

  #summary-modal .overlay-modal__dialog,
  #summary-modal.summary-mode-dynamic .overlay-modal__dialog {
    width: min(965px, calc(100vw - 28px)) !important;
    max-width: 965px !important;
    height: min(840px, calc(100vh - 28px)) !important;
    min-height: min(840px, calc(100vh - 28px)) !important;
    max-height: min(840px, calc(100vh - 28px)) !important;
    margin: 0 !important;
    justify-self: center !important;
    align-self: center !important;
  }
}

#summary-modal.hidden,
#summary-modal.summary-mode-dynamic.hidden {
  display: none !important;
}


/* M196.6 - Contexto de carteles al enfocar una jurisdicción (PC) */
.jurisdiction-count-label.is-context { opacity:.34 !important; }
.jurisdiction-count-label.is-selected { opacity:1 !important; border-width:2px !important; }
body.theme-light .jurisdiction-count-label.is-context { opacity:.40 !important; }


/* WRH.Ver.0.4.07 · Visor PC: visualización simultánea de jurisdicciones / marcadores. */
@media (min-width:761px){
  .map-view-toggle-row{display:flex;align-items:center;gap:24px;margin-top:12px;padding-top:2px;border-top:1px solid rgba(148,163,184,.12)}
  .map-view-toggle-row .toggle-row{margin:0!important;padding:9px 0!important;white-space:nowrap}
  .map-help-btn{gap:9px;padding:7px 12px 7px 8px!important}
  .map-help-btn img{width:30px;height:30px;object-fit:contain;border-radius:50%;flex:0 0 30px}
  .map-help-btn span{display:inline-block;white-space:nowrap}
}

/* WRH.Ver.0.4.07 - simbología de recursos. DivIcon nativo de Leaflet para Toma/Tanque. */
.rh-resource-divicon{background:transparent!important;border:0!important;display:grid!important;place-items:center!important;overflow:visible!important}
.rh-resource-symbol{display:block;width:12px;height:12px;box-sizing:border-box;background:var(--rh-fill);border:2px solid var(--rh-border);box-shadow:0 1px 3px rgba(15,23,42,.38);transition:transform .12s ease,filter .12s ease}
.rh-resource-symbol.is-no-photo{border-width:3px;box-shadow:0 1px 3px rgba(15,23,42,.30)}
.rh-resource-symbol--square{border-radius:2px}
.rh-resource-symbol--diamond{border-radius:1px;transform:rotate(45deg)}
.rh-resource-marker-selected .rh-resource-symbol--square{transform:scale(1.45);filter:brightness(1.08)}
.rh-resource-marker-selected .rh-resource-symbol--diamond{transform:rotate(45deg) scale(1.45);filter:brightness(1.08)}

/* WRH.Ver.0.4.07 - leyenda compacta de formas en filtros PC. */
.resource-symbol-legend{display:flex;flex-wrap:wrap;gap:6px 12px;margin:-2px 0 10px;padding:7px 8px;border:1px solid var(--border);border-radius:8px;color:var(--muted);font-size:10.5px;font-weight:800}
.resource-symbol-legend span{display:inline-flex;align-items:center;gap:5px}.resource-legend-shape{display:inline-block;width:9px;height:9px;background:#22c55e;border:2px solid #166534;box-sizing:border-box}.resource-legend-circle{border-radius:50%}.resource-legend-square{border-radius:1px}.resource-legend-diamond{transform:rotate(45deg);margin:0 2px}


/* WRH 0.4.29 · Ajuste final de informes y alineación de cabecera */
.summary-photo-pair strong{display:flex!important;align-items:baseline;gap:10px;flex-wrap:wrap}.summary-photo-pair strong>b{font:inherit}.summary-photo-pair strong>i{font-style:normal;font-weight:500;opacity:.5}.summary-photo-pair small{display:block;margin-top:2px;color:var(--muted);font-size:10px;font-weight:700}.summary-relevado-grid--resource-types>div{min-height:78px}
.summary-detail-table{font-size:12px;min-width:1120px}.summary-detail-table th{font-size:11px}.summary-detail-table td{line-height:1.35}.summary-detail-observation{min-width:180px;font-weight:650}.summary-operational-cell{width:42px!important;min-width:42px;text-align:center!important;vertical-align:middle!important}.summary-operational-cell b{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:50%;font-size:18px;line-height:1}.summary-operational-cell--ok b{background:#dcfce7;color:#15803d;border:1px solid #86efac}.summary-operational-cell--oos b{background:#fee2e2;color:#dc2626;border:1px solid #fca5a5}.summary-operational-cell--other b{background:#e2e8f0;color:#475569;border:1px solid #cbd5e1}
.summary-photo-card__body{display:grid!important;grid-template-columns:minmax(0,1fr) 92px;align-items:stretch;gap:10px;padding:11px 12px!important}.summary-photo-card__text{display:flex;flex-direction:column;gap:4px;min-width:0}.summary-photo-card__text>b{font-size:15px}.summary-photo-card__text>span{font-size:14px;font-weight:800;line-height:1.25}.summary-photo-card__text>small{font-size:11.5px;line-height:1.3}.summary-photo-card__text>p{margin:4px 0 0;font-size:12px;line-height:1.35;color:inherit}.summary-photo-status{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;border-left:1px solid rgba(148,163,184,.3);padding-left:9px;text-align:center}.summary-photo-status>b{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;font-size:30px;line-height:1}.summary-photo-status>span{font-size:8.5px;font-weight:900;line-height:1.15}.summary-photo-status--ok>b{background:#dcfce7;color:#16a34a;border:2px solid #86efac}.summary-photo-status--ok>span{color:#15803d}.summary-photo-status--oos>b{background:#fee2e2;color:#dc2626;border:2px solid #fca5a5}.summary-photo-status--oos>span{color:#b91c1c}.summary-photo-status--other>b{background:#e2e8f0;color:#475569;border:2px solid #cbd5e1}.summary-photo-status--other>span{color:#64748b}
@media(min-width:761px){
  /* El buscador comienza recién después del borde derecho de la columna lateral (430 px + margen). */
  .viewer-topbar{grid-template-columns:430px minmax(350px,650px) minmax(0,1fr) auto!important;gap:8px!important;padding-left:8px!important;padding-right:12px!important}
  .viewer-topbar .search-card{padding-left:2px!important}
}
@media(max-width:1180px) and (min-width:761px){.viewer-topbar{grid-template-columns:430px minmax(300px,1fr) auto!important}.viewer-topbar .brand__text{display:none}.viewer-topbar .brand{justify-content:flex-start}.viewer-topbar .brand__mark:nth-of-type(2){display:none}}
@media print{
  body.printing-summary-dynamic #summary-modal .summary-detail-table{font-size:7pt!important;table-layout:fixed!important}
  body.printing-summary-dynamic #summary-modal .summary-detail-table th{font-size:6.7pt!important;padding:1.2mm .9mm!important}
  body.printing-summary-dynamic #summary-modal .summary-detail-table td{font-size:6.8pt!important;line-height:1.25!important;padding:1.1mm .9mm!important}
  body.printing-summary-dynamic #summary-modal .summary-detail-table th:nth-child(1){width:9%!important}
  body.printing-summary-dynamic #summary-modal .summary-detail-table th:nth-child(2){width:17%!important}
  body.printing-summary-dynamic #summary-modal .summary-detail-table th:nth-child(3){width:13%!important}
  body.printing-summary-dynamic #summary-modal .summary-detail-table th:nth-child(4){width:9%!important}
  body.printing-summary-dynamic #summary-modal .summary-detail-table th:nth-child(5){width:12%!important}
  body.printing-summary-dynamic #summary-modal .summary-detail-table th:nth-child(6){width:10%!important}
  body.printing-summary-dynamic #summary-modal .summary-detail-table th:nth-child(7){width:18%!important}
  body.printing-summary-dynamic #summary-modal .summary-detail-table th:nth-child(8){width:8%!important}
  body.printing-summary-dynamic #summary-modal .summary-detail-table th:nth-child(9){width:4%!important}
  body.printing-summary-dynamic #summary-modal .summary-operational-cell b{width:5.5mm!important;height:5.5mm!important;font-size:13pt!important}
  body.printing-summary-dynamic #summary-modal .summary-photo-card__body{grid-template-columns:minmax(0,1fr) 25mm!important;padding:2.5mm!important;gap:2mm!important}
  body.printing-summary-dynamic #summary-modal .summary-photo-card__text>b{font-size:9pt!important}
  body.printing-summary-dynamic #summary-modal .summary-photo-card__text>span{font-size:8.5pt!important}
  body.printing-summary-dynamic #summary-modal .summary-photo-card__text>small{font-size:7.2pt!important}
  body.printing-summary-dynamic #summary-modal .summary-photo-card__text>p{font-size:7.5pt!important;margin-top:1mm!important}
  body.printing-summary-dynamic #summary-modal .summary-photo-status>b{width:11mm!important;height:11mm!important;font-size:25pt!important}
  body.printing-summary-dynamic #summary-modal .summary-photo-status>span{font-size:6pt!important}
  body.printing-summary-general #summary-modal .summary-relevado-grid{grid-template-columns:repeat(4,1fr)!important}
}
