/*
  TecnicilOS v3.38 | Escala tipográfica acessível
  Fonte única de verdade para legibilidade pública, login, assistente e área interna.
  Esta camada é carregada por último e não altera regras de negócio ou estrutura.
*/
:root{
  --type-display-xl:clamp(2.5rem,5vw,4.25rem);
  --type-display:clamp(2.125rem,4vw,3.5rem);
  --type-page-title:clamp(1.75rem,2.8vw,2.25rem);
  --type-section-title:clamp(1.375rem,2.2vw,1.75rem);
  --type-card-title:1.0625rem;
  --type-body-lg:1.0625rem;
  --type-body:1rem;
  --type-body-compact:.9375rem;
  --type-control:.875rem;
  --type-secondary:.875rem;
  --type-label:.8125rem;
  --type-meta:.75rem;
  --type-caption:.75rem;
  --line-tight:1.25;
  --line-title:1.2;
  --line-body:1.6;
  --line-compact:1.45;
}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{font-size:var(--type-body);line-height:1.55}
h1,h2,h3,h4,strong{overflow-wrap:anywhere}
p,li,dd,dt,td,th,label,small,time{overflow-wrap:anywhere}

/* Componentes compartilhados */
.section-title small,.eyebrow{font-size:var(--type-meta);line-height:var(--line-compact)}
.section-copy,.page-copy p,.page-hero p{font-size:var(--type-body);line-height:var(--line-body)}
.btn{font-size:var(--type-control);line-height:1.2}
.btn-sm{min-height:40px;font-size:var(--type-control)}
.badge,.pill{font-size:var(--type-meta);line-height:1.25}
.form-field label{font-size:var(--type-label);line-height:var(--line-compact);letter-spacing:.025em}
.form-field input,.form-field select,.form-field textarea{font-size:var(--type-body);line-height:1.4}
.checkbox-row{font-size:var(--type-control);line-height:var(--line-body)}
.toast{font-size:var(--type-control);line-height:var(--line-compact)}
.modal-head h2{font-size:1.375rem;line-height:var(--line-title)}
.modal-head p,.modal-subtitle,.note-small{font-size:var(--type-label)!important;line-height:var(--line-compact)}
.status-badge{min-height:29px;padding:5px 9px;font-size:var(--type-meta);line-height:1.2}
.status-badge-compact{min-height:27px;padding:4px 8px;font-size:var(--type-meta)}
.status-badge-symbol,.status-badge-compact .status-badge-symbol{font-size:.75rem}
.status-legend-panel>strong{font-size:var(--type-control)}
.status-legend-panel>p{font-size:var(--type-control);line-height:var(--line-compact)}

/* Site público */
.main-menu a,.mobile-menu nav a{font-size:var(--type-control)}
.brand-copy span{font-size:var(--type-meta)}
.site-footer h4{font-size:var(--type-control)}
.site-footer p,.site-footer li,.site-footer a,.footer-bottom,.footer-social-links,.platform-box p{font-size:var(--type-control)!important;line-height:var(--line-body)}
.home-banner-copy p,.home-banner-fallback p{font-size:var(--type-body)!important;line-height:var(--line-body)}
.home-banner-meta small{font-size:var(--type-meta)}
.home-banner-meta strong{font-size:var(--type-control)}
.home-banner-arrows span{font-size:var(--type-meta)}
.hero-metric span,.hero-project-card small,.hero-project-card time,.project-body time,.project-tags span,.latest-badge{font-size:var(--type-meta)}
.hero-project-card p,.project-location,.project-summary,.service-card p,.value-card p,.business-card p,.department-card p{font-size:var(--type-control);line-height:var(--line-body)}
.project-body h3{font-size:1.4375rem;line-height:var(--line-title)}
.contact-option strong{font-size:var(--type-body)}
.contact-option span,.contact-option a{font-size:var(--type-control);line-height:var(--line-compact)}
.contact-success{font-size:var(--type-control);line-height:var(--line-compact)}

