@import url('/design/tokens.css');
@import url('/design/assets/fonts/fonts.css');

html:root{color-scheme:light;--bg:#F3F5F8;--panel:#fff;--panel2:#F7F9FC;--panel-2:#F7F9FC;--card:#fff;--surface:#fff;--border:#D7DFE9;--line:#D7DFE9;--text:#17243A;--texto:#17243A;--ink:#17243A;--tinta:#17243A;--muted:#52647B;--sub:#52647B;--green:#176642;--verde:#176642;--blue:#315FAA;--azul:#315FAA;--teal:#315FAA;--yellow:#895300;--amarelo:#895300;--red:#AC3042;--vermelho:#AC3042;--body:'IBM Plex Sans',Arial,sans-serif;--cond:'IBM Plex Sans',Arial,sans-serif}
html{background:#F3F5F8}
html:root{--laranja:#9B4B13;--roxo:#62509C}
body.sgx-central,body.sgx-public{background:#F3F5F8!important;color:#17243A!important;font-family:'IBM Plex Sans',Arial,sans-serif!important;font-size:15px;line-height:1.5;max-width:none!important;margin:0!important;-webkit-font-smoothing:antialiased}
body.sgx-central{padding:0 0 50px 208px!important;min-height:100vh}
body.sgx-central *,body.sgx-public *{box-sizing:border-box}
body.sgx-central h1,body.sgx-public h1{color:#17243A;font-family:'IBM Plex Sans',Arial,sans-serif;font-size:clamp(25px,2.4vw,34px);font-weight:700;letter-spacing:-.025em;line-height:1.2}
body.sgx-central h2,body.sgx-public h2{color:#17243A;font-family:'IBM Plex Sans',Arial,sans-serif}
body.sgx-central :is(.nm,.row .rn,.av .placa){color:#17243A}
body.sgx-central .msg{color:#AC3042}
body.sgx-central .msg.ok{color:#176642}
body.sgx-central .eyebrow{color:#52647B!important}
body.sgx-central .muted,body.sgx-central .subtitle,body.sgx-central .sub,body.sgx-central .dt,body.sgx-central .tl,body.sgx-central .ts,body.sgx-central .camlbl,body.sgx-central .metric-detail{color:#52647B!important}
body.sgx-central a,body.sgx-public a{color:#315FAA}
body.sgx-central :is(button,input,select,textarea),body.sgx-public :is(button,input,select,textarea){font-family:'IBM Plex Sans',Arial,sans-serif;font-size:max(16px,1em)}
body.sgx-central :is(button,input,select,textarea,a):focus-visible,body.sgx-public :is(button,input,select,textarea,a):focus-visible{outline:3px solid #315FAA!important;outline-offset:2px}
body.sgx-central button,body.sgx-public button{min-height:44px;min-width:44px;border-radius:6px;cursor:pointer}
body.sgx-central :is(input,select,textarea),body.sgx-public :is(input,select,textarea){min-height:44px;background:#fff!important;color:#17243A!important;border:1px solid #8B9AAF!important;border-radius:6px;color-scheme:light!important}
body.sgx-central input[type=checkbox],body.sgx-central input[type=radio],body.sgx-public input[type=checkbox],body.sgx-public input[type=radio]{min-height:20px;width:20px;accent-color:#315FAA}
body.sgx-central :is(.shell,main){max-width:1500px}
body.sgx-central .shell{width:calc(100% - 48px);margin:0 auto;padding-top:28px}
body.sgx-central>main:not(.shell){margin:0 auto!important;padding:28px 24px 70px;max-width:1500px!important}
body.sgx-central :is(.card,.section,.panel,.metric,.item,details,.notice,.source,.camera,.batch,.crow,.truck,.controls,.summary,.box){background:#fff!important;color:#17243A!important;border:1px solid #D7DFE9!important;border-radius:8px;box-shadow:none!important}
body.sgx-central :is(.card,.section,.panel,.metric){box-shadow:0 1px 2px #17243A0d!important}
body.sgx-central .head,body.sgx-central .topbar,body.sgx-central .top{background:transparent;color:#17243A;border-color:#D7DFE9}
body.sgx-central :is(.warn,.camera.alert,.notice.warn){background:#FFF8E9!important;color:#654100!important;border-color:#C89536!important}
body.sgx-central :is(.bad,.source.old,.notice.error){background:#FFF1F2!important;color:#8B2433!important;border-color:#AC3042!important}
body.sgx-central .ensaio{background:#EEF3FA!important;color:#22406C!important;border-color:#315FAA!important}
body.sgx-central #erro:not(:empty){background:#FFF1F2!important;color:#8B2433!important;border:1px solid #AC3042!important}
body.sgx-central :is(.primary,button.primary){background:#315FAA!important;color:#fff!important;border:1px solid #315FAA!important}
body.sgx-central :is(.primary,button.primary):hover:not(:disabled){background:#244E91!important}
body.sgx-central :is(button:not(.primary):not(.danger):not(.foto):not(.sgx-menu-toggle),.filter){background:#fff;color:#315FAA;border:1px solid #AABBD1}
body.sgx-central button.danger{background:#AC3042;color:#fff;border-color:#AC3042}
body.sgx-central button.foto{background:#E9F1FB;color:#224E8F;border:2px solid #315FAA}
body.sgx-central :is(.pick button.on,.pick button.selected,.filter.active){background:#343879!important;color:#fff!important;border-color:#343879!important}
body.sgx-central .filtros button.on{background:#343879!important;color:#fff!important;border-color:#343879!important}
body.sgx-central .filtros button.alerta:not(.on){background:#FFF1F2!important;color:#AC3042!important;border-color:#AC3042!important}
body.sgx-central :is(.positive,.ok,.chip.impresso,.chip.resolvido){color:#176642}
body.sgx-central :is(.negative,.chip.erro,.chip.desconhecido,.chip.cancelado){color:#AC3042}
body.sgx-central :is(.status,.pill,.chip,.tag){background:#EEF3F8;border-color:#D7DFE9;color:#203B65}
/* Cores operacionais preservam o significado dos estados de cada tela. */
body.sgx-central :is(.status.approved,.status.paid,.status.ready,.chip.impresso,.chip.resolvido,.chip.feito,.pill.v,.tag.ok,.tag.v),body.sgx-central .truck .chip,body.sgx-central .crow .chip{background:#EDF8F1;border-color:#176642;color:#176642}
body.sgx-central :is(.status.draft,.status.pending,.chip.pendente,.chip.executando,.chip.mid,.pill.y,.pill.l,.tag.al,.tag.a,.tag.l),body.sgx-restrictions .tag.v,body.sgx-central .truck .chip.mid,body.sgx-central .crow .chip.mid{background:#FFF8E9;border-color:#895300;color:#895300}
body.sgx-central :is(.status.cancelled,.status.divergence,.chip.erro,.chip.desconhecido,.chip.cancelado,.chip.long,.tag.b),body.sgx-central .truck .chip.long,body.sgx-central .crow .chip.long{background:#FFF1F2;border-color:#AC3042;color:#AC3042}
body.sgx-central .status.submitted{background:#EEF3FA;border-color:#315FAA;color:#315FAA}
body.sgx-central .pill.rx{background:#F0EEFA;border-color:#62509C;color:#62509C}
body.sgx-central .tag.no{background:#EEF3F8;border-color:#D7DFE9;color:#52647B}
body.sgx-launch :is(input,textarea).f-verde{border:2px solid #176642!important;background:#EDF8F1!important}
body.sgx-launch :is(input,textarea).f-amarelo{border:2px solid #895300!important;background:#FFF8E9!important}
body.sgx-central :is(table,.tablewrap,.table-wrap){background:#fff;color:#17243A}
body.sgx-central :is(.tablewrap,.table-wrap){max-width:100%;overflow-x:auto;border:1px solid #D7DFE9;border-radius:8px}
body.sgx-central table{border-collapse:collapse;font-variant-numeric:tabular-nums}
body.sgx-central :is(th,td){border-color:#D7DFE9;color:#17243A}
body.sgx-central th{background:#EFF3F8;color:#314461;font-weight:700}
body.sgx-central tbody tr:nth-child(even){background:#FAFBFD}
body.sgx-central tbody tr:hover{background:#F0F5FC}
body.sgx-central :is(.metric-value,.value,.tn){color:#17243A;font-variant-numeric:tabular-nums}
body.sgx-central .hidden,[hidden]{display:none!important}

.sgx-sidebar{position:fixed;z-index:10000;left:0;top:0;bottom:0;width:208px;display:flex;flex-direction:column;background:#111B34;color:#fff;padding:16px 10px;box-shadow:3px 0 14px #17243A18}
.sgx-brand{display:flex;align-items:center;gap:10px;padding:5px 8px 18px;border-bottom:1px solid #34425D;font-size:15px;line-height:1.2}
.sgx-brand img{display:block;width:40px;height:40px;object-fit:contain;background:#fff;border-radius:5px;padding:3px}
.sgx-brand strong{color:#fff}
.sgx-side-nav{display:grid;gap:2px;overflow-y:auto;padding:12px 0}
.sgx-side-nav a,.sgx-account a{display:flex;align-items:center;min-height:40px;padding:7px 12px;border-radius:6px;color:#E9F1FA!important;text-decoration:none;font-size:13.5px;font-weight:600}
/* Grupos do menu (30/10, direção "Compacto operacional"): divisor antes do primeiro item de cada
   grupo — painéis, dinheiro, relacionamento e administração. Só visual; a ordem e quem vê cada
   item seguem vindo de lib/menu.js. */
.sgx-side-nav a:is([data-menu-id="painel"],[data-menu-id="caixa"],[data-menu-id="avaliacoes"],[data-menu-id="chamados-conferir"],[data-menu-id="chamados-cadastro"]){margin-top:11px;position:relative}
.sgx-side-nav a:is([data-menu-id="painel"],[data-menu-id="caixa"],[data-menu-id="avaliacoes"],[data-menu-id="chamados-conferir"],[data-menu-id="chamados-cadastro"])::before{content:'';position:absolute;top:-6px;left:12px;right:12px;border-top:1px solid #34425D}
.sgx-side-nav a:first-child{margin-top:0}
.sgx-side-nav a:first-child::before{content:none}
.sgx-side-nav a:hover,.sgx-account a:hover{background:#293856;color:#fff!important}
.sgx-side-nav a[aria-current=page]{background:#343879;border-left:3px solid #60B3CD;color:#fff!important}
.sgx-account{margin-top:auto;padding:12px 4px 4px;border-top:1px solid #34425D;display:grid;gap:5px}
.sgx-account span{padding:4px 8px;color:#fff;font-size:13px;overflow-wrap:anywhere}
.sgx-account button{background:transparent;color:#fff;border:1px solid #667796;text-align:left;min-height:44px;padding:8px 12px}
body.sgx-central .sgx-account button{background:transparent!important;color:#fff!important;border-color:#667796!important}
.sgx-menu-toggle{display:none;position:fixed;z-index:10001;top:8px;left:8px;width:auto!important;margin:0!important;min-height:44px;padding:8px 14px;background:#111B34;color:#fff;border:1px solid #34425D;box-shadow:0 2px 9px #17243A44}

body.sgx-operation #conteudo{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 18px;align-items:start}
body.sgx-operation #conteudo>.sec,body.sgx-operation #conteudo>.empty{grid-column:1/-1}
body.sgx-operation #conteudo>.card{margin:0;min-width:0}
body.sgx-operation .head{max-width:1500px;margin:0 auto 18px;padding:26px 26px 16px!important}
body.sgx-operation .head{flex-wrap:wrap}
.sgx-page-title{display:flex;align-items:center;gap:12px}
.sgx-page-title img{width:48px;height:48px;flex:none;object-fit:contain}
body.sgx-central #groupings{grid-template-columns:repeat(2,minmax(0,1fr))}
body.sgx-central #groupings .barrow{grid-template-columns:minmax(0,1fr) auto;gap:8px 16px;align-items:center;margin:0;padding:14px 0;border-bottom:1px solid #E6ECF3}
body.sgx-central #groupings .barrow:last-child{border-bottom:0;padding-bottom:0}
body.sgx-central #groupings .barrow>:first-child{grid-column:1;grid-row:1;min-width:0;font-size:14px;font-weight:600;line-height:1.4;overflow-wrap:anywhere;color:#17243A}
body.sgx-central #groupings .barrow>:last-child{grid-column:2;grid-row:1;font-size:21px;font-weight:700;font-variant-numeric:tabular-nums;color:#17243A}
body.sgx-central #groupings .bar{grid-column:1/-1;grid-row:2;width:100%;height:8px;background:#E6ECF3;border-radius:4px}
body.sgx-central #groupings .bar i{background:#315FAA;border-radius:4px}
@media(max-width:819px){body.sgx-central #groupings{grid-template-columns:1fr}}
body.sgx-operation #erro,body.sgx-operation #conteudo,body.sgx-operation .foot{max-width:1500px;margin-left:auto;margin-right:auto;padding-left:26px;padding-right:26px}
body.sgx-operation .sec{font-size:19px;letter-spacing:0;font-weight:700;color:#17243A}
body.sgx-operation .trio>div{background:#F3F6FB;border-color:#D7DFE9;padding:12px 8px;border-radius:8px}
body.sgx-operation .trio .tn{font-size:26px;font-variant-numeric:tabular-nums}
body.sgx-operation .trio .tn.a{color:#315FAA}
body.sgx-operation .trio .tn.v{color:#176642}
body.sgx-operation .trio .tn.y,body.sgx-operation .trio .sup{color:#895300}
body.sgx-operation .trio .tl{font-size:12px;letter-spacing:0;text-transform:none;font-weight:600;margin-top:5px;color:#314461}
body.sgx-operation .trio .ts{font-size:11px;line-height:1.4;color:#52647B}
/* Subcomponentes do tema anterior dentro das telas claras. */
body.sgx-central :is(.difference,.adjustment-total,.adjustment-item,.preview,.worker-row){background:#F7F9FC;color:#17243A;border-color:#D7DFE9}
body.sgx-central .difference.good .value{color:#176642}
body.sgx-central .difference.bad .value{color:#AC3042}
body.sgx-central .field label{color:#314461}
body.sgx-central :is(.reason-box,.policy){background:#FFF8E9;border-color:#C89536}
body.sgx-central :is(.reason-box label,.policy strong,.policy-rate,.preview-note.alert){color:#895300}
body.sgx-central #coverage{color:#895300!important}
body.sgx-central .message.info{background:#EEF3FA;color:#22406C;border-color:#AABBD1}
body.sgx-central .message.success{background:#EDF8F1;color:#176642;border-color:#176642}
body.sgx-central .message.error,body.sgx-central .seal{background:#FFF1F2;color:#8B2433;border-color:#AC3042}
body.sgx-central #linkHide{background:#fff!important;color:#315FAA;border-color:#AABBD1}
body.sgx-central .barra .tr{background:#E6ECF3}
body.sgx-launch .cols{gap:18px}
body.sgx-launch :is(.grid,.grid3){gap:10px 14px}
body.sgx-launch .section{padding:18px;margin-bottom:16px}
body.sgx-launch .plate{font-size:20px!important;font-weight:700}
body.sgx-launch .pick button{min-height:44px}
body.sgx-finance .table-wrap table{min-width:720px}

body.sgx-public{min-height:100vh;padding:24px!important}
body.sgx-public main{background:#fff;color:#17243A;border:1px solid #D7DFE9;border-radius:10px;box-shadow:0 6px 22px #17243A18!important}
.sgx-auth-brand{display:flex;align-items:center;gap:14px;margin-bottom:20px}
.sgx-auth-brand img{display:block;width:52px;height:52px;object-fit:contain;background:#fff;flex:none}
.sgx-auth-brand h1{margin:0}
.sgx-auth-brand .sub{margin:2px 0 0}
body.sgx-public a{color:#315FAA!important}
body.sgx-public :is(button,form button){background:#315FAA;color:#fff;border:1px solid #315FAA}
body.sgx-public .sub,body.sgx-public .muted{color:#52647B}
body.sgx-public #mensagem{color:#AC3042}
body.sgx-public #mensagem.ok{color:#176642}
body.sgx-central main>form>button{background:#315FAA!important;color:#fff!important;border-color:#315FAA!important}
body.sgx-password main{background:#fff;color:#17243A;border:1px solid #D7DFE9;box-shadow:0 6px 22px #17243A18}
body.sgx-password #mensagem{color:#AC3042}
body.sgx-password #mensagem.ok{color:#176642}

@media(max-width:1179px){body.sgx-central{padding-left:0!important;padding-top:56px!important}.sgx-menu-toggle{display:block}.sgx-sidebar{visibility:hidden;transform:translateX(-100%);transition:transform .18s ease,visibility .18s ease;width:min(280px,82vw);padding-top:64px;box-shadow:4px 0 22px #111B3480}.sgx-sidebar.sgx-open{visibility:visible;transform:translateX(0)}body.sgx-operation .head{padding-top:12px!important}}
@media(max-width:819px){body.sgx-operation #conteudo{grid-template-columns:1fr}body.sgx-central .shell{width:calc(100% - 28px);padding-top:16px}body.sgx-central>main:not(.shell){padding:16px 14px 56px}body.sgx-central :is(.grid.four,.grid.five){grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){body.sgx-central .shell{width:calc(100% - 24px)}body.sgx-operation .head,body.sgx-operation #erro,body.sgx-operation #conteudo,body.sgx-operation .foot{padding-left:12px;padding-right:12px}body.sgx-operation .sec{display:block;font-size:17px}body.sgx-operation .sec a{display:block;margin-top:6px}body.sgx-central :is(.grid3,.controls){grid-template-columns:1fr 1fr}body.sgx-central .topbar{flex-wrap:wrap}body.sgx-public{padding:12px!important}}
/* Pátio, retorno com tíquete vencido que saiu sem tíquete novo (cobrança perdida): borda vermelha. O escuro está em central-tema.css. */
body.sgx-central .crow.perdeu{border:2px solid var(--tm-r-borda)!important}

/* Tema escuro (E7): vale só em páginas que carregam design/tema.js (Chamados e Pátio), que põe data-tema="escuro" no <html>. Variáveis --tm-* em tokens.css.
   O que este arquivo fixa em claro (com !important) é refeito aqui, com mais especificidade. Regras próprias de cada tela ficam no CSS da tela. */
html[data-tema="escuro"]{background:#0A111E;color-scheme:dark}
html[data-tema="escuro"] body.sgx-central{background:var(--tm-fundo)!important;color:var(--tm-texto)!important}
html[data-tema="escuro"] body.sgx-central :is(h1,h2,h3){color:var(--tm-texto)}
html[data-tema="escuro"] body.sgx-central .muted{color:var(--tm-suave)!important}
html[data-tema="escuro"] body.sgx-central a{color:var(--tm-link)}
html[data-tema="escuro"] body.sgx-central .section{background:var(--tm-painel)!important;color:var(--tm-texto)!important;border-color:var(--tm-borda)!important;box-shadow:none!important}
html[data-tema="escuro"] body.sgx-central .top{color:var(--tm-texto)}
html[data-tema="escuro"] body.sgx-central .filter{background:var(--tm-btn-fundo)!important;color:var(--tm-btn-texto)!important;border:1px solid var(--tm-btn-borda)!important}
html[data-tema="escuro"] body.sgx-central .warn{background:var(--tm-aviso-fundo)!important;color:var(--tm-aviso-texto)!important;border-color:var(--tm-aviso-borda)!important}
html[data-tema="escuro"] body.sgx-central :is(button,a):focus-visible{outline:3px solid var(--tm-link)!important;outline-offset:2px}
html[data-tema="escuro"] body.sgx-central .sgx-page-title img{background:#fff;border-radius:6px;padding:3px}
/* O central.css fixa o fundo claro ao passar o mouse na linha (#F0F5FC, com texto claro por cima no escuro): no escuro, o mesmo cabeçalho de tabela do tema. */
html[data-tema="escuro"] body.sgx-central tbody tr:hover{background:var(--tm-cab-fundo)}
@media print{.sgx-sidebar,.sgx-menu-toggle{display:none!important}body.sgx-central{padding:0!important;background:#fff!important}}

/* Componentes compartilhados do estudo de isonomia (guia-componentes.proposta.css). */
.iso-number-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-3,12px);min-width:0}
.iso-number-card{display:block;min-width:0;padding:16px;background:var(--tm-painel);color:var(--tm-texto);border:1px solid var(--tm-borda);border-radius:var(--radius,8px);text-align:left}
.iso-number-card .iso-label{display:block;color:var(--tm-suave);font-size:13px;font-weight:600;line-height:1.35;overflow-wrap:anywhere}
.iso-number-card .iso-value{display:block;margin-top:6px;color:var(--tm-texto);font-size:clamp(24px,2.2vw,32px);font-weight:700;font-variant-numeric:tabular-nums;line-height:1.1}
.iso-number-card .iso-card-meta{display:block;margin-top:6px;color:var(--tm-suave);font-size:12px;line-height:1.4}
.iso-number-card[data-status="warning"]{background:var(--tm-a-fundo);border-color:var(--tm-a-borda)}
.iso-number-card[data-status="warning"] .iso-value{color:var(--tm-a-texto)}
.iso-number-card-action{width:100%;font:inherit;cursor:pointer}
.iso-number-card-action:hover{border-color:var(--tm-link)}
.iso-block-title{margin:0 0 12px;color:var(--tm-texto);font-size:20px;font-weight:700;line-height:1.3}
.iso-block-meta{margin:0 0 12px;color:var(--tm-suave)!important;font-size:13px;line-height:1.45}
.iso-block-meta:empty{display:none}
.iso-list-title{margin:4px 0 8px;color:var(--tm-texto);font-size:16px;font-weight:700}
.iso-notice{margin:0 0 14px;padding:12px 14px;border:1px solid var(--tm-n-borda)!important;border-radius:var(--radius,8px);background:var(--tm-n-fundo)!important;color:var(--tm-n-texto)!important;overflow-wrap:anywhere}
.iso-notice[data-status="success"]{border-color:var(--tm-v-borda)!important;background:var(--tm-v-fundo)!important;color:var(--tm-v-texto)!important}
.iso-notice[data-status="warning"]{border-color:var(--tm-aviso-borda)!important;background:var(--tm-aviso-fundo)!important;color:var(--tm-aviso-texto)!important}
.iso-notice[data-status="error"]{border-color:var(--tm-r-borda)!important;background:var(--tm-r-fundo)!important;color:var(--tm-r-texto)!important}
.iso-list{display:grid;gap:8px;margin:0;padding:0;list-style:none;min-width:0}
.iso-list-item{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;min-width:0;padding:12px;border:1px solid var(--tm-borda)!important;border-radius:var(--radius,8px);background:var(--tm-painel2)!important;color:var(--tm-texto)!important;overflow-wrap:anywhere}
.iso-list-item>*{min-width:0;overflow-wrap:anywhere}
.iso-list-empty{margin:0;padding:12px;border:1px dashed var(--tm-borda);border-radius:var(--radius,8px);color:var(--tm-suave);text-align:center}
.iso-table-wrap{max-width:100%;overflow-x:auto;border:1px solid var(--tm-borda);border-radius:var(--radius,8px)}
.iso-table{width:100%;border-collapse:collapse;background:var(--tm-painel);color:var(--tm-texto);font-size:13px;font-variant-numeric:tabular-nums}
.iso-table th{padding:11px 14px;background:var(--tm-cab-fundo);color:var(--tm-cab-texto);font-size:13px;font-weight:700;text-align:left;white-space:nowrap}
.iso-table td{padding:12px 14px;vertical-align:top;border-top:1px solid var(--tm-borda);color:var(--tm-texto);overflow-wrap:anywhere}
.iso-table tbody tr:nth-child(even){background:var(--tm-painel2)}

/* Direção "Compacto operacional" (30/10): cabeçalho enxuto, aplicado tela a tela.
   Cada tela entra nas listas :is(...) no seu próprio commit, com captura antes/depois
   em docs/direcao-compacta/. Só apresentação: texto, rotas e permissões não mudam. */
body:is(.sgx-operation,.sgx-painel,.sgx-launch,.sgx-caixa,.sgx-diarias,.sgx-pagar,.sgx-receber,.sgx-finance,.sgx-avaliacoes,.sgx-emails,.sgx-chamados,.sgx-restrictions,.sgx-usuarios,.sgx-pessoas) .sgx-page-title{gap:10px}
body:is(.sgx-operation,.sgx-painel,.sgx-launch,.sgx-caixa,.sgx-diarias,.sgx-pagar,.sgx-receber,.sgx-finance,.sgx-avaliacoes,.sgx-emails,.sgx-chamados,.sgx-restrictions,.sgx-usuarios,.sgx-pessoas) .sgx-page-title img{width:34px;height:34px}
body:is(.sgx-operation,.sgx-painel,.sgx-launch,.sgx-caixa,.sgx-diarias,.sgx-pagar,.sgx-receber,.sgx-finance,.sgx-avaliacoes,.sgx-emails,.sgx-chamados,.sgx-restrictions,.sgx-usuarios,.sgx-pessoas) h1.sgx-page-title{font-size:clamp(21px,2vw,26px)}
@media(max-width:600px){body:is(.sgx-operation,.sgx-painel,.sgx-launch,.sgx-caixa,.sgx-diarias,.sgx-pagar,.sgx-receber,.sgx-finance,.sgx-avaliacoes,.sgx-emails,.sgx-chamados,.sgx-restrictions,.sgx-usuarios,.sgx-pessoas) h1.sgx-page-title{font-size:20px}body:is(.sgx-operation,.sgx-painel,.sgx-launch,.sgx-caixa,.sgx-diarias,.sgx-pagar,.sgx-receber,.sgx-finance,.sgx-avaliacoes,.sgx-emails,.sgx-chamados,.sgx-restrictions,.sgx-usuarios,.sgx-pessoas) .sgx-page-title img{width:28px;height:28px}}
/* Pessoas, Pagar e Receber: as ações do cabeçalho tinham flex:none e estouravam a tela no
   celular (Pessoas em 390px; Pagar/Receber em 360px). */
@media(max-width:600px){body:is(.sgx-pessoas,.sgx-pagar,.sgx-receber) .top{flex-direction:column;align-items:stretch;gap:8px}body:is(.sgx-pessoas,.sgx-pagar,.sgx-receber) .top>div:last-child{flex:0 1 auto;flex-wrap:wrap}}
/* Caixa e Diárias: no celular o resumo volta a 2 colunas (antes era 1 por linha; números primeiro, menos rolagem). */
@media(max-width:430px){body:is(.sgx-caixa,.sgx-diarias) .summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* Operação: menos espaço morto no cabeçalho (o conteúdo começa mais cedo). */
body.sgx-operation .head{margin-bottom:10px;padding:14px 26px 8px!important}
body.sgx-operation .head .muted{font-size:13px}
/* Uma lista isolada entre dois títulos usa a largura disponível. Pares de navios
   continuam lado a lado. O resumo das câmeras quebra abaixo do título. */
body.sgx-operation #conteudo>.card:not(.card + .card):not(:has(+ .card)){grid-column:1/-1}
body.sgx-operation #conteudo>.patio-observation{flex-wrap:wrap;gap:8px}
body.sgx-operation #conteudo>.patio-observation>b{flex-basis:100%;font-size:14px;font-weight:500;line-height:1.5;white-space:normal;overflow-wrap:anywhere}
/* Operação: semáforo no trio do navio (30/10, como no Pátio) — azul estimado, verde realizado,
   âmbar falta, laranja superou. Escuro pelos tokens; sem :has o trio só perde a cor. */
body.sgx-operation .trio>div:has(.tn.a){background:#EEF3FA;border-color:#315FAA}
body.sgx-operation .trio>div:has(.tn.v){background:#EDF8F1;border-color:#176642}
body.sgx-operation .trio>div:has(.tn.y){background:#FFF8E9;border-color:#895300}
body.sgx-operation .trio>div:has(.sup){background:#FDF1E8;border-color:#9B4B13}
html[data-tema="escuro"] body.sgx-operation .trio>div:has(.tn.a){background:var(--tm-n-fundo);border-color:var(--tm-link)}
html[data-tema="escuro"] body.sgx-operation .trio>div:has(.tn.v){background:var(--tm-v-fundo);border-color:var(--tm-v-borda)}
html[data-tema="escuro"] body.sgx-operation .trio>div:has(.tn.y){background:var(--tm-a-fundo);border-color:var(--tm-a-borda)}
html[data-tema="escuro"] body.sgx-operation .trio>div:has(.sup){background:var(--tm-painel2);border-color:var(--tm-laranja)}
/* Painel: cabeçalho enxuto e grades que quebram no celular — a tela não tinha nenhuma
   media query e os valores em R$ saíam cortados no cartão em 390px. */
body.sgx-painel .head{margin-bottom:10px;padding-bottom:8px}
body.sgx-painel .head .muted{font-size:13px;overflow-wrap:anywhere}
@media(max-width:819px){body.sgx-painel .grid.g4{grid-template-columns:repeat(2,minmax(0,1fr))}body.sgx-painel .grid.g3{grid-template-columns:repeat(2,minmax(0,1fr))}body.sgx-painel .grid.g2{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){body.sgx-painel .grid.g3{grid-template-columns:1fr}body.sgx-painel .val{font-size:30px}body.sgx-painel .val.sm{font-size:22px}}
/* Painel: semáforo nos cartões (mesma leitura do Pátio, 30/10) — a cor que o cartão já tinha
   na barrinha e no valor vira borda e fundo tingido. Escuro pelos tokens; !important porque o
   tema genérico fixa fundo/borda de .card com !important. Nenhum número muda. */
body.sgx-painel .card.azul,html[data-tema="escuro"] body.sgx-painel .card.azul{background:var(--tm-n-fundo)!important;border-color:var(--tm-link)!important}
body.sgx-painel .card.verde,html[data-tema="escuro"] body.sgx-painel .card.verde{background:var(--tm-v-fundo)!important;border-color:var(--tm-v-borda)!important}
body.sgx-painel .card.amarelo,html[data-tema="escuro"] body.sgx-painel .card.amarelo{background:var(--tm-a-fundo)!important;border-color:var(--tm-a-borda)!important}
body.sgx-painel .card.vermelho,html[data-tema="escuro"] body.sgx-painel .card.vermelho{background:var(--tm-r-fundo)!important;border-color:var(--tm-r-borda)!important}
body.sgx-painel .card.laranja{background:#FDF1E8!important;border-color:#9B4B13!important}
/* As classes de cor também atingem o valor e a faixa superior do cartão. */
body.sgx-painel .val.azul{color:var(--tm-link)}
body.sgx-painel .val.verde{color:var(--tm-v-texto)}
body.sgx-painel .val.amarelo{color:var(--tm-a-texto)}
body.sgx-painel .val.vermelho{color:var(--tm-r-texto)}
body.sgx-painel .card.azul::before{background:var(--tm-link)}
body.sgx-painel .card.verde::before{background:var(--tm-v-borda)}
body.sgx-painel .card.amarelo::before{background:var(--tm-a-borda)}
body.sgx-painel .card.vermelho::before{background:var(--tm-r-borda)}
html[data-tema="escuro"] body.sgx-painel .card.laranja{background:var(--tm-painel2)!important;border-color:var(--tm-laranja)!important}
html[data-tema="escuro"] body.sgx-painel .val.azul{color:var(--tm-link)}
html[data-tema="escuro"] body.sgx-painel .val.verde{color:var(--tm-v-texto)}
html[data-tema="escuro"] body.sgx-painel .val.amarelo{color:var(--tm-a-texto)}
html[data-tema="escuro"] body.sgx-painel .val.vermelho{color:var(--tm-r-texto)}
html[data-tema="escuro"] body.sgx-painel .val.laranja{color:var(--tm-laranja)}

/* /patio: estrutura e especializações sobre os componentes compartilhados.
   30/10 (direção "Compacto operacional", aprovação por imagem): cabeçalho enxuto, Hoje em 4 colunas
   (o 4º cartão não fica órfão), seções com respiro interno e menos espaço morto — os números chegam
   à primeira dobra do celular. Nenhum dado muda; só apresentação. */
body.sgx-patio .shell{max-width:1320px;padding-bottom:64px}
body.sgx-patio .top{align-items:center;gap:16px;margin-bottom:12px}
body.sgx-patio .top h1{margin:0 0 2px;font-size:clamp(21px,2vw,26px)}
body.sgx-patio .top .sgx-page-title{gap:10px}
body.sgx-patio .top .sgx-page-title img{width:34px;height:34px}
body.sgx-patio .top p{margin:0;font-size:13px}
body.sgx-patio .page-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:8px}
body.sgx-patio .filter{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:6px 12px;border-radius:6px;text-decoration:none;font-weight:600;font-size:14px}
body.sgx-patio .iso-notice.source{padding:9px 12px;margin-bottom:10px}
body.sgx-patio .iso-section{min-width:0;margin:0 0 12px}
body.sgx-patio .section{padding:14px 16px}
body.sgx-patio h2.iso-block-title{margin:0 0 12px;font-size:20px}
body.sgx-patio #today-section .iso-number-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
body.sgx-patio .iso-number-card{box-shadow:none!important;padding:12px 14px}
body.sgx-patio .iso-number-card .iso-value{margin-top:3px;font-size:clamp(27px,2.4vw,34px)}
body.sgx-patio .iso-dataset{margin:12px 0 0;color:var(--tm-suave);font-size:13px;line-height:1.5;overflow-wrap:anywhere}
body.sgx-patio .yard-number-grid{margin-bottom:12px}
body.sgx-patio #yard-note{margin:0}
body.sgx-patio #movement-details{margin-top:0}
body.sgx-patio #movement-details>summary{cursor:pointer;list-style-position:inside}
body.sgx-patio #movement-details>.iso-block-meta{margin:0 0 8px}
body.sgx-patio .movement-table{min-width:1040px}
/* 30/10: a coluna Tíquete espremia a 49px e o número quebrava no meio (004274-770); número não quebra. */
body.sgx-patio .movement-table :is(td,th):nth-child(4){white-space:nowrap}
body.sgx-patio .movement-table tr.maneuver td{color:var(--tm-suave);font-style:italic}
body.sgx-patio .movement-table tr.review td:first-child{box-shadow:inset 3px 0 0 var(--tm-a-borda)}
body.sgx-patio .tag{display:inline-block;margin-right:6px;padding:1px 7px;border-radius:99px;font-size:11px;font-weight:800}
body.sgx-patio .toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 8px}
body.sgx-patio .toolbar h2{margin-bottom:4px}
body.sgx-patio .search{width:min(380px,100%);padding:9px 12px;border-radius:6px}
body.sgx-patio .truck{display:grid;grid-template-columns:minmax(140px,1.2fr) minmax(90px,.8fr) minmax(110px,1fr) minmax(110px,1fr) minmax(110px,1fr) auto;align-items:center;gap:12px}
body.sgx-patio .truck>div:first-child{min-width:0;overflow-wrap:anywhere}
body.sgx-patio .truck strong{display:block}
body.sgx-patio .truck .chip,body.sgx-patio .crow .chip{justify-self:start;max-width:100%;padding:4px 9px;border-radius:99px;font-size:12px;font-weight:800;white-space:normal;overflow-wrap:anywhere}
body.sgx-patio .crow{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;min-width:0}
body.sgx-patio .crow .plate{font-size:15px;font-weight:800;letter-spacing:.04em}
body.sgx-patio .crow .more{min-height:32px;padding:3px 9px;border-radius:99px;font-size:12px;font-weight:700}
body.sgx-patio .crow .plates{flex-basis:100%;color:var(--tm-suave);font-size:12px;overflow-wrap:anywhere}
body.sgx-patio .crow .age{margin-left:auto}
body.sgx-patio .batch{padding:2px 10px 8px;border-radius:var(--radius,8px)}
body.sgx-patio .batch>.fold{font-size:14px;min-height:40px}
body.sgx-patio .batch .crow{margin-top:5px}
body.sgx-patio .actions{display:grid;gap:8px}
body.sgx-patio .actions button{width:100%;min-height:44px;justify-content:flex-start;text-align:left;white-space:normal}
body.sgx-patio .fold{width:100%;display:flex;align-items:center;gap:10px;min-height:44px;padding:4px 0;border:0;background:none;color:var(--tm-texto);font:inherit;font-size:18px;font-weight:700;text-align:left;cursor:pointer}
body.sgx-patio .fold-meta{margin-left:auto;color:var(--tm-suave);font-size:13px;font-weight:500;text-align:right}
body.sgx-patio .fold .chev{flex:none;color:var(--tm-suave);font-size:22px;line-height:1;transition:transform .15s}
body.sgx-patio .fold[aria-expanded="true"] .chev{transform:rotate(90deg)}
body.sgx-patio .fold.sub{margin-top:10px;border-top:1px solid var(--tm-borda);font-size:14px;color:var(--tm-suave)}
body.sgx-patio .columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
body.sgx-patio #groupings .barrow{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px 16px;margin:0;padding:14px;border:1px solid var(--tm-borda);border-radius:var(--radius,8px);background:var(--tm-painel2)}
body.sgx-patio #groupings .barrow>:first-child{grid-column:1;grid-row:1;min-width:0;color:var(--tm-texto);font-size:14px;font-weight:600;line-height:1.4;overflow-wrap:anywhere}
body.sgx-patio #groupings .barrow>.bar{grid-column:1/-1;grid-row:2;width:100%;height:8px;border-radius:4px;background:var(--tm-borda)}
body.sgx-patio #groupings .barrow>.bar i{background:var(--tm-link);border-radius:4px}
body.sgx-patio #groupings .barrow>.bar-value{grid-column:2;grid-row:1;color:var(--tm-texto);font-size:18px;font-weight:700;font-variant-numeric:tabular-nums;text-align:right}
body.sgx-patio #groupings .barrow>.bar-note{grid-column:1/-1;grid-row:3;margin:0;color:var(--tm-suave);font-size:12px}
/* 28/10: a nota de divergência é o último filho do cartão e herdava `.barrow>:last-child` (coluna 2, linha 1, 21px) e cobria o número; fica na linha 3, abaixo da barra */
body.sgx-patio #groupings .barrow>.iso-list-note{grid-column:1/-1;grid-row:3;margin:0;color:var(--tm-suave);font-size:12px;font-weight:400;line-height:1.4;text-align:left;font-variant-numeric:normal}
body.sgx-patio .empty{margin:0;padding:12px;border:1px dashed var(--tm-borda);border-radius:var(--radius,8px);background:var(--tm-painel2);color:var(--tm-suave);text-align:center}
body.sgx-patio .rd-metrics{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}
body.sgx-patio .rd-metrics span{padding:7px 10px;border:1px solid var(--tm-borda);border-radius:var(--radius,8px);background:var(--tm-painel2);font-size:13px}
body.sgx-patio .rd-metrics strong{color:var(--tm-texto)}
body.sgx-patio .rd-item{display:grid;gap:5px;overflow-wrap:anywhere}
body.sgx-patio .rd-item p{margin:0;font-size:13px}
body.sgx-patio .rd-alert{color:var(--tm-a-texto);margin:0 0 12px}
body.sgx-patio .rd-columns{display:grid;grid-template-columns:2fr 1fr;gap:14px}
body.sgx-patio .rd-panel{min-width:0}
body.sgx-patio .fila-box{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:16px;align-items:start;margin-top:10px}
body.sgx-patio .fila-link{display:block;line-height:0}
body.sgx-patio .fila-img{width:100%;height:auto;aspect-ratio:704/480;object-fit:contain;border:1px solid var(--tm-borda);border-radius:var(--radius,8px);background:var(--tm-painel2)}
body.sgx-patio .fila-info{display:flex;flex-direction:column;gap:6px;min-width:0;margin-top:8px}
body.sgx-patio .fila-weg .fila-img{aspect-ratio:16/9}
body.sgx-patio .fila-weg-titulo{margin:0 0 6px;font-size:13px;font-weight:700}
body.sgx-patio .fila-hist{display:grid;gap:8px;margin-top:8px;max-height:320px;overflow-y:auto}
body.sgx-patio.iso-full-page-capture .fila-hist{max-height:none;overflow:visible}
body.sgx-patio .fila-row{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;width:100%;min-height:44px;padding:10px 12px;border:1px solid var(--tm-borda);border-radius:var(--radius,8px);background:var(--tm-painel2);color:var(--tm-texto);font:inherit;font-size:13px;text-align:left;cursor:pointer}
body.sgx-patio .fila-row.fila-sel{outline:2px solid var(--tm-link)}
body.sgx-patio .fila-row.fila-diverge{border-color:var(--tm-a-borda)}
body.sgx-patio .fila-hora{font-weight:800}
body.sgx-patio .fila-tag{margin-left:auto;padding:2px 8px;border:1px solid var(--tm-a-borda);border-radius:99px;font-size:11px;font-weight:700}
body.sgx-patio .fila-hist-item{min-width:0}
body.sgx-patio .sgx-number-grid{grid-template-columns:minmax(0,1fr);max-width:280px;margin-bottom:12px}
body.sgx-patio .iso-list-note{grid-column:1/-1;margin:0;color:var(--tm-suave);font-size:12px}
body.sgx-patio .iso-list-item.perdeu{border:2px solid var(--tm-r-borda)!important}
body.sgx-patio :is(.truck,.crow).antes-sair{border:2px solid var(--tm-a-borda)!important;background:var(--tm-a-fundo)!important}
body.sgx-patio .truck.antes-sair>strong{grid-column:1/-1;justify-self:start}

/* Direção E "Semáforo do pátio" (30/10, escolha do Alcione sobre imagem): cada número ganha a cor
   do que significa — azul presença/fluxo, âmbar esperando limpeza, verde pronto, vermelho tíquete
   vencido. Só cor e tamanho; nenhuma contagem ou regra muda. Os cartões são identificados pelos ids
   que a tela já tem (via :has; navegador sem :has só perde a cor, nunca o número). */
body.sgx-patio .iso-number-card{border-width:2px}
body.sgx-patio .iso-number-card .iso-value{font-size:clamp(32px,2.8vw,42px);letter-spacing:-.02em}
body.sgx-patio .iso-number-card .iso-label{font-weight:700;color:#314461}
/* Fundo e borda precisam vencer tanto o botão genérico quanto o painel escuro
   neutro de central-tema.css. Os mesmos tokens valem nos dois temas. */
body.sgx-patio .iso-number-card:is(:has(#entered),:has(#exited),:has(#yard-total)){border-color:var(--tm-link)!important;background:var(--tm-n-fundo)!important}
body.sgx-patio .iso-number-card:is(:has(#entered),:has(#exited),:has(#yard-total)) .iso-value{color:var(--tm-link)}
body.sgx-patio .iso-number-card:is(:has(#cleaned),:has(#clean-waiting)){border-color:var(--tm-v-borda)!important;background:var(--tm-v-fundo)!important}
body.sgx-patio .iso-number-card:is(:has(#cleaned),:has(#clean-waiting)) .iso-value{color:var(--tm-v-texto)}
body.sgx-patio .iso-number-card:has(#waiting-clean){border-color:var(--tm-a-borda)!important;background:var(--tm-a-fundo)!important}
body.sgx-patio .iso-number-card:has(#waiting-clean) .iso-value{color:var(--tm-a-texto)}
body.sgx-central.sgx-patio .iso-number-card[data-status="warning"]{border-color:var(--tm-r-borda)!important;background:var(--tm-r-fundo)!important}
body.sgx-central.sgx-patio .iso-number-card[data-status="warning"] .iso-value{color:var(--tm-r-texto)}
html[data-tema="escuro"] body.sgx-patio .iso-number-card .iso-label{color:var(--tm-suave)}
body.sgx-patio .truck .chip,body.sgx-patio .crow .chip{font-size:13px;padding:4px 10px}
@media(max-width:1000px){body.sgx-patio .truck{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}}
@media(max-width:850px){body.sgx-patio .columns,body.sgx-patio .fila-box{grid-template-columns:1fr}body.sgx-patio .rd-columns{grid-template-columns:1fr}body.sgx-patio .rd-metrics span{flex:1 1 130px}}
@media(max-width:819px){body.sgx-patio .iso-number-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){body.sgx-patio .top{align-items:flex-start;flex-direction:column;gap:6px}body.sgx-patio .top h1{font-size:20px}body.sgx-patio .top .sgx-page-title{gap:8px}body.sgx-patio .top .sgx-page-title img{width:28px;height:28px}body.sgx-patio .top p{font-size:12px}body.sgx-patio .page-actions{justify-content:flex-start;gap:6px}body.sgx-patio .filter{flex:1 1 auto;padding:5px 8px;font-size:13.5px}body.sgx-patio .section{padding:12px}body.sgx-patio .toolbar{align-items:stretch;flex-direction:column}body.sgx-patio .truck{display:flex;flex-wrap:wrap;align-items:center;gap:2px 10px;padding:8px 10px}body.sgx-patio .truck>div:first-child{flex:1 1 100%;display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 8px}body.sgx-patio .truck>div:first-child strong{display:inline;font-size:15px}body.sgx-patio .truck .muted{font-size:12px}body.sgx-patio .truck .chip{padding:2px 8px;font-size:11.5px}body.sgx-patio .crow{gap:3px 8px;padding:10px}body.sgx-patio .crow .plate{font-size:14px}body.sgx-patio .crow .muted{font-size:12px}body.sgx-patio .crow .age{margin-left:0}body.sgx-patio .iso-number-card{padding:10px 8px}body.sgx-patio .iso-number-card .iso-label{font-size:11.5px}body.sgx-patio .iso-number-card .iso-value{font-size:26px}body.sgx-patio .iso-dataset{margin-top:8px;font-size:12px}body.sgx-patio .iso-block-title{font-size:18px}body.sgx-patio .fold{font-size:16px}body.sgx-patio .fold.sub{font-size:14px}}
@media(max-width:360px){body.sgx-patio .iso-number-grid,body.sgx-patio #today-section .iso-number-grid{grid-template-columns:minmax(0,1fr)}}
