:root {
  --rtr-red: #ff3048;
  --rtr-bg: #090c12;
  --rtr-panel: #151b25;
  --rtr-border: #303947;
}

body {
  background: var(--rtr-bg) !important;
  color: #e9edf5 !important;
}

.navbar {
  background: #0b1018 !important;
  border-bottom: 1px solid rgba(255,48,72,.35);
}

.navbar-brand {
  color: var(--rtr-red) !important;
  font-weight: 900 !important;
  letter-spacing: 2px;
}

.jumbotron {
  background: linear-gradient(135deg,#200d18,#101b2b) !important;
  border-bottom: 1px solid rgba(255,48,72,.25);
}

.jumbotron h1 {
  color: #fff !important;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 3px;
}

.challenge-button {
  background: var(--rtr-panel) !important;
  color: #e9edf5 !important;
  border: 1px solid var(--rtr-border) !important;
  border-radius: 12px !important;
  padding: 22px !important;
  min-width: 210px;
  box-shadow: 0 8px 28px rgba(0,0,0,.35);
  transition: transform .2s,border-color .2s,box-shadow .2s;
}

.challenge-button:hover {
  transform: translateY(-5px);
  border-color: var(--rtr-red) !important;
  box-shadow: 0 12px 30px rgba(255,48,72,.2);
}

.challenge-button .challenge-value {
  color: #ff6577 !important;
  font-weight: 800;
}

.card, .modal-content {
  background: #151b25 !important;
  color: #e9edf5 !important;
  border: 1px solid #303947 !important;
}

.btn-primary {
  background: #c91b35 !important;
  border-color: #c91b35 !important;
}

.btn-primary:hover {
  background: #ff3048 !important;
}

.form-control, input, textarea, select {
  background: #101620 !important;
  color: #fff !important;
  border-color: #394454 !important;
}

a { color: #ff6376; }

@media (max-width: 768px) {
  .challenge-button {
    min-width: 100%;
    margin-bottom: 12px;
  }
}

/* ===== RED TEAM RECON V2 ===== */

/* Expand challenge rows into full-width operations panels */
#challenges-board .row > [class*="col-"],
#challenges-board [class*="col-sm-6"],
#challenges-board [class*="col-md-4"],
#challenges-board [class*="col-lg-3"] {
    flex: 0 0 100% !important;
    max-width: 100% !important;
    width: 100% !important;
}

/* Base challenge card */
#challenges-board .challenge-button {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    width: 100% !important;
    min-height: 140px;
    padding: 28px 36px !important;
    text-align: left !important;
    border-radius: 14px !important;
    background: linear-gradient(110deg,#151b26,#0c111a) !important;
    border: 1px solid #ff3048 !important;
    box-shadow: inset 3px 0 #ff3048, 0 10px 35px rgba(0,0,0,.35);
}

#challenges-board .challenge-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    gap: 24px;
    margin: 0 !important;
}

#challenges-board .challenge-inner p {
    font-size: 24px;
    font-weight: 900;
    letter-spacing: 1px;
    text-transform: uppercase;
    margin: 0;
    color: #f5f7fc;
}

#challenges-board .challenge-inner span {
    font-size: 22px;
    font-weight: 900;
    color: #ff5368;
    white-space: nowrap;
}

#challenges-board .challenge-inner span::after {
    content: " PTS";
    font-size: 12px;
    letter-spacing: 2px;
}

/* Individual challenge accent colors */
#challenges-board .challenge-button[value="2"] {
    border-color: #ff3048 !important;
    box-shadow: inset 4px 0 #ff3048, 0 0 25px rgba(255,48,72,.08);
}

#challenges-board .challenge-button[value="3"] {
    border-color: #19aaff !important;
    box-shadow: inset 4px 0 #19aaff, 0 0 25px rgba(25,170,255,.08);
}

#challenges-board .challenge-button[value="4"] {
    border-color: #a855f7 !important;
    box-shadow: inset 4px 0 #a855f7, 0 0 25px rgba(168,85,247,.08);
}

#challenges-board .challenge-button[value="5"] {
    border-color: #17db91 !important;
    box-shadow: inset 4px 0 #17db91, 0 0 25px rgba(23,219,145,.08);
}

#challenges-board .challenge-button[value="1"] {
    border-color: #ffc04d !important;
    box-shadow: inset 4px 0 #ffc04d, 0 0 25px rgba(255,192,77,.08);
}

/* Solved challenge styling */
#challenges-board .challenge-button.challenge-solved {
    opacity: .72;
}

#challenges-board .challenge-button.challenge-solved::after {
    content: "✓ SOLVED";
    color: #19db91;
    font-weight: 900;
    letter-spacing: 2px;
}

/* Mobile */
@media (max-width: 768px) {
    #challenges-board .challenge-button {
        min-height: 110px;
        padding: 20px !important;
    }

    #challenges-board .challenge-inner p {
        font-size: 16px;
    }

    #challenges-board .challenge-inner span {
        font-size: 17px;
    }
}

/* ===== RED TEAM RECON WIDE CARD FIX ===== */

/* Expand Bootstrap columns containing challenge cards */
.row > [class*="col-"]:has(> .challenge-button) {
    flex: 0 0 100% !important;
    width: 100% !important;
    max-width: 100% !important;
}

