/* =========================================================
   ÁREA DO ALUNO
   SERVIDORES NA PRÁTICA
========================================================= */

:root{
  --student-primary:#4f46e5;
  --student-secondary:#2563eb;
  --student-purple:#6d28d9;
  --student-dark:#0f172a;
  --student-text:#475569;
  --student-muted:#64748b;
  --student-border:#e5e7eb;
  --student-background:#f5f7fb;
  --student-panel:#ffffff;
  --student-success:#16a34a;
  --student-sidebar:248px;
  --student-radius:18px;
  --student-shadow:0 12px 34px rgba(15,23,42,.055);
}

*{
  box-sizing:border-box;
}

html{
  scroll-behavior:smooth;
}

body{
  margin:0;
}

body,
button,
input,
select,
textarea{
  font-family:"Inter","Segoe UI",Roboto,Arial,sans-serif;
}

a{
  text-decoration:none;
}

button,
input{
  font:inherit;
}

img{
  max-width:100%;
}

.snp-student-body{
  min-height:100vh;
  background:var(--student-background);
  color:var(--student-text);
  -webkit-font-smoothing:antialiased;
}

.snp-student-app{
  min-height:100vh;
}

/* =========================================================
   SIDEBAR
========================================================= */

.snp-student-sidebar{
  position:fixed;
  inset:0 auto 0 0;
  z-index:1000;
  width:var(--student-sidebar);
  min-height:100vh;
  display:flex;
  flex-direction:column;
  background:#fff;
  border-right:1px solid var(--student-border);
}

.snp-student-brand{
  min-height:72px;
  padding:0 18px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  border-bottom:1px solid #edf2f7;
}

.snp-student-brand-link{
  display:flex;
  align-items:center;
  gap:10px;
}

.snp-student-brand-symbol{
  position:relative;
  width:38px;
  height:38px;
  border-radius:13px;
  display:grid;
  place-items:center;
  color:#fff;
  font-size:18px;
  font-weight:900;
  background:linear-gradient(135deg,var(--student-purple),var(--student-secondary));
  box-shadow:0 10px 24px rgba(79,70,229,.22);
}

.snp-student-brand-symbol small{
  position:absolute;
  top:-4px;
  right:-4px;
  width:15px;
  height:15px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:#2563eb;
  border:2px solid #fff;
  color:#fff;
  font-size:7px;
}

.snp-student-brand-copy strong{
  display:block;
  color:var(--student-dark);
  font-size:15px;
  line-height:1;
}

.snp-student-brand-copy small{
  display:block;
  margin-top:4px;
  color:var(--student-primary);
  font-size:10px;
  font-weight:800;
}

.snp-student-sidebar-close{
  display:none;
  width:34px;
  height:34px;
  border:0;
  border-radius:10px;
  background:#f1f5f9;
  color:#0f172a;
  font-size:22px;
  cursor:pointer;
}

.snp-student-sidebar-scroll{
  flex:1;
  overflow-y:auto;
  padding:18px 14px;
}

.snp-student-nav{
  display:grid;
  gap:5px;
}

.snp-student-nav-title{
  padding:0 10px;
  margin-bottom:6px;
  color:#94a3b8;
  font-size:9px;
  font-weight:900;
  letter-spacing:2px;
  text-transform:uppercase;
}

.snp-student-nav-title-account{
  margin-top:20px;
}

.snp-student-nav a{
  min-height:42px;
  padding:0 11px;
  border-radius:12px;
  display:flex;
  align-items:center;
  gap:11px;
  color:#475569;
  font-size:12px;
  font-weight:750;
  transition:.2s ease;
}

.snp-student-nav a i{
  width:27px;
  height:27px;
  border-radius:9px;
  display:grid;
  place-items:center;
  background:#f8fafc;
  color:#64748b;
  font-style:normal;
  font-size:13px;
  transition:.2s ease;
}

.snp-student-nav a:hover{
  background:#f5f7ff;
  color:var(--student-primary);
}

.snp-student-nav a.is-active{
  color:#fff;
  background:linear-gradient(135deg,var(--student-purple),var(--student-secondary));
  box-shadow:0 10px 24px rgba(79,70,229,.18);
}

.snp-student-nav a.is-active i{
  background:rgba(255,255,255,.14);
  color:#fff;
}

.snp-student-sidebar-card{
  margin-top:22px;
  padding:15px;
  border-radius:16px;
  background:
    radial-gradient(circle at 85% 12%,rgba(99,102,241,.34),transparent 38%),
    linear-gradient(135deg,#0f172a,#1e1b4b);
  color:#fff;
}

.snp-student-sidebar-card > div{
  width:34px;
  height:34px;
  margin-bottom:12px;
  border-radius:11px;
  display:grid;
  place-items:center;
  background:rgba(255,255,255,.10);
}

.snp-student-sidebar-card > span{
  display:block;
  color:#a5b4fc;
  font-size:8px;
  font-weight:900;
  letter-spacing:1.8px;
}

.snp-student-sidebar-card strong{
  display:block;
  margin-top:6px;
  font-size:13px;
}

.snp-student-sidebar-card p{
  margin:7px 0 12px;
  color:#cbd5e1;
  font-size:10px;
  line-height:1.5;
}

.snp-student-sidebar-card a{
  display:inline-flex;
  color:#fff;
  font-size:10px;
  font-weight:900;
}

.snp-student-sidebar-footer{
  padding:14px;
  border-top:1px solid #edf2f7;
}

.snp-student-sidebar-footer a{
  min-height:38px;
  padding:0 10px;
  display:flex;
  align-items:center;
  gap:10px;
  border-radius:11px;
  color:#64748b;
  font-size:11px;
  font-weight:750;
}

.snp-student-sidebar-footer a:hover{
  background:#f8fafc;
  color:#0f172a;
}

.snp-student-sidebar-footer i{
  font-style:normal;
}

/* =========================================================
   ESTRUTURA PRINCIPAL
========================================================= */

.snp-student-main{
  min-height:100vh;
  margin-left:var(--student-sidebar);
}

.snp-student-topbar{
  position:sticky;
  top:0;
  z-index:900;
  min-height:72px;
  padding:10px 24px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  background:rgba(255,255,255,.93);
  border-bottom:1px solid var(--student-border);
  backdrop-filter:blur(18px);
}

.snp-student-topbar-left{
  display:flex;
  align-items:center;
  gap:14px;
}

.snp-student-page-label{
  display:block;
  margin-bottom:3px;
  color:var(--student-primary);
  font-size:8px;
  font-weight:900;
  letter-spacing:2px;
  text-transform:uppercase;
}

.snp-student-topbar h1{
  margin:0;
  color:var(--student-dark);
  font-size:20px;
  line-height:1.2;
}

.snp-student-menu-button{
  display:none;
  width:38px;
  height:38px;
  padding:9px;
  border:1px solid #e2e8f0;
  border-radius:11px;
  background:#fff;
  cursor:pointer;
}

.snp-student-menu-button span{
  display:block;
  height:2px;
  margin:4px 0;
  border-radius:999px;
  background:#0f172a;
}

.snp-student-topbar-actions{
  display:flex;
  align-items:center;
  gap:10px;
}

.snp-student-search{
  width:280px;
  height:38px;
  padding:0 12px;
  display:flex;
  align-items:center;
  gap:8px;
  border:1px solid #e2e8f0;
  border-radius:12px;
  background:#f8fafc;
}

.snp-student-search span{
  color:#94a3b8;
  font-size:14px;
}

.snp-student-search input{
  width:100%;
  min-width:0;
  border:0;
  outline:0;
  background:transparent;
  color:#0f172a;
  font-size:11px;
}

.snp-student-notification-button{
  position:relative;
  width:38px;
  height:38px;
  border-radius:12px;
  display:grid;
  place-items:center;
  background:#fff;
  border:1px solid #e2e8f0;
}

.snp-student-notification-button b{
  position:absolute;
  top:-5px;
  right:-5px;
  min-width:17px;
  height:17px;
  padding:0 4px;
  border-radius:999px;
  display:grid;
  place-items:center;
  background:#ef4444;
  color:#fff;
  font-size:8px;
  border:2px solid #fff;
}

.snp-student-user{
  display:flex;
  align-items:center;
  gap:9px;
}

.snp-student-user-avatar{
  width:38px;
  height:38px;
  border-radius:12px;
  display:grid;
  place-items:center;
  background:linear-gradient(135deg,var(--student-purple),var(--student-secondary));
  color:#fff;
  font-size:12px;
  font-weight:900;
}

.snp-student-user-info strong{
  display:block;
  color:#0f172a;
  font-size:11px;
}

.snp-student-user-info small{
  display:block;
  margin-top:3px;
  color:#94a3b8;
  font-size:9px;
}

.snp-student-content{
  max-width:1440px;
  margin:0 auto;
  padding:22px 24px 40px;
}

/* =========================================================
   BOAS-VINDAS
========================================================= */

.snp-student-welcome{
  position:relative;
  overflow:hidden;
  min-height:245px;
  padding:28px;
  border-radius:22px;
  display:grid;
  grid-template-columns:1fr 330px;
  gap:24px;
  align-items:center;
  background:
    radial-gradient(circle at 88% 12%,rgba(99,102,241,.44),transparent 30%),
    linear-gradient(135deg,#0f172a,#111827 58%,#1e1b4b);
  color:#fff;
  box-shadow:0 20px 50px rgba(15,23,42,.15);
}

.snp-student-welcome::after{
  content:"";
  position:absolute;
  right:-90px;
  bottom:-130px;
  width:300px;
  height:300px;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.08);
}

.snp-student-welcome-copy{
  position:relative;
  z-index:2;
}

.snp-student-welcome-copy > span{
  color:#a5b4fc;
  font-size:9px;
  font-weight:900;
  letter-spacing:2.5px;
}

.snp-student-welcome h2{
  max-width:670px;
  margin:10px 0;
  color:#fff;
  font-size:28px;
  line-height:1.16;
  letter-spacing:-.7px;
}

.snp-student-welcome-copy p{
  max-width:620px;
  margin:0;
  color:#cbd5e1;
  font-size:12px;
  line-height:1.65;
}

.snp-student-welcome-actions{
  margin-top:18px;
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}

.snp-student-primary-button,
.snp-student-secondary-button{
  min-height:40px;
  padding:0 15px;
  border-radius:12px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  font-size:11px;
  font-weight:900;
}

.snp-student-primary-button{
  color:#fff;
  background:linear-gradient(135deg,var(--student-purple),var(--student-secondary));
  box-shadow:0 12px 28px rgba(79,70,229,.28);
}

.snp-student-secondary-button{
  color:#fff;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.13);
}

.snp-student-welcome-course{
  position:relative;
  z-index:2;
  padding:18px;
  border-radius:18px;
  background:rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.14);
  backdrop-filter:blur(16px);
}

.snp-student-welcome-course-top,
.snp-student-welcome-course-bottom{
  display:flex;
  justify-content:space-between;
  gap:10px;
}

.snp-student-welcome-course-top span,
.snp-student-welcome-course-bottom{
  color:#cbd5e1;
  font-size:9px;
}

.snp-student-welcome-course-top strong{
  color:#fff;
  font-size:18px;
}

.snp-student-welcome-course h3{
  margin:12px 0 7px;
  color:#fff;
  font-size:16px;
}

.snp-student-welcome-course p{
  margin:0 0 14px;
  color:#cbd5e1;
  font-size:10px;
  line-height:1.5;
}

/* =========================================================
   PROGRESSO
========================================================= */

.snp-student-progress{
  height:5px;
  border-radius:999px;
  overflow:hidden;
  background:#e2e8f0;
}

.snp-student-welcome-course .snp-student-progress{
  background:rgba(255,255,255,.15);
}

.snp-student-progress i{
  display:block;
  width:var(--student-progress);
  height:100%;
  border-radius:999px;
  background:linear-gradient(90deg,#8b5cf6,#3b82f6);
}

.snp-student-welcome-course-bottom{
  margin-top:9px;
}

/* =========================================================
   MÉTRICAS
========================================================= */

.snp-student-metrics{
  margin-top:16px;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:12px;
}

.snp-student-metrics article{
  min-height:82px;
  padding:14px;
  border-radius:16px;
  display:flex;
  align-items:center;
  gap:12px;
  background:#fff;
  border:1px solid var(--student-border);
  box-shadow:0 7px 20px rgba(15,23,42,.035);
}

.snp-student-metric-icon{
  width:40px;
  height:40px;
  flex:0 0 40px;
  border-radius:12px;
  display:grid;
  place-items:center;
  background:#eef2ff;
  font-size:17px;
}

.snp-student-metrics strong{
  display:block;
  color:#0f172a;
  font-size:20px;
  line-height:1;
}

.snp-student-metrics span{
  display:block;
  margin-top:4px;
  color:#64748b;
  font-size:10px;
}

/* =========================================================
   PAINÉIS
========================================================= */

.snp-student-dashboard-grid{
  margin-top:16px;
  display:grid;
  grid-template-columns:minmax(0,1fr) 320px;
  gap:16px;
  align-items:start;
}

.snp-student-panel{
  padding:18px;
  border-radius:18px;
  background:#fff;
  border:1px solid var(--student-border);
  box-shadow:var(--student-shadow);
}

.snp-student-panel-head{
  margin-bottom:14px;
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:14px;
}

.snp-student-panel-head span{
  display:block;
  margin-bottom:5px;
  color:var(--student-primary);
  font-size:8px;
  font-weight:900;
  letter-spacing:2px;
}

.snp-student-panel-head h2{
  margin:0;
  color:#0f172a;
  font-size:17px;
  line-height:1.2;
}

.snp-student-panel-head > a{
  color:var(--student-primary);
  font-size:10px;
  font-weight:900;
}

/* =========================================================
   CURSOS
========================================================= */

.snp-student-course-list{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:11px;
}

.snp-student-course-card{
  min-width:0;
  overflow:hidden;
  border-radius:16px;
  background:#fff;
  border:1px solid #e5e7eb;
  transition:.25s ease;
}

.snp-student-course-card:hover{
  transform:translateY(-3px);
  border-color:#c7d2fe;
  box-shadow:0 14px 28px rgba(79,70,229,.08);
}

.snp-student-course-image{
  display:block;
  height:112px;
  overflow:hidden;
  background:#e2e8f0;
}

.snp-student-course-image img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  transition:.35s ease;
}

.snp-student-course-card:hover img{
  transform:scale(1.04);
}

.snp-student-course-content{
  padding:12px;
}

.snp-student-course-category{
  display:inline-flex;
  padding:4px 7px;
  border-radius:999px;
  background:#eef2ff;
  color:var(--student-primary);
  font-size:8px;
  font-weight:900;
}

.snp-student-course-content h3{
  margin:8px 0 5px;
  font-size:12px;
  line-height:1.35;
}

.snp-student-course-content h3 a{
  color:#0f172a;
}

.snp-student-course-content p{
  min-height:30px;
  margin:0;
  color:#64748b;
  font-size:9px;
  line-height:1.5;
}

.snp-student-course-progress-row{
  margin-top:10px;
  display:grid;
  grid-template-columns:1fr auto;
  gap:8px;
  align-items:center;
}

.snp-student-course-progress-row strong{
  color:#0f172a;
  font-size:9px;
}

.snp-student-course-link{
  margin-top:10px;
  display:flex;
  justify-content:space-between;
  color:var(--student-primary);
  font-size:9px;
  font-weight:900;
}

/* =========================================================
   COLUNA LATERAL
========================================================= */

.snp-student-side-column{
  display:grid;
  gap:16px;
}

.snp-student-activity-list{
  display:grid;
  gap:11px;
}

.snp-student-activity-list article{
  display:grid;
  grid-template-columns:34px 1fr;
  gap:10px;
}

