/* CNEC Bolsas - Dashboard Visual V3
   Refinamento visual sem alterar estrutura ou grid */

body:has(main.dashboard .dashboard-grid) main.dashboard{
  --cnec-blue:#0b5ed7;
  --cnec-blue-dark:#073b82;
  --cnec-yellow:#f5c400;
  --cnec-border:#e2e9f3;
  --cnec-shadow:0 10px 28px rgba(19,51,91,.075);
  --cnec-shadow-hover:0 16px 36px rgba(19,51,91,.13);
  --cnec-ease:cubic-bezier(.2,.8,.2,1);
}

/* =========================
   BOAS-VINDAS
   ========================= */

body:has(main.dashboard .dashboard-grid) main.dashboard .welcome-card{
  position:relative;
  overflow:hidden;
  isolation:isolate;

  background:
    linear-gradient(
      112deg,
      #ffffff 0%,
      #fbfdff 55%,
      #eef6ff 100%
    );

  border:1px solid rgba(11,94,215,.09);
  box-shadow:0 10px 30px rgba(16,50,92,.07);

  transition:
    box-shadow .25s var(--cnec-ease),
    transform .25s var(--cnec-ease);
}

body:has(main.dashboard .dashboard-grid) main.dashboard .welcome-card::before{
  content:"";
  position:absolute;
  width:420px;
  height:260px;
  right:-100px;
  top:-120px;
  z-index:-2;

  background:
    radial-gradient(
      circle,
      rgba(61,137,233,.17) 0%,
      rgba(61,137,233,.06) 42%,
      transparent 72%
    );
}

body:has(main.dashboard .dashboard-grid) main.dashboard .welcome-card::after{
  content:"";
  position:absolute;
  width:240px;
  height:240px;
  right:9%;
  top:-160px;
  z-index:-1;

  border:3px solid rgba(245,196,0,.70);
  border-left-color:transparent;
  border-bottom-color:transparent;
  border-radius:50%;
  transform:rotate(25deg);
}

body:has(main.dashboard .dashboard-grid) main.dashboard .welcome-card:hover{
  transform:translateY(-2px);
  box-shadow:0 15px 36px rgba(16,50,92,.10);
}

/* =========================
   CARDS DE INDICADORES
   ========================= */

body:has(main.dashboard .dashboard-grid) main.dashboard .dashboard-grid > .blue{
  --kpi:#0b66e8;
  --kpi-soft:rgba(11,102,232,.11);
}

body:has(main.dashboard .dashboard-grid) main.dashboard .dashboard-grid > .green{
  --kpi:#2fbf64;
  --kpi-soft:rgba(47,191,100,.11);
}

body:has(main.dashboard .dashboard-grid) main.dashboard .dashboard-grid > .orange{
  --kpi:#ff8b00;
  --kpi-soft:rgba(255,139,0,.11);
}

body:has(main.dashboard .dashboard-grid) main.dashboard .dashboard-grid > .purple{
  --kpi:#8b3df0;
  --kpi-soft:rgba(139,61,240,.11);
}

body:has(main.dashboard .dashboard-grid) main.dashboard .dashboard-grid > .red{
  --kpi:#ff4d67;
  --kpi-soft:rgba(255,77,103,.11);
}

body:has(main.dashboard .dashboard-grid) main.dashboard .dashboard-grid > .teal{
  --kpi:#099da1;
  --kpi-soft:rgba(9,157,161,.11);
}

body:has(main.dashboard .dashboard-grid) main.dashboard .dashboard-grid > .blue,
body:has(main.dashboard .dashboard-grid) main.dashboard .dashboard-grid > .green,
body:has(main.dashboard .dashboard-grid) main.dashboard .dashboard-grid > .orange,
body:has(main.dashboard .dashboard-grid) main.dashboard .dashboard-grid > .purple,
body:has(main.dashboard .dashboard-grid) main.dashboard .dashboard-grid > .red,
body:has(main.dashboard .dashboard-grid) main.dashboard .dashboard-grid > .teal{
  position:relative;
  overflow:hidden;

  background:
    linear-gradient(
      145deg,
      #ffffff 0%,
      #ffffff 72%,
      var(--kpi-soft) 160%
    );

  border:1px solid rgba(20,55,100,.075);
  box-shadow:var(--cnec-shadow);

  transition:
    transform .24s var(--cnec-ease),
    box-shadow .24s var(--cnec-ease),
    border-color .24s var(--cnec-ease);
}