/* Wide challenge panels */
.challenge-button {
    display: flex !important;
    align-items: center !important;
    width: 100% !important;
    min-height: 130px !important;
    padding: 26px 34px !important;
    text-align: left !important;
    border-radius: 12px !important;
    background: linear-gradient(110deg,#161d29,#0c1119) !important;
    border: 1px solid #ff3048 !important;
    box-shadow: inset 4px 0 #ff3048, 0 10px 30px rgba(0,0,0,.35);
}

.challenge-button .challenge-inner {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    width: 100% !important;
    gap: 20px;
    margin: 0 !important;
}

.challenge-button .challenge-inner p {
    font-size: 23px !important;
    font-weight: 800 !important;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin: 0 !important;
    color: #fff !important;
}

.challenge-button .challenge-inner span {
    font-size: 23px !important;
    font-weight: 900 !important;
    color: #ff5368 !important;
    white-space: nowrap;
}

.challenge-button .challenge-inner span::after {
    content: " PTS";
    font-size: 12px;
    letter-spacing: 1px;
}

/* Individual neon accents */
.challenge-button[value="2"] {
    border-color: #ff3048 !important;
    box-shadow: inset 4px 0 #ff3048, 0 0 25px rgba(255,48,72,.12);
}

.challenge-button[value="3"] {
    border-color: #19aaff !important;
    box-shadow: inset 4px 0 #19aaff, 0 0 25px rgba(25,170,255,.12);
}

.challenge-button[value="4"] {
    border-color: #a855f7 !important;
    box-shadow: inset 4px 0 #a855f7, 0 0 25px rgba(168,85,247,.12);
}

.challenge-button[value="5"] {
    border-color: #17db91 !important;
    box-shadow: inset 4px 0 #17db91, 0 0 25px rgba(23,219,145,.12);
}

.challenge-button[value="1"] {
    border-color: #ffc04d !important;
    box-shadow: inset 4px 0 #ffc04d, 0 0 25px rgba(255,192,77,.12);
}

@media (max-width: 768px) {
    .challenge-button {
        padding: 20px !important;
        min-height: 105px !important;
    }

    .challenge-button .challenge-inner p {
        font-size: 15px !important;
    }

    .challenge-button .challenge-inner span {
        font-size: 17px !important;
    }
}

/* RTRCTF_V4_START */

/* Tactical challenge header */
body:has(.challenge-button) .jumbotron {
    position: relative;
    overflow: hidden;
    padding: 65px 20px !important;
    background:
      radial-gradient(ellipse at 80% 30%,
        rgba(180,15,40,.22),transparent 55%),
      repeating-linear-gradient(90deg,
        transparent 0 49px,
        rgba(255,45,70,.025) 50px),
      linear-gradient(120deg,#080e18,#1b0b17,#080e18)
      !important;
}

body:has(.challenge-button) .jumbotron h1 {
    font-size: clamp(35px,5vw,64px);
    font-weight: 900;
    letter-spacing: 4px;
    text-shadow: 0 0 25px rgba(255,48,72,.35);
}

body:has(.challenge-button) .jumbotron h1::before {
    content: "RED TEAM RECON  /  OPERATIONS";
    display: block;
    margin-bottom: 14px;
    font-size: 12px;
    letter-spacing: 5px;
    color: #ff5067;
    text-shadow: none;
}

body:has(.challenge-button) .jumbotron h1::after {
    content: "EXPLOIT  •  DISCOVER  •  CAPTURE THE FLAG";
    display: block;
    margin-top: 15px;
    font-size: 12px;
    letter-spacing: 3px;
    color: #9faabb;
    text-shadow: none;
}

/* Improved operations panels */
.challenge-button {
    position: relative;
    overflow: hidden;
    min-height: 155px !important;
    padding-left: 125px !important;
    padding-right: 35px !important;
    transition:
      transform .2s ease,
      box-shadow .2s ease,
      border-color .2s ease !important;
}

.challenge-button:hover {
    transform: translateY(-3px);
    filter: brightness(1.12);
}

/* Mission icon */
.challenge-button::before {
    content: "⌘";
    position: absolute;
    left: 30px;
    top: 50%;
    transform: translateY(-50%);
    width: 65px;
    height: 65px;
    display: grid;
    place-items: center;
    font-size: 40px;
    font-weight: 700;
    color: var(--mission-color,#ff3048);
    border: 1px solid currentColor;
    border-radius: 14px;
    background: rgba(255,255,255,.025);
    text-shadow: 0 0 20px currentColor;
}

/* Challenge title and briefing */
.challenge-button .challenge-inner {
    position: relative;
}

.challenge-button .challenge-inner p {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 7px;
}

.challenge-button .challenge-inner p::after {
    content: var(--mission-brief,"Complete the mission and capture the flag.");
    font-size: 13px;
    font-weight: 400;
    letter-spacing: .2px;
    text-transform: none;
    color: #aab6c6;
    white-space: normal;
    line-height: 1.5;
    max-width: 550px;
}

/* Points badge */
.challenge-button .challenge-inner span {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 13px 20px;
    border: 1px solid var(--mission-color,#ff3048);
    border-radius: 10px;
    color: #fff !important;
    background: rgba(255,255,255,.035);
    box-shadow: 0 0 20px rgba(0,0,0,.3);
}

/* Mission colors, icons, and briefings */
.challenge-button[value="2"] {
    --mission-color: #ff3048;
    --mission-brief: "Investigate the vulnerable database and recover the hidden flag.";
}
.challenge-button[value="2"]::before { content: "▤"; }

.challenge-button[value="3"] {
    --mission-color: #19aaff;
    --mission-brief: "Find the command injection vulnerability and take control.";
}
.challenge-button[value="3"]::before { content: ">_"; font-size: 27px; }

.challenge-button[value="4"] {
    --mission-color: #b46aff;
    --mission-brief: "Exploit reflected input and uncover the secret flag.";
}
.challenge-button[value="4"]::before { content: "</>"; font-size: 25px; }

.challenge-button[value="5"] {
    --mission-color: #17db91;
    --mission-brief: "Explore restricted paths and retrieve the protected file.";
}
.challenge-button[value="5"]::before { content: "▱"; }

.challenge-button[value="1"] {
    --mission-color: #ffc04d;
    --mission-brief: "Follow the clues and uncover the hidden transmission.";
}
.challenge-button[value="1"]::before { content: "◎"; }

/* Completed challenges */
.challenge-button.challenge-solved {
    border-color: #17db91 !important;
    opacity: .85;
}

.challenge-button.challenge-solved .challenge-inner span {
    border-color: #17db91;
}

.challenge-button.challenge-solved::after {
    content: "✓ SOLVED";
    position: absolute;
    right: 25px;
    bottom: 12px;
    color: #17db91;
    font-size: 11px;
    font-weight: 900;
    letter-spacing: 2px;
}

/* Mobile responsiveness */
@media (max-width: 768px) {
    .challenge-button {
        min-height: 150px !important;
        padding: 20px 15px 20px 80px !important;
    }

    .challenge-button::before {
        left: 14px;
        width: 48px;
        height: 48px;
        font-size: 26px;
    }

    .challenge-button .challenge-inner {
        flex-wrap: wrap;
        gap: 10px;
    }

    .challenge-button .challenge-inner p {
        font-size: 16px !important;
    }

    .challenge-button .challenge-inner p::after {
        font-size: 11px;
    }

    .challenge-button .challenge-inner span {
        font-size: 16px !important;
        padding: 7px 12px;
    }
}

/* RTRCTF_V4_END */

/* ===== RTRCTF_V5_START ===== */

/* Navigation branding */
.navbar {
    min-height: 70px;
    box-shadow: 0 4px 25px rgba(0,0,0,.25);
}

.navbar .navbar-brand {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    font-size: 0;
    white-space: nowrap;
}

.navbar .navbar-brand::after {
    content: "RED TEAM RECON";
    font-size: 17px;
    font-weight: 900;
    letter-spacing: 1.4px;
    color: #f3f5fa;
    text-shadow: 0 0 16px rgba(255,48,72,.2);
}

/* Navigation links */
.navbar .nav-link {
    position: relative;
    transition: color .2s ease;
}

.navbar .nav-link:hover {
    color: #ff5368 !important;
}

.navbar .nav-link.active,
.navbar .nav-item.active .nav-link {
    color: #fff !important;
}

.navbar .nav-link.active::after,
.navbar .nav-item.active .nav-link::after {
    content: "";
    position: absolute;
    left: 12%;
    right: 12%;
    bottom: -10px;
    height: 3px;
    background: #ff3048;
    border-radius: 3px;
}

/* Compact challenge category spacing */
body:has(.challenge-button) .container {
    max-width: 1200px;
}

body:has(.challenge-button) .challenge-button {
    min-height: 125px !important;
}

body:has(.challenge-button) .challenge-button .challenge-inner p {
    line-height: 1.35;
}

/* Improved readability */
.challenge-button .challenge-inner p::after {
    font-size: 14px;
    color: #bac5d4;
}

.challenge-button .challenge-inner span {
    font-variant-numeric: tabular-nums;
}

/* Interactive hover and keyboard focus */
.challenge-button:hover,
.challenge-button:focus-visible {
    transform: translateY(-3px);
    filter: brightness(1.15);
    outline: 2px solid var(--mission-color,#ff3048);
    outline-offset: 3px;
}

/* Tablet */
@media (max-width: 992px) {
    .navbar .navbar-brand::after {
        font-size: 13px;
        letter-spacing: .5px;
    }

    body:has(.challenge-button) .container {
        max-width: 95%;
    }
}

/* Mobile */
@media (max-width: 768px) {
    .navbar {
        min-height: 60px;
    }

    .navbar .navbar-brand::after {
        font-size: 12px;
        letter-spacing: .3px;
    }

    body:has(.challenge-button) .jumbotron {
        padding: 35px 12px !important;
    }

    body:has(.challenge-button) .jumbotron h1 {
        font-size: 32px !important;
        letter-spacing: 1px;
    }

    body:has(.challenge-button) .jumbotron h1::before {
        font-size: 9px;
        letter-spacing: 2px;
    }

    body:has(.challenge-button) .jumbotron h1::after {
        font-size: 9px;
        letter-spacing: 1px;
    }

    body:has(.challenge-button) .challenge-button {
        min-height: 135px !important;
        padding: 18px 12px 18px 68px !important;
    }

    .challenge-button::before {
        left: 10px;
        width: 43px;
        height: 43px;
        font-size: 22px;
    }

    .challenge-button .challenge-inner {
        align-items: flex-start !important;
        flex-direction: column;
        gap: 12px;
    }

    .challenge-button .challenge-inner p {
        font-size: 15px !important;
    }

    .challenge-button .challenge-inner p::after {
        font-size: 11px;
    }

    .challenge-button .challenge-inner span {
        font-size: 15px !important;
        padding: 6px 12px;
    }
}

/* Very small screens */
@media (max-width: 400px) {
    .navbar .navbar-brand::after {
        font-size: 10px;
    }

    .challenge-button {
        padding-right: 10px !important;
    }

    .challenge-button .challenge-inner p {
        overflow-wrap: anywhere;
    }
}

/* ===== RTRCTF_V5_END ===== */

/* ===== RTRCTF_V6_START ===== */

/* Shared page atmosphere */
body {
    background:
      radial-gradient(ellipse at 50% 0%,
        rgba(170,20,48,.10),transparent 55%),
      #090c12 !important;
}

/* Homepage hero */
.jumbotron {
    background:
      radial-gradient(circle at 80% 25%,
        rgba(255,40,70,.16),transparent 45%),
      linear-gradient(125deg,#0a111c,#1b0b17,#0a111c)
      !important;
    border-bottom: 1px solid rgba(255,48,72,.3);
    padding-top: 65px;
    padding-bottom: 65px;
}

.jumbotron h1 {
    font-weight: 900;
    letter-spacing: 3px;
    text-transform: uppercase;
    text-shadow: 0 0 22px rgba(255,48,72,.2);
}

/* Homepage content panels */
.card {
    background: linear-gradient(145deg,#171e2a,#10151e) !important;
    border: 1px solid #343b49 !important;
    box-shadow: 0 10px 30px rgba(0,0,0,.25);
}

.card-header {
    background: rgba(255,48,72,.08) !important;
    border-bottom: 1px solid rgba(255,48,72,.25);
    color: #fff;
    font-weight: 800;
}

/* Scoreboard headings */
h1, h2, h3 {
    letter-spacing: .5px;
}

/* Leaderboard tables */
.table {
    color: #e9edf5 !important;
    border-color: #303947 !important;
}

.table thead th {
    background: #1c2431 !important;
    color: #ff6577 !important;
    text-transform: uppercase;
    font-size: 12px;
    letter-spacing: 1.5px;
    border-color: #3a4251 !important;
    padding: 17px 14px;
}

.table tbody tr {
    background: #111722 !important;
    transition: background .2s ease;
}

.table tbody tr:nth-child(even) {
    background: #171e2a !important;
}

.table tbody tr:hover {
    background: #26202c !important;
}

.table td {
    color: #e9edf5 !important;
    border-color: #303947 !important;
    padding: 15px 14px;
}

.table td a {
    color: #f2f5fa !important;
    font-weight: 700;
}

.table td a:hover {
    color: #ff5368 !important;
}

/* Score and rank highlights */
.table tbody tr:nth-child(1) td:first-child {
    color: #ffd166 !important;
    font-weight: 900;
}

.table tbody tr:nth-child(2) td:first-child {
    color: #bfcbdc !important;
    font-weight: 900;
}

.table tbody tr:nth-child(3) td:first-child {
    color: #e9a66b !important;
    font-weight: 900;
}

/* Buttons */
.btn {
    border-radius: 8px;
    font-weight: 700;
    transition: transform .2s ease, filter .2s ease;
}

.btn:hover {
    filter: brightness(1.12);
}

/* Homepage links */
main a:not(.btn):hover {
    text-decoration-color: #ff3048;
}

/* Responsive scoreboard */
@media (max-width: 768px) {
    .jumbotron {
        padding: 35px 12px;
    }

    .jumbotron h1 {
        font-size: 32px;
        letter-spacing: 1px;
    }

    .table {
        font-size: 12px;
    }

    .table thead th,
    .table td {
        padding: 10px 7px;
    }

    .card {
        margin-bottom: 15px;
    }
}

/* ===== RTRCTF_V6_END ===== */

/* ===== RTRCTF_V7_START ===== */

/* Subtle cyber grid across the site */
body {
  background-color: #080b12 !important;
  background-image:
    linear-gradient(rgba(255,55,80,.025) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,55,80,.025) 1px,transparent 1px),
    radial-gradient(ellipse at 50% 0%,rgba(145,20,45,.12),transparent 65%) !important;
  background-size: 48px 48px,48px 48px,100% 100% !important;
}

/* Homepage panels: only apply outside challenge and scoreboard pages */
body:not(:has(.challenge-button)):not(:has(.jumbotron)) main .card,
body:not(:has(.challenge-button)):not(:has(.jumbotron)) main
  [style*="border-radius"] {
  border: 1px solid rgba(255,72,100,.27) !important;
  box-shadow:
    0 8px 30px rgba(0,0,0,.28),
    0 0 18px rgba(255,48,72,.055);
  transition: border-color .25s ease,box-shadow .25s ease;
}

body:not(:has(.challenge-button)):not(:has(.jumbotron)) main .card:hover {
  border-color: rgba(255,72,100,.5) !important;
  box-shadow:
    0 12px 34px rgba(0,0,0,.35),
    0 0 25px rgba(255,48,72,.1);
}

/* Tactical typography */
main h1,
main h2 {
  letter-spacing: 1px;
}

main h2 {
  text-shadow: 0 0 18px rgba(255,65,90,.12);
}

/* Homepage call-to-action buttons */
main a.btn,
main button.btn:not(.challenge-button) {
  transition: transform .2s ease,box-shadow .2s ease,filter .2s ease;
}

main a.btn:hover,
main button.btn:not(.challenge-button):hover {
  transform: translateY(-2px);
  box-shadow: 0 0 20px rgba(255,50,80,.22);
}

/* Scoreboard empty state — adds a decorative message,
   preserves CTFd's original "Scoreboard is empty" text */
body:has(.jumbotron) main .container:has(> h3):not(:has(.challenge-button)) {
  text-align: center;
}

/* Generic scoreboard empty-state enhancement for CTFd */
body:has(.jumbotron) main h3 {
  color: #d9e0ee;
}

/* Scoreboard table when players begin earning points */
.table-responsive {
  border: 1px solid rgba(255,65,90,.25);
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 0 30px rgba(255,48,72,.06);
}

.table tbody tr:first-child {
  box-shadow: inset 4px 0 0 #ffd166;
}

/* Improve focus visibility */
a:focus-visible,
button:focus-visible {
  outline: 2px solid #ff526b;
  outline-offset: 3px;
}

/* Reduced motion accessibility */
@media (prefers-reduced-motion: reduce) {
  .card,
  .btn,
  .challenge-button {
    transition: none !important;
  }
}

/* Mobile refinements */
@media (max-width: 768px) {
  main h1 {
    letter-spacing: .5px;
  }

  main h2 {
    font-size: 25px;
  }

  main .card {
    border-radius: 10px;
  }
}

/* ===== RTRCTF_V7_END ===== */

/* ===== RTRCTF_V8_START ===== */

/* Scoreboard standby panel.
   CSS :has() ensures it appears only while CTFd
   displays its empty-scoreboard heading. */

body:has(.jumbotron) main:has(h3)
  .container:has(h3):not(:has(table)) {
  text-align: center;
}

/* Empty-state styling */
body:has(.jumbotron) main h3 {
  color: #e8edf7 !important;
  font-size: 20px;
  font-weight: 500;
}

/* ===== RTRCTF_V8_END ===== */

/* ===== RTRCTF_V8_FINAL ===== */

/* Target the actual CTFd empty scoreboard element */
#scoreboard > .col-md-12[x-show="! standings.length"] {
    max-width: 760px;
    margin: 42px auto 70px;
    padding: 48px 24px;
    border: 1px solid rgba(255,65,90,.65);
    border-radius: 18px;
    background:
      radial-gradient(circle at 50% 0%,
        rgba(255,48,72,.14),transparent 65%),
      linear-gradient(145deg,#151d2b,#0d121d);
    box-shadow:
      0 0 35px rgba(255,48,72,.11),
      inset 0 0 30px rgba(255,48,72,.025);
    text-align: center;
}

/* Shield icon */
#scoreboard > .col-md-12[x-show="! standings.length"]::before {
    content: "⬡";
    display: block;
    margin-bottom: 14px;
    color: #ff4965;
    font-size: 58px;
    line-height: 1;
    text-shadow: 0 0 25px rgba(255,48,72,.55);
}

/* Status label */
#scoreboard > .col-md-12[x-show="! standings.length"] h3::before {
    content: "RED TEAM RECON // LEADERBOARD STATUS";
    display: block;
    margin-bottom: 17px;
    color: #ff6179;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 2px;
}

/* Replace only the visible presentation of the empty-state heading */
#scoreboard > .col-md-12[x-show="! standings.length"] h3 {
    font-size: 0 !important;
    margin: 0;
}

#scoreboard > .col-md-12[x-show="! standings.length"] h3::after {
    content: "AWAITING FIRST OPERATIVE";
    display: block;
    color: #f4f6fb;
    font-size: clamp(20px,4vw,32px);
    font-weight: 900;
    letter-spacing: 1.5px;
    line-height: 1.3;
}

/* Supporting description */
#scoreboard > .col-md-12[x-show="! standings.length"]::after {
    content: "No flags captured yet. The leaderboard activates when competitors begin scoring.  •  STATUS: STANDBY";
    display: block;
    max-width: 510px;
    margin: 20px auto 0;
    color: #b8c4d5;
    font-size: 14px;
    line-height: 1.8;
}

@media (max-width: 600px) {
    #scoreboard > .col-md-12[x-show="! standings.length"] {
        margin: 24px 10px 45px;
        padding: 34px 16px;
    }
}