/* Mapa público e cards de imóveis */
.map-toolbar .form-field label,.development-filter label{font-size:var(--type-label)}
.map-toolbar .form-field select{font-size:var(--type-body-compact)}
.map-sidebar-head strong{font-size:var(--type-body)}
.map-sidebar-head span{font-size:var(--type-label);line-height:var(--line-compact)}
.viewport-counter strong,.mobile-results-trigger strong{font-size:var(--type-control)}
.viewport-counter span,.mobile-results-trigger span{font-size:var(--type-meta)}
.region-summary-card small,.region-summary-card em,.region-summary-types span{font-size:var(--type-meta)}
.active-filter-summary strong,.active-filter-summary span{font-size:var(--type-meta)}
.unit-card.unit-card-text .unit-card-code,.unit-card-code,.unit-card-linkage,.unit-card-pill,.unit-card-chip{font-size:var(--type-meta)}
.unit-card.unit-card-text h3,.unit-card h3{font-size:1.0625rem;line-height:var(--line-title)}
.unit-card.unit-card-text p,.unit-card p{font-size:var(--type-control);line-height:var(--line-compact)}
.unit-card-context strong{font-size:var(--type-label)}
.unit-card-context span{font-size:var(--type-meta)}
.unit-card.unit-card-text .unit-card-meta strong,.unit-card-meta strong{font-size:var(--type-label)}
.unit-card.unit-card-text .unit-card-meta span,.unit-card-meta span{font-size:var(--type-meta)}
.unit-card.unit-card-text .unit-card-price small,.unit-card-price small,.unit-card-price span{font-size:var(--type-meta)}
.unit-card.unit-card-text .unit-card-price strong,.unit-card-price strong{font-size:1rem}
.property-selection-card .map-selection-title small,.map-selection-title small{font-size:var(--type-meta)}
.property-selection-card .map-selection-title h3,.map-selection-title h3{font-size:1.0625rem;line-height:var(--line-title)}
.property-selection-card .map-selection-status>span:last-child,.map-selection-status>span:last-child{font-size:var(--type-meta)}
.property-selection-card .map-selection-location,.map-selection-location,.map-geometry-note{font-size:var(--type-label);line-height:var(--line-compact)}
.map-selection-metrics-compact .map-selection-metric strong,.map-selection-metric strong{font-size:var(--type-control)}
.map-selection-metrics-compact .map-selection-metric span,.map-selection-metric span{font-size:var(--type-meta)}
.property-selection-card .map-selection-price span,.map-selection-price span{font-size:var(--type-meta)}
.property-selection-card .map-selection-price strong,.map-selection-price strong{font-size:1.125rem}
.map-selection-actions-primary .btn,.map-selection-actions .btn,.map-popup-action,.map-selection-text-action{font-size:var(--type-label)}
.map-list-context strong,.map-list-selection-banner strong{font-size:var(--type-label)}
.map-list-context button,.map-list-selection-banner small,.map-list-selection-banner span,.map-detail-popup small,.map-detail-popup li{font-size:var(--type-meta)}
.map-detail-popup p{font-size:var(--type-label);line-height:var(--line-compact)}
.development-row-body>small,.development-row-tags span,.development-row-metrics span,.showcase-property-body>small,.showcase-property-media>span,.showcase-property-meta span,.showcase-property-price span,.project-media-kind,.project-media-caption span{font-size:var(--type-meta)}
.development-row-body>p,.showcase-property-body p,.project-video-placeholder p{font-size:var(--type-control);line-height:var(--line-compact)}
.showcase-property-meta strong{font-size:var(--type-label)}

/* Página de empreendimento */
.project-metric span{font-size:var(--type-label)}
.project-gallery-label span{font-size:var(--type-control)}
.project-story p{font-size:var(--type-body);line-height:var(--line-body)}
.project-highlight{font-size:var(--type-control);line-height:var(--line-compact)}
.project-fact-row span{font-size:var(--type-label)}
.project-fact-row strong{font-size:var(--type-control)}
.starting-price span{font-size:var(--type-meta)}
.audience-card>span{font-size:var(--type-meta)}
.audience-card p,.process-card p,.faq-item p,.project-lead-side p{font-size:var(--type-control);line-height:var(--line-body)}
.check-item strong{font-size:var(--type-control)}
.type-card p,.property-card p{font-size:var(--type-label);line-height:var(--line-compact)}
.property-card-meta strong{font-size:var(--type-label)}
.property-card-meta span{font-size:var(--type-meta)}
.faq-item summary{font-size:var(--type-body-compact);line-height:var(--line-compact)}
.form-success{font-size:var(--type-control);line-height:var(--line-compact)}