body:has(main.dashboard .dashboard-grid) main.dashboard .dashboard-grid > .blue::before,
body:has(main.dashboard .dashboard-grid) main.dashboard .dashboard-grid > .green::before,
body:has(main.dashboard .dashboard-grid) main.dashboard .dashboard-grid > .orange::before,
body:has(main.dashboard .dashboard-grid) main.dashboard .dashboard-grid > .purple::before,
body:has(main.dashboard .dashboard-grid) main.dashboard .dashboard-grid > .red::before,
body:has(main.dashboard .dashboard-grid) main.dashboard .dashboard-grid > .teal::before{
  content:"";
  position:absolute;
  top:0;
  left:18px;
  right:18px;
  height:3px;

  border-radius:0 0 6px 6px;
  background:var(--kpi);
  opacity:.72;
}

body:has(main.dashboard .dashboard-grid) main.dashboard .dashboard-grid > .blue::after,
body:has(main.dashboard .dashboard-grid) main.dashboard .dashboard-grid > .green::after,
body:has(main.dashboard .dashboard-grid) main.dashboard .dashboard-grid > .orange::after,
body:has(main.dashboard .dashboard-grid) main.dashboard .dashboard-grid > .purple::after,
body:has(main.dashboard .dashboard-grid) main.dashboard .dashboard-grid > .red::after,
body:has(main.dashboard .dashboard-grid) main.dashboard .dashboard-grid > .teal::after{
  content:"";
  position:absolute;
  width:105px;
  height:105px;
  right:-38px;
  bottom:-45px;

  border-radius:50%;
  background:radial-gradient(circle,var(--kpi-soft),transparent 72%);
  pointer-events:none;
}

body:has(main.dashboard .dashboard-grid) main.dashboard .dashboard-grid > .blue:hover,
body:has(main.dashboard .dashboard-grid) main.dashboard .dashboard-grid > .green:hover,
body:has(main.dashboard .dashboard-grid) main.dashboard .dashboard-grid > .orange:hover,
body:has(main.dashboard .dashboard-grid) main.dashboard .dashboard-grid > .purple:hover,
body:has(main.dashboard .dashboard-grid) main.dashboard .dashboard-grid > .red:hover,
body:has(main.dashboard .dashboard-grid) main.dashboard .dashboard-grid > .teal:hover{
  transform:translateY(-5px);
  border-color:rgba(11,94,215,.14);
  box-shadow:var(--cnec-shadow-hover);
}

body:has(main.dashboard .dashboard-grid) main.dashboard .dashboard-grid .number{
  font-weight:800;
  letter-spacing:-.7px;
}

/* =========================
   PAINÉIS
   ========================= */

body:has(main.dashboard .dashboard-grid) main.dashboard .panel{
  background:#fff;

  border:1px solid rgba(20,55,100,.075);
  box-shadow:0 9px 26px rgba(17,48,88,.06);

  transition:
    border-color .22s var(--cnec-ease),
    box-shadow .22s var(--cnec-ease);
}

body:has(main.dashboard .dashboard-grid) main.dashboard .panel:hover{
  border-color:rgba(11,94,215,.11);
  box-shadow:0 13px 32px rgba(17,48,88,.085);
}

body:has(main.dashboard .dashboard-grid) main.dashboard .panel-header h3{
  color:#10284c;
  letter-spacing:-.3px;
}

/* =========================
   TABELA DE EDITAIS
   ========================= */

body:has(main.dashboard .dashboard-grid) main.dashboard table{
  border-collapse:separate;
  border-spacing:0;
}