/* ===== END RTRCTF_V8_FINAL ===== */

/* ===== RTRCTF_V9_HEADER ===== */

/* Scoreboard only: works with empty and live rankings */
body:has(#scoreboard) .jumbotron {
    padding: 48px 15px 55px !important;
    background:
      radial-gradient(ellipse at 50% 10%,
        rgba(255,48,72,.19),transparent 65%),
      linear-gradient(120deg,#0c101a,#300f1e,#0c101a)
      !important;
    border-bottom: 1px solid rgba(255,48,72,.4);
    text-align: center;
}

body:has(#scoreboard) .jumbotron h1 {
    font-size: 0 !important;
    margin: 0;
    line-height: 1.25;
}

body:has(#scoreboard) .jumbotron h1::before {
    content: "RED TEAM RECON / OPERATIONS";
    display: block;
    margin-bottom: 12px;
    color: #ff536c;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 4px;
}

body:has(#scoreboard) .jumbotron h1::after {
    content: "LEADERBOARD";
    display: block;
    color: #fff;
    font-size: clamp(38px,5vw,56px);
    font-weight: 900;
    letter-spacing: 2px;
    text-shadow: 0 0 24px rgba(255,48,72,.22);
}

/* Subtitle under the title */
body:has(#scoreboard) .jumbotron .container::after {
    content: "OPERATIVE RANKINGS • LIVE SCORE TRACKING";
    display: block;
    margin-top: 12px;
    color: #b9c4dc;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 2px;
}

@media (max-width: 600px) {
    body:has(#scoreboard) .jumbotron h1::before {
        font-size: 9px;
        letter-spacing: 2px;
    }

    body:has(#scoreboard) .jumbotron .container::after {
        font-size: 9px;
        letter-spacing: 1px;
    }
}

/* ===== END RTRCTF_V9_HEADER ===== */

/* ===== RTRCTF_V10_GRAPH ===== */

/* Scoreboard graph readability */
body:has(#scoreboard) #score-graph {
    padding: 18px 12px 8px;
    border-radius: 14px;
}

/* Improve overall contrast of ECharts canvas */
body:has(#scoreboard) #score-graph canvas {
    filter: brightness(1.4) contrast(1.08);
}

/* Keep the graph responsive */
body:has(#scoreboard) #score-graph canvas,
body:has(#scoreboard) #score-graph svg {
    max-width: 100%;
}

/* ===== END RTRCTF_V10_GRAPH ===== */

/* ===== RTRCTF_FRONTPAGE_V11 ===== */

/* Homepage only: identifies the existing welcome content */
main:has(> .container > div > div > h1)
  > .container > div {
    max-width: 1100px !important;
}

/* Hero / command center */
main:has(> .container > div > div > h1)
  > .container > div > div:first-child {
    position: relative;
    overflow: hidden;
    background:
      radial-gradient(circle at 50% 35%,
        rgba(0,215,255,.13),transparent 38%),
      linear-gradient(135deg,#111a2a,#25101e,#0d1420)
      !important;
    border: 1px solid rgba(255,65,90,.55);
    border-radius: 18px !important;
    box-shadow: 0 0 38px rgba(255,48,72,.12);
    padding: 55px 30px !important;
}

/* Hero heading */
main:has(> .container > div > div > h1)
  > .container > div > div:first-child h1 {
    color: #fff !important;
    font-size: clamp(34px,5vw,56px) !important;
    font-weight: 900;
    letter-spacing: 3px;
    text-shadow: 0 0 26px rgba(255,48,72,.45);
}

/* Club subtitle */
main:has(> .container > div > div > h1)
  > .container > div > div:first-child h3 {
    color: #9eeeff !important;
    letter-spacing: 1px;
}

/* Logo */
main:has(> .container > div > div > h1)
  > .container > div > div:first-child img {
    border: 1px solid rgba(0,220,255,.55);
    box-shadow:
      0 0 28px rgba(0,220,255,.2),
      0 0 45px rgba(255,48,72,.12);
    transition: transform .3s ease;
}

main:has(> .container > div > div > h1)
  > .container > div > div:first-child img:hover {
    transform: scale(1.04);
}

/* Content panels */
main:has(> .container > div > div > h1)
  > .container > div > div:not(:first-child) {
    border: 1px solid rgba(255,65,90,.27);
    box-shadow: 0 8px 30px rgba(0,0,0,.24);
}

/* Section headings */
main:has(> .container > div > div > h1)
  > .container > div > div h2 {
    font-weight: 800;
    letter-spacing: .6px;
}

/* Homepage action links */
main:has(> .container > div > div > h1)
  > .container > div a[style*="display:inline-block"] {
    transition:
      transform .2s ease,
      box-shadow .2s ease,
      filter .2s ease;
}

main:has(> .container > div > div > h1)
  > .container > div a[style*="display:inline-block"]:hover {
    transform: translateY(-3px);
    filter: brightness(1.13);
    box-shadow: 0 0 22px rgba(255,48,72,.28);
}

/* Better text spacing */
main:has(> .container > div > div > h1)
  > .container > div p {
    line-height: 1.75;
}

/* Mobile */
@media (max-width: 768px) {
  main:has(> .container > div > div > h1)
    > .container > div > div:first-child {
      padding: 35px 16px !important;
    }

  main:has(> .container > div > div > h1)
    > .container > div > div:first-child h1 {
      letter-spacing: 1px;
    }
}

/* ===== END RTRCTF_FRONTPAGE_V11 ===== */

/* ===== RTRCTF_FRONTPAGE_V12_START ===== */

/* Scope every change to the existing homepage structure */
main:has(> .container > div > div > h1)
  > .container > div {
  max-width: 1100px !important;
}

/* Cyberpunk hero */
main:has(> .container > div > div > h1)
  > .container > div > div:first-child {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: 42px 26px !important;
  background:
    radial-gradient(ellipse at 50% 40%,
      rgba(0,220,255,.12),transparent 45%),
    radial-gradient(ellipse at 50% 0%,
      rgba(255,45,80,.17),transparent 65%),
    linear-gradient(135deg,#0c1422,#25101f,#0b111d)
    !important;
  border: 1px solid rgba(255,60,90,.65) !important;
  box-shadow:
    0 0 45px rgba(255,45,80,.12),
    inset 0 0 50px rgba(255,45,80,.035);
}

/* Decorative scanline overlay, without blocking clicks */
main:has(> .container > div > div > h1)
  > .container > div > div:first-child::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  opacity: .2;
  background: repeating-linear-gradient(
    0deg,
    transparent 0px,
    transparent 5px,
    rgba(0,220,255,.09) 6px
  );
}

/* Tactical hero label */
main:has(> .container > div > div > h1)
  > .container > div > div:first-child::after {
  content: "ECPI ETHICAL HACKER CLUB // COMMAND CENTER";
  display: block;
  margin-top: 24px;
  color: #ff637a;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 2px;
}

/* Main title */
main:has(> .container > div > div > h1)
  > .container > div > div:first-child h1 {
  font-size: clamp(32px,5vw,54px) !important;
  letter-spacing: 3px;
  color: #fff !important;
  text-shadow:
    0 0 22px rgba(255,55,85,.4),
    0 0 45px rgba(255,55,85,.12);
}

/* Club name */
main:has(> .container > div > div > h1)
  > .container > div > div:first-child h3 {
  color: #8cecff !important;
  font-weight: 600;
}

/* Logo treatment */
main:has(> .container > div > div > h1)
  > .container > div > div:first-child img {
  max-width: 190px !important;
  border: 1px solid rgba(0,225,255,.7);
  border-radius: 12px;
  box-shadow:
    0 0 25px rgba(0,220,255,.2),
    0 0 42px rgba(255,48,72,.12);
}

/* Mission panels */
main:has(> .container > div > div > h1)
  > .container > div > div:not(:first-child) {
  position: relative;
  background: linear-gradient(
    145deg,#1a2434,#111824
  ) !important;
  border: 1px solid rgba(255,65,90,.3) !important;
  box-shadow: 0 12px 32px rgba(0,0,0,.24);
  transition:
    border-color .25s ease,
    box-shadow .25s ease;
}

main:has(> .container > div > div > h1)
  > .container > div > div:not(:first-child):hover {
  border-color: rgba(255,65,90,.6) !important;
  box-shadow:
    0 14px 35px rgba(0,0,0,.3),
    0 0 25px rgba(255,48,72,.08);
}

/* Section labels: attached to existing headings */
main:has(> .container > div > div > h1)
  > .container > div > div h2::before {
  display: block;
  margin-bottom: 8px;
  color: #8cecff;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 2px;
}

/* About */
main:has(> .container > div > div > h1)
  > .container > div > div:nth-child(2) h2::before {
  content: "01 // MISSION INTELLIGENCE";
}

/* How to Play */
main:has(> .container > div > div > h1)
  > .container > div > div:nth-child(3) h2::before {
  content: "02 // OPERATIVE BRIEFING";
}

/* Discord */
main:has(> .container > div > div > h1)
  > .container > div > div:nth-child(4) h2::before {
  content: "03 // COMMUNICATIONS";
}

/* Rules */
main:has(> .container > div > div > h1)
  > .container > div > div:nth-child(5) h2::before {
  content: "04 // RULES OF ENGAGEMENT";
}

/* Legal disclaimer */
main:has(> .container > div > div > h1)
  > .container > div > div:nth-child(6) h2::before {
  content: "05 // AUTHORIZATION PROTOCOL";
}

/* Final call to action */
main:has(> .container > div > div > h1)
  > .container > div > div:nth-child(7) h2::before {
  content: "06 // DEPLOYMENT";
}

/* Keep Discord's distinct identity */
main:has(> .container > div > div > h1)
  > .container > div > div:nth-child(4) {
  background: linear-gradient(
    135deg,#202344,#171b32
  ) !important;
  border-color: rgba(130,145,255,.45) !important;
}

/* Keep the legal warning visually distinct */
main:has(> .container > div > div > h1)
  > .container > div > div:nth-child(6) {
  border-color: rgba(255,85,85,.6) !important;
}

/* Better CTA hover */
main:has(> .container > div > div > h1)
  > .container > div a[style*="display:inline-block"]:hover {
  transform: translateY(-3px);
  filter: brightness(1.16);
  box-shadow: 0 0 24px rgba(255,48,72,.24);
}

/* Mobile optimization */
@media (max-width: 768px) {
  main:has(> .container > div > div > h1)
    > .container > div > div:first-child {
    padding: 32px 16px !important;
  }

  main:has(> .container > div > div > h1)
    > .container > div > div:first-child h1 {
    font-size: clamp(29px,8vw,42px) !important;
    letter-spacing: 1px;
  }

  main:has(> .container > div > div > h1)
    > .container > div > div:first-child img {
    max-width: 150px !important;
  }

  main:has(> .container > div > div > h1)
    > .container > div > div:not(:first-child) {
    padding: 22px 18px !important;
  }

  main:has(> .container > div > div > h1)
    > .container > div > div:first-child::after {
    font-size: 9px;
    letter-spacing: 1px;
  }
}

@media (prefers-reduced-motion: reduce) {
  main:has(> .container > div > div > h1)
    > .container > div > div {
    transition: none !important;
  }
}

/* ===== RTRCTF_FRONTPAGE_V12_END ===== */

/* RTRCTF V13 — OPERATIVE DIRECTORY */
/* Scoped to the CTFd Users directory only */
body:has(main form #field[name="field"]) main .jumbotron {
  position: relative;
  padding: 65px 20px 85px;
  text-align: center;
  background: radial-gradient(ellipse at 50% 10%, #48101f 0%, #1b101c 55%, #0b101a 100%);
  border-bottom: 1px solid #e63950;
}

body:has(main form #field[name="field"]) main .jumbotron .container::before {
  content: "RED TEAM RECON / OPERATIONS";
  display: block;
  color: #ff405d;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 4px;
  margin-bottom: 18px;
}

body:has(main form #field[name="field"]) main .jumbotron h1 {
  font-size: clamp(36px, 6vw, 66px);
  font-weight: 800;
  letter-spacing: 2px;
  color: #fff;
  text-transform: uppercase;
  text-shadow: 0 0 25px #ff335544;
  margin: 0;
  font-size: 0;
}

body:has(main form #field[name="field"]) main .jumbotron h1::after {
  content: "OPERATIVE DIRECTORY";
  font-size: clamp(34px, 5vw, 62px);
}

body:has(main form #field[name="field"]) main .jumbotron .container::after {
  content: "REGISTERED OPERATIVES • PLAYER PROFILES";
  display: block;
  color: #91dfff;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 2px;
  margin-top: 18px;
}

body:has(main form #field[name="field"]) main > .container {
  padding-top: 38px;
  padding-bottom: 60px;
}

body:has(main form #field[name="field"]) main form.row {
  background: #121d2d;
  border: 1px solid #693044;
  border-radius: 12px;
  padding: 22px 16px 6px;
  box-shadow: 0 0 28px #ff335511;
}

body:has(main form #field[name="field"]) main form .form-select,
body:has(main form #field[name="field"]) main form .form-control {
  background: #090f1c;
  border: 1px solid #435269;
  color: #f5f8ff;
  min-height: 45px;
}

body:has(main form #field[name="field"]) main form .form-control::placeholder {
  color: #9aa8ba;
}

body:has(main form #field[name="field"]) main form .btn-primary {
  background: #e52238;
  border-color: #ff5368;
  min-height: 45px;
  font-weight: 800;
}

body:has(main form #field[name="field"]) main form .btn-primary:hover {
  background: #ff4058;
  box-shadow: 0 0 20px #ff405855;
}

body:has(main form #field[name="field"]) main .table {
  border: 1px solid #733044;
  border-radius: 10px;
  overflow: hidden;
  color: #edf5ff;
}

body:has(main form #field[name="field"]) main .table thead th {
  background: #1b2637;
  color: #ff5269;
  padding: 19px 22px;
  text-transform: uppercase;
  letter-spacing: 1.5px;
  font-size: 12px;
  border-bottom: 1px solid #773449;
}

body:has(main form #field[name="field"]) main .table tbody td {
  background: #101927;
  color: #dbe7f6;
  padding: 19px 22px;
  border-bottom: 1px solid #293649;
}

body:has(main form #field[name="field"]) main .table tbody tr:nth-child(even) td {
  background: #162235;
}

body:has(main form #field[name="field"]) main .table tbody tr:hover td {
  background: #302034;
}

body:has(main form #field[name="field"]) main .table tbody td:first-child a {
  color: #7eeaff;
  font-weight: 800;
  text-decoration: none;
}

body:has(main form #field[name="field"]) main .table tbody td:first-child a:hover {
  color: #fff;
  text-shadow: 0 0 12px #65dfff;
}

@media (max-width: 767px) {
  body:has(main form #field[name="field"]) main .jumbotron {
    padding: 50px 12px 65px;
  }
  body:has(main form #field[name="field"]) main .table thead th,
  body:has(main form #field[name="field"]) main .table tbody td {
    padding: 14px 10px;
  }
}

/* ==================================================
   RED TEAM RECON — V14 OPERATIVE DOSSIER
   Scoped to public player profile pages only
   ================================================== */

body:has(script[src*="users_public"]) main .jumbotron {
    position: relative;
    overflow: hidden;
    padding: 75px 20px 65px !important;
    background:
        radial-gradient(ellipse at 50% 0%, rgba(220,25,67,.24), transparent 65%),
        linear-gradient(120deg,#0b101d,#1b101c 55%,#0b101d) !important;
    border-bottom: 1px solid #f52d59;
    text-align: center;
}

body:has(script[src*="users_public"]) main .jumbotron .container::before {
    content: "RED TEAM RECON / OPERATIVE INTELLIGENCE";
    display: block;
    margin-bottom: 20px;
    color: #ff426b;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 4px;
}

body:has(script[src*="users_public"]) main .jumbotron h1 {
    color: #fff !important;
    font-size: clamp(38px,5vw,65px) !important;
    font-weight: 800;
    letter-spacing: 2px;
    text-transform: uppercase;
    text-shadow: 0 0 32px rgba(255,48,91,.35);
    overflow-wrap: anywhere;
}

body:has(script[src*="users_public"]) main .jumbotron .container::after {
    content: "OPERATIVE DOSSIER  •  PLAYER INTELLIGENCE";
    display: block;
    margin-top: 20px;
    color: #75dfff;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 2px;
}

body:has(script[src*="users_public"]) main > .container {
    padding-top: 45px;
}

body:has(script[src*="users_public"]) main .row.min-vh-25 {
    position: relative;
    min-height: 260px !important;
    max-width: 780px;
    margin: 15px auto 45px;
    padding: 65px 25px 40px;
    border: 1px solid rgba(255,52,98,.6);
    border-radius: 16px;
    background:
        radial-gradient(circle at 50% 0%,rgba(255,40,85,.10),transparent 65%),
        linear-gradient(135deg,#141e30,#0c111d);
    box-shadow: 0 0 35px rgba(255,32,81,.06);
}

body:has(script[src*="users_public"]) main .row.min-vh-25::before {
    content: "◇  MISSION HISTORY / INTELLIGENCE ARCHIVE";
    position: absolute;
    top: 25px;
    left: 0;
    width: 100%;
    text-align: center;
    color: #70dcff;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 2px;
}

body:has(script[src*="users_public"]) main .row.min-vh-25 h3 {
    opacity: 1 !important;
    color: #ff5578 !important;
    font-size: clamp(21px,3vw,30px);
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 2px;
}

body:has(script[src*="users_public"]) main .row.min-vh-25 h3::after {
    content: "NO INTEL RECOVERED  /  AWAITING FIRST FLAG";
    display: block;
    margin-top: 15px;
    color: #9ac4db;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 1.5px;
}

@media(max-width:600px) {
    body:has(script[src*="users_public"]) main .jumbotron {
        padding: 55px 12px 45px !important;
    }

    body:has(script[src*="users_public"]) main .jumbotron .container::before {
        letter-spacing: 2px;
    }

    body:has(script[src*="users_public"]) main .row.min-vh-25 {
        margin: 10px 8px 30px;
    }
}

/* END V14 OPERATIVE DOSSIER */

/* ===== RTRCTF_V15_AUTH_START ===== */

/* Only CTFd login and registration pages */
body:has(main form[action*="/login"]) main .jumbotron,
body:has(main form[action*="/register"]) main .jumbotron {
  padding: 55px 15px 65px !important;
  text-align: center;
  background:
    radial-gradient(ellipse at 50% 0%,
      rgba(255,45,85,.22),transparent 65%),
    linear-gradient(120deg,#0b101b,#2a1020,#0b101b)
    !important;
  border-bottom: 1px solid rgba(255,55,85,.65);
}

body:has(main form[action*="/login"]) main .jumbotron .container::before,
body:has(main form[action*="/register"]) main .jumbotron .container::before {
  content: "RED TEAM RECON / AUTHENTICATION";
  display: block;
  color: #ff536c;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 3px;
  margin-bottom: 14px;
}

body:has(main form[action*="/login"]) main .jumbotron h1,
body:has(main form[action*="/register"]) main .jumbotron h1 {
  font-size: 0 !important;
  margin: 0;
}

body:has(main form[action*="/login"]) main .jumbotron h1::after {
  content: "SECURE LOGIN";
  display: block;
  color: #fff;
  font-size: clamp(36px,5vw,56px);
  font-weight: 900;
  letter-spacing: 2px;
}

body:has(main form[action*="/register"]) main .jumbotron h1::after {
  content: "OPERATIVE ENROLLMENT";
  display: block;
  color: #fff;
  font-size: clamp(32px,5vw,54px);
  font-weight: 900;
  letter-spacing: 2px;
}

body:has(main form[action*="/login"]) main .jumbotron .container::after,
body:has(main form[action*="/register"]) main .jumbotron .container::after {
  content: "SECURE ACCESS TERMINAL • IDENTITY VERIFICATION";
  display: block;
  margin-top: 15px;
  color: #8cecff;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 2px;
}

/* Authentication form panel */
body:has(main form[action*="/login"]) main form[action*="/login"],
body:has(main form[action*="/register"]) main form[action*="/register"] {
  max-width: 580px;
  margin: 42px auto 55px;
  padding: 35px 32px;
  background:
    radial-gradient(circle at 50% 0%,
      rgba(255,50,85,.08),transparent 65%),
    linear-gradient(145deg,#172235,#0d1421);
  border: 1px solid rgba(255,65,95,.55);
  border-radius: 16px;
  box-shadow: 0 0 35px rgba(255,45,85,.09);
}

/* Input labels */
body:has(main form[action*="/login"]) main form label,
body:has(main form[action*="/register"]) main form label {
  color: #9feaff !important;
  font-weight: 700;
  letter-spacing: .5px;
}

/* Input fields */
body:has(main form[action*="/login"]) main form input,
body:has(main form[action*="/register"]) main form input {
  background-color: #0a111d;
  border: 1px solid #42546b;
  color: #fff;
  min-height: 45px;
}

body:has(main form[action*="/login"]) main form input:focus,
body:has(main form[action*="/register"]) main form input:focus {
  border-color: #7ae7ff;
  box-shadow: 0 0 0 3px rgba(0,220,255,.12);
}

/* Buttons */
body:has(main form[action*="/login"]) main form button[type="submit"],
body:has(main form[action*="/register"]) main form button[type="submit"] {
  background: #e5223e;
  border: 1px solid #ff526b;
  color: white;
  font-weight: 800;
  min-height: 46px;
  box-shadow: 0 0 18px rgba(255,48,85,.16);
}

body:has(main form[action*="/login"]) main form button[type="submit"]:hover,
body:has(main form[action*="/register"]) main form button[type="submit"]:hover {
  background: #ff405a;
  box-shadow: 0 0 25px rgba(255,48,85,.35);
}

/* Links */
body:has(main form[action*="/login"]) main form a,
body:has(main form[action*="/register"]) main form a {
  color: #82e5ff;
}

@media(max-width:600px) {
  body:has(main form[action*="/login"]) main form[action*="/login"],
  body:has(main form[action*="/register"]) main form[action*="/register"] {
    margin: 25px 12px;
    padding: 25px 18px;
  }
}

/* ===== RTRCTF_V15_AUTH_END ===== */

/* ===== RED TEAM RECON V15.1 AUTH FIX ===== */
/* Match CTFd authentication pages by their form fields,
   without depending on form action attributes. */

body:has(main input[name="password"]):has(main input[name="name"]) main .jumbotron,
body:has(main input[name="password"]):has(main input[name="email"]) main .jumbotron {
  padding: 58px 16px 65px !important;
  text-align: center;
  background:
    radial-gradient(ellipse at 50% 0%,rgba(255,40,80,.23),transparent 70%),
    linear-gradient(120deg,#0b101b,#2a1020,#0b101b) !important;
  border-bottom: 1px solid #ff3659;
}

body:has(main input[name="password"]):has(main input[name="name"]) main .jumbotron .container::before,
body:has(main input[name="password"]):has(main input[name="email"]) main .jumbotron .container::before {
  content: "RED TEAM RECON / AUTHENTICATION";
  display: block;
  margin-bottom: 18px;
  color: #ff536c;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 3px;
}

body:has(main input[name="password"]):has(main input[name="name"]) main .jumbotron h1,
body:has(main input[name="password"]):has(main input[name="email"]) main .jumbotron h1 {
  font-size: 0 !important;
  margin: 0;
}

body:has(main input[name="password"]):has(main input[name="name"]) main .jumbotron h1::after {
  content: "SECURE LOGIN";
  display: block;
  font-size: clamp(34px,5vw,58px);
  font-weight: 800;
  color: white;
}

body:has(main input[name="password"]):has(main input[name="email"]) main .jumbotron h1::after {
  content: "OPERATIVE ENROLLMENT";
  display: block;
  font-size: clamp(32px,5vw,56px);
  font-weight: 800;
  color: white;
}

body:has(main input[name="password"]):has(main input[name="name"]) main .jumbotron .container::after,
body:has(main input[name="password"]):has(main input[name="email"]) main .jumbotron .container::after {
  content: "SECURE ACCESS TERMINAL • IDENTITY VERIFICATION";
  display: block;
  margin-top: 17px;
  color: #8cecff;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 2px;
}

body:has(main input[name="password"]):has(main input[name="name"]) main form,
body:has(main input[name="password"]):has(main input[name="email"]) main form {
  max-width: 660px;
  margin: 35px auto 50px;
  padding: 32px;
  border: 1px solid rgba(255,65,95,.55);
  border-radius: 15px;
  background: linear-gradient(145deg,#172235,#0d1421);
  box-shadow: 0 0 35px rgba(255,45,85,.1);
}

body:has(main input[name="password"]):has(main input[name="name"]) main form label,
body:has(main input[name="password"]):has(main input[name="email"]) main form label {
  color: #8cecff !important;
  font-weight: 700;
}

body:has(main input[name="password"]):has(main input[name="name"]) main form input,
body:has(main input[name="password"]):has(main input[name="email"]) main form input {
  background: #0b1220;
  border: 1px solid #42546b;
  color: #fff;
  min-height: 45px;
}

body:has(main input[name="password"]):has(main input[name="name"]) main form input:focus,
body:has(main input[name="password"]):has(main input[name="email"]) main form input:focus {
  border-color: #8cecff;
  box-shadow: 0 0 0 3px rgba(0,220,255,.12);
}

body:has(main input[name="password"]):has(main input[name="name"]) main form button[type="submit"],
body:has(main input[name="password"]):has(main input[name="email"]) main form button[type="submit"] {
  background: #e5223e;
  border: 1px solid #ff526b;
  color: white;
  font-weight: 800;
  min-height: 46px;
}

@media(max-width:600px) {
  body:has(main input[name="password"]):has(main input[name="name"]) main form,
  body:has(main input[name="password"]):has(main input[name="email"]) main form {
    margin: 22px 10px;
    padding: 22px 16px;
  }
}

/* ===== END V15.1 ===== */