/* Login */
.login-kicker,.login-discreet-badge{font-size:var(--type-meta)}
.login-discreet-item span,.login-discreet-footer{font-size:var(--type-label);line-height:var(--line-body)}
.login-card>p{font-size:var(--type-body-compact);line-height:var(--line-body)}
.login-form .form-field label,.login-form .checkbox-row{font-size:var(--type-control)}
.login-form input,.login-form select{font-size:var(--type-body)}
.login-button{font-size:var(--type-control)}
.login-profile strong,.login-product-label strong{font-size:var(--type-control)}
.login-profile span,.login-note,.login-product-label small{font-size:var(--type-label);line-height:var(--line-compact)}
.login-language-selector>span{font-size:var(--type-label)}
.languages button{font-size:var(--type-control)}

/* Atendimento institucional Tecnicil */
.ai-launcher-copy strong{font-size:var(--type-control)!important}
.ai-launcher-copy small,.ai-launcher-status,.ai-invite-eyebrow,.ai-header-copy span,.ai-message-time,.ai-privacy{font-size:var(--type-meta)!important;line-height:var(--line-compact)}
.ai-invite strong{font-size:1.0625rem}
.ai-invite p,.ai-empty-state p,.ai-message,.ai-suggestions button,.ai-lead-state{font-size:var(--type-control)!important;line-height:var(--line-body)}
.ai-header-copy strong,.ai-empty-state strong{font-size:var(--type-body)!important}
.ai-message-avatar{font-size:var(--type-meta)}
.ai-form textarea{font-size:var(--type-body)!important}
.ai-header-copy strong::after{font-size:var(--type-meta)}


@media(max-width:520px){
  .ai-header-copy strong{font-size:.875rem!important}
}

/* Área interna */
.system-body{font-size:var(--type-body);line-height:1.55}
.system-main,.system-modal,.system-drawer{font-size:var(--type-body-compact)}
.system-main p,.system-modal p,.system-drawer p{font-size:var(--type-control);line-height:var(--line-body)}
.system-main small,.system-modal small,.system-drawer small,.system-main time,.system-modal time,.system-drawer time{font-size:var(--type-meta)!important;line-height:var(--line-compact)}
.system-main label,.system-modal label,.system-drawer label,.system-main legend,.system-modal legend,.system-drawer legend{font-size:var(--type-label);line-height:var(--line-compact)}
.system-main input,.system-main select,.system-main textarea,.system-modal input,.system-modal select,.system-modal textarea,.system-drawer input,.system-drawer select,.system-drawer textarea{font-size:var(--type-body-compact);line-height:1.4}
.system-main button:not(.icon-button):not(.system-menu-toggle),.system-modal button:not(.icon-button),.system-drawer button:not(.icon-button){font-size:var(--type-control)}
.page-head h1,.page-header-row h1{font-size:var(--type-page-title);line-height:1.12;letter-spacing:-.035em}
.page-head p,.page-head.compact p,.page-header-row p{font-size:var(--type-body-compact);line-height:var(--line-body)}
.system-brand strong{font-size:1.125rem;line-height:var(--line-title)}
.system-brand span{font-size:var(--type-meta);line-height:var(--line-compact)}
.system-user-card strong{font-size:var(--type-control)}
.system-user-card span,.system-scope,.system-scope strong,.system-version,.system-topbar-copy span{font-size:var(--type-meta);line-height:var(--line-compact)}
.system-nav-title{font-size:var(--type-meta);letter-spacing:.08em}
.system-nav button{font-size:var(--type-control);line-height:1.25}
.system-nav-icon{font-size:1rem}
.system-search{font-size:var(--type-body-compact)}
.system-card>h3,.panel-card>h3{font-size:var(--type-card-title);line-height:var(--line-title)}
.system-card>p,.panel-card>p,.settings-card>p{font-size:var(--type-control);line-height:var(--line-body)}
.metric-card span,.mailbox-metrics>article span,.property-summary-card span,.settings-summary-grid span,.info-card span,.source-card span,.team-card p{font-size:var(--type-label);line-height:var(--line-compact)}
.mailbox-metrics>article strong{font-size:1.5rem;line-height:1.15}
.data-table th{font-size:var(--type-meta);line-height:var(--line-compact)}
.data-table td{font-size:var(--type-control);line-height:var(--line-compact)}
.contact-stack strong{font-size:var(--type-control)}
.contact-stack span{font-size:var(--type-meta);line-height:var(--line-compact)}
.compact-input,.compact-select,.property-operation-select,.crm-filter-bar select,.crm-view-switch button,.crm-view-tabs button{font-size:var(--type-control)}
.form-field small,.field-help,.property-filter-block>small,.geometry-coordinate-panel>small,.property-image-copy>span,.property-image-field>span{font-size:var(--type-meta)!important;line-height:var(--line-compact)}
.property-system-body h3{font-size:1.125rem;line-height:var(--line-title)}
.property-system-body p,.property-system-meta,.property-system-meta span,.property-summary-card span,.technical-record-grid>div>span{font-size:var(--type-label);line-height:var(--line-compact)}
.property-image-copy strong,.property-image-field input{font-size:var(--type-control)}
.badge,.system-body .status-badge,.deal-tag,.pipeline-count,.mail-thread-unread,.smtp-status,.mail-sync-status{font-size:var(--type-meta)}

