/* MR7 ENTERPRISE — componentes reutilizáveis (usam APENAS tokens.css) */
*{ box-sizing:border-box; margin:0; }
body{ background:
    radial-gradient(1100px 640px at 72% -8%, rgba(37,99,255,.14), transparent 60%),
    radial-gradient(820px 620px at 108% 40%, rgba(124,58,237,.14), transparent 55%),
    var(--mr7-bg-main);
  color:var(--mr7-text-primary); font:var(--fs-md)/1.5 var(--mr7-font); min-height:100vh; }

/* estado por atributo data-status (semáforo — sem duplicar CSS por cor) */
[data-status]{ --sc:var(--status-white); }
[data-status="andamento"]{ --sc:var(--status-yellow); }
[data-status="aprovado"]{ --sc:var(--status-green); }
[data-status="erro"]{ --sc:var(--status-red); }
.status-badge{ display:inline-flex; align-items:center; gap:6px; font-size:var(--fs-xs); font-weight:var(--fw-med);
  padding:3px 10px; border-radius:var(--r-pill); color:var(--sc); border:1px solid var(--sc); background:color-mix(in srgb,var(--sc) 12%,transparent); }
.led{ width:9px; height:9px; border-radius:50%; background:var(--sc); box-shadow:0 0 8px var(--sc); display:inline-block; }

