*{box-sizing:border-box}html,body{margin:0;padding:0;font-family:Montserrat,Arial,sans-serif;background:#fff;color:#10131a}a{text-decoration:none;color:inherit}img{max-width:100%;display:block}body{min-height:100vh}.container{width:min(1120px,92vw);margin:0 auto}.site-header{position:sticky;top:0;background:rgba(255,255,255,.92);backdrop-filter:blur(12px);border-bottom:1px solid #edf1f6;z-index:40}.site-header-minimal{background:rgba(255,255,255,.88)}.nav-shell{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:76px}.brand{display:flex;align-items:center;gap:12px;font-weight:800;letter-spacing:.02em}.brand-logo{width:48px;height:48px;object-fit:contain;filter:drop-shadow(0 0 14px color-mix(in srgb, var(--neon-color) 38%, transparent))}.brand-dot{width:12px;height:12px;border-radius:50%;background:var(--neon-color);box-shadow:0 0 14px var(--neon-color)}.desktop-nav{display:flex;align-items:center;gap:18px}.nav-link{padding:10px 14px;border-radius:999px;color:#4b5563;transition:.25s}.nav-link:hover,.nav-link.active{background:#f5f8fb;color:#111827}.mobile-toggle{display:none;border:1px solid #e5e7eb;background:#fff;border-radius:12px;padding:10px 14px;cursor:pointer}.mobile-panel{display:none;flex-direction:column;padding:0 4vw 18px}.mobile-panel.is-open{display:flex}.main-minimal{display:flex;align-items:stretch;min-height:calc(100vh - 77px)}.landing-center-wrap{position:relative;flex:1;display:flex;align-items:center;justify-content:center;overflow:hidden;background:radial-gradient(circle at center,color-mix(in srgb,var(--neon-color) 8%,transparent),transparent 32%),linear-gradient(#fff,#fff)}.landing-center-shell{display:flex;align-items:center;justify-content:center;min-height:calc(100vh - 77px)}.logo-stage{position:relative;display:grid;place-items:center;width:min(72vw,720px);height:min(72vw,720px);isolation:isolate}.landing-logo{width:min(58vw,460px);max-height:min(58vw,460px);object-fit:contain;position:relative;z-index:3;filter:drop-shadow(0 0 22px color-mix(in srgb,var(--neon-color) 38%,transparent)) drop-shadow(0 0 60px color-mix(in srgb,var(--neon-color) 18%,transparent));animation:logoFloat 5.2s ease-in-out infinite}.effect-layer,.effect-spark{position:absolute;pointer-events:none}.effect-layer-a,.effect-layer-b,.effect-layer-c{inset:8%;border-radius:50%;opacity:.95}.effect-spark{z-index:1;border-radius:999px;background:color-mix(in srgb,var(--neon-color) 82%,white);box-shadow:0 0 12px color-mix(in srgb,var(--neon-color) 65%,transparent),0 0 28px color-mix(in srgb,var(--neon-color) 35%,transparent)}.spark-1{width:12px;height:12px;top:20%;left:18%;animation:sparkFloat 3.2s ease-in-out infinite}.spark-2{width:10px;height:10px;top:68%;right:16%;animation:sparkFloat 3.9s ease-in-out infinite reverse}.spark-3{width:14px;height:14px;bottom:16%;left:28%;animation:sparkFloat 4.4s ease-in-out infinite}.logo-stage.effect-orbit .effect-layer-a{inset:12%;border:2px solid color-mix(in srgb,var(--neon-color) 72%,transparent);box-shadow:0 0 35px color-mix(in srgb,var(--neon-color) 28%,transparent);animation:spin 16s linear infinite}.logo-stage.effect-orbit .effect-layer-b{inset:22%;border:1px dashed color-mix(in srgb,var(--neon-color) 55%,transparent);animation:spinReverse 12s linear infinite}.logo-stage.effect-orbit .effect-layer-c{inset:31%;background:radial-gradient(circle,transparent 40%,color-mix(in srgb,var(--neon-color) 18%,transparent) 59%,transparent 66%);filter:blur(8px);animation:pulse 3s ease-in-out infinite}.logo-stage.effect-ripple .effect-layer-a{background:radial-gradient(circle,transparent 40%,color-mix(in srgb,var(--neon-color) 24%,transparent) 55%,transparent 67%);filter:blur(8px);animation:ripple 3.2s ease-out infinite}.logo-stage.effect-ripple .effect-layer-b{background:radial-gradient(circle,transparent 48%,color-mix(in srgb,var(--neon-color) 18%,transparent) 60%,transparent 71%);filter:blur(14px);animation:ripple 3.2s ease-out 1.1s infinite}.logo-stage.effect-ripple .effect-layer-c{background:radial-gradient(circle,color-mix(in srgb,var(--neon-color) 10%,transparent),transparent 58%);filter:blur(40px)}.logo-stage.effect-aurora .effect-layer-a{inset:10%;background:conic-gradient(from 0deg,color-mix(in srgb,var(--neon-color) 5%,transparent),color-mix(in srgb,var(--neon-color) 24%,transparent),transparent,color-mix(in srgb,var(--neon-color) 20%,transparent),transparent);filter:blur(34px);animation:spin 16s linear infinite}.logo-stage.effect-aurora .effect-layer-b{inset:18%;background:radial-gradient(circle at 30% 30%,color-mix(in srgb,var(--neon-color) 24%,transparent),transparent 42%),radial-gradient(circle at 70% 60%,color-mix(in srgb,var(--neon-color) 22%,transparent),transparent 38%);filter:blur(36px);animation:auroraShift 5.4s ease-in-out infinite}.logo-stage.effect-aurora .effect-layer-c{inset:24%;border:1px solid color-mix(in srgb,var(--neon-color) 30%,transparent);box-shadow:0 0 60px color-mix(in srgb,var(--neon-color) 18%,transparent) inset}.logo-stage.effect-halo .effect-layer-a{inset:16%;background:radial-gradient(circle,transparent 42%,color-mix(in srgb,var(--neon-color) 32%,transparent) 56%,transparent 66%);box-shadow:0 0 55px color-mix(in srgb,var(--neon-color) 25%,transparent);animation:pulse 2.6s ease-in-out infinite}.logo-stage.effect-halo .effect-layer-b{inset:26%;background:radial-gradient(circle,color-mix(in srgb,var(--neon-color) 14%,transparent),transparent 64%);filter:blur(30px)}.logo-stage.effect-halo .effect-layer-c{inset:7%;border:1px solid color-mix(in srgb,var(--neon-color) 22%,transparent);animation:spinReverse 18s linear infinite}.hero{padding:60px 0 18px;background:radial-gradient(circle at top, rgba(0,225,255,.08), rgba(255,255,255,0) 34%),linear-gradient(#fff,#fff)}.hero-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:28px;align-items:center}.eyebrow{display:inline-flex;padding:8px 14px;border-radius:999px;background:#f3f8fb;color:#0f4b5a;font-size:.82rem;font-weight:700;letter-spacing:.02em}.hero-copy h1{font-size:clamp(2.2rem,5vw,4.4rem);line-height:1.02;margin:18px 0 16px}.hero-copy p{font-size:1.08rem;line-height:1.7;color:#526071;max-width:680px}.hero-logo-wrap{position:relative;display:grid;place-items:center;min-height:420px}.neon-ring{position:absolute;inset:auto;width:min(400px,78vw);aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,0) 44%,rgba(255,255,255,.9) 46%,rgba(255,255,255,0) 54%);box-shadow:0 0 50px color-mix(in srgb,var(--neon-color) 55%,transparent),0 0 130px color-mix(in srgb,var(--neon-color) 22%,transparent);animation:pulse 2.8s ease-in-out infinite}.hero-logo{width:min(360px,74vw);max-height:390px;object-fit:contain;position:relative;z-index:2;filter:drop-shadow(0 0 28px color-mix(in srgb,var(--neon-color) 48%,transparent))}.hero-logo-fallback{display:grid;place-items:center;text-align:center;font-weight:900;font-size:2rem;background:#fbfdff;border:1px solid #edf1f6;border-radius:28px;box-shadow:0 15px 50px rgba(16,19,26,.08)}.content-shell{padding:22px 0 64px}.panel{background:#fff;border:1px solid #edf1f6;border-radius:26px;padding:28px;box-shadow:0 14px 40px rgba(15,23,42,.05);margin-bottom:22px}.panel-intro{margin-top:-8px}.panel h2{margin:0 0 12px;font-size:1.8rem}.lead{color:#556173;line-height:1.75}.rich-text{line-height:1.78;color:#1f2937}.rich-text p{margin:0 0 14px}.small-text{font-size:.96rem}.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px}.btn{display:inline-flex;align-items:center;justify-content:center;padding:12px 18px;border-radius:14px;font-weight:800;border:1px solid transparent;transition:.25s;cursor:pointer}.btn-primary{background:#10131a;color:#fff}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 14px 30px rgba(16,19,26,.18)}.btn-secondary{background:#fff;border-color:#dde3ea;color:#111827}.btn-secondary:hover{background:#f8fafc}.stats-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.admin-stats{grid-template-columns:repeat(4,minmax(0,1fr))}.stat-card,.course-card{background:#fff;border:1px solid #edf1f6;border-radius:24px;padding:24px;box-shadow:0 14px 36px rgba(15,23,42,.04)}.stat-card strong{display:block;font-size:1.1rem;margin-bottom:8px}.stat-card span{color:#556173;line-height:1.55}.course-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.course-meta{display:flex;justify-content:space-between;gap:10px;color:#556173;font-size:.9rem;margin-bottom:10px}.site-footer{border-top:1px solid #edf1f6;background:#fff}.footer-shell{display:flex;justify-content:space-between;gap:20px;padding:18px 0;color:#677385;font-size:.95rem}.login-body,.installer-body{display:grid;place-items:center;padding:32px;background:radial-gradient(circle at top,color-mix(in srgb,var(--neon-color,#2e6ca4) 14%,transparent),rgba(255,255,255,0) 36%),#fff}.login-card,.installer-card{width:min(620px,92vw);background:#fff;border:1px solid #edf1f6;border-radius:28px;padding:30px;box-shadow:0 24px 60px rgba(15,23,42,.08)}.stack-form{display:grid;gap:16px}.stack-form label{display:grid;gap:8px;font-weight:700;color:#2c3442}.stack-form input,.stack-form textarea,.stack-form select{width:100%;padding:12px 14px;border:1px solid #dfe5ec;border-radius:14px;background:#fff;font:inherit;color:#10131a}.stack-form textarea{resize:vertical}.grid-two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.grid-full{grid-column:1/-1}.check-line{display:flex!important;align-items:center;gap:10px;font-weight:700}.check-line input{width:auto}.alert{padding:14px 16px;border-radius:14px;font-weight:700;margin-bottom:14px}.alert-success{background:#ecfdf3;border:1px solid #bbf7d0;color:#166534}.alert-error{background:#fef2f2;border:1px solid #fecaca;color:#991b1b}.admin-body{background:#f7fafc}.admin-layout{display:grid;grid-template-columns:280px 1fr;min-height:100vh}.admin-sidebar{padding:26px;border-right:1px solid #e7eef5;background:#fff;position:sticky;top:0;height:100vh}.admin-sidebar h2{margin:0 0 8px}.muted{color:#677385}.admin-nav{display:grid;gap:8px;margin-top:24px}.admin-nav a{padding:12px 14px;border-radius:14px;color:#314052}.admin-nav a:hover{background:#f5f8fb}.admin-content{padding:26px}.admin-topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}.grid-admin-two{display:grid;grid-template-columns:1fr 1.1fr;gap:18px}.table-wrap{overflow:auto;border:1px solid #edf1f6;border-radius:18px}.table-wrap table{width:100%;border-collapse:collapse;background:#fff}.table-wrap th,.table-wrap td{padding:14px 16px;border-bottom:1px solid #edf1f6;text-align:left;white-space:nowrap}.table-wrap th{background:#fbfdff;color:#475569}.installer-card h1,.login-card h1{margin-top:0}@keyframes pulse{0%,100%{transform:scale(.95);opacity:.82}50%{transform:scale(1.02);opacity:1}}@keyframes ripple{0%{transform:scale(.58);opacity:0}18%{opacity:.85}100%{transform:scale(1.08);opacity:0}}@keyframes spin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}@keyframes spinReverse{from{transform:rotate(360deg)}to{transform:rotate(0deg)}}@keyframes auroraShift{0%,100%{transform:translate3d(-3%,2%,0) scale(.98)}50%{transform:translate3d(4%,-3%,0) scale(1.03)}}@keyframes sparkFloat{0%,100%{transform:translateY(0) scale(.9);opacity:.65}50%{transform:translateY(-16px) scale(1.15);opacity:1}}@keyframes logoFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}@media (max-width:980px){.hero-grid,.grid-admin-two,.admin-layout,.course-grid,.admin-stats,.stats-grid{grid-template-columns:1fr}.admin-sidebar{position:relative;height:auto;border-right:none;border-bottom:1px solid #e7eef5}.admin-content{padding:18px}.footer-shell{flex-direction:column}.landing-center-shell{min-height:calc(100vh - 77px)}.logo-stage{width:min(84vw,640px);height:min(84vw,640px)}}@media (max-width:760px){.desktop-nav{display:none}.mobile-toggle{display:inline-flex}.grid-two{grid-template-columns:1fr}.hero{padding-top:30px}.hero-logo-wrap{min-height:280px}.panel,.login-card,.installer-card,.stat-card,.course-card{border-radius:22px;padding:22px}.brand-logo{width:40px;height:40px}.hero-logo-wrap{min-height:320px}.hero-logo{width:min(290px,78vw);max-height:320px}.nav-shell{min-height:68px}.main-minimal,.landing-center-shell{min-height:calc(100vh - 69px)}.logo-stage{width:min(92vw,520px);height:min(92vw,520px)}.landing-logo{width:min(72vw,340px);max-height:min(72vw,340px)}}

.landing-solo-page{min-height:100vh;background:#fff;overflow:hidden}
.landing-solo-stage{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at center,color-mix(in srgb,var(--neon-color) 8%,transparent),transparent 36%),linear-gradient(#fff,#fff)}
.landing-solo-logo{width:min(86vw,760px);height:min(86vw,760px)}
.landing-solo-page .landing-logo{width:min(64vw,520px);max-height:min(64vw,520px)}
@media (max-width:980px){.landing-solo-logo{width:min(90vw,620px);height:min(90vw,620px)}.landing-solo-page .landing-logo{width:min(72vw,430px);max-height:min(72vw,430px)}}
@media (max-width:760px){.landing-solo-stage{padding:18px}.landing-solo-logo{width:min(94vw,520px);height:min(94vw,520px)}.landing-solo-page .landing-logo{width:min(80vw,360px);max-height:min(80vw,360px)}}

.admin-stats-extended{grid-template-columns:repeat(4,minmax(0,1fr))}
.dashboard-split{align-items:start}
.panel-headline-row{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:14px}
.compact-actions{margin-top:0}.table-actions{display:flex;gap:12px;align-items:center}.table-actions a{font-weight:700;color:#244f80}.table-actions a:hover{text-decoration:underline}.hint{font-size:.92rem;color:#607691}.email-card-preview{padding:18px;border:1px dashed #c8d9ea;border-radius:18px;background:#fbfdff}
@media (max-width:980px){.admin-stats-extended{grid-template-columns:1fr}.panel-headline-row{flex-direction:column;align-items:flex-start}}


/* ===== v71 base visual admin unificada ===== */
:root{
  --admin-bg:#f6f8fb;
  --admin-surface:#ffffff;
  --admin-border:#e7edf4;
  --admin-text:#0f172a;
  --admin-muted:#64748b;
  --admin-shadow:0 14px 34px rgba(15,23,42,.06);
  --admin-radius:22px;
  --admin-gap:18px;
}

.admin-body{
  background:var(--admin-bg);
  color:var(--admin-text);
}

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

.admin-sidebar{
  position:sticky;
  top:0;
  height:100vh;
  overflow:auto;
  background:linear-gradient(180deg,#111827 0%,#0b1220 100%);
  color:#fff;
  padding:22px 18px;
  box-shadow:8px 0 30px rgba(2,6,23,.12);
}

.admin-sidebar h2{
  margin:0 0 6px;
  font-size:1.08rem;
  line-height:1.3;
  color:#fff;
}

.admin-sidebar .muted{
  color:rgba(255,255,255,.72) !important;
}

.admin-nav{
  display:grid;
  gap:10px;
  margin-top:18px;
}

.admin-nav a{
  display:flex;
  align-items:center;
  min-height:46px;
  padding:12px 14px;
  border-radius:16px;
  color:#fff !important;
  text-decoration:none;
  font-weight:700;
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.08);
  transition:.18s ease;
}

.admin-nav a:hover{
  background:rgba(255,255,255,.10);
  transform:translateY(-1px);
}

.admin-content{
  min-width:0;
  padding:22px;
}

.admin-topbar{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
  margin-bottom:18px;
}

.admin-topbar h1{
  margin:0;
  line-height:1.15;
}

.panel{
  background:var(--admin-surface);
  border:1px solid var(--admin-border);
  border-radius:var(--admin-radius);
  box-shadow:var(--admin-shadow);
  padding:18px;
  min-width:0;
}

.panel + .panel{
  margin-top:18px;
}

.panel h2,
.panel h3{
  margin-top:0;
  margin-bottom:10px;
  line-height:1.2;
}

.panel-headline-row{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:14px;
  margin-bottom:14px;
}

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

.stats-grid,
.metric-grid,
.admin-stats,
.admin-stats-extended{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:14px;
}

.stat-card,
.metric-card{
  background:#fff;
  border:1px solid var(--admin-border);
  border-radius:20px;
  box-shadow:var(--admin-shadow);
  padding:16px 18px;
  min-width:0;
}

.stat-card strong,
.metric-card strong{
  display:block;
  font-size:1.55rem;
  line-height:1.05;
  margin-bottom:6px;
}

.stat-card span,
.metric-card span{
  display:block;
  color:var(--admin-muted);
  line-height:1.35;
}

.stack-form{
  display:grid;
  gap:14px;
  min-width:0;
}

.stack-form label{
  display:grid;
  gap:8px;
  min-width:0;
  color:var(--admin-text);
  font-weight:700;
}

.stack-form input,
.stack-form select,
.stack-form textarea,
.grid-two input,
.grid-two select,
.grid-two textarea{
  width:100%;
  max-width:100%;
  box-sizing:border-box;
  min-height:46px;
  border-radius:16px;
  border:1px solid #d8e1ea;
  background:#fff;
  padding:12px 14px;
  color:var(--admin-text);
}

.stack-form textarea,
.grid-two textarea{
  min-height:130px;
  resize:vertical;
}

.hero-actions,
.compact-actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}

.table-wrap{
  width:100%;
  overflow:auto;
  border:1px solid var(--admin-border);
  border-radius:18px;
  background:#fff;
}

.table-wrap table{
  width:100%;
  min-width:720px;
  border-collapse:separate;
  border-spacing:0;
}

.table-wrap thead th{
  position:sticky;
  top:0;
  background:#f8fafc;
  z-index:1;
}

.table-wrap th,
.table-wrap td{
  padding:12px 14px;
  border-bottom:1px solid #eef2f7;
  text-align:left;
  vertical-align:top;
}

.table-wrap tbody tr:hover{
  background:#fafcff;
}

.muted,
.hint{
  color:var(--admin-muted) !important;
}

.alert{
  border-radius:18px;
  padding:14px 16px;
  margin-bottom:16px;
}

.btn,
.btn-primary,
.btn-secondary,
a.btn,
button.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  min-height:46px;
  padding:12px 18px;
  border-radius:999px;
  text-decoration:none;
  font-weight:800;
}

.btn-primary,
.btn-secondary,
a.btn-primary,
a.btn-secondary,
button.btn-primary,
button.btn-secondary{
  background:#000 !important;
  color:#fff !important;
  border:1px solid #000 !important;
  box-shadow:0 10px 22px rgba(0,0,0,.12);
}

.btn-primary:hover,
.btn-secondary:hover,
a.btn-primary:hover,
a.btn-secondary:hover,
button.btn-primary:hover,
button.btn-secondary:hover{
  background:#111 !important;
  color:#fff !important;
}

.pagination-wrap,
.pagination-bar{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-top:14px;
}

.pagination-controls,
.pagination-links{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  align-items:center;
}

.config-hub-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:16px;
}

.config-hub-card{
  display:block;
  padding:18px;
  border:1px solid var(--admin-border);
  border-radius:22px;
  background:#fff;
  box-shadow:var(--admin-shadow);
  text-decoration:none;
}

.config-hub-card strong{
  display:block;
  margin-bottom:6px;
  color:var(--admin-text);
}

.config-hub-card span{
  color:var(--admin-muted);
  line-height:1.5;
}

@media (max-width: 1380px){
  .admin-layout{
    grid-template-columns:240px minmax(0,1fr);
  }
}

@media (max-width: 1180px){
  .admin-layout{
    grid-template-columns:1fr;
  }
  .admin-sidebar{
    position:relative;
    height:auto;
    overflow:visible;
  }
  .admin-content{
    padding:18px;
  }
  .grid-admin-two,
  .grid-two{
    grid-template-columns:1fr;
  }
}

@media (max-width: 720px){
  .admin-content{
    padding:14px;
  }
  .panel{
    padding:15px;
    border-radius:18px;
  }
  .admin-topbar,
  .panel-headline-row{
    flex-direction:column;
  }
  .hero-actions .btn,
  .compact-actions .btn,
  .stack-form .btn,
  .stack-form button{
    width:100%;
  }
  .table-wrap table{
    min-width:640px;
  }
}