body:has(main.dashboard .dashboard-grid) main.dashboard table thead th{
  background:#f6f9fd;
  color:#425875;
  font-weight:700;

  border-top:1px solid #edf1f6;
  border-bottom:1px solid #e4eaf2;
}

body:has(main.dashboard .dashboard-grid) main.dashboard table thead th:first-child{
  border-radius:9px 0 0 9px;
}

body:has(main.dashboard .dashboard-grid) main.dashboard table thead th:last-child{
  border-radius:0 9px 9px 0;
}

body:has(main.dashboard .dashboard-grid) main.dashboard table tbody td{
  border-bottom-color:#edf1f6;
}

body:has(main.dashboard .dashboard-grid) main.dashboard table tbody tr{
  transition:
    background-color .18s var(--cnec-ease),
    transform .18s var(--cnec-ease);
}

body:has(main.dashboard .dashboard-grid) main.dashboard table tbody tr:hover{
  background:#f8fbff;
}

/* Status textual */
body:has(main.dashboard .dashboard-grid) main.dashboard table tbody td:nth-child(3){
  color:#16804a;
  font-weight:700;
}

body:has(main.dashboard .dashboard-grid) main.dashboard table tbody td:nth-child(3)::before{
  content:"";
  display:inline-block;

  width:7px;
  height:7px;

  margin-right:7px;
  vertical-align:1px;

  border-radius:50%;
  background:#22b65d;

  box-shadow:0 0 0 4px rgba(34,182,93,.10);
}

/* =========================
   BOTÕES
   ========================= */

body:has(main.dashboard .dashboard-grid) main.dashboard .btn.btn-primary{
  border:0;

  background:
    linear-gradient(
      135deg,
      #0b66e8,
      #0751bd
    );

  box-shadow:0 8px 18px rgba(11,94,215,.18);

  transition:
    transform .18s var(--cnec-ease),
    box-shadow .18s var(--cnec-ease),
    filter .18s var(--cnec-ease);
}

body:has(main.dashboard .dashboard-grid) main.dashboard .btn.btn-primary:hover{
  transform:translateY(-2px);
  box-shadow:0 12px 24px rgba(11,94,215,.25);
  filter:saturate(1.06);
}

body:has(main.dashboard .dashboard-grid) main.dashboard .btn.btn-primary:active{
  transform:translateY(0) scale(.985);
}

body:has(main.dashboard .dashboard-grid) main.dashboard .panel-link{
  appearance:none;
  -webkit-appearance:none;

  display:inline-flex;
  align-items:center;
  gap:7px;

  border:1px solid rgba(11,94,215,.08);
  border-radius:10px;

  background:#edf5ff;
  color:var(--cnec-blue);

  padding:9px 13px;

  font-weight:700;
  text-decoration:none;
  cursor:pointer;

  transition:
    transform .18s var(--cnec-ease),
    background-color .18s var(--cnec-ease),
    border-color .18s var(--cnec-ease),
    box-shadow .18s var(--cnec-ease);
}

body:has(main.dashboard .dashboard-grid) main.dashboard .panel-link:hover{
  transform:translateX(3px);

  background:#e4f0ff;
  border-color:rgba(11,94,215,.15);

  box-shadow:0 6px 15px rgba(11,94,215,.08);
}

/* =========================
   VISÃO GERAL
   ========================= */

body:has(main.dashboard .dashboard-grid) main.dashboard .activity-list{
  gap:12px;
}

body:has(main.dashboard .dashboard-grid) main.dashboard .activity{
  border:1px solid #e6ecf4;
  border-radius:14px;

  background:
    linear-gradient(
      135deg,
      #ffffff,
      #fbfdff
    );

  transition:
    transform .2s var(--cnec-ease),
    border-color .2s var(--cnec-ease),
    box-shadow .2s var(--cnec-ease),
    background-color .2s var(--cnec-ease);
}

body:has(main.dashboard .dashboard-grid) main.dashboard .activity:nth-child(1){
  background:
    linear-gradient(
      135deg,
      #f3f8ff,
      #ffffff
    );

  border-color:#dce9fb;
}

