/* Revisão visual v0.3.1. Regras de cálculo permanecem em index.html. */
:root{--ink:#223127;--muted:#59675d;--bg:#f3f5f1;--line:#dce5db;--shadow:0 8px 28px rgba(28,48,32,.055)}
html{scroll-behavior:smooth}
body{color:var(--ink);font-size:14px;line-height:1.45}
.app,.main,.content,.section,.cards,.card,.card-body,.resource-shell,.resource-left,.resource-right{min-width:0}
.content{max-width:1740px;padding:30px clamp(20px,2.5vw,42px) 64px}
.sidebar{z-index:10}
.topbar{min-width:0}
.breadcrumb{min-width:0;flex-wrap:wrap}
.headline{align-items:flex-start}
.headline>div:first-child{min-width:0}
.headline h1{font-size:clamp(24px,2vw,32px);line-height:1.16}
.headline .sub,.section-head p,.card-caption{font-size:12px;line-height:1.55}
.section-head{align-items:flex-start;flex-wrap:wrap}
.section-head>div,.card-header>div{min-width:0}
.section-head h2{font-size:21px}
.card-header{align-items:flex-start;flex-wrap:wrap}
.card-title{font-size:15px;line-height:1.35}
.card-body{min-width:0}
.cards{grid-template-columns:minmax(0,1.28fr) minmax(0,1fr);align-items:stretch}
.cards>.card{min-width:0}
.view-main-charts{grid-template-columns:minmax(0,1.16fr) minmax(0,1fr)}
.stat,.secondary-item,.resource-kpi,.acomp-metric,.callout,.fleet-card{min-width:0;overflow-wrap:anywhere}
.stat-number,.secondary-item b,.resource-kpi strong,.acomp-metric strong,.callout b{overflow-wrap:anywhere;line-height:1.18}
.stat-meta,.secondary-item small,.resource-kpi span{line-height:1.45}
.classic-stats .stat{min-height:156px}
.secondary-item{align-items:flex-start}
.secondary-item>div{min-width:0}
.critical-block>span{min-width:0;overflow-wrap:anywhere}
.critical-block small{font-size:11px}
.stage-val,.acomp-day,.route-row,.rank,.resource-rank{min-width:0}
.stages-values{grid-template-columns:repeat(3,minmax(0,1fr))}
.stage-val strong{overflow-wrap:anywhere}
.permanence-label,.rank-top,.route-row,.acomp-shift-head{align-items:flex-start}
.permanence-label>span:first-child,.rank-top>span:first-child,.route-row>div:first-child,.acomp-shift-head>strong:first-child{min-width:0;overflow-wrap:anywhere}
.route-value,.rank-top>span:last-child,.permanence-label>span:last-child{flex-shrink:0;text-align:right}
.rank-top{line-height:1.4}
.rank-sub{font-size:11px}
.chart-bars{min-width:480px;gap:9px;margin-bottom:4px}
.chart-bars .bar-group label{font-size:10px}
.card-body:has(>.chart-bars){overflow-x:auto}
.acomp-flow-card .acomp-flow{padding:4px 22px 20px}
.acomp-flow-track{height:38px}
.acomp-flow-caption{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:8px 14px}
.acomp-flow-caption span{min-width:0;line-height:1.4}
.acomp-daily,.acomp-shifts,.acomp-audit{padding:4px 22px 21px}
.acomp-day{grid-template-columns:52px minmax(0,1fr) 74px}
.acomp-day-value{white-space:nowrap}
.acomp-hours{margin:0 22px 24px;width:calc(100% - 44px);min-width:510px}
.acomp-charts>.card:has(.acomp-hours){overflow-x:auto}
.acomp-hour-label{font-size:10px}
.acomp-audit strong{font-size:16px}
.acomp-quality span{line-height:1.4}
.table-wrap,.resource-table-wrap,.resource-fields-wrap{max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-color:#a9bca9 #eff3ed;scrollbar-width:thin}
.table-wrap{position:relative}
.data-table{min-width:900px}
.resource-table{min-width:410px}
.data-table td,.data-table th{font-size:12px;padding:12px 14px}
.data-table td{white-space:nowrap}
.data-table td.route-cell{min-width:220px;max-width:360px;white-space:normal;line-height:1.45}
.data-table tr[data-id]:focus-visible{outline:2px solid #28754c;outline-offset:-2px;background:#edf5e9}
.table-hint{color:#6d7c70;font-size:11px;padding:9px 18px 12px;line-height:1.4}
.foot-actions{flex-wrap:wrap}
.foot-actions .muted{font-size:12px}
.pagination button{height:36px;width:36px}
.fleet-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.fleet-card{box-shadow:var(--shadow)}
.fleet-head>div:first-child{min-width:0}
.fleet-id{overflow-wrap:anywhere}
.fleet-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.fleet-stats>div{min-width:0}
.fleet-grid .fleet-stats b{white-space:normal;overflow-wrap:anywhere;font-size:18px}
.fleet-more{font-size:12px;color:#5d705f;background:#ecf2e9;border:1px solid #d9e5d4;border-radius:10px;padding:13px 16px;margin:-4px 0 18px}
.fleet-more b{color:#2a5135}
.resource-shell{grid-template-columns:minmax(300px,.72fr) minmax(0,1.35fr)}
.resource-table-wrap{max-height:480px}
.resource-detail-kpis b{overflow-wrap:anywhere}
.resource-meta strong,.resource-rank span{overflow-wrap:anywhere}
.resource-ranks{grid-template-columns:repeat(2,minmax(0,1fr))}
.resource-fields-disclosure{border-top:1px solid var(--line)}
.resource-fields-disclosure summary{cursor:pointer;padding:16px 22px;color:#33523a;font-size:12px;font-weight:800;background:#f6f9f4}
.resource-fields-disclosure summary:hover{background:#eef4eb}
.resource-fields-wrap{max-height:420px;overflow:auto}
.resource-fields{min-width:620px}
.rank-extra{margin-top:10px;border-top:1px solid var(--line)}
.rank-extra summary{font-size:11px;color:#537552;font-weight:800;cursor:pointer;padding:12px 0}
.rank-extra .rank{padding-left:6px}
.callout b{font-size:clamp(18px,1.6vw,23px)}
.dictionary-action{margin-bottom:18px}
.acronym-table{min-width:660px}
.acronym-table td{white-space:normal;line-height:1.5}
.acronym-table td:first-child{font-size:14px}
.tag{white-space:normal;line-height:1.3}
.instructions{min-width:0}
.codebox{overflow-x:auto;white-space:pre-wrap;overflow-wrap:anywhere}
.upload-area:focus-visible{outline:2px solid #28754c;outline-offset:3px}
.note{font-size:12px}
.import-error{background:#fff1ee;border-left-color:#bd5a4e;color:#8c3c32}
.data-state{display:inline-block;font-size:10px;font-weight:800;border-radius:6px;padding:3px 6px;white-space:nowrap}
.data-state--missing{background:#f1f3f0;color:#606e61}
.data-state--invalid{background:#faeae8;color:#9e3b31}
.data-state--zero{background:#eaf2e6;color:#50754b}
.data-state--review{background:#f8eedf;color:#90641e}
@media(max-width:1300px){
  .cards,.view-main-charts{grid-template-columns:minmax(0,1fr)}
  .resource-shell{grid-template-columns:minmax(0,1fr)}
  .resource-table-wrap{max-height:340px}
  .fleet-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .critical-strip{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:1050px){
  .critical-strip{grid-template-columns:1fr}
  .critical-block{min-height:0}
  .location-grid{grid-template-columns:1fr}
  .map-pending{min-height:160px}
}
@media(max-width:850px){
  .content{padding:22px 20px 48px}
  .topbar{padding:0 20px}
  .headline-actions{width:100%}
  .headline-actions .btn{flex:1 1 auto}
  .resource-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .classic-stats,.secondary-strip{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:620px){
  .sidebar{width:58px;flex-basis:58px}
  .content{padding:16px 12px 38px}
  .topbar{padding:0 12px}
  .top-right{gap:5px}
  .topbar .mode-pill{max-width:105px;text-align:center;line-height:1.2;white-space:normal}
  .breadcrumb{gap:4px;font-size:10px}
  .breadcrumb>b{display:block;flex-basis:100%}
  .headline h1{font-size:23px}
  .board-intro>div:first-child{padding:20px}
  .banner-visual{display:none}
  .classic-stats,.secondary-strip,.acomp-metrics,.resource-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .classic-stats .stat{padding:14px;min-height:148px}
  .classic-stats .stat-number{font-size:24px}
  .stat.unknown .stat-number{font-size:14px}
  .secondary-item{padding:12px}
  .secondary-item img{width:30px;height:30px}
  .secondary-item b{font-size:17px}
  .acomp-metric{padding:13px}
  .acomp-metric small{min-height:0;font-size:10px}
  .acomp-metric strong{font-size:23px}
  .acomp-flow-caption{grid-template-columns:1fr}
  .stages-values{grid-template-columns:1fr}
  .stage-val{padding:5px 0 5px 10px}
  .fleet-grid{grid-template-columns:1fr}
  .resource-ranks{grid-template-columns:1fr}
  .resource-detail-kpis{grid-template-columns:repeat(2,minmax(0,1fr));padding:14px}
  .resource-detail-kpis b{font-size:18px}
  .resource-meta{margin:0 14px 14px}
  .resource-detail-header{padding:16px}
  .raw-grid{grid-template-columns:1fr}
  .acomp-day{grid-template-columns:42px minmax(0,1fr) 64px;gap:6px}
  .acomp-day-value{font-size:10px}
  .acomp-hours{margin:0 15px 20px;width:510px}
  .card-header{padding:17px 16px 12px}
  .card-body{padding:0 16px 18px}
  .location-grid{padding:0 16px 16px}
  .modal-header,.modal-content{padding:18px}
}

/* v0.3.2: painel exploratório isolado dos indicadores executivos */
.area-warning{border-color:#e7c780;background:#fff8e9;color:#735526}
.area-controls{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px 17px;margin:0 0 16px;box-shadow:var(--shadow)}
.area-controls label{font-weight:800;font-size:12px}.area-controls label small{display:block;font-weight:500;color:var(--muted)}
.area-controls select{min-width:190px;max-width:100%;padding:9px 12px;border:1px solid var(--line);border-radius:8px;background:#fbfcfa;color:var(--ink)}
.area-controls>span{color:var(--muted);font-size:11px}
.area-coverage{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:16px}
.area-coverage>div{background:#fff;border:1px solid var(--line);border-radius:10px;padding:13px;min-width:0}
.area-coverage strong{display:block;font-size:22px;line-height:1.1;overflow-wrap:anywhere}.area-coverage span{display:block;color:var(--muted);font-size:11px;margin-top:5px;line-height:1.35}
.area-metrics,.area-charts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:16px}
.area-metric .card-header,.area-chart .card-header{padding-bottom:10px}.area-metric .card-title small{font-size:10px;color:var(--muted);font-weight:550}
.area-primary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:0 20px 13px}.area-primary>div{background:#f3f8f1;border-radius:9px;padding:10px;min-width:0}
.area-primary small{display:block;color:var(--muted);font-size:10px}.area-primary strong{display:block;font-size:22px;line-height:1.15;margin-top:3px;overflow-wrap:anywhere}
.area-percentiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding:0 20px 12px}.area-percentiles span{font-size:11px;color:var(--muted);min-width:0}.area-percentiles b{color:var(--ink);overflow-wrap:anywhere}
.area-counts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding:12px 20px;border-top:1px solid var(--line)}.area-counts span{font-size:11px;line-height:1.3;min-width:0;overflow-wrap:anywhere}.area-counts b{color:#255d3b}
.area-metric-foot{font-size:10px;color:var(--muted);padding:0 20px 16px;margin:0;line-height:1.4}
.area-buckets{padding:0 20px 18px}.area-bucket{display:grid;grid-template-columns:74px minmax(0,1fr) 45px;gap:7px;align-items:center;margin:9px 0;font-size:11px}.area-bucket span{white-space:nowrap}.area-bucket b{text-align:right;font-variant-numeric:tabular-nums}.area-bucket-track{height:11px;background:#eaf0e8;border-radius:20px;overflow:hidden}.area-bucket-track i{display:block;height:100%;background:#4e9872;border-radius:20px}
.area-investigation{margin-bottom:16px}.area-table{min-width:970px}.area-table .area-reasons{min-width:300px;max-width:470px;white-space:normal;line-height:1.45;color:#865a21}.area-method ul{margin:0;padding-left:19px;font-size:12px;line-height:1.6}.area-method li+li{margin-top:7px}.area-sample-note{font-size:11px;color:var(--muted);line-height:1.5;margin:14px 0 0}
@media(max-width:1150px){.area-coverage{grid-template-columns:repeat(3,minmax(0,1fr))}.area-metrics,.area-charts{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.area-coverage{grid-template-columns:repeat(2,minmax(0,1fr))}.area-metrics,.area-charts{grid-template-columns:1fr}.area-controls{align-items:stretch;flex-direction:column}.area-controls select{width:100%}}
@media(max-width:460px){.area-coverage{gap:7px}.area-coverage strong{font-size:18px}.area-primary strong{font-size:20px}.area-percentiles,.area-counts,.area-primary,.area-buckets{padding-left:14px;padding-right:14px}}
.area-sensitivity{margin-bottom:16px}.area-sensitivity-grid{min-width:760px}.area-sensitivity-grid td,.area-sensitivity-grid th{white-space:nowrap}.area-sensitivity-grid td:nth-child(2){min-width:190px}.area-raw-row{background:#eef6eb;font-weight:750}.area-sensitivity-note{padding:2px 20px 17px;color:var(--muted);font-size:11px;line-height:1.5;margin:0}
.area-issue-tools{display:flex;align-items:center;gap:9px;flex-wrap:wrap;padding:0 20px 14px}.area-issue-tools label{font-size:11px;font-weight:800;color:var(--ink)}.area-issue-tools select{max-width:100%;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:#fbfcfa;color:var(--ink)}.area-issue-tools span{color:var(--muted);font-size:11px}
.area-table{min-width:1040px}.area-table .area-reasons{min-width:180px;max-width:250px;white-space:normal}.area-issue-tag,.area-issue-more{display:inline-block;border-radius:6px;background:#fff2de;color:#795222;padding:4px 6px;margin:2px;font-size:10px;line-height:1.25}.area-issue-more{background:#eef3eb;color:#47634c}.area-detail-button{border:1px solid #a7c4ae;background:#f4f9f2;color:#285839;border-radius:7px;padding:6px 9px;font-size:11px;font-weight:800;white-space:nowrap}
@media(max-width:620px){.area-issue-tools{align-items:stretch;flex-direction:column;padding:0 15px 12px}.area-issue-tools select{width:100%}.area-sensitivity-note{padding:2px 15px 15px}}
@media(max-width:420px){
  .classic-stats,.secondary-strip,.resource-stats{gap:8px}
  .secondary-item{display:block}
  .secondary-item img{margin-bottom:4px}
  .fleet-stats{gap:7px}
  .fleet-grid .fleet-stats b{font-size:16px}
  .topbar .mode-pill{display:none}
}

/* Acabamento v0.3.1.1: leitura das tabelas, equipamento e horários. */
.table-tools{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 18px;background:#f3f7f0;border-top:1px solid var(--line);color:#506450;font-size:12px;line-height:1.45}
.table-tools>span{min-width:0}
.table-scroll-buttons{display:flex;gap:6px;flex:none}
.table-scroll-buttons .btn{min-width:38px;min-height:36px;padding:6px 10px;font-size:17px}
.table-scroll-buttons .btn:disabled{opacity:.38;cursor:default}
#all-rows,#fleet-table{overflow-x:scroll;overflow-y:hidden;scrollbar-gutter:stable;scrollbar-color:#648b69 #e8eee6;scrollbar-width:auto}
#all-rows::-webkit-scrollbar,#fleet-table::-webkit-scrollbar,.hours-scroll::-webkit-scrollbar{height:11px}
#all-rows::-webkit-scrollbar-thumb,#fleet-table::-webkit-scrollbar-thumb,.hours-scroll::-webkit-scrollbar-thumb{background:#799b7b;border:2px solid #e8eee6;border-radius:10px}
#all-rows::-webkit-scrollbar-track,#fleet-table::-webkit-scrollbar-track,.hours-scroll::-webkit-scrollbar-track{background:#e8eee6}
.request-table{min-width:1130px}
.request-table th:nth-child(-n+4){color:#385541;background:#edf4eb}
.request-table td:nth-child(4){min-width:142px}
.request-table td:first-child,.request-table td:nth-child(2),.request-table td:nth-child(3){font-weight:700}
.time-review{display:block;color:#95671f;font-size:10px;line-height:1.35;margin-top:4px;white-space:normal}
.request-cards{display:none}
#fleet-table .fleet-compare-table{min-width:1280px}
.fleet-compare-table td{vertical-align:top}
.fleet-compare-table td:nth-child(2){min-width:230px;max-width:300px;white-space:normal;line-height:1.4}
.fleet-compare-table td:nth-child(2) small{display:block;margin-top:4px;color:#748278;font-size:10px;overflow-wrap:anywhere}
.fleet-group-row th{background:#eaf2e7;color:#31533a;font-size:12px;letter-spacing:.1px;text-transform:none;padding:11px 14px}
.weight-warning{color:#936323;font-weight:750;white-space:normal}
.fleet-small{line-height:1.5}
.acomp-charts .card{min-height:0}
.hours-scroll{max-width:100%;overflow-x:auto;overflow-y:hidden;margin:0 22px 21px;scrollbar-color:#648b69 #e8eee6;scrollbar-width:auto}
.acomp-hours{width:100%;min-width:570px;height:230px;margin:0;padding:3px 0 0;gap:4px}
.acomp-hour{display:grid;grid-template-rows:minmax(0,1fr) 23px;align-items:end;justify-items:stretch;gap:0;height:100%}
.acomp-hour-bar{align-self:end;width:100%}
.acomp-hour-label{width:100%;height:auto;text-align:center;font-size:10px;line-height:20px}
.hours-hint{display:none;color:#627568;font-size:11px;padding:0 16px 5px}
.rank-unknown{background:#f4f6f3;border:1px dashed #d6ded2;border-radius:8px;padding:10px;margin:7px 0}
.rank-extra,.rank-extra .rank-content,.rank-unknown .rank-content{min-width:0}
.rank-extra summary{line-height:1.45;overflow-wrap:anywhere}
@media(max-width:850px){
  #all-rows,.request-tools{display:none}
  .request-cards{display:grid;gap:10px;padding:12px;background:#f7f9f6}
  .request-card{display:block;width:100%;padding:14px;background:#fff;border:1px solid var(--line);border-radius:10px;text-align:left;color:var(--ink);box-shadow:var(--shadow);min-width:0}
  .request-card:hover,.request-card:focus-visible{border-color:#7aa682;background:#fcfefb}
  .request-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;min-width:0}
  .request-card-top strong{font-size:14px;overflow-wrap:anywhere}
  .request-card-top .tag{flex:none;text-align:center}
  .request-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px}
  .request-card-grid>span{min-width:0}
  .request-card-grid small{display:block;font-size:10px;color:#697b6b}
  .request-card-grid b{display:block;font-size:12px;margin-top:3px;overflow-wrap:anywhere}
  .request-card-link{display:block;color:#3f7150;font-size:11px;font-weight:800;margin-top:11px}
  .hours-hint{display:block}
}
@media(max-width:620px){
  .table-tools{align-items:flex-start;flex-direction:column;padding:12px 14px}
  .table-scroll-buttons{align-self:flex-end}
  .hours-scroll{margin:0 15px 16px}
  .acomp-hours{height:195px}
  .request-card-grid{grid-template-columns:1fr}
}
