/* DMK 1.154 — carregamento seguro (painel da empresa e Central). Cor da empresa, claro/escuro. */
:root{--dmkc-surface:#fff;--dmkc-ink:#0f172a;--dmkc-muted:#64748b;--dmkc-line:rgba(148,163,184,.32);--dmkc-backdrop:rgba(15,23,42,.30);--dmkc-ok:#16a34a;--dmkc-err:#dc2626}
:is([data-theme=dark],[data-theme=escuro]){--dmkc-surface:#111827;--dmkc-ink:#f1f5f9;--dmkc-muted:#94a3b8;--dmkc-line:rgba(148,163,184,.22);--dmkc-backdrop:rgba(2,6,23,.55);--dmkc-ok:#22c55e;--dmkc-err:#f87171}
@media(prefers-color-scheme:dark){[data-theme=auto]{--dmkc-surface:#111827;--dmkc-ink:#f1f5f9;--dmkc-muted:#94a3b8;--dmkc-line:rgba(148,163,184,.22);--dmkc-backdrop:rgba(2,6,23,.55);--dmkc-ok:#22c55e;--dmkc-err:#f87171}}
[data-theme=dark] [data-theme=light],[data-theme=dark] [data-theme=claro]{--dmkc-surface:#fff;--dmkc-ink:#0f172a;--dmkc-muted:#64748b;--dmkc-line:rgba(148,163,184,.32);--dmkc-backdrop:rgba(15,23,42,.30);--dmkc-ok:#16a34a;--dmkc-err:#dc2626}
.dmk-carregamento,.dmk-carregamento-barra,[data-dmk-busy]{--dmkc-accent:var(--ws-primary,var(--central-accent,var(--primary,#2563eb)))}
.dmk-carregamento{position:fixed;inset:0;z-index:999990;display:flex;align-items:center;justify-content:center;padding:16px;background:var(--dmkc-backdrop);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);cursor:progress;animation:dmkcFade .16s ease}
.dmk-carregamento[hidden]{display:none!important}
.dmk-carregamento-card{box-sizing:border-box;width:min(380px,100%);display:grid;grid-template-columns:48px minmax(0,1fr);gap:14px;align-items:center;padding:20px 22px;border-radius:18px;border:1px solid var(--dmkc-line);border-top:4px solid var(--dmkc-accent);background:var(--dmkc-surface);color:var(--dmkc-ink);box-shadow:0 24px 70px rgba(15,23,42,.28);font-family:inherit;cursor:default;outline:none;animation:dmkcIn .2s ease}
.dmk-carregamento-icone{position:relative;width:48px;height:48px;border-radius:14px;display:grid;place-items:center;background:color-mix(in srgb,var(--dmkc-accent) 12%,transparent)}
.dmk-carregamento-spin{width:26px;height:26px;border-radius:50%;border:3px solid color-mix(in srgb,var(--dmkc-accent) 22%,transparent);border-top-color:var(--dmkc-accent);animation:dmkcSpin .8s linear infinite}
.dmk-carregamento-ok,.dmk-carregamento-erro{display:none}
.dmk-carregamento-texto{min-width:0}
.dmk-carregamento-texto b{display:block;font-size:15px;font-weight:800;line-height:1.3;color:var(--dmkc-ink)}
.dmk-carregamento-texto p{margin:4px 0 0;font-size:13px;line-height:1.45;color:var(--dmkc-muted);overflow-wrap:anywhere}
.dmk-carregamento-texto small{display:block;margin-top:6px;font-size:12px;font-weight:700;color:var(--dmkc-accent);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dmk-carregamento-texto small:empty{display:none}
.dmk-carregamento-card button{grid-column:1/-1;min-height:44px;border-radius:12px;border:1px solid var(--dmkc-line);background:transparent;color:var(--dmkc-ink);font:inherit;font-size:14px;font-weight:700;cursor:pointer}
.dmk-carregamento-card button[data-entendi]{border-color:var(--dmkc-accent);background:var(--dmkc-accent);color:#fff}
.dmk-carregamento-card button[hidden]{display:none}
.dmk-carregamento-card button:focus-visible{outline:3px solid color-mix(in srgb,var(--dmkc-accent) 40%,transparent);outline-offset:2px}
/* Concluído: o círculo vira um visto verde. */
.dmk-carregamento[data-estado=settling]{pointer-events:none;cursor:auto}
.dmk-carregamento[data-estado=done]{pointer-events:none;cursor:auto;background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none}
.dmk-carregamento[data-estado=done] .dmk-carregamento-card{border-top-color:var(--dmkc-ok)}
.dmk-carregamento[data-estado=done] .dmk-carregamento-icone{background:color-mix(in srgb,var(--dmkc-ok) 14%,transparent)}
.dmk-carregamento[data-estado=done] .dmk-carregamento-spin{display:none}
.dmk-carregamento[data-estado=done] .dmk-carregamento-ok{display:block;width:12px;height:22px;margin-top:-4px;border:solid var(--dmkc-ok);border-width:0 4px 4px 0;transform:rotate(45deg);animation:dmkcPop .25s ease}
.dmk-carregamento[data-estado=error] .dmk-carregamento-card{border-top-color:var(--dmkc-err)}
.dmk-carregamento[data-estado=error] .dmk-carregamento-icone{background:color-mix(in srgb,var(--dmkc-err) 14%,transparent)}
.dmk-carregamento[data-estado=error] .dmk-carregamento-spin{display:none}
.dmk-carregamento[data-estado=error] .dmk-carregamento-erro{display:block;font-size:24px;font-weight:900;color:var(--dmkc-err)}
/* Barra fina no topo para carregamentos automáticos. */
.dmk-carregamento-barra{position:fixed;top:0;left:0;right:0;height:3px;z-index:999991;overflow:hidden;pointer-events:none;background:color-mix(in srgb,var(--dmkc-accent) 15%,transparent)}
.dmk-carregamento-barra[hidden]{display:none!important}
.dmk-carregamento-barra::before{content:"";position:absolute;top:0;bottom:0;width:40%;background:var(--dmkc-accent);border-radius:3px;animation:dmkcBar 1.1s ease-in-out infinite}
/* Elemento clicado aguardando resposta: não aceita outro clique. */
[data-dmk-busy]{cursor:progress!important}
:is(button,a,[role=button],[role=menuitem],[role=tab])[data-dmk-busy]{opacity:.82}
/* Sem segundo spinner quando a própria tela já mostra o dela. */
:is(button,[role=button])[data-dmk-busy]:not(:disabled):not(:has([class*=spin],.spinner-border,.bi-arrow-repeat,.bi-hourglass-split))::before{content:"";display:inline-block;width:12px;height:12px;margin-right:6px;vertical-align:-2px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:dmkcSpin .7s linear infinite}
tr[data-dmk-busy]>*{opacity:.7}
@keyframes dmkcSpin{to{transform:rotate(360deg)}}
@keyframes dmkcFade{from{opacity:0}to{opacity:1}}
@keyframes dmkcIn{from{opacity:0;transform:translateY(6px) scale(.98)}to{opacity:1;transform:none}}
@keyframes dmkcPop{from{transform:rotate(45deg) scale(.4)}to{transform:rotate(45deg) scale(1)}}
@keyframes dmkcBar{0%{left:-40%}100%{left:100%}}
@media(max-width:480px){.dmk-carregamento-card{grid-template-columns:42px minmax(0,1fr);padding:18px;gap:12px}.dmk-carregamento-icone{width:42px;height:42px}}
@media(prefers-reduced-motion:reduce){.dmk-carregamento,.dmk-carregamento-card{animation:none}.dmk-carregamento-spin,/* Sem segundo spinner quando a própria tela já mostra o dela. */
:is(button,[role=button])[data-dmk-busy]:not(:disabled):not(:has([class*=spin],.spinner-border,.bi-arrow-repeat,.bi-hourglass-split))::before{animation-duration:2.4s}.dmk-carregamento-barra::before{animation:none;left:0;width:100%;opacity:.6}}
@media print{.dmk-carregamento,.dmk-carregamento-barra{display:none!important}}