body:has(main.dashboard .dashboard-grid) main.dashboard .activity:nth-child(2){
  background:
    linear-gradient(
      135deg,
      #fffaf0,
      #ffffff
    );

  border-color:#f3e5c5;
}

body:has(main.dashboard .dashboard-grid) main.dashboard .activity:hover{
  transform:translateY(-3px);

  border-color:#cedcf0;
  box-shadow:0 10px 24px rgba(17,48,88,.08);
}

body:has(main.dashboard .dashboard-grid) main.dashboard .activity-icon{
  transition:
    transform .2s var(--cnec-ease),
    box-shadow .2s var(--cnec-ease);
}

body:has(main.dashboard .dashboard-grid) main.dashboard .activity:hover .activity-icon{
  transform:scale(1.07);
}

/* =========================
   ENTRADA SUAVE
   ========================= */

body:has(main.dashboard .dashboard-grid) main.dashboard .welcome-card{
  animation:cnecEnter .38s ease both;
}

body:has(main.dashboard .dashboard-grid) main.dashboard .dashboard-grid{
  animation:cnecEnter .44s .04s ease both;
}

body:has(main.dashboard .dashboard-grid) main.dashboard .panel{
  animation:cnecEnter .46s .08s ease both;
}

@keyframes cnecEnter{
  from{
    opacity:0;
    transform:translateY(9px);
  }

  to{
    opacity:1;
    transform:none;
  }
}

/* =========================
   ACESSIBILIDADE
   ========================= */

body:has(main.dashboard .dashboard-grid) main.dashboard :focus-visible{
  outline:3px solid rgba(11,94,215,.22);
  outline-offset:3px;
}

@media(prefers-reduced-motion:reduce){
  body:has(main.dashboard .dashboard-grid) main.dashboard *,
  body:has(main.dashboard .dashboard-grid) main.dashboard *::before,
  body:has(main.dashboard .dashboard-grid) main.dashboard *::after{
    animation-duration:.01ms !important;
    transition-duration:.01ms !important;
  }
}

/* ==========================================
   STATUS PILL - Editais recentes
   ========================================== */

body:has(main.dashboard .dashboard-grid) main.dashboard .cnec-status-pill{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;

  min-height:26px;
  padding:5px 11px;

  border:1px solid rgba(34,182,93,.12);
  border-radius:999px;

  background:linear-gradient(
    135deg,
    #eaf8ef,
    #f2fbf5
  );

  color:#16804a;
  font-size:12px;
  font-weight:800;
  line-height:1;

  box-shadow:0 4px 10px rgba(34,182,93,.07);

  transition:
    transform .18s var(--cnec-ease),
    box-shadow .18s var(--cnec-ease);
}

body:has(main.dashboard .dashboard-grid) main.dashboard .cnec-status-pill::before{
  content:"";
  width:7px;
  height:7px;
  flex:0 0 7px;

  border-radius:50%;
  background:#22b65d;

  box-shadow:0 0 0 4px rgba(34,182,93,.10);
}

body:has(main.dashboard .dashboard-grid) main.dashboard tr:hover .cnec-status-pill{
  transform:translateY(-1px);
  box-shadow:0 6px 14px rgba(34,182,93,.11);
}

/* Desliga o ponto antigo quando a pill estiver presente */
body:has(main.dashboard .dashboard-grid) main.dashboard td:has(.cnec-status-pill)::before{
  display:none !important;
}

/* ==========================================
   VISÃO GERAL - CARDS DE AÇÃO
   ========================================== */

body:has(main.dashboard .dashboard-grid) main.dashboard .activity-list{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
  margin-top:8px;
}

body:has(main.dashboard .dashboard-grid) main.dashboard .activity{
  position:relative;
  min-height:118px;
  padding:20px;

  display:grid;
  grid-template-columns:48px minmax(0,1fr) auto;
  align-items:center;
  gap:15px;

  overflow:hidden;

  border:1px solid #e1e9f4;
  border-radius:16px;

  background:
    linear-gradient(
      135deg,
      #ffffff 0%,
      #fbfdff 100%
    );

  box-shadow:0 8px 22px rgba(18,52,92,.055);

  transition:
    transform .22s var(--cnec-ease),
    box-shadow .22s var(--cnec-ease),
    border-color .22s var(--cnec-ease);
}