/* botões / busca / form */
.btn{ display:inline-flex; align-items:center; gap:8px; cursor:pointer; font-size:var(--fs-sm); font-weight:var(--fw-med);
  color:var(--mr7-text-primary); background:linear-gradient(160deg,#16204a,#0e1730); border:1px solid var(--mr7-border);
  border-radius:var(--r-md); padding:9px 14px; transition:var(--dur-fast) var(--ease); }
.btn:hover{ border-color:var(--mr7-purple); box-shadow:var(--glow-violet); }
.btn--primary{ background:linear-gradient(90deg,var(--mr7-blue),var(--mr7-purple)); border:none; }
.btn--ghost{ background:transparent; }
.input,.search{ background:#0c1430; border:1px solid var(--mr7-border); color:var(--mr7-text-primary);
  border-radius:var(--r-md); padding:9px 12px; font-size:var(--fs-sm); transition:var(--dur-fast); width:100%; }
.input:focus,.search:focus{ outline:none; border-color:var(--mr7-blue); box-shadow:0 0 0 3px rgba(37,99,255,.22); }

/* card (glass) */
.card{ background:linear-gradient(160deg,var(--mr7-bg-card),var(--mr7-bg-surface)); border:1px solid var(--mr7-border);
  border-radius:var(--r-lg); box-shadow:var(--sh-2); backdrop-filter:blur(var(--fx-blur)); }
.card--glass{ background:var(--mr7-bg-glass); }
.card__head{ display:flex; align-items:center; justify-content:space-between; padding:var(--sp-3) var(--sp-4); border-bottom:1px solid var(--mr7-border); }
.card__body{ padding:var(--sp-4); }
.sec-title{ font-size:var(--fs-xs); text-transform:uppercase; letter-spacing:1px; color:var(--mr7-lilac); margin-bottom:var(--sp-3); }

/* kpi */
.kpi{ display:flex; align-items:center; gap:var(--sp-3); padding:var(--sp-4); }
.kpi__ic{ width:46px; height:46px; flex:0 0 46px; display:grid; place-items:center; border-radius:50%;
  border:1px solid var(--sc,var(--mr7-border)); color:var(--sc,var(--mr7-cyan)); font-size:19px; box-shadow:0 0 16px color-mix(in srgb,var(--sc,var(--mr7-blue)) 35%,transparent); }
.kpi__n{ font-size:var(--fs-2xl); font-weight:var(--fw-bold); line-height:1; } .kpi__l{ font-size:var(--fs-xs); color:var(--mr7-text-muted); }

/* alerta / notificação */
.alert{ display:flex; gap:10px; align-items:flex-start; padding:var(--sp-3) var(--sp-4); border-radius:var(--r-md);
  border:1px solid var(--sc); border-left-width:4px; background:color-mix(in srgb,var(--sc) 8%,transparent); font-size:var(--fs-sm); }

/* tabela / lista */
.table{ width:100%; border-collapse:collapse; font-size:var(--fs-sm); }
.table th{ text-align:left; color:var(--mr7-lilac); font-size:var(--fs-xs); text-transform:uppercase; letter-spacing:.4px; padding:8px 10px; }
.table td{ padding:8px 10px; border-top:1px solid var(--mr7-border); }
.list-item{ display:flex; align-items:center; justify-content:space-between; gap:8px; padding:9px 12px; border-radius:var(--r-md);
  background:rgba(37,99,255,.06); border:1px solid var(--mr7-border); margin-bottom:8px; cursor:pointer; transition:var(--dur-fast); }
.list-item:hover{ border-color:var(--mr7-purple); background:rgba(124,58,237,.1); }

/* skeleton / empty / error */
.skeleton{ height:14px; border-radius:6px; background:linear-gradient(90deg,#131c34,#1b2748,#131c34); background-size:200% 100%; animation:sk 1.2s infinite; }
@keyframes sk{ to{ background-position:-200% 0; } }
.empty{ text-align:center; color:var(--mr7-text-muted); border:1px dashed var(--mr7-border); border-radius:var(--r-md); padding:var(--sp-6); }
.error-box{ color:var(--status-red); border:1px solid var(--status-red); border-radius:var(--r-md); padding:var(--sp-4); background:color-mix(in srgb,var(--status-red) 8%,transparent); }

/* modal / drawer */
.overlay{ position:fixed; inset:0; background:rgba(4,6,12,.66); display:none; z-index:60; }
.overlay.open{ display:block; }
.modal{ position:fixed; left:50%; top:50%; transform:translate(-50%,-50%); width:min(520px,92vw); z-index:61; }
.drawer{ position:fixed; top:0; right:0; height:100vh; width:min(360px,92vw); transform:translateX(100%);
  transition:transform var(--dur-med) var(--ease); z-index:62; overflow:auto; }
.drawer.open{ transform:translateX(0); }

/* voz — indicador de áudio leve */
.voice-orb{ width:60px; height:60px; border-radius:50%; display:grid; place-items:center; cursor:pointer; font-size:22px;
  background:radial-gradient(circle at 50% 40%,rgba(37,99,255,.5),rgba(10,14,34,.9) 70%); border:1px solid var(--mr7-border-strong); }
.voice-orb.rec{ box-shadow:var(--glow-blue); animation:vpulse 1.3s infinite; }
.wave{ display:inline-flex; gap:3px; align-items:flex-end; height:20px; }
.wave i{ width:3px; background:var(--mr7-cyan); border-radius:2px; animation:wv 1s infinite ease-in-out; }
.wave i:nth-child(2){ animation-delay:.15s } .wave i:nth-child(3){ animation-delay:.3s } .wave i:nth-child(4){ animation-delay:.45s }
@keyframes wv{ 0%,100%{ height:5px } 50%{ height:18px } }
@keyframes vpulse{ 0%,100%{ box-shadow:0 0 12px rgba(37,99,255,.4) } 50%{ box-shadow:0 0 26px rgba(37,99,255,.8) } }

/* VOICE DOCK — painel de voz portátil/overlay (recolhível, minimizável, teclado) */
.voice-dock{ position:fixed; right:18px; bottom:18px; width:min(340px,92vw); z-index:55;
  background:var(--mr7-bg-glass); backdrop-filter:blur(var(--fx-blur)); border:1px solid var(--mr7-border-strong);
  border-radius:var(--r-lg); box-shadow:var(--sh-2); overflow:hidden; display:none; }
.voice-dock.open{ display:block; }
.voice-dock.min .voice-dock__body{ display:none; }
.voice-dock__bar{ display:flex; align-items:center; gap:8px; padding:8px 12px; border-bottom:1px solid var(--mr7-border); cursor:move; }
.voice-dock__bar b{ font-size:var(--fs-sm); flex:1; }
.voice-dock__bar button{ background:none; border:none; color:var(--mr7-text-muted); cursor:pointer; font-size:15px; }
.voice-dock__body{ padding:12px; display:flex; gap:10px; align-items:flex-start; }
.voice-fab{ position:fixed; right:18px; bottom:18px; z-index:54; width:52px; height:52px; border-radius:50%;
  display:grid; place-items:center; cursor:pointer; font-size:20px; background:linear-gradient(90deg,var(--mr7-blue),var(--mr7-purple));
  border:none; box-shadow:var(--glow-blue); }

/* CAPTURA7 — feedback visual de atividade (borda animada + estados) */
.capture-btn{ position:relative; }
.capture-btn.is-capturing{ border-color:var(--mr7-cyan); }
.capture-btn.is-capturing::after{ content:""; position:absolute; inset:-2px; border-radius:inherit; pointer-events:none;
  border:2px solid transparent; border-top-color:var(--mr7-cyan); border-right-color:var(--mr7-purple); animation:capspin .8s linear infinite; }
.capture-btn.is-done{ border-color:var(--status-green); box-shadow:0 0 14px color-mix(in srgb,var(--status-green) 40%,transparent); }
.capture-btn.is-error{ border-color:var(--status-red); box-shadow:0 0 14px color-mix(in srgb,var(--status-red) 40%,transparent); }
@keyframes capspin{ to{ transform:rotate(360deg); } }