.snp-student-activity-icon{
  width:34px;
  height:34px;
  border-radius:11px;
  display:grid;
  place-items:center;
  background:#eef2ff;
  color:var(--student-primary);
  font-size:12px;
}

.snp-student-activity-list strong{
  display:block;
  color:#0f172a;
  font-size:10px;
}

.snp-student-activity-list p{
  margin:3px 0;
  color:#64748b;
  font-size:9px;
  line-height:1.4;
}

.snp-student-activity-list small{
  color:#94a3b8;
  font-size:8px;
}

.snp-student-lab-panel{
  color:#fff;
  background:
    radial-gradient(circle at 88% 12%,rgba(99,102,241,.4),transparent 34%),
    linear-gradient(135deg,#0f172a,#1e1b4b);
  border:0;
}

.snp-student-lab-icon{
  width:40px;
  height:40px;
  margin-bottom:13px;
  border-radius:12px;
  display:grid;
  place-items:center;
  background:rgba(255,255,255,.10);
}

.snp-student-lab-panel > span{
  color:#a5b4fc;
  font-size:8px;
  font-weight:900;
  letter-spacing:1.7px;
}

.snp-student-lab-panel h2{
  margin:8px 0;
  color:#fff;
  font-size:17px;
}

.snp-student-lab-panel p{
  margin:0;
  color:#cbd5e1;
  font-size:10px;
  line-height:1.55;
}

.snp-student-lab-status{
  margin:13px 0;
  display:flex;
  align-items:center;
  gap:7px;
  color:#86efac;
  font-size:9px;
  font-weight:900;
}

.snp-student-lab-status i{
  width:7px;
  height:7px;
  border-radius:50%;
  background:#22c55e;
  box-shadow:0 0 0 5px rgba(34,197,94,.12);
}

.snp-student-lab-panel > a{
  min-height:36px;
  padding:0 13px;
  border-radius:11px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  background:linear-gradient(135deg,var(--student-purple),var(--student-secondary));
  color:#fff;
  font-size:10px;
  font-weight:900;
}

/* =========================================================
   PARTE INFERIOR
========================================================= */

.snp-student-bottom-grid{
  margin-top:16px;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
}

.snp-student-goal .snp-student-panel-head > strong{
  color:var(--student-primary);
  font-size:21px;
}

.snp-student-week{
  display:grid;
  grid-template-columns:repeat(7,1fr);
  gap:8px;
}

.snp-student-week div{
  min-height:64px;
  padding:8px 4px;
  border-radius:12px;
  display:grid;
  justify-items:center;
  align-content:center;
  gap:6px;
  background:#f8fafc;
  border:1px solid #edf2f7;
}

.snp-student-week i{
  width:25px;
  height:25px;
  border-radius:9px;
  display:grid;
  place-items:center;
  background:#fff;
  color:#94a3b8;
  font-style:normal;
  font-size:9px;
  font-weight:900;
}

.snp-student-week span{
  color:#64748b;
  font-size:8px;
}

.snp-student-week .is-complete i{
  background:#dcfce7;
  color:#16a34a;
}

.snp-student-week .is-current{
  background:#eef2ff;
  border-color:#c7d2fe;
}

.snp-student-week .is-current i{
  background:linear-gradient(135deg,var(--student-purple),var(--student-secondary));
  color:#fff;
}

.snp-student-news-list{
  display:grid;
  gap:10px;
}

.snp-student-news-list > div{
  padding:11px;
  border-radius:13px;
  display:grid;
  grid-template-columns:8px 1fr;
  gap:10px;
  background:#f8fafc;
  border:1px solid #edf2f7;
}

.snp-student-news-list i{
  width:8px;
  height:8px;
  margin-top:4px;
  border-radius:50%;
  background:var(--student-primary);
}

.snp-student-news-list strong{
  display:block;
  color:#0f172a;
  font-size:10px;
}

.snp-student-news-list small{
  display:block;
  margin-top:3px;
  color:#64748b;
  font-size:9px;
  line-height:1.45;
}

/* =========================================================
   OVERLAY
========================================================= */

.snp-student-overlay{
  position:fixed;
  inset:0;
  z-index:950;
  display:none;
  background:rgba(15,23,42,.55);
  backdrop-filter:blur(3px);
}

/* =========================================================
   TABLET
========================================================= */

@media(max-width:1180px){

  .snp-student-search{
    width:220px;
  }

  .snp-student-dashboard-grid{
    grid-template-columns:1fr;
  }

  .snp-student-side-column{
    grid-template-columns:1fr 1fr;
  }

}

/* =========================================================
   TABLET / MOBILE
========================================================= */

@media(max-width:900px){

  .snp-student-sidebar{
    transform:translateX(-105%);
    transition:transform .28s ease;
    box-shadow:20px 0 50px rgba(15,23,42,.16);
  }

  .snp-student-sidebar.is-open{
    transform:translateX(0);
  }

  .snp-student-sidebar-close,
  .snp-student-menu-button{
    display:block;
  }

  .snp-student-main{
    margin-left:0;
  }

  .snp-student-overlay.is-visible{
    display:block;
  }

  .snp-student-welcome{
    grid-template-columns:1fr;
  }

  .snp-student-metrics{
    grid-template-columns:repeat(2,1fr);
  }

  .snp-student-course-list{
    grid-template-columns:repeat(2,1fr);
  }

  .snp-student-user-info{
    display:none;
  }

}

/* =========================================================
   MOBILE
========================================================= */

@media(max-width:700px){

  .snp-student-topbar{
    min-height:64px;
    padding:9px 14px;
  }

  .snp-student-topbar h1{
    font-size:16px;
  }

  .snp-student-search{
    display:none;
  }

  .snp-student-content{
    padding:14px 12px 30px;
  }

  .snp-student-welcome{
    min-height:auto;
    padding:20px 16px;
    border-radius:18px;
  }

  .snp-student-welcome h2{
    font-size:22px;
  }

  .snp-student-welcome-actions{
    display:grid;
  }

  .snp-student-primary-button,
  .snp-student-secondary-button{
    width:100%;
  }

  .snp-student-metrics{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
  }

  .snp-student-metrics article{
    min-height:74px;
    padding:10px;
    gap:8px;
  }

  .snp-student-metric-icon{
    width:34px;
    height:34px;
    flex-basis:34px;
    font-size:14px;
  }

  .snp-student-metrics strong{
    font-size:17px;
  }

  .snp-student-metrics span{
    font-size:8px;
  }

  .snp-student-panel{
    padding:14px;
  }

  .snp-student-course-list,
  .snp-student-side-column,
  .snp-student-bottom-grid{
    grid-template-columns:1fr;
  }

  .snp-student-course-card{
    display:grid;
    grid-template-columns:105px 1fr;
  }

  .snp-student-course-image{
    height:100%;
    min-height:145px;
  }

  .snp-student-course-content p{
    min-height:auto;
  }

  .snp-student-week{
    gap:5px;
  }

  .snp-student-week div{
    min-height:54px;
  }

}

/* =========================================================
   TELEFONES PEQUENOS
========================================================= */

@media(max-width:420px){

  .snp-student-user{
    display:none;
  }

  .snp-student-welcome-course-top,
  .snp-student-welcome-course-bottom{
    gap:5px;
  }

  .snp-student-course-card{
    grid-template-columns:90px 1fr;
  }

  .snp-student-course-image{
    min-height:150px;
  }

}

@media(prefers-reduced-motion:no-preference){

  .snp-student-panel,
  .snp-student-metrics article,
  .snp-student-course-card{
    opacity:0;
    transform:translateY(12px);
    transition:
      opacity .45s ease,
      transform .45s ease,
      border-color .25s ease,
      box-shadow .25s ease;
  }

  .snp-student-panel.is-visible,
  .snp-student-metrics article.is-visible,
  .snp-student-course-card.is-visible{
    opacity:1;
    transform:translateY(0);
  }

}

/* =========================================================
   MEUS CURSOS
========================================================= */

.snp-student-courses-hero{
  min-height:150px;
  padding:22px;
  border-radius:20px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  background:
    radial-gradient(
      circle at 88% 12%,
      rgba(99,102,241,.24),
      transparent 34%
    ),
    linear-gradient(135deg,#fff,#f8fafc);
  border:1px solid #e5e7eb;
  box-shadow:0 10px 28px rgba(15,23,42,.04);
}

.snp-student-courses-hero > div{
  max-width:700px;
}

.snp-student-courses-hero > div > span{
  display:block;
  color:var(--student-primary);
  font-size:8px;
  font-weight:900;
  letter-spacing:2.5px;
}

.snp-student-courses-hero h2{
  margin:8px 0 7px;
  color:#0f172a;
  font-size:23px;
  line-height:1.18;
  letter-spacing:-.5px;
}

.snp-student-courses-hero p{
  max-width:620px;
  margin:0;
  color:#64748b;
  font-size:11px;
  line-height:1.6;
}

/* RESUMO */

.snp-student-course-summary{
  margin-top:14px;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:10px;
}

.snp-student-course-summary article{
  min-height:74px;
  padding:12px;
  border-radius:15px;
  display:flex;
  align-items:center;
  gap:10px;
  background:#fff;
  border:1px solid #e5e7eb;
  box-shadow:0 6px 18px rgba(15,23,42,.03);
}

.snp-student-course-summary article > div{
  width:36px;
  height:36px;
  border-radius:11px;
  flex:0 0 36px;
  display:grid;
  place-items:center;
  background:#eef2ff;
  font-size:15px;
}

.snp-student-course-summary strong{
  display:block;
  color:#0f172a;
  font-size:18px;
  line-height:1;
}

.snp-student-course-summary small{
  display:block;
  margin-top:4px;
  color:#64748b;
  font-size:9px;
}

/* FILTROS */

.snp-student-course-controls{
  margin-top:16px;
  padding:10px;
  border-radius:15px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  background:#fff;
  border:1px solid #e5e7eb;
}

.snp-student-course-tabs{
  display:flex;
  align-items:center;
  gap:5px;
  overflow-x:auto;
  scrollbar-width:none;
}

.snp-student-course-tabs::-webkit-scrollbar{
  display:none;
}

.snp-student-course-tabs button{
  min-height:34px;
  padding:0 11px;
  border:0;
  border-radius:10px;
  display:flex;
  align-items:center;
  gap:7px;
  white-space:nowrap;
  background:transparent;
  color:#64748b;
  font-size:10px;
  font-weight:800;
  cursor:pointer;
}

.snp-student-course-tabs button span{
  min-width:19px;
  height:19px;
  padding:0 5px;
  border-radius:999px;
  display:grid;
  place-items:center;
  background:#f1f5f9;
  color:#64748b;
  font-size:8px;
}

.snp-student-course-tabs button.is-active{
  background:#eef2ff;
  color:var(--student-primary);
}

.snp-student-course-tabs button.is-active span{
  background:var(--student-primary);
  color:#fff;
}

.snp-student-course-view{
  display:flex;
  gap:5px;
  flex-shrink:0;
}

.snp-student-course-view button{
  width:34px;
  height:34px;
  border:1px solid #e5e7eb;
  border-radius:10px;
  background:#fff;
  color:#64748b;
  cursor:pointer;
}

.snp-student-course-view button.is-active{
  background:linear-gradient(
    135deg,
    var(--student-purple),
    var(--student-secondary)
  );
  border-color:transparent;
  color:#fff;
}

/* GRELHA DOS CURSOS */

.snp-student-my-courses-grid{
  margin-top:14px;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
}

.snp-student-my-course{
  min-width:0;
  overflow:hidden;
  border-radius:17px;
  background:#fff;
  border:1px solid #e5e7eb;
  box-shadow:0 8px 24px rgba(15,23,42,.035);
  transition:
    transform .25s ease,
    box-shadow .25s ease,
    border-color .25s ease;
}

.snp-student-my-course:hover{
  transform:translateY(-4px);
  border-color:#c7d2fe;
  box-shadow:0 16px 36px rgba(79,70,229,.09);
}

.snp-student-my-course[hidden]{
  display:none!important;
}

/* IMAGEM */

.snp-student-my-course-image{
  position:relative;
  height:150px;
  display:block;
  overflow:hidden;
  background:#e2e8f0;
}

.snp-student-my-course-image::after{
  content:"";
  position:absolute;
  inset:auto 0 0;
  height:45%;
  background:linear-gradient(
    to top,
    rgba(15,23,42,.56),
    transparent
  );
}

.snp-student-my-course-image img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  transition:transform .4s ease;
}

.snp-student-my-course:hover img{
  transform:scale(1.045);
}

.snp-student-my-course-level,
.snp-student-course-completed{
  position:absolute;
  z-index:2;
  top:11px;
  padding:5px 8px;
  border-radius:999px;
  font-size:8px;
  font-weight:900;
  backdrop-filter:blur(12px);
}

.snp-student-my-course-level{
  left:11px;
  background:rgba(15,23,42,.62);
  color:#fff;
}

.snp-student-course-completed{
  right:11px;
  background:rgba(22,163,74,.88);
  color:#fff;
}

/* CONTEÚDO */

.snp-student-my-course-content{
  padding:14px;
}

.snp-student-my-course-meta{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
}

.snp-student-my-course-meta > span{
  display:inline-flex;
  padding:4px 7px;
  border-radius:999px;
  background:#eef2ff;
  color:var(--student-primary);
  font-size:8px;
  font-weight:900;
}

.snp-student-my-course-meta small{
  color:#94a3b8;
  font-size:8px;
}

.snp-student-my-course-content h2{
  min-height:38px;
  margin:9px 0 4px;
  font-size:14px;
  line-height:1.35;
}

.snp-student-my-course-content h2 a{
  color:#0f172a;
}

.snp-student-my-course-instructor{
  margin:0;
  color:#64748b;
  font-size:9px;
}

.snp-student-my-course-lesson{
  min-height:50px;
  margin-top:11px;
  padding:9px;
  border-radius:11px;
  background:#f8fafc;
  border:1px solid #edf2f7;
}

.snp-student-my-course-lesson span{
  display:block;
  margin-bottom:4px;
  color:#94a3b8;
  font-size:8px;
  text-transform:uppercase;
  letter-spacing:.8px;
}

.snp-student-my-course-lesson strong{
  display:block;
  color:#334155;
  font-size:9px;
  line-height:1.45;
}

.snp-student-my-course-progress{
  margin-top:11px;
}

.snp-student-my-course-progress > div:first-child{
  margin-bottom:6px;
  display:flex;
  justify-content:space-between;
  gap:8px;
}

.snp-student-my-course-progress span{
  color:#64748b;
  font-size:8px;
}

.snp-student-my-course-progress strong{
  color:#0f172a;
  font-size:9px;
}

/* ACÇÕES */

.snp-student-my-course-actions{
  min-height:36px;
  margin-top:12px;
  display:flex;
  align-items:center;
  gap:8px;
}

.snp-student-course-continue{
  width:100%;
  min-height:36px;
  padding:0 12px;
  border-radius:11px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  background:linear-gradient(
    135deg,
    var(--student-purple),
    var(--student-secondary)
  );
  color:#fff;
  font-size:9px;
  font-weight:900;
}

.snp-student-course-certificate{
  flex:1;
  min-height:36px;
  padding:0 10px;
  border-radius:11px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#dcfce7;
  color:#15803d;
  font-size:9px;
  font-weight:900;
}

.snp-student-course-open{
  min-height:36px;
  padding:0 11px;
  border-radius:11px;
  display:flex;
  align-items:center;
  gap:7px;
  background:#eef2ff;
  color:var(--student-primary);
  font-size:9px;
  font-weight:900;
}

/* VISUALIZAÇÃO EM LISTA */

.snp-student-my-courses-grid.is-list-view{
  grid-template-columns:1fr;
}

.snp-student-my-courses-grid.is-list-view
.snp-student-my-course{
  display:grid;
  grid-template-columns:210px minmax(0,1fr);
}

.snp-student-my-courses-grid.is-list-view
.snp-student-my-course-image{
  height:100%;
  min-height:210px;
}

.snp-student-my-courses-grid.is-list-view
.snp-student-my-course-content{
  display:grid;
  grid-template-columns:1fr 230px;
  gap:0 20px;
  align-content:center;
}

.snp-student-my-courses-grid.is-list-view
.snp-student-my-course-meta,
.snp-student-my-courses-grid.is-list-view
.snp-student-my-course-content h2,
.snp-student-my-courses-grid.is-list-view
.snp-student-my-course-instructor{
  grid-column:1;
}

.snp-student-my-courses-grid.is-list-view
.snp-student-my-course-lesson,
.snp-student-my-courses-grid.is-list-view
.snp-student-my-course-progress,
.snp-student-my-courses-grid.is-list-view
.snp-student-my-course-actions{
  grid-column:2;
}

.snp-student-my-courses-grid.is-list-view
.snp-student-my-course-lesson{
  grid-row:1 / 3;
  margin-top:0;
}

/* ESTADO VAZIO */

.snp-student-empty-state{
  margin-top:14px;
  padding:44px 20px;
  border-radius:18px;
  text-align:center;
  background:#fff;
  border:1px dashed #cbd5e1;
}

.snp-student-empty-state > div{
  width:48px;
  height:48px;
  margin:0 auto 12px;
  border-radius:15px;
  display:grid;
  place-items:center;
  background:#eef2ff;
  color:var(--student-primary);
  font-size:20px;
}

.snp-student-empty-state h2{
  margin:0;
  color:#0f172a;
  font-size:17px;
}

.snp-student-empty-state p{
  max-width:420px;
  margin:7px auto 14px;
  color:#64748b;
  font-size:10px;
  line-height:1.55;
}

.snp-student-empty-state button{
  min-height:36px;
  padding:0 14px;
  border:0;
  border-radius:11px;
  background:linear-gradient(
    135deg,
    var(--student-purple),
    var(--student-secondary)
  );
  color:#fff;
  font-size:10px;
  font-weight:900;
  cursor:pointer;
}

/* BANNER DOS LABORATÓRIOS */

.snp-student-learning-banner{
  margin-top:16px;
  padding:18px;
  border-radius:18px;
  display:grid;
  grid-template-columns:46px 1fr auto;
  gap:15px;
  align-items:center;
  background:
    radial-gradient(
      circle at 90% 10%,
      rgba(99,102,241,.35),
      transparent 34%
    ),
    linear-gradient(135deg,#0f172a,#1e1b4b);
  color:#fff;
}

.snp-student-learning-banner-icon{
  width:46px;
  height:46px;
  border-radius:14px;
  display:grid;
  place-items:center;
  background:rgba(255,255,255,.10);
  font-size:19px;
}

.snp-student-learning-banner > div:nth-child(2) > span{
  color:#a5b4fc;
  font-size:8px;
  font-weight:900;
  letter-spacing:2px;
}

.snp-student-learning-banner h2{
  margin:5px 0 3px;
  color:#fff;
  font-size:15px;
}

.snp-student-learning-banner p{
  margin:0;
  color:#cbd5e1;
  font-size:9px;
  line-height:1.5;
}

.snp-student-learning-banner > a{
  min-height:38px;
  padding:0 14px;
  border-radius:11px;
  display:flex;
  align-items:center;
  gap:12px;
  background:linear-gradient(
    135deg,
    var(--student-purple),
    var(--student-secondary)
  );
  color:#fff;
  white-space:nowrap;
  font-size:9px;
  font-weight:900;
}

/* =========================================================
   MEUS CURSOS — RESPONSIVO
========================================================= */

@media(max-width:1180px){

  .snp-student-my-courses-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .snp-student-my-courses-grid.is-list-view
  .snp-student-my-course-content{
    grid-template-columns:1fr;
  }

  .snp-student-my-courses-grid.is-list-view
  .snp-student-my-course-meta,
  .snp-student-my-courses-grid.is-list-view
  .snp-student-my-course-content h2,
  .snp-student-my-courses-grid.is-list-view
  .snp-student-my-course-instructor,
  .snp-student-my-courses-grid.is-list-view
  .snp-student-my-course-lesson,
  .snp-student-my-courses-grid.is-list-view
  .snp-student-my-course-progress,
  .snp-student-my-courses-grid.is-list-view
  .snp-student-my-course-actions{
    grid-column:1;
    grid-row:auto;
  }

  .snp-student-my-courses-grid.is-list-view
  .snp-student-my-course-lesson{
    margin-top:10px;
  }

}

@media(max-width:900px){

  .snp-student-course-summary{
    grid-template-columns:repeat(2,1fr);
  }

  .snp-student-courses-hero{
    align-items:flex-start;
  }

}

@media(max-width:700px){

  .snp-student-courses-hero{
    min-height:auto;
    padding:17px;
    border-radius:17px;
    display:grid;
  }

  .snp-student-courses-hero h2{
    font-size:20px;
  }

  .snp-student-courses-hero
  .snp-student-primary-button{
    width:100%;
  }

  .snp-student-course-summary{
    gap:8px;
  }

  .snp-student-course-summary article{
    min-height:66px;
    padding:9px;
  }

  .snp-student-course-controls{
    align-items:flex-start;
  }

  .snp-student-course-view{
    display:none;
  }

  .snp-student-my-courses-grid,
  .snp-student-my-courses-grid.is-list-view{
    grid-template-columns:1fr;
  }

  .snp-student-my-courses-grid.is-list-view
  .snp-student-my-course{
    display:block;
  }

  .snp-student-my-course{
    display:grid;
    grid-template-columns:105px minmax(0,1fr);
  }

  .snp-student-my-course-image,
  .snp-student-my-courses-grid.is-list-view
  .snp-student-my-course-image{
    height:100%;
    min-height:230px;
  }

  .snp-student-my-course-content{
    padding:11px;
  }

  .snp-student-my-course-content h2{
    min-height:auto;
    font-size:12px;
  }

  .snp-student-my-course-lesson{
    min-height:auto;
  }

  .snp-student-learning-banner{
    grid-template-columns:40px 1fr;
  }

  .snp-student-learning-banner-icon{
    width:40px;
    height:40px;
  }

  .snp-student-learning-banner > a{
    grid-column:1 / -1;
    justify-content:center;
  }

}

@media(max-width:420px){

  .snp-student-course-summary strong{
    font-size:16px;
  }

  .snp-student-course-summary small{
    font-size:8px;
  }

  .snp-student-my-course{
    grid-template-columns:90px minmax(0,1fr);
  }

  .snp-student-my-course-image{
    min-height:245px;
  }

  .snp-student-my-course-meta small{
    display:none;
  }

}

/* =========================================================
   PÁGINA INDIVIDUAL DO CURSO
========================================================= */

.snp-course-back{
  min-height:36px;
  padding:0 12px;
  border-radius:11px;
  display:flex;
  align-items:center;
  background:#f8fafc;
  border:1px solid #e2e8f0;
  color:#475569;
  font-size:10px;
  font-weight:800;
}

.snp-course-layout{
  min-height:calc(100vh - 72px);
  display:grid;
  grid-template-columns:minmax(0,1fr) 350px;
  background:#eef2f7;
}

.snp-course-learning{
  min-width:0;
}

.snp-course-video-wrapper{
  position:relative;
  width:100%;
  overflow:hidden;
  background:#020617;
  aspect-ratio:16 / 9;
}

.snp-course-video{
  width:100%;
  height:100%;
  display:block;
  object-fit:contain;
  background:#020617;
}

.snp-course-video-top{
  position:absolute;
  top:14px;
  left:14px;
  right:14px;
  display:flex;
  justify-content:space-between;
  gap:12px;
  pointer-events:none;
}

.snp-course-video-top span,
.snp-course-video-top strong{
  padding:6px 9px;
  border-radius:999px;
  background:rgba(15,23,42,.72);
  color:#fff;
  font-size:8px;
  font-weight:900;
  backdrop-filter:blur(10px);
}

.snp-course-content{
  padding:22px 24px 40px;
}

.snp-course-lesson-header{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:20px;
}

.snp-course-lesson-header > div{
  max-width:760px;
}

.snp-course-lesson-header > div > span{
  color:var(--student-primary);
  font-size:8px;
  font-weight:900;
  letter-spacing:2px;
}

.snp-course-lesson-header h2{
  margin:7px 0;
  color:#0f172a;
  font-size:23px;
  line-height:1.2;
}

.snp-course-lesson-header p{
  margin:0;
  color:#64748b;
  font-size:11px;
  line-height:1.65;
}

.snp-course-complete-button{
  min-height:40px;
  padding:0 14px;
  border:1px solid #c7d2fe;
  border-radius:12px;
  display:flex;
  align-items:center;
  gap:8px;
  background:#fff;
  color:var(--student-primary);
  font-size:10px;
  font-weight:900;
  cursor:pointer;
  white-space:nowrap;
}

.snp-course-complete-button span{
  width:21px;
  height:21px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:#eef2ff;
}

.snp-course-complete-button.is-complete{
  border-color:#bbf7d0;
  background:#dcfce7;
  color:#15803d;
}

.snp-course-complete-button.is-complete span{
  background:#16a34a;
  color:#fff;
}

.snp-course-lesson-meta{
  margin-top:18px;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:10px;
}

.snp-course-lesson-meta > div{
  padding:11px;
  border-radius:13px;
  display:flex;
  align-items:center;
  gap:9px;
  background:#fff;
  border:1px solid #e5e7eb;
}

.snp-course-lesson-meta i{
  width:31px;
  height:31px;
  border-radius:10px;
  display:grid;
  place-items:center;
  background:#eef2ff;
  color:var(--student-primary);
  font-style:normal;
}

.snp-course-lesson-meta span{
  color:#64748b;
  font-size:9px;
}

.snp-course-lesson-meta strong{
  display:block;
  margin-bottom:3px;
  color:#0f172a;
  font-size:9px;
}

.snp-course-tabs{
  margin-top:20px;
  display:flex;
  gap:5px;
  border-bottom:1px solid #e2e8f0;
  overflow-x:auto;
}

.snp-course-tabs button{
  position:relative;
  min-height:42px;
  padding:0 12px;
  border:0;
  background:transparent;
  color:#64748b;
  font-size:10px;
  font-weight:800;
  cursor:pointer;
  white-space:nowrap;
}

.snp-course-tabs button span{
  margin-left:4px;
  padding:2px 6px;
  border-radius:999px;
  background:#f1f5f9;
  font-size:8px;
}

.snp-course-tabs button.is-active{
  color:var(--student-primary);
}

.snp-course-tabs button.is-active::after{
  content:"";
  position:absolute;
  left:10px;
  right:10px;
  bottom:-1px;
  height:2px;
  background:var(--student-primary);
}

.snp-course-tab-panel{
  display:none;
  padding:18px 0;
}

.snp-course-tab-panel.is-active{
  display:block;
}

.snp-course-tab-panel h3{
  margin:0 0 8px;
  color:#0f172a;
  font-size:14px;
}

.snp-course-tab-panel p,
.snp-course-tab-panel li{
  color:#64748b;
  font-size:10px;
  line-height:1.65;
}

.snp-course-tab-panel ul{
  margin:10px 0 0;
  padding-left:18px;
}

.snp-course-materials{
  display:grid;
  gap:8px;
}

.snp-course-materials a{
  min-height:58px;
  padding:10px;
  border-radius:13px;
  display:grid;
  grid-template-columns:34px 1fr auto;
  gap:10px;
  align-items:center;
  background:#fff;
  border:1px solid #e5e7eb;
}

.snp-course-materials a > div{
  width:34px;
  height:34px;
  border-radius:10px;
  display:grid;
  place-items:center;
  background:#eef2ff;
  color:var(--student-primary);
  font-weight:900;
}

.snp-course-materials strong{
  display:block;
  color:#0f172a;
  font-size:10px;
}

.snp-course-materials small{
  display:block;
  margin-top:3px;
  color:#94a3b8;
  font-size:8px;
}

.snp-course-materials b{
  color:var(--student-primary);
  font-size:9px;
}

.snp-course-notes-form label{
  display:block;
  margin-bottom:8px;
  color:#0f172a;
  font-size:10px;
  font-weight:900;
}

.snp-course-notes-form textarea,
.snp-course-discussion textarea{
  width:100%;
  padding:12px;
  border:1px solid #e2e8f0;
  border-radius:13px;
  resize:vertical;
  outline:0;
  background:#fff;
  color:#0f172a;
  font-size:10px;
  line-height:1.6;
}

.snp-course-notes-form textarea:focus,
.snp-course-discussion textarea:focus{
  border-color:#a5b4fc;
  box-shadow:0 0 0 3px rgba(79,70,229,.08);
}

.snp-course-notes-form button,
.snp-course-discussion form button{
  min-height:36px;
  margin-top:10px;
  padding:0 13px;
  border:0;
  border-radius:11px;
  background:linear-gradient(
    135deg,
    var(--student-purple),
    var(--student-secondary)
  );
  color:#fff;
  font-size:9px;
  font-weight:900;
  cursor:pointer;
}

.snp-course-discussion-empty{
  margin-bottom:12px;
  padding:18px;
  border-radius:14px;
  text-align:center;
  background:#fff;
  border:1px dashed #cbd5e1;
}

.snp-course-discussion-empty i{
  font-style:normal;
  font-size:22px;
}

.snp-course-discussion-empty h3{
  margin:7px 0 4px;
}

.snp-course-discussion-empty p{
  margin:0;
}

.snp-course-navigation{
  margin-top:18px;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
}

.snp-course-navigation a{
  min-height:64px;
  padding:12px;
  border-radius:14px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  background:#fff;
  border:1px solid #e5e7eb;
}

.snp-course-navigation span{
  color:#94a3b8;
  font-size:8px;
}

.snp-course-navigation strong{
  margin-top:4px;
  color:#0f172a;
  font-size:10px;
}

.snp-course-navigation .snp-course-next{
  text-align:right;
  border-color:#c7d2fe;
  background:#eef2ff;
}

/* =========================================================
   SIDEBAR DO CONTEÚDO
========================================================= */

.snp-course-sidebar{
  position:sticky;
  top:72px;
  height:calc(100vh - 72px);
  overflow-y:auto;
  background:#fff;
  border-left:1px solid #e2e8f0;
}

.snp-course-sidebar-head{
  position:sticky;
  top:0;
  z-index:3;
  padding:16px;
  display:flex;
  justify-content:space-between;
  gap:10px;
  background:rgba(255,255,255,.96);
  border-bottom:1px solid #e5e7eb;
  backdrop-filter:blur(12px);
}

.snp-course-sidebar-head span{
  color:var(--student-primary);
  font-size:8px;
  font-weight:900;
  letter-spacing:1.8px;
}

.snp-course-sidebar-head h2{
  margin:5px 0 0;
  color:#0f172a;
  font-size:13px;
}

.snp-course-sidebar-head button{
  display:none;
  width:30px;
  height:30px;
  border:0;
  border-radius:9px;
  background:#f1f5f9;
  font-size:19px;
  cursor:pointer;
}

.snp-course-overall-progress{
  padding:14px 16px;
  border-bottom:1px solid #edf2f7;
}

.snp-course-overall-progress > div:first-child{
  margin-bottom:8px;
  display:flex;
  justify-content:space-between;
}

.snp-course-overall-progress span{
  color:#64748b;
  font-size:9px;
}

.snp-course-overall-progress strong{
  color:#0f172a;
  font-size:12px;
}

.snp-course-overall-progress small{
  display:block;
  margin-top:7px;
  color:#94a3b8;
  font-size:8px;
}

.snp-course-modules{
  padding:10px;
}

.snp-course-module{
  margin-bottom:8px;
  border:1px solid #e5e7eb;
  border-radius:13px;
  overflow:hidden;
}

.snp-course-module summary{
  min-height:66px;
  padding:10px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:8px;
  list-style:none;
  cursor:pointer;
  background:#f8fafc;
}

.snp-course-module summary::-webkit-details-marker{
  display:none;
}

.snp-course-module summary small{
  display:block;
  color:var(--student-primary);
  font-size:7px;
  font-weight:900;
  text-transform:uppercase;
}

.snp-course-module summary strong{
  display:block;
  margin-top:3px;
  color:#0f172a;
  font-size:10px;
}

.snp-course-module summary em{
  display:block;
  margin-top:4px;
  color:#94a3b8;
  font-size:7px;
  font-style:normal;
}

.snp-course-module summary b{
  width:20px;
  height:20px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:#eef2ff;
}

.snp-course-module summary b::before{
  content:"+";
  color:var(--student-primary);
  font-size:13px;
}

.snp-course-module[open] summary b::before{
  content:"−";
}

.snp-course-lessons{
  padding:6px;
  display:grid;
  gap:4px;
}

.snp-course-lessons a{
  min-height:48px;
  padding:7px;
  border-radius:10px;
  display:grid;
  grid-template-columns:28px 1fr;
  gap:8px;
  align-items:center;
}

.snp-course-lessons a:hover{
  background:#f8fafc;
}

.snp-course-lessons a.is-current{
  background:#eef2ff;
  border:1px solid #c7d2fe;
}

.snp-course-lessons a.is-locked{
  opacity:.55;
  cursor:not-allowed;
}

.snp-course-lessons i{
  width:28px;
  height:28px;
  border-radius:9px;
  display:grid;
  place-items:center;
  background:#f1f5f9;
  color:#64748b;
  font-style:normal;
  font-size:9px;
}

.snp-course-lessons a.is-current i{
  background:linear-gradient(
    135deg,
    var(--student-purple),
    var(--student-secondary)
  );
  color:#fff;
}

.snp-course-lessons strong{
  display:block;
  color:#334155;
  font-size:9px;
  line-height:1.35;
}

.snp-course-lessons small{
  display:block;
  margin-top:3px;
  color:#94a3b8;
  font-size:7px;
}

.snp-course-mobile-content-button{
  display:none;
  position:fixed;
  right:14px;
  bottom:14px;
  z-index:800;
  min-height:42px;
  padding:0 15px;
  border:0;
  border-radius:13px;
  background:linear-gradient(
    135deg,
    var(--student-purple),
    var(--student-secondary)
  );
  color:#fff;
  font-size:10px;
  font-weight:900;
  box-shadow:0 14px 30px rgba(79,70,229,.28);
}

/* =========================================================
   RESPONSIVO
========================================================= */

@media(max-width:1100px){

  .snp-course-layout{
    grid-template-columns:minmax(0,1fr) 320px;
  }

}

@media(max-width:900px){

  .snp-course-layout{
    display:block;
  }

  .snp-course-sidebar{
    position:fixed;
    top:0;
    right:0;
    z-index:1200;
    width:min(360px,92vw);
    height:100vh;
    transform:translateX(105%);
    transition:transform .28s ease;
    box-shadow:-20px 0 50px rgba(15,23,42,.20);
  }

  .snp-course-sidebar.is-open{
    transform:translateX(0);
  }

  .snp-course-sidebar-head button,
  .snp-course-mobile-content-button{
    display:block;
  }

}

@media(max-width:700px){

  .snp-course-back{
    display:none;
  }

  .snp-course-video-wrapper{
    aspect-ratio:16 / 10;
  }

  .snp-course-content{
    padding:16px 12px 80px;
  }

  .snp-course-lesson-header{
    display:grid;
  }

  .snp-course-lesson-header h2{
    font-size:20px;
  }

  .snp-course-complete-button{
    width:100%;
    justify-content:center;
  }

  .snp-course-lesson-meta{
    grid-template-columns:1fr;
  }

  .snp-course-navigation{
    grid-template-columns:1fr;
  }

  .snp-course-navigation .snp-course-next{
    text-align:left;
  }

  .snp-course-materials a{
    grid-template-columns:34px 1fr;
  }

  .snp-course-materials b{
    grid-column:2;
  }

}

/* =========================================================
   LABORATÓRIOS DO ALUNO
========================================================= */

.snp-labs-hero{
  min-height:230px;
  padding:24px;
  border-radius:22px;
  display:grid;
  grid-template-columns:minmax(0,1fr) 330px;
  gap:22px;
  align-items:center;
  color:#fff;
  background:
    radial-gradient(circle at 85% 16%,rgba(99,102,241,.42),transparent 32%),
    linear-gradient(135deg,#0f172a,#111827 56%,#1e1b4b);
  box-shadow:0 18px 46px rgba(15,23,42,.14);
  overflow:hidden;
}

.snp-labs-hero-copy > span{
  color:#a5b4fc;
  font-size:8px;
  font-weight:900;
  letter-spacing:2.4px;
}

.snp-labs-hero-copy h2{
  max-width:680px;
  margin:9px 0;
  color:#fff;
  font-size:27px;
  line-height:1.16;
}

.snp-labs-hero-copy p{
  max-width:650px;
  margin:0;
  color:#cbd5e1;
  font-size:11px;
  line-height:1.65;
}

.snp-labs-hero-features{
  margin-top:16px;
  display:flex;
  flex-wrap:wrap;
  gap:7px;
}

.snp-labs-hero-features span{
  padding:6px 9px;
  border-radius:999px;
  color:#dbeafe;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.11);
  font-size:8px;
  font-weight:800;
}

.snp-labs-active-summary{
  padding:17px;
  border-radius:18px;
  background:rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.14);
  backdrop-filter:blur(16px);
}

.snp-labs-active-summary-head{
  display:flex;
  justify-content:space-between;
  align-items:center;
}

.snp-labs-active-summary-head span{
  color:#a5b4fc;
  font-size:8px;
  font-weight:900;
  letter-spacing:1.6px;
}

.snp-labs-active-summary-head i{
  width:8px;
  height:8px;
  border-radius:50%;
  background:#22c55e;
  box-shadow:0 0 0 5px rgba(34,197,94,.14);
}

.snp-labs-active-summary h3{
  margin:10px 0 5px;
  color:#fff;
  font-size:16px;
}

.snp-labs-active-summary p{
  margin:0;
  color:#cbd5e1;
  font-size:9px;
}

.snp-labs-timer{
  margin-top:14px;
  padding:10px;
  border-radius:12px;
  background:rgba(15,23,42,.36);
}

.snp-labs-timer small{
  display:block;
  color:#94a3b8;
  font-size:8px;
}

.snp-labs-timer strong{
  display:block;
  margin-top:4px;
  color:#fff;
  font-size:24px;
  letter-spacing:1px;
}

.snp-labs-active-actions{
  margin-top:11px;
  display:grid;
  grid-template-columns:1fr auto;
  gap:7px;
}

.snp-labs-active-actions a,
.snp-labs-active-actions button{
  min-height:35px;
  padding:0 11px;
  border-radius:10px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:8px;
  font-weight:900;
}

.snp-labs-active-actions a{
  color:#fff;
  background:linear-gradient(135deg,var(--student-purple),var(--student-secondary));
}

.snp-labs-active-actions button{
  border:1px solid rgba(255,255,255,.14);
  color:#fff;
  background:rgba(255,255,255,.06);
  cursor:pointer;
}

/* RESUMO */

.snp-labs-summary{
  margin-top:14px;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:10px;
}

.snp-labs-summary article{
  min-height:72px;
  padding:11px;
  border-radius:15px;
  display:flex;
  align-items:center;
  gap:10px;
  background:#fff;
  border:1px solid #e5e7eb;
  box-shadow:0 6px 18px rgba(15,23,42,.03);
}

.snp-labs-summary article > div{
  width:36px;
  height:36px;
  flex:0 0 36px;
  border-radius:11px;
  display:grid;
  place-items:center;
  background:#eef2ff;
  font-size:15px;
}

.snp-labs-summary strong{
  display:block;
  color:#0f172a;
  font-size:17px;
  line-height:1;
}

.snp-labs-summary small{
  display:block;
  margin-top:4px;
  color:#64748b;
  font-size:8px;
}

/* FILTROS */

.snp-labs-controls{
  margin-top:16px;
  padding:10px;
  border-radius:15px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:14px;
  background:#fff;
  border:1px solid #e5e7eb;
}

.snp-labs-filters{
  display:flex;
  gap:5px;
  overflow-x:auto;
  scrollbar-width:none;
}

.snp-labs-filters::-webkit-scrollbar{
  display:none;
}

.snp-labs-filters button{
  min-height:34px;
  padding:0 11px;
  border:0;
  border-radius:10px;
  white-space:nowrap;
  background:transparent;
  color:#64748b;
  font-size:9px;
  font-weight:800;
  cursor:pointer;
}

.snp-labs-filters button.is-active{
  color:var(--student-primary);
  background:#eef2ff;
}

.snp-labs-controls select{
  min-height:34px;
  padding:0 30px 0 10px;
  border:1px solid #e2e8f0;
  border-radius:10px;
  background:#fff;
  color:#475569;
  font-size:9px;
  outline:0;
}

/* GRELHA */

.snp-labs-grid{
  margin-top:14px;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
}

.snp-lab-card{
  overflow:hidden;
  border-radius:17px;
  background:#fff;
  border:1px solid #e5e7eb;
  box-shadow:0 8px 24px rgba(15,23,42,.035);
  transition:.25s ease;
}

.snp-lab-card:hover{
  transform:translateY(-4px);
  border-color:#c7d2fe;
  box-shadow:0 16px 36px rgba(79,70,229,.09);
}

.snp-lab-card[hidden]{
  display:none!important;
}

.snp-lab-card-image{
  position:relative;
  height:142px;
  overflow:hidden;
  background:#0f172a;
}

.snp-lab-card-image::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(15,23,42,.06),rgba(15,23,42,.58));
}

