:root {
    --teal: #14b8a0;
    --teal-light: #2ee8c8;
    --teal-pale: #ccfaf4;
    --yellow: #fbbf24;
    --yellow-light: #fde68a;
    --bg: #f0faf8;
    --white: #ffffff;
    --text: #1a3a35;
    --text-soft: #5b8f87;
    --red: #ef4444;
    --red-pale: #fee2e2;
  }
  * { margin:0; padding:0; box-sizing:border-box; }
  html { overflow-y:scroll; scroll-behavior:smooth; }
  html.page-home-root { scroll-snap-type:y mandatory; }
  html.page-news-root { scroll-snap-type:none; }
  body { font-family:'Nunito',sans-serif; background:var(--bg); color:var(--text); }

  nav {
    position:fixed; top:0; left:0; right:0; z-index:100;
    display:flex; justify-content:space-between; align-items:center;
    padding:16px 40px;
    background:rgba(240,250,248,0.88); backdrop-filter:blur(12px);
    border-bottom:1px solid rgba(20,184,160,0.1);
  }
  .nav-logo { font-family:'Fredoka One',sans-serif; font-size:22px; }
  .nav-logo .t { color:var(--teal); }
  .nav-logo .y { color:var(--yellow); }
  .nav-links { display:flex; gap:6px; list-style:none; }
  .nav-links a {
    font-size:13px; font-weight:800; color:var(--text-soft);
    text-decoration:none; padding:7px 14px; border-radius:999px;
    transition:background .2s, color .2s;
  }
  .nav-links a:hover { background:var(--teal-pale); color:var(--teal); }

  .dots {
    position:fixed; right:26px; top:50%; transform:translateY(-50%);
    display:flex; flex-direction:column; gap:10px; z-index:99;
  }
  .dot {
    width:10px; height:10px; border-radius:50%;
    background:rgba(20,184,160,0.25); cursor:pointer;
    transition:background .3s, transform .3s; border:none;
  }
  .dot.active { background:var(--teal); transform:scale(1.4); }

  .blob {
    position:absolute; border-radius:50%;
    filter:blur(70px); opacity:0.3; pointer-events:none; z-index:0;
  }

  section {
    scroll-snap-align:start; min-height:100vh;
    display:flex; align-items:center; justify-content:center;
    position:relative; overflow:hidden; padding:80px 40px 60px;
  }

  .scroll-hint {
    position:absolute; bottom:24px; left:50%; transform:translateX(-50%);
    font-size:13px; font-weight:700; color:rgba(91,143,135,0.6);
    animation:hint 2s ease-in-out infinite; z-index:1;
  }
  @keyframes hint {
    0%,100%{opacity:.6;transform:translateX(-50%) translateY(0)}
    50%{opacity:1;transform:translateX(-50%) translateY(5px)}
  }

  /* HERO */
  #hero { background:linear-gradient(145deg,#e8faf6 0%,#f5fef9 50%,#fefce8 100%); }
  .hero-content { position:relative; z-index:1; text-align:center; max-width:680px; }
  .hero-logo {
    font-family:'Fredoka One',sans-serif; font-size:72px; line-height:1;
    margin-bottom:10px; animation:float 3s ease-in-out infinite;
  }
  .hero-logo .t { color:var(--teal); }
  .hero-logo .y { color:var(--yellow); }
  @keyframes float { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-12px)} }
  .hero-sub { font-size:16px; font-weight:700; color:var(--text-soft); margin-bottom:28px; }
  .hero-badges { display:flex; gap:8px; flex-wrap:wrap; justify-content:center; margin-bottom:32px; }
  .badge { font-size:13px; font-weight:800; padding:7px 18px; border-radius:999px; transition:transform .2s; cursor:pointer; }
  .badge:hover { transform:scale(1.06) translateY(-2px); }
  .badge-teal { background:var(--teal-pale); color:#0f766e; }
  .badge-yellow { background:var(--yellow-light); color:#92400e; }
  .ip-card {
    background:var(--white); border-radius:22px; padding:20px 28px;
    display:inline-flex; align-items:center; gap:20px; margin-bottom:24px;
    box-shadow:0 6px 32px rgba(20,184,160,0.12);
  }
  .ip-info .label { font-size:11px; font-weight:800; color:#94a3b8; text-transform:uppercase; letter-spacing:1px; margin-bottom:4px; }
  .ip-info .addr { font-size:20px; font-weight:900; color:var(--text); }
  .btn-copy {
    background:var(--teal); color:white; font-family:'Nunito',sans-serif;
    font-weight:800; font-size:14px; border:none; border-radius:14px;
    padding:12px 22px; cursor:pointer; transition:transform .15s, background .2s;
  }
  .btn-copy:hover { background:#0d9488; transform:scale(1.05); }
  .btn-copy.copied { background:var(--yellow); color:var(--text); }
  .hero-stats { display:flex; gap:12px; justify-content:center; }
  .stat-card {
    background:var(--white); border-radius:18px; padding:14px 22px;
    text-align:center; box-shadow:0 2px 16px rgba(20,184,160,0.07); min-width:90px;
  }
  .stat-card .num { font-size:26px; font-weight:900; color:var(--teal); }
  .stat-card .num.am { color:var(--yellow); }
  .stat-card .lbl { font-size:11px; font-weight:700; color:#94a3b8; text-transform:uppercase; letter-spacing:.7px; margin-top:2px; }
  .pulse-dot {
    display:inline-block; width:9px; height:9px; background:var(--teal);
    border-radius:50%; margin-right:4px; vertical-align:middle;
    animation:pulse 1.8s ease-in-out infinite;
  }
  @keyframes pulse { 0%,100%{opacity:1;transform:scale(1)} 50%{opacity:.5;transform:scale(.7)} }

  /* MODOS */
  #modos { background:var(--white); padding:80px 0 60px; flex-direction:column; align-items:center; }
  .modos-header { text-align:center; margin-bottom:32px; padding:0 40px; z-index:1; position:relative; width:100%; }
  .section-title { font-family:'Fredoka One',sans-serif; font-size:42px; color:var(--teal); margin-bottom:6px; }
  .section-title .y { color:var(--yellow); }
  .section-sub { font-size:15px; font-weight:700; color:var(--text-soft); }

  .modos-slider-wrap {
    width:100%; position:relative; z-index:1;
    display:flex; align-items:center;
  }
  .slider-btn {
    flex-shrink:0; width:44px; height:44px; border-radius:50%;
    background:var(--white); border:2px solid var(--teal-pale);
    color:var(--teal); font-size:20px; cursor:pointer;
    display:flex; align-items:center; justify-content:center;
    transition:background .2s, transform .15s;
    box-shadow:0 2px 12px rgba(20,184,160,0.1); margin:0 14px;
  }
  .slider-btn:hover { background:var(--teal-pale); transform:scale(1.08); }
  .modos-track-outer { flex:1; overflow-x:auto; scrollbar-width:none; }
  .modos-track-outer::-webkit-scrollbar { display:none; }
  .modos-track {
    display:flex; gap:20px; padding:16px 20px;
    transition:transform .45s cubic-bezier(.25,.8,.25,1);
    will-change:transform;
  }
  .modo-card {
    flex-shrink:0; width:280px;
    background:var(--bg); border-radius:26px; padding:36px 24px;
    text-align:center; transition:transform .25s, box-shadow .25s;
    cursor:default; position:relative; overflow:hidden;
  }
.modo-card.active-card {
    transform:scale(1.04);
    box-shadow:0 16px 48px rgba(20,184,160,0.14);
  }
  .modo-card.is-muted { opacity:.75; }
  .modo-card .icon { font-size:52px; margin-bottom:16px; display:block; }
  .modo-card .name { font-family:'Fredoka One',sans-serif; font-size:22px; margin-bottom:10px; color:var(--text); }
  .modo-card .desc { font-size:14px; font-weight:600; color:var(--text-soft); line-height:1.6; margin-bottom:16px; }
  .modo-card .tag { display:inline-block; font-size:12px; font-weight:800; padding:5px 14px; border-radius:999px; }
  .tag-teal { background:var(--teal-pale); color:#0f766e; }
  .tag-yellow { background:var(--yellow-light); color:#92400e; }
  .tag-purple { background:#ede9fe; color:#7c3aed; }
  .tag-red { background:var(--red-pale); color:#dc2626; }
  .tag-blue { background:#e0f2fe; color:#0369a1; }
  .soon-ribbon {
    position:absolute; top:16px; right:-16px;
    background:var(--yellow-light); color:#92400e;
    font-size:10px; font-weight:800; padding:4px 28px;
    transform:rotate(30deg);
  }
  .modos-dots { display:flex; gap:8px; justify-content:center; margin-top:20px; z-index:1; position:relative; }
  .modo-dot {
    width:8px; height:8px; border-radius:50%;
    background:rgba(20,184,160,0.25); border:none; cursor:pointer;
    transition:background .3s, transform .3s;
  }
  .modo-dot.on { background:var(--teal); transform:scale(1.4); }

  /* JAIBALAND */
  #jaibaland { background:linear-gradient(145deg,#fff5f5 0%,#fff9f0 60%,#fef3e2 100%); }
  .jail-inner { position:relative; z-index:1; max-width:800px; text-align:center; }
  .jail-eyebrow { font-size:12px; font-weight:800; text-transform:uppercase; letter-spacing:2px; color:var(--red); margin-bottom:12px; }
  .jail-title { font-family:'Fredoka One',sans-serif; font-size:64px; color:var(--red); line-height:1; margin-bottom:8px; animation:float 3.2s ease-in-out infinite; }
  .jail-edition { font-family:'Fredoka One',sans-serif; font-size:28px; color:#f97316; margin-bottom:20px; }
  .jail-desc { font-size:16px; font-weight:700; color:#7c2d12; line-height:1.7; margin-bottom:28px; max-width:580px; margin-left:auto; margin-right:auto; }
  .jail-tags { display:flex; gap:10px; justify-content:center; flex-wrap:wrap; margin-bottom:32px; }
  .jail-tag { background:var(--red-pale); color:var(--red); font-size:13px; font-weight:800; padding:7px 18px; border-radius:999px; }
  .jail-credit {
    background:white; border-radius:20px; padding:20px 32px;
    display:inline-flex; align-items:center; gap:16px;
    box-shadow:0 4px 24px rgba(239,68,68,0.10);
  }
  .jail-credit .avatar {
    width:48px; height:48px; background:linear-gradient(135deg,var(--red),#f97316);
    border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:22px;
  }
  .jail-credit .cname { font-size:16px; font-weight:900; color:var(--text); }
  .jail-credit .role { font-size:13px; font-weight:700; color:#94a3b8; }
  .jail-coming {
    margin-top:24px; display:inline-flex; align-items:center; gap:8px;
    background:var(--red-pale); border-radius:999px; padding:10px 22px;
    font-size:14px; font-weight:800; color:var(--red);
  }

  /* UNIRSE */
  #unirse { background:var(--bg); }
  .unirse-grid { display:grid; grid-template-columns:1fr 1fr; gap:20px; max-width:700px; width:100%; }
  .unirse-card { background:white; border-radius:24px; padding:32px 28px; box-shadow:0 4px 24px rgba(20,184,160,0.08); }
  .platform { font-family:'Fredoka One',sans-serif; font-size:22px; margin-bottom:16px; display:flex; align-items:center; gap:10px; }
  .step { display:flex; gap:12px; margin-bottom:14px; align-items:flex-start; }
  .step-num {
    width:26px; height:26px; background:var(--teal-pale); color:#0f766e;
    border-radius:50%; font-size:13px; font-weight:900;
    display:flex; align-items:center; justify-content:center; flex-shrink:0; margin-top:1px;
  }
  .step-num.am { background:var(--yellow-light); color:#92400e; }
  .step-text { font-size:14px; font-weight:700; color:var(--text-soft); line-height:1.5; }
  .step-text strong { color:var(--text); }

  /* FOOTER */
  footer {
    scroll-snap-align:start; min-height:35vh;
    display:flex; flex-direction:column; align-items:center; justify-content:center;
    background:var(--text); color:white; text-align:center; padding:48px 40px; gap:14px;
  }
  .footer-logo { font-family:'Fredoka One',sans-serif; font-size:32px; }
  .footer-logo .t { color:var(--teal-light); }
  .footer-logo .y { color:var(--yellow); }
  .footer-sub { font-size:14px; font-weight:700; color:rgba(255,255,255,0.45); }
  .footer-ip { background:rgba(255,255,255,0.08); border-radius:14px; padding:12px 24px; font-size:16px; font-weight:800; color:var(--teal-light); }
  .footer-news {
    background:rgba(255,255,255,0.06); border:1.5px solid rgba(255,255,255,0.12);
    border-radius:14px; padding:10px 22px; font-size:14px; font-weight:800;
    color:rgba(255,255,255,0.7); text-decoration:none; transition:background .2s;
  }
  .footer-news:hover { background:rgba(255,255,255,0.12); }

:root {
    --teal: #14b8a0;
    --teal-light: #2ee8c8;
    --teal-pale: #ccfaf4;
    --yellow: #fbbf24;
    --yellow-light: #fde68a;
    --bg: #f0faf8;
    --white: #ffffff;
    --text: #1a3a35;
    --text-soft: #5b8f87;
    --red: #ef4444;
    --red-pale: #fee2e2;
  }

  * { margin:0; padding:0; box-sizing:border-box; }
  body { font-family:'Nunito',sans-serif; background:var(--bg); color:var(--text); min-height:100vh; }

  /* NAV */
  nav {
    position:sticky; top:0; z-index:100;
    display:flex; justify-content:space-between; align-items:center;
    padding:16px 40px;
    background:rgba(240,250,248,0.92); backdrop-filter:blur(12px);
    border-bottom:1px solid rgba(20,184,160,0.1);
  }
  .nav-logo { font-family:'Fredoka One',sans-serif; font-size:22px; text-decoration:none; }
  .nav-logo .t { color:var(--teal); }
  .nav-logo .y { color:var(--yellow); }
  .nav-back {
    display:flex; align-items:center; gap:8px;
    font-size:13px; font-weight:800; color:var(--text-soft);
    text-decoration:none; padding:7px 16px; border-radius:999px;
    background:var(--teal-pale); color:#0f766e;
    transition:transform .15s, background .2s;
  }
  .nav-back:hover { background:var(--teal); color:white; transform:scale(1.03); }

  /* HERO */
  .news-hero {
    background:linear-gradient(145deg,#e8faf6 0%,#f5fef9 50%,#fefce8 100%);
    padding:60px 40px 48px;
    text-align:center;
    position:relative;
    overflow:hidden;
  }
  .blob {
    position:absolute; border-radius:50%;
    filter:blur(70px); opacity:0.28; pointer-events:none;
  }
  .news-hero-title {
    font-family:'Fredoka One',sans-serif; font-size:48px;
    position:relative; z-index:1; margin-bottom:8px;
  }
  .news-hero-title .t { color:var(--teal); }
  .news-hero-title .y { color:var(--yellow); }
  .news-hero-sub {
    font-size:15px; font-weight:700; color:var(--text-soft);
    position:relative; z-index:1;
  }

  /* FILTERS */
  .filters {
    display:flex; gap:8px; justify-content:center;
    flex-wrap:wrap; padding:32px 40px 0;
  }
  .filter-btn {
    font-family:'Nunito',sans-serif; font-size:13px; font-weight:800;
    padding:8px 20px; border-radius:999px; border:2px solid transparent;
    cursor:pointer; transition:all .2s;
    background:var(--white); color:var(--text-soft);
    border-color:rgba(20,184,160,0.15);
  }
  .filter-btn:hover { border-color:var(--teal); color:var(--teal); }
  .filter-btn.active { background:var(--teal); color:white; border-color:var(--teal); }

  /* GRID */
  .news-container {
    max-width:1100px; margin:0 auto;
    padding:32px 40px 80px;
  }

  /* FEATURED */
  .featured {
    background:var(--white); border-radius:28px; padding:36px;
    margin-bottom:28px;
    box-shadow:0 6px 32px rgba(20,184,160,0.10);
    display:grid; grid-template-columns:1fr 1fr; gap:32px;
    align-items:center;
    transition:transform .2s;
  }
  .featured:hover { transform:translateY(-4px); }
  .featured-badge {
    display:inline-flex; align-items:center; gap:6px;
    font-size:11px; font-weight:800; text-transform:uppercase;
    letter-spacing:1px; padding:5px 14px; border-radius:999px;
    margin-bottom:14px;
  }
  .featured-date { font-size:12px; font-weight:700; color:#94a3b8; margin-bottom:10px; }
  .featured-title {
    font-family:'Fredoka One',sans-serif; font-size:28px;
    color:var(--text); margin-bottom:12px; line-height:1.2;
  }
  .featured-body {
    font-size:15px; font-weight:600; color:var(--text-soft);
    line-height:1.7; margin-bottom:20px;
  }
  .featured-img {
    background:linear-gradient(135deg,var(--teal-pale),var(--yellow-light));
    border-radius:20px; height:200px;
    display:flex; align-items:center; justify-content:center;
    font-size:72px;
  }
  .read-more {
    display:inline-flex; align-items:center; gap:6px;
    font-size:13px; font-weight:800; color:var(--teal);
    text-decoration:none;
    padding:8px 18px; border-radius:999px;
    background:var(--teal-pale);
    transition:background .2s, transform .15s;
  }
  .read-more:hover { background:var(--teal); color:white; transform:scale(1.04); }

  /* NEWS GRID */
  .news-grid {
    display:grid;
    grid-template-columns:repeat(auto-fill,minmax(300px,1fr));
    gap:20px;
  }

  .news-card {
    background:var(--white); border-radius:22px; padding:28px 24px;
    box-shadow:0 2px 16px rgba(20,184,160,0.07);
    transition:transform .2s, box-shadow .2s;
    display:flex; flex-direction:column;
  }
  .news-card:hover { transform:translateY(-6px); box-shadow:0 12px 36px rgba(20,184,160,0.12); }

  .card-tag {
    display:inline-block; font-size:11px; font-weight:800;
    padding:4px 12px; border-radius:999px; margin-bottom:12px;
    align-self:flex-start;
  }
  .tag-nuevo { background:var(--yellow-light); color:#92400e; }
  .tag-update { background:var(--teal-pale); color:#0f766e; }
  .tag-mejora { background:#ede9fe; color:#7c3aed; }
  .tag-anuncio { background:var(--red-pale); color:var(--red); }
  .tag-servidor { background:#e0f2fe; color:#0369a1; }

  .card-date { font-size:11px; font-weight:700; color:#94a3b8; margin-bottom:8px; text-transform:uppercase; letter-spacing:.6px; }
  .card-title { font-family:'Fredoka One',sans-serif; font-size:20px; color:var(--text); margin-bottom:10px; line-height:1.3; }
  .card-body { font-size:14px; font-weight:600; color:var(--text-soft); line-height:1.6; flex:1; }

  /* SECTION DIVIDER */
  .news-section-label {
    font-family:'Fredoka One',sans-serif; font-size:22px; color:var(--text);
    margin:36px 0 16px; display:flex; align-items:center; gap:12px;
  }
  .news-section-label::after {
    content:''; flex:1; height:2px;
    background:linear-gradient(to right,rgba(20,184,160,0.2),transparent);
    border-radius:2px;
  }

  /* FOOTER */
  footer {
    background:var(--text); color:white; text-align:center;
    padding:40px; display:flex; flex-direction:column;
    align-items:center; gap:12px;
  }
  .footer-logo { font-family:'Fredoka One',sans-serif; font-size:28px; }
  .footer-logo .t { color:var(--teal-light); }
  .footer-logo .y { color:var(--yellow); }
  .footer-sub { font-size:13px; font-weight:700; color:rgba(255,255,255,0.4); }
  .footer-ip { background:rgba(255,255,255,0.07); border-radius:12px; padding:10px 20px; font-size:14px; font-weight:800; color:var(--teal-light); }

@keyframes fadeIn { from{opacity:0;transform:translateY(8px)} to{opacity:1;transform:translateY(0)} }
/* Shared page scope */
body.page-home nav { position: fixed; top: 0; left: 0; right: 0; }
body.page-news nav { position: sticky; top: 0; }
body.page-home footer { scroll-snap-align: start; min-height: 35vh; display: flex; flex-direction: column; align-items: center; justify-content: center; }
body.page-news footer { scroll-snap-align: none; min-height: auto; }
.nav-logo { text-decoration: none; }
.badge, .slider-btn, .dot, .modo-dot, .btn-copy, .filter-btn { font-family: inherit; }
.badge { border: 0; }
.dots .dot, .modo-dot, .slider-btn, .filter-btn, .badge, .btn-copy { touch-action: manipulation; }

/* Decorative positions moved out of inline HTML so CSP can stay strict. */
.blob-hero-a { width: 400px; height: 400px; background: #a7f3d0; top: -100px; right: -80px; }
.blob-hero-b { width: 300px; height: 300px; background: #fde68a; bottom: -60px; left: -60px; }
.blob-hero-c { width: 200px; height: 200px; background: #99f6e4; bottom: 100px; right: 80px; }
.blob-modos-a { width: 350px; height: 350px; background: #a7f3d0; top: -80px; left: -80px; }
.blob-jaiba-a { width: 350px; height: 350px; background: #fecaca; top: -80px; right: -60px; }
.blob-jaiba-b { width: 280px; height: 280px; background: #fed7aa; bottom: -60px; left: -40px; }
.blob-unirse-a { width: 320px; height: 320px; background: #a7f3d0; bottom: -80px; right: -60px; }
.blob-news-a { width: 350px; height: 350px; background: #a7f3d0; top: -80px; right: -60px; }
.blob-news-b { width: 280px; height: 280px; background: #fde68a; bottom: -60px; left: -40px; }
.unirse-inner { position: relative; z-index: 1; text-align: center; width: 100%; max-width: 760px; }
.section-sub-spaced { margin-bottom: 36px; }
.unirse-grid { margin: 0 auto; }
.platform-icon { font-size: 28px; line-height: 1; }
.platform-java { color: var(--teal); }
.platform-bedrock { color: var(--yellow); }
.footer-copy { margin-top: 4px; }
.clipboard-helper { position: fixed; opacity: 0; pointer-events: none; }
.is-filtered-in { animation: fadeIn .3s ease; }
.news-status {
  background: var(--white);
  border: 2px solid rgba(20,184,160,0.12);
  border-radius: 18px;
  color: var(--text-soft);
  font-size: 15px;
  font-weight: 800;
  padding: 24px;
  text-align: center;
}

.admin-shell {
  max-width: 1180px;
  margin: 0 auto;
  padding: 42px 40px 80px;
}

.page-admin section {
  scroll-snap-align: none;
  min-height: 0;
  display: block;
  align-items: initial;
  justify-content: initial;
  overflow: visible;
  padding: 0;
}

.admin-workspace {
  display: block;
}

.admin-panel {
  background: var(--white);
  border-radius: 24px;
  box-shadow: 0 6px 32px rgba(20,184,160,0.10);
  padding: 28px;
}

.admin-login-panel {
  display: grid;
  grid-template-columns: 1fr minmax(280px, 420px);
  gap: 28px;
  align-items: center;
}

.admin-kicker {
  color: var(--teal);
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 1.5px;
  text-transform: uppercase;
}

.admin-shell h1,
.admin-shell h2 {
  font-family: 'Fredoka One', sans-serif;
  line-height: 1.1;
}

.admin-shell h1 { font-size: 38px; margin-top: 6px; }
.admin-shell h2 { font-size: 24px; }
.admin-muted { color: var(--text-soft); font-size: 14px; font-weight: 700; line-height: 1.5; }

.admin-token-form,
.admin-form {
  display: grid;
  gap: 16px;
}

.admin-form-head {
  display: grid;
  gap: 6px;
}

.admin-grid {
  display: grid;
  grid-template-columns: minmax(340px, 430px) minmax(0, 1fr);
  gap: 22px;
  align-items: start;
}

.admin-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 22px;
}

.admin-toolbar-actions,
.admin-form-actions,
.admin-row-actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}

.admin-shell label {
  color: var(--text);
  display: grid;
  font-size: 13px;
  font-weight: 900;
  gap: 7px;
}

.admin-shell input,
.admin-shell textarea,
.admin-shell select {
  border: 2px solid rgba(20,184,160,0.16);
  border-radius: 14px;
  color: var(--text);
  font: inherit;
  font-weight: 700;
  padding: 11px 12px;
  width: 100%;
}

.admin-shell textarea { resize: vertical; }

.admin-shell input:focus,
.admin-shell textarea:focus,
.admin-shell select:focus {
  border-color: var(--teal);
  outline: none;
}

.admin-two-cols {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}

.admin-checks {
  align-content: end;
  display: grid;
  gap: 9px;
}

.admin-check {
  align-items: center;
  display: flex !important;
  gap: 9px !important;
}

.admin-check input {
  width: auto;
}

.admin-primary,
.admin-secondary,
.admin-danger {
  border: 0;
  border-radius: 14px;
  cursor: pointer;
  font: inherit;
  font-size: 14px;
  font-weight: 900;
  padding: 11px 16px;
}

.admin-primary { background: var(--teal); color: white; }
.admin-secondary { background: var(--teal-pale); color: #0f766e; }
.admin-danger { background: var(--red-pale); color: var(--red); }
.admin-primary:hover { background: #0d9488; }
.admin-secondary:hover { background: #99f6e4; }
.admin-danger:hover { background: #fecaca; }
.admin-wide { width: 100%; }
.admin-link-button { display: inline-flex; align-items: center; text-decoration: none; }
.admin-primary:disabled,
.admin-secondary:disabled,
.admin-danger:disabled {
  cursor: wait;
  opacity: 0.65;
}

.admin-banner {
  background: var(--teal-pale);
  border: 2px solid rgba(20,184,160,0.18);
  border-radius: 16px;
  color: #0f766e;
  font-size: 14px;
  font-weight: 900;
  margin-bottom: 18px;
  padding: 14px 16px;
}

.admin-banner.is-error {
  background: var(--red-pale);
  border-color: rgba(239,68,68,0.22);
  color: var(--red);
}

.admin-summary {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-bottom: 18px;
}

.admin-stat {
  background: var(--white);
  border: 2px solid rgba(20,184,160,0.10);
  border-radius: 18px;
  box-shadow: 0 2px 16px rgba(20,184,160,0.06);
  padding: 16px 18px;
}

.admin-stat span {
  color: var(--teal);
  display: block;
  font-size: 28px;
  font-weight: 900;
  line-height: 1;
}

.admin-stat small {
  color: #94a3b8;
  display: block;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .7px;
  margin-top: 6px;
  text-transform: uppercase;
}

.admin-message {
  color: var(--teal);
  font-size: 13px;
  font-weight: 900;
  min-height: 18px;
}

.admin-message.is-error { color: var(--red); }

.admin-list {
  display: grid;
  gap: 14px;
  margin-top: 18px;
}

.admin-news-row {
  border: 2px solid rgba(20,184,160,0.10);
  border-radius: 18px;
  display: grid;
  gap: 14px;
  padding: 18px;
}

.admin-news-row.is-hidden {
  opacity: .68;
}

.admin-news-row.is-visible {
  border-color: rgba(20,184,160,0.18);
}

.admin-row-meta {
  align-items: center;
  color: #94a3b8;
  display: flex;
  flex-wrap: wrap;
  font-size: 12px;
  font-weight: 900;
  gap: 8px;
  margin-bottom: 8px;
  text-transform: uppercase;
}

.admin-news-row h3 {
  color: var(--text);
  font-size: 18px;
  margin-bottom: 6px;
}

.admin-news-row p {
  color: var(--text-soft);
  font-size: 14px;
  font-weight: 700;
  line-height: 1.55;
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: 0.01ms !important; }
}

@media (max-width: 900px) {
  nav { padding: 12px 18px; gap: 12px; }
  .nav-links { max-width: 100%; overflow-x: auto; padding-bottom: 2px; scrollbar-width: none; }
  .nav-links::-webkit-scrollbar { display: none; }
  section { padding: 76px 22px 48px; }
  .hero-logo, .jail-title { font-size: clamp(42px, 12vw, 72px); }
  .section-title { font-size: clamp(32px, 8vw, 42px); }
  .unirse-grid, .featured { grid-template-columns: 1fr; }
  .featured-img { min-height: 180px; }
}

@media (max-width: 700px) {
  html { scroll-snap-type: none; }
  nav { align-items: flex-start; flex-direction: column; max-width: 100vw; overflow: hidden; }
  .nav-logo { font-size: 20px; }
  .nav-links { width: 100%; min-width: 0; }
  .nav-links a, .nav-back { white-space: nowrap; }
  .dots { display: none; }
  section { min-height: auto; overflow: hidden; padding: 96px 18px 46px; }
  #hero { min-height: 100svh; }
  .hero-sub, .jail-desc, .section-sub, .news-hero-sub { font-size: 14px; }
  .hero-badges, .jail-tags, .filters { gap: 8px; }
  .badge { font-size: 12px; padding: 7px 14px; }
  .ip-card { width: min(100%, 390px); align-items: stretch; flex-direction: column; gap: 14px; padding: 18px; }
  .ip-info .addr { font-size: clamp(16px, 5vw, 20px); overflow-wrap: anywhere; }
  .btn-copy { width: 100%; }
  .hero-stats { width: min(100%, 390px); display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 0 auto; }
  .stat-card { min-width: 0; padding: 12px 8px; }
  .stat-card .num { font-size: 22px; }
  #modos { padding: 78px 0 42px; }
  .modos-header { padding: 0 18px; }
  .modos-slider-wrap { align-items: stretch; }
  .slider-btn { width: 38px; height: 38px; margin: 96px 6px 0; }
  .modos-track-outer { overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
  .modos-track-outer::-webkit-scrollbar { display: none; }
  .modos-track { gap: 14px; padding: 16px 10px 24px; transform: none !important; }
  .modo-card { width: min(280px, calc(100vw - 92px)); scroll-snap-align: center; border-radius: 20px; padding: 30px 20px; }
  .modo-card.active-card { transform: none; }
  .jail-title { line-height: 1.05; }
  .jail-edition { font-size: 24px; }
  .jail-credit { align-items: center; padding: 18px; width: min(100%, 360px); }
  .unirse-card { border-radius: 20px; padding: 26px 20px; }
  .platform { align-items: flex-start; font-size: 20px; }
  .news-hero { padding: 44px 18px 36px; }
  .news-hero-title { font-size: clamp(34px, 10vw, 48px); }
  .filters { justify-content: flex-start; overflow-x: auto; flex-wrap: nowrap; padding: 22px 18px 0; scrollbar-width: none; }
  .filters::-webkit-scrollbar { display: none; }
  .news-container { padding: 24px 18px 58px; }
  .featured, .news-card { border-radius: 20px; }
  .featured { padding: 24px 20px; gap: 22px; }
  .featured-title { font-size: 24px; }
  .news-grid { grid-template-columns: 1fr; }
  .admin-shell { padding: 28px 18px 58px; }
  .admin-login-panel,
  .admin-grid { grid-template-columns: 1fr; }
  .admin-summary { grid-template-columns: 1fr; }
  .admin-toolbar { align-items: flex-start; flex-direction: column; }
  .admin-two-cols { grid-template-columns: 1fr; }
  footer { padding: 38px 18px; }
  .scroll-hint { display: none; }
  .blob { opacity: 0.18; filter: blur(82px); }
}

@media (max-width: 430px) {
  .hero-stats { grid-template-columns: 1fr; }
  .stat-card { display: flex; justify-content: space-between; align-items: center; text-align: left; }
  .stat-card .lbl { margin-top: 0; }
  .jail-credit { flex-direction: column; text-align: center; }
  .step-text { font-size: 13px; }
}
