/* =========================================================
   JusMaps v3.7.0 — Design System Tipográfico Global
   Padronização transversal sem alterar a arquitetura funcional.
   ========================================================= */
:root{
  --jm-font-sans:Inter,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --jm-font-mono:"SFMono-Regular",Consolas,"Liberation Mono",monospace;
  --jm-type-2xs:10px;
  --jm-type-xs:11px;
  --jm-type-sm:12px;
  --jm-type-base:13px;
  --jm-type-md:14px;
  --jm-type-lg:16px;
  --jm-type-xl:18px;
  --jm-type-2xl:22px;
  --jm-type-3xl:24px;
  --jm-leading-tight:1.2;
  --jm-leading-normal:1.4;
  --jm-leading-relaxed:1.55;
  --jm-weight-regular:400;
  --jm-weight-medium:500;
  --jm-weight-semibold:600;
  --jm-weight-bold:700;
  --jm-weight-extrabold:800;
}

/* Base tipográfica */
html,body{font-family:var(--jm-font-sans)!important;font-size:var(--jm-type-base)!important;line-height:var(--jm-leading-normal);text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
button,input,select,textarea{font-family:var(--jm-font-sans)!important}
button,.btn,input,select,textarea{font-size:var(--jm-type-base)}
input::placeholder,textarea::placeholder{font-size:var(--jm-type-base)}

/* Hierarquia global */
.page-heading h1,.page-title h1,.topbar h1{font-size:var(--jm-type-3xl)!important;line-height:var(--jm-leading-tight)!important;font-weight:var(--jm-weight-extrabold)!important;letter-spacing:-.02em}
.page-heading p,.page-title p{font-size:var(--jm-type-base)!important;line-height:var(--jm-leading-normal)!important}
.panel h2,.section h2,.workspace-head h2,.title-with-icon h2{font-size:var(--jm-type-xl)!important;line-height:1.25!important;font-weight:var(--jm-weight-bold)!important}
.panel h3,.section h3,.workspace-card h3{font-size:var(--jm-type-lg)!important;line-height:1.3!important;font-weight:var(--jm-weight-bold)!important}
.panel p,.section p,.workspace-card p{line-height:var(--jm-leading-normal)}

/* Navegação, usuário e botões */
.nav-group-label{font-size:var(--jm-type-2xs)!important;letter-spacing:.08em!important;font-weight:var(--jm-weight-extrabold)!important}
.nav-btn span{font-size:var(--jm-type-base)!important;font-weight:var(--jm-weight-semibold)!important}
.current-user strong{font-size:var(--jm-type-sm)!important;font-weight:var(--jm-weight-bold)!important}
.current-user span{font-size:var(--jm-type-xs)!important}
.btn,.action-btn,.map-control,.admin-action{font-size:var(--jm-type-sm)!important;font-weight:var(--jm-weight-bold)!important;line-height:1.15!important}

/* Formulários */
.field>span,.auth-form label>span,.fav-field>span:first-child,.history-filter-field>span{font-size:var(--jm-type-xs)!important;font-weight:var(--jm-weight-bold)!important;line-height:1.2!important}
.field input,.field select,.field textarea,.search-panel input,.search-panel select,.settings-panel input,.settings-panel select,.settings-panel textarea{font-size:var(--jm-type-base)!important;line-height:var(--jm-leading-normal)!important}

/* Tabelas: uma escala única, ainda densa */
table{font-size:var(--jm-type-sm)!important}
thead th,.admin-table th,.reports-page th,.trip-mandates-table th{font-size:var(--jm-type-xs)!important;line-height:1.25!important;font-weight:var(--jm-weight-extrabold)!important}
tbody td,.admin-table td,.reports-page td,.trip-mandates-table td{font-size:var(--jm-type-sm)!important;line-height:1.35!important}
.owner-main,.owner-cell{font-size:var(--jm-type-sm)!important}
.owner-doc,.coord-values,.map-popup-car{font-size:var(--jm-type-xs)!important}
.coords-cell,.coord-values{font-family:var(--jm-font-mono)!important}

/* Cards, indicadores e metadados */
.stat-card span,.kpi-card span,.travel-kpi small,.history-kpi small,.fav-kpi span,.reports-kpi span{font-size:var(--jm-type-xs)!important;line-height:1.25!important}
.stat-card strong,.kpi-card strong,.travel-kpi strong,.history-kpi b,.fav-kpi strong,.reports-kpi strong{font-size:var(--jm-type-2xl)!important;line-height:1.15!important;font-weight:var(--jm-weight-extrabold)!important}
.stat-card small,.kpi-card small,.travel-kpi em,.history-kpi p,.fav-kpi small{font-size:var(--jm-type-xs)!important;line-height:1.3!important}

/* Histórico */
.history-card-title h2{font-size:var(--jm-type-xl)!important}
.history-card-title p,.history-row small,.history-frequent-row small,.history-tip p{font-size:var(--jm-type-xs)!important;line-height:1.35!important}
.history-row strong,.history-frequent-row strong{font-size:var(--jm-type-sm)!important;line-height:1.3!important}
.history-count-pill,.history-type-pill{font-size:var(--jm-type-xs)!important;font-weight:var(--jm-weight-bold)!important}

/* Mapas */
.maps-explore-head h2,.map-head-copy h2{font-size:var(--jm-type-lg)!important}
.maps-explore-head p,.map-head-copy p,.maps-results-notice,.maps-empty,.map-footer{font-size:var(--jm-type-xs)!important;line-height:1.4!important}
.maps-result-copy strong,.maps-route-copy strong{font-size:var(--jm-type-sm)!important}
.maps-result-copy small,.maps-route-copy small,.workspace-popup-fields span,.workspace-popup-fields strong{font-size:var(--jm-type-xs)!important}
.leaflet-container,.leaflet-popup-content{font-family:var(--jm-font-sans)!important}
.map-popup h3{font-size:var(--jm-type-md)!important}
.map-popup-field span{font-size:var(--jm-type-2xs)!important}.map-popup-field strong,.map-popup-access{font-size:var(--jm-type-xs)!important}

/* Viagens */
.travel-list-head h2{font-size:var(--jm-type-xl)!important}
.travel-list-head p{font-size:var(--jm-type-base)!important}
.travel-card-title h3{font-size:var(--jm-type-xl)!important;line-height:1.2!important}
.travel-card-title p{font-size:var(--jm-type-sm)!important;line-height:1.4!important}
.travel-status{font-size:var(--jm-type-xs)!important}
.travel-highlight strong,.travel-meta-grid strong{font-size:var(--jm-type-sm)!important}
.travel-highlight small,.travel-meta-grid small,.travel-progress-text small{font-size:var(--jm-type-xs)!important}
.travel-progress-text b{font-size:var(--jm-type-sm)!important}
.travel-card-actions .btn{font-size:var(--jm-type-sm)!important}
.trip-section-title h2{font-size:var(--jm-type-lg)!important}.trip-section-title p{font-size:var(--jm-type-xs)!important}
.trip-side-title h3{font-size:var(--jm-type-md)!important}.trip-side-title p{font-size:var(--jm-type-xs)!important}
.trip-info-grid-compact .field>span{font-size:var(--jm-type-xs)!important}.trip-info-grid-compact input,.trip-info-grid-compact select,.trip-info-grid-compact textarea{font-size:var(--jm-type-sm)!important}
.travel-day-head strong{font-size:var(--jm-type-sm)!important}.travel-day-head small,.travel-day-mandate small{font-size:var(--jm-type-xs)!important}.travel-day-mandate strong{font-size:var(--jm-type-xs)!important}
.trip-summary-grid strong{font-size:var(--jm-type-xl)!important}.trip-summary-grid small,.trip-progress-label,#travelPlanningText{font-size:var(--jm-type-xs)!important}

/* Favoritos */
.fav-page{font-family:var(--jm-font-sans)!important}
.fav-page-heading h2,.fav-card-heading h2{font-size:var(--jm-type-xl)!important}
.fav-page-heading p,.fav-card-heading p{font-size:var(--jm-type-sm)!important;line-height:1.4!important}
.fav-field input:not([type=checkbox]):not([type=color]),.fav-field select{font-size:var(--jm-type-base)!important}
.fav-property strong,.fav-folder-heading strong{font-size:var(--jm-type-sm)!important}.fav-property small,.fav-car,.fav-location,.fav-folder-row small{font-size:var(--jm-type-xs)!important}

/* Sherlocker: preserva identidade escura, elimina microtipografia excessiva */
.theme-sherlocker-osint{font-family:var(--jm-font-sans)!important;font-size:var(--jm-type-base)!important}
.theme-sherlocker-osint .sho-hero h2{font-size:var(--jm-type-2xl)!important;line-height:1.2!important}
.theme-sherlocker-osint .sho-hero p,.theme-sherlocker-osint .sho-card-head small,.theme-sherlocker-osint .sho-recent small{font-size:var(--jm-type-xs)!important;line-height:1.4!important}
.theme-sherlocker-osint .sho-card-head h3,.theme-sherlocker-osint .sho-panel h3{font-size:var(--jm-type-lg)!important}
.theme-sherlocker-osint .sho-kpi strong{font-size:var(--jm-type-2xl)!important}.theme-sherlocker-osint .sho-kpi small{font-size:var(--jm-type-xs)!important}
.theme-sherlocker-osint .sho-btn,.theme-sherlocker-osint input,.theme-sherlocker-osint select,.theme-sherlocker-osint textarea{font-size:var(--jm-type-sm)!important}
.theme-sherlocker-osint .sho-table{font-size:var(--jm-type-sm)!important}.theme-sherlocker-osint .sho-table th{font-size:var(--jm-type-xs)!important}.theme-sherlocker-osint .sho-table td{font-size:var(--jm-type-sm)!important}

/* Relatórios e suporte */
.reports-page .reports-head h2{font-size:var(--jm-type-xl)!important}.reports-page .reports-head p{font-size:var(--jm-type-sm)!important}
.support-video-copy strong,.support-file-copy strong{font-size:var(--jm-type-sm)!important}.support-video-copy p,.support-file-copy small{font-size:var(--jm-type-xs)!important}

/* Login: mesma família e escala coerente, preservando o card compacto */
.auth-overlay,.auth-card{font-family:var(--jm-font-sans)!important}
.auth-card.auth-single:not(.register-card) .auth-field>input,.auth-card.auth-single:not(.register-card) .auth-form-login input{font-family:var(--jm-font-sans)!important;font-size:var(--jm-type-base)!important}
.auth-card.auth-single:not(.register-card) .auth-primary,.auth-card.auth-single:not(.register-card) .auth-secondary{font-family:var(--jm-font-sans)!important;font-size:var(--jm-type-base)!important;font-weight:var(--jm-weight-bold)!important}
#registerPanel h1{font-family:var(--jm-font-sans)!important;font-size:var(--jm-type-2xl)!important}.auth-lead{font-size:var(--jm-type-sm)!important}

/* Responsividade: mantém hierarquia, não reinventa a escala */
@media(max-width:760px){
  :root{--jm-type-3xl:22px;--jm-type-2xl:20px;--jm-type-xl:17px}
  .nav-btn span{font-size:var(--jm-type-sm)!important}
  .travel-card-title h3{font-size:var(--jm-type-lg)!important}
}


/* =========================================================
   Ajustes de uniformização — Pesquisa, Mapa, OSINT e Registro
   ========================================================= */
/* Pesquisa: cabeçalhos, células e ações na mesma escala */
#section-pesquisa .results-panel table{font-family:var(--jm-font-sans)!important;font-size:var(--jm-type-sm)!important}
#section-pesquisa .results-panel thead th,
#section-pesquisa .results-panel .sort-header{font-family:var(--jm-font-sans)!important;font-size:var(--jm-type-xs)!important;line-height:1.25!important;font-weight:var(--jm-weight-extrabold)!important}
#section-pesquisa .results-panel tbody td,
#section-pesquisa .results-panel .text-link,
#section-pesquisa .results-panel .owner-main{font-family:var(--jm-font-sans)!important;font-size:var(--jm-type-sm)!important;line-height:1.35!important}
#section-pesquisa .results-panel .owner-doc,
#section-pesquisa .results-panel .pagination,
#section-pesquisa .results-panel .pagination label{font-family:var(--jm-font-sans)!important;font-size:var(--jm-type-xs)!important}
#section-pesquisa .results-panel .btn,
#section-pesquisa .results-panel .geo-map-button,
#section-pesquisa .results-panel .row-actions-menu button,
#section-pesquisa .results-panel .row-actions-menu a{font-family:var(--jm-font-sans)!important;font-size:var(--jm-type-xs)!important;font-weight:var(--jm-weight-bold)!important}

/* Mapa: filtro e painel lateral com a mesma escala da pesquisa */
#section-mapas .maps-explore-head h2{font-size:var(--jm-type-lg)!important}
#section-mapas .maps-general-search .field>span{font-family:var(--jm-font-sans)!important;font-size:var(--jm-type-xs)!important;font-weight:var(--jm-weight-bold)!important}
#section-mapas .maps-general-search input,
#section-mapas .maps-general-search select{font-family:var(--jm-font-sans)!important;font-size:var(--jm-type-base)!important;line-height:1.35!important}
#section-mapas .maps-general-search-button,
#section-mapas .maps-general-clear-button{font-family:var(--jm-font-sans)!important;font-size:var(--jm-type-sm)!important;font-weight:var(--jm-weight-bold)!important}
#section-mapas .maps-hub-tabs button,
#section-mapas .maps-mini-button{font-family:var(--jm-font-sans)!important;font-size:var(--jm-type-xs)!important;font-weight:var(--jm-weight-bold)!important}
#section-mapas .maps-hub-tabs .count-badge{font-size:var(--jm-type-2xs)!important}
#section-mapas .maps-results-notice,
#section-mapas .maps-empty,
#section-mapas .maps-selection-head span,
#section-mapas .maps-route-count,
#section-mapas .maps-selection-actions button{font-family:var(--jm-font-sans)!important;font-size:var(--jm-type-xs)!important;line-height:1.4!important}
#section-mapas .maps-selection-head strong{font-size:var(--jm-type-md)!important}

/* Central OSINT */
.osint-hub,.osint-tool-card{font-family:var(--jm-font-sans)!important}.osint-hub-intro h2{font-size:var(--jm-type-xl)!important}.osint-hub-intro p{font-size:var(--jm-type-base)!important}.osint-tool-copy h3{font-size:var(--jm-type-lg)!important}.osint-tool-copy p{font-size:var(--jm-type-sm)!important}.osint-tool-status{font-size:var(--jm-type-xs)!important}.osint-tool-open{font-size:var(--jm-type-sm)!important}

/* Registro: exatamente a mesma largura, escala e altura de controles do login */
.auth-card.auth-single.register-card{width:min(318px,calc(100vw - 26px))!important;padding:22px 24px 24px!important;border-radius:18px!important;max-height:94svh!important;overflow:auto!important}
.auth-card.register-card .auth-hero{display:none!important}
#registerPanel h1{font-family:var(--jm-font-sans)!important;font-size:var(--jm-type-2xl)!important;line-height:1.2!important;margin:0 0 6px!important}
#registerPanel .auth-lead{font-family:var(--jm-font-sans)!important;font-size:var(--jm-type-sm)!important;line-height:1.4!important;margin:0 0 15px!important}
#registerPanel .auth-form{gap:9px!important}
#registerPanel .auth-form label{gap:5px!important}
#registerPanel .auth-form label>span{font-family:var(--jm-font-sans)!important;font-size:var(--jm-type-xs)!important;font-weight:var(--jm-weight-bold)!important}
#registerPanel .auth-form input{width:100%!important;height:48px!important;border-radius:11px!important;padding:0 14px!important;font-family:var(--jm-font-sans)!important;font-size:var(--jm-type-base)!important;line-height:1.35!important}
#registerPanel .auth-primary,#registerPanel .auth-secondary{width:100%!important;height:48px!important;min-height:48px!important;border-radius:11px!important;font-family:var(--jm-font-sans)!important;font-size:var(--jm-type-base)!important;font-weight:var(--jm-weight-bold)!important;margin-top:0!important}
#registerPanel .auth-primary{margin-top:3px!important}
@media(max-width:520px){.auth-card.auth-single.register-card{width:min(302px,calc(100vw - 22px))!important;padding:19px 18px 21px!important}}
