/* Ajustes de identidade: hierarquia discreta e leitura de aplicação operacional.
   A estrutura, os temas, os estados e os tamanhos mínimos de toque são preservados. */
:root { --interface-font: "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; }
*, input, select, textarea, button { font-family:var(--interface-font); }
body { -webkit-font-smoothing:antialiased; }
.dashboard-body { font-size:14px; line-height:1.5; }
.ui-icon { width:18px; height:18px; flex:0 0 18px; vertical-align:-3px; }
.nav-btn, .account-dropdown button { display:inline-flex; align-items:center; gap:8px; }
.account-dropdown label { display:flex; align-items:center; gap:8px; }
.dashboard-body .top-nav { box-shadow:none; }
.dashboard-body .nav-btn { font-size:13px; font-weight:600; border-radius:6px; padding:10px 13px; }
.dashboard-body .nextflow-highlight { letter-spacing:0; font-weight:500; font-size:11px; }
.dashboard-body .view-panel { border-radius:13px; box-shadow:none; }
.dashboard-body .panel-title { font-size:26px; font-weight:600; letter-spacing:-.025em; line-height:1.25; }
.dashboard-body .executive-hero .panel-title { font-size:30px; }
.dashboard-body .section-subtitle { font-size:19px; font-weight:600; letter-spacing:-.015em; }
.dashboard-body .section-eyebrow, .dashboard-body .executive-section-label span { text-transform:none; letter-spacing:.015em; font-size:12px; font-weight:600; }
.dashboard-body .executive-section-label { margin-top:26px; }
.dashboard-body .executive-section-label strong { font-weight:400; }
.dashboard-body .executive-hero { padding-bottom:22px; margin-bottom:22px; }
.dashboard-body .hero-meta { font-size:12px; }
.dashboard-body .hero-meta span:last-child { font-weight:600; }
.dashboard-body :is(.kpi-card,.chart-card,.field-card,.incidente-card,.approval-card,.info-details-box,.team-panel,.executive-filterbar) { border-radius:10px; box-shadow:none; }
.dashboard-body .executive-kpis .kpi-card { padding:20px; min-height:142px; }
.dashboard-body .executive-kpis .kpi-card::before { height:2px; width:22px; margin-bottom:10px; }
.dashboard-body .kpi-title { text-transform:none; letter-spacing:0; font-size:12px; font-weight:600; }
.dashboard-body .executive-kpis .kpi-value { font-size:36px; font-weight:600; letter-spacing:-.025em; font-variant-numeric:tabular-nums; }
.dashboard-body .kpi-foot { font-size:12px; line-height:1.45; }
.dashboard-body .executive-summary { border-radius:10px; gap:24px; }
.dashboard-body .executive-summary p { font-size:16px; font-weight:500; }
.dashboard-body .chart-card h5 { font-size:14px; font-weight:600; letter-spacing:0; }
.dashboard-body .state-card .kpi-value { font-weight:600; font-variant-numeric:tabular-nums; }
.dashboard-body .incidente-card { padding:18px; }
.dashboard-body .incidente-card:hover { box-shadow:none; border-color:var(--zaaz-blue); }
.dashboard-body :is(.btn-primary,.btn-sec,.btn-sec-sm,.btn-export) { border-radius:7px; font-weight:600; box-shadow:none; }
.dashboard-body :is(.report-filters,.assignment-box,.search-box) { border-radius:9px; box-shadow:none; }
.dashboard-body :is(input,select,textarea) { font-size:14px; border-radius:7px; letter-spacing:normal; }
.dashboard-body :is(label,.report-filters label,.timeline-header,.step-number) { font-weight:600; }
.dashboard-body .modal-content { border-radius:13px; }
.dashboard-body .timeline-item { border-radius:9px; }
.dashboard-body .account-menu summary, .dashboard-body .clock-box-inline { border-radius:7px; box-shadow:none; }
.dashboard-body .account-dropdown { border-radius:10px; box-shadow:0 8px 24px rgba(12,25,47,.12); }
.login-body { background:#101f3e; }
.login-body::before { opacity:.25; }
.login-body .login-intro h1 { letter-spacing:-.045em; }
.login-body .login-eyebrow,.login-body .card-eyebrow { letter-spacing:.025em; font-size:12px; font-weight:600; }
.login-body .login-card { border-radius:14px; box-shadow:0 16px 40px rgba(0,0,0,.16); }
.login-body .login-card h2 { font-size:27px; font-weight:600; letter-spacing:-.025em; }
.login-body .login-card input { border-radius:7px; font-size:15px; }
.login-body .login-card .form-group input:not([type=checkbox]):not([type=radio]) { display:block; width:100%; min-width:0; min-height:48px; }
.login-body .btn-primary { border-radius:7px; font-weight:600; box-shadow:none; }
.login-body .internal-tag { border-radius:6px; font-weight:500; }
.login-body .login-helper { font-size:14px; }
:is(button,a,input,select,textarea,summary):focus-visible { outline:2px solid var(--zaaz-blue,#1256c6); outline-offset:3px; }
@media(max-width:760px){
 .dashboard-body .panel-title,.dashboard-body .executive-hero .panel-title { font-size:24px; }
 .dashboard-body .nav-btn { font-size:13px; min-height:44px; }
 .dashboard-body .executive-kpis .kpi-card { padding:15px; min-height:138px; }
 .dashboard-body .executive-kpis .kpi-value { font-size:32px; }
 .dashboard-body .executive-section-label { flex-wrap:wrap; gap:5px 12px; }
 .dashboard-body .incidente-card { padding:15px; }
 .login-body .login-card { padding:26px 22px; }
}
@media(min-width:761px){.login-layout { grid-template-columns:minmax(0,1fr) minmax(300px,430px); }.login-footer { left:0; }}
/* Contraste do tema escuro: azul claro para leitura, azul sólido para ações. */
.theme-dark { --zaaz-blue:#8bbaff; --zaaz-blue-hover:#b2d0ff; }
.theme-dark :is(.btn-primary,.btn-export,.nav-btn.active,.status-tabs .active) { background:#155eb2; border-color:#155eb2; color:#fff; }
.theme-dark :is(.btn-primary:hover,.btn-export:hover,.nav-btn:hover) { background:#125397; color:#fff; }
.theme-dark :is(.btn-sec,.btn-sec-sm) { background:#27384d; border:1px solid #44546a; color:#e5edf7; }
.theme-dark .status-tabs .active { background:#155eb2; border-color:#155eb2; color:#fff; }
.theme-dark :is(input,select,textarea) { background:var(--input-bg); color:var(--text-main); border-color:#44546a; color-scheme:dark; }
.theme-dark input::placeholder,.theme-dark textarea::placeholder { color:#a0aec0; }
.theme-dark .success-text { color:#4cc5ad; }
.theme-dark #techFormArea input[type=file]::file-selector-button { background:#155eb2; color:#fff; }
/* Conta e cabeçalho alinhados à linguagem do NEXTFLOW B2B. */
.dashboard-body .nav-right-group { gap:22px; min-width:0; }
.dashboard-body .account-menu { width:auto; min-width:0; max-width:320px; flex:0 1 auto; }
.dashboard-body .account-menu summary { display:flex; justify-content:flex-start; align-items:center; gap:10px; min-height:48px; padding:5px 0 5px 4px; border:0; border-radius:6px; background:transparent; box-shadow:none; font-size:13px; font-weight:600; }
.dashboard-body .account-menu summary:hover,.dashboard-body .account-menu[open] summary,.dashboard-body .account-menu summary:active { background:transparent; }
.dashboard-body .account-avatar { display:grid; place-items:center; flex:0 0 34px; width:34px; height:34px; border-radius:50%; background:var(--input-bg); color:var(--zaaz-blue); font-size:11px; font-weight:700; letter-spacing:.02em; }
.dashboard-body .account-identity { display:flex; flex-direction:column; gap:3px; min-width:0; }
.dashboard-body #userBadge { display:block; color:var(--text-main); font-weight:600; line-height:1.4; overflow-wrap:anywhere; }
.dashboard-body #accountRole { display:block; color:var(--text-muted); font-size:11px; line-height:1.4; font-weight:400; }
.dashboard-body .account-chevron { width:18px; height:18px; margin-left:2px; color:var(--text-main); }
.dashboard-body .account-chevron svg { display:block; width:15px; height:15px; }
.dashboard-body .account-dropdown { width:285px; max-width:calc(100vw - 32px); padding:8px; border-radius:10px; }
.dashboard-body .account-dropdown button { line-height:1.4; }
.dashboard-body .clock-box-inline { padding:10px 13px; border-radius:9px; background:var(--input-bg); }
.dashboard-body .clock-date { font-weight:400; }
@media(max-width:700px){
 .dashboard-body .nav-right-group { gap:12px; justify-content:flex-start; }
 .dashboard-body .account-menu { max-width:100%; }
 .dashboard-body .account-menu summary { padding-left:0; }
 .dashboard-body .account-dropdown { left:0; right:auto; width:min(285px,calc(100vw - 32px)); }
}

.dashboard-body #viewConta .account-form { padding:22px 0; margin:0; }
.dashboard-body #viewConta .account-form h4 { margin-bottom:20px; }
.dashboard-body #viewConta .account-form .btn-primary { min-height:44px; font-size:14px; line-height:1.4; }
.dashboard-body #viewConta #contaEmail { border-top:1px solid var(--border-color); padding-top:24px; max-width:480px; }
.dashboard-body #viewConta #contaEmail[hidden] { display:none; }
.dashboard-body #viewConta #senhaRequisitos { margin-top:6px; }

/* A rolagem ocupa sua faixa abaixo dos botões, sem encobrir a navegação. */
.dashboard-body .nav-menu { overflow-y:hidden; padding-bottom:10px; scrollbar-width:thin; }
.dashboard-body .nav-menu::-webkit-scrollbar { height:4px; }
.dashboard-body .nav-menu::-webkit-scrollbar-track { background:transparent; }
.dashboard-body .nav-menu::-webkit-scrollbar-thumb { background:var(--border-color); border-radius:4px; }
@media(max-width:700px){
 .dashboard-body .top-nav { padding:10px 16px; gap:8px; }
 .dashboard-body .nav-brand { width:100%; min-width:0; text-align:center; }
 .dashboard-body .brand-fiber { width:calc(100% - 4px); margin:6px auto; }
 .dashboard-body .brand-fiber::after { left:auto; right:0; }
 .dashboard-body .nav-menu { padding-top:8px; padding-bottom:10px; }
}

/* Uma hierarquia tipográfica para consulta, distribuição e execução. */
.dashboard-body :is(input,select,textarea) { font-family:var(--interface-font); font-weight:400; line-height:1.5; }
.dashboard-body :is(h3,h4,h5) { font-weight:600; }
.dashboard-body .panel-desc { font-size:14px; line-height:1.6; }
.dashboard-body :is(.project-list-card,.field-task-card) { font-size:14px; line-height:1.55; }
.dashboard-body :is(.project-list-card,.field-task-card) > strong { font-size:16px; font-weight:600; line-height:1.4; }
.dashboard-body :is(.project-list-card,.field-task-card) small { font-size:12px; line-height:1.55; }
.dashboard-body .report-filters label { font-size:12px; color:var(--text-muted); }
.dashboard-body .report-filters :is(input,select) { min-height:44px; }
.dashboard-body .report-filters input::placeholder { font-weight:400; }
@media(max-width:640px){
 .dashboard-body :is(input:not([type=file]):not([type=checkbox]):not([type=radio]),select,textarea) { font-size:16px; }
}

.dashboard-body .chart-card canvas { max-width:100%; }

.dashboard-body .executive-actions button { min-height:44px; white-space:nowrap; }

/* Etapa 1: os controles reutilizam o padrão operacional existente. */
.scope-editor { grid-column:1 / -1; border:1px solid var(--border-color); border-radius:9px; padding:14px; }
.scope-editor[hidden] { display:none; }
.scope-editor label { display:flex; gap:9px; align-items:center; margin:8px 0; }
.scope-editor input { width:18px; height:18px; }
.project-ownership { display:grid; gap:12px; padding:18px 0; border-top:1px solid var(--border-color); }
.project-ownership button { justify-self:start; min-height:44px; }
.project-team-summary { padding:22px 0; overflow-x:auto; }
.project-team-table { border-collapse:collapse; width:100%; font-size:13px; }
.project-team-table th,.project-team-table td { text-align:left; padding:12px 10px; border-bottom:1px solid var(--border-color); }
.project-team-table th { color:var(--text-muted); font-weight:600; }
#acompRompimentosArea[hidden],#acompMedicoesArea[hidden] { display:none; }
#projetosMedicoesArea .measure-kpis { grid-template-columns:repeat(3,minmax(0,1fr)); }
@media(max-width:640px){#projetosMedicoesArea .measure-kpis { grid-template-columns:repeat(2,minmax(0,1fr)); }.project-team-table { min-width:420px; }}

.report-photo-option { margin-right:auto; font-size:12px; color:var(--text-muted); }
.dashboard-body .executive-actions .report-photo-option { display:flex; gap:8px; align-items:center; }
.report-photo-option input[type=checkbox] { flex:0 0 18px; width:18px; height:18px; }

/* Fase 2: teclado, telas estreitas e leitura sem deslocamentos de layout. */
.login-remember { display:flex; align-items:center; gap:9px; margin:0 0 20px; font-size:13px; line-height:1.5; color:var(--text-muted,#64748b); cursor:pointer; }
.login-card .login-remember input[type=checkbox] { appearance:auto; width:18px; height:18px; min-height:18px; flex:0 0 18px; margin:0; padding:0; accent-color:#0756c4; cursor:pointer; }
.login-card .login-remember input[type=checkbox]:focus { box-shadow:none; }
.login-card .login-remember input[type=checkbox]:focus-visible { outline:2px solid #0756c4; outline-offset:3px; }
:focus-visible { outline:3px solid #3695ef; outline-offset:3px; }
.dashboard-body :is(.incidente-card,.project-list-card,.field-task-card) { overflow-wrap:anywhere; }
.dashboard-body :is(.measure-search,.report-filters label,.measure-fields label) { min-width:0; }
.dashboard-body .measure-feedback:empty { display:none; }
.connection-status { margin:0 auto 14px; padding:10px 14px; border:1px solid var(--border-color); border-radius:8px; background:var(--panel-bg,#fff); color:var(--text-main,#263448); font-size:13px; }
.connection-status[hidden] { display:none; }
@media(max-width:380px) { .dashboard-body .dashboard-container { padding-left:10px; padding-right:10px; } .dashboard-body .executive-switch { padding-inline:8px; font-size:13px; } }
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { animation:none!important; scroll-behavior:auto!important; transition:none!important; } }
.report-filters > .report-scope-note { grid-column:1/-1; margin:0 0 4px; }

/* Identificação do produto: mesma hierarquia do B2B, conteúdo do Campo. */
.login-body .login-intro { isolation:isolate; min-width:0; }
.login-body .login-intro-content { width:100%; min-width:0; }
.login-body .login-eyebrow { letter-spacing:.075em; }
.login-body .login-intro h1 { font-weight:700; }
.login-body .field-product-lockup { display:flex; flex-wrap:wrap; align-items:center; gap:8px 16px; margin:-5px 0 24px; }
.login-body .field-product-lockup strong { color:#f5c431; font-size:12px; font-weight:700; letter-spacing:.18em; }
.login-body .field-product-lockup span { color:#a4b5db; font-size:10px; font-weight:600; letter-spacing:.1em; }
.login-body .login-lead { font-size:22px; font-weight:500; line-height:1.4; margin-bottom:16px; }
.login-body .field-login-description { max-width:390px; color:#aebddd; font-size:16px; line-height:1.6; }
.login-body .login-card { position:relative; z-index:1; }
@media(min-width:761px) and (max-width:1000px) {
 .login-body .login-intro h1 { font-size:clamp(36px,4.7vw,47px); }
}
@media(max-width:760px) {
 .login-body .login-intro { min-height:210px; text-align:center; }
 .login-body .login-intro h1 { font-size:clamp(36px,10vw,44px); }
 .login-body .field-product-lockup { justify-content:center; margin:12px 0 18px; }
 .login-body .login-lead { display:block; font-size:18px; margin:0; }
 .login-body .field-login-description { display:none; }
 .login-body .internal-tag { margin-top:16px; }
}

/* Avisos da operação: compactos, sem interromper o formulário em andamento. */
.notification-host { flex:0 0 auto; }
.notification-host[hidden],.notification-panel[hidden],.notification-toast[hidden],.notification-count[hidden] { display:none; }
.notification-bell { position:relative; display:grid; place-items:center; width:44px; height:44px; padding:10px; border:1px solid var(--border-color); border-radius:9px; background:var(--card-bg); color:var(--text-main); cursor:pointer; }
.notification-bell svg { width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:1.65; stroke-linecap:round; stroke-linejoin:round; }
.notification-bell:hover,.notification-bell[aria-expanded=true] { color:var(--zaaz-blue); border-color:var(--zaaz-blue); }
.notification-count { position:absolute; top:-6px; right:-7px; min-width:21px; padding:3px 4px; border-radius:12px; background:var(--zaaz-blue); color:white; font-size:10px; line-height:1.3; font-weight:600; }
.notification-panel { position:fixed; z-index:150; top:86px; left:12px; right:auto; display:flex; flex-direction:column; width:min(390px,calc(100vw - 24px)); max-height:min(68dvh,560px); overflow:hidden; padding:16px; border:1px solid var(--border-color); border-radius:12px; background:var(--card-bg); color:var(--text-main); box-shadow:0 12px 40px rgba(15,23,42,.16); }
.notification-list { min-height:0; overflow-y:auto; overscroll-behavior:contain; }
.notification-panel > :not(.notification-list) { flex-shrink:0; }
.notification-header { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.notification-header h3 { margin:0; font-size:16px; }
.notification-text-button,.notification-clear { border:0; border-radius:6px; background:transparent; color:var(--zaaz-blue); padding:8px; cursor:pointer; font-size:12px; }
.notification-help,.notification-status,.notification-empty { margin:9px 0; color:var(--text-muted); font-size:12px; line-height:1.5; }
.notification-status { color:var(--danger); }
.notification-item { display:flex; align-items:flex-start; gap:6px; border-bottom:1px solid var(--border-color); }
.notification-open { display:flex; flex:1; min-width:0; flex-direction:column; gap:5px; border:0; border-radius:7px; background:transparent; color:var(--text-main); padding:13px 9px; text-align:left; cursor:pointer; overflow-wrap:anywhere; }
.notification-open strong { font-size:13px; font-weight:600; }.notification-open span { font-size:13px; }.notification-open time { font-size:11px; color:var(--text-muted); }
.notification-open:hover,.notification-text-button:hover,.notification-remove:hover,.notification-clear:hover { background:var(--input-bg); }
.notification-remove,.notification-toast-close { flex:0 0 36px; height:36px; border:0; border-radius:7px; background:transparent; color:var(--text-muted); cursor:pointer; font-size:22px; }
.notification-remove { margin-top:6px; }.notification-clear { display:block; margin:10px 0 0 auto; }.notification-clear:disabled { color:var(--text-muted); cursor:default; }
.notification-toast { position:fixed; right:20px; bottom:20px; z-index:140; width:min(360px,calc(100vw - 32px)); padding:16px 44px 10px 16px; border:1px solid var(--border-color); border-left:4px solid var(--zaaz-blue); border-radius:10px; background:var(--card-bg); color:var(--text-main); box-shadow:0 8px 32px rgba(15,23,42,.16); animation:notificationReveal .18s ease-out; }
.notification-toast p { margin:0 0 7px; font-size:13px; line-height:1.5; overflow-wrap:anywhere; }.notification-toast .notification-text-button { padding-left:0; }.notification-toast-close { position:absolute; top:6px; right:4px; }
@keyframes notificationReveal { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:translateY(0); } }
@media(max-width:700px) { .notification-host { align-self:center; }.notification-toast { right:16px; bottom:16px; } }
@media(prefers-reduced-motion:reduce) { .notification-toast { animation:none; } }
