/* Tela "Enviar ao fiscal" — a ordem como um bilhete de despacho: corpo (rota, partes, conferência)
   e um canhoto destacável com a barra de conferência e o envio. Cores derivadas da cor base que o
   usuário escolheu na engrenagem (--godi-base); rem em tudo pra respeitar o tamanho de fonte dele. */
.ef{
    --ef-base: var(--godi-base, #004080);
    --ef-acao: var(--ef-base); /* texto/contorno de ação; no escuro vira um tom claro da cor base */
    --ef-tinta: #15233b;
    --ef-grafite: #5b6676;
    --ef-linha: #e1e6ed;
    --ef-papel: #ffffff;
    --ef-folha: var(--godi-content-bg, #eef1f5);
    --ef-ok: #1d7a55;
    --ef-pend: #b3261e;
    --ef-atencao: #a35f00;
    --ef-raio: 16px;
    font-family: 'Albert Sans', 'Source Sans Pro', system-ui, sans-serif;
    color: var(--ef-tinta);
}
body.dark-mode .ef{
    --ef-acao: color-mix(in srgb, var(--godi-base, #004080) 30%, #ffffff);
    --ef-tinta: #e8ecf2;
    --ef-grafite: #a9b3bf;
    --ef-linha: #4b545c;
    --ef-papel: #343a40;
    --ef-folha: #454d55;
    --ef-ok: #52c493;
    --ef-pend: #ff8f85;
    --ef-atencao: #f2b552;
}

/* ---------- Bilhete ---------- */
.ef-bilhete{
    display: grid;
    grid-template-columns: minmax(0, 1fr) 19.5rem;
    background: var(--ef-papel);
    border-radius: var(--ef-raio);
    box-shadow: 0 1px 2px rgba(21, 35, 59, .06), 0 18px 40px -28px rgba(21, 35, 59, .45);
    margin-bottom: 2.5rem;
    transition: opacity .2s ease;
}
.ef-ocupado .ef-bilhete{ opacity: .72; }
.ef-entrando{ animation: ef-surgir .3s ease-out both; }
@keyframes ef-surgir{ from{ opacity: 0; transform: translateY(4px); } to{ opacity: 1; transform: none; } }

.ef-corpo{ padding: 2.5rem 2.75rem 2.75rem; min-width: 0; }

.ef-sobretitulo{
    font-size: .6875rem; font-weight: 600; line-height: 1.5;
    letter-spacing: .14em; text-transform: uppercase;
    color: var(--ef-grafite); margin: 0 0 .85rem;
}
.ef-sep{ margin: 0 .55em; opacity: .55; }

.ef-titulo{
    font-family: 'Literata', Georgia, serif; font-optical-sizing: auto;
    font-weight: 600; font-size: 2.75rem; line-height: 1; letter-spacing: -.015em;
    color: var(--ef-tinta); margin: 0 0 1.1rem;
}

/* Rota: origem ---→ destino, o que a ordem de fato é (uma viagem). */
.ef-rota{ display: flex; align-items: center; flex-wrap: wrap; gap: .5rem 1rem; font-size: 1.2rem; margin: 0 0 2.25rem; }
.ef-rota__ponta{ display: inline-flex; align-items: center; white-space: nowrap; }
.ef-rota__cidade{ font-weight: 600; }
.ef-rota__cidade--vazia{ font-weight: 500; color: var(--ef-grafite); font-style: italic; }
.ef-rota__uf{
    margin-left: .45rem; padding: .05rem .35rem; border: 1px solid var(--ef-linha); border-radius: 5px;
    font-size: .6875rem; font-weight: 700; letter-spacing: .08em; color: var(--ef-grafite);
}
.ef-rota__trajeto{
    position: relative; flex: 0 1 9rem; min-width: 2.5rem; height: 2px;
    background: repeating-linear-gradient(90deg, color-mix(in srgb, var(--ef-acao) 55%, transparent) 0 7px, transparent 7px 13px);
}
.ef-rota__trajeto::after{
    content: ''; position: absolute; right: -1px; top: 50%; width: 8px; height: 8px;
    border-top: 2px solid var(--ef-acao); border-right: 2px solid var(--ef-acao);
    transform: translateY(-50%) rotate(45deg);
}

.ef-partes{
    display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.25rem 1.75rem;
    margin: 0; padding-top: 1.5rem; border-top: 1px solid var(--ef-linha);
}
.ef-parte dt{ font-size: .6875rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--ef-grafite); margin-bottom: .3rem; }
.ef-parte dd{ margin: 0; font-size: .95rem; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ef-parte dd a{
    color: var(--ef-tinta); text-decoration: underline; text-underline-offset: 4px;
    text-decoration-color: color-mix(in srgb, var(--ef-acao) 35%, transparent);
    transition: color .18s, text-decoration-color .18s;
}
.ef-parte dd a:hover{ color: var(--ef-acao); text-decoration-color: var(--ef-acao); }
.ef-vazio{ color: var(--ef-grafite); font-weight: 500; }

/* ---------- Conferência ---------- */
.ef-conferencia{ margin-top: 2.75rem; }
.ef-secao-linha{ display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1.1rem; }
.ef-secao{ font-family: 'Literata', Georgia, serif; font-weight: 600; font-size: 1.4rem; line-height: 1.2; margin: 0; color: var(--ef-tinta); }
.ef-nota{ margin: .75rem 0 0; color: var(--ef-grafite); line-height: 1.6; max-width: 38rem; }
.ef-tms{ display:flex; gap:.6rem; align-items:flex-start; margin: 1rem 0 0; padding: .75rem 1rem; border-radius: 12px; border: 1px solid var(--ef-linha); line-height: 1.5; max-width: 38rem; color: var(--ef-tinta); }
.ef-tms i{ margin-top: .2rem; }
.ef-tms--ok i{ color: var(--ef-ok); }
.ef-tms--erro{ border-color: var(--ef-atencao); }
.ef-tms--erro i{ color: var(--ef-atencao); }

.ef-botao-fantasma{
    display: inline-flex; align-items: center; gap: .5rem;
    border: 0; background: transparent; color: var(--ef-acao);
    font: inherit; font-size: .875rem; font-weight: 600;
    padding: .5rem .85rem; border-radius: 999px; cursor: pointer;
    transition: background-color .2s;
}
.ef-botao-fantasma i{ transition: transform .5s ease; }
.ef-botao-fantasma:hover:not(:disabled){ background: color-mix(in srgb, var(--ef-acao) 12%, transparent); }
.ef-botao-fantasma:hover:not(:disabled) i{ transform: rotate(180deg); }
.ef-botao-fantasma:disabled{ color: var(--ef-grafite); cursor: default; }
.ef-girando i{ animation: ef-girar .8s linear infinite; }
@keyframes ef-girar{ to{ transform: rotate(360deg); } }

.ef-lista{ list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .6rem; }
.ef-item{
    display: grid; grid-template-columns: 1.75rem minmax(0, 1fr) auto; gap: .95rem; align-items: start;
    padding: 1rem 1.15rem; border-radius: 12px;
    border: 1px solid var(--ef-linha); background: var(--ef-papel);
    transition: border-color .2s, box-shadow .2s;
}
.ef-item:hover{ border-color: color-mix(in srgb, var(--ef-base) 28%, var(--ef-linha)); box-shadow: 0 10px 24px -18px rgba(21, 35, 59, .55); }
.ef-item--erro{ border-color: color-mix(in srgb, var(--ef-pend) 24%, var(--ef-linha)); }
.ef-item--aviso{ border-color: color-mix(in srgb, var(--ef-atencao) 30%, var(--ef-linha)); background: color-mix(in srgb, var(--ef-atencao) 5%, var(--ef-papel)); }
.ef-item__marca{
    width: 1.75rem; height: 1.75rem; border-radius: 50%; display: grid; place-items: center;
    font-size: .75rem; color: #fff; background: var(--ef-grafite);
}
.ef-item--erro .ef-item__marca{ background: var(--ef-pend); }
.ef-item--aviso .ef-item__marca{ background: var(--ef-atencao); }
.ef-item--ok .ef-item__marca{ background: var(--ef-ok); }
.ef-item--carregando .ef-item__marca{ background: transparent; color: var(--ef-acao); font-size: 1rem; }
.ef-item__texto{ font-size: .95rem; line-height: 1.5; padding-top: .12rem; }
.ef-item__detalhes{ list-style: none; margin: .55rem 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: .35rem; }
.ef-item__detalhes li{
    font-size: .78rem; line-height: 1.4; padding: .2rem .65rem; border-radius: 999px;
    background: color-mix(in srgb, var(--ef-tinta) 6%, transparent); color: var(--ef-grafite);
}

.ef-corrigir{
    align-self: center; display: inline-flex; align-items: center; gap: .5rem; white-space: nowrap;
    font-size: .8125rem; font-weight: 600; color: var(--ef-acao);
    padding: .45rem .9rem; border-radius: 999px;
    border: 1px solid color-mix(in srgb, var(--ef-acao) 40%, transparent);
    transition: background-color .18s, color .18s, border-color .18s;
}
.ef-corrigir i{ font-size: .7rem; transition: transform .18s; }
.ef-corrigir:hover, .ef-corrigir:focus-visible{ background: var(--ef-base); border-color: var(--ef-base); color: #fff; text-decoration: none; }
.ef-corrigir:hover i{ transform: translateX(3px); }

.ef-oks{ margin-top: 1.25rem; }
.ef-oks summary{
    display: inline-flex; align-items: center; gap: .55rem; list-style: none; cursor: pointer;
    font-size: .9rem; font-weight: 600; color: var(--ef-ok);
    padding: .4rem .7rem; margin-left: -.7rem; border-radius: 8px; transition: background-color .18s;
}
.ef-oks summary::-webkit-details-marker{ display: none; }
.ef-oks summary:hover{ background: color-mix(in srgb, var(--ef-ok) 9%, transparent); }
.ef-oks summary i{ font-size: .7rem; transition: transform .2s; }
.ef-oks[open] summary i{ transform: rotate(90deg); }
.ef-lista--oks{ margin-top: .4rem; gap: 0; }
.ef-lista--oks .ef-item{ padding: .55rem .7rem; border-color: transparent; background: transparent; }
.ef-lista--oks .ef-item:hover{ box-shadow: none; background: color-mix(in srgb, var(--ef-tinta) 3%, transparent); }
.ef-lista--oks .ef-item__marca{ width: 1.35rem; height: 1.35rem; font-size: .6rem; margin: .1rem .2rem 0; }

/* ---------- Canhoto destacável ---------- */
.ef-canhoto{
    position: relative;
    border-left: 2px dashed var(--ef-linha);
    border-radius: 0 var(--ef-raio) var(--ef-raio) 0;
    background: color-mix(in srgb, var(--ef-base) 3%, var(--ef-papel));
}
/* Furos da picotagem, da cor do fundo da página. */
.ef-canhoto::before, .ef-canhoto::after{
    content: ''; position: absolute; left: -12px; width: 22px; height: 22px; border-radius: 50%;
    background: var(--ef-folha);
}
.ef-canhoto::before{ top: -11px; }
.ef-canhoto::after{ bottom: -11px; }
.ef-canhoto--ok.ef-canhoto{ background: color-mix(in srgb, var(--ef-ok) 4%, var(--ef-papel)); }

.ef-canhoto__miolo{ position: sticky; top: 1.25rem; padding: 2.5rem 2rem 2rem; display: flex; flex-direction: column; }

/* Manifesto: uma marca por item conferido, na ordem da conferência. */
.ef-manifesto{ display: flex; gap: 3px; margin: .35rem 0 1.6rem; }
.ef-manifesto__marca{ flex: 1; height: .5rem; border-radius: 2px; background: var(--ef-linha); }
.ef-manifesto__marca--ok{ background: var(--ef-ok); }
.ef-manifesto__marca--erro{ background: var(--ef-pend); }
.ef-manifesto__marca--aviso{ background: var(--ef-atencao); }
.ef-manifesto__marca--carregando{ background: var(--ef-base); animation: ef-pulsar 1.1s ease-in-out infinite; }
@keyframes ef-pulsar{ 50%{ opacity: .3; } }
.ef-bilhete--enviada .ef-manifesto__marca{ animation: ef-preencher .35s ease-out both; animation-delay: calc(var(--i) * 45ms); }
@keyframes ef-preencher{ from{ background: var(--ef-linha); transform: scaleY(.4); } }

.ef-frase{ font-family: 'Literata', Georgia, serif; font-weight: 600; font-size: 1.6rem; line-height: 1.15; margin: 0 0 .55rem; }
.ef-canhoto--pend .ef-frase{ color: var(--ef-pend); }
.ef-canhoto--ok .ef-frase{ color: var(--ef-ok); }
.ef-canhoto--atencao .ef-frase{ color: var(--ef-atencao); }
.ef-apoio{ font-size: .85rem; line-height: 1.55; color: var(--ef-grafite); margin: 0 0 1.75rem; }

.ef-botao{
    display: flex; width: 100%; align-items: center; justify-content: center; gap: .6rem;
    padding: .9rem 1rem; border-radius: 12px; border: 0; cursor: pointer;
    font: inherit; font-size: .95rem; font-weight: 600; text-decoration: none;
    transition: transform .18s ease, box-shadow .18s ease, background-color .18s ease, color .18s ease;
}
.ef-botao:hover{ text-decoration: none; }
.ef-botao--principal{ background: var(--ef-base); color: #fff; }
.ef-botao--principal i{ transition: transform .25s ease; }
.ef-botao--principal:hover:not(:disabled){
    color: #fff; transform: translateY(-1px);
    box-shadow: 0 12px 24px -12px color-mix(in srgb, var(--ef-base) 80%, transparent);
}
.ef-botao--principal:hover:not(:disabled) .fa-paper-plane{ transform: translate(3px, -3px); }
.ef-botao--principal:active:not(:disabled){ transform: none; box-shadow: none; }
.ef-botao--principal:disabled{
    cursor: not-allowed;
    background: color-mix(in srgb, var(--ef-base) 18%, var(--ef-papel));
    color: color-mix(in srgb, var(--ef-tinta) 45%, transparent);
}
.ef-botao--discreto{ background: transparent; color: var(--ef-grafite); margin-top: .5rem; }
.ef-botao--discreto:hover{ color: var(--ef-tinta); background: color-mix(in srgb, var(--ef-tinta) 6%, transparent); }

.ef :focus-visible{ outline: 3px solid color-mix(in srgb, var(--ef-acao) 55%, transparent); outline-offset: 2px; }

.ef-motivo{ font-size: .78rem; text-align: center; color: var(--ef-grafite); margin: .65rem 0 0; }
.ef-erro{
    font-size: .85rem; line-height: 1.45; color: var(--ef-pend);
    background: color-mix(in srgb, var(--ef-pend) 8%, var(--ef-papel));
    border-radius: 10px; padding: .65rem .8rem; margin: 0 0 1rem;
}
.ef-hora{ font-size: .75rem; text-align: center; color: var(--ef-grafite); margin: 1.75rem 0 0; }

/* Carimbo: o momento do envio. */
.ef-carimbo{
    align-self: center; display: flex; flex-direction: column; align-items: center;
    margin: 0 0 1.9rem; padding: .55rem 1.5rem .6rem;
    color: var(--ef-ok); border: 3px solid currentColor; border-radius: 10px;
    box-shadow: inset 0 0 0 2px var(--ef-papel), inset 0 0 0 3.5px currentColor;
    transform: rotate(-6deg);
    animation: ef-carimbar .55s cubic-bezier(.2, .9, .25, 1.3) .35s both;
}
.ef-carimbo__titulo{ font-weight: 800; font-size: 1.45rem; letter-spacing: .22em; text-transform: uppercase; line-height: 1.1; padding-left: .22em; }
.ef-carimbo__data{ font-size: .72rem; font-weight: 600; letter-spacing: .06em; margin-top: .15rem; }
@keyframes ef-carimbar{
    0%{ opacity: 0; transform: scale(1.9) rotate(-15deg); }
    60%{ opacity: 1; transform: scale(.94) rotate(-5deg); }
    100%{ opacity: 1; transform: scale(1) rotate(-6deg); }
}

/* ---------- Telas menores: o canhoto desce, a picotagem vira horizontal ---------- */
@media (max-width: 991.98px){
    .ef-bilhete{ grid-template-columns: minmax(0, 1fr); }
    .ef-canhoto{ border-left: 0; border-top: 2px dashed var(--ef-linha); border-radius: 0 0 var(--ef-raio) var(--ef-raio); }
    .ef-canhoto::before, .ef-canhoto::after{ top: -12px; bottom: auto; }
    .ef-canhoto::before{ left: -11px; }
    .ef-canhoto::after{ left: auto; right: -11px; }
    .ef-canhoto__miolo{ position: static; padding: 2rem 1.75rem; }
    .ef-partes{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 575.98px){
    .ef-corpo{ padding: 1.75rem 1.25rem 2rem; }
    .ef-titulo{ font-size: 2.2rem; }
    .ef-rota{ font-size: 1.05rem; }
    .ef-item{ grid-template-columns: 1.75rem minmax(0, 1fr); }
    .ef-corrigir{ grid-column: 2; justify-self: start; }
    .ef-canhoto__miolo{ padding: 1.75rem 1.25rem; }
}
@media (prefers-reduced-motion: reduce){
    .ef *, .ef-entrando{ animation: none !important; transition: none !important; }
}