body:has(main.dashboard .dashboard-grid) main.dashboard .activity::before{
  content:"";
  position:absolute;
  top:0;
  left:0;
  right:0;
  height:3px;

  background:linear-gradient(
    90deg,
    #0b66e8,
    #4b98f2
  );

  opacity:.82;
}

body:has(main.dashboard .dashboard-grid) main.dashboard .activity:nth-child(2)::before{
  background:linear-gradient(
    90deg,
    #f5c400,
    #ff9d00
  );
}

body:has(main.dashboard .dashboard-grid) main.dashboard .activity::after{
  content:"";
  position:absolute;
  width:115px;
  height:115px;
  right:-48px;
  bottom:-58px;

  border-radius:50%;
  background:radial-gradient(
    circle,
    rgba(11,102,232,.08),
    transparent 70%
  );

  pointer-events:none;
}

body:has(main.dashboard .dashboard-grid) main.dashboard .activity:nth-child(2)::after{
  background:radial-gradient(
    circle,
    rgba(245,196,0,.10),
    transparent 70%
  );
}

body:has(main.dashboard .dashboard-grid) main.dashboard .activity:hover{
  transform:translateY(-4px);
  border-color:#cfdef1;
  box-shadow:0 14px 30px rgba(18,52,92,.10);
}

body:has(main.dashboard .dashboard-grid) main.dashboard .activity-icon{
  width:48px;
  height:48px;

  display:grid;
  place-items:center;

  border-radius:14px;

  background:#edf5ff;
  color:#0b66e8;

  box-shadow:
    inset 0 0 0 1px rgba(11,102,232,.06),
    0 5px 14px rgba(11,102,232,.08);
}

body:has(main.dashboard .dashboard-grid) main.dashboard .activity:nth-child(2) .activity-icon{
  background:#fff7df;
  color:#b77a00;

  box-shadow:
    inset 0 0 0 1px rgba(245,196,0,.10),
    0 5px 14px rgba(245,196,0,.09);
}

body:has(main.dashboard .dashboard-grid) main.dashboard .activity strong{
  color:#122b50;
  font-size:15px;
  font-weight:800;
}

body:has(main.dashboard .dashboard-grid) main.dashboard .activity p{
  margin-top:4px;
  color:#6b7c95;
  line-height:1.45;
}

body:has(main.dashboard .dashboard-grid) main.dashboard .activity .panel-link{
  position:relative;
  z-index:1;

  min-width:78px;
  justify-content:center;

  padding:9px 13px;

  border:1px solid #d7e5f8;
  border-radius:10px;

  background:#f3f8ff;
  color:#0b5ed7;

  box-shadow:none;
}

body:has(main.dashboard .dashboard-grid) main.dashboard .activity .panel-link:hover{
  transform:translateY(-2px);
  background:#e9f3ff;
  border-color:#bfd6f4;
  box-shadow:0 7px 16px rgba(11,94,215,.10);
}

@media(max-width:900px){
  body:has(main.dashboard .dashboard-grid) main.dashboard .activity-list{
    grid-template-columns:1fr;
  }
}

@media(max-width:600px){
  body:has(main.dashboard .dashboard-grid) main.dashboard .activity{
    grid-template-columns:44px minmax(0,1fr);
  }

  body:has(main.dashboard .dashboard-grid) main.dashboard .activity .panel-link{
    grid-column:1 / -1;
    width:100%;
  }
}

/* ==========================================
   DASHBOARD - HOVER PREMIUM AZUL + AMARELO
   ========================================== */