.snp-lab-card-image img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  transition:transform .35s ease;
}

.snp-lab-card:hover .snp-lab-card-image img{
  transform:scale(1.045);
}

.snp-lab-level,
.snp-lab-status{
  position:absolute;
  z-index:2;
  top:10px;
  padding:5px 8px;
  border-radius:999px;
  font-size:7px;
  font-weight:900;
  backdrop-filter:blur(10px);
}

.snp-lab-level{
  left:10px;
  color:#fff;
  background:rgba(15,23,42,.64);
}

.snp-lab-status{
  right:10px;
  display:flex;
  align-items:center;
  gap:5px;
}

.snp-lab-status i{
  width:6px;
  height:6px;
  border-radius:50%;
}

.snp-lab-status-available{
  color:#166534;
  background:rgba(220,252,231,.92);
}

.snp-lab-status-available i{
  background:#22c55e;
}

.snp-lab-status-active{
  color:#1e3a8a;
  background:rgba(219,234,254,.94);
}

.snp-lab-status-active i{
  background:#2563eb;
}

.snp-lab-status-scheduled{
  color:#854d0e;
  background:rgba(254,249,195,.94);
}

.snp-lab-status-scheduled i{
  background:#eab308;
}

.snp-lab-status-maintenance{
  color:#9a3412;
  background:rgba(255,237,213,.94);
}