/* Dashboard, prioridades e atividades */
.dashboard-welcome small{font-size:var(--type-meta)!important}
.dashboard-welcome p,.health-card p,.priority-item span,.activity-item span,.source-card span{font-size:var(--type-label);line-height:var(--line-compact)}
.dashboard-quick-actions button,.priority-item button{font-size:var(--type-label)}
.priority-item strong,.activity-item strong,.timeline-item strong{font-size:var(--type-control);line-height:var(--line-title)}
.activity-item time,.timeline-item span{font-size:var(--type-meta)}

/* Pipeline e CRM */
.pipeline-row span,.crm-card-meta span,.crm-stage-list-summary span,.crm-stage-order span,.crm-stage-usage span,.crm-stage-usage em,.crm-insights span{font-size:var(--type-meta);line-height:var(--line-compact)}
.pipeline-row strong,.pipeline-column-head strong,.crm-column-head strong,.deal-card header strong,.crm-stage-usage strong{font-size:var(--type-control);line-height:var(--line-title)}
.pipeline-column-head small,.crm-column-head small,.deal-card>small,.crm-deal-card>small,.deal-card header span{font-size:var(--type-meta)!important;line-height:var(--line-compact)}
.crm-column-actions button,.crm-stage-order button,.crm-card-move{font-size:var(--type-label)}
.deal-card,.crm-deal-card{min-width:0}
.deal-card strong,.deal-card small,.crm-deal-card strong,.crm-deal-card small{overflow-wrap:anywhere}

