:root{
  --mm-ink:#17242f;
  --mm-deep:#0f2533;
  --mm-primary:#1d5d74;
  --mm-primary-strong:#123f52;
  --mm-accent:#d2a34f;
  --mm-accent-soft:#f3e7ce;
  --mm-surface:#ffffff;
  --mm-surface-soft:#f5f1e8;
  --mm-page:#f7f4ee;
  --mm-muted:#667784;
  --mm-line:rgba(16,37,51,.12);
  --mm-shadow:0 22px 60px rgba(17,37,47,.10);
  --mm-shadow-soft:0 14px 30px rgba(17,37,47,.08);
  --mm-radius:22px;
}

*{box-sizing:border-box}

body{
  font-family:"Trebuchet MS","Segoe UI",Tahoma,sans-serif;
  color:var(--mm-ink);
  background:
    radial-gradient(circle at top left, rgba(210,163,79,.16), transparent 26%),
    radial-gradient(circle at bottom right, rgba(29,93,116,.12), transparent 24%),
    var(--mm-page);
}

a{color:var(--mm-primary);text-decoration:none}
a:hover{color:var(--mm-primary-strong)}

.btn{
  border-radius:999px;
  padding:.82rem 1.3rem;
  font-weight:700;
  letter-spacing:.01em;
}

.btn-primary{
  background:linear-gradient(135deg,var(--mm-primary),#2f7893);
  border-color:transparent;
  box-shadow:0 10px 24px rgba(29,93,116,.22);
  color:#fff;
}

.btn-primary:hover,
.btn-primary:focus{
  background:linear-gradient(135deg,var(--mm-primary-strong),var(--mm-primary));
  border-color:transparent;
}

.btn-outline-primary{
  border-color:rgba(29,93,116,.35);
  color:var(--mm-primary);
  background:#fff;
}

.btn-outline-primary:hover,
.btn-outline-primary:focus{
  background:var(--mm-primary);
  border-color:var(--mm-primary);
  color:#fff;
}

.card{
  border:none;
  border-radius:var(--mm-radius);
  box-shadow:var(--mm-shadow-soft);
  overflow:hidden;
}

.card-header{
  border-bottom:1px solid var(--mm-line);
  background:rgba(255,255,255,.84)!important;
  backdrop-filter:blur(10px);
  padding:1rem 1.25rem;
}

.table{
  --bs-table-bg:transparent;
  --bs-table-color:var(--mm-ink);
}

.table thead th{
  font-size:.77rem;
  text-transform:uppercase;
  letter-spacing:.08em;
  color:var(--mm-muted);
  border-bottom-color:var(--mm-line);
  padding-top:1rem;
  padding-bottom:1rem;
}

.table td,.table th{vertical-align:middle;padding:1rem}

.form-control,
.form-select{
  border-radius:16px;
  border:1px solid rgba(21,54,70,.14);
  padding:.85rem 1rem;
  box-shadow:none;
}

.form-control:focus,
.form-select:focus{
  border-color:rgba(29,93,116,.42);
  box-shadow:0 0 0 .2rem rgba(29,93,116,.10);
}

.alert{
  border:none;
  border-radius:18px;
  box-shadow:var(--mm-shadow-soft);
}

.badge{
  border-radius:999px;
  padding:.55rem .85rem;
  letter-spacing:.03em;
}

.min-vh-75{min-height:75vh;}

.public-shell{
  position:relative;
  overflow-x:hidden;
  overflow-y:auto;
}

.public-navbar{
  background:rgba(15,37,51,.86);
  backdrop-filter:blur(14px);
  border-bottom:1px solid rgba(255,255,255,.08);
}

.public-navbar .navbar-brand{
  font-size:1.1rem;
  letter-spacing:.08em;
}

.public-navbar .nav-link{
  color:rgba(255,255,255,.82)!important;
  padding:.8rem 1rem!important;
  border-radius:999px;
}

.public-navbar .nav-link:hover{
  background:rgba(255,255,255,.08);
  color:#fff!important;
}

.public-footer{
  background:
    linear-gradient(135deg, rgba(15,37,51,.98), rgba(20,54,71,.96)),
    var(--mm-deep);
}

.hero-section{
  position:relative;
  padding:5.5rem 0 4.75rem;
  background:
    radial-gradient(circle at 12% 18%, rgba(210,163,79,.22), transparent 20%),
    radial-gradient(circle at 88% 12%, rgba(29,93,116,.18), transparent 23%),
    linear-gradient(180deg, #fcfbf8 0%, #f4efe5 100%);
}

.hero-section::after{
  content:"";
  position:absolute;
  inset:auto -5% -14% 48%;
  height:220px;
  background:radial-gradient(circle, rgba(29,93,116,.14), transparent 62%);
  pointer-events:none;
}

.hero-copy{
  position:relative;
  z-index:1;
}

.hero-kicker{
  display:inline-flex;
  align-items:center;
  gap:.55rem;
  padding:.45rem .9rem;
  border-radius:999px;
  background:rgba(255,255,255,.8);
  border:1px solid rgba(29,93,116,.12);
  color:var(--mm-primary-strong);
  font-size:.85rem;
  font-weight:700;
  letter-spacing:.03em;
}

.hero-kicker::before{
  content:"";
  width:.55rem;
  height:.55rem;
  border-radius:50%;
  background:var(--mm-accent);
  box-shadow:0 0 0 6px rgba(210,163,79,.16);
}

.hero-headline{
  max-width:12ch;
  line-height:.98;
  font-size:clamp(2.7rem,6vw,4.9rem);
  font-weight:800;
  letter-spacing:-.04em;
  margin-top:1.25rem;
}

.hero-description{
  max-width:58ch;
  font-size:1.08rem;
  color:var(--mm-muted);
}

.hero-actions{
  display:flex;
  flex-wrap:wrap;
  gap:1rem;
  margin-top:2rem;
}

.hero-panel{
  position:relative;
  padding:1.4rem;
  border-radius:28px;
  background:rgba(255,255,255,.76);
  border:1px solid rgba(255,255,255,.85);
  box-shadow:var(--mm-shadow);
  backdrop-filter:blur(14px);
}

.hero-panel::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(145deg, rgba(255,255,255,.45), transparent 48%);
  pointer-events:none;
}

.stats-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1rem;
}