.snp-lab-status-maintenance i{
  background:#f97316;
}

.snp-lab-card-content{
  padding:13px;
}

.snp-lab-category{
  display:inline-flex;
  padding:4px 7px;
  border-radius:999px;
  color:var(--student-primary);
  background:#eef2ff;
  font-size:7px;
  font-weight:900;
}

.snp-lab-card-content h2{
  margin:8px 0 5px;
  color:#0f172a;
  font-size:14px;
  line-height:1.3;
}

.snp-lab-card-content > p{
  min-height:46px;
  margin:0;
  color:#64748b;
  font-size:9px;
  line-height:1.55;
}

.snp-lab-meta{
  margin-top:10px;
  display:grid;
  gap:6px;
}

.snp-lab-meta span{
  display:flex;
  align-items:center;
  gap:6px;
  color:#64748b;
  font-size:8px;
}

.snp-lab-meta i{
  width:22px;
  height:22px;
  border-radius:7px;
  display:grid;
  place-items:center;
  background:#f8fafc;
  font-style:normal;
}

.snp-lab-course-progress{
  margin-top:10px;
}

.snp-lab-course-progress > div:first-child{
  margin-bottom:5px;
  display:flex;
  justify-content:space-between;
}

.snp-lab-course-progress span{
  color:#64748b;
  font-size:8px;
}

.snp-lab-course-progress strong{
  color:#0f172a;
  font-size:8px;
}

.snp-lab-running,
.snp-lab-reservation{
  margin-top:10px;
  padding:9px;
  border-radius:10px;
  background:#f8fafc;
  border:1px solid #edf2f7;
}

.snp-lab-running span,
.snp-lab-reservation span{
  display:block;
  color:#94a3b8;
  font-size:7px;
  text-transform:uppercase;
}

.snp-lab-running strong,
.snp-lab-reservation strong{
  display:block;
  margin-top:4px;
  color:#0f172a;
  font-size:11px;
}

.snp-lab-main-button,
.snp-lab-secondary-button{
  width:100%;
  min-height:36px;
  margin-top:11px;
  padding:0 11px;
  border-radius:11px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  font-size:9px;
  font-weight:900;
}

button.snp-lab-main-button{
  border:0;
  cursor:pointer;
}

.snp-lab-main-button{
  color:#fff;
  background:linear-gradient(135deg,var(--student-purple),var(--student-secondary));
}

.snp-lab-secondary-button{
  justify-content:center;
  border:1px solid #e2e8f0;
  color:#64748b;
  background:#f8fafc;
  cursor:pointer;
}

.snp-lab-secondary-button:disabled{
  opacity:.7;
  cursor:not-allowed;
}

/* PARTE INFERIOR */

.snp-labs-bottom-grid{
  margin-top:16px;
  display:grid;
  grid-template-columns:1.2fr .8fr;
  gap:16px;
}

.snp-labs-history{
  display:grid;
  gap:8px;
}

.snp-labs-history > div{
  min-height:48px;
  padding:9px;
  border-radius:11px;
  display:grid;
  grid-template-columns:29px 1fr auto;
  gap:9px;
  align-items:center;
  background:#f8fafc;
  border:1px solid #edf2f7;
}

.snp-labs-history i{
  width:29px;
  height:29px;
  border-radius:9px;
  display:grid;
  place-items:center;
  background:#dcfce7;
  color:#16a34a;
  font-style:normal;
  font-size:9px;
  font-weight:900;
}

.snp-labs-history strong{
  display:block;
  color:#0f172a;
  font-size:9px;
}

.snp-labs-history small{
  display:block;
  margin-top:3px;
  color:#94a3b8;
  font-size:7px;
}

.snp-labs-history b{
  color:#16a34a;
  font-size:8px;
}