/* E-mail, mensagens e campanhas */
.mailbox-toolbar input,.mail-thread-search input,.campaign-section-head>select{font-size:var(--type-body-compact)}
.mailbox-filters button,.drawer-tabs button{font-size:var(--type-control)}
.mail-thread-item strong,.mail-thread-top strong,.mail-subject-bar strong,.mail-bubble-head strong,.message-card-head strong,.message-card h4{font-size:var(--type-control);line-height:var(--line-title)}
.mail-thread-item span,.mail-thread-item time,.mail-thread-context,.mail-thread-preview,.mail-thread-top time,.mail-subject-bar small,.mail-bubble-head span,.mail-bubble-head time,.mail-bubble footer,.mail-message-card time,.message-card-head time,.mail-conversation-person small,.mail-conversation-person p,.mail-compose-status,.mail-reply-footer span{font-size:var(--type-meta);line-height:var(--line-compact)}
.mail-message-card p,.mail-bubble p,.message-card p,.drawer-message-text,.mail-conversation-empty p{font-size:var(--type-control);line-height:var(--line-body)}
.campaign-section-head small,.campaign-section-head>span,.campaign-stage-filter legend,.campaign-stage-filter em,.campaign-stage-filter span,.campaign-filter-footer span,.campaign-card p,.campaign-card footer>span,.campaign-card-metrics span,.campaign-card-volume span,.campaign-preview-head small,.campaign-preview-head span,.campaign-preview-stats span,.campaign-recipient-preview span,.campaign-recipient-preview em,.campaign-exclusion-list span,.campaign-safe-notice,.campaign-compose-audience span{font-size:var(--type-meta)!important;line-height:var(--line-compact)}
.campaign-compose-audience strong,.campaign-recipient-preview strong{font-size:var(--type-control)}

/* Auditoria, conteúdo, projetos, minutas e agentes */
.audit-item>div,.content-item>div,.banner-admin-title,.mail-thread-item>div,.property-image-copy{min-width:0}
.audit-item>div>strong,.audit-item strong,.content-item strong,.banner-admin-title h4,.immutable-history-item header strong{font-size:var(--type-control);line-height:var(--line-title)}
.audit-item>div>span,.audit-item>time,.content-item>div>span,.banner-admin-title p,.banner-admin-title>span,.immutable-history-item header span,.immutable-history-item time,.immutable-history-item footer span{font-size:var(--type-meta);line-height:var(--line-compact)}
.content-item>.status-badge,.content-item>.badge{font-size:var(--type-meta)}
.content-item strong,.content-item span,.audit-item strong,.audit-item span{overflow-wrap:anywhere}
.banner-mode-option strong,.banner-preview-card>p,.banner-translation-editor summary{font-size:var(--type-control);line-height:var(--line-compact)}
.banner-mode-option small,.banner-preview-card>span,.banner-preview-card button,.banner-action-row button,.banner-admin-stats span{font-size:var(--type-meta)!important}

/* Configurações e pré-visualizações: legíveis sem transformar as miniaturas em telas reais */
.identity-save-bar strong,.identity-browser-body strong,.identity-sidebar-brand strong,.identity-preview-checklist strong,.identity-security-note strong,.identity-phone strong{font-size:var(--type-label)}
.identity-save-bar span,.identity-preview-panel>header small,.identity-preview-panel>header>span,.identity-browser-top strong,.identity-browser-body small,.identity-sidebar-brand span,.identity-sidebar-line,.identity-login-brand span,.identity-login-preview p,.identity-login-preview button,.identity-phone>span,.identity-preview-checklist span,.identity-security-note span,.identity-public-preview-content small,.identity-public-preview-content button,.identity-color-grid small,.identity-color-presets button,.identity-guidance-status,.identity-page-eyebrow,.identity-section-card>header small,.identity-section-card header p,.identity-upload-copy span{font-size:var(--type-meta)!important;line-height:var(--line-compact)}

/* Estados assíncronos */
.async-status{font-size:var(--type-control);line-height:var(--line-compact)}

/* Crescimento seguro */
.system-card,.panel-card,.content-item,.audit-item,.property-image-item,.mail-thread-item,.deal-card,.crm-deal-card,.campaign-card{min-width:0}
.system-card p,.panel-card p,.content-item span,.audit-item span,.mail-thread-item span,.deal-card small,.crm-deal-card small{overflow-wrap:anywhere}