.stat-box{
  padding:1.2rem 1.15rem;
  border-radius:20px;
  background:linear-gradient(180deg,#fff,#fbfaf6);
  border:1px solid rgba(23,36,47,.07);
  box-shadow:0 10px 24px rgba(20,42,54,.06);
}

.stat-box span{
  display:block;
  color:var(--mm-muted);
  font-size:.84rem;
  margin-bottom:.45rem;
  text-transform:uppercase;
  letter-spacing:.08em;
}

.stat-box strong{
  display:block;
  font-size:2rem;
  line-height:1;
  color:var(--mm-primary-strong);
}

.section-shell{
  padding:5rem 0;
}

.section-shell.alt{
  background:linear-gradient(180deg, rgba(255,255,255,.45), rgba(255,255,255,.7));
}

.section-heading{
  display:flex;
  justify-content:space-between;
  align-items:end;
  gap:1rem;
  margin-bottom:2rem;
}

.section-heading h2{
  font-size:clamp(1.8rem,3vw,2.5rem);
  font-weight:800;
  letter-spacing:-.03em;
  margin:0;
}

.section-heading p{
  margin:.4rem 0 0;
  color:var(--mm-muted);
}

.course-card{
  height:100%;
  background:linear-gradient(180deg,#fff,#fcfaf5);
  transition:transform .22s ease, box-shadow .22s ease;
  border:1px solid rgba(18,49,65,.08);
}

.course-card:hover{
  transform:translateY(-4px);
  box-shadow:0 22px 46px rgba(17,37,47,.12);
}

.course-thumb{
  width:100%;
  height:230px;
  object-fit:cover;
}

.course-card-body{
  padding:1.35rem;
}

.course-card h3,
.course-card p,
.course-card strong{
  color:var(--mm-ink);
}

.course-empty{
  padding:2rem;
  border-radius:24px;
  background:rgba(255,255,255,.82);
  border:1px dashed rgba(29,93,116,.18);
  color:var(--mm-muted);
  text-align:center;
}

.course-meta{
  display:flex;
  flex-wrap:wrap;
  gap:.55rem;
  margin:.85rem 0 1rem;
}

.meta-pill{
  display:inline-flex;
  align-items:center;
  padding:.42rem .75rem;
  border-radius:999px;
  background:var(--mm-surface-soft);
  color:var(--mm-primary-strong);
  font-size:.78rem;
  font-weight:700;
}

.info-shell{
  padding:5rem 0;
}

.glass-panel{
  background:rgba(255,255,255,.82);
  border:1px solid rgba(255,255,255,.8);
  backdrop-filter:blur(12px);
}

.query-hero,
.verify-hero{
  background:
    radial-gradient(circle at top left, rgba(210,163,79,.14), transparent 25%),
    linear-gradient(180deg, #fbfaf6 0%, #f2ece1 100%);
}

.info-card{
  border-radius:24px;
  padding:1.6rem;
  background:linear-gradient(180deg,#fff,#fcfaf5);
  box-shadow:var(--mm-shadow-soft);
}

.result-card{
  border-radius:24px;
  overflow:hidden;
}

.detail-hero{
  padding:5rem 0 3rem;
  background:
    radial-gradient(circle at top right, rgba(29,93,116,.13), transparent 24%),
    linear-gradient(180deg, #fbfaf6 0%, #f4efe5 100%);
}

.detail-media{
  border-radius:28px;
  overflow:hidden;
  box-shadow:var(--mm-shadow);
}

.detail-media img{
  width:100%;
  height:100%;
  min-height:380px;
  object-fit:cover;
}

.detail-panel{
  background:rgba(255,255,255,.84);
  border:1px solid rgba(255,255,255,.82);
  border-radius:28px;
  padding:2rem;
  box-shadow:var(--mm-shadow);
}

.detail-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1rem 1.25rem;
  margin-top:1.6rem;
}

.detail-stat{
  padding:1rem 1.1rem;
  border-radius:18px;
  background:var(--mm-surface-soft);
}

.detail-stat strong{
  display:block;
  font-size:.78rem;
  color:var(--mm-muted);
  text-transform:uppercase;
  letter-spacing:.08em;
  margin-bottom:.3rem;
}

.detail-cards{
  padding:0 0 5rem;
}

.admin-body{
  background:
    radial-gradient(circle at top left, rgba(210,163,79,.12), transparent 18%),
    linear-gradient(180deg,#f7f3ea 0%,#f4f1eb 100%);
}

.admin-shell{
  display:grid;
  grid-template-columns:280px minmax(0,1fr);
  min-height:100vh;
}

.admin-sidebar{
  position:sticky;
  top:0;
  height:100vh;
  overflow-y:auto;
  overscroll-behavior:contain;
  padding:1.6rem 1.2rem;
  background:
    radial-gradient(circle at top, rgba(210,163,79,.18), transparent 20%),
    linear-gradient(180deg,#102736 0%,#143243 48%,#19465d 100%);
  color:#fff;
}

.admin-brand{
  padding:1rem 1rem 1.25rem;
  border-radius:22px;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.08);
  margin-bottom:1.25rem;
}

.admin-brand small{
  color:rgba(255,255,255,.68);
  text-transform:uppercase;
  letter-spacing:.12em;
}

.admin-sidebar .nav-link{
  display:flex;
  align-items:center;
  gap:.75rem;
  color:rgba(255,255,255,.82)!important;
  border-radius:16px;
  padding:.82rem .95rem;
  transition:all .18s ease;
}

.admin-sidebar .nav-link:hover{
  color:#fff!important;
  background:rgba(255,255,255,.10);
  transform:translateX(2px);
}

.admin-logout-form{
  margin-top:.5rem;
  padding-top:.75rem;
  border-top:1px solid rgba(255,255,255,.14);
}

.admin-logout-button{
  display:flex;
  align-items:center;
  gap:.75rem;
  width:100%;
  min-height:44px;
  padding:.82rem .95rem;
  border:1px solid rgba(255,255,255,.2);
  border-radius:16px;
  color:#fff;
  background:rgba(255,255,255,.08);
  text-align:left;
  cursor:pointer;
  transition:background-color .18s ease, border-color .18s ease;
}

.admin-logout-button:hover{
  background:rgba(220,53,69,.28);
  border-color:rgba(255,255,255,.34);
}

.admin-logout-button:focus-visible{
  outline:3px solid rgba(255,255,255,.75);
  outline-offset:2px;
}

.admin-main{
  min-width:0;
}

.admin-header{
  position:sticky;
  top:0;
  z-index:30;
  backdrop-filter:blur(12px);
  background:rgba(247,243,234,.82);
  border-bottom:1px solid rgba(18,49,65,.08);
  padding:1.2rem 1.6rem;
}

.admin-header-card{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:1rem;
  padding:1rem 1.2rem;
  border-radius:22px;
  background:rgba(255,255,255,.72);
  border:1px solid rgba(255,255,255,.8);
  box-shadow:var(--mm-shadow-soft);
}

.admin-header-actions{
  display:flex;
  align-items:center;
  gap:.75rem;
  flex-wrap:wrap;
}

.admin-header-actions form{
  margin:0;
}

.admin-header-actions .btn{
  min-height:38px;
  display:inline-flex;
  align-items:center;
}

.admin-content{
  padding:1.7rem;
}

.kpi-card{
  height:100%;
  padding:1.35rem;
  border-radius:24px;
  background:linear-gradient(180deg,#fff,#fcfaf5);
  box-shadow:var(--mm-shadow-soft);
}

.kpi-card p{
  margin:0 0 .45rem;
  color:var(--mm-muted);
  text-transform:uppercase;
  letter-spacing:.08em;
  font-size:.8rem;
}

.kpi-card h3{
  margin:0;
  font-size:2rem;
  color:var(--mm-primary-strong);
}

.auth-body{
  position:relative;
  min-height:100vh;
  background:
    radial-gradient(circle at 18% 22%, rgba(210,163,79,.28), transparent 18%),
    radial-gradient(circle at 82% 14%, rgba(29,93,116,.28), transparent 20%),
    linear-gradient(135deg,#102736 0%,#19465d 52%,#2b7288 100%);
  overflow:hidden;
}

.auth-body::before,
.auth-body::after{
  content:"";
  position:absolute;
  border-radius:50%;
  background:rgba(255,255,255,.06);
  filter:blur(2px);
}

.auth-body::before{
  width:320px;
  height:320px;
  top:-80px;
  right:-90px;
}

.auth-body::after{
  width:220px;
  height:220px;
  bottom:-50px;
  left:-40px;
}

.auth-panel{
  border-radius:30px;
  background:rgba(255,255,255,.88);
  border:1px solid rgba(255,255,255,.75);
  box-shadow:0 28px 70px rgba(5,18,27,.24);
  overflow:hidden;
}

.auth-brand{
  padding:2rem 2rem 1rem;
}

.auth-brand small{
  display:inline-block;
  padding:.42rem .78rem;
  border-radius:999px;
  background:var(--mm-surface-soft);
  color:var(--mm-primary-strong);
  text-transform:uppercase;
  letter-spacing:.08em;
  font-weight:700;
}

.signature-preview{max-height:120px;object-fit:contain;}
.design-preview{height:220px;object-fit:cover;}

@media (max-width:1199px){
  .admin-shell{grid-template-columns:1fr}
  .admin-sidebar{
    position:relative;
    height:auto;
    border-bottom-left-radius:24px;
    border-bottom-right-radius:24px;
  }
}

@media (max-width:991px){
  .hero-section{padding-top:4.5rem}
  .stats-grid{grid-template-columns:1fr}
  .detail-grid{grid-template-columns:1fr}
  .detail-media img{min-height:280px}
}

@media (max-width:767px){
  .hero-headline{max-width:none}
  .section-heading{align-items:start;flex-direction:column}
  .admin-header-card{align-items:start;flex-direction:column}
  .admin-header-actions{width:100%}
  .admin-header-actions .btn{justify-content:center}
  .admin-content{padding:1rem}
  .course-thumb{height:210px}
}

/* Integración AdminLTE 4 */
.app-wrapper{
  min-height:100vh;
  font-family:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
}

.app-wrapper .btn{
  border-radius:var(--bs-border-radius);
  padding:.375rem .75rem;
  font-weight:400;
  letter-spacing:normal;
  box-shadow:none;
}

.app-wrapper .btn-sm{
  padding:.25rem .5rem;
  font-size:.875rem;
}

.app-wrapper .btn-primary{
  background:var(--bs-primary);
  border-color:var(--bs-primary);
}

.app-wrapper .card{
  border-radius:var(--bs-border-radius);
  box-shadow:var(--bs-box-shadow-sm);
}

.app-wrapper .card-header{
  border-bottom:var(--bs-card-border-width) solid var(--bs-card-border-color);
  border-radius:0;
  background:var(--bs-card-cap-bg)!important;
  backdrop-filter:none;
  padding:var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);
}

.app-wrapper .form-control,
.app-wrapper .form-select{
  border-radius:var(--bs-border-radius);
  border-color:var(--bs-border-color);
  padding:.375rem .75rem;
}

.app-sidebar .brand-link{
  text-decoration:none;
}

.sidebar-menu .nav-link,
.sidebar-menu button.nav-link{
  min-height:44px;
}

.admin-top-logout{
  min-height:38px;
  white-space:nowrap;
}

.app-content-header h1{
  font-size:1.5rem;
  font-weight:600;
}

.app-content .card{
  margin-bottom:1rem;
}

.app-content .card-header{
  display:flex;
  align-items:center;
  min-height:48px;
}

.app-content .card-title{
  margin:0;
  font-size:1rem;
  font-weight:600;
}

.app-content .table thead th{
  white-space:nowrap;
  color:var(--bs-secondary-color);
  font-size:.8125rem;
  text-transform:uppercase;
  letter-spacing:.025em;
}

.app-content .table td,
.app-content .table th{
  padding:.85rem;
  vertical-align:middle;
}

.app-content .btn,
.login-box .btn,
.public-shell .btn{
  min-height:40px;
}

.app-content .form-control,
.app-content .form-select,
.login-box .form-control{
  min-height:44px;
}

/* Jerarquia visual y formularios del panel */
.app-wrapper .app-main{
  background:
    radial-gradient(circle at 92% 4%, rgba(var(--bs-primary-rgb),.07), transparent 24rem),
    #eef2f6;
}

[data-bs-theme="dark"] .app-wrapper .app-main{
  background:
    radial-gradient(circle at 92% 4%, rgba(var(--bs-primary-rgb),.12), transparent 24rem),
    #171b20;
}

.app-content-header{
  padding:1.25rem 0 .75rem;
}

.app-content-header .breadcrumb{
  padding:.5rem .8rem;
  border:1px solid var(--bs-border-color);
  border-radius:var(--bs-border-radius);
  background:var(--bs-body-bg);
}

.app-content > .container-fluid{
  max-width:1600px;
}

.app-content .card{
  border:1px solid rgba(var(--bs-secondary-rgb),.2);
  background:var(--bs-body-bg);
  box-shadow:0 .4rem 1.15rem rgba(31,49,66,.08);
}

.app-content .card-outline{
  border-top-width:3px;
}

.app-content .card-header{
  padding:.9rem 1.1rem;
  background:var(--bs-tertiary-bg)!important;
}

.app-content .card-body:not(.p-0){
  padding:1.35rem;
}

.app-content form .row.g-3{
  padding:1rem;
  margin-right:0;
  margin-left:0;
  border:1px solid var(--bs-border-color);
  border-radius:calc(var(--bs-border-radius) + .2rem);
  background:var(--bs-tertiary-bg);
}

.app-content form .form-label{
  margin-bottom:.42rem;
  color:var(--bs-emphasis-color);
  font-size:.82rem;
  font-weight:650;
  letter-spacing:.015em;
}

.app-content form .form-control,
.app-content form .form-select{
  border-color:rgba(var(--bs-secondary-rgb),.38);
  background-color:var(--bs-body-bg);
  transition:border-color .18s ease, box-shadow .18s ease, background-color .18s ease;
}

.app-content form .form-control:hover,
.app-content form .form-select:hover{
  border-color:rgba(var(--bs-primary-rgb),.55);
}

.app-content form .form-control:focus,
.app-content form .form-select:focus{
  border-color:var(--bs-primary);
  background-color:var(--bs-body-bg);
  box-shadow:0 0 0 .22rem rgba(var(--bs-primary-rgb),.14);
}

.app-content .table-responsive{
  border-radius:0 0 var(--bs-border-radius) var(--bs-border-radius);
}

.app-content .table > tbody > tr{
  transition:background-color .16s ease;
}

.app-content .table > tbody > tr:hover > *{
  background-color:rgba(var(--bs-primary-rgb),.055);
}

.app-content .btn{
  transition:transform .16s ease, box-shadow .16s ease, background-color .16s ease;
}

.app-content .btn:hover:not(:disabled){
  transform:translateY(-1px);
}

.app-content .btn:active:not(:disabled){
  transform:translateY(0) scale(.98);
}

.admin-notification-stack{
  position:fixed;
  top:1rem;
  right:1rem;
  z-index:1080;
  width:min(420px,calc(100vw - 2rem));
  pointer-events:none;
}

.admin-notification{
  display:grid;
  grid-template-columns:42px minmax(0,1fr) auto;
  align-items:center;
  gap:.8rem;
  padding:.9rem 1rem;
  border:1px solid currentColor;
  box-shadow:0 1rem 2.5rem rgba(20,35,48,.22);
  pointer-events:auto;
}

.admin-notification-icon{
  display:grid;
  place-items:center;
  width:42px;
  height:42px;
  border-radius:50%;
  background:rgba(255,255,255,.55);
  font-size:1.25rem;
}

.admin-notification strong,
.admin-notification span{
  display:block;
}

.admin-notification strong{margin-bottom:.12rem}
.admin-notification div > span{font-size:.9rem}

.assignment-accreditation{padding:.65rem .8rem;border:1px solid var(--bs-border-color);border-radius:var(--bs-border-radius);background:var(--bs-body-bg)}
.assignment-accreditation legend{float:none;width:auto;margin:0 0 .35rem;padding:0 .25rem;color:var(--bs-secondary-color);font-size:.76rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}

.certification-row-form{display:grid;grid-template-columns:minmax(105px,.7fr) minmax(145px,1fr) minmax(85px,.65fr) minmax(95px,.7fr) minmax(130px,1.2fr) minmax(90px,.7fr);gap:.65rem;align-items:center;padding:.65rem}
.certification-table tbody tr > td{transition:background-color .2s ease,border-color .2s ease}
.certification-row-complete > td{background-color:rgba(25,135,84,.11)!important;border-color:rgba(25,135,84,.2)}
.certification-row-pending > td{background-color:rgba(255,193,7,.08)!important}
.certification-key{display:inline-block;width:.75rem;height:.75rem;border-radius:2px;vertical-align:-.05rem}.certification-key-complete{background:rgba(25,135,84,.45)}.certification-key-pending{background:rgba(255,193,7,.4)}
@media(max-width:1199px){.certification-row-form{grid-template-columns:repeat(2,minmax(150px,1fr))}}

.small-box .small-box-icon{
  position:absolute;
  top:15px;
  right:15px;
  font-size:4rem;
  opacity:.25;
}

.small-box .inner p{
  min-height:1.5rem;
  margin-bottom:0;
  font-weight:600;
}

.login-page{
  min-height:100dvh;
  padding:1rem;
}

.login-box{
  width:min(420px, 100%);
}

.public-shell{
  min-height:100dvh;
  display:flex;
  flex-direction:column;
}

.public-shell main{
  flex:1;
}

/* Sitio publico alineado con el lenguaje visual de AdminLTE */
.public-shell .app-wrapper{min-height:100dvh;display:flex;flex-direction:column;background:var(--bs-tertiary-bg)}
.public-shell .app-header{z-index:1030;box-shadow:0 .125rem .25rem rgba(0,0,0,.075)}
.public-brand-image{width:34px;height:34px;object-fit:contain}
.public-shell .navbar-brand{color:var(--bs-body-color)}
.public-shell .navbar-nav .nav-link{color:var(--bs-secondary-color);border-radius:var(--bs-border-radius);padding:.5rem .75rem}
.public-shell .navbar-nav .nav-link:hover,
.public-shell .navbar-nav .nav-link:focus,
.public-shell .navbar-nav .nav-link.active{color:var(--bs-primary);background:rgba(var(--bs-primary-rgb),.1)}
.public-shell .hero-section,
.public-shell .query-hero,
.public-shell .verify-hero,
.public-shell .detail-hero{background:var(--bs-tertiary-bg)}
.public-shell .hero-section{padding:3.5rem 0 3rem;border-bottom:1px solid var(--bs-border-color)}
.public-shell .hero-section::after,
.public-shell .hero-panel::before{display:none}
.public-shell .hero-kicker{border-radius:var(--bs-border-radius);background:rgba(var(--bs-primary-rgb),.1);border:0;color:var(--bs-primary)}
.public-shell .hero-kicker::before{box-shadow:none;background:var(--bs-primary)}
.public-shell .hero-headline{max-width:15ch;font-size:clamp(2.35rem,5vw,4rem);line-height:1.08;letter-spacing:-.025em}
.public-shell .hero-panel,
.public-shell .info-card,
.public-shell .detail-panel,
.public-shell .course-card,
.public-shell .result-card,
.public-shell .detail-cards .card{border:1px solid var(--bs-border-color);border-radius:var(--bs-border-radius);background:var(--bs-body-bg);box-shadow:var(--bs-box-shadow-sm);backdrop-filter:none}
.public-shell .hero-panel{padding:1rem}
.public-shell .stats-grid{gap:.75rem}
.public-shell .stat-box,
.public-shell .detail-stat{border:1px solid var(--bs-border-color);border-radius:var(--bs-border-radius);background:var(--bs-tertiary-bg);box-shadow:none}
.public-shell .stat-box strong{color:var(--bs-primary)}
.public-shell .section-shell{padding:3rem 0}
.public-shell .section-shell.alt{background:var(--bs-secondary-bg)}
.public-shell .section-heading{margin-bottom:1.5rem}
.public-shell .course-card:hover{transform:translateY(-2px);box-shadow:var(--bs-box-shadow)}
.public-shell .course-thumb{height:210px}
.public-shell .course-card-body{display:flex;flex-direction:column;height:calc(100% - 210px);padding:1.25rem}
.public-shell .course-card-body .btn{align-self:flex-start;margin-top:auto}
.public-shell .meta-pill{border-radius:var(--bs-border-radius-sm);background:var(--bs-secondary-bg);color:var(--bs-secondary-color)}
.public-shell .info-shell{padding:3rem 0}
.public-shell .detail-media,
.public-shell .detail-panel,
.public-shell .info-card,
.public-shell .result-card{border-radius:var(--bs-border-radius)}
.public-shell .detail-media{box-shadow:var(--bs-box-shadow-sm)}
.public-shell .public-footer{margin-top:auto;color:var(--bs-secondary-color);background:var(--bs-body-bg);border-top:1px solid var(--bs-border-color)}
.public-visit-counter{display:inline-flex;align-items:center;padding:.3rem .65rem;border:1px solid var(--bs-border-color);border-radius:var(--bs-border-radius);color:var(--bs-primary);background:var(--bs-tertiary-bg);font-variant-numeric:tabular-nums}

.public-shell .navbar-dark .navbar-brand,
.public-shell .navbar-dark .nav-link{
  color:rgba(255,255,255,.92);
}

.public-shell .navbar-dark .nav-link:hover,
.public-shell .navbar-dark .nav-link:focus{
  color:#fff;
  background:rgba(255,255,255,.12);
}

@media (max-width:575.98px){
  .app-content .card-body:not(.p-0){padding:1rem}
  .app-content form .row.g-3{padding:.5rem}
  .admin-notification-stack{top:.65rem;right:.65rem;width:calc(100vw - 1.3rem)}
  .public-shell .navbar-nav{gap:.25rem;padding:.75rem 0}
  .public-shell .navbar-nav .btn{width:100%;margin-top:.25rem}
  .public-shell .public-footer{display:flex;flex-direction:column;gap:.65rem;text-align:center}
  .public-shell .public-footer .float-end{float:none!important;order:-1}
  .app-content-header .breadcrumb{
    display:none;
  }

  .app-wrapper .admin-top-logout{
    font-size:0;
    width:44px;
    min-height:44px;
    justify-content:center;
    padding:.375rem;
    overflow:hidden;
  }

  .admin-top-logout .bi{
    margin:0!important;
    font-size:1rem;
  }

  .app-content .d-flex.justify-content-between{
    align-items:flex-start!important;
    flex-direction:column;
    gap:.75rem;
  }

  .app-content .d-flex.justify-content-between > .d-flex{
    width:100%;
    flex-wrap:wrap;
  }
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    scroll-behavior:auto!important;
    transition-duration:.01ms!important;
    animation-duration:.01ms!important;
  }
}
.certificate-preview-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: .75rem;
}

.certificate-preview-wrap {
    overflow: auto;
    padding: 1rem;
    border: 1px solid #dfe4ea;
    border-radius: .75rem;
    background: #f4f6f8;
}

.certificate-preview {
    position: relative;
    width: min(100%, 990px);
    aspect-ratio: 297 / 210;
    margin: 0 auto;
    overflow: hidden;
    border: 1px solid #b8c0cc;
    background-color: #fff;
    background-position: center;
    background-size: 100% 100%;
    box-shadow: 0 10px 30px rgba(25, 39, 56, .12);
}

.preview-item { position: absolute; z-index: 1; }
.preview-name { color: #202e4e; font-size: clamp(.65rem, 2vw, 1.35rem); font-weight: 700; white-space: nowrap; }
.preview-detail { color: #3a3a3a; font-size: clamp(.35rem, 1vw, .75rem); text-align: center; }
.preview-expedition { color: #484f57; font-size: clamp(.3rem, .8vw, .62rem); text-align: center; }
.preview-topics { display: flex; flex-direction: column; gap: .2em; height: auto; padding: 1.5%; border: 1px solid #cebe96; border-radius: .35rem; color: #403f3c; font-size: clamp(.3rem, .85vw, .68rem); line-height: 1.25; }
.preview-qr { display: grid; place-items: center; min-height: 9%; color: #3f4854; font-size: .65rem; }
.preview-qr-grid { width: 45%; aspect-ratio: 1; background: repeating-conic-gradient(#26313d 0 25%, transparent 0 50%) 0 / 7px 7px; }
.preview-signature { height: 9.5%; padding: .7%; color: #314257; font-size: clamp(.3rem, .8vw, .65rem); text-align: center; font-weight: 700; }
.preview-electronic-signature { display: flex; align-items: center; gap: 4%; text-align: left; }
.preview-electronic-signature > span:last-child { display: flex; min-width: 0; flex-direction: column; }
.preview-electronic-signature small { color: #69727d; font-size: .8em; font-weight: 500; }
.preview-signature-qr { width: 30%; max-height: 100%; aspect-ratio: 1; flex: 0 0 auto; background: repeating-conic-gradient(#26313d 0 25%, transparent 0 50%) 0 / 5px 5px; }
.certificate-preview [data-preview] { cursor: grab; touch-action: none; user-select: none; }
.certificate-preview [data-preview]:active { cursor: grabbing; }
.certificate-preview [data-preview]:focus-visible { outline: 2px solid var(--mm-primary); outline-offset: 3px; }

.element-editor,
.certificate-copy-settings,
.certificate-copy-preview {
    padding: 1rem;
    border: 1px solid #dfe4ea;
    border-radius: .75rem;
    background: #f8fafb;
}

.element-selector { display: flex; flex-wrap: wrap; gap: .5rem; }
.element-selector-option { margin: 0; cursor: pointer; }
.element-selector-option input { position: absolute; opacity: 0; pointer-events: none; }
.element-selector-option span { display: block; padding: .55rem .9rem; border: 1px solid #cfd7df; border-radius: 999px; background: #fff; color: #344454; font-size: .875rem; font-weight: 600; transition: border-color .18s ease, background-color .18s ease, color .18s ease; }
.element-selector-option input:checked + span { border-color: var(--mm-primary); background: var(--mm-primary); color: #fff; }
.element-selector-option input:focus-visible + span { outline: 3px solid rgba(29, 93, 116, .25); outline-offset: 2px; }
.preview-active { outline: 2px solid #e0a11b; outline-offset: 3px; z-index: 4; }
.preview-overlap { outline-color: #dc3545; background-color: rgba(220, 53, 69, .08); }
.preview-certificate-heading { position: absolute; top: 14%; width: 100%; color: #202e4e; text-align: center; font-size: clamp(.7rem, 2.5vw, 1.8rem); font-weight: 800; letter-spacing: .12em; }
.preview-certificate-lead { position: absolute; top: 28%; width: 100%; color: #525d69; text-align: center; font-size: clamp(.35rem, 1vw, .75rem); }
.preview-certificate-id { position: absolute; top: 45%; width: 100%; color: #626b75; text-align: center; font-size: clamp(.3rem, .8vw, .65rem); }
.preview-topics span { font-weight: 700; }
.certificate-copy-settings { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.certificate-copy-preview p { color: var(--mm-ink); font-weight: 600; }
.preview-position-status { color: var(--mm-primary); font-size: .75rem; font-weight: 700; }
.preview-position-status.has-overlap { color: #b42318; }

.design-workspace {
    display: grid;
    grid-template-columns: minmax(260px, 340px) minmax(0, 1fr);
    gap: 1.25rem;
    align-items: start;
}

.design-controls {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .85rem;
}

.design-controls > .col-12 { grid-column: 1 / -1; }
.design-controls > [class*="col-md-"] { width: 100%; padding: 0; }
.design-controls > [hidden] { display: none !important; }
.design-canvas { min-width: 0; position: sticky; top: 1rem; }
.design-canvas > .col-12 { width: 100%; }
.design-canvas .certificate-preview-wrap { overflow: hidden; padding: .65rem; }
.design-canvas .certificate-preview { width: 100%; }

@media (max-width: 991px) {
    .design-workspace { grid-template-columns: 1fr; }
    .design-canvas { grid-row: 1; position: static; }
}

@media (max-width: 576px) {
    .certificate-preview-wrap { padding: .5rem; }
    .certificate-preview-header { align-items: flex-start; }
    .certificate-copy-settings { align-items: flex-start; flex-direction: column; }
}