/* KPIs */
body:has(main.dashboard .dashboard-grid) main.dashboard .dashboard-grid > .blue,
body:has(main.dashboard .dashboard-grid) main.dashboard .dashboard-grid > .green,
body:has(main.dashboard .dashboard-grid) main.dashboard .dashboard-grid > .orange,
body:has(main.dashboard .dashboard-grid) main.dashboard .dashboard-grid > .purple,
body:has(main.dashboard .dashboard-grid) main.dashboard .dashboard-grid > .red,
body:has(main.dashboard .dashboard-grid) main.dashboard .dashboard-grid > .teal{
  transition:
    transform .22s var(--cnec-ease),
    box-shadow .22s var(--cnec-ease),
    border-color .22s var(--cnec-ease),
    background .24s var(--cnec-ease);
}

body:has(main.dashboard .dashboard-grid) main.dashboard .dashboard-grid > .blue:hover,
body:has(main.dashboard .dashboard-grid) main.dashboard .dashboard-grid > .green:hover,
body:has(main.dashboard .dashboard-grid) main.dashboard .dashboard-grid > .orange:hover,
body:has(main.dashboard .dashboard-grid) main.dashboard .dashboard-grid > .purple:hover,
body:has(main.dashboard .dashboard-grid) main.dashboard .dashboard-grid > .red:hover,
body:has(main.dashboard .dashboard-grid) main.dashboard .dashboard-grid > .teal:hover{
  transform:translateY(-6px);

  background:
    linear-gradient(
      135deg,
      rgba(11,102,232,.15) 0%,
      rgba(255,255,255,.97) 52%,
      rgba(245,196,0,.20) 100%
    );

  border-color:rgba(11,102,232,.22);

  box-shadow:
    0 18px 38px rgba(18,52,92,.14),
    0 0 0 1px rgba(245,196,0,.06);
}

/* Visão geral */
body:has(main.dashboard .dashboard-grid) main.dashboard .activity{
  transition:
    transform .22s var(--cnec-ease),
    box-shadow .22s var(--cnec-ease),
    border-color .22s var(--cnec-ease),
    background .24s var(--cnec-ease);
}

body:has(main.dashboard .dashboard-grid) main.dashboard .activity:hover{
  transform:translateY(-6px);

  background:
    linear-gradient(
      135deg,
      rgba(11,102,232,.14) 0%,
      rgba(255,255,255,.96) 52%,
      rgba(245,196,0,.18) 100%
    );

  border-color:rgba(11,102,232,.22);

  box-shadow:
    0 18px 38px rgba(18,52,92,.14),
    0 0 0 1px rgba(245,196,0,.06);
}

body:has(main.dashboard .dashboard-grid) main.dashboard .activity:hover .activity-icon{
  transform:scale(1.08) translateY(-1px);

  background:
    linear-gradient(
      135deg,
      #e9f3ff,
      #fff8dc
    );
}

/* ==========================================
   DASHBOARD - HOVER DOS 6 INDICADORES
   ========================================== */

body:has(main.dashboard .dashboard-grid) main.dashboard .stat-card{
  transition:
    transform .22s var(--cnec-ease),
    box-shadow .22s var(--cnec-ease),
    border-color .22s var(--cnec-ease),
    background .24s var(--cnec-ease);
}

body:has(main.dashboard .dashboard-grid) main.dashboard .stat-card:hover{
  transform:translateY(-6px);

  background:
    linear-gradient(
      135deg,
      rgba(11,102,232,.15) 0%,
      rgba(255,255,255,.97) 52%,
      rgba(245,196,0,.20) 100%
    ) !important;

  border-color:rgba(11,102,232,.22);

  box-shadow:
    0 18px 38px rgba(18,52,92,.14),
    0 0 0 1px rgba(245,196,0,.06);
}

body:has(main.dashboard .dashboard-grid) main.dashboard .stat-card .stat-icon{
  transition:
    transform .20s var(--cnec-ease),
    box-shadow .20s var(--cnec-ease);
}

body:has(main.dashboard .dashboard-grid) main.dashboard .stat-card:hover .stat-icon{
  transform:scale(1.08) translateY(-1px);
  box-shadow:0 8px 18px rgba(18,52,92,.12);
}