@media(max-width:900px){
  .system-main,.system-modal,.system-drawer{font-size:var(--type-control)}
  .system-content{padding-inline:16px}
  .data-table{min-width:720px}
  .data-table-wrap,.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
}
@media(max-width:760px){
  .btn{min-height:46px}
  .main-menu a,.mobile-menu nav a{font-size:var(--type-body)}
  .home-banner-copy p,.home-banner-fallback p{font-size:var(--type-body-compact)!important}
  .form-field input,.form-field select,.form-field textarea,.system-main input,.system-main select,.system-main textarea,.system-modal input,.system-modal select,.system-modal textarea,.system-drawer input,.system-drawer select,.system-drawer textarea{font-size:var(--type-body)}
  .page-head p,.page-header-row p{font-size:var(--type-control)}
  .system-nav button{font-size:var(--type-body-compact)}
  .status-badge,.status-badge-compact{white-space:normal;text-align:center}
}
@media(max-width:430px){
  .page-head h1,.page-header-row h1{font-size:1.625rem}
  .system-content{padding-inline:14px}
  .property-card-meta,.unit-card-meta{grid-template-columns:1fr}
}

/* v3.28 | Faixas informativas e avisos operacionais
   Correção focal: preserva a estrutura e eleva somente a legibilidade do componente compartilhado. */
.system-app .notice{
  grid-template-columns:minmax(150px,190px) minmax(0,1fr);
  gap:10px 16px;
  align-items:center;
  padding:15px 16px;
}
.system-app .notice>strong{
  font-size:var(--type-body-compact);
  line-height:1.4;
  font-weight:600;
  letter-spacing:0;
}
.system-app .notice>span{
  min-width:0;
  font-size:var(--type-control);
  line-height:1.5;
  font-weight:400;
}
.system-app .import-quality-notice{
  grid-template-columns:minmax(150px,190px) minmax(0,1fr) auto;
}
.system-app .import-quality-notice>.btn{
  justify-self:end;
}
@media(max-width:900px){
  .system-app .notice{
    grid-template-columns:minmax(135px,165px) minmax(0,1fr);
  }
  .system-app .import-quality-notice{
    grid-template-columns:minmax(135px,165px) minmax(0,1fr);
  }
  .system-app .import-quality-notice>.btn{
    grid-column:2;
    justify-self:start;
  }
}
@media(max-width:760px){
  .system-app .notice,
  .system-app .import-quality-notice{
    grid-template-columns:1fr;
    gap:6px;
    align-items:start;
    padding:14px;
  }
  .system-app .import-quality-notice>.btn{
    grid-column:auto;
    width:100%;
    justify-self:stretch;
  }
}



/* =========================================================
   V3.36 | LEGIBILIDADE DO SITE INSTITUCIONAL
   Textos importantes: 14 px ou mais. Corpo de leitura: 16 px.
   Microtextos: 12 px somente em badges, datas e referências curtas.
   ========================================================= */
.trust-grid strong{font-size:1.375rem;line-height:var(--line-title)}
.trust-grid span{font-size:var(--type-secondary);line-height:1.55}
.decision-steps article>span{font-size:var(--type-control);line-height:1}
.decision-steps h3{font-size:var(--type-body);line-height:1.35}
.decision-steps p{font-size:var(--type-secondary);line-height:1.55}
.decision-cta strong{font-size:1.125rem;line-height:1.3}
.decision-cta span{font-size:var(--type-secondary);line-height:1.55}
.service-card-link span{font-size:var(--type-secondary);line-height:var(--line-compact)}
.development-filter label{font-size:var(--type-secondary);line-height:var(--line-compact)}
.development-row-body>p{font-size:var(--type-body);line-height:var(--line-body)}
.development-row-metrics strong{font-size:var(--type-body);line-height:var(--line-title)}
.development-row-metrics span{font-size:var(--type-secondary);line-height:var(--line-compact)}
.showcase-property-body p{font-size:var(--type-secondary);line-height:1.55}
.showcase-property-meta strong{font-size:var(--type-secondary);line-height:var(--line-title)}
.showcase-property-meta span{font-size:var(--type-label);line-height:var(--line-compact)}
.project-media-item strong{font-size:var(--type-body);line-height:var(--line-title)}
.project-media-caption strong{font-size:var(--type-body);line-height:var(--line-title)}
.project-media-caption span,.project-video-placeholder p{font-size:var(--type-secondary);line-height:1.55}

@media(max-width:760px){
  .trust-grid article,.decision-steps article{padding:1rem}
  .decision-cta{padding:1.125rem}
}