.snp-labs-requirements{
  padding:17px;
  border-radius:18px;
  color:#fff;
  background:
    radial-gradient(circle at 85% 10%,rgba(99,102,241,.38),transparent 34%),
    linear-gradient(135deg,#0f172a,#1e1b4b);
}

.snp-labs-requirements > div{
  width:38px;
  height:38px;
  margin-bottom:11px;
  border-radius:12px;
  display:grid;
  place-items:center;
  background:rgba(255,255,255,.10);
}

.snp-labs-requirements > span{
  color:#a5b4fc;
  font-size:8px;
  font-weight:900;
  letter-spacing:1.8px;
}

.snp-labs-requirements h2{
  margin:7px 0 10px;
  color:#fff;
  font-size:15px;
}

.snp-labs-requirements ul{
  margin:0;
  padding-left:17px;
}

.snp-labs-requirements li{
  margin-bottom:6px;
  color:#cbd5e1;
  font-size:9px;
}

.snp-labs-requirements a{
  min-height:35px;
  margin-top:12px;
  padding:0 11px;
  border-radius:10px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  color:#fff;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.12);
  font-size:8px;
  font-weight:900;
}

/* MODAL */

.snp-lab-modal{
  position:fixed;
  inset:0;
  z-index:2000;
  padding:20px;
  display:none;
  place-items:center;
  background:rgba(15,23,42,.65);
  backdrop-filter:blur(6px);
}

.snp-lab-modal.is-open{
  display:grid;
}

.snp-lab-modal-dialog{
  position:relative;
  width:min(430px,100%);
  padding:24px;
  border-radius:22px;
  background:#fff;
  box-shadow:0 28px 80px rgba(15,23,42,.25);
}

.snp-lab-modal-close{
  position:absolute;
  top:13px;
  right:13px;
  width:31px;
  height:31px;
  border:0;
  border-radius:9px;
  background:#f1f5f9;
  color:#0f172a;
  font-size:19px;
  cursor:pointer;
}

.snp-lab-modal-icon{
  width:44px;
  height:44px;
  margin-bottom:13px;
  border-radius:14px;
  display:grid;
  place-items:center;
  background:#eef2ff;
  font-size:19px;
}

.snp-lab-modal-dialog > span{
  color:var(--student-primary);
  font-size:8px;
  font-weight:900;
  letter-spacing:2px;
}

.snp-lab-modal-dialog h2{
  margin:7px 0;
  color:#0f172a;
  font-size:20px;
}

.snp-lab-modal-dialog > p{
  margin:0;
  color:#64748b;
  font-size:10px;
  line-height:1.55;
}

.snp-lab-modal-info{
  margin-top:14px;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
}

.snp-lab-modal-info div{
  padding:10px;
  border-radius:11px;
  background:#f8fafc;
  border:1px solid #edf2f7;
}

.snp-lab-modal-info small{
  display:block;
  color:#94a3b8;
  font-size:7px;
}

.snp-lab-modal-info strong{
  display:block;
  margin-top:4px;
  color:#0f172a;
  font-size:10px;
}

.snp-lab-confirmation{
  margin-top:14px;
  padding:10px;
  border-radius:11px;
  display:flex;
  gap:8px;
  align-items:flex-start;
  background:#f8fafc;
  border:1px solid #edf2f7;
  cursor:pointer;
}

.snp-lab-confirmation input{
  margin-top:2px;
}

.snp-lab-confirmation span{
  color:#475569;
  font-size:9px;
  line-height:1.5;
}

.snp-lab-confirm-button{
  width:100%;
  min-height:39px;
  margin-top:13px;
  border:0;
  border-radius:11px;
  color:#fff;
  background:linear-gradient(135deg,var(--student-purple),var(--student-secondary));
  font-size:9px;
  font-weight:900;
  cursor:pointer;
}

.snp-lab-confirm-button:disabled{
  opacity:.45;
  cursor:not-allowed;
}

/* RESPONSIVO */

@media(max-width:1180px){

  .snp-labs-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

}

@media(max-width:900px){

  .snp-labs-hero{
    grid-template-columns:1fr;
  }

  .snp-labs-summary{
    grid-template-columns:repeat(2,1fr);
  }

}

@media(max-width:700px){

  .snp-labs-hero{
    min-height:auto;
    padding:18px;
    border-radius:18px;
  }

  .snp-labs-hero-copy h2{
    font-size:22px;
  }

  .snp-labs-active-summary{
    padding:14px;
  }

  .snp-labs-controls{
    align-items:flex-start;
    display:grid;
  }

  .snp-labs-controls select{
    width:100%;
  }

  .snp-labs-grid,
  .snp-labs-bottom-grid{
    grid-template-columns:1fr;
  }

  .snp-lab-card{
    display:grid;
    grid-template-columns:110px 1fr;
  }

  .snp-lab-card-image{
    height:100%;
    min-height:255px;
  }

  .snp-lab-card-content{
    padding:11px;
  }

  .snp-lab-card-content > p{
    min-height:auto;
  }

}

@media(max-width:420px){

  .snp-labs-summary article{
    padding:9px;
  }

  .snp-labs-summary strong{
    font-size:14px;
  }

  .snp-labs-summary small{
    font-size:7px;
  }

  .snp-lab-card{
    grid-template-columns:90px 1fr;
  }

  .snp-lab-card-image{
    min-height:280px;
  }

  .snp-lab-meta span:nth-child(2){
    display:none;
  }

  .snp-lab-modal-info{
    grid-template-columns:1fr;
  }

}


/* =========================================================
   CONSOLA DO LABORATÓRIO ACTIVO
========================================================= */

.snp-active-lab-hero{
  min-height:210px;
  padding:24px;
  border-radius:22px;
  display:grid;
  grid-template-columns:minmax(0,1fr) 310px;
  gap:22px;
  align-items:center;
  color:#fff;
  background:
    radial-gradient(circle at 85% 12%,rgba(99,102,241,.42),transparent 34%),
    linear-gradient(135deg,#0f172a,#111827 58%,#1e1b4b);
  box-shadow:0 18px 46px rgba(15,23,42,.14);
}

.snp-active-lab-copy > span{
  color:#a5b4fc;
  font-size:8px;
  font-weight:900;
  letter-spacing:2.2px;
}

.snp-active-lab-copy h2{
  margin:8px 0;
  color:#fff;
  font-size:27px;
  line-height:1.15;
}

.snp-active-lab-copy p{
  max-width:650px;
  margin:0;
  color:#cbd5e1;
  font-size:11px;
  line-height:1.6;
}

.snp-active-lab-status{
  width:max-content;
  margin-bottom:12px;
  padding:6px 9px;
  border-radius:999px;
  display:flex;
  align-items:center;
  gap:7px;
  color:#86efac;
  background:rgba(22,163,74,.14);
  border:1px solid rgba(134,239,172,.16);
  font-size:8px;
  font-weight:900;
}

.snp-active-lab-status i{
  width:7px;
  height:7px;
  border-radius:50%;
  background:#22c55e;
  box-shadow:0 0 0 5px rgba(34,197,94,.12);
}

.snp-active-lab-meta{
  margin-top:15px;
  display:flex;
  flex-wrap:wrap;
  gap:7px;
}

.snp-active-lab-meta span{
  padding:6px 9px;
  border-radius:999px;
  color:#dbeafe;
  background:rgba(255,255,255,.07);
  border:1px solid rgba(255,255,255,.10);
  font-size:8px;
}

.snp-active-lab-timer{
  padding:18px;
  border-radius:18px;
  background:rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.14);
  backdrop-filter:blur(16px);
}

.snp-active-lab-timer > span{
  color:#a5b4fc;
  font-size:8px;
  font-weight:900;
  letter-spacing:1.8px;
}

.snp-active-lab-timer > strong{
  display:block;
  margin:9px 0 12px;
  color:#fff;
  font-size:30px;
  letter-spacing:1px;
}

.snp-active-lab-time-row{
  margin-bottom:10px;
  display:flex;
  justify-content:space-between;
  gap:10px;
}

.snp-active-lab-time-row small{
  color:#cbd5e1;
  font-size:8px;
}

/* ESTRUTURA */

.snp-active-lab-grid{
  margin-top:16px;
  display:grid;
  grid-template-columns:minmax(0,1fr) 320px;
  gap:16px;
  align-items:start;
}

.snp-active-lab-main,
.snp-active-lab-side{
  display:grid;
  gap:16px;
}

/* CREDENCIAIS */

.snp-active-lab-protocol{
  padding:6px 9px;
  border-radius:999px;
  color:var(--student-primary);
  background:#eef2ff;
  font-size:8px;
  font-weight:900;
}

.snp-active-lab-credentials{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:9px;
}

.snp-active-lab-credentials > div{
  position:relative;
  min-height:76px;
  padding:11px;
  border-radius:13px;
  background:#f8fafc;
  border:1px solid #edf2f7;
}

.snp-active-lab-credentials span{
  display:block;
  color:#94a3b8;
  font-size:8px;
}

.snp-active-lab-credentials strong{
  display:block;
  margin-top:8px;
  color:#0f172a;
  font-size:11px;
  word-break:break-all;
}

.snp-active-lab-credentials > div > button{
  position:absolute;
  right:9px;
  bottom:9px;
}

.snp-active-lab-credentials button{
  min-height:25px;
  padding:0 8px;
  border:0;
  border-radius:8px;
  background:#eef2ff;
  color:var(--student-primary);
  font-size:7px;
  font-weight:900;
  cursor:pointer;
}

.snp-active-lab-credential-actions{
  position:absolute;
  right:9px;
  bottom:9px;
  display:flex;
  gap:4px;
}

.snp-active-lab-access-actions{
  margin-top:12px;
  display:flex;
  flex-wrap:wrap;
  gap:7px;
}

.snp-active-lab-access-actions a,
.snp-active-lab-access-actions button{
  min-height:37px;
  padding:0 12px;
  border-radius:11px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  font-size:9px;
  font-weight:900;
  cursor:pointer;
}

.snp-active-lab-connect{
  color:#fff;
  background:linear-gradient(135deg,var(--student-purple),var(--student-secondary));
}

.snp-active-lab-access-actions button{
  color:#475569;
  background:#fff;
  border:1px solid #e2e8f0;
}

.snp-active-lab-security-note{
  margin-top:12px;
  padding:10px;
  border-radius:12px;
  display:grid;
  grid-template-columns:32px 1fr;
  gap:9px;
  align-items:center;
  background:#fffbeb;
  border:1px solid #fde68a;
}

.snp-active-lab-security-note i{
  width:32px;
  height:32px;
  border-radius:10px;
  display:grid;
  place-items:center;
  background:#fef3c7;
  font-style:normal;
}

.snp-active-lab-security-note strong{
  display:block;
  color:#92400e;
  font-size:9px;
}

.snp-active-lab-security-note small{
  display:block;
  margin-top:3px;
  color:#a16207;
  font-size:8px;
  line-height:1.4;
}

/* ETAPAS */

.snp-active-lab-step-progress{
  color:var(--student-primary);
  font-size:12px;
}

.snp-active-lab-steps{
  display:grid;
  gap:8px;
}

.snp-active-lab-steps > div{
  min-height:62px;
  padding:10px;
  border-radius:12px;
  display:grid;
  grid-template-columns:32px 1fr;
  gap:10px;
  align-items:start;
  background:#f8fafc;
  border:1px solid #edf2f7;
}

.snp-active-lab-steps > div.is-complete{
  background:#f0fdf4;
  border-color:#bbf7d0;
}

.snp-active-lab-step-check{
  width:32px;
  height:32px;
  border:0;
  border-radius:10px;
  display:grid;
  place-items:center;
  background:#eef2ff;
  color:var(--student-primary);
  font-size:9px;
  font-weight:900;
  cursor:pointer;
}

.snp-active-lab-steps > div.is-complete
.snp-active-lab-step-check{
  background:#16a34a;
  color:#fff;
}

.snp-active-lab-steps strong{
  display:block;
  color:#0f172a;
  font-size:10px;
}

.snp-active-lab-steps small{
  display:block;
  margin-top:4px;
  color:#64748b;
  font-size:8px;
  line-height:1.5;
}

/* NOTAS */

.snp-active-lab-notes textarea{
  width:100%;
  padding:12px;
  border:1px solid #e2e8f0;
  border-radius:13px;
  resize:vertical;
  outline:0;
  background:#f8fafc;
  color:#0f172a;
  font-size:10px;
  line-height:1.6;
}

.snp-active-lab-notes textarea:focus{
  border-color:#a5b4fc;
  box-shadow:0 0 0 3px rgba(79,70,229,.08);
}

.snp-active-lab-notes button{
  min-height:36px;
  margin-top:9px;
  padding:0 13px;
  border:0;
  border-radius:11px;
  background:linear-gradient(135deg,var(--student-purple),var(--student-secondary));
  color:#fff;
  font-size:9px;
  font-weight:900;
  cursor:pointer;
}

/* RECURSOS */

.snp-active-lab-resources{
  display:grid;
  gap:12px;
}

.snp-active-lab-resources > div{
  position:relative;
}

.snp-active-lab-resources > div > span{
  display:flex;
  justify-content:space-between;
  gap:8px;
}

.snp-active-lab-resources strong{
  color:#0f172a;
  font-size:9px;
}

.snp-active-lab-resources small{
  color:#64748b;
  font-size:8px;
}

.snp-active-lab-resources b{
  position:absolute;
  right:0;
  top:0;
  color:var(--student-primary);
  font-size:8px;
}

.snp-active-lab-resources > div > div{
  height:5px;
  margin-top:7px;
  border-radius:999px;
  overflow:hidden;
  background:#e2e8f0;
}

.snp-active-lab-resources i{
  display:block;
  width:var(--lab-resource);
  height:100%;
  border-radius:999px;
  background:linear-gradient(90deg,var(--student-purple),var(--student-secondary));
}

/* INFORMAÇÕES */

.snp-active-lab-info-list{
  display:grid;
  gap:7px;
}

.snp-active-lab-info-list div{
  padding:9px;
  border-radius:10px;
  display:flex;
  justify-content:space-between;
  gap:10px;
  background:#f8fafc;
  border:1px solid #edf2f7;
}

.snp-active-lab-info-list span{
  color:#64748b;
  font-size:8px;
}

.snp-active-lab-info-list strong{
  color:#0f172a;
  font-size:8px;
  text-align:right;
}

/* AJUDA */

.snp-active-lab-help{
  padding:17px;
  border-radius:18px;
  color:#fff;
  background:
    radial-gradient(circle at 85% 10%,rgba(99,102,241,.36),transparent 34%),
    linear-gradient(135deg,#0f172a,#1e1b4b);
}

.snp-active-lab-help > div{
  width:38px;
  height:38px;
  margin-bottom:11px;
  border-radius:12px;
  display:grid;
  place-items:center;
  background:rgba(255,255,255,.10);
}

.snp-active-lab-help > span{
  color:#a5b4fc;
  font-size:8px;
  font-weight:900;
  letter-spacing:1.8px;
}

.snp-active-lab-help h2{
  margin:7px 0;
  color:#fff;
  font-size:15px;
}

.snp-active-lab-help p{
  margin:0;
  color:#cbd5e1;
  font-size:9px;
  line-height:1.5;
}

.snp-active-lab-help a,
.snp-active-lab-help button{
  width:100%;
  min-height:35px;
  margin-top:9px;
  padding:0 11px;
  border-radius:10px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  color:#fff;
  font-size:8px;
  font-weight:900;
}

.snp-active-lab-help a{
  background:linear-gradient(135deg,var(--student-purple),var(--student-secondary));
}

.snp-active-lab-help button{
  border:1px solid rgba(255,255,255,.13);
  background:rgba(255,255,255,.07);
  cursor:pointer;
}

.snp-active-lab-stop{
  width:100%;
  min-height:39px;
  border:1px solid #fecaca;
  border-radius:12px;
  background:#fff;
  color:#dc2626;
  font-size:9px;
  font-weight:900;
  cursor:pointer;
}

/* MODAL DE ENCERRAMENTO */

.snp-active-lab-stop-actions{
  margin-top:13px;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
}

.snp-active-lab-stop-actions button{
  min-height:38px;
  border-radius:11px;
  font-size:9px;
  font-weight:900;
  cursor:pointer;
}

.snp-active-lab-stop-actions button:first-child{
  border:1px solid #e2e8f0;
  background:#fff;
  color:#475569;
}

.snp-active-lab-stop-actions button:last-child{
  border:0;
  background:#dc2626;
  color:#fff;
}

.snp-active-lab-stop-actions button:disabled{
  opacity:.45;
  cursor:not-allowed;
}

/* RESPONSIVO */

@media(max-width:1100px){

  .snp-active-lab-grid{
    grid-template-columns:1fr;
  }

  .snp-active-lab-side{
    grid-template-columns:repeat(2,1fr);
  }

  .snp-active-lab-stop{
    grid-column:1 / -1;
  }

}

@media(max-width:900px){

  .snp-active-lab-hero{
    grid-template-columns:1fr;
  }

}

@media(max-width:700px){

  .snp-active-lab-hero{
    min-height:auto;
    padding:18px;
    border-radius:18px;
  }

  .snp-active-lab-copy h2{
    font-size:22px;
  }

  .snp-active-lab-timer > strong{
    font-size:26px;
  }

  .snp-active-lab-side{
    grid-template-columns:1fr;
  }

  .snp-active-lab-credentials{
    grid-template-columns:1fr;
  }

  .snp-active-lab-access-actions{
    display:grid;
  }

  .snp-active-lab-access-actions a,
  .snp-active-lab-access-actions button{
    width:100%;
  }

  .snp-active-lab-stop{
    grid-column:auto;
  }

}

@media(max-width:420px){

  .snp-active-lab-time-row{
    display:grid;
  }

  .snp-active-lab-stop-actions{
    grid-template-columns:1fr;
  }

}

/* =========================================================
   CERTIFICADO INDIVIDUAL
========================================================= */

.snp-certificate-page-content{
  max-width:1500px;
}

.snp-certificate-top-action{
  min-height:36px;
  padding:0 12px;
  border:1px solid #e2e8f0;
  border-radius:11px;
  background:#fff;
  color:#475569;
  font-size:9px;
  font-weight:900;
  cursor:pointer;
}

.snp-certificate-top-action.is-primary{
  border-color:transparent;
  background:linear-gradient(
    135deg,
    var(--student-purple),
    var(--student-secondary)
  );
  color:#fff;
}

.snp-certificate-page-layout{
  display:grid;
  grid-template-columns:minmax(0,1fr) 310px;
  gap:18px;
  align-items:start;
}

.snp-certificate-document-column{
  min-width:0;
  padding:18px;
  border-radius:22px;
  background:#e9edf5;
  border:1px solid #dce3ee;
  overflow:auto;
}

.snp-certificate-document{
  position:relative;
  width:100%;
  min-width:820px;
  aspect-ratio:1.414 / 1;
  padding:42px 48px 30px;
  overflow:hidden;
  background:
    radial-gradient(
      circle at 86% 12%,
      rgba(99,102,241,.10),
      transparent 26%
    ),
    linear-gradient(135deg,#ffffff,#f8fafc);
  color:#0f172a;
  box-shadow:0 22px 60px rgba(15,23,42,.14);
}

.snp-certificate-document-border{
  position:absolute;
  inset:15px;
  border:2px solid #4f46e5;
  pointer-events:none;
}

.snp-certificate-document-border::before{
  content:"";
  position:absolute;
  inset:6px;
  border:1px solid #c7d2fe;
}

.snp-certificate-document-header{
  position:relative;
  z-index:2;
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:30px;
}

.snp-certificate-document-brand{
  display:flex;
  align-items:center;
  gap:12px;
}

.snp-certificate-document-logo{
  position:relative;
  width:46px;
  height:46px;
  border-radius:15px;
  display:grid;
  place-items:center;
  background:linear-gradient(135deg,#6d28d9,#2563eb);
  color:#fff;
  font-size:21px;
  font-weight:900;
}

.snp-certificate-document-logo small{
  position:absolute;
  top:-5px;
  right:-5px;
  width:17px;
  height:17px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:#2563eb;
  border:2px solid #fff;
  color:#fff;
  font-size:7px;
}

.snp-certificate-document-brand strong{
  display:block;
  color:#0f172a;
  font-size:17px;
}

.snp-certificate-document-brand span{
  display:block;
  margin-top:3px;
  color:#4f46e5;
  font-size:8px;
  font-weight:800;
}

.snp-certificate-document-type{
  text-align:right;
}

.snp-certificate-document-type span{
  display:block;
  color:#4f46e5;
  font-size:10px;
  font-weight:900;
  letter-spacing:1.5px;
  text-transform:uppercase;
}

.snp-certificate-document-type small{
  display:block;
  margin-top:4px;
  color:#94a3b8;
  font-size:8px;
}

.snp-certificate-decoration{
  position:absolute;
  border-radius:50%;
  pointer-events:none;
}

.snp-certificate-decoration-one{
  top:-120px;
  right:-90px;
  width:290px;
  height:290px;
  border:35px solid rgba(79,70,229,.05);
}

.snp-certificate-decoration-two{
  bottom:-150px;
  left:-120px;
  width:320px;
  height:320px;
  border:42px solid rgba(37,99,235,.04);
}

.snp-certificate-document-main{
  position:relative;
  z-index:2;
  max-width:760px;
  margin:55px auto 0;
  text-align:center;
}

.snp-certificate-document-label{
  color:#4f46e5;
  font-size:10px;
  font-weight:900;
  letter-spacing:4px;
}

.snp-certificate-document-intro,
.snp-certificate-document-completed{
  margin:19px 0 0;
  color:#64748b;
  font-size:12px;
}

.snp-certificate-document-main h1{
  margin:13px 0 0;
  color:#0f172a;
  font-family:Georgia,"Times New Roman",serif;
  font-size:38px;
  line-height:1.15;
  font-weight:500;
}

.snp-certificate-document-main h2{
  margin:13px 0 0;
  color:#4f46e5;
  font-size:25px;
  line-height:1.2;
}

.snp-certificate-document-main h3{
  margin:6px 0 0;
  color:#475569;
  font-size:12px;
  font-weight:600;
}

.snp-certificate-document-description{
  max-width:610px;
  margin:18px auto 0;
  color:#64748b;
  font-size:10px;
  line-height:1.65;
}

.snp-certificate-document-metrics{
  max-width:610px;
  margin:25px auto 0;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  border-top:1px solid #e2e8f0;
  border-bottom:1px solid #e2e8f0;
}

.snp-certificate-document-metrics div{
  padding:13px;
  border-left:1px solid #e2e8f0;
}

.snp-certificate-document-metrics div:first-child{
  border-left:0;
}

.snp-certificate-document-metrics span{
  display:block;
  color:#94a3b8;
  font-size:8px;
}

.snp-certificate-document-metrics strong{
  display:block;
  margin-top:5px;
  color:#0f172a;
  font-size:11px;
}

.snp-certificate-document-footer{
  position:absolute;
  z-index:2;
  left:50px;
  right:50px;
  bottom:42px;
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:30px;
}

.snp-certificate-signature{
  width:220px;
  text-align:center;
}

.snp-certificate-signature-mark{
  margin-bottom:-5px;
  color:#4f46e5;
  font-family:cursive;
  font-size:29px;
  font-style:italic;
}

.snp-certificate-signature-line{
  height:1px;
  margin-bottom:7px;
  background:#94a3b8;
}

.snp-certificate-signature strong{
  display:block;
  color:#0f172a;
  font-size:10px;
}

.snp-certificate-signature span{
  display:block;
  margin-top:3px;
  color:#64748b;
  font-size:8px;
}

.snp-certificate-validation-seal{
  display:flex;
  align-items:center;
  gap:14px;
  min-width:300px;
}

.snp-certificate-qr{
  width:170px;
  height:170px;
  padding:10px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#fff;
  border:1px solid #cbd5e1;
  border-radius:8px;
  box-sizing:border-box;
  overflow:hidden;
}

.snp-certificate-qr img,
.snp-certificate-qr canvas{
  display:block;
  width:150px!important;
  height:150px!important;
  max-width:none!important;
}

.snp-certificate-qr > span{
  color:#4f46e5;
  font-size:18px;
  font-weight:900;
}

.snp-certificate-qr-fallback{
  color:#4f46e5;
  font-size:10px;
  font-weight:900;
}

.snp-certificate-validation-seal strong{
  display:block;
  color:#0f172a;
  font-size:9px;
}

.snp-certificate-validation-seal span{
  display:block;
  margin-top:4px;
  color:#4f46e5;
  font-size:8px;
  font-weight:900;
}

.snp-certificate-validation-seal small{
  display:block;
  margin-top:3px;
  color:#94a3b8;
  font-size:7px;
}

.snp-certificate-document-legal{
  position:absolute;
  z-index:2;
  left:48px;
  right:48px;
  bottom:21px;
  display:flex;
  justify-content:space-between;
  gap:15px;
  color:#94a3b8;
  font-size:6px;
}

/* COLUNA LATERAL */

.snp-certificate-page-side{
  display:grid;
  gap:14px;
}

.snp-certificate-status-card{
  padding:18px;
  border-radius:18px;
  background:
    radial-gradient(
      circle at 88% 10%,
      rgba(34,197,94,.22),
      transparent 35%
    ),
    linear-gradient(135deg,#0f172a,#14532d);
  color:#fff;
}

.snp-certificate-status-icon{
  width:42px;
  height:42px;
  margin-bottom:12px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:#22c55e;
  color:#fff;
  font-size:17px;
  font-weight:900;
}

.snp-certificate-status-card > span{
  color:#86efac;
  font-size:8px;
  font-weight:900;
  letter-spacing:1.8px;
}

.snp-certificate-status-card h2{
  margin:7px 0;
  color:#fff;
  font-size:17px;
}

.snp-certificate-status-card > p{
  margin:0;
  color:#d1fae5;
  font-size:9px;
  line-height:1.55;
}

.snp-certificate-status-code{
  position:relative;
  margin-top:13px;
  padding:10px;
  border-radius:11px;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.12);
}

.snp-certificate-status-code small{
  display:block;
  color:#a7f3d0;
  font-size:7px;
}

.snp-certificate-status-code strong{
  display:block;
  margin-top:4px;
  color:#fff;
  font-size:10px;
}

.snp-certificate-status-code button{
  position:absolute;
  right:8px;
  bottom:8px;
  min-height:24px;
  padding:0 7px;
  border:0;
  border-radius:7px;
  background:rgba(255,255,255,.12);
  color:#fff;
  font-size:7px;
  font-weight:900;
  cursor:pointer;
}

.snp-certificate-status-card > a{
  min-height:35px;
  margin-top:10px;
  padding:0 11px;
  border-radius:10px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  background:#16a34a;
  color:#fff;
  font-size:8px;
  font-weight:900;
}

.snp-certificate-info-list{
  display:grid;
  gap:7px;
}

.snp-certificate-info-list div{
  padding:9px;
  border-radius:10px;
  display:flex;
  justify-content:space-between;
  gap:12px;
  background:#f8fafc;
  border:1px solid #edf2f7;
}

.snp-certificate-info-list span{
  color:#64748b;
  font-size:8px;
}

.snp-certificate-info-list strong{
  max-width:175px;
  color:#0f172a;
  font-size:8px;
  text-align:right;
}

.snp-certificate-hash{
  padding:10px;
  border-radius:11px;
  background:#f8fafc;
  border:1px solid #edf2f7;
}

.snp-certificate-hash span{
  display:block;
  color:#4f46e5;
  font-size:8px;
  font-weight:900;
}

.snp-certificate-hash strong{
  display:block;
  max-height:48px;
  margin-top:6px;
  overflow:hidden;
  color:#475569;
  font-family:monospace;
  font-size:7px;
  line-height:1.5;
  word-break:break-all;
}

.snp-certificate-hash button{
  min-height:28px;
  margin-top:8px;
  padding:0 9px;
  border:0;
  border-radius:8px;
  background:#eef2ff;
  color:#4f46e5;
  font-size:7px;
  font-weight:900;
  cursor:pointer;
}

.snp-certificate-share-card{
  padding:17px;
  border-radius:18px;
  background:
    radial-gradient(
      circle at 88% 10%,
      rgba(59,130,246,.36),
      transparent 34%
    ),
    linear-gradient(135deg,#0f172a,#172554);
  color:#fff;
}

.snp-certificate-share-card > div{
  width:38px;
  height:38px;
  margin-bottom:11px;
  border-radius:12px;
  display:grid;
  place-items:center;
  background:rgba(255,255,255,.10);
  font-size:18px;
}

.snp-certificate-share-card > span{
  color:#93c5fd;
  font-size:8px;
  font-weight:900;
  letter-spacing:1.8px;
}

.snp-certificate-share-card h2{
  margin:7px 0;
  color:#fff;
  font-size:15px;
}

.snp-certificate-share-card p{
  margin:0;
  color:#cbd5e1;
  font-size:9px;
  line-height:1.5;
}

.snp-certificate-share-card a,
.snp-certificate-share-card button{
  width:100%;
  min-height:35px;
  margin-top:8px;
  padding:0 11px;
  border-radius:10px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  font-size:8px;
  font-weight:900;
  cursor:pointer;
}

.snp-certificate-share-card a{
  background:#0a66c2;
  color:#fff;
}

.snp-certificate-share-card button{
  border:1px solid rgba(255,255,255,.13);
  background:rgba(255,255,255,.07);
  color:#fff;
}

.snp-certificate-not-found{
  max-width:550px;
  margin:60px auto;
  padding:36px;
  border-radius:22px;
  text-align:center;
  background:#fff;
  border:1px solid #e5e7eb;
}

.snp-certificate-not-found > div{
  width:54px;
  height:54px;
  margin:0 auto 14px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:#fee2e2;
  color:#dc2626;
  font-size:25px;
}

.snp-certificate-not-found > span{
  color:#4f46e5;
  font-size:8px;
  font-weight:900;
  letter-spacing:2px;
}

.snp-certificate-not-found h2{
  margin:8px 0;
  color:#0f172a;
}

.snp-certificate-not-found p{
  color:#64748b;
  font-size:11px;
}

.snp-certificate-not-found a{
  min-height:38px;
  margin-top:10px;
  padding:0 14px;
  border-radius:11px;
  display:inline-flex;
  align-items:center;
  background:linear-gradient(135deg,#6d28d9,#2563eb);
  color:#fff;
  font-size:9px;
  font-weight:900;
}

/* RESPONSIVO */

@media(max-width:1180px){

  .snp-certificate-page-layout{
    grid-template-columns:1fr;
  }

  .snp-certificate-page-side{
    grid-template-columns:repeat(2,1fr);
  }

}

@media(max-width:700px){

  .snp-certificate-top-action{
    display:none;
  }

  .snp-certificate-document-column{
    padding:10px;
    border-radius:16px;
  }

  .snp-certificate-document{
    min-width:760px;
  }

  .snp-certificate-page-side{
    grid-template-columns:1fr;
  }

}

/* =========================================================
   IMPRESSÃO / PDF
========================================================= */

@media print{

  @page{
    size:A4 landscape;
    margin:0;
  }

  body{
    background:#fff!important;
  }

  .snp-student-sidebar,
  .snp-student-topbar,
  .snp-student-overlay,
  .snp-certificate-page-side{
    display:none!important;
  }

  .snp-student-main{
    margin:0!important;
  }

  .snp-student-content{
    max-width:none!important;
    margin:0!important;
    padding:0!important;
  }

  .snp-certificate-page-layout{
    display:block!important;
  }

  .snp-certificate-document-column{
    padding:0!important;
    border:0!important;
    border-radius:0!important;
    background:#fff!important;
    overflow:visible!important;
  }

  .snp-certificate-document{
    width:297mm!important;
    height:210mm!important;
    min-width:0!important;
    box-shadow:none!important;
    print-color-adjust:exact;
    -webkit-print-color-adjust:exact;
  }

}

/* =========================================================
   VERIFICAÇÃO PÚBLICA DE CERTIFICADOS
========================================================= */

.snp-verify-body{
  min-height:100vh;
  margin:0;
  background:
    radial-gradient(circle at 80% 5%,rgba(99,102,241,.10),transparent 28%),
    #f5f7fb;
  color:#475569;
  font-family:"Inter","Segoe UI",Roboto,Arial,sans-serif;
}

.snp-verify-header{
  position:sticky;
  top:0;
  z-index:100;
  min-height:64px;
  background:rgba(255,255,255,.94);
  border-bottom:1px solid #e5e7eb;
  backdrop-filter:blur(16px);
}

.snp-verify-header-inner{
  max-width:1120px;
  min-height:64px;
  margin:0 auto;
  padding:0 18px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:22px;
}

.snp-verify-brand{
  display:flex;
  align-items:center;
  gap:10px;
}

.snp-verify-brand-logo{
  position:relative;
  width:38px;
  height:38px;
  border-radius:13px;
  display:grid;
  place-items:center;
  background:linear-gradient(135deg,#6d28d9,#2563eb);
  color:#fff;
  font-size:18px;
  font-weight:900;
}

.snp-verify-brand-logo small{
  position:absolute;
  top:-4px;
  right:-4px;
  width:15px;
  height:15px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:#2563eb;
  border:2px solid #fff;
  color:#fff;
  font-size:7px;
}

.snp-verify-brand > span:last-child strong{
  display:block;
  color:#0f172a;
  font-size:14px;
}

.snp-verify-brand > span:last-child small{
  display:block;
  margin-top:3px;
  color:#4f46e5;
  font-size:9px;
  font-weight:800;
}

.snp-verify-header nav{
  display:flex;
  align-items:center;
  gap:18px;
}

.snp-verify-header nav a{
  color:#475569;
  font-size:11px;
  font-weight:800;
}

.snp-verify-main{
  max-width:980px;
  margin:0 auto;
  padding:32px 18px 50px;
}

.snp-verify-intro{
  max-width:720px;
  margin:0 auto;
  text-align:center;
}

.snp-verify-intro > span{
  color:#4f46e5;
  font-size:9px;
  font-weight:900;
  letter-spacing:3px;
}

.snp-verify-intro h1{
  margin:10px 0;
  color:#0f172a;
  font-size:34px;
  line-height:1.15;
  letter-spacing:-1px;
}

.snp-verify-intro > p{
  max-width:650px;
  margin:0 auto;
  color:#64748b;
  font-size:12px;
  line-height:1.65;
}

.snp-verify-form{
  max-width:620px;
  margin:24px auto 0;
  padding:14px;
  border-radius:17px;
  background:#fff;
  border:1px solid #e5e7eb;
  box-shadow:0 14px 40px rgba(15,23,42,.06);
  text-align:left;
}

.snp-verify-form label{
  display:block;
  margin-bottom:7px;
  color:#0f172a;
  font-size:10px;
  font-weight:900;
}

.snp-verify-form > div{
  height:45px;
  display:flex;
  gap:7px;
}

.snp-verify-form input{
  flex:1;
  min-width:0;
  padding:0 13px;
  border:1px solid #e2e8f0;
  border-radius:12px;
  outline:0;
  color:#0f172a;
  font-size:11px;
  font-weight:700;
  text-transform:uppercase;
}

.snp-verify-form input:focus{
  border-color:#a5b4fc;
  box-shadow:0 0 0 3px rgba(79,70,229,.08);
}

.snp-verify-form input.is-invalid{
  border-color:#ef4444;
  box-shadow:0 0 0 3px rgba(239,68,68,.08);
}

.snp-verify-form button{
  padding:0 18px;
  border:0;
  border-radius:12px;
  background:linear-gradient(135deg,#6d28d9,#2563eb);
  color:#fff;
  font-size:10px;
  font-weight:900;
  cursor:pointer;
}

.snp-verify-form small{
  display:block;
  margin-top:7px;
  color:#94a3b8;
  font-size:8px;
}

/* ESTADO INICIAL */

.snp-verify-empty{
  margin-top:26px;
  padding:24px;
  border-radius:20px;
  text-align:center;
  background:#fff;
  border:1px solid #e5e7eb;
}

.snp-verify-empty > div{
  width:48px;
  height:48px;
  margin:0 auto 12px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:#dcfce7;
  color:#16a34a;
  font-size:20px;
  font-weight:900;
}

.snp-verify-empty h2{
  margin:0;
  color:#0f172a;
  font-size:19px;
}

.snp-verify-empty > p{
  max-width:520px;
  margin:7px auto 18px;
  color:#64748b;
  font-size:10px;
  line-height:1.55;
}

.snp-verify-security-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:10px;
}

.snp-verify-security-grid article{
  padding:14px;
  border-radius:14px;
  text-align:left;
  background:#f8fafc;
  border:1px solid #edf2f7;
}

.snp-verify-security-grid i{
  width:34px;
  height:34px;
  margin-bottom:9px;
  border-radius:11px;
  display:grid;
  place-items:center;
  background:#eef2ff;
  color:#4f46e5;
  font-style:normal;
}

.snp-verify-security-grid strong{
  display:block;
  color:#0f172a;
  font-size:10px;
}

.snp-verify-security-grid span{
  display:block;
  margin-top:4px;
  color:#64748b;
  font-size:8px;
  line-height:1.45;
}

/* RESULTADO */

.snp-verify-result{
  margin-top:26px;
  padding:24px;
  border-radius:22px;
  background:#fff;
  border:1px solid #e5e7eb;
  box-shadow:0 16px 46px rgba(15,23,42,.06);
}

.snp-verify-result-invalid{
  max-width:650px;
  margin-left:auto;
  margin-right:auto;
  text-align:center;
}

.snp-verify-result-icon{
  width:52px;
  height:52px;
  margin-bottom:12px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:#dcfce7;
  color:#16a34a;
  font-size:23px;
  font-weight:900;
}

.snp-verify-result-invalid .snp-verify-result-icon{
  margin-left:auto;
  margin-right:auto;
  background:#fee2e2;
  color:#dc2626;
}

.snp-verify-result > span,
.snp-verify-result-top > div:first-child > span{
  color:#4f46e5;
  font-size:8px;
  font-weight:900;
  letter-spacing:2px;
}

.snp-verify-result h2{
  margin:7px 0;
  color:#0f172a;
  font-size:22px;
}

.snp-verify-result p{
  color:#64748b;
  font-size:10px;
  line-height:1.55;
}

.snp-verify-warning{
  margin-top:16px;
  padding:12px;
  border-radius:13px;
  display:grid;
  grid-template-columns:32px 1fr;
  gap:10px;
  text-align:left;
  background:#fff7ed;
  border:1px solid #fed7aa;
}

.snp-verify-warning i{
  width:32px;
  height:32px;
  border-radius:10px;
  display:grid;
  place-items:center;
  background:#ffedd5;
  color:#ea580c;
  font-style:normal;
  font-weight:900;
}

.snp-verify-warning strong{
  display:block;
  color:#9a3412;
  font-size:9px;
}

.snp-verify-warning small{
  display:block;
  margin-top:3px;
  color:#c2410c;
  font-size:8px;
  line-height:1.45;
}

.snp-verify-new-search{
  min-height:38px;
  margin-top:15px;
  padding:0 14px;
  border:0;
  border-radius:11px;
  background:linear-gradient(135deg,#6d28d9,#2563eb);
  color:#fff;
  font-size:9px;
  font-weight:900;
  cursor:pointer;
}

.snp-verify-result-top{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:20px;
}

.snp-verify-code-box{
  min-width:190px;
  padding:11px;
  border-radius:12px;
  background:#f8fafc;
  border:1px solid #edf2f7;
}

.snp-verify-code-box span{
  display:block;
  color:#94a3b8;
  font-size:7px;
}

.snp-verify-code-box strong{
  display:block;
  margin-top:5px;
  color:#0f172a;
  font-size:10px;
}

.snp-verify-code-box button{
  min-height:25px;
  margin-top:7px;
  padding:0 8px;
  border:0;
  border-radius:8px;
  background:#eef2ff;
  color:#4f46e5;
  font-size:7px;
  font-weight:900;
  cursor:pointer;
}

.snp-verify-certificate{
  margin-top:18px;
  padding:22px;
  border-radius:18px;
  display:grid;
  grid-template-columns:minmax(0,1fr) 260px;
  gap:20px;
  background:
    radial-gradient(circle at 85% 10%,rgba(99,102,241,.08),transparent 30%),
    #f8fafc;
  border:1px solid #e2e8f0;
}

.snp-verify-certificate-label{
  color:#4f46e5;
  font-size:8px;
  font-weight:900;
  letter-spacing:2px;
}

.snp-verify-certificate-main h3{
  margin:10px 0 5px;
  color:#0f172a;
  font-family:Georgia,"Times New Roman",serif;
  font-size:28px;
  font-weight:500;
}

.snp-verify-certificate-main > p{
  margin:0;
}

.snp-verify-certificate-main h4{
  margin:10px 0 3px;
  color:#4f46e5;
  font-size:19px;
}

.snp-verify-certificate-main h5{
  margin:0;
  color:#475569;
  font-size:10px;
}

.snp-verify-certificate-metrics{
  margin-top:20px;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  border-top:1px solid #e2e8f0;
  border-bottom:1px solid #e2e8f0;
}

.snp-verify-certificate-metrics div{
  padding:11px;
  border-left:1px solid #e2e8f0;
}

.snp-verify-certificate-metrics div:first-child{
  border-left:0;
}

.snp-verify-certificate-metrics span{
  display:block;
  color:#94a3b8;
  font-size:7px;
}

.snp-verify-certificate-metrics strong{
  display:block;
  margin-top:4px;
  color:#0f172a;
  font-size:9px;
}

.snp-verify-status-seal{
  padding:11px;
  border-radius:13px;
  display:grid;
  grid-template-columns:34px 1fr;
  gap:9px;
  align-items:center;
  background:#f0fdf4;
  border:1px solid #bbf7d0;
}

.snp-verify-status-seal i{
  width:34px;
  height:34px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:#16a34a;
  color:#fff;
  font-style:normal;
  font-weight:900;
}

.snp-verify-status-seal strong{
  display:block;
  color:#166534;
  font-size:9px;
}

.snp-verify-status-seal small{
  display:block;
  margin-top:3px;
  color:#15803d;
  font-size:7px;
}

.snp-verify-detail-list{
  margin-top:10px;
  display:grid;
  gap:6px;
}

.snp-verify-detail-list div{
  padding:8px;
  border-radius:10px;
  display:flex;
  justify-content:space-between;
  gap:10px;
  background:#fff;
  border:1px solid #e5e7eb;
}

.snp-verify-detail-list span{
  color:#64748b;
  font-size:7px;
}

.snp-verify-detail-list strong{
  max-width:150px;
  color:#0f172a;
  font-size:7px;
  text-align:right;
  word-break:break-word;
}

.snp-verify-signature{
  margin-top:14px;
  padding:12px;
  border-radius:13px;
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:center;
  background:#0f172a;
  color:#fff;
}

.snp-verify-signature span{
  display:block;
  color:#a5b4fc;
  font-size:7px;
  font-weight:900;
}

.snp-verify-signature strong{
  display:block;
  max-width:700px;
  margin-top:5px;
  color:#e2e8f0;
  font-family:monospace;
  font-size:7px;
  line-height:1.5;
  word-break:break-all;
}

.snp-verify-signature button{
  min-height:30px;
  padding:0 9px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:9px;
  background:rgba(255,255,255,.08);
  color:#fff;
  font-size:7px;
  font-weight:900;
  cursor:pointer;
  white-space:nowrap;
}

.snp-verify-actions{
  margin-top:14px;
  display:flex;
  flex-wrap:wrap;
  gap:7px;
}

.snp-verify-actions button,
.snp-verify-actions a{
  min-height:36px;
  padding:0 12px;
  border-radius:11px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:8px;
  font-weight:900;
}

.snp-verify-actions button{
  border:1px solid #e2e8f0;
  background:#fff;
  color:#475569;
  cursor:pointer;
}

.snp-verify-actions a{
  background:linear-gradient(135deg,#6d28d9,#2563eb);
  color:#fff;
}

/* AJUDA */

.snp-verify-help{
  margin-top:18px;
  padding:18px;
  border-radius:18px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:20px;
  background:#fff;
  border:1px solid #e5e7eb;
}

.snp-verify-help span{
  color:#4f46e5;
  font-size:8px;
  font-weight:900;
  letter-spacing:2px;
}

.snp-verify-help h2{
  margin:6px 0;
  color:#0f172a;
  font-size:16px;
}

.snp-verify-help p{
  margin:0;
  color:#64748b;
  font-size:9px;
}

.snp-verify-help a{
  min-height:37px;
  padding:0 13px;
  border-radius:11px;
  display:flex;
  align-items:center;
  gap:12px;
  background:#eef2ff;
  color:#4f46e5;
  white-space:nowrap;
  font-size:8px;
  font-weight:900;
}

/* FOOTER */

.snp-verify-footer{
  border-top:1px solid #e5e7eb;
  background:#fff;
}

.snp-verify-footer > div{
  max-width:1120px;
  min-height:64px;
  margin:0 auto;
  padding:0 18px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  color:#94a3b8;
  font-size:9px;
}

.snp-verify-footer nav{
  display:flex;
  gap:16px;
}

.snp-verify-footer a{
  color:#64748b;
}

/* RESPONSIVO */

@media(max-width:700px){

  .snp-verify-header nav{
    display:none;
  }

  .snp-verify-main{
    padding:24px 12px 36px;
  }

  .snp-verify-intro h1{
    font-size:27px;
  }

  .snp-verify-form > div{
    height:auto;
    display:grid;
  }

  .snp-verify-form input,
  .snp-verify-form button{
    min-height:43px;
  }

  .snp-verify-security-grid{
    grid-template-columns:1fr;
  }

  .snp-verify-result{
    padding:17px;
  }

  .snp-verify-result-top,
  .snp-verify-help{
    display:grid;
  }

  .snp-verify-code-box{
    min-width:0;
  }

  .snp-verify-certificate{
    padding:16px;
    grid-template-columns:1fr;
  }

  .snp-verify-certificate-main h3{
    font-size:23px;
  }

  .snp-verify-certificate-metrics{
    grid-template-columns:1fr;
  }

  .snp-verify-certificate-metrics div{
    border-left:0;
    border-top:1px solid #e2e8f0;
  }

  .snp-verify-certificate-metrics div:first-child{
    border-top:0;
  }

  .snp-verify-signature{
    display:grid;
  }

  .snp-verify-signature button,
  .snp-verify-help a{
    width:100%;
  }

  .snp-verify-footer > div{
    padding:16px;
    display:grid;
  }

  .snp-verify-footer nav{
    flex-wrap:wrap;
  }

}

@media print{

  .snp-verify-header,
  .snp-verify-intro,
  .snp-verify-help,
  .snp-verify-footer,
  .snp-verify-actions{
    display:none!important;
  }

  .snp-verify-body{
    background:#fff!important;
  }

  .snp-verify-main{
    max-width:none;
    padding:0;
  }

  .snp-verify-result{
    margin:0;
    border:0;
    box-shadow:none;
  }

}

/* =========================================================
   CERTIFICADO — MELHORIAS PREMIUM
========================================================= */

.snp-certificate-competencies{
  max-width:680px;
  margin:22px auto 0;
  padding:15px 18px;
  border-radius:14px;
  background:
    linear-gradient(
      135deg,
      rgba(79,70,229,.045),
      rgba(37,99,235,.025)
    );
  border:1px solid #dbe4ff;
  text-align:left;
}

.snp-certificate-competencies-title{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:16px;
  margin-bottom:11px;
}

.snp-certificate-competencies-title span{
  color:#4f46e5;
  font-size:7px;
  font-weight:900;
  letter-spacing:2px;
}

.snp-certificate-competencies-title strong{
  color:#64748b;
  font-size:8px;
  font-weight:600;
  text-align:right;
}

.snp-certificate-competencies-list{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
}

.snp-certificate-competencies-list span{
  padding:6px 9px;
  border-radius:999px;
  background:#fff;
  border:1px solid #dbe4ff;
  color:#334155;
  font-size:7px;
  font-weight:800;
}

.snp-certificate-validation-copy{
  min-width:150px;
}

.snp-certificate-verified-badge{
  display:inline-flex!important;
  width:max-content;
  margin-bottom:7px!important;
  padding:5px 8px;
  border-radius:999px;
  background:#dcfce7;
  color:#166534!important;
  font-size:6px!important;
  font-weight:900!important;
  letter-spacing:.8px;
}

.snp-certificate-signature-mark{
  margin-bottom:-2px;
  color:#4f46e5;
  font-family:"Segoe Script","Brush Script MT",cursive;
  font-size:22px;
  line-height:1;
  font-style:italic;
  white-space:nowrap;
}

.snp-certificate-signature small{
  display:block;
  margin-top:4px;
  color:#94a3b8;
  font-size:6px;
}

.snp-certificate-info-list div{
  align-items:center;
}

.snp-certificate-info-list strong{
  word-break:break-word;
}

.snp-certificate-status-card,
.snp-student-panel,
.snp-certificate-share-card{
  border-radius:20px;
  transition:
    transform .25s ease,
    box-shadow .25s ease;
}

.snp-certificate-status-card:hover,
.snp-student-panel:hover,
.snp-certificate-share-card:hover{
  transform:translateY(-3px);
  box-shadow:0 16px 38px rgba(15,23,42,.10);
}

@media(max-width:700px){

  .snp-certificate-competencies{
    min-width:620px;
  }

  .snp-certificate-validation-seal{
    align-items:flex-end;
  }

}

/* =========================================================
   CERTIFICADO PREMIUM V2
========================================================= */

.snp-certificate-document{
  isolation:isolate;
  background:
    radial-gradient(
      circle at 92% 8%,
      rgba(79,70,229,.10),
      transparent 28%
    ),
    radial-gradient(
      circle at 5% 94%,
      rgba(37,99,235,.07),
      transparent 26%
    ),
    linear-gradient(135deg,#fff,#fbfcff);
}

.snp-certificate-document-border{
  inset:14px;
  border:2px solid #4f46e5;
}

.snp-certificate-document-border::before{
  inset:7px;
  border:1px solid rgba(79,70,229,.42);
}

/* MARCA DE ÁGUA */

.snp-certificate-watermark{
  position:absolute;
  z-index:0;
  left:50%;
  top:50%;
  width:430px;
  height:250px;
  transform:translate(-50%,-44%);
  display:grid;
  place-items:center;
  text-align:center;
  opacity:.026;
  pointer-events:none;
}

.snp-certificate-watermark span{
  display:block;
  color:#1e1b4b;
  font-size:180px;
  line-height:.75;
  font-weight:900;
}

.snp-certificate-watermark strong{
  display:block;
  margin-top:-5px;
  color:#1e1b4b;
  font-size:28px;
  letter-spacing:5px;
  text-transform:uppercase;
}

/* PADRÃO DE SEGURANÇA */

.snp-certificate-security-pattern{
  position:absolute;
  z-index:0;
  inset:30px;
  opacity:.16;
  pointer-events:none;
  background-image:
    repeating-linear-gradient(
      45deg,
      transparent 0,
      transparent 14px,
      rgba(79,70,229,.022) 15px,
      transparent 16px
    );
}

/* TOPO DIREITO */

.snp-certificate-header-right{
  display:flex;
  align-items:flex-start;
  justify-content:flex-end;
  gap:18px;
}

.snp-certificate-official-seal{
  min-width:150px;
  padding:9px 11px;
  border-radius:13px;
  display:grid;
  grid-template-columns:30px 1fr;
  gap:8px;
  align-items:center;
  background:#f0fdf4;
  border:1px solid #bbf7d0;
}

.snp-certificate-official-seal i{
  width:30px;
  height:30px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:#16a34a;
  color:#fff;
  font-size:12px;
  font-style:normal;
  font-weight:900;
}

.snp-certificate-official-seal strong{
  display:block;
  color:#166534;
  font-size:7px;
}

.snp-certificate-official-seal small{
  display:block;
  margin-top:2px;
  color:#15803d;
  font-size:6px;
}

/* DESCRIÇÃO */

.snp-certificate-document-description{
  max-width:660px;
  font-size:9px;
  line-height:1.65;
}

/* COMPETÊNCIAS */

.snp-certificate-competencies{
  max-width:700px;
  margin-top:18px;
  padding:13px 16px;
}

.snp-certificate-competencies-list{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:6px;
}

.snp-certificate-competencies-list span{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:24px;
  padding:4px 7px;
  text-align:center;
}

.snp-certificate-competencies-list span::before{
  content:"✓";
  margin-right:5px;
  color:#16a34a;
  font-weight:900;
}

/* FOOTER */

.snp-certificate-document-footer{
  left:44px;
  right:44px;
  bottom:55px;
  display:grid;
  grid-template-columns:190px 220px minmax(260px,1fr);
  gap:24px;
  align-items:end;
}

/* HOLOGRAMA */

.snp-certificate-hologram{
  display:grid;
  grid-template-columns:44px 1fr;
  gap:9px;
  align-items:center;
}

.snp-certificate-hologram-icon{
  width:44px;
  height:44px;
  border-radius:50%;
  display:grid;
  place-items:center;
  color:#fff;
  font-size:17px;
  font-weight:900;
  background:
    conic-gradient(
      from 45deg,
      #4f46e5,
      #22d3ee,
      #d946ef,
      #facc15,
      #4f46e5
    );
  box-shadow:
    inset 0 0 0 4px rgba(255,255,255,.4),
    0 6px 14px rgba(79,70,229,.14);
}

.snp-certificate-hologram strong{
  display:block;
  color:#0f172a;
  font-size:7px;
}

.snp-certificate-hologram small{
  display:block;
  margin-top:3px;
  color:#64748b;
  font-size:6px;
  line-height:1.35;
}

/* ASSINATURA */

.snp-certificate-signature{
  width:220px;
}

.snp-certificate-signature-mark{
  font-size:25px;
}

.snp-certificate-signature-line{
  margin-top:3px;
}

/* QR */

.snp-certificate-validation-seal{
  justify-self:end;
}

.snp-certificate-qr{
  width:122px;
  height:122px;
  padding:9px;
  border-radius:10px;
  border:1px solid #cbd5e1;
  box-shadow:0 7px 18px rgba(15,23,42,.08);
}

.snp-certificate-qr img,
.snp-certificate-qr canvas{
  width:102px!important;
  height:102px!important;
}

/* RODAPÉ TÉCNICO */

.snp-certificate-document-legal{
  left:42px;
  right:42px;
  bottom:20px;
  padding-top:7px;
  border-top:1px solid #e2e8f0;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:14px;
}

.snp-certificate-document-legal div{
  min-width:0;
}

.snp-certificate-document-legal span{
  display:block;
  color:#94a3b8;
  font-size:5px;
  text-transform:uppercase;
  letter-spacing:.7px;
}

.snp-certificate-document-legal strong{
  display:block;
  margin-top:2px;
  overflow:hidden;
  color:#475569;
  font-size:5px;
  white-space:nowrap;
  text-overflow:ellipsis;
}

/* PAINEL LATERAL */

.snp-certificate-page-side{
  gap:16px;
}

.snp-certificate-page-side > article{
  overflow:hidden;
}

.snp-certificate-status-card{
  box-shadow:0 14px 34px rgba(20,83,45,.16);
}

.snp-certificate-share-card{
  box-shadow:0 14px 34px rgba(23,37,84,.14);
}

/* RESPONSIVO */

@media(max-width:700px){

  .snp-certificate-header-right{
    gap:10px;
  }

  .snp-certificate-official-seal{
    min-width:135px;
  }

  .snp-certificate-watermark{
    width:400px;
  }

  .snp-certificate-document-footer{
    grid-template-columns:170px 210px minmax(250px,1fr);
  }

  .snp-certificate-competencies-list{
    grid-template-columns:repeat(3,1fr);
  }

}

/* IMPRESSÃO */

@media print{

  .snp-certificate-watermark,
  .snp-certificate-security-pattern,
  .snp-certificate-hologram-icon,
  .snp-certificate-official-seal{
    print-color-adjust:exact;
    -webkit-print-color-adjust:exact;
  }

}

/* =========================================================
   CERTIFICADO PREMIUM V3 — AJUSTES FINAIS
   ---------------------------------------------------------
   Este bloco deve permanecer no FIM do ficheiro.
   As regras abaixo corrigem e substituem apenas os estilos
   anteriores do certificado, sem afectar as outras páginas.
========================================================= */

/* ---------------------------------------------------------
   1. CONTEÚDO CENTRAL
   Reforça a hierarquia do nome e da formação sem aumentar
   excessivamente a altura total do certificado.
--------------------------------------------------------- */

.snp-certificate-document-main{
  margin-top:50px;
}

.snp-certificate-document-main h1{
  margin-top:12px;
  font-size:42px;
  line-height:1.08;
  letter-spacing:-.6px;
}

.snp-certificate-document-main h2{
  margin-top:12px;
  font-size:27px;
  line-height:1.15;
}

.snp-certificate-document-description{
  max-width:690px;
  margin-top:15px;
  font-size:9px;
  line-height:1.55;
}

.snp-certificate-document-metrics{
  max-width:650px;
  margin-top:20px;
}

/* ---------------------------------------------------------
   2. COMPETÊNCIAS
   Mantém as competências compactas e cria espaço visual
   suficiente antes da assinatura e do QR Code.
--------------------------------------------------------- */

.snp-certificate-competencies{
  max-width:700px;
  margin-top:16px;
  padding:12px 15px;
}

.snp-certificate-competencies-title{
  margin-bottom:9px;
}

.snp-certificate-competencies-list{
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:6px;
}

.snp-certificate-competencies-list span{
  min-height:23px;
  padding:4px 7px;
  font-size:7px;
}

/* ---------------------------------------------------------
   3. MARCA DE ÁGUA
   Torna a identidade visível, mas suficientemente subtil
   para não competir com o texto principal.
--------------------------------------------------------- */

.snp-certificate-watermark{
  top:53%;
  opacity:.045;
}

.snp-certificate-watermark span{
  font-size:170px;
}

.snp-certificate-watermark strong{
  font-size:25px;
  letter-spacing:5px;
}

/* ---------------------------------------------------------
   4. RODAPÉ PRINCIPAL
   Desloca holograma, assinatura e QR Code para baixo.
   A redução de bottom resolve a sobreposição do QR Code
   com a caixa das competências.
--------------------------------------------------------- */

.snp-certificate-document-footer{
  left:42px;
  right:42px;
  bottom:43px;
  grid-template-columns:170px 230px minmax(250px,1fr);
  gap:20px;
  align-items:end;
}

/* ---------------------------------------------------------
   5. ASSINATURA
   Reforça a assinatura sem ocupar demasiado espaço.
--------------------------------------------------------- */

.snp-certificate-signature{
  width:230px;
}

.snp-certificate-signature-mark{
  margin-bottom:1px;
  font-size:28px;
  line-height:1;
}

.snp-certificate-signature-line{
  width:100%;
  margin:3px auto 7px;
}

.snp-certificate-signature strong{
  font-size:9px;
}

.snp-certificate-signature span{
  font-size:7px;
}

.snp-certificate-signature small{
  margin-top:3px;
  font-size:5.5px;
}

/* ---------------------------------------------------------
   6. HOLOGRAMA
   Mantém o elemento institucional discreto no canto inferior.
--------------------------------------------------------- */

.snp-certificate-hologram{
  grid-template-columns:42px 1fr;
  gap:8px;
}

.snp-certificate-hologram-icon{
  width:42px;
  height:42px;
}

.snp-certificate-hologram strong{
  font-size:6.5px;
}

.snp-certificate-hologram small{
  font-size:5.5px;
}

/* ---------------------------------------------------------
   7. QR CODE
   Reduz ligeiramente o QR e desloca-o para baixo.
   O tamanho continua seguro para leitura por telemóvel.
--------------------------------------------------------- */

.snp-certificate-validation-seal{
  align-self:end;
  justify-self:end;
  min-width:0;
  gap:11px;
  transform:translateY(7px);
}

.snp-certificate-qr{
  width:116px;
  height:116px;
  padding:9px;
  flex:0 0 116px;
  border-radius:11px;
  background:#fff;
  border:1px solid #cbd5e1;
  box-shadow:0 7px 18px rgba(15,23,42,.08);
}

.snp-certificate-qr img,
.snp-certificate-qr canvas{
  display:block;
  width:96px!important;
  height:96px!important;
  max-width:none!important;
}

.snp-certificate-validation-copy{
  min-width:138px;
}

.snp-certificate-verified-badge{
  margin-bottom:6px!important;
  padding:4px 7px;
  font-size:5.5px!important;
}

.snp-certificate-validation-copy > strong{
  font-size:8px;
}

.snp-certificate-validation-copy > span:not(.snp-certificate-verified-badge){
  font-size:7px;
}

.snp-certificate-validation-copy > small{
  font-size:6px;
}

/* ---------------------------------------------------------
   8. RODAPÉ TÉCNICO
   Mantém o código, UUID, hash e endereço abaixo do rodapé
   principal, sem colidir com o QR Code.
--------------------------------------------------------- */

.snp-certificate-document-legal{
  left:42px;
  right:42px;
  bottom:16px;
  padding-top:6px;
  gap:12px;
}

.snp-certificate-document-legal span{
  font-size:4.8px;
}

.snp-certificate-document-legal strong{
  font-size:4.8px;
}

/* ---------------------------------------------------------
   9. SELO DO TOPO
   Compacta o selo oficial para libertar espaço no cabeçalho.
--------------------------------------------------------- */

.snp-certificate-header-right{
  gap:12px;
}

.snp-certificate-official-seal{
  min-width:138px;
  padding:8px 10px;
  grid-template-columns:28px 1fr;
}

.snp-certificate-official-seal i{
  width:28px;
  height:28px;
}

/* ---------------------------------------------------------
   10. TABLET E TELEFONE
   O documento mantém proporção A4 horizontal e deslocamento
   lateral por scroll, evitando deformações.
--------------------------------------------------------- */

@media(max-width:1180px){

  .snp-certificate-document-footer{
    grid-template-columns:165px 220px minmax(245px,1fr);
  }

}

@media(max-width:700px){

  .snp-certificate-document{
    min-width:820px;
  }

  .snp-certificate-document-main{
    margin-top:48px;
  }

  .snp-certificate-document-footer{
    left:40px;
    right:40px;
    bottom:43px;
    grid-template-columns:165px 220px minmax(245px,1fr);
  }

  .snp-certificate-validation-seal{
    transform:translateY(7px);
  }

  .snp-certificate-competencies{
    min-width:0;
    width:700px;
  }

}

/* ---------------------------------------------------------
   11. IMPRESSÃO E PDF
   Preserva cores, sombras leves, marca de água e QR Code.
--------------------------------------------------------- */

@media print{

  .snp-certificate-document-main h1,
  .snp-certificate-document-main h2,
  .snp-certificate-watermark,
  .snp-certificate-hologram-icon,
  .snp-certificate-official-seal,
  .snp-certificate-verified-badge,
  .snp-certificate-qr{
    print-color-adjust:exact;
    -webkit-print-color-adjust:exact;
  }

  .snp-certificate-validation-seal{
    transform:translateY(7px)!important;
  }

}
