:root{color-scheme:dark;--bg:#0c0e21;--surface:#181a33;--line:#2e2a4c;--text:#faf7ff;--muted:#c8c2de;--purple:#a77cf1;--pink:#ed6dc1;--cyan:#75dfea;--glow-purple:0 0 0 1px #a77cf1,0 0 18px -3px #a77cf1b3;--glow-cyan:0 0 0 1px #75dfea,0 0 16px -4px #75dfeaa0}*{box-sizing:border-box}
/* Garantia: o atributo hidden precisa vencer QUALQUER display:flex/grid declarado por uma classe (ex.: .fields, .metrics)
   na mesma tag — sem isso, telas que escondem um <form class="fields" hidden> via JS (ex.: /operacao ao assumir a etapa)
   ficam com hidden=true no DOM mas continuam visíveis (display:flex), porque CSS de autor sempre vence a folha padrão
   do navegador, mesmo com especificidade igual. */
[hidden]{display:none!important}body{margin:0;background:var(--bg);color:var(--text);font:16px/1.5 'Segoe UI',Arial,sans-serif}h1{font-size:32px;line-height:1.2}h2{font-size:22px}a{color:#dbc0ff}button,input,select,textarea{font:inherit}button,a{touch-action:manipulation}input,select,textarea{width:100%;padding:12px;border-radius:9px;border:1px solid #70608d;background:#13172e;color:var(--text);min-height:46px}label{display:block;margin:12px 0}button{padding:12px 18px;min-height:46px;border:1px solid var(--purple);border-radius:9px;background:#1a1830;color:#fff;cursor:pointer;margin:6px 6px 6px 0;transition:box-shadow .2s ease,border-color .2s ease,transform .12s ease}
button:hover:not(:disabled),button:focus-visible:not(:disabled){box-shadow:var(--glow-purple);border-color:#c3a8ff}
button:active:not(:disabled){transform:translateY(1px)}
button:disabled{opacity:.45;cursor:default}
button.secondary{background:#151628;border-color:#3a3656;color:var(--muted)}
button.secondary:hover:not(:disabled),button.secondary:focus-visible:not(:disabled){border-color:#5b5580;color:var(--text);box-shadow:0 6px 20px -8px #000000a0}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--cyan);outline-offset:3px}.brand-header{display:flex;gap:20px;align-items:center;padding:22px 36px;border-bottom:1px solid var(--line);background:#141831}.brand-header img{width:65px;height:74px;object-fit:contain;transform:none}.brand-header strong{display:block;letter-spacing:2px}.brand-header span{display:block;color:#e9b9e5}.flow{max-width:1300px;margin:auto;padding:25px}.surface{padding:24px;border:1px solid #23223f;border-radius:16px;background:linear-gradient(165deg,#181a33,#12142699);box-shadow:0 20px 44px -24px #000000b0,inset 0 1px 0 #ffffff0a;margin:20px 0}.fields{display:flex;gap:20px;align-items:end;flex-wrap:wrap}.fields label{flex:1;min-width:200px}.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.metric{padding:20px;background:#28264b;border-radius:12px}.metric span{display:block;color:var(--muted)}.metric strong{display:block;font-size:40px;color:var(--cyan)}.check-row{display:flex;align-items:center;gap:16px;padding:15px 4px;border-bottom:1px solid var(--line)}.check-row input{width:26px;height:26px;min-height:26px;accent-color:var(--purple)}.check-row span{flex:1}.check-row small{display:block;color:var(--muted)}.ok,.success{color:#8de8c6}.pending{color:#efcb79}.divergence{border-left:5px solid #f4a356;background:#392740;padding:18px;margin-top:12px}.help{font-size:14px;color:var(--muted)}.split{display:grid;grid-template-columns:1fr 1fr;gap:24px}.client-option{display:block;width:100%;text-align:left;background:#292949}.account-nav{display:flex;gap:15px;align-items:center;flex-wrap:wrap;padding:12px 25px;border-bottom:1px solid var(--line);font-size:14px}.account-nav a{text-decoration:none}.account-name{margin-right:auto}.notice{padding:14px 25px;background:#4b2c3c;color:#ffdc9e}.notice.success{background:#19372e;color:#a0f0cb}img[src$="logo.png"]{object-fit:contain!important;transform:none!important}.brand-slogan{display:block;color:#e8b3db}.attachment-link{display:inline-block;padding:12px;background:#30254d;border-radius:8px}.autocomplete{position:absolute;z-index:8;background:#1b2140;border:1px solid #ab82da;border-radius:10px;max-height:260px;overflow:auto;width:100%}.autocomplete button{display:block;width:100%;text-align:left;background:none;border:0;margin:0}.autocomplete-wrap{position:relative}.divergence-banner{padding:16px;background:#492840;color:#ffe1af;border:1px solid #ce8c6d;border-radius:12px;margin:15px 0}.date-choice{display:flex;gap:8px}.date-choice button{margin:0}.date-choice input{min-width:0}@media(max-width:700px){.split{grid-template-columns:1fr}.flow{padding:16px}.surface{padding:17px}.brand-header{padding:16px}.metrics{gap:8px}.metric{padding:12px}.metric strong{font-size:30px}.fields{gap:8px}.check-row{flex-wrap:wrap}.check-row b{font-size:12px}.account-nav{font-size:12px}.account-nav button{font-size:12px}}
.password-field{position:relative;display:block;width:100%}
.password-field input{padding-right:46px}
.password-toggle{position:absolute;right:4px;top:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;width:34px;height:34px;min-height:34px;padding:0;margin:0;border:0;background:none;color:var(--muted);cursor:pointer}
.password-toggle:hover,.password-toggle:focus-visible{color:var(--text)}
.password-toggle svg{width:19px;height:19px;pointer-events:none}

/* Identidade compartilhada. A imagem oficial não recebe deformação ou rotação. */
body{background-image:radial-gradient(ellipse at 0% 0%,#4c1a6a22,transparent 45%),radial-gradient(ellipse at 100% 100%,#0d3a4620,transparent 42%);background-attachment:fixed}
img[src$="logo.png"]{rotate:none!important;scale:none!important;translate:none!important;clip-path:none!important;object-fit:contain!important;object-position:center!important;aspect-ratio:auto;flex-shrink:0;filter:none!important}
.brand-header,.admin-header,body.board header{background:linear-gradient(110deg,#241030,#140f22 65%,#101827);border-bottom:1px solid #3a2f52;box-shadow:0 1px 0 #a77cf12e}
.auth-card{border-color:#755089;background:linear-gradient(135deg,#301c45,#18122d);box-shadow:0 20px 80px #0005}
.auth-card img{height:90px;width:auto}.auth-card .brand-slogan{margin-top:8px;font-size:18px!important}
.logo-area .brand-slogan{margin-top:0;margin-left:0;flex-basis:auto}.logo-area{gap:16px}.brand-slogan{font-style:normal;transform:none}

/* MSA: assinatura autoral discreta. Manter este padrao nas telas futuras. */
body::after{content:"";position:fixed;z-index:9999;width:96px;height:28px;right:10px;bottom:10px;background:url('/msa-assin.png') center/contain no-repeat;filter:invert(1);mix-blend-mode:screen;opacity:.38;pointer-events:none}
body.display-tv::after{width:82px;height:24px;opacity:.28}
@media(max-width:750px){body::after{width:72px;height:22px;right:8px;bottom:8px}}
.password-entry{display:flex;align-items:stretch;gap:8px}.password-entry input{min-width:0;flex:1}
/* Variante "Mostrar" (texto, ao lado do campo) usada só em .password-entry (ex.: chave de autorização da TV).
   Escopada: sem isso, sobrescrevia (por especificidade igual + ordem no arquivo) o botão-olho padrão
   de TODOS os campos de senha/PIN do sistema, que é position:absolute — o botão ficava largo (min-width:88px)
   mas continuava "grudado" no canto do input, estourando pra fora da caixa. */
.password-entry .password-toggle{position:static;width:auto;min-width:88px;margin:0;padding:0 12px}

/* Relatório operacional A4, compartilhado com TV e tablet. */
.operations-page .schedule-tabs [aria-current=page]{font-weight:700}
.operations-page #operationReport{overflow-x:auto}
.operations-page .reconciliation-table{width:100%;border-collapse:collapse;font-size:14px;margin:18px 0}
.operations-page .reconciliation-table th,.operations-page .reconciliation-table td{border:1px solid #84778e;padding:8px;text-align:left;vertical-align:top}
.operations-page .report-divergence{background:#581b2b;color:#fff}
@media print{
 @page{size:A4 landscape;margin:12mm}
 body.operations-page{background:#fff!important;color:#000!important;font-size:10pt}
 .operations-page>header,.operations-page>nav,.operations-page>#notice,.operations-page::after{display:none!important}
 .operations-page main{max-width:none!important;width:auto!important;padding:0!important;margin:0!important}
 .operations-page main>*:not(#operationReport){display:none!important}
 .operations-page #operationReport{display:block!important;overflow:visible;border:0;background:#fff;color:#000;padding:0;box-shadow:none}
 .operations-page .reconciliation-table{font-size:8pt;table-layout:fixed}
 .operations-page .reconciliation-table td,.operations-page .reconciliation-table th{padding:4px;border:1px solid #555;overflow-wrap:anywhere;color:#000;background:#fff}
 .operations-page .reconciliation-table thead{display:table-header-group}
 .operations-page .reconciliation-table tr{break-inside:avoid}
 .operations-page .report-divergence td{font-weight:bold;border-top:2px solid #000}
}

/* Impressão universal (4.2): áreas com data-print; o botão é criado por common.js. */
.print-button{margin:6px 0 10px}
@media print{
 html:has(body.print-one),body.print-one{background:#fff!important;color:#000!important;font:10pt Arial,sans-serif!important;height:auto!important;overflow:visible!important}
 body.print-one>header,body.print-one>nav,body.print-one #notice,body.print-one::after{display:none!important}
 body.print-one main{display:block!important;max-width:none!important;width:auto!important;padding:0!important;margin:0!important;overflow:visible!important}
 body.print-one main *:not(.print-target):not(:has(.print-target)):not(.print-target *){display:none!important}
 .print-target{display:block!important;border:0!important;padding:0!important;margin:0!important;box-shadow:none!important}
 .print-target::before{content:"K EVENTOS · " attr(data-print) "\A Emitido em " attr(data-printed-at) " · Horário de Brasília";white-space:pre-line;display:block;font:bold 14pt Arial,sans-serif;margin-bottom:10px}
 .print-target,.print-target *{color:#000!important;background:#fff!important;box-shadow:none!important;text-shadow:none!important}
 .print-target button,.print-target input,.print-target select,.print-target label:has(select),.print-target .print-button{display:none!important}
 .print-target[data-print-omit-last] th:last-child,.print-target[data-print-omit-last] td:last-child{display:none!important}
 .print-target .table-wrap{overflow:visible!important}
 .print-target table{width:100%;border-collapse:collapse;font-size:9pt}
 .print-target th,.print-target td{border:1px solid #777!important;padding:4px 5px;text-align:left;vertical-align:top;overflow-wrap:anywhere}
 .print-target thead{display:table-header-group}.print-target tr{break-inside:avoid}
 .print-target summary{display:none!important}.print-target details{display:block!important}
}

.task-assignee{display:block;align-self:flex-start;max-width:100%;margin:0 0 8px;font-size:1.15em;overflow-wrap:anywhere}.task-assignee-name{display:inline-block;max-width:100%;box-sizing:border-box;padding:8px 12px;border:1px solid currentColor;border-radius:var(--ui-radius,10px);background:var(--ui-card-bg,#211831);box-shadow:0 0 10px currentColor;box-shadow:0 0 12px color-mix(in srgb,currentColor 24%,transparent);font-weight:900;line-height:1.25}
.operations-page .schedule-tabs{display:flex;flex-wrap:wrap;gap:10px;margin:18px 0}
.operations-page .schedule-tabs .btn{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;min-height:46px;padding:12px 18px;border:1px solid #3a3656;border-radius:9px;background:#171628;color:var(--text);font:inherit;font-weight:600;text-decoration:none;transition:background .15s,border-color .15s,box-shadow .15s}
.operations-page .schedule-tabs .btn:hover{background:#211f3d;border-color:var(--purple)}
.operations-page .schedule-tabs .btn[aria-current=page]{background:#201d3a;border-color:var(--purple);box-shadow:var(--glow-purple)}
.operations-page .schedule-tabs .btn:focus-visible{outline:3px solid var(--cyan);outline-offset:3px}
#teamSignatureDialog{max-width:520px;width:90%;background:#201831;color:#fff;border:1px solid #aa7ed4;border-radius:14px;padding:24px}#teamSignatureDialog::backdrop{background:#000a}.signature-row{display:flex;gap:10px;margin:12px 0}.signature-row label{flex:1}.signature-row input{width:100%}
