/* --- ESTILOS GERAIS --- */
body, html { margin: 0; padding: 0; height: 100%; overflow: hidden; font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; position: relative; }
#map { height: 100%; width: 100%; }

/* MENUS E INTERFACE - DESKTOP PADRÃO */
.menu { position: absolute; top: 50%; left: 20px; transform: translateY(-50%); background-color: white; border-radius: 8px; box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2); z-index: 1000; display: flex; flex-direction: column; align-items: center; padding: 10px 0; max-height: 70vh; overflow-y: auto; scrollbar-width: none; -ms-overflow-style: none; transition: transform 0.3s ease, opacity 0.3s ease; }
.menu::-webkit-scrollbar { display: none; }
.menu.hidden { transform: translate(-200%, -50%); opacity: 0; pointer-events: none; }

.menu button { position: relative; background-color: #ffffff; border: none; padding: 10px; margin: 5px 0; width: 40px; height: 40px; border-radius: 50%; display: flex; align-items: center; justify-content: center; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2); cursor: pointer; transition: all 0.2s; flex-shrink: 0; }
.menu button:hover { background-color: #f0f0f0; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3); }
.menu button img { width: 22px; height: 22px; }
.menu button.active { background-color: #d1e3ff; box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.3); }
.menu button[hidden] { display:none !important; }
#btnLocation { position:fixed; right:20px; bottom:20px; z-index:1051; display:grid; place-items:center; width:52px; height:52px; padding:0; border:0; border-radius:0; background:transparent; box-shadow:none; cursor:pointer; transition:transform .16s, bottom .25s; }
#btnLocation:hover { transform:translateY(-1px) scale(1.06); background:transparent; box-shadow:none; }
#btnLocation:active { transform:scale(.92); }
.location-target { display:block; width:38px; height:38px; color:#1a73e8; transform-origin:50% 50%; filter:drop-shadow(0 2px 2px rgba(0,0,0,.48)) drop-shadow(0 0 3px rgba(255,255,255,.9)); }
.compass-north { fill:#ea4335; }
.compass-south { fill:currentColor; }
.compass-center { fill:#fff; stroke:#1a73e8; stroke-width:1.2; }
.location-control-feedback { position:absolute; right:58px; top:50%; transform:translateY(-50%) translateX(6px); width:max-content; max-width:210px; padding:7px 10px; border:1px solid rgba(60,64,67,.12); border-radius:18px; background:rgba(255,255,255,.92); box-shadow:0 2px 8px rgba(60,64,67,.2); color:#3c4043; font-size:11px; font-weight:700; opacity:0; pointer-events:none; transition:.2s; }
#btnLocation.locating .location-control-feedback,#btnLocation.found .location-control-feedback,#btnLocation.location-error .location-control-feedback { opacity:1; transform:translateY(-50%) translateX(0); }
#btnLocation.locating .location-target { animation:locationPulse 1s ease-in-out infinite; }
#btnLocation.found .location-target { color:#188038; }
#btnLocation.found .compass-north { fill:#188038; }
#btnLocation.location-error .location-target { color:#d93025; }
#btnLocation.location-error .compass-north { fill:#d93025; }
@keyframes locationPulse { 50% { transform:scale(.82); opacity:.62; } }
#btnLocation .button-legend { left:auto; right:58px; }
#btnChatQuick{position:absolute;right:24px;bottom:82px;z-index:1051;display:grid;place-items:center;width:44px;height:44px;padding:0;border:0;border-radius:14px;background:rgba(8,124,102,.9);color:#fff;box-shadow:0 4px 14px rgba(18,60,53,.32);backdrop-filter:blur(8px);cursor:pointer;transition:.18s}#btnChatQuick:hover{transform:translateY(-2px);background:#087c66}#btnChatQuick:active{transform:scale(.94)}#btnChatQuick .quick-chat-icon{font-size:19px}.chat-quick-badge{position:absolute;right:-6px;top:-6px;display:grid;place-items:center;min-width:18px;height:18px;padding:0 4px;border:2px solid #fff;border-radius:12px;background:#e53935;color:#fff;font-size:8px;font-weight:900}.chat-quick-badge[hidden]{display:none}.chat-quick-toast{position:absolute;right:54px;bottom:2px;width:220px;padding:9px 11px;border:1px solid rgba(8,124,102,.14);border-radius:12px;background:rgba(255,255,255,.94);box-shadow:0 5px 18px rgba(20,54,48,.22);color:#294c45;text-align:left;opacity:0;pointer-events:none;transform:translateX(8px);transition:.22s}.chat-quick-toast.show{opacity:1;transform:none}.chat-quick-toast strong,.chat-quick-toast span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-quick-toast strong{font-size:10px}.chat-quick-toast span{margin-top:2px;color:#6a817c;font-size:9px}
#btnSketchQuick{position:absolute;right:24px;bottom:136px;z-index:1051;display:grid;place-items:center;width:44px;height:44px;padding:0;border:0;border-radius:14px;background:rgba(183,91,32,.92);color:#fff;box-shadow:0 4px 14px rgba(81,43,18,.3);backdrop-filter:blur(8px);cursor:pointer;transition:.18s}#btnSketchQuick:hover{transform:translateY(-2px);background:#a84f18}#btnSketchQuick:active{transform:scale(.94)}#btnSketchQuick.active{outline:3px solid rgba(255,255,255,.8)}#btnSketchQuick span{font-size:19px}


.button-legend { position: absolute; top: 50%; left: 50px; transform: translateY(-50%); background: rgba(255,255,255,0.9); border-radius: 4px; box-shadow: 0 2px 6px rgba(0,0,0,0.2); padding: 5px; font-size: 12px; white-space: nowrap; z-index: 2000; display: none; pointer-events: none; }

/* BARRA DE BUSCA */
.search-bar { position: absolute; top: 20px; left: 20px; width: 380px; background-color: white; border-radius: 8px; box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2); z-index: 1000; display: flex; padding: 10px; align-items: center; gap: 8px; }
.search-bar input { flex: 1; border: none; outline: none; padding: 10px; font-size: 14px; border-radius: 8px; background-color: #f9f9f9; box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1); }
.search-bar button { background-color: #4285F4; color: white; border: none; padding: 10px; border-radius: 8px; cursor: pointer; transition: background-color 0.3s; }
.search-bar button:hover { background-color: #357ae8; }
.search-bar #btnAddressSearch { background-color: #137c5b; }
.search-bar #btnAddressSearch:hover { background-color: #0d6549; }
.search-bar #btnAddressSearch:disabled { opacity: 0.65; cursor: wait; }

/* BOTÃO TOGGLE UI */
.toggle-menu-btn { position: absolute; top: 20px; left: 420px; width: 40px; height: 40px; background-color: white; border-radius: 8px; box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2); z-index: 1000; display: flex; align-items: center; justify-content: center; border: none; cursor: pointer; transition: background-color 0.3s; }
.toggle-menu-btn:hover { background-color: #f0f0f0; }
.toggle-menu-btn img { width: 20px; height: 20px; }
 /* RESULTADOS DA BUSCA */
.search-results { position: fixed; top: 62px; left: 16px; width: 340px; max-width: calc(100vw - 32px); max-height: 320px; overflow-y: auto; background-color: #ffffff; border: 1px solid rgba(0,0,0,0.15); border-radius: 12px; box-shadow: 0 8px 24px rgba(0, 0, 0, 0.25); z-index: 12070; display: none; }
.search-results ul { list-style: none; margin: 0; padding: 0; }
.search-results li { padding: 10px; border-bottom: 1px solid #f0f0f0; display: flex; justify-content: space-between; align-items: center; }
.search-results li:hover { background-color: #f0f0f0; }
.search-results .result-info { flex-grow: 1; cursor: default; }
.search-results .result-info small { color: #555; font-size: 0.8em; }
.search-results .result-actions { display: flex; gap: 5px; flex-shrink: 0; margin-left: 10px; }
.search-results button { background-color: #4285F4; color: white; border: none; padding: 5px 8px; border-radius: 4px; cursor: pointer; font-size: 12px; }
 /* MENUS FLUTUANTES GERAIS */
.kmz-menu, .line-menu, .loaded-files-menu, .style-menu, .marker-group-menu, .storage-menu, .tools-menu {
    position: absolute; top: 80px; left: 70px; background: #fff; border-radius: 8px; box-shadow: 0 4px 12px rgba(0,0,0,0.15); z-index: 2000; padding: 0; display: none; max-height: 500px; overflow: hidden;
    flex-direction: column;
}

.main-panel-close{position:absolute;top:8px;right:8px;z-index:12;display:grid;place-items:center;width:34px;height:34px;padding:0;border:1px solid #ffffff55;border-radius:50%;background:#173b5fcc;color:#fff;box-shadow:0 3px 10px #10283f42;font-size:24px;line-height:1;cursor:pointer;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}
.main-panel-close:hover,.main-panel-close:focus-visible{background:#b83232;outline:2px solid #fff;outline-offset:2px}
.kmz-menu>.network-files-header,.tools-menu>.tools-header,.line-menu>.line-menu-header,.style-menu>.style-menu-header,.marker-group-menu>.marker-menu-header,.storage-menu>.storage-header,.cloud-menu>.cloud-header{padding-right:52px}
@media(max-width:768px){.main-panel-close{position:absolute;top:8px;right:8px;left:auto;float:none;margin:0;width:36px;height:36px}.kmz-menu>.network-files-header,.tools-menu>.tools-header,.line-menu>.line-menu-header,.style-menu>.style-menu-header,.marker-group-menu>.marker-menu-header,.storage-menu>.storage-header,.cloud-menu>.cloud-header{padding-right:55px}}
 /* --- ESTILOS DO MENU DE ARQUIVOS (KML/KMZ/ZIP) --- */
.kmz-menu { width: 370px; background: #f5f8fb; border: 1px solid rgba(31, 79, 143, .12); }
.network-files-header { padding: 16px; background: linear-gradient(135deg, #164a86, #2877c7); color: #fff; }
.network-files-title-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.network-files-title { margin: 0; font-size: 17px; }
.network-files-subtitle { margin: 4px 0 0; font-size: 11px; opacity: .84; }
.network-files-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 7px; margin-top: 13px; }
.network-stat { padding: 7px 5px; border-radius: 8px; background: rgba(255,255,255,.14); text-align: center; }
.network-stat strong { display: block; font-size: 15px; }
.network-stat span { display: block; margin-top: 1px; font-size: 9px; text-transform: uppercase; letter-spacing: .45px; opacity: .86; }

.device-upload-btn {
    padding: 11px 13px;
    margin: 10px 12px 0;
    background-color: #fff;
    border: 1px dashed #8eb8e5;
    border-radius: 9px;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 10px;
    font-weight: bold;
    color: #4285F4;
    transition: background 0.2s;
}
.device-upload-btn:hover { background-color: #e8f0fe; border-color: #4285F4; }
.device-upload-btn img { width: 20px; height: 20px; }
 /* Controles de Seleção em Massa */
.kmz-controls {
    padding: 8px 12px 11px;
    display: flex;
    gap: 5px;
    border-bottom: 1px solid #dfe7ef;
    background: transparent;
}
.kmz-controls button {
    flex: 1;
    padding: 8px;
    border: none;
    border-radius: 7px;
    cursor: pointer;
    font-size: 12px;
    font-weight: bold;
    transition: 0.2s;
}
#btnSelectAll { background-color: #e6edf5; color: #28445f; }
#btnSelectAll:hover { background-color: #e8eaed; }

#btnLoadSelected { background-color: #2877c7; color: white; }
#btnLoadSelected:hover { background-color: #3367d6; }
 .file-list-integrated {
    list-style: none;
    padding: 0;
    margin: 0;
    overflow-y: auto;
    max-height: 300px;
    padding: 7px;
}
.file-list-integrated li {
    display: flex;
    align-items: center;
    padding: 9px;
    margin-bottom: 5px;
    border: 1px solid #e2e8ef;
    border-radius: 8px;
    background: #fff;
    transition: background 0.2s;
}
.file-list-integrated li:hover { background-color: #fafafa; }

/* Checkbox de Cache */
.file-list-integrated input[type="checkbox"] {
    width: 18px;
    height: 18px;
    margin-right: 12px;
    cursor: pointer;
    accent-color: #4285F4;
}

/* Nome do Arquivo */
.file-list-integrated span.file-name {
    flex-grow: 1;
    cursor: pointer;
    font-size: 13px;
    color: #333;
}
.file-list-integrated span.file-name:hover { color: #4285F4; font-weight: bold; }

/* Indicador de Cache (Verde) */
.file-list-integrated li.is-cached { border-color: #b9dfc4; }
.file-list-integrated li.file-folder {
    display: block;
    padding: 0;
    background: #fff;
}
.file-list-integrated li.file-folder:hover { background: #fff; }
.file-folder-header {
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 10px 11px;
    color: #1f4f8f;
    background: #eef5ff;
    border: 1px solid #d8e7fb;
    border-radius: 8px;
    cursor: pointer;
    font-size: 13px;
    font-weight: bold;
    user-select: none;
}
.file-folder-header:hover { background: #e2efff; }
.file-folder-arrow {
    width: 14px;
    text-align: center;
    transition: transform .18s ease;
}
.file-folder.collapsed .file-folder-arrow { transform: rotate(-90deg); }
.file-folder-items {
    list-style: none;
    margin: 0;
    padding: 0;
}
.file-folder.collapsed .file-folder-items { display: none; }
.file-folder-items { padding: 6px 0 1px 12px; }
.file-folder-items > li.file-entry { background: #fbfdff; }
.file-folder-count { margin-left: auto; padding: 2px 7px; border-radius: 10px; background: #d8e7fb; font-size: 10px; }
.network-search-wrap { position: relative; padding: 10px 12px 6px; }
.network-search-wrap span { position: absolute; left: 23px; top: 19px; font-size: 13px; opacity: .55; }
#kmzSearchInput { width: 100%; box-sizing: border-box; padding: 9px 10px 9px 31px; border: 1px solid #ccd8e4; border-radius: 8px; outline: none; }
#kmzSearchInput:focus { border-color: #4285F4; box-shadow: 0 0 0 3px rgba(66,133,244,.12); }
.network-filter-row { display: flex; gap: 5px; padding: 2px 12px 5px; }
.network-filter { border: 1px solid #ccd8e4; border-radius: 14px; background: #fff; color: #52687d; padding: 5px 9px; cursor: pointer; font-size: 10px; }
.network-filter.active { border-color: #2877c7; background: #e8f2ff; color: #165a9e; font-weight: 700; }
.network-result-count { margin-left: auto; align-self: center; color: #6e8091; font-size: 10px; }
.file-main { min-width: 0; flex: 1; }
.file-status-row { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 4px; }
.file-badge { padding: 2px 6px; border-radius: 8px; font-size: 9px; font-weight: 700; }
.badge-offline { background: #e4f5e8; color: #28703b; }
.badge-loaded { background: #e8f2ff; color: #165a9e; }
.badge-imported { background: #f5eafa; color: #75428b; }
.file-remove-offline { border: 0; background: transparent; color: #9b3d3d; cursor: pointer; padding: 5px; border-radius: 5px; font-size: 15px; }
.file-remove-offline:hover { background: #fdeaea; }
.network-empty { padding: 24px 15px !important; justify-content: center; color: #6e8091; text-align: center; border: 0 !important; background: transparent !important; }
@media (max-width: 520px) {
    .kmz-menu {
        box-sizing: border-box;
        width: calc(100vw - 20px);
        height: min(72dvh, calc(100dvh - 105px - env(safe-area-inset-bottom)));
        max-height: min(72dvh, calc(100dvh - 105px - env(safe-area-inset-bottom))) !important;
        min-height: 0;
        overflow-x: hidden;
        overflow-y: auto !important;
        -webkit-overflow-scrolling: touch;
        touch-action: pan-y;
        overscroll-behavior-y: contain;
    }
    .kmz-menu .file-list-integrated {
        flex: 0 0 auto;
        min-height: auto;
        max-height: none;
        padding-bottom: calc(18px + env(safe-area-inset-bottom));
        overflow: visible;
        touch-action: auto;
    }
    .kmz-controls {
        position: relative;
        z-index: 2;
        flex: 0 0 auto;
        background: #f5f8fb;
    }
}
 /* OUTROS MENUS */
.line-menu {
    width: 350px;
    padding: 0;
    overflow-y: auto;
    scrollbar-gutter: stable;
    background: #f5f8f7;
    border: 1px solid rgba(15, 91, 66, .12);
}
.line-menu-header {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 16px 18px;
    color: #fff;
    background: linear-gradient(135deg, #176789 0%, #0b465f 100%);
}
.line-menu-header img {
    width: 25px;
    height: 25px;
    padding: 8px;
    border-radius: 12px;
    background: rgba(255,255,255,.16);
    filter: brightness(0) invert(1);
}
.line-menu-title h3 {
    margin: 0;
    padding: 0;
    border: 0;
    color: #fff;
    font-size: 17px;
}
.line-menu-title p {
    margin: 3px 0 0;
    color: rgba(255,255,255,.78);
    font-size: 11px;
}
.line-menu-controls {
    padding: 14px;
    border-bottom: 1px solid #dfe9e5;
    background: #fff;
}
.line-search-wrap { position: relative; }
.line-menu #lineGroupSearch {
    width: 100%;
    margin: 0;
    padding: 10px 12px 10px 34px;
    border: 1px solid #cadbd5;
    border-radius: 10px;
    box-sizing: border-box;
    outline: none;
    font-size: 13px;
    transition: border-color .15s ease, box-shadow .15s ease;
}
.line-menu #lineGroupSearch:focus {
    border-color: #176789;
    box-shadow: 0 0 0 3px rgba(23,103,137,.12);
}
.line-search-icon {
    position: absolute;
    left: 11px;
    top: 50%;
    transform: translateY(-50%);
    color: #688078;
    pointer-events: none;
}
.line-search-status {
    min-height: 15px;
    margin-top: 6px;
    color: #61746d;
    font-size: 11px;
}
.line-master-toggle {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-top: 8px;
    font-size: 13px;
    font-weight: 700;
    color: #173e31;
    cursor: pointer;
}
.line-master-toggle input {
    width: 38px;
    height: 21px;
    margin: 0;
    accent-color: #176789;
    cursor: pointer;
}
.line-group-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
    margin-top: 12px;
}
.line-group-actions button {
    padding: 9px 10px;
    border: 1px solid #cbdde5;
    border-radius: 9px;
    background: #f4f8fa;
    color: #244f61;
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
}
.line-group-actions .line-action-primary {
    border-color: #176789;
    background: #176789;
    color: #fff;
}
.line-menu #lineGroupsList {
    display: grid;
    gap: 10px;
    padding: 12px 16px 12px 12px;
    box-sizing: border-box;
}
.line-menu #lineGroupsList .line-file-section {
    padding: 0;
    border: 1px solid #d8e5e0;
    border-radius: 11px;
    background: #fff;
    overflow: hidden;
    box-shadow: 0 2px 7px rgba(19,77,58,.06);
}
.line-file-header {
    display: flex;
    align-items: center;
    min-height: 48px;
    padding: 0 10px;
    gap: 8px;
    background: #edf4f6;
    border-bottom: 1px solid #dbe7e3;
    box-sizing: border-box;
}
.line-file-header label {
    display: flex;
    align-items: center;
    min-width: 0;
    flex: 1;
    gap: 8px;
}
.line-file-header input[type="checkbox"],
.line-group-card input[type="checkbox"] {
    width: 18px;
    height: 18px;
    margin: 0;
    flex: 0 0 auto;
    accent-color: #176789;
}
.line-file-name {
    min-width: 0;
    flex: 1;
    overflow: hidden;
    color: #23453a;
    font-size: 12px;
    font-weight: 800;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.line-file-count {
    padding: 3px 7px;
    border-radius: 999px;
    background: #d8e9ef;
    color: #14536e;
    font-size: 10px;
    font-weight: 800;
}
.line-file-toggle {
    width: 30px;
    height: 30px;
    padding: 0;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: #2d6653;
    font-size: 16px;
    cursor: pointer;
    transition: transform .18s ease, background .15s ease;
}
.line-file-toggle:hover { background: rgba(23,103,137,.1); }
.line-file-section.collapsed .line-file-toggle { transform: rotate(-90deg); }
.line-file-groups {
    display: grid;
    gap: 6px;
    padding: 8px;
    list-style: none;
}
.line-file-section.collapsed .line-file-groups { display: none; }
.line-group-card {
    padding: 0;
    border: 1px solid #e1eae7;
    border-radius: 9px;
    background: #fff;
}
.line-group-card label {
    display: flex;
    align-items: center;
    width: 100%;
    min-height: 42px;
    padding: 0 8px 0 10px;
    gap: 9px;
    box-sizing: border-box;
}
.line-group-name {
    min-width: 0;
    flex: 1;
    color: #263c35;
    font-size: 13px;
    font-weight: 700;
}
.line-color-picker {
    width: 33px;
    height: 32px;
    flex: 0 0 auto;
    padding: 3px;
    border: 1px solid #d3e0db;
    border-radius: 8px;
    background: #f8faf9;
    cursor: pointer;
}
.line-empty-state {
    padding: 12px;
    color: #73817c;
    font-size: 12px;
    font-style: italic;
    text-align: center;
}
.loaded-files-menu { width: 220px; padding: 10px; overflow-y: auto;}
.style-menu { width: 360px; padding: 0; overflow-y: auto; background: #f5f7fb; border: 1px solid rgba(49,91,145,.14); }
.style-menu-header { display: flex; align-items: center; gap: 12px; padding: 16px 18px; color: #fff; background: linear-gradient(135deg, #76529b, #49336b); }
.style-menu-header img { width: 24px; height: 24px; padding: 8px; border-radius: 11px; background: rgba(255,255,255,.16); filter: brightness(0) invert(1); }
.style-menu-header h3 { margin: 0; font-size: 17px; }
.style-menu-header p { margin: 3px 0 0; color: rgba(255,255,255,.78); font-size: 11px; }
.style-menu-status { min-height: 15px; padding: 8px 13px; border-bottom: 1px solid #e1e6ee; background: #fff; color: #687789; font-size: 10px; }
.style-menu-status.loading { color: #315b91; }
.style-menu-status.error { color: #a33b3b; background: #fff2f2; }
.style-list { max-height: 370px; padding: 8px 10px 11px !important; overflow-y: auto; }
.style-category { margin: 9px 3px 6px; color: #687789; font-size: 10px; font-weight: 800; letter-spacing: .6px; text-transform: uppercase; }
.style-card { display: flex; align-items: center; gap: 10px; margin-bottom: 6px; padding: 9px !important; border: 1px solid #e0e5ec !important; border-radius: 10px; background: #fff; cursor: pointer; transition: border-color .15s, box-shadow .15s, transform .15s; }
.style-card:hover { transform: translateY(-1px); border-color: #b5a3cb !important; box-shadow: 0 4px 11px rgba(73,51,107,.1); background: #fff !important; }
.style-card.active { border-color: #76529b !important; box-shadow: 0 0 0 2px rgba(118,82,155,.12); }
.style-preview { width: 48px; height: 38px; flex: 0 0 auto; border-radius: 8px; border: 1px solid rgba(0,0,0,.1); }
.preview-streets { background: linear-gradient(145deg,#dbe8d2 0 35%,#fff 36% 48%,#bfd3e5 49% 62%,#f3d7a3 63%); }
.preview-satellite { background: linear-gradient(145deg,#183d2d,#476b38 45%,#7a6950 46% 60%,#274b37 61%); }
.preview-positron { background: linear-gradient(145deg,#f4f2ed,#e7ebed 55%,#fff 56% 68%,#dbe4e8 69%); }
.preview-dark { background: linear-gradient(145deg,#11151b,#29313b 55%,#52606d 56% 61%,#171c23 62%); }
.preview-voyager { background: linear-gradient(145deg,#e9f0d7,#f8edcf 42%,#fff 43% 51%,#b8dce7 52% 66%,#dbe8c8 67%); }
.style-card-main { min-width: 0; flex: 1; }
.style-card-name { display: flex; align-items: center; gap: 6px; color: #27384b; font-size: 12px; font-weight: 800; }
.style-card-description { margin-top: 3px; color: #718092; font-size: 10px; line-height: 1.25; }
.style-active-badge { padding: 2px 6px; border-radius: 8px; background: #eee7f5; color: #654389; font-size: 8px; text-transform: uppercase; }
.style-limited-badge { padding: 2px 6px; border-radius: 8px; background: #fff0d8; color: #8a5a16; font-size: 8px; text-transform: uppercase; }
.marker-group-menu {
    width: 330px;
    padding: 0;
    overflow-y: auto;
    scrollbar-gutter: stable;
    background: #f5f8f7;
    border: 1px solid rgba(15, 91, 66, 0.12);
}
 .marker-menu-header {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 16px 18px;
    color: #fff;
    background: linear-gradient(135deg, #0d7652 0%, #07503b 100%);
}
.marker-menu-header img {
    width: 25px;
    height: 25px;
    padding: 8px;
    border-radius: 12px;
    background: rgba(255,255,255,.16);
    filter: brightness(0) invert(1);
}
.marker-menu-title { min-width: 0; }
.marker-group-menu .marker-menu-title h3 {
    margin: 0;
    padding: 0;
    border: 0;
    color: #fff;
    font-size: 17px;
    text-align: left;
}
.marker-menu-title p {
    margin: 3px 0 0;
    color: rgba(255,255,255,.78);
    font-size: 11px;
}
 .marker-menu-controls {
    padding: 14px;
    border-bottom: 1px solid #dfe9e5;
    background: #fff;
}
.marker-master-toggle {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    font-size: 13px;
    font-weight: 700;
    color: #173e31;
    cursor: pointer;
}
.marker-master-toggle input {
    width: 38px;
    height: 21px;
    margin: 0;
    cursor: pointer;
    accent-color: #0d7652;
}
.marker-names-toggle {
    margin-top: 11px;
    padding-top: 11px;
    border-top: 1px solid #e4ece8;
}
.marker-group-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
    margin-top: 12px;
}
.marker-group-actions button {
    padding: 9px 10px;
    border: 1px solid #cddfd8;
    border-radius: 9px;
    background: #f4f8f6;
    color: #245243;
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
    transition: transform .15s ease, background .15s ease, border-color .15s ease;
}
.marker-group-actions button:hover {
    transform: translateY(-1px);
    background: #e8f4ef;
    border-color: #83b7a4;
}
.marker-group-actions .marker-action-primary {
    border-color: #0d7652;
    background: #0d7652;
    color: #fff;
}
.marker-group-actions .marker-action-primary:hover { background: #095f43; }
 .marker-group-menu #markerGroupsList {
    display: grid;
    gap: 8px;
    padding: 12px 16px 12px 12px;
    box-sizing: border-box;
}
.marker-group-menu #markerGroupsList .marker-group-card {
    padding: 0;
    border: 1px solid #dce8e3;
    border-radius: 11px;
    background: #fff;
    box-shadow: 0 2px 7px rgba(19, 77, 58, .06);
    overflow: hidden;
    transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}
.marker-group-menu #markerGroupsList .marker-group-card:hover {
    transform: translateY(-1px);
    border-color: #a8cbbd;
    box-shadow: 0 5px 13px rgba(19, 77, 58, .1);
}
.marker-group-card label {
    min-height: 48px;
    padding: 0 10px 0 12px;
    gap: 10px;
    width: 100%;
    box-sizing: border-box;
}
.marker-group-card .marker-group-checkbox {
    width: 18px;
    height: 18px;
    flex: 0 0 auto;
    margin: 0;
    accent-color: #0d7652;
}
.marker-group-card .marker-group-name {
    min-width: 0;
    flex: 1;
    font-size: 13px;
    line-height: 1.25;
}
.marker-group-card .marker-color-picker {
    width: 34px;
    height: 34px;
    flex: 0 0 auto;
    padding: 3px;
    border: 1px solid #d3e0db;
    border-radius: 9px;
    background: #f8faf9;
    cursor: pointer;
}

.tools-menu { width: 350px; padding: 0; overflow-y: auto; background: #f5f7fb; border: 1px solid rgba(42,77,122,.14); }
.tools-header { display: flex; align-items: center; gap: 12px; padding: 16px 18px; color: #fff; background: linear-gradient(135deg, #315b91, #203f6b); }
.tools-header img { width: 24px; height: 24px; padding: 8px; border-radius: 11px; background: rgba(255,255,255,.16); filter: brightness(0) invert(1); }
.tools-header h3 { margin: 0 !important; padding: 0 !important; border: 0 !important; color: #fff; text-align: left !important; font-size: 17px !important; }
.tools-header p { margin: 3px 0 0; color: rgba(255,255,255,.78); font-size: 11px; }
.tools-presets { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; padding: 11px 12px; background: #fff; border-bottom: 1px solid #dde5ef; }
.tools-preset { padding: 7px 5px; border: 1px solid #cbd7e5; border-radius: 8px; background: #f7f9fc; color: #36516f; font-size: 11px; font-weight: 700; cursor: pointer; }
.tools-preset:hover, .tools-preset.active { border-color: #315b91; background: #e9f1fb; color: #214f86; }
.tools-section { margin: 10px 11px; padding: 12px; border: 1px solid #dfe6ef; border-radius: 11px; background: #fff; box-shadow: 0 2px 7px rgba(33,63,105,.05); }
.tools-section-title { margin: 0 0 10px; color: #263f5c; font-size: 11px; letter-spacing: .55px; text-transform: uppercase; }
.tools-switch-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; color: #263f5c; font-size: 12px; font-weight: 700; }
.tools-help { display: block; margin-top: 7px; color: #6d7d8e; font-size: 10px; line-height: 1.35; }
.tool-slider { margin-top: 12px; }
.tool-slider:first-of-type { margin-top: 0; }
.tool-slider label { display: flex; align-items: center; justify-content: space-between; gap: 8px; color: #354b63; font-size: 12px; font-weight: 600; }
.tool-value { min-width: 42px; padding: 3px 7px; border-radius: 10px; background: #e9f1fb; color: #214f86; text-align: center; font-size: 10px; font-weight: 800; }
.tools-menu input[type="range"] { width: 100%; margin: 8px 0 0; accent-color: #315b91; }
.tool-slider.is-disabled { opacity: .45; }
.tools-load-all { width: 100%; margin-top: 11px; padding: 9px; border: 1px solid #c9d6e4; border-radius: 8px; background: #f5f8fc; color: #36516f; font-size: 11px; font-weight: 700; cursor: pointer; }
.tools-load-all:hover { background: #e9f1fb; border-color: #7898bd; }
.tools-footer-actions { display: flex; justify-content: flex-end; padding: 0 11px 12px; }
.tools-reset { border: 0; background: transparent; color: #66798d; font-size: 11px; text-decoration: underline; cursor: pointer; }

.marker-group-menu h3, .loaded-files-menu h3, .storage-menu h3 {
    margin: 0 0 10px 0; font-size: 16px; text-align: center; border-bottom: 1px solid #eee; padding-bottom: 5px; 
}
 .line-menu ul, .loaded-files-menu ul, .style-menu ul, .marker-group-menu ul { list-style: none; margin: 0; padding: 0; }
.line-menu li, .style-menu li, .marker-group-menu li { padding: 8px 10px; cursor: pointer; border-bottom: 1px solid #f0f0f0; }
.style-menu li:hover { background-color: #f0f0f0; }

.loaded-files-menu li { display: flex; justify-content: space-between; align-items: center; padding: 5px 0; border-bottom: 1px solid #f0f0f0; }
.loaded-files-menu li button { background-color: #e74c3c; color: white; border: none; padding: 3px 6px; border-radius: 4px; cursor: pointer; font-size: 10px; }
 /* Estilos das Ferramentas */
.tool-item { display: flex; flex-direction: column; gap: 5px; margin-bottom: 10px; }
.tool-item label { font-size: 13px; font-weight: bold; color: #333; display: flex; justify-content: space-between; align-items: center; }
.tool-item input[type="range"], .tool-item select, .tool-item input[type="color"] { width: 100%; cursor: pointer; }
 /* Toggle Switch */
.switch { position: relative; display: inline-block; width: 50px; height: 24px; flex-shrink: 0; }
.switch input { opacity: 0; width: 0; height: 0; }
.slider { position: absolute; cursor: pointer; top: 0; left: 0; right: 0; bottom: 0; background-color: #ccc; transition: .4s; }
.slider:before { position: absolute; content: ""; height: 18px; width: 18px; left: 3px; bottom: 3px; background-color: white; transition: .4s; }
input:checked + .slider { background-color: #4285F4; }
input:checked + .slider:before { transform: translateX(26px); }
.slider.round { border-radius: 24px; }
.slider.round:before { border-radius: 50%; }
 /* Notificação automática de processamento */
.progress-overlay{position:fixed;top:74px;right:16px;left:auto;width:min(360px,calc(100vw - 32px));height:auto;z-index:12100;display:flex;pointer-events:none;color:#18324b;animation:progressNoticeIn .2s ease both}
.progress-content{box-sizing:border-box;display:grid;grid-template-columns:38px minmax(0,1fr);gap:1px 11px;align-items:center;width:100%;padding:12px 13px;border:1px solid #d6e3ef;border-radius:15px;background:rgba(255,255,255,.94);box-shadow:0 12px 34px rgba(20,51,79,.22);text-align:left;backdrop-filter:blur(13px) saturate(140%);-webkit-backdrop-filter:blur(13px) saturate(140%)}
.progress-status-icon{grid-row:1/3;display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:#e6f0ff;color:#2877c7}.progress-status-icon::before{content:'';width:15px;height:15px;border:3px solid currentColor;border-right-color:transparent;border-radius:50%;animation:progressSpin .75s linear infinite}
.progress-copy{min-width:0}.progress-copy h3{margin:0;color:#173b5f;font-size:12px}.progress-copy p{margin:3px 0 0;color:#60768a;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.progress-bar-container{grid-column:1/-1;overflow:hidden;width:100%;height:4px;margin-top:9px;border-radius:6px;background:#e4ecf3}.progress-bar{width:0;height:100%;border-radius:6px;background:linear-gradient(90deg,#2877c7,#52a7ef);transition:width .22s ease}
.progress-overlay[data-state="success"] .progress-status-icon{background:#e1f5e8;color:#268449}.progress-overlay[data-state="success"] .progress-status-icon::before{content:'✓';width:auto;height:auto;border:0;animation:none;font-size:19px;font-weight:900}.progress-overlay[data-state="success"] .progress-bar{background:#35a55b}
.progress-overlay[data-state="error"] .progress-status-icon{background:#fde7e7;color:#bd3434}.progress-overlay[data-state="error"] .progress-status-icon::before{content:'!';width:auto;height:auto;border:0;animation:none;font-size:19px;font-weight:900}.progress-overlay[data-state="error"] .progress-bar{background:#d94b4b}
@keyframes progressSpin{to{transform:rotate(360deg)}}@keyframes progressNoticeIn{from{opacity:0;transform:translateY(-8px) scale(.98)}to{opacity:1;transform:none}}
@media(max-width:520px){.progress-overlay{top:72px;right:10px;width:calc(100vw - 20px)}.progress-content{padding:10px 11px;border-radius:13px}}
 /* RESCUE MODAL (NOVO) */
.rescue-modal { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, 0.85); z-index: 10000; display: none; justify-content: center; align-items: center; color: #333; }
.rescue-content { background: #fff; padding: 25px; border-radius: 12px; text-align: center; width: 90%; max-width: 400px; box-shadow: 0 10px 30px rgba(0,0,0,0.5); border-top: 5px solid #e74c3c; }
.rescue-content h2 { margin-top: 0; color: #c0392b; }
.rescue-content p { font-size: 14px; color: #555; line-height: 1.5; margin: 15px 0; }
.rescue-actions { display: flex; flex-direction: column; gap: 10px; margin-top: 20px; }
.btn-rescue-reset { background-color: #e74c3c; color: white; border: none; padding: 12px; border-radius: 6px; font-weight: bold; cursor: pointer; font-size: 14px; }
.btn-rescue-reset:hover { background-color: #c0392b; }
.btn-rescue-cancel { background-color: #eee; color: #333; border: none; padding: 10px; border-radius: 6px; cursor: pointer; font-size: 13px; }
 /* Route Panel */
.route-panel { position: absolute; top: 20px; right: 20px; background: #fff; border-radius: 14px; box-shadow: 0 8px 28px rgba(0,0,0,0.28); z-index: 2000; padding: 14px; width: 330px; max-height: calc(100vh - 40px); display: none; flex-direction: column; gap: 8px; box-sizing: border-box; transition: width .2s ease, max-height .2s ease, padding .2s ease; }
.route-panel-header { display: flex; align-items: center; justify-content: space-between; gap: 10px; min-height: 28px; }
.route-panel-title { min-width: 0; }
.route-panel h3 { margin: 0; font-size: 17px; color: #1f2937; }
.route-compact-summary { display: none; color: #1d4ed8; font-size: 11px; font-weight: 600; margin-top: 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.route-collapse-button { flex: 0 0 34px !important; width: 34px; height: 30px; padding: 0 !important; border-radius: 15px !important; background: #eff6ff !important; color: #1a73e8 !important; font-size: 18px !important; font-weight: bold; line-height: 1; }
.route-header-actions { display: flex; align-items: center; gap: 5px; }
.route-close-button { flex: 0 0 30px !important; width: 30px; height: 30px; padding: 0 !important; border-radius: 15px !important; background: rgba(255,255,255,.16) !important; color: #fff !important; font-size: 18px !important; line-height: 1; }
.route-close-button:hover { background: rgba(255,255,255,.28) !important; }
.route-panel-content { display: flex; flex-direction: column; gap: 8px; min-height: 0; }
.route-panel.collapsed { width: 270px; max-height: 64px; padding: 10px 12px; overflow: hidden; cursor: pointer; }
.route-panel.collapsed .route-panel-content { display: none; }
.route-panel.collapsed .route-compact-summary { display: block; }
.route-panel.collapsed .route-collapse-button { transform: rotate(180deg); }
.route-panel p { font-size: 11px; color: #555; margin: 0; border-bottom: 1px solid #e5e7eb; padding-bottom: 8px; line-height: 1.35; }
.route-options { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.route-field { display: flex; flex-direction: column; gap: 3px; font-size: 11px; color: #4b5563; }
.route-field select { width: 100%; border: 1px solid #d1d5db; border-radius: 7px; padding: 7px; background: #fff; font-size: 12px; }
.route-checks { display: flex; gap: 10px; flex-wrap: wrap; padding: 2px 0; }
.route-checks label { display: flex; align-items: center; gap: 5px; font-size: 11px; color: #374151; }
.route-panel ul { list-style: none; margin: 0; padding: 0; max-height: 150px; overflow-y: auto; font-size: 12px; flex-grow: 1; }
.route-panel li { display: flex; justify-content: space-between; align-items: center; padding: 6px 3px; border-bottom: 1px solid #f1f5f9; }
.route-stop-number { width: 22px; height: 22px; border-radius: 50%; background: #f7b731; display: inline-flex; align-items: center; justify-content: center; font-weight: bold; flex-shrink: 0; margin-right: 6px; }
.route-panel li span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; padding-right: 10px; }
.route-panel li .remove-wp { background-color: #e74c3c; color: white; border: none; padding: 2px 5px; border-radius: 4px; cursor: pointer; font-size: 10px; font-weight: bold; margin-left: 10px; flex-shrink: 0; }
.route-summary { display: none; grid-template-columns: 1fr 1fr; gap: 7px; background: #eff6ff; border: 1px solid #bfdbfe; border-radius: 9px; padding: 8px; }
.route-summary.active { display: grid; }
.route-summary div { text-align: center; }
.route-summary strong { display: block; color: #1d4ed8; font-size: 16px; }
.route-summary small { color: #64748b; font-size: 10px; }
.route-status { min-height: 15px; font-size: 11px; color: #475569; }
.route-status.error { color: #b91c1c; }
.route-panel-footer { border-top: 1px solid #e5e7eb; padding-top: 7px; }
.route-panel-buttons { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; margin-top: 6px; }
.route-panel button { background-color: #e5e7eb; color: #333; border: none; padding: 8px; border-radius: 7px; cursor: pointer; font-size: 12px; }
.route-panel button:disabled { opacity: .55; cursor: not-allowed; }
.route-panel button#btnGenerateRoute { background-color: #1a73e8; color: white; font-weight: bold; grid-column: 1 / -1; }
.route-panel button#btnOpenGoogleRoute { background-color: #34a853; color: white; font-weight: bold; }
.route-marker-number { width: 26px; height: 26px; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: #f7b731; color: #111827; border: 2px solid white; box-shadow: 0 1px 5px rgba(0,0,0,.5); font: bold 12px Arial; }
.route-panel { padding: 0; overflow: hidden; background: #f6f8fb; }
.route-panel-header { padding: 14px 16px; color: #fff; background: linear-gradient(135deg,#246aa8,#174774); }
.route-panel-heading { display: flex; align-items: center; gap: 10px; min-width: 0; }
.route-panel-heading img { width: 22px; height: 22px; padding: 7px; border-radius: 10px; background: rgba(255,255,255,.16); filter: brightness(0) invert(1); }
.route-panel h3 { color: #fff; }
.route-compact-summary { color: rgba(255,255,255,.82); }
.route-collapse-button { background: rgba(255,255,255,.16) !important; color: #fff !important; }
.route-panel-content { padding: 12px; overflow-y: auto; }
.route-steps { display: grid; grid-template-columns: repeat(3,1fr); gap: 5px; }
.route-step { padding: 6px 4px; border-radius: 7px; background: #e8eef5; color: #52677d; text-align: center; font-size: 9px; font-weight: 700; }
.route-step strong { display: inline-flex; width: 16px; height: 16px; margin-right: 3px; align-items: center; justify-content: center; border-radius: 50%; background: #246aa8; color: #fff; }
.route-selection-banner { padding: 9px 10px; border: 1px solid #b7d4ee; border-radius: 8px; background: #eaf5ff; color: #174f7e; font-size: 11px; font-weight: 700; }
.route-address-box { padding: 9px; border: 1px solid #dce4ed; border-radius: 9px; background: #fff; }
.route-address-label { display: flex; align-items: center; justify-content: space-between; margin-bottom: 6px; color: #40566d; font-size: 10px; font-weight: 800; }
.route-address-search { display: flex; gap: 5px; }
.route-address-search input { min-width: 0; flex: 1; padding: 8px; border: 1px solid #cdd8e4; border-radius: 7px; font-size: 11px; outline: none; }
.route-address-search input:focus { border-color: #246aa8; box-shadow: 0 0 0 2px rgba(36,106,168,.1); }
.route-address-search button { flex: 0 0 auto; padding: 7px 10px !important; background: #246aa8 !important; color: #fff !important; font-weight: 700; }
.route-address-results { display: grid; gap: 5px; margin-top: 7px; }
.route-address-result { display: flex; align-items: center; gap: 7px; padding: 7px; border: 1px solid #e1e7ee; border-radius: 7px; background: #f8fafc; }
.route-address-result-main { min-width: 0; flex: 1; }
.route-address-result strong { display: block; overflow: hidden; color: #344a61; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.route-address-result small { display: block; margin-top: 2px; overflow: hidden; color: #718092; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.route-address-result button { padding: 6px 8px !important; background: #e7f3eb !important; color: #246b3c !important; font-size: 10px !important; font-weight: 800; }
.route-empty { justify-content: center !important; padding: 18px 8px !important; color: #78889a; text-align: center; font-size: 11px; }
.route-stop-actions { display: flex; gap: 3px; flex-shrink: 0; }
.route-stop-actions button { width: 25px; height: 25px; padding: 0 !important; border-radius: 6px !important; background: #edf1f5 !important; color: #44566a !important; font-size: 11px !important; }
.route-stop-actions .remove-wp { background: #fde8e8 !important; color: #a63232 !important; margin: 0; }
.route-counter-row { display: flex; justify-content: space-between; gap: 8px; color: #526275; font-size: 11px; }
.route-limited-label { margin-left: 4px; padding: 2px 5px; border-radius: 7px; background: #fff0d8; color: #8a5a16; font-size: 8px; text-transform: uppercase; }
.route-panel button#btnOpenGoogleRoute { grid-column: 1 / -1; padding: 10px; }
.route-panel button#btnGenerateRoute { grid-column: 1 / -1; background: #eef2f6; color: #31516e; border: 1px solid #d6e0e9; }
.route-panel button#btnReverseRoute { background: #edf2f7; color: #40566d; }
 /* Storage Menu */
.storage-menu { width: 370px; padding: 0; display: none; flex-direction: column; overflow-y: auto; background: #f6f8fa; border: 1px solid rgba(45,91,76,.14); }
.storage-header { position: sticky; top: 0; z-index: 2; display: flex; align-items: center; gap: 12px; padding: 16px 18px; color: #fff; background: linear-gradient(135deg,#326c5b,#1e4c40); }
.storage-header img { width: 24px; height: 24px; padding: 8px; border-radius: 11px; background: rgba(255,255,255,.16); filter: brightness(0) invert(1); }
.storage-header h3 { margin: 0 !important; padding: 0 !important; border: 0 !important; color: #fff; text-align: left !important; font-size: 17px !important; }
.storage-header p { margin: 3px 0 0; padding: 0; border: 0; color: rgba(255,255,255,.78); text-align: left; font-size: 11px; }
.storage-summary { display: grid; grid-template-columns: repeat(2,1fr); gap: 7px; padding: 11px; background: #fff; border-bottom: 1px solid #dfe7e3; }
.storage-stat { padding: 9px; border-radius: 9px; background: #eef4f2; color: #315349; text-align: center; }
.storage-stat strong { display: block; font-size: 15px; }
.storage-stat span { display: block; margin-top: 2px; color: #6b7e78; font-size: 9px; text-transform: uppercase; }
.storage-persistent { grid-column: 1/-1; padding: 7px; border-radius: 8px; background: #eaf5ed; color: #2e6840; text-align: center; font-size: 10px; font-weight: 700; }
.storage-persistent.warning { background: #fff5df; color: #87601e; }
.storage-section { margin: 10px 11px 0; padding: 11px; border: 1px solid #dfe6e3; border-radius: 10px; background: #fff; }
.storage-section h4 { margin: 0 0 8px; color: #51665f; font-size: 10px; letter-spacing: .55px; text-transform: uppercase; }
.storage-action { width: 100%; padding: 10px; border: 1px solid #d7e0dd; border-radius: 8px; background: #f8faf9; color: #334d45; cursor: pointer; text-align: left; font-size: 12px; font-weight: 800; }
.storage-action small { display: block; margin-top: 4px; color: #70817b; font-size: 10px; font-weight: 400; line-height: 1.3; }
.storage-action.warning { border-color: #ead9ae; background: #fffaf0; color: #85631f; }
.storage-action.danger { border-color: #edc5c5; background: #fff3f3; color: #a23b3b; }
.storage-action + .storage-action { margin-top: 7px; }
.storage-status { min-height: 14px; padding: 10px 13px; color: #60746d; font-size: 10px; }
.storage-status.error { color: #a23b3b; }
.storage-confirm { display: none; margin: 10px 11px 11px; padding: 11px; border: 1px solid #e3c3c3; border-radius: 10px; background: #fff7f7; }
.storage-confirm.active { display: block; }
.storage-confirm strong { display: block; color: #8f3333; font-size: 12px; }
.storage-confirm p { margin: 5px 0 9px; padding: 0; border: 0; color: #665c5c; text-align: left; font-size: 10px; line-height: 1.35; }
.storage-confirm input { display: none; width: 100%; box-sizing: border-box; margin-bottom: 8px; padding: 7px; border: 1px solid #d5b6b6; border-radius: 6px; }
.storage-confirm.require-text input { display: block; }
.storage-confirm-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.storage-confirm-actions button { padding: 8px; border: 0; border-radius: 7px; cursor: pointer; font-size: 11px; font-weight: 700; }
#btnStorageConfirmCancel { background: #e9edef; color: #405058; }
#btnStorageConfirmApply { background: #c64141; color: #fff; }
 .maplibregl-popup-content { padding: 10px; font-size: 13px; border-radius: 8px; box-shadow: 0 4px 12px rgba(0,0,0,0.15); }
.maplibregl-popup-close-button { padding: 4px; font-size: 16px; color: #888; }
.marker-group-menu .color-box { width: 15px; height: 15px; margin-right: 10px; border: 1px solid #ccc; }
.line-menu li label, .marker-group-menu li label { cursor: pointer; width: 100%; display: flex; align-items: center; }
 footer { position: absolute; bottom: 5px; width: 100%; text-align: center; font-size: 10px; color: #555; z-index: 1001; pointer-events: none; }
 /* --- RESPONSIVIDADE PROFISSIONAL (MOBILE APP STYLE) --- */
@media (max-width: 768px) {
    .menu {
        top: auto; bottom: 0; left: 0;
        transform: none !important;
        box-sizing:border-box;
        width: 100%;
        height:calc(68px + env(safe-area-inset-bottom));
        flex-direction: row;
        border:1px solid rgba(255,255,255,.65);
        border-bottom:0;
        border-radius:20px 20px 0 0;
        padding:6px 10px max(6px,env(safe-area-inset-bottom));
        background:rgba(255,255,255,.78);
        box-shadow:0 -5px 22px rgba(28,45,64,.16);
        backdrop-filter:blur(16px) saturate(145%);
        -webkit-backdrop-filter:blur(16px) saturate(145%);
        overflow-x: auto;
        overflow-y:hidden;
        justify-content: flex-start;
        align-items: center;
        gap:4px;
        scroll-snap-type:x proximity;
        overscroll-behavior-x:contain;
        z-index: 9000;
    }
    .menu.hidden { transform: translateY(100%) !important; opacity: 1; }
    .menu button { margin:0; padding:0; border:1px solid transparent; box-shadow:none; background:transparent; width:48px; height:48px; scroll-snap-align:center; }
    .menu button:hover { background:rgba(232,240,254,.78); box-shadow:none; }
    .menu button.active { background:rgba(209,227,255,.82); border-color:rgba(66,133,244,.22); box-shadow:inset 0 0 0 1px rgba(66,133,244,.08); }
    .menu button img { width:21px; height:21px; }
    #btnLocation { position:fixed; right:12px; bottom:calc(78px + env(safe-area-inset-bottom)); width:54px; height:54px; z-index:1051; background:transparent; box-shadow:none; }
    .button-legend { display: none !important; }
     .kmz-menu, .line-menu, .loaded-files-menu, .style-menu, 
    .marker-group-menu, .storage-menu, .tools-menu, .route-panel {
        top: auto !important; bottom:calc(82px + env(safe-area-inset-bottom)) !important; left: 50% !important;
        transform: translateX(-50%) !important;
        width: 95% !important; max-height: 60vh;
        border-radius: 12px; box-shadow: 0 5px 20px rgba(0,0,0,0.3);
    }
    .route-panel { max-height: 52vh; padding: 12px; }
    .route-panel.collapsed { width: min(86%, 330px) !important; max-height: 62px !important; padding: 9px 12px; border-radius: 16px; }
     .search-bar { width: calc(100% - 70px); top: 10px; left: 10px; }
    .toggle-menu-btn { top: 10px; left: auto; right: 10px; }
    .search-results { width: 95%; left: 2.5%; top: 60px; }
    footer { display: none; }
}
 /* YOUTUBE STYLE LOADER */
.youtube-loader {
    position: fixed; top: 0; left: 0; height: 4px; background-color: #ff0000; width: 0%; z-index: 99999; transition: width 0.2s ease; box-shadow: 0 0 10px #ff0000; display: none;
}
.youtube-percentage {
    position: fixed; top: 10px; right: 10px; color: #ff0000; font-weight: bold; font-size: 14px; z-index: 99999; display: none; text-shadow: 1px 1px 0 #fff;
}
.cloud-menu { position:absolute; top:20px; left:80px; z-index:1100; width:350px; max-height:calc(100vh - 40px); overflow:auto; display:none; background:#f6f8fb; border:1px solid rgba(31,79,143,.16); border-radius:14px; box-shadow:0 12px 36px rgba(23,48,82,.22); }
.cloud-header { padding:16px 18px; color:#fff; background:linear-gradient(135deg,#315b91,#183b67); }
.cloud-header h3,.cloud-header p { margin:0; } .cloud-header p { margin-top:4px; font-size:11px; opacity:.8; }
.cloud-body { padding:14px; display:grid; gap:12px; }
.cloud-card { padding:12px; background:#fff; border:1px solid #dce4ee; border-radius:10px; display:grid; gap:9px; }
.cloud-card[hidden] { display:none !important; }
#cloudPasswordChange[hidden] { display:none !important; }
#cloudPasswordChange { display:grid; gap:8px; }
.admin-menu { position:absolute; top:20px; left:80px; z-index:1150; width:430px; max-height:calc(100vh - 40px); overflow:auto; display:none; background:#f5f7fa; border:1px solid #cfd9e5; border-radius:14px; box-shadow:0 14px 40px rgba(18,42,72,.28); }
.admin-header { padding:16px 18px; color:#fff; background:linear-gradient(135deg,#6f3c91,#382052); } .admin-header h3,.admin-header p{margin:0}.admin-header p{margin-top:4px;font-size:11px;opacity:.8}
.admin-body { padding:14px; display:grid; gap:10px; } .admin-search{display:flex;gap:7px}.admin-search input{flex:1;padding:9px;border:1px solid #cbd6e2;border-radius:8px}.admin-search button,.admin-user-actions button{padding:8px;border:0;border-radius:7px;cursor:pointer;font-weight:600}
.admin-search button{background:#6f3c91;color:#fff}.admin-user-list{display:grid;gap:8px}.admin-user-card{padding:11px;background:#fff;border:1px solid #dce4ed;border-radius:10px}.admin-user-card strong{display:block;color:#29445f}.admin-user-meta{font-size:10px;color:#687b8f;line-height:1.5}.admin-user-actions{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap}.admin-user-actions button{background:#e8edf4;color:#34516f}.admin-user-actions .promote{background:#efe6f5;color:#663786}.admin-user-actions .danger{background:#fff0f0;color:#a33b3b}.admin-badge{display:inline-block;padding:2px 6px;border-radius:10px;background:#efe6f5;color:#663786;font-size:9px;font-weight:700}.admin-status{padding:9px;border-radius:8px;background:#eaf1f8;color:#315b91;font-size:11px}
.admin-tabs{display:flex;gap:6px}.admin-tabs button{flex:1;padding:8px;border:0;border-radius:8px;background:#e6ebf2;color:#465c73;cursor:pointer;font-weight:700}.admin-tabs button.active{background:#6f3c91;color:#fff}.admin-view[hidden]{display:none!important}.admin-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.admin-metric{padding:9px;background:#fff;border:1px solid #dce4ed;border-radius:9px;text-align:center}.admin-metric strong{display:block;color:#5b3375;font-size:17px}.admin-metric span{font-size:9px;color:#6d7e90}.admin-db-list{display:grid;gap:6px}.admin-db-row{padding:9px;background:#fff;border:1px solid #dce4ed;border-radius:8px;font-size:10px;color:#5d7186}.admin-db-row strong{display:block;color:#29445f;font-size:12px}.admin-db-actions{display:flex;gap:7px}.admin-db-actions button{flex:1;padding:8px;border:0;border-radius:8px;background:#6f3c91;color:#fff;cursor:pointer;font-weight:700}
.admin-menu{width:min(980px,calc(100vw - 110px));background:#f3f5f8}.admin-header{position:sticky;top:0;z-index:4;display:flex;align-items:center;justify-content:space-between}.admin-header button{width:36px;height:36px;border:0;border-radius:50%;background:#ffffff24;color:#fff;font-size:23px;cursor:pointer}.admin-tabs{overflow-x:auto;scrollbar-width:thin;padding-bottom:3px}.admin-tabs button{flex:0 0 auto;min-width:100px;white-space:nowrap}.admin-summary{grid-template-columns:repeat(6,minmax(90px,1fr))}.admin-metric{position:relative;overflow:hidden}.admin-metric.alert strong{color:#b3261e}.admin-metric.good strong{color:#237346}.admin-chart-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.admin-panel{padding:11px;background:#fff;border:1px solid #dce4ed;border-radius:10px}.admin-panel h4,.admin-settings h4{margin:0 0 8px;color:#344f68}.admin-panel p{margin:4px 0 10px;color:#687b8f;font-size:11px}.admin-mini-chart{height:90px;display:flex;align-items:flex-end;gap:5px}.admin-chart-bar{position:relative;flex:1;min-height:4px;border-radius:5px 5px 2px 2px;background:linear-gradient(#9a63bc,#60357b)}.admin-chart-bar span{position:absolute;left:50%;bottom:calc(100% + 2px);transform:translateX(-50%);font-size:8px;color:#596c7e}.admin-chart-bar small{position:absolute;left:50%;top:calc(100% + 2px);transform:translateX(-50%);font-size:7px;color:#7d8b98}.admin-filter-grid{display:grid;grid-template-columns:minmax(180px,2fr) repeat(2,minmax(120px,1fr)) auto;gap:7px}.admin-filter-grid input,.admin-filter-grid select,.admin-settings input,.admin-settings textarea{box-sizing:border-box;width:100%;padding:9px;border:1px solid #cbd6e2;border-radius:8px;background:#fff}.admin-filter-grid button,.admin-toolbar button,.admin-pagination button,.admin-primary{padding:9px 12px;border:0;border-radius:8px;background:#6f3c91;color:#fff;font-weight:700;cursor:pointer}.admin-user-card{display:grid;grid-template-columns:1fr auto;gap:8px}.admin-user-card.blocked{border-left:4px solid #b3261e}.admin-user-meta{font-size:10px}.admin-user-actions{grid-column:1/-1}.admin-user-actions select{padding:7px;border:1px solid #cbd6e2;border-radius:7px}.admin-avatar-line{display:flex;gap:9px;align-items:center}.admin-user-avatar{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;overflow:hidden;background:#e3d7eb;color:#63367e;font-weight:800}.admin-user-avatar img{width:100%;height:100%;object-fit:cover}.admin-pagination,.admin-toolbar{display:flex;align-items:center;justify-content:center;gap:8px}.admin-pagination span{font-size:10px;color:#64788b}.admin-list{display:grid;gap:7px}.admin-list-card{padding:10px;border:1px solid #dce4ed;border-radius:9px;background:#fff}.admin-list-card strong{display:block;color:#304b63;font-size:12px}.admin-list-card p{margin:5px 0;color:#64788b;font-size:10px;white-space:pre-wrap}.admin-list-card small{color:#81909d;font-size:8px}.admin-list-actions{display:flex;gap:6px;margin-top:7px;flex-wrap:wrap}.admin-list-actions button{padding:7px;border:0;border-radius:7px;background:#e8edf4;color:#34516f;font-weight:700;cursor:pointer}.admin-list-actions .danger{background:#fff0f0;color:#a33b3b}.admin-list-actions .primary{background:#6f3c91;color:#fff}.admin-settings{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;padding:12px;background:#fff;border-radius:10px}.admin-settings label{display:grid;gap:4px;color:#52677a;font-size:10px;font-weight:700}.admin-settings textarea{min-height:70px;resize:vertical}.admin-settings .admin-check{display:flex;align-items:center}.admin-settings .admin-check input{width:auto}.admin-wide{grid-column:1/-1}.admin-db-row.rls-off{border-left:5px solid #c62828;background:#fff5f5}.admin-db-row.rls-on{border-left:5px solid #2e7d32}.admin-status.error{background:#fee5e5;color:#9a2424}.admin-status.success{background:#e2f3e6;color:#27663a}
@media(max-width:760px){.admin-menu{position:fixed!important;inset:0!important;width:100%!important;max-height:none!important;border-radius:0;padding-bottom:env(safe-area-inset-bottom)}.admin-body{padding:10px}.admin-summary{grid-template-columns:repeat(3,1fr)}.admin-chart-grid{grid-template-columns:1fr}.admin-filter-grid{grid-template-columns:1fr 1fr}.admin-filter-grid input{grid-column:1/-1}.admin-user-card{grid-template-columns:1fr}.admin-settings{grid-template-columns:1fr 1fr}.admin-tabs{position:sticky;top:0;z-index:3;background:#f3f5f8}.admin-wide{grid-column:1/-1}}@media(max-width:430px){.admin-summary{grid-template-columns:repeat(2,1fr)}.admin-filter-grid,.admin-settings{grid-template-columns:1fr}.admin-wide{grid-column:auto}}
.issues-menu{position:absolute;top:20px;left:80px;z-index:1140;width:470px;max-height:calc(100vh - 40px);overflow:auto;display:none;background:#f4f7f9;border:1px solid #cad8e2;border-radius:15px;box-shadow:0 15px 45px rgba(16,44,65,.28)}
.issues-header{padding:16px 18px;color:#fff;background:linear-gradient(135deg,#b75b20,#71340f)}.issues-header h3,.issues-header p{margin:0}.issues-header p{margin-top:4px;font-size:11px;opacity:.82}.issues-body{padding:13px;display:grid;gap:10px}.issues-tabs{display:flex;gap:6px}.issues-tabs button{flex:1;padding:9px;border:0;border-radius:8px;background:#e4eaef;color:#52677a;cursor:pointer;font-weight:700}.issues-tabs button.active{background:#b75b20;color:#fff}.issues-view[hidden]{display:none!important}.issues-filters{display:grid;grid-template-columns:1fr 1fr;gap:7px}.issues-filters input{grid-column:1/-1}.issues-filters input,.issues-filters select,.issue-form input,.issue-form select,.issue-form textarea,.issue-comments textarea,.issue-admin select{box-sizing:border-box;width:100%;padding:9px;border:1px solid #c9d6df;border-radius:8px;background:#fff}.issues-list{display:grid;gap:8px}.issue-card{display:block;width:100%;padding:11px;text-align:left;background:#fff;border:1px solid #d9e3ea;border-left:5px solid #d08a3f;border-radius:10px;cursor:pointer}.issue-card:hover{transform:translateY(-1px);box-shadow:0 4px 13px #36546b22}.issue-card>strong{display:block;margin-top:7px;color:#29475f}.issue-card p{margin:6px 0;color:#63778a;font-size:11px;line-height:1.4}.issue-card-top,.issue-card-footer,.issue-card-meta,.issue-detail-heading,.issue-comment>div{display:flex;align-items:center;justify-content:space-between;gap:7px}.issue-card-meta{align-items:flex-start;flex-direction:column;font-size:9px;color:#677b8d}.issue-card-footer{margin-top:8px;font-size:9px;color:#677b8d}.issue-type,.issue-priority,.issue-status-pill{padding:3px 7px;border-radius:12px;font-size:9px;font-weight:800;background:#edf2f6;color:#49657b}.issue-priority.urgente{background:#ffe1e1;color:#ad1e1e}.issue-priority.alta{background:#fff0dd;color:#b45718}.issue-status-pill.concluida{background:#ddf3e3;color:#19733a}.issue-status-pill.em_execucao{background:#dceeff;color:#17659a}.issue-form{display:grid;gap:8px}.issue-form-row{display:grid;grid-template-columns:1fr 1fr;gap:7px}.issue-form textarea{min-height:85px;resize:vertical}.issue-location-actions,.issue-submit-actions{display:flex;gap:7px}.issue-location-actions button,.issue-submit-actions button,.issue-comments button,.issue-back,#btnIssueLocate{flex:1;padding:9px;border:0;border-radius:8px;cursor:pointer;font-weight:700;background:#e6ecf1;color:#426079}.issue-submit-actions .primary,.issue-comments button.primary{background:#b75b20;color:#fff}.issue-submit-actions .danger{background:#a82c2c;color:#fff}.issue-photo-preview,.issue-gallery{display:flex;gap:6px;flex-wrap:wrap}.issue-photo-preview img,.issue-gallery img,.issue-comment img{width:92px;height:72px;object-fit:cover;border-radius:7px;border:1px solid #d5dfe6}.issues-status{padding:8px;border-radius:8px;background:#e9f0f5;color:#49657b;font-size:10px}.issues-status.success{background:#e2f3e6;color:#27663a}.issues-status.error,.issues-error{background:#fee5e5;color:#9a2424}.issue-detail{display:grid;gap:9px}.issue-detail h3,.issue-detail h4{margin:0;color:#29475f}.issue-detail-description,.issue-admin{padding:10px;background:#fff;border-radius:8px;color:#52697d;font-size:12px;white-space:pre-wrap}.issue-facts{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:0}.issue-facts div{padding:7px;background:#fff;border-radius:7px}.issue-facts dt{font-size:8px;text-transform:uppercase;color:#81909d}.issue-facts dd{margin:2px 0 0;font-size:10px;color:#375269}.issue-comments{display:grid;gap:6px}.issue-comment{padding:8px;background:#fff;border-radius:8px;border:1px solid #dce5eb}.issue-comment strong{font-size:10px;color:#38566d}.issue-comment time{font-size:8px;color:#8998a5}.issue-comment p{margin:4px 0;font-size:11px;color:#5b7082;white-space:pre-wrap}.issue-comments form{display:grid;gap:6px}.issue-comments textarea{min-height:64px}.issues-empty{padding:24px;text-align:center;color:#76899a;background:#fff;border-radius:10px}@media(max-width:520px){.issues-menu{left:10px;top:70px;width:calc(100vw - 20px);max-height:calc(100vh - 140px)}}
.chat-menu{position:absolute;top:20px;left:80px;z-index:1160;width:520px;height:min(720px,calc(100vh - 40px));display:none;grid-template-rows:auto auto 1fr auto;background:#eef2f4;border-radius:16px;overflow:hidden;box-shadow:0 16px 48px #102b3f55}.chat-header{padding:14px 17px;color:#fff;background:linear-gradient(135deg,#087c66,#075347)}.chat-header h3,.chat-header p{margin:0}.chat-header p{margin-top:3px;font-size:10px;opacity:.84}.chat-switch{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:9px;background:#fff}.chat-switch button{padding:8px;border:0;border-radius:8px;background:#e5eeec;color:#38655d;font-weight:700;cursor:pointer}.chat-switch button.active{color:#fff;background:#087c66}.chat-private-select{grid-column:1/-1;width:100%;box-sizing:border-box;padding:8px;border:1px solid #c9d7d4;border-radius:8px}.chat-messages{overflow:auto;padding:13px;display:flex;flex-direction:column;gap:8px;background-color:#e8e4db;background-image:radial-gradient(#fff7 1px,transparent 1px);background-size:16px 16px}.chat-empty{text-align:center;margin:auto;padding:18px;border-radius:12px;background:#ffffffc9;color:#687d78;font-size:11px}.chat-message{align-self:flex-start;max-width:78%;padding:8px 10px;border-radius:5px 12px 12px 12px;background:#fff;box-shadow:0 1px 2px #0002}.chat-message.mine{align-self:flex-end;border-radius:12px 5px 12px 12px;background:#d9fdd3}.chat-message strong{display:block;color:#087c66;font-size:9px}.chat-message p{margin:3px 0;color:#263b37;font-size:12px;white-space:pre-wrap;overflow-wrap:anywhere}.chat-message time{display:block;text-align:right;color:#72817d;font-size:8px}.chat-message img{display:block;width:min(260px,100%);max-height:260px;margin:5px 0;object-fit:cover;border-radius:8px;cursor:pointer}.chat-compose{padding:9px;display:grid;grid-template-columns:auto 1fr auto;gap:7px;align-items:end;background:#f7f9f9;border-top:1px solid #d3dfdc}.chat-compose textarea{box-sizing:border-box;min-height:42px;max-height:110px;resize:none;padding:10px;border:1px solid #cbd8d5;border-radius:18px}.chat-compose button,.chat-photo-label{display:grid;place-items:center;width:42px;height:42px;border:0;border-radius:50%;background:#087c66;color:#fff;cursor:pointer;font-weight:800}.chat-photo-label{background:#dde9e6;color:#087c66}.chat-photo-label input{display:none}.chat-photo-preview{grid-column:1/-1;display:flex;gap:6px;align-items:center;color:#55716b;font-size:10px}.chat-photo-preview img{width:54px;height:44px;object-fit:cover;border-radius:7px}.chat-note{grid-column:1/-1;font-size:8px;color:#71827e;text-align:center}.chat-status{padding:6px 10px;background:#fff6d9;color:#765f17;font-size:9px}.chat-status:empty{display:none}@media(max-width:570px){.chat-menu{left:8px;top:65px;width:calc(100vw - 16px);height:calc(100vh - 125px)}}
.chat-report-dialog{box-sizing:border-box;width:min(440px,calc(100vw - 24px));padding:0;border:0;border-radius:16px;background:#f6f8f8;box-shadow:0 18px 60px #102b3f66;color:#29463f}.chat-report-dialog::backdrop{background:#102b3f88;backdrop-filter:blur(3px)}.chat-report-header{display:flex;align-items:center;gap:10px;padding:15px 17px;background:linear-gradient(135deg,#9e2e2e,#6e1e1e);color:#fff}.chat-report-header span{font-size:22px}.chat-report-header div{flex:1}.chat-report-header h3,.chat-report-header p{margin:0}.chat-report-header p{margin-top:3px;font-size:9px;opacity:.85}.chat-report-close{width:32px;height:32px;border:0;border-radius:50%;background:#ffffff22;color:#fff;font-size:20px;cursor:pointer}.chat-report-form{display:grid;gap:10px;padding:15px}.chat-report-preview{padding:10px;border-left:4px solid #d05b5b;border-radius:8px;background:#fff;color:#5c6d69;font-size:10px;white-space:pre-wrap;overflow-wrap:anywhere}.chat-report-form label{display:grid;gap:5px;font-size:10px;font-weight:800;color:#48635d}.chat-report-form select,.chat-report-form textarea{box-sizing:border-box;width:100%;padding:10px;border:1px solid #c9d7d4;border-radius:9px;background:#fff;font:inherit;color:#29463f}.chat-report-form textarea{min-height:86px;resize:vertical}.chat-report-help{font-size:9px;color:#71837f}.chat-report-actions{display:flex;gap:8px}.chat-report-actions button{flex:1;padding:10px;border:0;border-radius:9px;background:#e4ebea;color:#45645d;font-weight:800;cursor:pointer}.chat-report-actions .danger{background:#9e2e2e;color:#fff}.chat-report-status{min-height:14px;color:#9e2e2e;font-size:9px}.chat-message.reported{opacity:.68}.chat-message.reported .chat-message-tools:before{content:'Denúncia enviada';margin-right:auto;color:#9e2e2e;font-size:8px;font-weight:800}.admin-report-filters{display:grid;grid-template-columns:1fr 1fr auto;gap:7px}.admin-report-filters select,.admin-report-filters button{padding:9px;border:1px solid #cbd6e2;border-radius:8px;background:#fff}.admin-report-filters button{border:0;background:#6f3c91;color:#fff;font-weight:800}.admin-report-card.pending{border-left:4px solid #c62828}.admin-report-card.reviewed{border-left:4px solid #1976d2}.admin-report-card.dismissed{opacity:.7}.admin-report-card.removed{border-left:4px solid #616161}.admin-report-badges{display:flex;gap:5px;flex-wrap:wrap;margin:5px 0}.admin-report-badges span{padding:3px 7px;border-radius:10px;background:#edf1f5;color:#52687a;font-size:8px;font-weight:800}@media(max-width:520px){.chat-report-dialog{width:calc(100vw - 16px);max-height:calc(100vh - 30px)}.admin-report-filters{grid-template-columns:1fr 1fr}.admin-report-filters button{grid-column:1/-1}}
.issue-gps-status{padding:8px;border-radius:8px;background:#edf3f6;color:#506d7f;font-size:10px}.issue-gps-status.ready{background:#e2f3e7;color:#22683d}.issue-photo-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px}.issue-photo-action{display:flex;align-items:center;justify-content:center;gap:6px;padding:10px;border-radius:9px;background:#e8eef2;color:#3f6177;font-size:11px;font-weight:700;cursor:pointer}.issue-photo-action.camera{background:#b75b20;color:#fff}.issue-photo-action input{display:none}.issue-photo-help{font-size:9px;color:#718492;text-align:center}
.issue-marker-select{width:100%;padding:10px;border:1px solid #d49764;border-radius:9px;background:#fff7ef;color:#8a481a;font-weight:800;cursor:pointer}.issue-marker-select.active{color:#fff;background:#d56a21;animation:issuePulse 1.2s infinite}#btnSaveSketchLocation{margin-top:3px;padding:12px;border-color:#0969da;background:linear-gradient(135deg,#1683ed,#0969da);color:#fff;font-size:11px;letter-spacing:.45px;box-shadow:0 4px 12px rgba(9,105,218,.3)}#btnSaveSketchLocation:hover{background:#075dbf}#btnSaveSketchLocation:active{transform:translateY(1px);box-shadow:0 2px 7px rgba(9,105,218,.28)}@keyframes issuePulse{50%{box-shadow:0 0 0 4px #d56a2133}}
.maintenance-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.maintenance-summary div{padding:8px 4px;border:1px solid #dbe4e9;border-radius:9px;background:#fff;text-align:center}.maintenance-summary strong{display:block;color:#9b4a17;font-size:17px}.maintenance-summary span{display:block;color:#758794;font-size:8px;text-transform:uppercase}.issues-map-filter{grid-column:1/-1;display:flex!important;align-items:center;gap:6px;padding:7px 9px;border:1px solid #dce4e9;border-radius:8px;background:#fff;color:#52697d;font-size:10px}.issues-map-filter input{width:auto!important}.issues-filters>button{padding:8px;border:0;border-radius:8px;background:#e5ebef;color:#486276;font-weight:700;cursor:pointer}.issue-protocol{font-size:9px;font-weight:800;color:#87502d;letter-spacing:.3px}.issue-card.overdue{border-left-color:#c62828;background:#fffafa}.issue-overdue{color:#b42318;font-weight:800}.issue-workflow{display:grid;grid-template-columns:repeat(5,1fr);gap:3px}.issue-workflow span{padding:6px 2px;border-radius:6px;background:#e7ecef;color:#7b8993;text-align:center;font-size:7px}.issue-workflow span.done{background:#dcefe2;color:#24693a}.issue-workflow span.current{background:#b75b20;color:#fff;font-weight:800}.issue-duplicate-warning{padding:9px;border:1px solid #e6b875;border-radius:8px;background:#fff5df;color:#875718;font-size:10px}.issue-comment-photo-label{display:flex;justify-content:center;padding:8px;border-radius:8px;background:#e6ecf1;color:#426079;font-size:10px;font-weight:700;cursor:pointer}.issue-comment-photo-label input{display:none}.issue-admin input{box-sizing:border-box;width:100%;padding:9px;border:1px solid #c9d6df;border-radius:8px}.issue-deadline{padding:8px;border-radius:8px;background:#fff;color:#536b7d;font-size:10px}.issue-deadline.overdue{background:#fee7e7;color:#a32727;font-weight:800}
.issues-header{position:relative}.issues-close{position:absolute;right:12px;top:12px;width:34px;height:34px;border:0;border-radius:50%;background:#ffffff26;color:#fff;font-size:22px;cursor:pointer}
@media(max-width:768px){.issues-menu{position:fixed!important;inset:0!important;z-index:10040!important;width:100%!important;max-height:none!important;box-sizing:border-box;border-radius:0;padding-bottom:env(safe-area-inset-bottom)}.issues-body{padding-bottom:max(13px,env(safe-area-inset-bottom))}.maintenance-summary{position:sticky;top:0;z-index:2}.issues-filters{grid-template-columns:1fr 1fr}.issue-workflow span{font-size:6px}}
#btnChat{position:relative}.chat-main-badge[hidden]{display:none}.chat-menu{width:620px;grid-template-rows:auto auto minmax(0,1fr) auto;background:#f2f5f5}.chat-header{display:flex;align-items:center;gap:11px;padding:12px 15px}.chat-header-avatar,.chat-avatar{flex:0 0 auto;display:grid;place-items:center;border-radius:50%;overflow:hidden;background:linear-gradient(135deg,#a7d8cf,#4c9b8d);color:#fff;font-weight:800}.chat-header-avatar{width:42px;height:42px;font-size:15px}.chat-avatar{width:38px;height:38px;font-size:12px}.chat-avatar img,.chat-header-avatar img{width:100%;height:100%;object-fit:cover}.chat-header-copy{min-width:0;flex:1}.chat-header-copy h3,.chat-header-copy p{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-header-action{flex:0 0 auto;border:0;background:#ffffff25;color:#fff;border-radius:50%;width:34px;height:34px;cursor:pointer}.chat-close{font-size:20px}.chat-switch{grid-template-columns:1fr 1fr;padding:8px 10px}.chat-contact-panel{grid-column:1/-1;display:grid;gap:7px}.chat-contact-panel[hidden]{display:none}.chat-user-search{box-sizing:border-box;width:100%;padding:10px 12px;border:1px solid #ccd9d6;border-radius:20px;background:#f3f6f6}.chat-user-list{display:grid;gap:4px;max-height:220px;overflow:auto}.chat-user-card{display:grid;grid-template-columns:38px 1fr auto;gap:9px;align-items:center;width:100%;padding:7px;border:0;border-radius:10px;background:#fff;text-align:left;cursor:pointer}.chat-user-card:hover,.chat-user-card.active{background:#dff1ed}.chat-user-copy{min-width:0}.chat-user-copy strong,.chat-user-copy small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-user-copy strong{color:#244b43;font-size:11px}.chat-user-copy small{color:#78908b;font-size:9px}.chat-user-meta{display:grid;justify-items:end;gap:4px;color:#78908b;font-size:8px}.chat-unread,.chat-main-badge{display:inline-grid;place-items:center;min-width:17px;height:17px;padding:0 4px;border-radius:10px;background:#16a676;color:#fff;font-size:8px;font-weight:800}.chat-main-badge{position:absolute;right:-4px;top:-4px;background:#e53935}.chat-user-arrow{color:#7d918d}.chat-load-older{align-self:center;border:0;border-radius:16px;padding:7px 13px;background:#fff;color:#087c66;box-shadow:0 1px 3px #0002;cursor:pointer;font-size:9px}.chat-date{align-self:center;padding:4px 9px;border-radius:10px;background:#e8f0ef;color:#5c706c;font-size:8px}.chat-message{position:relative;padding-right:30px}.chat-message strong{display:flex;align-items:center;gap:5px}.chat-message-sender-avatar{display:inline-grid;width:18px;height:18px;place-items:center;border-radius:50%;overflow:hidden;background:#72ad9f;color:#fff;font-size:7px}.chat-message-sender-avatar img{width:100%;height:100%;object-fit:cover;margin:0;border-radius:50%}.chat-message-tools{display:flex;justify-content:flex-end;gap:2px}.chat-message-tools button{border:0;background:transparent;color:#71817e;cursor:pointer;padding:2px 4px;font-size:10px}.chat-reply-preview{padding:5px 7px;border-left:3px solid #0a8d74;border-radius:5px;background:#f0f5f4;color:#536a65;font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-file-card,.chat-location-card{display:flex;align-items:center;gap:8px;width:100%;box-sizing:border-box;margin:5px 0;padding:8px;border:0;border-radius:8px;background:#edf5f3;color:#285b51;text-align:left;cursor:pointer}.chat-file-card span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-file-card small{display:block;color:#71857f}.chat-location-card{background:#e5f0ff;color:#285b83}.chat-reply-bar{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;padding:7px 10px;border-left:3px solid #087c66;border-radius:6px;background:#e7f1ef;color:#45635d;font-size:9px}.chat-reply-bar[hidden]{display:none}.chat-reply-bar button{width:24px;height:24px;background:transparent;color:#45635d}.chat-compose{grid-template-columns:auto auto auto auto minmax(72px,1fr) auto}.chat-compose-action{display:grid;place-items:center;width:42px;height:42px;border:0;border-radius:50%;background:#dde9e6;color:#087c66;cursor:pointer}.chat-marker-picker{grid-column:1/-1;display:grid;gap:6px;padding:8px;border:1px solid #cbdad6;border-radius:10px;background:#fff}.chat-marker-picker[hidden]{display:none}.chat-marker-search{box-sizing:border-box;width:100%;padding:9px 11px;border:1px solid #c7d5d2;border-radius:18px}.chat-marker-results{display:grid;gap:4px;max-height:180px;overflow:auto}.chat-marker-result{display:grid!important;grid-template-columns:auto minmax(0,1fr) auto!important;width:100%!important;height:auto!important;gap:8px;padding:8px!important;border-radius:8px!important;background:#edf5f3!important;color:#285b51!important;text-align:left}.chat-marker-result span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-marker-result small{display:block;color:#71857f}.chat-attachment-preview{grid-column:1/-1;display:flex;gap:6px;align-items:center;flex-wrap:wrap}.chat-attachment-preview button{width:auto;height:auto;padding:5px 8px;border-radius:12px;font-size:9px}.chat-compose textarea:disabled,.chat-compose button:disabled{opacity:.55;cursor:not-allowed}.profile-avatar-row{display:grid;grid-template-columns:54px 1fr;gap:10px;align-items:center}.profile-avatar-preview{display:grid;place-items:center;width:54px;height:54px;border-radius:50%;overflow:hidden;background:#dbe9f6;color:#315b91;font-weight:800}.profile-avatar-preview img{width:100%;height:100%;object-fit:cover}.profile-avatar-actions{display:grid;gap:5px}.profile-avatar-actions label{padding:8px;border-radius:8px;background:#e7edf5;color:#264b76;text-align:center;font-size:10px;font-weight:700;cursor:pointer}.profile-avatar-actions input{display:none}@media(max-width:620px){.chat-menu{position:fixed!important;inset:0!important;z-index:10050!important;width:100%!important;height:100dvh!important;max-height:none!important;box-sizing:border-box;border-radius:0;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);overscroll-behavior:contain}.chat-header{padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right))}.chat-user-list{max-height:min(280px,38dvh)}.chat-messages{min-height:0}.chat-compose{box-sizing:border-box;padding-bottom:max(9px,env(safe-area-inset-bottom));gap:5px}.chat-compose-action,.chat-photo-label,.chat-compose>button[type=submit]{width:38px;height:38px}.chat-compose textarea{min-height:38px}}
.auth-gate { position:fixed; inset:0; z-index:100000; display:flex; align-items:center; justify-content:center; overflow:hidden; padding:20px; background:radial-gradient(circle at 18% 18%,#164f7b 0,transparent 34%),radial-gradient(circle at 82% 76%,#3a2477 0,transparent 38%),linear-gradient(145deg,#061525 0%,#102f52 55%,#172447 100%); }
.auth-gate[hidden] { display:none !important; }
.auth-neural-network{position:absolute;inset:0;z-index:0;width:100%;height:100%;pointer-events:none;opacity:.92}
.auth-box { position:relative; z-index:1; box-sizing:border-box; width:min(440px,100%); max-height:calc(100vh - 30px); overflow:auto; padding:24px; border:1px solid rgba(255,255,255,.7); border-radius:18px; background:rgba(255,255,255,.94); box-shadow:0 24px 70px rgba(0,0,0,.42),0 0 45px rgba(62,194,255,.12); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); }
.auth-brand { text-align:center; margin-bottom:18px; } .auth-brand h1 { margin:0; color:#244d7c; font-size:24px; } .auth-brand p { margin:6px 0 0; color:#66788c; font-size:12px; }
.auth-tabs { display:grid; grid-template-columns:repeat(3,1fr); gap:5px; padding:4px; border-radius:10px; background:#edf2f7; }
.auth-tabs button { padding:8px 4px; border:0; border-radius:7px; background:transparent; color:#52677e; cursor:pointer; font-weight:600; font-size:11px; }
.auth-tabs button.active { color:#fff; background:#315b91; }
.auth-form { display:none; gap:10px; margin-top:15px; } .auth-form.active { display:grid; }
.auth-form label { display:grid; gap:4px; color:#40566d; font-size:11px; font-weight:600; }
.auth-form input { box-sizing:border-box; width:100%; padding:11px; border:1px solid #c8d4e1; border-radius:9px; font-size:14px; }
.password-wrap { position:relative; } .password-wrap input { padding-right:70px; }
.password-toggle { position:absolute; right:6px; top:50%; transform:translateY(-50%); padding:6px 8px; border:0; border-radius:6px; background:#edf2f7; color:#315b91; cursor:pointer; font-size:10px; font-weight:700; }
.auth-form .auth-submit { padding:11px; border:0; border-radius:9px; color:#fff; background:#315b91; cursor:pointer; font-weight:700; }
.auth-form small { color:#6b7d91; line-height:1.35; }
.auth-secondary { padding:10px; border:1px solid #c8d4e1; border-radius:9px; color:#315b91; background:#fff; cursor:pointer; font-weight:700; }
.auth-saved-session { display:flex; align-items:center; gap:11px; padding:12px; border:1px solid #cfe0ee; border-radius:12px; background:#f5faff; color:#294f75; }
.auth-saved-session-icon { display:grid; place-items:center; flex:0 0 34px; height:34px; border-radius:50%; color:#fff; background:#248b72; font-weight:900; box-shadow:0 5px 14px #248b7235; }
.auth-saved-session div { min-width:0; display:grid; gap:3px; }
.auth-saved-session strong,.auth-saved-session small { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.auth-ad { position:relative; box-sizing:border-box; width:100%; min-height:50px; margin-top:8px; padding:10px 3px 2px; overflow:hidden; border:1px solid rgba(123,145,166,.18); border-radius:8px; background:rgba(244,247,250,.68); text-align:center; }
.auth-ad[hidden] { display:none !important; }
.auth-ad-label { position:absolute; top:3px; left:0; right:0; color:#8593a1; font-size:8px; letter-spacing:.7px; text-transform:uppercase; }
.auth-ad-content { display:flex; align-items:center; justify-content:center; width:100%; min-height:38px; color:#7a8998; font-size:9px; }
.auth-ad.is-preview .auth-ad-content::before { content:'Prévia da faixa publicitária'; width:min(100%,320px); padding:6px 10px; border:1px dashed #b5c2ce; border-radius:5px; background:#fff9; }
.auth-ad .adsbygoogle { flex:0 0 auto; max-width:100%; }
.auth-gate-status { min-height:18px; margin-top:12px; padding:9px; border-radius:8px; background:#edf3f9; color:#315b91; font-size:11px; }
.auth-gate-status.error { background:#fff0f0; color:#a33b3b; } .auth-gate-status.success { background:#e9f7ef; color:#277345; }
.auth-whatsapp{display:flex;align-items:center;justify-content:center;gap:7px;margin-top:10px;padding:9px 11px;border:1px solid #b9e2d2;border-radius:9px;background:#effaf5;color:#16754f;text-decoration:none;font-size:11px;font-weight:700;transition:.16s}.auth-whatsapp:hover{background:#e0f6ec;border-color:#75c7a5}.auth-whatsapp:active{transform:scale(.985)}.auth-producer{margin-top:11px;color:#9aa7b4;text-align:center;font-size:8px;letter-spacing:.25px;opacity:.72;user-select:none}
.auth-legal{display:flex;justify-content:center;gap:12px;margin-top:10px}.auth-legal a{color:#647b90;font-size:9px;text-decoration:none}.auth-legal a:hover{text-decoration:underline}

/* Navegação principal moderna */
#mainMenu{left:16px;padding:8px 6px;border:1px solid rgba(255,255,255,.72);border-radius:18px;background:rgba(255,255,255,.82);box-shadow:0 10px 32px rgba(25,48,72,.18);backdrop-filter:blur(16px) saturate(145%);-webkit-backdrop-filter:blur(16px) saturate(145%);scrollbar-width:thin;scrollbar-color:#a9b9c8 transparent}
#mainMenu::-webkit-scrollbar{display:block;width:3px}#mainMenu::-webkit-scrollbar-thumb{border-radius:4px;background:#a9b9c8}
#mainMenu button{width:44px;height:44px;margin:3px 0;padding:9px;border:1px solid transparent;background:rgba(255,255,255,.72);box-shadow:0 2px 7px rgba(31,59,86,.11)}
#mainMenu button:hover{border-color:#cbd9e7;background:#f1f6fb;transform:translateY(-1px)}#mainMenu button:active{transform:scale(.94)}
#mainMenu .menu-primary-action{background:linear-gradient(145deg,#fff,#eef5fb)}
.menu-glyph{display:grid;place-items:center;width:26px;height:26px;border-radius:9px;font-size:15px}.menu-glyph.field{background:#e2f3ed}.menu-glyph.maintenance{background:#fff0e4}
.menu-more-dots{color:#315b91;font-size:16px;font-weight:900;letter-spacing:1px}.cpfl-croqui-menu-icon{font-size:8px;font-weight:900;color:#b2232a}
#mainMenu #btnChat,#mainMenu #btnFileAdmin{display:none!important}
#btnMainMore{display:none!important}
.main-more-panel{position:fixed;z-index:10020;left:16px;bottom:16px;width:min(410px,calc(100vw - 32px));box-sizing:border-box;padding:12px;border:1px solid rgba(255,255,255,.72);border-radius:20px;background:rgba(247,250,252,.96);box-shadow:0 18px 50px rgba(18,44,69,.3);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}.main-more-panel[hidden]{display:none!important}.main-more-panel header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;padding:2px 2px 8px}.main-more-panel header strong,.main-more-panel header small{display:block}.main-more-panel header strong{color:#294c69;font-size:14px}.main-more-panel header small{margin-top:2px;color:#718496;font-size:9px}.main-more-panel header button{width:32px;height:32px;border:0;border-radius:10px;background:#e5edf4;color:#39566e;font-size:20px;cursor:pointer}.main-more-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.main-more-grid>button{display:grid;min-width:0;min-height:74px;place-items:center;align-content:center;gap:6px;padding:8px 4px;border:1px solid #dce5ec;border-radius:13px;background:#fff;color:#405d73;box-shadow:0 2px 7px rgba(25,55,80,.07);cursor:pointer}.main-more-grid>button:hover{border-color:#a9bfd2;background:#eef5fa}.main-more-grid img{width:23px;height:23px}.main-more-grid span:last-child{font-size:9px;font-weight:700;text-align:center}.more-text-icon{display:grid;width:29px;height:23px;place-items:center;border-radius:7px;background:#eee5f5;color:#704090;font-size:8px;font-weight:900}
@media(max-width:768px){#mainMenu{height:calc(68px + env(safe-area-inset-bottom));padding:6px max(8px,env(safe-area-inset-left)) max(6px,env(safe-area-inset-bottom));justify-content:space-around;gap:2px;overflow:hidden;border-radius:22px 22px 0 0}#mainMenu>button{display:none!important;flex:0 0 48px;width:48px;height:48px;margin:0;padding:8px;box-shadow:none}#mainMenu>#btnKMZ,#mainMenu>#btnMarkerGroups,#mainMenu>#btnLineGroups,#mainMenu>#btnTools,#mainMenu>#btnSupport,#mainMenu>#btnMainMore{display:flex!important}#mainMenu>#btnMainMore{display:grid!important}#mainMenu.hidden{transform:translateY(100%)!important}.main-more-panel{left:8px;right:8px;bottom:calc(76px + env(safe-area-inset-bottom));width:auto;padding:11px;border-radius:20px}.main-more-grid{grid-template-columns:repeat(4,1fr)}.main-more-grid>button{min-height:72px}.main-more-panel header{margin-bottom:7px}}
@media(max-width:390px){.main-more-grid{grid-template-columns:repeat(3,1fr)}#mainMenu>button{flex-basis:46px;width:46px;height:46px}}

/* Ajuste fino da navegação móvel */
@media(max-width:768px){#mainMenu{display:grid;grid-template-columns:repeat(6,minmax(42px,1fr));align-items:center;justify-items:center;gap:0;left:0;right:0;bottom:0;width:100%;box-sizing:border-box;height:calc(66px + env(safe-area-inset-bottom));padding:5px max(7px,env(safe-area-inset-right)) max(5px,env(safe-area-inset-bottom)) max(7px,env(safe-area-inset-left));border-color:rgba(255,255,255,.58);border-radius:19px 19px 0 0;background:linear-gradient(180deg,rgba(255,255,255,.76),rgba(240,246,250,.66));box-shadow:0 -5px 22px rgba(23,46,68,.14);backdrop-filter:blur(18px) saturate(150%);-webkit-backdrop-filter:blur(18px) saturate(150%)}#mainMenu>button{justify-self:center;align-self:center;flex:none;width:46px;height:46px;padding:8px;border-color:rgba(255,255,255,.42);border-radius:14px;background:rgba(255,255,255,.28);box-shadow:0 2px 8px rgba(28,53,75,.07)}#mainMenu>button:hover{background:rgba(238,246,252,.7)}#mainMenu>button.active{border-color:rgba(66,133,244,.28);background:rgba(209,227,255,.68)}#mainMenu>button img{display:block;width:22px;height:22px}.main-more-panel{bottom:calc(74px + env(safe-area-inset-bottom));border-color:rgba(255,255,255,.64);background:linear-gradient(155deg,rgba(255,255,255,.91),rgba(238,245,249,.84));box-shadow:0 16px 44px rgba(18,44,69,.25);backdrop-filter:blur(20px) saturate(145%);-webkit-backdrop-filter:blur(20px) saturate(145%)}.main-more-grid>button{background:rgba(255,255,255,.7)}}
@media(max-width:360px){#mainMenu{grid-template-columns:repeat(6,minmax(40px,1fr));padding-inline:4px}#mainMenu>button{width:43px;height:43px;padding:7px}}
/* Atalhos flutuantes ficam acima do mapa, mas abaixo de qualquer aba aberta. */
#btnLocation,#btnChatQuick,#btnSketchQuick{z-index:850!important}
.cloud-card h4 { margin:0; font-size:13px; color:#274d7a; }
.cloud-card input,.cloud-card select { box-sizing:border-box; width:100%; padding:9px 10px; border:1px solid #cbd6e2; border-radius:8px; }
.cloud-actions { display:flex; gap:8px; flex-wrap:wrap; }
.cloud-actions button,.cloud-card>button { flex:1; min-width:105px; padding:9px; border:0; border-radius:8px; cursor:pointer; background:#e7edf5; color:#264b76; font-weight:600; }
.cloud-actions .primary { background:#315b91; color:#fff; } .cloud-actions .danger { background:#fff0f0; color:#a33b3b; }
.cloud-status { padding:9px 10px; border-radius:8px; background:#eaf1f8; color:#315b91; font-size:11px; line-height:1.35; }
.cloud-status.error { background:#fff0f0; color:#a33b3b; } .cloud-status.success { background:#eaf7ef; color:#277345; }
.cloud-user { font-size:12px; color:#536579; overflow-wrap:anywhere; }
.account-data-card{gap:12px}.account-data-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.account-data-heading p{margin:3px 0 0;color:#66768a;font-size:11px;line-height:1.35}.account-data-heading button{flex:0 0 auto!important;min-width:auto!important;padding:7px 10px!important}.account-data-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.account-data-stat{padding:9px 6px;text-align:center;background:#f2f6fb;border:1px solid #dfe8f2;border-radius:9px}.account-data-stat strong{display:block;color:#183b67;font-size:17px}.account-data-stat span{display:block;margin-top:2px;color:#65768a;font-size:9px;line-height:1.15}.account-storage-meter>div{height:7px;overflow:hidden;background:#e4eaf1;border-radius:999px}.account-storage-meter>div span{display:block;height:100%;width:0;background:linear-gradient(90deg,#2b7ed1,#36a36d);border-radius:inherit}.account-storage-meter small{display:block;margin-top:5px;color:#617286}.account-data-filters{display:grid;grid-template-columns:1fr 125px;gap:7px}.account-data-list{display:grid;gap:8px;max-height:340px;overflow:auto;padding-right:2px}.account-data-item{display:grid;grid-template-columns:38px minmax(0,1fr);gap:9px;align-items:center;padding:9px;background:#f8fafc;border:1px solid #e0e7ef;border-radius:10px}.account-data-item-thumb{display:grid;place-items:center;width:38px;height:38px;overflow:hidden;border-radius:8px;background:#e7eef7;color:#315b91;font-size:18px}.account-data-item-thumb img{width:100%;height:100%;object-fit:cover}.account-data-item-main{min-width:0}.account-data-item-main strong,.account-data-item-main small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-data-item-main strong{color:#294b72;font-size:11px}.account-data-item-main small{margin-top:3px;color:#718094;font-size:9px}.account-data-badge{display:inline-block;margin-top:5px;padding:2px 6px;border-radius:999px;background:#e8f1fb;color:#245b92;font-size:8px;font-weight:800;text-transform:uppercase}.account-data-empty{margin:0;padding:18px 10px;text-align:center;color:#718094;font-size:11px;background:#f8fafc;border:1px dashed #cfd9e5;border-radius:9px}.account-data-error{color:#a33b3b}.account-data-item[data-media-key]{cursor:pointer}.account-data-item[data-media-key]:hover{border-color:#75a6d8;background:#f2f7fd}
.account-storage-toggle{display:flex;align-items:center;gap:10px;width:100%;padding:11px 12px;border:1px solid #d8e4e0;border-radius:10px;background:#fff;color:#315349;cursor:pointer;text-align:left}.account-storage-toggle[hidden]{display:none}.account-storage-toggle img{width:21px;height:21px;padding:7px;border-radius:8px;background:#e7f2ee}.account-storage-toggle span{min-width:0;flex:1}.account-storage-toggle strong,.account-storage-toggle small{display:block}.account-storage-toggle strong{font-size:12px}.account-storage-toggle small{margin-top:2px;color:#71817c;font-size:9px}.account-storage-toggle b{font-size:22px;font-weight:400}.account-storage-card{display:none;padding:0!important;overflow:hidden}.account-storage-heading{display:flex;align-items:center;gap:9px;padding:11px 12px;background:#e9f3ef}.account-storage-heading>img{width:20px;height:20px}.account-storage-heading>div{min-width:0;flex:1}.account-storage-heading h4,.account-storage-heading p{margin:0}.account-storage-heading p{margin-top:2px;color:#667b74;font-size:9px}.account-storage-heading button{min-width:30px!important;flex:0 0 30px!important;padding:3px!important;background:transparent!important;color:#45645b!important;font-size:20px}.account-storage-card .storage-summary{padding:9px;border-radius:0}.account-storage-card .storage-section{margin:0;padding:10px;border-width:1px 0 0;border-radius:0}.account-storage-card .storage-status{padding:9px 11px}.account-storage-card .storage-confirm{margin:0;border-width:1px 0 0;border-radius:0}
@media (max-width:520px) { .cloud-menu { position:fixed; left:10px; right:10px; top:max(62px,calc(env(safe-area-inset-top) + 54px)); bottom:calc(78px + env(safe-area-inset-bottom)); z-index:10020; box-sizing:border-box; width:auto; max-height:none; overscroll-behavior:contain; scroll-padding-bottom:18px; } .cloud-body{padding-bottom:20px}.account-storage-toggle{position:relative;z-index:1;min-height:58px;flex:0 0 auto}.account-storage-card{margin-bottom:8px} }
@media(max-width:520px){.account-data-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.account-data-filters{grid-template-columns:1fr}.account-data-list{max-height:38vh}}
.chat-notification-settings{display:grid;grid-template-columns:1fr 1fr;gap:7px;padding:10px 12px;border-bottom:1px solid #d8e3e0;background:#fff}.chat-notification-settings[hidden]{display:none}.chat-notification-settings h4{grid-column:1/-1;margin:0;color:#28574e;font-size:11px}.chat-notification-option{display:flex;align-items:center;gap:7px;padding:8px;border-radius:9px;background:#eff5f3;color:#496c65;font-size:10px;cursor:pointer}.chat-notification-option input{accent-color:#087c66}.chat-notification-help{grid-column:1/-1;color:#778c87;font-size:8px}
.sketch-menu{position:absolute;right:78px;bottom:20px;z-index:1100;display:none;width:370px;max-height:calc(100vh - 40px);overflow:auto;border-radius:16px;background:#f7f8f8;box-shadow:0 14px 42px rgba(29,50,45,.3)}.sketch-header{position:sticky;top:0;z-index:2;display:flex;align-items:center;gap:10px;padding:13px 14px;background:linear-gradient(135deg,#a84f18,#71330f);color:#fff}.sketch-header-copy{min-width:0;flex:1}.sketch-header h3,.sketch-header p{margin:0}.sketch-header p{margin-top:3px;font-size:9px;opacity:.85}.sketch-close{width:32px;height:32px;border:0;border-radius:50%;background:#ffffff22;color:#fff;font-size:20px;cursor:pointer}.sketch-body{display:grid;gap:10px;padding:12px}.sketch-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.sketch-summary div{padding:8px;border-radius:9px;background:#fff;text-align:center}.sketch-summary strong{display:block;color:#a84f18;font-size:16px}.sketch-summary span{font-size:8px;color:#75827f}.sketch-tools{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.sketch-tools button,.sketch-actions button,.sketch-item button{border:0;border-radius:9px;background:#e8eceb;color:#49645e;cursor:pointer;font-weight:700}.sketch-tools button{padding:9px 5px;font-size:9px}.sketch-tools button.active{background:#a84f18;color:#fff}.sketch-field{display:grid;gap:5px;color:#5c706c;font-size:9px}.sketch-field input,.sketch-field textarea,.sketch-field select{box-sizing:border-box;width:100%;padding:9px;border:1px solid #ced9d6;border-radius:8px;background:#fff}.sketch-field textarea{min-height:60px;resize:vertical}.sketch-color-row{display:grid;grid-template-columns:1fr 64px;gap:7px}.sketch-color-row input[type=color]{height:36px;padding:3px}.sketch-status{padding:8px;border-radius:8px;background:#fff3de;color:#85511e;font-size:9px}.sketch-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.sketch-actions button{padding:8px;font-size:9px}.sketch-actions .danger{background:#fee9e7;color:#a52d25}.sketch-list{display:grid;gap:6px}.sketch-item{display:grid;grid-template-columns:24px minmax(0,1fr) auto;gap:7px;align-items:center;padding:8px;border:1px solid #dbe2e0;border-radius:9px;background:#fff}.sketch-item-copy{min-width:0}.sketch-item strong,.sketch-item small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sketch-item strong{font-size:10px;color:#3b5650}.sketch-item small{margin-top:2px;font-size:8px;color:#82908d}.sketch-item-buttons{display:flex;gap:3px}.sketch-item button{padding:5px}.sketch-empty{padding:14px;text-align:center;color:#7a8986;font-size:9px}.sketch-hint{font-size:8px;color:#7c8d89}.sketch-marker{display:grid;place-items:center;width:26px;height:26px;border:3px solid #fff;border-radius:50%;box-shadow:0 2px 7px #0008;color:#fff;font-size:12px;cursor:pointer}.sketch-marker.maintenance{border-radius:7px}.sketch-visibility{display:flex;align-items:center;justify-content:space-between;padding:8px;border-radius:9px;background:#fff;color:#4d6761;font-size:10px}
.sketch-palette{padding:9px;border:1px solid #d8e1df;border-radius:13px;background:#fff;box-shadow:0 4px 14px #28433c12}.sketch-palette-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:7px;color:#49645e;font-size:9px;font-weight:800}.sketch-tools{grid-template-columns:repeat(7,1fr)}.sketch-tools button{display:grid;place-items:center;gap:3px;min-height:58px;padding:7px 3px;font-size:8px;line-height:1.1}.sketch-tools button span{font-size:19px}.sketch-tools button.active{box-shadow:0 0 0 3px #f1c3a5}.sketch-tool-details[hidden]{display:none}.sketch-measure-result{display:none;padding:10px;border-radius:10px;background:#e9f3ff;color:#14558f;text-align:center;font-size:11px;font-weight:800}.sketch-measure-result.visible{display:block}.sketch-status{padding:10px;font-size:10px;line-height:1.35}.sketch-visibility{border:1px solid #d5e0dd}.sketch-visibility input{width:20px;height:20px;accent-color:#a84f18}.sketch-visibility small{color:#7b8c88}.sketch-popup p{margin:6px 0;white-space:pre-wrap}.sketch-popup img{cursor:pointer}.sketch-photo-upload{padding:10px}.sketch-collapse{width:34px;height:34px;border:0;border-radius:9px;background:#ffffff26;color:#fff;font-size:18px;cursor:pointer}.sketch-menu.compact{width:min(700px,calc(100vw - 24px));max-height:none;overflow:visible}.sketch-menu.compact .sketch-header{padding:6px 9px}.sketch-menu.compact .sketch-header-copy p,.sketch-menu.compact .sketch-summary,.sketch-menu.compact .sketch-field,.sketch-menu.compact .sketch-tool-details,.sketch-menu.compact .sketch-color-row,.sketch-menu.compact .sketch-visibility,.sketch-menu.compact #sketchViewFilter,.sketch-menu.compact .sketch-management-actions,.sketch-menu.compact .sketch-list,.sketch-menu.compact .sketch-body>.sketch-hint{display:none!important}.sketch-menu.compact .sketch-body{gap:6px;padding:7px}.sketch-menu.compact .sketch-palette{padding:5px}.sketch-menu.compact .sketch-palette-title{display:none}.sketch-menu.compact .sketch-tools button{min-height:48px}.sketch-menu.compact .sketch-status{padding:6px 9px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sketch-menu.compact .sketch-draw-actions{grid-template-columns:repeat(4,1fr)}
.sketch-nav{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.sketch-nav button{padding:10px 5px;border:0;border-radius:9px;background:#e8eceb;color:#49645e;font-size:9px;font-weight:800;cursor:pointer}.sketch-nav button.active{background:#a84f18;color:#fff}.sketch-section[hidden]{display:none}.sketch-section{display:grid;gap:10px}.sketch-quantity-color{display:grid;grid-template-columns:minmax(0,1fr) 46px;gap:7px;align-items:end}.sketch-color-small input{height:36px!important;padding:3px!important}.sketch-open-croqui{padding:13px;border:0;border-radius:11px;background:linear-gradient(135deg,#2176c7,#12569a);color:#fff;font-weight:900;cursor:pointer;box-shadow:0 5px 15px #12569a33}.sketch-menu.croqui{right:78px;bottom:2px;width:min(780px,calc(100vw - 170px));max-height:none;overflow:visible;background:transparent;box-shadow:none}.sketch-menu.croqui .sketch-header{display:none}.sketch-menu.croqui .sketch-body{display:block;padding:0}.sketch-menu.croqui .sketch-nav,.sketch-menu.croqui .sketch-section:not(#sketchSectionCroqui),.sketch-menu.croqui .sketch-open-croqui,.sketch-menu.croqui .sketch-draw-actions{display:none!important}.sketch-menu.croqui #sketchSectionCroqui{display:block!important}.sketch-menu.croqui .sketch-palette{position:relative;padding:6px 44px 5px 6px;border:1px solid #cbd8d5;border-radius:14px;box-shadow:0 9px 30px #173d3555}.sketch-menu.croqui .sketch-palette-title{display:none}.sketch-menu.croqui .sketch-tools{display:flex;gap:5px;overflow-x:auto}.sketch-menu.croqui .sketch-tools button{flex:0 0 52px;min-height:48px;padding:4px 2px;font-size:7px}.sketch-menu.croqui .sketch-tools button span{font-size:17px}.sketch-croqui-close{position:absolute;right:8px;top:8px;z-index:2;width:32px;height:32px;border:0;border-radius:9px;background:#b52b2b;color:#fff;font-size:20px;cursor:pointer}.sketch-croqui-options{display:flex;align-items:center;gap:6px;margin-top:4px}.sketch-croqui-options label{display:flex;align-items:center;gap:4px;color:#526d67;font-size:8px}.sketch-croqui-options input[type=color]{width:30px;height:26px;padding:1px;border:1px solid #cbd8d5;border-radius:6px}.sketch-croqui-options select{padding:5px;border:1px solid #cbd8d5;border-radius:6px;font-size:8px}.sketch-croqui-options .sketch-status{flex:1;padding:5px 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sketch-croqui-options button{padding:6px 8px;border:0;border-radius:7px;background:#e7edeb;color:#3f625b;font-size:8px;font-weight:800;cursor:pointer}
@media(max-width:768px){#btnChatQuick{position:fixed;right:17px;bottom:calc(139px + env(safe-area-inset-bottom));z-index:9011}.chat-quick-toast{right:52px;width:min(210px,calc(100vw - 92px))}.chat-notification-settings{grid-template-columns:1fr 1fr}#btnSketchQuick{position:fixed;right:17px;bottom:calc(193px + env(safe-area-inset-bottom));z-index:9012}.sketch-menu{position:fixed;right:8px;left:8px;bottom:8px;z-index:10045;width:auto;max-height:min(78dvh,680px);border-radius:16px}.sketch-tools{grid-template-columns:repeat(4,1fr)}.sketch-tools button{min-height:52px;font-size:8px}.sketch-tools button span{font-size:18px}.sketch-menu.compact{right:6px;left:6px;bottom:calc(6px + env(safe-area-inset-bottom));width:auto}.sketch-menu.compact .sketch-header-copy h3{font-size:12px}.sketch-menu.compact .sketch-tools{display:flex;overflow-x:auto;scrollbar-width:thin}.sketch-menu.compact .sketch-tools button{flex:0 0 49px;min-height:45px;padding:4px 1px;font-size:6px}.sketch-menu.compact .sketch-tools button span{font-size:16px}.sketch-menu.compact .sketch-draw-actions button{padding:7px 2px;font-size:7px}.sketch-menu.croqui{right:4px;left:4px;bottom:env(safe-area-inset-bottom);width:auto}.sketch-menu.croqui .sketch-tools button{flex-basis:48px}.sketch-croqui-options{flex-wrap:wrap}.sketch-croqui-options .sketch-status{order:2;flex-basis:100%}.sketch-menu.croqui .network-workspace-note,.sketch-menu.croqui .network-workspace-steps,.sketch-menu.croqui .network-workspace-head small{display:none}.sketch-menu.croqui .network-workspace-head{display:block;padding:5px 7px}.sketch-menu.croqui:has(#networkDrawPanel:not([hidden])) .network-text-tool{display:none}.sketch-menu.croqui .network-draw-panel{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end}.sketch-menu.croqui .network-phase-key{padding-bottom:7px}}
.file-admin-menu{position:absolute;inset:20px 20px 20px 80px;z-index:1200;display:none;grid-template-rows:auto auto auto 1fr;background:#f3f6f9;border-radius:16px;box-shadow:0 18px 55px #102b3f55;overflow:hidden}.file-admin-header{display:flex;align-items:center;gap:12px;padding:15px 18px;background:linear-gradient(135deg,#164a86,#2877c7);color:#fff}.file-admin-header div{flex:1}.file-admin-header h3,.file-admin-header p{margin:0}.file-admin-header p{font-size:10px;opacity:.85}.file-admin-header button{width:34px;height:34px;border:0;border-radius:50%;background:#ffffff22;color:#fff;font-size:21px}.file-admin-upload,.file-admin-toolbar{display:grid;grid-template-columns:2fr repeat(4,1fr);gap:8px;padding:12px;background:#fff;border-bottom:1px solid #d9e3ec}.file-admin-upload input,.file-admin-toolbar input,.file-admin-toolbar select{box-sizing:border-box;padding:9px;border:1px solid #c9d6e2;border-radius:8px}.file-admin-upload label{grid-column:1/-1;padding:12px;border:2px dashed #88acd2;border-radius:10px;background:#edf5ff;color:#245c96;text-align:center;font-weight:800;cursor:pointer}.file-admin-upload label input{display:none}.file-admin-upload button,.file-admin-toolbar button{padding:9px 14px;border:0;border-radius:8px;background:#2877c7;color:#fff;font-weight:800}.file-admin-status{grid-column:1/-1;color:#526b81;font-size:10px}.file-admin-summary{grid-column:1/-1;display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.file-admin-metric{padding:8px;border-radius:9px;background:#eef5fb;text-align:center;color:#345a78}.file-admin-metric strong{display:block;font-size:16px}.file-admin-bulk{grid-column:1/-1;display:flex;gap:7px;align-items:center;flex-wrap:wrap}.file-admin-bulk .secondary{background:#e7eef5;color:#315d86}.file-admin-bulk .danger{background:#b72c2c;color:#fff}.file-admin-list{display:grid;align-content:start;gap:8px;padding:12px;overflow:auto}.file-admin-card{display:grid;grid-template-columns:auto minmax(150px,1.5fr) minmax(100px,1fr) auto auto;gap:7px;align-items:center;padding:10px;border:1px solid #d8e2eb;border-radius:10px;background:#fff}.file-admin-card.selected{border-color:#2877c7;box-shadow:0 0 0 2px #2877c722}.file-admin-card input[type=text]{box-sizing:border-box;width:100%;padding:8px;border:1px solid #cbd7e1;border-radius:7px}.file-admin-card small{grid-column:2/-1;color:#748696;display:flex;gap:8px;align-items:center;flex-wrap:wrap}.file-admin-badge{padding:3px 7px;border-radius:999px;background:#e4f4e8;color:#23743a;font-weight:800}.file-admin-card.inactive .file-admin-badge{background:#edf0f3;color:#687987}.file-admin-card button{padding:8px;border:0;border-radius:7px;background:#e5edf5;color:#315d86;font-weight:800}.file-admin-card .danger{background:#feeaea;color:#a32e2e}.file-admin-card.inactive{opacity:.68}@media(max-width:700px){.file-admin-menu{position:fixed;inset:0;border-radius:0}.file-admin-upload,.file-admin-toolbar{grid-template-columns:1fr 1fr}.file-admin-upload label,.file-admin-status,.file-admin-summary,.file-admin-bulk{grid-column:1/-1}.file-admin-summary{grid-template-columns:1fr 1fr}.file-admin-card{grid-template-columns:auto 1fr 1fr}.file-admin-card input[data-file-display]{grid-column:2/-1}.file-admin-card small{grid-column:2/-1}.file-admin-card button{min-height:42px}}
.admin-settings select{box-sizing:border-box;width:100%;padding:9px;border:1px solid #cbd6e2;border-radius:8px;background:#fff}.admin-settings-section{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);gap:9px;padding:13px;border:1px solid #d9e1ea;border-radius:12px;background:#f8fafc}.admin-settings-section h4,.admin-settings-section>p{grid-column:1/-1;margin:0}.admin-settings-section>p{color:#708194;font-size:10px}.notice-admin-actions{grid-column:1/-1;display:flex;gap:8px}.notice-admin-actions button{flex:1;padding:10px;border:0;border-radius:9px;background:#e8edf4;color:#3c5873;font-weight:800}.notice-admin-actions .primary{background:#6f3c91;color:#fff}.system-notice-dialog{width:min(620px,calc(100vw - 24px));padding:0;border:0;border-radius:22px;background:transparent;box-shadow:0 26px 90px #0b1c2e77}.system-notice-dialog::backdrop{background:#10203099;backdrop-filter:blur(4px)}.system-notice-card{overflow:hidden;border-radius:22px;background:#fff}.system-notice-accent{height:8px;background:#2877c7}.system-notice-card.attention .system-notice-accent{background:#ef8b16}.system-notice-card.urgent .system-notice-accent{background:#c62828}.system-notice-content{padding:24px}.system-notice-icon{display:grid;place-items:center;width:54px;height:54px;margin-bottom:12px;border-radius:16px;background:#e8f2ff;font-size:28px}.system-notice-card.attention .system-notice-icon{background:#fff1dd}.system-notice-card.urgent .system-notice-icon{background:#ffe5e5}.system-notice-content h2{margin:0;color:#243b53;font-size:24px}.system-notice-content .notice-period{margin:5px 0 15px;color:#74869a;font-size:10px}.system-notice-message{max-height:40vh;overflow:auto;color:#435a70;font-size:15px;line-height:1.55;white-space:pre-wrap}.system-notice-progress{height:4px;margin-top:18px;overflow:hidden;border-radius:4px;background:#e6edf3}.system-notice-progress span{display:block;width:100%;height:100%;background:#2877c7;transform-origin:left}.system-notice-actions{display:flex;justify-content:flex-end;gap:8px;padding:14px 24px 22px}.system-notice-actions button,.system-notice-actions a{padding:10px 16px;border:0;border-radius:10px;background:#e8edf3;color:#3f5870;text-decoration:none;font-weight:800}.system-notice-actions .primary{background:#2877c7;color:#fff}@media(max-width:760px){.admin-settings-section{grid-template-columns:1fr 1fr}.system-notice-content{padding:19px}.system-notice-content h2{font-size:20px}.system-notice-actions{padding:12px 19px 19px;flex-wrap:wrap}}@media(max-width:430px){.admin-settings-section{grid-template-columns:1fr}.notice-admin-actions{flex-direction:column}.system-notice-actions>*{flex:1;text-align:center}}
.operational-guide{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.operational-guide button{padding:10px;border:1px solid #d7e0e9;border-radius:10px;background:#fff;color:#405b73;text-align:left;cursor:pointer}.operational-guide button strong,.operational-guide button small{display:block}.operational-guide button small{margin-top:3px;color:#7b8b99;font-size:8px}.operational-summary{grid-column:1/-1;padding:11px;border-radius:10px;background:#edf5ff;color:#345a78;font-size:10px;line-height:1.55}.operational-summary strong{display:block;margin-bottom:3px;font-size:12px}.admin-setting-hint{display:block;color:#82909d;font-size:8px;font-weight:400;line-height:1.35}.operational-group-title{grid-column:1/-1;margin:4px 0 -2px;padding-top:8px;border-top:1px solid #e0e6ed;color:#405971;font-size:11px}.operational-group-title:first-of-type{border-top:0}@media(max-width:600px){.operational-guide{grid-template-columns:1fr}.operational-guide button{text-align:center}}
.sketch-text-box{box-sizing:border-box;width:170px;padding:7px 9px;border:1px solid #b9cbc7;border-radius:7px;font-size:9px}.sketch-text-box[hidden]{display:none}.sketch-croqui-options .primary{background:#176fc1;color:#fff}.sketch-marker.utility-drawing{width:32px!important;height:32px!important;padding:0!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;color:#d94f12;filter:drop-shadow(0 1px 1px #fff) drop-shadow(0 1px 2px #0005);overflow:visible}.sketch-marker.utility-drawing svg{display:block;width:32px;height:32px;stroke-width:1.7}.sketch-marker.utility-text{width:auto!important;max-width:none!important;height:auto!important;padding:0!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;color:#263238;font-size:9px!important;font-weight:800!important;line-height:1.15;text-align:left;white-space:normal;filter:none!important;overflow:visible!important}.sketch-marker.utility-text span{box-sizing:border-box;display:block;width:max-content;min-width:0;max-width:110px;padding:0;border:0;background:transparent;box-shadow:none;font-size:9px;line-height:1.15;white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;text-shadow:0 1px 1px #fff,0 0 3px #fff;transform-origin:center center}.sketch-marker.utility-selected{filter:drop-shadow(0 0 2px #fff) drop-shadow(0 0 5px #1683ed)!important}.sketch-selected-tools{display:flex;align-items:center;gap:5px;flex-basis:100%;padding:6px;border-radius:8px;background:#e8f2fc}.sketch-selected-tools[hidden]{display:none}.sketch-selected-tools strong{flex:1;color:#285d8f;font-size:9px}.sketch-selected-tools button{background:#fff;color:#285d8f}.sketch-selected-tools .danger{background:#fee7e7;color:#a52d25}
.sketch-tool-group{display:flex;gap:4px;margin-bottom:6px;overflow-x:auto}.sketch-tool-group button{flex:0 0 auto;padding:5px 8px;border:0;border-radius:999px;background:#e6ecea;color:#47635d;font-size:8px;font-weight:800;cursor:pointer}.sketch-tool-group button.active{background:#176fc1;color:#fff}.sketch-tools button.tool-filtered{display:none!important}.sketch-technical-fields{display:grid;grid-template-columns:repeat(3,minmax(90px,1fr));gap:5px;flex-basis:100%}.sketch-technical-fields[hidden]{display:none}.sketch-technical-fields input{box-sizing:border-box;width:100%;padding:6px;border:1px solid #b9cbc7;border-radius:6px;font-size:8px}.sketch-auto-legend{position:absolute;left:10px;bottom:38px;z-index:25;min-width:120px;max-width:210px;padding:8px;border:1px solid #cad8d4;border-radius:9px;background:rgba(255,255,255,.88);box-shadow:0 3px 12px #203c3555;color:#36544d;font-size:8px;pointer-events:none;backdrop-filter:blur(3px)}.sketch-auto-legend strong{display:block;margin-bottom:4px;color:#244a42}.sketch-auto-legend span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sketch-auto-legend[hidden]{display:none}@media(max-width:600px){.sketch-technical-fields{grid-template-columns:1fr 1fr}.sketch-auto-legend{bottom:28px;max-width:155px}}
.network-draw-panel{display:flex;align-items:center;gap:5px;flex:1 0 100%;padding:6px;border:1px solid #bfd0cc;border-radius:9px;background:#eef6f4}.network-draw-panel[hidden]{display:none}.network-draw-panel label{display:grid;gap:2px;min-width:150px;color:#395b53;font-size:7px;font-weight:800}.network-draw-panel select{padding:6px;border:1px solid #b8cbc6;border-radius:6px;background:#fff;color:#264b42;font-size:8px}.network-phase-key{display:flex;align-items:center;gap:5px;font-size:7px;color:#526d67}.network-phase-key i{display:inline-block;width:16px;height:1px}.network-mode-button span svg{stroke-width:1.35}.sketch-marker.network-asset{box-sizing:border-box;width:25px!important;height:25px!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;color:#172f2a!important}.sketch-marker.network-asset svg{width:25px;height:25px;overflow:visible;filter:drop-shadow(0 1px 1px #fff) drop-shadow(0 1px 2px #0005)}
.sketch-side-rail{position:absolute;left:10px;top:50%;z-index:10046;display:none;transform:translateY(-50%);padding:5px;border:1px solid #bfd0cc;border-radius:13px;background:rgba(255,255,255,.9);box-shadow:0 5px 18px #173d3540;backdrop-filter:blur(8px)}.sketch-side-rail.show{display:grid;gap:4px}.sketch-side-rail button{position:relative;display:grid;place-items:center;width:46px;height:43px;padding:3px;border:0;border-radius:9px;background:#edf3f2;color:#34574f;font-size:7px;font-weight:900;line-height:1.05;cursor:pointer}.sketch-side-rail button span{display:block;font-size:17px}.sketch-side-rail button:hover,.sketch-side-rail button.active{background:#176fc1;color:#fff}.sketch-side-rail button:disabled{opacity:.38;cursor:not-allowed}.sketch-side-text{position:absolute;left:58px;top:0;width:min(230px,calc(100vw - 82px));padding:8px;border:1px solid #b8cbc6;border-radius:11px;background:rgba(255,255,255,.96);box-shadow:0 5px 18px #173d3540}.sketch-side-text[hidden]{display:none}.sketch-side-text textarea{box-sizing:border-box;width:100%;min-height:58px;padding:7px;border:1px solid #b8cbc6;border-radius:7px;font:10px/1.3 inherit;resize:vertical}.sketch-side-text-actions{display:grid;grid-template-columns:1fr auto;gap:5px;margin-top:5px}.sketch-side-text-actions button{width:auto;height:30px;padding:5px 9px;font-size:8px}.sketch-side-text-actions .primary{background:#176fc1;color:#fff}.sketch-dimension-field{display:grid;gap:2px;min-width:105px;color:#315d83;font-size:7px;font-weight:900}.sketch-dimension-field[hidden]{display:none}.sketch-dimension-field input{box-sizing:border-box;width:105px;padding:6px;border:1px solid #9fbdd7;border-radius:6px;background:#fff;color:#174f7e;font-size:9px;font-weight:900}
.croqui-workspace-tabs{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin-bottom:7px}.croqui-workspace-tabs button{padding:8px;border:1px solid #c8d7d3;border-radius:9px;background:#edf2f1;color:#42615a;font-size:9px;font-weight:900;cursor:pointer}.croqui-workspace-tabs button.active{border-color:#176fc1;background:#176fc1;color:#fff;box-shadow:0 3px 9px #176fc133}.sketch-menu .sketch-tool-group[hidden],.sketch-menu .sketch-tools[hidden]{display:none!important}.network-workspace{display:grid;gap:7px}.network-workspace[hidden]{display:none!important}.network-workspace-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;padding:8px;border-radius:9px;background:#eaf4ff;color:#214e76}.network-workspace-head strong,.network-workspace-head small{display:block}.network-workspace-head small{margin-top:2px;font-size:7px}.network-workspace-steps{display:flex;gap:4px;flex-wrap:wrap}.network-workspace-steps span{padding:3px 6px;border-radius:999px;background:#fff;color:#52706a;font-size:7px;font-weight:800}.network-type-tools{display:grid;grid-template-columns:1fr 1fr;gap:6px}.network-type-tools button{display:flex;align-items:center;justify-content:center;gap:7px;min-height:48px;padding:7px;border:1px solid #c7d4d1;border-radius:10px;background:#f3f6f5;color:#34584f;font-size:9px;font-weight:900;cursor:pointer}.network-type-tools button span{display:grid;place-items:center;width:28px;height:28px}.network-type-tools button svg{width:28px;height:28px;fill:none;stroke:currentColor;stroke-width:1.5}.network-type-tools button.active{border-color:#a84f18;background:#fff0e7;color:#913f10;box-shadow:0 0 0 2px #efbf9f}.network-workspace .network-draw-panel{margin:0}.network-text-tool{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px;padding:6px;border:1px solid #d2dcda;border-radius:9px;background:#fff}.network-text-tool textarea{box-sizing:border-box;min-width:0;min-height:42px;padding:7px;border:1px solid #bdcdca;border-radius:6px;font-family:inherit;font-size:8px;line-height:1.3;resize:vertical}.network-text-tool button{padding:7px 10px;border:0;border-radius:6px;background:#315f91;color:#fff;font-size:8px;font-weight:900;cursor:pointer}.network-workspace-note{padding:7px;border-left:3px solid #176fc1;border-radius:4px;background:#f5f9fc;color:#536d67;font-size:8px;line-height:1.35}@media(max-width:600px){.croqui-workspace-tabs button{padding:7px 4px;font-size:8px}.network-workspace-head{display:grid}.network-type-tools button{min-height:44px}.network-draw-panel{align-items:stretch;flex-direction:column}.network-draw-panel label{min-width:0}.network-text-tool{grid-template-columns:1fr}.network-text-tool button{width:100%}.sketch-side-rail{left:5px;top:105px;transform:none}.sketch-side-rail button{width:42px;height:39px}.sketch-side-text{left:51px}}
@keyframes noticeCountdown{from{transform:scaleX(1)}to{transform:scaleX(0)}}
.sketch-side-rail{max-height:calc(100dvh - 24px);overflow-y:auto;scrollbar-width:thin}
@media(max-width:600px){.sketch-side-rail{max-height:calc(100dvh - 115px)}}
.weather-card{position:fixed;z-index:9050;top:86px;right:16px;width:min(350px,calc(100vw - 32px));box-sizing:border-box;overflow:hidden;border:1px solid rgba(255,255,255,.75);border-radius:19px;background:linear-gradient(155deg,rgba(255,255,255,.96),rgba(235,246,252,.92));box-shadow:0 16px 45px rgba(18,53,78,.28);color:#294b63;backdrop-filter:blur(18px) saturate(140%);-webkit-backdrop-filter:blur(18px) saturate(140%)}.weather-card[hidden]{display:none!important}.weather-card-header{display:flex;align-items:center;justify-content:space-between;padding:11px 12px;border-bottom:1px solid rgba(151,182,202,.3)}.weather-card-header>div{display:flex;align-items:center;gap:8px}.weather-card-header span strong,.weather-card-header span small{display:block}.weather-card-header span small{margin-top:2px;color:#728898;font-size:8px}.weather-card-icon{font-size:25px}.weather-card-header button{display:grid;width:29px;height:29px;place-items:center;padding:0;border:0;border-radius:9px;background:rgba(219,233,242,.8);color:#3e6177;font-size:18px;cursor:pointer}.weather-loading{padding:22px 15px;color:#587386;font-size:10px;text-align:center}.weather-content{padding:12px}.weather-now{display:flex;align-items:center;justify-content:space-between;gap:12px}.weather-now>div:first-child strong,.weather-now>div:first-child span{display:block}.weather-now>div:first-child strong{font-size:32px;line-height:1}.weather-now>div:first-child span{margin-top:4px;font-size:10px}.weather-risk{padding:7px 10px;border-radius:10px;background:#e7f4df;color:#3b722e;text-align:right}.weather-risk small,.weather-risk strong{display:block}.weather-risk small{font-size:7px}.weather-risk strong{font-size:11px}.weather-risk.moderate{background:#fff4cc;color:#876700}.weather-risk.high{background:#ffe4bd;color:#9a4d00}.weather-risk.critical{background:#f7d9df;color:#8b1730}.weather-metrics{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:11px}.weather-metrics>div{padding:8px;border-radius:10px;background:rgba(255,255,255,.72)}.weather-metrics span,.weather-metrics strong{display:block}.weather-metrics span{color:#708695;font-size:8px}.weather-metrics strong{margin-top:3px;color:#294b63;font-size:11px}.weather-hours{display:grid;grid-template-columns:repeat(5,1fr);gap:4px;margin-top:9px;overflow-x:auto}.weather-hours>div{display:grid;gap:2px;min-width:48px;padding:6px 3px;border-radius:9px;background:rgba(214,230,240,.58);text-align:center}.weather-hours span,.weather-hours small{font-size:7px}.weather-hours b{font-size:11px}.weather-advisory{margin-top:9px;padding:8px 9px;border-left:3px solid #488db8;border-radius:6px;background:rgba(231,242,249,.8);font-size:8px;line-height:1.35}.weather-source{display:block;margin-top:8px;color:#80909b;font-size:7px;line-height:1.3}.menu-glyph.weather{filter:saturate(.9)}
@media(max-width:768px){.weather-card{top:78px;right:8px;width:min(330px,calc(100vw - 16px));max-height:calc(100dvh - 154px);overflow:auto;z-index:9040}.weather-hours{grid-template-columns:repeat(5,minmax(48px,1fr))}}
.weather-card{width:min(278px,calc(100vw - 24px));border-color:rgba(255,255,255,.48);border-radius:15px;background:linear-gradient(150deg,rgba(255,255,255,.76),rgba(221,239,248,.62));box-shadow:0 10px 28px rgba(18,53,78,.2);backdrop-filter:blur(14px) saturate(135%);-webkit-backdrop-filter:blur(14px) saturate(135%)}.weather-card-header{padding:7px 8px}.weather-card-icon{font-size:19px}.weather-card-header span strong{font-size:10px}.weather-card-header span small{font-size:7px}.weather-card-header button{width:24px;height:24px;border-radius:7px;background:rgba(224,236,243,.58);font-size:15px}.weather-loading{padding:15px 10px;font-size:8px}.weather-content{padding:8px}.weather-now>div:first-child strong{font-size:24px}.weather-now>div:first-child span{margin-top:2px;font-size:8px}.weather-risk{padding:5px 7px;border-radius:8px}.weather-risk small{font-size:6px}.weather-risk strong{font-size:9px}.weather-metrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:3px;margin-top:7px}.weather-metrics>div{min-width:0;padding:5px 3px;border-radius:7px;text-align:center}.weather-metrics span{overflow:hidden;font-size:6px;text-overflow:ellipsis;white-space:nowrap}.weather-metrics strong{margin-top:2px;font-size:8px;white-space:nowrap}.weather-hours{gap:3px;margin-top:6px}.weather-hours>div{min-width:39px;padding:4px 2px;border-radius:7px}.weather-hours span,.weather-hours small{font-size:6px}.weather-hours b{font-size:9px}.weather-advisory{margin-top:6px;padding:5px 6px;border-left-width:2px;font-size:7px}.weather-source{margin-top:5px;font-size:6px}@media(max-width:768px){.weather-card{top:74px;right:7px;width:min(270px,calc(100vw - 14px));max-height:calc(100dvh - 148px)}.weather-hours{grid-template-columns:repeat(5,minmax(39px,1fr))}}
.sketch-marker.utility-drawing .utility-asset-label{position:absolute;left:50%;top:30px;display:block;max-width:110px;padding:2px 5px;border:1px solid #b9c8c5;border-radius:4px;background:rgba(255,255,255,.92);box-shadow:0 1px 3px #0003;color:#203d37;font-size:8px;font-weight:900;line-height:1.15;text-align:center;white-space:pre-wrap;overflow-wrap:anywhere;transform:translateX(-50%);pointer-events:none}
.sketch-marker.utility-text{width:auto!important;max-width:none!important;height:auto!important;padding:0!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;filter:none!important;overflow:visible!important;pointer-events:auto!important}
.sketch-marker.utility-text .utility-text-box{box-sizing:border-box;display:inline-block;width:max-content;max-width:min(320px,80vw);white-space:pre-wrap;word-break:break-word;overflow-wrap:anywhere;line-height:1.28;font-family:inherit;font-weight:800;transform-origin:center center;transition:transform .15s ease}
.sketch-marker.utility-text .utility-text-box.box-card{padding:6px 10px;border:1px solid rgba(23,61,53,.22);border-radius:8px;background:rgba(255,255,255,.94);box-shadow:0 3px 10px rgba(0,5,10,.25);backdrop-filter:blur(4px)}
.sketch-marker.utility-text .utility-text-box.box-transparent{padding:2px 4px;background:transparent;text-shadow:0 1px 2px #fff,0 -1px 2px #fff,1px 0 2px #fff,-1px 0 2px #fff,0 2px 5px rgba(0,0,0,.5)}
.sketch-marker.utility-text .utility-text-box.box-yellow{padding:6px 10px;border:1px solid #d9a000;border-radius:8px;background:#fff8d6;color:#5c4300!important;box-shadow:0 3px 10px rgba(0,5,10,.22)}
.sketch-marker.utility-text .utility-text-box.box-blue{padding:6px 10px;border:1px solid #0f4c82;border-radius:8px;background:#176fc1;color:#fff!important;box-shadow:0 3px 10px rgba(23,111,193,.35)}
.sketch-marker.utility-selected .utility-text-box{outline:2px solid #1683ed;outline-offset:2px;box-shadow:0 0 12px #1683ed88!important}
.sketch-selected-tools{flex-wrap:wrap}
.sketch-text-dialog{position:fixed;inset:0;z-index:10060;display:grid;place-items:center;padding:16px;background:rgba(0,0,0,.48);backdrop-filter:blur(4px)}.sketch-text-dialog[hidden]{display:none!important}.sketch-text-dialog-card{width:min(420px,calc(100vw - 28px));padding:18px;border-radius:16px;background:#fff;box-shadow:0 12px 35px #00000050;border:1px solid #c2d4d0;display:flex;flex-direction:column;gap:12px;animation:textDialogPop .2s cubic-bezier(.175,.885,.32,1.275)}@keyframes textDialogPop{from{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}.sketch-text-dialog-header{display:flex;align-items:center;justify-content:space-between}.sketch-text-dialog-header h4{margin:0;color:#174f7e;font-size:15px;font-weight:800;display:flex;align-items:center;gap:6px}.sketch-text-dialog-header .close-btn{width:28px;height:28px;border:0;border-radius:50%;background:#edf2f1;color:#49645e;font-size:14px;font-weight:bold;cursor:pointer}.sketch-text-dialog-body{display:flex;flex-direction:column;gap:10px}.sketch-text-dialog-body label{color:#3b5a53;font-size:11px;font-weight:800}.sketch-text-dialog-body textarea{box-sizing:border-box;width:100%;min-height:75px;padding:10px;border:1px solid #b8cbc6;border-radius:9px;font-family:inherit;font-size:13px;line-height:1.4;resize:vertical;outline:0}.sketch-text-dialog-body textarea:focus{border-color:#176fc1;box-shadow:0 0 0 3px #176fc12e}.sketch-text-dialog-row{display:flex;gap:10px;align-items:flex-end}.sketch-dialog-field{display:flex;flex-direction:column;gap:5px;flex:1}.sketch-dialog-field select{padding:8px;border:1px solid #b8cbc6;border-radius:8px;background:#fff;color:#173d35;font-size:11px;font-weight:700}.sketch-size-buttons{display:flex;gap:4px}.sketch-size-buttons button{flex:1;padding:7px 4px;border:1px solid #c2d4d0;border-radius:7px;background:#edf2f1;color:#3b5a53;font-size:10px;font-weight:800;cursor:pointer}.sketch-size-buttons button.active{border-color:#176fc1;background:#176fc1;color:#fff}.sketch-text-dialog-colors{display:flex;align-items:center;gap:8px;color:#526d67;font-size:11px;font-weight:700}.sketch-text-dialog-colors input[type=color]{width:32px;height:28px;padding:0;border:1px solid #b8cbc6;border-radius:6px;cursor:pointer;background:transparent}.sketch-text-dialog-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:4px}.sketch-text-dialog-actions button{padding:10px 14px;border:0;border-radius:9px;font-size:12px;font-weight:800;cursor:pointer}.sketch-text-dialog-actions .btn-secondary{background:#e9f2fb;color:#176fc1}.sketch-text-dialog-actions .btn-primary{background:#176fc1;color:#fff}
.sketch-text-dialog-card{box-sizing:border-box;max-height:calc(100dvh - 24px);overflow:auto}
@media(max-width:520px){.sketch-text-dialog{padding:8px}.sketch-text-dialog-card{width:calc(100vw - 16px);padding:13px}.sketch-text-dialog-row{align-items:stretch;flex-direction:column}.sketch-text-dialog-row .sketch-dialog-field{max-width:none!important}.sketch-text-dialog-actions{display:grid;grid-template-columns:1fr 1fr}.sketch-text-dialog-actions button{min-width:0;padding:10px 6px;font-size:10px}.sketch-side-rail button{line-height:1.15;white-space:normal}}

/* Central ADM: seleção e operação de usuários em lote */
.admin-user-card{grid-template-columns:auto minmax(0,1fr)}.admin-user-card.selected{border-color:#6f3c91;box-shadow:0 0 0 2px #6f3c9124;background:#fcf9ff}.admin-user-select{display:grid;place-items:start;padding-top:9px}.admin-user-select input{width:18px;height:18px;accent-color:#6f3c91}.admin-user-quick-stats{display:flex;gap:6px;overflow-x:auto;padding:2px 0 4px}.admin-user-quick-stats span{flex:0 0 auto;padding:7px 10px;border:1px solid #dce4ed;border-radius:999px;background:#fff;color:#607487;font-size:9px}.admin-user-quick-stats b{color:#63367e;font-size:11px}.admin-user-bulk{position:sticky;top:58px;z-index:3;display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:8px;border:1px solid #d7c5e2;border-radius:10px;background:#faf6fded;box-shadow:0 5px 15px #44245b18;backdrop-filter:blur(8px)}.admin-user-bulk label{display:flex;align-items:center;gap:5px;color:#4f3660;font-size:10px;font-weight:700}.admin-user-bulk select,.admin-page-size select{padding:7px;border:1px solid #cbb8d6;border-radius:7px;background:#fff}.admin-user-bulk button{padding:7px 9px;border:0;border-radius:7px;background:#6f3c91;color:#fff;font-size:9px;font-weight:700;cursor:pointer}.admin-user-bulk button.danger{background:#b83232}.admin-user-bulk button:last-child{background:#e8edf4;color:#34516f}.admin-user-bulk button:disabled{opacity:.45;cursor:not-allowed}.admin-user-bulk strong{margin-right:auto;color:#61367b;font-size:10px}.admin-page-size{display:flex;align-items:center;gap:5px;color:#64788b;font-size:9px}.admin-filter-grid .secondary{background:#e8edf4;color:#34516f}
@media(max-width:760px){.admin-menu{box-sizing:border-box}.admin-user-card{grid-template-columns:auto minmax(0,1fr)}.admin-user-bulk{top:50px;display:grid;grid-template-columns:1fr 1fr}.admin-user-bulk strong{margin:0}.admin-user-bulk select{grid-column:1/-1}.admin-user-bulk button{min-height:38px}.admin-pagination{flex-wrap:wrap}}
