
:root {
  --nav-h: 58px;
  --sidebar-w: 230px;
  --r: 12px;
  --r-sm: 8px;
  --r-xs: 6px;
  --ease: 0.22s ease;
  --font: 'Inter', system-ui, -apple-system, sans-serif;
  --mono: 'JetBrains Mono', 'Fira Code', monospace;
  --brand: 'Space Grotesk', 'Inter', system-ui, sans-serif;
  --logo:  'Orbitron', 'Space Grotesk', sans-serif;
}

[data-theme="dark"] {
  color-scheme: dark;
  --bg:      #0a0e14;
  --bg2:     #0e131b;
  --card:    #121823;
  --glass:   rgba(30,155,255,0.04);
  --b:       rgba(255,255,255,0.08);
  --bhi:     rgba(30,155,255,0.45);
  --t1:      #d8dee9;
  --t2:      #a0abbd;
  --t3:      #8793a6;
  --a:       #1e9bff;
  --ab:      #6cc8ff;
  --ar:      #f07178;
  --ay:      #e8c15a;
  --ok:      #4cc38a;
  --glow:    0 0 0 transparent;
  --nav-bg:  rgba(10,14,20,0.94);
  --inp:     rgba(255,255,255,0.05);
  --sh:      0 8px 28px rgba(0,0,0,0.38);
  --sh-sm:   0 2px 8px rgba(0,0,0,0.28);
  --on-a:    #0a0e14;
  --a-rgb:   30,155,255;
  --ab-rgb:  108,200,255;
  --ar-rgb:  240,113,120;
  --ay-rgb:  232,193,90;
  --ok-rgb:  76,195,138;
  --aw:      #f0a24b;
}

[data-theme="light"] {
  color-scheme: light;
  --bg:      #eff5fc;
  --bg2:     #e2ecf8;
  --card:    #ffffff;
  --glass:   rgba(10,104,214,0.04);
  --b:       rgba(84,112,153,0.16);
  --bhi:     rgba(10,104,214,0.42);
  --t1:      #0a1220;
  --t2:      #384a63;
  --t3:      #566179;
  --a:       #0a68d6;
  --ab:      #0b72b5;
  --ar:      #cc2233;
  --ay:      #8a5d00;
  --ok:      #11803f;
  --glow:    0 0 0 transparent;
  --nav-bg:  rgba(239,245,252,0.97);
  --inp:     rgba(0,0,0,0.042);
  --sh:      0 6px 32px rgba(0,0,50,0.09);
  --sh-sm:   0 2px 10px rgba(0,0,50,0.07);
  --on-a:    #ffffff;
  --a-rgb:   10,104,214;
  --ab-rgb:  11,114,181;
  --ar-rgb:  204,34,51;
  --ay-rgb:  138,93,0;
  --ok-rgb:  17,128,63;
  --aw:      #a15c00;
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;tab-size:4}
body{
  font-family:var(--font);
  background:var(--bg);
  color:var(--t1);
  min-height:100vh;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  transition:background var(--ease),color var(--ease);
}
a{color:var(--a);text-decoration:none;transition:opacity var(--ease)}
a:hover{opacity:.78}
img{max-width:100%;display:block}
ul,ol{list-style:none}
button{cursor:pointer;font-family:var(--font);background:none;border:none;color:inherit}
input,select,textarea{font-family:var(--font)}

.bg-grid{
  position:fixed;inset:0;z-index:0;pointer-events:none;
  background-image:
    linear-gradient(rgba(108,170,255,.035) 1px,transparent 1px),
    linear-gradient(90deg,rgba(108,170,255,.035) 1px,transparent 1px);
  background-size:48px 48px;
}
[data-theme="light"] .bg-grid{
  background-image:
    linear-gradient(rgba(10,104,214,.035) 1px,transparent 1px),
    linear-gradient(90deg,rgba(10,104,214,.035) 1px,transparent 1px);
}

.navbar{
  position:fixed;top:0;left:0;right:0;z-index:900;
  height:var(--nav-h);
  display:flex;align-items:center;
  padding:0 1.1rem;
  gap:.6rem;
  background:var(--nav-bg);
  backdrop-filter:blur(22px) saturate(160%);
  -webkit-backdrop-filter:blur(22px) saturate(160%);
  border-bottom:1px solid var(--b);
  box-shadow:var(--sh-sm);
}

.nav-brand{flex-shrink:0}
.nav-brand a{
  display:flex;align-items:center;gap:.42rem;
  font-family:var(--logo);
  font-size:clamp(.92rem,2.4vw,1.15rem);
  font-weight:900;
  color:var(--a);
  white-space:nowrap;
  letter-spacing:.5px;
  text-shadow:var(--glow);
}
.brand-icon{font-size:1.25rem;display:inline-flex;align-items:center;line-height:0}
.brand-icon img{width:1.6em;height:1.6em;display:block;object-fit:contain}
.brand-name{line-height:1}

.nav-links{
  display:flex;align-items:center;
  gap:.05rem;margin-left:auto;
}
.nav-links li a{
  display:flex;align-items:center;gap:.32rem;
  padding:.34rem .72rem;
  border-radius:var(--r-xs);
  font-size:.87rem;font-weight:600;
  color:var(--t2);
  border:1px solid transparent;
  transition:all var(--ease);
  white-space:nowrap;
}
.nav-links li a i{font-size:.75rem}
.nav-links li a:hover,
.nav-links li a.active{
  color:var(--a);background:var(--glass);border-color:var(--b);opacity:1;
}
.btn-nav-cta{
  background:linear-gradient(135deg, var(--a), color-mix(in srgb, var(--a) 70%, var(--ab))) !important;
  color:var(--on-a) !important;
  font-weight:700 !important;
  border-color:transparent !important;
  border-radius:var(--r-xs) !important;
  padding:.4rem .95rem !important;
  box-shadow:none;
  transition:all var(--ease);
}
.btn-nav-cta:hover{opacity:1 !important;transform:translateY(-1px);box-shadow:0 2px 8px rgba(0,0,0,.25)}
.btn-nav-ghost{
  display:flex;align-items:center;gap:.32rem;
  padding:.4rem .85rem;border-radius:var(--r-xs);
  font-size:.87rem;font-weight:600;color:var(--t1);
  border:1px solid var(--b);background:var(--glass);
  transition:all var(--ease);white-space:nowrap;flex-shrink:0;
}
.btn-nav-ghost:hover{color:var(--a);border-color:var(--bhi);background:var(--glass);transform:translateY(-1px)}

.theme-toggle{
  width:34px;height:34px;border-radius:50%;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  font-size:.88rem;
  background:var(--glass);border:1px solid var(--b);color:var(--t1);
  transition:all var(--ease);
}
.theme-toggle:hover{border-color:var(--a);color:var(--a);box-shadow:var(--glow)}

.nav-profile{position:relative;flex-shrink:0}
.profile-trigger{
  display:flex;align-items:center;gap:.5rem;
  padding:.28rem .7rem .28rem .3rem;
  border-radius:999px;border:1px solid transparent;
  color:var(--t1);transition:all var(--ease);
}
.profile-trigger:hover,
.profile-trigger.open{border-color:var(--b);background:var(--glass)}
.profile-avatar-sm{
  width:28px;height:28px;border-radius:50%;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,var(--a),var(--ab));
  color:var(--on-a);font-family:var(--brand);font-weight:800;font-size:.76rem;
  box-shadow:0 0 0 2px var(--bg2);
}
.profile-avatar-sm.lg{width:44px;height:44px;font-size:1.1rem}
.profile-trigger-name{
  font-size:.85rem;font-weight:600;max-width:120px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.profile-chevron{font-size:.62rem;color:var(--t3);transition:transform var(--ease)}
.profile-trigger.open .profile-chevron{transform:rotate(180deg);color:var(--a)}

.profile-dropdown{
  position:absolute;top:calc(100% + 12px);right:0;
  min-width:232px;z-index:950;
  background:var(--card);border:1px solid var(--b);
  border-radius:var(--r-sm);box-shadow:var(--sh);
  backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
  padding:.5rem;
  opacity:0;visibility:hidden;pointer-events:none;
  transform:translateY(-8px) scale(.98);
  transition:opacity .16s ease,transform .16s ease,visibility .16s;
}
.profile-dropdown.open{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0) scale(1)}
.profile-dropdown-header{display:flex;align-items:center;gap:.7rem;padding:.4rem .55rem .75rem}
.pd-name{font-weight:700;font-size:.92rem;color:var(--t1);line-height:1.2}
.pd-score{
  font-size:.72rem;color:var(--a);font-family:var(--mono);
  margin-top:.2rem;display:flex;align-items:center;gap:.3rem;
}
.profile-dropdown-divider{height:1px;background:var(--b);margin:.3rem .1rem}
.profile-dropdown a{
  display:flex;align-items:center;gap:.65rem;
  padding:.6rem .6rem;border-radius:var(--r-xs);
  font-size:.86rem;font-weight:600;color:var(--t2);
  transition:all var(--ease);
}
.profile-dropdown a i{width:16px;text-align:center;font-size:.82rem}
.profile-dropdown a:hover,
.profile-dropdown a.active{background:var(--glass);color:var(--a);opacity:1}
.profile-dropdown a.pd-logout:hover{background:rgba(var(--ar-rgb),.1);color:var(--ar)}
@media (max-width:520px){.profile-trigger-name{display:none}}

.nav-toggle{
  display:none;
  padding:.32rem .52rem;border-radius:var(--r-xs);
  border:1px solid var(--b);color:var(--t1);
  font-size:1rem;margin-left:auto;
  transition:all var(--ease);
}
.nav-toggle:hover{border-color:var(--a);color:var(--a)}
.nav-toggle.open{color:var(--a);border-color:var(--a)}

.nav-overlay{
  display:none;
  position:fixed;inset:0;z-index:850;
  background:rgba(8,12,24,.55);
  backdrop-filter:blur(4px);
  -webkit-backdrop-filter:blur(4px);
}
.nav-overlay.open{display:block}

.nav-drawer{
  position:fixed;
  top:var(--nav-h);right:0;bottom:0;
  z-index:860;
  width:min(272px,84vw);
  background:var(--bg2);
  border-left:1px solid var(--b);
  padding:.75rem 0 1.5rem;
  transform:translateX(100%);
  transition:transform .28s cubic-bezier(.4,0,.2,1);
  overflow-y:auto;
  display:flex;flex-direction:column;
}
.nav-drawer.open{transform:translateX(0);box-shadow:-8px 0 32px rgba(0,0,0,.28)}

.nav-drawer a{
  display:flex;align-items:center;gap:.6rem;
  padding:.72rem 1.2rem;
  font-size:.96rem;font-weight:600;
  color:var(--t2);
  border-left:3px solid transparent;
  transition:all var(--ease);
}
.nav-drawer a i{font-size:.82rem;width:16px;text-align:center}
.nav-drawer a:hover,
.nav-drawer a.active{
  color:var(--a);background:var(--glass);border-left-color:var(--a);opacity:1;
}
.drawer-divider{height:1px;background:var(--b);margin:.55rem 1.1rem}
.drawer-cta{
  margin:.75rem 1rem 0 !important;
  background:var(--a) !important;color:var(--on-a) !important;
  border-radius:var(--r-sm) !important;
  padding:.65rem 1rem !important;
  font-weight:700 !important;
  text-align:center;justify-content:center;
  border-left:none !important;
}
.drawer-user{
  padding:.65rem 1.2rem;
  font-size:.82rem;color:var(--t3);
  display:flex;align-items:center;gap:.5rem;
  border-bottom:1px solid var(--b);
  margin-bottom:.4rem;
}

.main-content{
  margin-top:var(--nav-h);
  min-height:calc(100vh - var(--nav-h) - 72px);
  position:relative;
}
.container{max-width:1180px;margin:0 auto;padding:1.5rem 1rem}
.container-wide{max-width:1380px;margin:0 auto;padding:1.5rem 1rem}
.container-narrow{max-width:520px;margin:0 auto;padding:1.5rem 1rem}

.error-page{
  display:flex;align-items:center;justify-content:center;
  min-height:calc(100vh - var(--nav-h) - 140px);
  padding:clamp(2rem,7vw,5rem) 1rem;
  text-align:center;
}
.error-page__inner{
  width:100%;max-width:620px;margin:0 auto;
  display:flex;flex-direction:column;align-items:center;
}
.error-page__code{
  font-family:var(--brand);font-weight:700;line-height:.9;
  font-size:clamp(4.5rem,20vw,9rem);letter-spacing:.04em;
  background:linear-gradient(180deg,var(--a) 0%,color-mix(in srgb,var(--a) 18%,transparent) 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  
  margin-bottom:.35rem;
}
.error-page__icon{
  width:clamp(56px,14vw,72px);height:clamp(56px,14vw,72px);
  border-radius:50%;display:flex;align-items:center;justify-content:center;
  background:rgba(var(--a-rgb),.1);border:1px solid var(--b);
  color:var(--a);font-size:clamp(1.3rem,4vw,1.7rem);
  margin-bottom:1.1rem;
}
.error-page__title{
  font-family:var(--brand);font-weight:700;color:var(--t1);
  font-size:clamp(1.25rem,4.6vw,1.75rem);line-height:1.25;
  margin:0 0 .6rem;
}
.error-page__message{
  color:var(--t3);font-size:clamp(.9rem,2.6vw,1rem);line-height:1.7;
  margin:0 auto;max-width:46ch;
}
.error-page__actions{
  display:flex;flex-wrap:wrap;gap:.75rem;justify-content:center;
  margin-top:1.6rem;width:100%;
}
.error-page__actions .btn{min-width:150px;justify-content:center}
.error-page__hint{
  margin-top:1.1rem;font-family:var(--mono);font-size:.72rem;
  color:var(--t3);opacity:.72;word-break:break-word;
}

.error-topbar{display:flex;justify-content:center;align-items:center;padding:1.25rem 1rem}
.error-brand{
  font-family:var(--brand);font-weight:700;letter-spacing:.01em;
  font-size:1rem;color:var(--a);text-decoration:none;text-shadow:var(--glow);
}

@media (max-width:480px){
  .error-page__actions{flex-direction:column;align-items:stretch}
  .error-page__actions .btn{width:100%}
}

.card{
  background:var(--card);
  backdrop-filter:blur(14px);
  border:1px solid var(--b);
  border-radius:var(--r);
  padding:1.2rem;
  box-shadow:var(--sh-sm);
  transition:border-color var(--ease);
}
.card:hover{border-color:var(--bhi)}

.page-header{text-align:center;padding:2.2rem 1rem 1.5rem}
.page-header h1{
  font-family:var(--brand);
  font-size:clamp(1.55rem,4vw,2.7rem);
  color:var(--a);text-shadow:var(--glow);
  margin-bottom:.35rem;line-height:1.15;
}
.page-header p{color:var(--t2);font-size:clamp(.88rem,2vw,1.02rem)}

.hero{
  display:flex;flex-direction:column;
  align-items:center;justify-content:center;
  min-height:calc(100vh - var(--nav-h));
  text-align:center;
  padding:2rem 1rem 3rem;
}
.hero-glitch{
  font-family:var(--brand);
  font-size:clamp(1.85rem,6.5vw,5rem);
  font-weight:700;color:var(--a);
  line-height:1.1;letter-spacing:.01em;
}
.hero-sub{
  font-family:var(--mono);
  font-size:clamp(.85rem,2.2vw,1.15rem);
  color:var(--t2);
  margin:1.1rem 0 1.75rem;
  max-width:540px;line-height:1.6;
  min-height:2.2em;
}
.hero-sub .cursor{
  display:inline-block;width:9px;height:1.1em;
  background:var(--a);
  animation:blink 1s step-end infinite;
  vertical-align:text-bottom;
  margin-left:1px;
}
@keyframes blink{0%,100%{opacity:1}50%{opacity:0}}
.hero-stats{
  display:flex;gap:clamp(1.25rem,5vw,3rem);
  margin-bottom:1.75rem;
  flex-wrap:wrap;justify-content:center;
}
.hero-stat-num{font-family:var(--brand);font-size:clamp(1.5rem,4vw,2.2rem);font-weight:700;color:var(--a);line-height:1}
.hero-stat-label{font-size:.72rem;color:var(--t3);text-transform:uppercase;letter-spacing:1.2px;margin-top:.2rem}
.hero-cta{display:flex;gap:.65rem;flex-wrap:wrap;justify-content:center}

.btn{
  display:inline-flex;align-items:center;gap:.42rem;
  padding:.58rem 1.25rem;
  border-radius:var(--r-sm);
  font-family:var(--font);font-size:.94rem;font-weight:700;
  border:none;white-space:nowrap;
  text-decoration:none;
  transition:all var(--ease);
  -webkit-tap-highlight-color:transparent;
  cursor:pointer;
}
.btn:active{transform:scale(.96)}
.btn-primary{background:var(--a);color:var(--on-a)}
.btn-primary:hover{box-shadow:0 2px 8px rgba(0,0,0,.25);transform:translateY(-1px);opacity:1}
.btn-outline{background:transparent;border:1.5px solid var(--a);color:var(--a)}
.btn-outline:hover{background:var(--a);color:var(--on-a);opacity:1}
.btn-danger{background:var(--ar);color:#fff}
.btn-danger:hover{opacity:.85;opacity:1}
.btn-danger-outline{background:transparent;border:1.5px solid var(--ar);color:var(--ar)}
.btn-danger-outline:hover{background:var(--ar);color:#fff;opacity:1}
.btn-sm{padding:.34rem .8rem;font-size:.82rem}
.btn-block{width:100%;justify-content:center}
.btn i{flex-shrink:0}

.form-card{max-width:430px;margin:2rem auto}
.form-card h2{
  font-family:var(--brand);font-size:1.45rem;
  color:var(--a);margin-bottom:1.2rem;text-align:center;
}
.form-group{margin-bottom:1rem}
.form-group label{
  display:block;margin-bottom:.32rem;
  font-size:.87rem;color:var(--t2);font-weight:600;
}
.form-group input,
.form-group select,
.form-group textarea{
  width:100%;padding:.62rem .88rem;
  background:var(--inp);border:1.5px solid var(--b);
  border-radius:var(--r-sm);color:var(--t1);
  font-size:.94rem;outline:none;
  transition:border-color var(--ease),box-shadow var(--ease);
  -webkit-appearance:none;appearance:none;
}
.form-group select{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%231e9bff' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right .9rem center;
  padding-right:2.5rem;
  cursor:pointer;
}
[data-theme="light"] .form-group select{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%230048cc' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
}
.form-group select option{
  background:var(--bg2);
  color:var(--t1);
}
.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus{
  border-color:var(--a);
  box-shadow:0 0 0 3px rgba(var(--a-rgb),.1);
}
.form-group textarea{resize:vertical;min-height:88px;line-height:1.55}
.form-help{font-size:.76rem;color:var(--t3);margin-top:.26rem}
.form-alert{
  background:rgba(var(--ar-rgb),.07);border:1px solid rgba(var(--ar-rgb),.28);
  border-radius:var(--r-sm);padding:.62rem .88rem;
  margin-bottom:.9rem;color:var(--ar);font-size:.87rem;line-height:1.55;
}
.form-alert>div+div{margin-top:.22rem}

.challenge-filters{display:flex;gap:.35rem;flex-wrap:wrap;margin-bottom:1rem}
.filter-btn{
  padding:.3rem .78rem;border-radius:999px;
  background:var(--glass);border:1px solid var(--b);
  color:var(--t2);font-size:.82rem;font-weight:600;
  transition:all var(--ease);
  -webkit-tap-highlight-color:transparent;
}
.filter-btn.active,.filter-btn:hover{background:var(--a);color:var(--on-a);border-color:var(--a)}
.challenges-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(min(100%,268px),1fr));
  gap:.9rem;
}
.challenge-card{
  background:var(--card);backdrop-filter:blur(14px);
  border:1px solid var(--b);border-radius:var(--r);
  padding:1.05rem;cursor:pointer;
  transition:all var(--ease);
  position:relative;overflow:hidden;
  -webkit-tap-highlight-color:transparent;
}
.challenge-card::before{
  content:'';position:absolute;top:0;left:0;right:0;height:2px;
  background:var(--cat-color,var(--a));opacity:0;
  transition:opacity var(--ease);
}
.challenge-card:hover{border-color:var(--bhi);transform:translateY(-2px);box-shadow:var(--sh-sm)}
.challenge-card:hover::before{opacity:1}
.challenge-card:active{transform:translateY(-1px)}
.challenge-card.solved{border-color:rgba(var(--ok-rgb),.38)}
.challenge-card.solved::after{
  content:'✓ SOLVED';
  position:absolute;top:.48rem;right:.48rem;
  font-family:var(--mono);font-size:.62rem;color:var(--a);
  background:rgba(var(--a-rgb),.1);padding:.12rem .42rem;
  border-radius:999px;border:1px solid rgba(var(--a-rgb),.28);
}
.challenge-cat{
  display:inline-flex;align-items:center;gap:.28rem;
  font-size:.72rem;font-weight:700;text-transform:uppercase;
  letter-spacing:1px;margin-bottom:.45rem;
  color:var(--cat-color,var(--a));
}
.challenge-title{font-size:1.02rem;font-weight:700;margin-bottom:.32rem;color:var(--t1)}
.challenge-desc{
  font-size:.82rem;color:var(--t2);margin-bottom:.8rem;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
  line-height:1.5;
}
.challenge-meta{display:flex;justify-content:space-between;align-items:center}
.challenge-points{font-family:var(--brand);font-size:1.1rem;font-weight:700;color:var(--a)}
.difficulty-badge{font-size:.7rem;font-weight:700;padding:.16rem .52rem;border-radius:999px;border:1.5px solid currentColor}
.diff-Easy{color:var(--ok)}.diff-Medium{color:#ff9900}.diff-Hard{color:#ff5555}.diff-Insane{color:#dd00ff}
.challenge-solves{font-size:.73rem;color:var(--t3);margin-top:.38rem}

.modal-overlay{
  display:none;position:fixed;inset:0;z-index:1000;
  background:rgba(8,12,24,.88);
  backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px);
  align-items:center;justify-content:center;
  padding:1rem;
}
.modal-overlay.active{display:flex}
.modal{
  background:var(--bg2);
  border:1px solid var(--bhi);
  border-radius:var(--r);
  width:100%;max-width:560px;
  max-height:90vh;overflow-y:auto;
  box-shadow:0 24px 60px rgba(0,0,0,.55);
  animation:slideUp .26s ease;
  position:relative;z-index:1001;
}
@keyframes slideUp{from{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}
.modal-header{
  padding:1rem 1.15rem;
  border-bottom:1px solid var(--b);
  display:flex;justify-content:space-between;align-items:flex-start;
  position:sticky;top:0;background:var(--bg2);z-index:1;
}
.modal-header h2{font-size:1.1rem;color:var(--a);line-height:1.3;padding-right:.5rem}
.modal-close{
  font-size:1.35rem;line-height:1;padding:0 .1rem;
  color:var(--t3);transition:color var(--ease);flex-shrink:0;margin-top:-.1rem;
}
.modal-close:hover{color:var(--ar)}
.modal-body{padding:1rem 1.15rem}
.modal-desc{
  color:var(--t2);white-space:pre-wrap;
  font-family:var(--mono);font-size:.85rem;line-height:1.65;
  margin-bottom:1.1rem;
}
.modal-info{display:flex;gap:.45rem;flex-wrap:wrap;margin-bottom:1rem}
.modal-badge{
  display:inline-flex;align-items:center;gap:.28rem;
  padding:.22rem .6rem;background:var(--glass);
  border:1px solid var(--b);border-radius:999px;
  font-size:.78rem;color:var(--t2);
}
.flag-input-row{display:flex;gap:.45rem;flex-wrap:wrap}
.flag-input-row input{
  flex:1;min-width:160px;
  padding:.6rem .88rem;
  background:var(--inp);border:1.5px solid var(--b);
  border-radius:var(--r-sm);color:var(--t1);
  font-family:var(--mono);font-size:.9rem;outline:none;
}
.flag-input-row input:focus{border-color:var(--a)}
.already-solved{
  padding:.9rem;background:rgba(var(--ok-rgb),.07);
  border:1px solid rgba(var(--ok-rgb),.32);border-radius:var(--r-sm);
  text-align:center;color:var(--ok);font-size:.92rem;
}

.scoreboard-table{width:100%;border-collapse:collapse}
.scoreboard-table th{
  text-align:left;padding:.68rem .88rem;
  background:var(--glass);border-bottom:1px solid var(--bhi);
  color:var(--a);font-family:var(--brand);font-size:.75rem;
  text-transform:uppercase;letter-spacing:.01em;white-space:nowrap;
}
.scoreboard-table td{
  padding:.78rem .88rem;border-bottom:1px solid var(--b);
  color:var(--t2);font-size:.9rem;
}
.scoreboard-table tbody tr:last-child td{border-bottom:none}
.scoreboard-table tbody tr:hover td{background:var(--glass)}
.scoreboard-table tbody tr.rank-1 td{color:var(--ay)}
.scoreboard-table tbody tr.rank-2 td{color:#c0c0c0}
.scoreboard-table tbody tr.rank-3 td{color:#cd7f32}
.score-bar-wrap{background:var(--glass);border-radius:999px;height:6px;width:90px;overflow:hidden;border:1px solid var(--b)}
.score-bar{height:100%;background:var(--a);border-radius:999px;transition:width 1s ease}

.profile-layout{display:grid;grid-template-columns:280px 1fr;gap:1.3rem;align-items:start}

.profile-card{padding:0 0 1.4rem;overflow:hidden}
.profile-cover{
  height:78px;
  background:linear-gradient(135deg,var(--a) 0%,var(--ab) 100%);
  opacity:.88;
}
.profile-avatar{
  width:90px;height:90px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-family:var(--brand);font-size:2rem;font-weight:800;
  background:var(--bg2);color:var(--a);
  border:4px solid var(--card);
  margin:-45px auto 0;
  box-shadow:var(--sh-sm);
  position:relative;z-index:1;
}
.profile-body{padding:0 1.2rem}
.profile-username{font-family:var(--brand);font-size:1.2rem;color:var(--t1);text-align:center;margin-top:.65rem;letter-spacing:.3px}
.profile-country{display:flex;align-items:center;justify-content:center;gap:.35rem;color:var(--t3);font-size:.82rem;margin-top:.35rem}
.profile-bio{color:var(--t2);font-size:.88rem;text-align:center;margin-top:.8rem;line-height:1.55}

.profile-score-wrap{text-align:center;margin-top:1.4rem;padding-top:1.1rem;border-top:1px solid var(--b)}
.profile-score{font-size:2.15rem;font-family:var(--brand);color:var(--a);text-shadow:var(--glow)}
.profile-score-label{font-size:.68rem;color:var(--t3);text-align:center;text-transform:uppercase;letter-spacing:1.2px;margin-top:.15rem}

.stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:.65rem;margin-top:1rem}
.stat-box{background:var(--inp);border:1px solid var(--b);border-radius:var(--r-sm);padding:.7rem .5rem;text-align:center;transition:border-color var(--ease)}
.stat-box:hover{border-color:var(--bhi)}
.stat-box-num{font-family:var(--brand);font-size:1.4rem;color:var(--a)}
.stat-box-label{font-size:.66rem;color:var(--t3);margin-top:.22rem;text-transform:uppercase;letter-spacing:.6px;display:flex;align-items:center;justify-content:center;gap:.3rem}

.profile-joined{display:flex;align-items:center;justify-content:center;gap:.4rem;color:var(--t3);font-size:.75rem;margin-top:1.1rem}

.admin-layout{display:flex;min-height:calc(100vh - var(--nav-h))}
.admin-sidebar{
  width:var(--sidebar-w);background:var(--bg2);
  border-right:1px solid var(--b);
  padding:1.15rem 0;flex-shrink:0;
  position:fixed;top:var(--nav-h);left:0;
  height:calc(100vh - var(--nav-h));overflow-y:auto;
  scrollbar-width:thin;
  z-index:600;
}
.admin-sidebar-title{
  font-family:var(--brand);font-size:.68rem;color:var(--t3);
  text-transform:uppercase;letter-spacing:.01em;
  padding:0 .95rem;margin:1rem 0 .3rem;
}
.admin-sidebar-title:first-child{margin-top:0}
.admin-nav-link{
  display:flex;align-items:center;gap:.52rem;
  padding:.52rem .95rem;
  color:var(--t2);font-size:.88rem;font-weight:600;
  border-left:3px solid transparent;
  transition:all var(--ease);
}
.admin-nav-link i{font-size:.78rem;width:14px;text-align:center}
.admin-nav-link:hover,.admin-nav-link.active{
  color:var(--a);background:var(--glass);border-left-color:var(--a);opacity:1;
}
.admin-main{flex:1;padding:1.4rem;overflow-x:auto;min-width:0;margin-left:var(--sidebar-w)}
.admin-header{
  display:flex;align-items:center;justify-content:space-between;
  flex-wrap:wrap;gap:.65rem;
  margin-bottom:1.2rem;padding-bottom:.9rem;border-bottom:1px solid var(--b);
}
.admin-header h1{font-family:var(--brand);font-size:1.35rem;color:var(--a)}
.admin-stats{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(145px,1fr));
  gap:.8rem;margin-bottom:1.2rem;
}
.admin-stat-card{
  background:var(--card);border:1px solid var(--b);
  border-radius:var(--r);padding:1rem;
  display:flex;align-items:center;gap:.8rem;
  transition:border-color var(--ease);
}
.admin-stat-card:hover{border-color:var(--bhi)}
.admin-stat-icon{font-size:1.7rem;color:var(--a);flex-shrink:0}
.admin-stat-num{font-family:var(--brand);font-size:1.6rem;color:var(--t1);line-height:1}
.admin-stat-label{font-size:.72rem;color:var(--t3);margin-top:.12rem}
.data-table{width:100%;border-collapse:collapse;font-size:.86rem}
.data-table th{
  padding:.58rem .78rem;text-align:left;
  background:var(--glass);border-bottom:1px solid var(--bhi);
  color:var(--t3);font-size:.7rem;
  text-transform:uppercase;letter-spacing:1px;white-space:nowrap;
}
.data-table td{
  padding:.68rem .78rem;border-bottom:1px solid var(--b);
  color:var(--t2);vertical-align:middle;
}
.data-table tr:last-child td{border-bottom:none}
.data-table tr:hover td{background:var(--glass)}
.subs-table-scroll{
  max-height:68vh;overflow:auto;-webkit-overflow-scrolling:touch;
  border-radius:var(--r);
}
.subs-table-scroll .data-table{font-size:.84rem}
.subs-table-scroll thead th{
  position:sticky;top:0;z-index:2;
  background:var(--card);
  box-shadow:0 1px 0 var(--bhi);
}
.subs-table-scroll tbody tr:nth-child(even) td{background:rgba(127,127,127,0.035)}
.subs-table-scroll tbody tr:hover td{background:var(--glass)}

.subs-event-select{
  max-width:280px;padding:.5rem .75rem;border-radius:var(--r-sm);
  border:1px solid var(--b);background:var(--inp);color:var(--t1,inherit);
  font-size:.85rem;cursor:pointer;
}
.subs-event-select option,.subs-event-select optgroup{
  background:var(--card);color:var(--t1);
}
.subs-event-select optgroup{font-weight:700}

@media(max-width:640px){
  .subs-table-scroll{max-height:60vh}
  .subs-event-select{max-width:100%}
}

.action-btns{display:flex;gap:.32rem;flex-wrap:wrap}
.badge{
  display:inline-flex;align-items:center;gap:.22rem;
  padding:.15rem .48rem;border-radius:999px;
  font-size:.7rem;font-weight:700;
}
.badge-success{background:rgba(var(--ok-rgb),.12);color:var(--ok)}
.badge-danger{background:rgba(var(--ar-rgb),.1);color:var(--ar)}
.badge-warning{background:rgba(255,165,0,.1);color:var(--aw)}
.badge-info{background:rgba(var(--ab-rgb),.1);color:var(--ab)}

#toast-container{
  position:fixed;bottom:.9rem;right:.9rem;z-index:9999;
  display:flex;flex-direction:column;gap:.38rem;
  pointer-events:none;
}
.toast{
  padding:.7rem .95rem;border-radius:var(--r-sm);
  background:var(--bg2);border:1px solid var(--b);
  color:var(--t1);font-size:.88rem;
  display:flex;align-items:center;gap:.52rem;
  max-width:min(350px,calc(100vw - 1.8rem));
  box-shadow:var(--sh);animation:toastIn .28s ease;
  pointer-events:auto;
}
@keyframes toastIn{from{transform:translateX(110%);opacity:0}to{transform:translateX(0);opacity:1}}
@keyframes toastOut{to{transform:translateX(110%);opacity:0}}
.toast.success{border-color:rgba(var(--ok-rgb),.4)}
.toast.error{border-color:rgba(var(--ar-rgb),.32)}
.toast.info{border-color:rgba(var(--ab-rgb),.32)}
.toast.warning{border-color:rgba(255,165,0,.32)}
.toast-icon{font-size:.95rem;flex-shrink:0}
.toast.success .toast-icon{color:var(--ok)}
.toast.error   .toast-icon{color:var(--ar)}
.toast.info    .toast-icon{color:var(--ab)}
.toast.warning .toast-icon{color:var(--aw)}

.site-footer{
  border-top:1px solid var(--b);padding:1.1rem 1rem;
  text-align:center;color:var(--t3);font-size:.8rem;
  background:var(--bg);
}
body.modal-open{overflow:hidden;}
.footer-brand{font-family:var(--brand);color:var(--a);margin-bottom:.18rem;font-size:.92rem;display:inline-flex;align-items:center;gap:.4rem}
.footer-logo{width:20px;height:20px;display:block}
.footer-tagline{font-family:var(--mono);margin-bottom:.18rem}

.footer-telegram{
  display:inline-flex;align-items:center;gap:.4rem;
  margin:.55rem 0 .15rem;padding:.28rem .8rem;
  border:1px solid var(--b);border-radius:999px;
  background:var(--glass);color:var(--t2);
  font-family:var(--mono);font-size:.74rem;text-decoration:none;
  transition:border-color var(--ease),color var(--ease);
}
.footer-telegram i{color:#2ba9e0;font-size:.85rem}
.footer-telegram:hover{border-color:#2ba9e0;color:var(--t1)}

.tabs{display:flex;gap:.28rem;margin-bottom:1.15rem;flex-wrap:wrap}
.tab-btn{
  padding:.38rem 1rem;border-radius:999px;
  border:1px solid var(--b);background:var(--glass);
  color:var(--t2);font-size:.85rem;font-weight:600;
  transition:all var(--ease);
  -webkit-tap-highlight-color:transparent;
}
.tab-btn.active{background:var(--a);color:var(--on-a);border-color:var(--a)}
.tab-btn:hover:not(.active){border-color:var(--a);color:var(--a)}
a.tab-btn{display:inline-flex;align-items:center;gap:.4rem;text-decoration:none;cursor:pointer}
.tab-pane{display:none}
.tab-pane.active{display:block}
.team-card{
  background:var(--card);border:1px solid var(--b);
  border-radius:var(--r);padding:1.05rem;
  transition:all var(--ease);
  -webkit-tap-highlight-color:transparent;
}
.team-card:hover{border-color:var(--bhi);transform:translateY(-2px);box-shadow:var(--sh-sm)}
.team-hero{
  background:linear-gradient(135deg,rgba(var(--ab-rgb),.07),rgba(var(--a-rgb),.04));
  border:1px solid rgba(var(--ab-rgb),.2);border-radius:var(--r);
  padding:1.4rem;margin-bottom:1.2rem;
}
.member-row{
  display:flex;align-items:center;justify-content:space-between;
  padding:.58rem 0;border-bottom:1px solid var(--b);
}
.member-row:last-child{border-bottom:none}
.request-card{
  background:var(--glass);border:1px solid var(--b);
  border-radius:var(--r-sm);padding:.68rem .9rem;
  margin-bottom:.42rem;
  display:flex;align-items:center;justify-content:space-between;gap:.7rem;
}
.mode-card{user-select:none;transition:transform var(--ease)}
.mode-card:hover{transform:translateY(-2px)}
.invite-badge{
  background:rgba(255,165,0,.12);border:1px solid rgba(255,165,0,.28);
  color:var(--aw);border-radius:999px;padding:.12rem .55rem;font-size:.72rem;
}

.text-accent{color:var(--a)}
.text-muted{color:var(--t3)}
.text-center{text-align:center}
.mt-1{margin-top:.5rem}.mt-2{margin-top:1rem}.mt-3{margin-top:1.5rem}
.mb-1{margin-bottom:.5rem}.mb-2{margin-bottom:1rem}.mb-3{margin-bottom:1.5rem}
.flex{display:flex}.gap-1{gap:.5rem}.gap-2{gap:1rem}
.justify-between{justify-content:space-between}.align-center{align-items:center}
.section-title{
  font-family:var(--brand);font-size:1.15rem;color:var(--a);
  margin-bottom:.95rem;display:flex;align-items:center;gap:.42rem;
}
.empty-state{text-align:center;padding:2.5rem 1rem;color:var(--t3)}
.empty-state i{font-size:2.4rem;margin-bottom:.7rem;display:block;opacity:.45}
.announcement-card{
  background:linear-gradient(135deg,rgba(var(--a-rgb),.04),rgba(var(--ab-rgb),.04));
  border:1px solid var(--bhi);border-radius:var(--r);
  padding:.85rem 1rem;margin-bottom:.8rem;
}
.announcement-title{font-weight:700;color:var(--a);margin-bottom:.18rem;font-size:.93rem}
.announcement-content{font-size:.85rem;color:var(--t2);line-height:1.55}
.announcement-time{font-size:.72rem;color:var(--t3);margin-top:.18rem}

::-webkit-scrollbar{width:5px;height:5px}
::-webkit-scrollbar-track{background:var(--bg)}
::-webkit-scrollbar-thumb{background:var(--b);border-radius:3px}
::-webkit-scrollbar-thumb:hover{background:var(--a)}

@keyframes crownPulse{0%,100%{filter:drop-shadow(0 0 4px rgba(255,215,0,.5))}50%{filter:drop-shadow(0 0 10px rgba(255,215,0,.9))}}
.fa-crown{animation:crownPulse 2.5s ease infinite}

@media(max-width:1023px){
  .profile-layout{grid-template-columns:240px 1fr}
  :root{--sidebar-w:200px}
  .challenges-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr))}
}

@media(max-width:767px){
  :root{--nav-h:54px}

  .nav-links{display:none !important}
  .nav-profile{display:none !important}
  .nav-toggle{display:flex !important;align-items:center;justify-content:center}

  .container,.container-wide,.container-narrow{padding:1rem .85rem}

  .hero{padding:1.5rem .85rem 2.5rem;min-height:calc(100vh - 54px)}
  .hero-stats{gap:1.4rem}
  .hero-cta .btn{flex:1 1 130px}

  .challenges-grid{grid-template-columns:1fr;gap:.72rem}
  .challenge-filters{gap:.28rem}
  .filter-btn{font-size:.76rem;padding:.26rem .6rem}

  .modal-overlay{align-items:flex-end;padding:0}
  .modal{
    max-width:100%;
    border-radius:var(--r) var(--r) 0 0;
    max-height:85vh;
  }
  #tdMembersList{max-height:none !important; overflow-y:visible !important;}
  .flag-input-row{flex-direction:column}
  .flag-input-row .btn{width:100%;justify-content:center}

  .profile-layout{grid-template-columns:1fr}

  .admin-layout{flex-direction:column}
  .admin-sidebar{
    width:100%;height:auto;position:static;
    display:flex;flex-wrap:nowrap;gap:.18rem;
    padding:.55rem .7rem;
    border-right:none;border-bottom:1px solid var(--b);
    overflow-x:auto;-webkit-overflow-scrolling:touch;
  }
  .admin-sidebar-title{display:none}
  .admin-nav-link{
    padding:.33rem .65rem;border-left:none;border-radius:var(--r-xs);
    font-size:.76rem;border-bottom:2px solid transparent;flex-shrink:0;
  }
  .admin-nav-link.active{border-bottom-color:var(--a);background:var(--glass)}
  .admin-main{padding:.9rem .85rem;margin-left:0}
  .admin-stats{grid-template-columns:1fr 1fr;gap:.55rem}
  .admin-stat-num{font-size:1.4rem}
  .admin-header h1{font-size:1.1rem}

  .data-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}

  .score-bar-wrap{width:55px}

  #toast-container{left:.7rem;right:.7rem;bottom:.7rem}
  .toast{max-width:100%}

  .team-hero{padding:1rem}
  .request-card{flex-direction:column;align-items:flex-start}
  .request-card>div:last-child{align-self:flex-end}

  .page-header{padding:1.6rem .85rem 1.1rem}
  .section-title{font-size:1rem}
}

@media(max-width:400px){
  .nav-brand a{font-size:.85rem}
  .brand-icon{font-size:1.1rem}
  .admin-stats{grid-template-columns:1fr}
  .hero-stats{gap:.95rem}
  .hero-stat-num{font-size:1.35rem}
  .btn{padding:.52rem 1rem;font-size:.88rem}
}

@media(min-width:1280px){
  .container{padding:2rem 1.5rem}
  .container-wide{padding:2rem 1.5rem}
  .challenges-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}
}

@media(max-width:767px){
  .admin-sidebar{
    display:none;
    position:fixed;top:var(--nav-h);left:0;right:0;bottom:0;z-index:700;
    width:100%;height:auto;max-height:calc(100vh - var(--nav-h));
    overflow-y:auto;border-right:none;
    flex-direction:column;flex-wrap:nowrap;gap:0;
    padding:.5rem 0;
  }
  .admin-sidebar.mobile-open{display:flex}
  .admin-sidebar-title{display:block !important;padding:.7rem 1rem .2rem}
  .admin-nav-link{
    border-left:3px solid transparent;border-bottom:none;
    border-radius:0;flex-shrink:unset;font-size:.92rem;padding:.65rem 1rem;
  }
  .admin-nav-link.active{border-left-color:var(--a);background:var(--glass)}
  .admin-main{padding:.9rem .85rem;margin-left:0}
}

.toggle-switch{position:relative;display:inline-block;width:48px;height:26px;flex-shrink:0}
.toggle-switch input{opacity:0;width:0;height:0;position:absolute}
.toggle-slider{
  position:absolute;inset:0;cursor:pointer;
  background:var(--b);border-radius:999px;
  transition:background .22s ease;
  border:1.5px solid rgba(255,255,255,.08);
}
[data-theme="light"] .toggle-slider{
  border-color:rgba(0,0,0,.1);
}
.toggle-slider::before{
  content:'';position:absolute;
  width:18px;height:18px;border-radius:50%;
  left:3px;top:50%;transform:translateY(-50%);
  background:#fff;transition:transform .22s ease;
  box-shadow:0 1px 4px rgba(0,0,0,.4);
}
.toggle-switch input:checked + .toggle-slider{background:var(--a);}
.toggle-switch input:checked + .toggle-slider::before{transform:translate(22px,-50%);}
.toggle-switch input:focus-visible + .toggle-slider{box-shadow:0 0 0 3px rgba(var(--a-rgb),.25);}

.ctf-banner{
  display:flex;align-items:center;gap:1.2rem;flex-wrap:wrap;
  padding:1rem 1.25rem;border-radius:var(--r);margin-bottom:1.5rem;
  border:1px solid;
}
.ctf-banner--waiting{
  background:rgba(255,215,0,.06);border-color:rgba(255,215,0,.25);
}
.ctf-banner--running{
  background:rgba(var(--a-rgb),.06);border-color:rgba(var(--a-rgb),.3);
  
}
.ctf-banner--ended{
  background:rgba(var(--ar-rgb),.05);border-color:rgba(var(--ar-rgb),.2);
}
@keyframes borderPulse{0%,100%{border-color:rgba(var(--a-rgb),.28)}50%{border-color:rgba(var(--a-rgb),.5)}}
.ctf-banner__icon{font-size:1.8rem;flex-shrink:0}
.ctf-banner--waiting .ctf-banner__icon{color:var(--ay)}
.ctf-banner--running .ctf-banner__icon{color:var(--a)}
.ctf-banner--ended   .ctf-banner__icon{color:var(--ar)}
.ctf-banner__title{font-family:var(--brand);font-size:1.05rem;color:var(--t1)}
.ctf-banner--running .ctf-banner__title{color:var(--a)}
.ctf-banner--waiting .ctf-banner__title{color:var(--ay)}
.ctf-banner__sub{font-size:0.82rem;color:var(--t3);margin-top:0.15rem}

.ctf-countdown{
  display:flex;align-items:center;gap:0.4rem;
  margin-left:auto;font-family:var(--mono);
}
.cd-seg{display:flex;flex-direction:column;align-items:center;min-width:44px}
.cd-num{
  font-size:1.5rem;font-weight:700;line-height:1;
  background:rgba(0,0,0,.25);padding:0.2rem 0.5rem;
  border-radius:var(--r-xs);color:var(--t1);
  min-width:44px;text-align:center;
}
[data-theme="light"] .cd-num{
  background:rgba(0,0,0,.055);
}
.ctf-banner--running .cd-num{color:var(--a)}
.ctf-banner--waiting .cd-num{color:var(--ay)}
.cd-lbl{font-size:0.62rem;color:var(--t3);margin-top:0.2rem;letter-spacing:.05em;text-transform:uppercase}
.cd-sep{font-size:1.4rem;font-weight:700;color:var(--t3);margin-bottom:1rem;align-self:center}

.form-card {
  max-width: 480px;
  margin: calc(var(--nav-h) + 2.5rem) auto 3rem;
  padding: 2rem 2rem 1.75rem;
}

.auth-header { text-align: center; margin-bottom: 1.5rem; }
.auth-icon {
  display: inline-flex; align-items: center; justify-content: center;
  width: 56px; height: 56px; border-radius: 50%;
  background: var(--glass); border: 1.5px solid var(--b);
  font-size: 1.4rem; color: var(--a); margin-bottom: .75rem;
}
.auth-icon--otp { color: var(--ab); border-color: rgba(var(--ab-rgb),.3); background: rgba(var(--ab-rgb),.06); }
.auth-header h2 { font-size: 1.5rem; font-weight: 700; color: var(--t1); margin-bottom: .25rem; }
.auth-sub  { color: var(--t2); font-size: .9rem; line-height: 1.5; }

.auth-alert {
  border-radius: var(--r-sm); padding: .7rem 1rem;
  margin-bottom: 1rem; font-size: .9rem; line-height: 1.5;
}
.auth-alert--error   { background: rgba(var(--ar-rgb),.1);  border: 1px solid rgba(var(--ar-rgb),.3);  color: var(--ar); }
.auth-alert--success { background: rgba(var(--ok-rgb),.09); border: 1px solid rgba(var(--ok-rgb),.3); color: var(--ok); }

.form-group       { margin-bottom: 1rem; }
.form-group label {
  display: block; margin-bottom: .35rem; font-size: .88rem;
  font-weight: 600; color: var(--t2);
}
.form-group label i { margin-right: .3rem; }
.form-group input,
.form-group select,
.form-group textarea {
  width: 100%; padding: .6rem .85rem;
  background: var(--inp); border: 1px solid var(--b);
  border-radius: var(--r-sm); color: var(--t1);
  font-size: .95rem; transition: border-color var(--ease), box-shadow var(--ease);
  outline: none;
}
.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
  border-color: var(--a); box-shadow: 0 0 0 3px rgba(var(--a-rgb),.1);
}
.form-help { font-size: .78rem; color: var(--t3); margin-top: .25rem; }

.input-wrap { position: relative; display: flex; }
.input-wrap input  { flex: 1; padding-right: 2.75rem; }
.toggle-pw {
  position: absolute; right: .7rem; top: 50%; transform: translateY(-50%);
  color: var(--t3); font-size: .9rem; transition: color var(--ease);
}
.toggle-pw:hover { color: var(--a); }

.pw-strength { margin-top: .4rem; display: none; }

.otp-input {
  text-align: center; font-size: 1.8rem !important; letter-spacing: .4rem;
  font-family: var(--mono) !important; padding: .6rem 1rem !important;
}

.btn {
  display: inline-flex; align-items: center; gap: .4rem;
  padding: .55rem 1.2rem; border-radius: var(--r-sm);
  font-weight: 600; font-size: .9rem; transition: all var(--ease);
  border: 1px solid transparent; cursor: pointer;
}
.btn-primary {
  background: var(--a); color:var(--on-a);
  border-color: var(--a);
}
.btn-primary:hover { opacity: .88; transform: translateY(-1px); }
.btn-block { width: 100%; justify-content: center; }
.btn-sm { padding: .35rem .85rem; font-size: .83rem; }
.btn-link {
  background: none; border: none; color: var(--a);
  font-size: .87rem; cursor: pointer; text-decoration: underline;
  text-underline-offset: 2px;
}
.btn-link:hover { opacity: .75; }

.auth-tabs {
  display: flex; border-bottom: 1px solid var(--b); margin-bottom: 1.25rem;
}
.auth-tab {
  flex: 1; padding: .6rem .5rem; font-size: .88rem; font-weight: 600;
  color: var(--t2); border: none; background: none;
  border-bottom: 2px solid transparent; transition: all var(--ease);
  display: flex; align-items: center; justify-content: center; gap: .35rem;
}
.auth-tab:hover { color: var(--t1); }
.auth-tab.active { color: var(--a); border-bottom-color: var(--a); }

.tab-pane { display: none; }
.tab-pane.active { display: block; }

.text-center { text-align: center; }
.mt-2 { margin-top: .75rem; }

.settings-section {
  background: var(--glass); border: 1px solid var(--b);
  border-radius: var(--r-sm); padding: 1.25rem;
}


*:focus-visible {
  outline: 2px solid var(--a);
  outline-offset: 2px;
  border-radius: var(--r-xs);
}
html { scroll-behavior: smooth; }
::selection { background: rgba(var(--a-rgb),.28); color: var(--t1); }
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: var(--b); border-radius: 999px; border: 2px solid transparent; background-clip: padding-box; }
::-webkit-scrollbar-thumb:hover { background: var(--bhi); background-clip: padding-box; }
* { scrollbar-width: thin; scrollbar-color: var(--b) transparent; }

.card { transition: border-color var(--ease), transform var(--ease), box-shadow var(--ease); }
.btn {
  position: relative; overflow: hidden;
  transition: transform var(--ease), box-shadow var(--ease), opacity var(--ease), background var(--ease);
}
.btn-primary { background: linear-gradient(135deg, var(--a), color-mix(in srgb, var(--a) 75%, var(--ab))); }
.btn:disabled, .btn[disabled] { opacity: .5; cursor: not-allowed; transform: none !important; box-shadow: none !important; }


.navbar--event { gap: .6rem; position: relative; }

.nav-end--event {
  flex: 1; display: flex; align-items: center; justify-content: flex-end; gap: .6rem;
}
.nav-brand--event {
  display: flex; align-items: center; gap: .55rem; flex: 1;
  min-width: 0; overflow: hidden;
}
.event-crumb-root {
  display: flex; align-items: center; gap: .4rem;
  color: var(--t3); font-family: var(--brand); font-size: .8rem; font-weight: 700;
  opacity: .75; flex-shrink: 0; text-decoration: none; transition: opacity var(--ease);
}
.event-crumb-root:hover { opacity: 1; color: var(--t2); }
.event-crumb-root .brand-icon { font-size: 1rem; color: var(--a); }
.event-crumb-sep { font-size: .62rem; color: var(--t3); opacity: .5; flex-shrink: 0; }
.event-crumb-name {
  font-family: var(--brand); font-weight:700; font-size: clamp(.86rem,2.2vw,1.05rem);
  color: var(--a); text-shadow: var(--glow); white-space: nowrap;
  overflow: hidden; text-overflow: ellipsis; max-width: 42vw;
}
.event-tab-nav {
  display: flex; align-items: center; gap: .05rem; flex-shrink: 0;
  position: absolute; left: 50%; transform: translateX(-50%);
  pointer-events: auto;
}
.event-tab-nav li a {
  display: flex; align-items: center; gap: .35rem;
  padding: .34rem .75rem; border-radius: var(--r-xs);
  font-size: .87rem; font-weight: 600; color: var(--t2);
  border: 1px solid transparent; transition: all var(--ease); white-space: nowrap;
}
.event-tab-nav li a:hover, .event-tab-nav li a.active {
  color: var(--a); background: var(--glass); border-color: var(--b); opacity: 1;
}
.event-tab-nav li a .tab-text { display: inline; }
.ev-status-pill--nav {
  flex-shrink: 0; padding: .28rem .7rem; border-radius: 999px;
  font-family: var(--mono); font-size: .68rem; font-weight: 700; letter-spacing: .04em;
  display: flex; align-items: center; gap: .3rem;
}
.ev-status-pill {
  font-size: .7rem; padding: .25rem .7rem; border-radius: 999px;
  font-family: var(--mono); font-weight: 700; white-space: nowrap;
}
.ev-status-pill.live     { background:rgba(var(--ok-rgb),.12); color:var(--ok);  border:1px solid rgba(var(--ok-rgb),.32); }
.ev-status-pill.upcoming { background:rgba(255,200,0,.1);  color:var(--ay); border:1px solid rgba(255,200,0,.25); }
.ev-status-pill.ended,
.ev-status-pill.archived { background:rgba(255,85,85,.08); color:var(--ar); border:1px solid rgba(255,85,85,.2); }
.drawer-event-label {
  padding: .5rem 1.1rem; font-family: var(--brand); font-weight: 700;
  color: var(--a); font-size: .85rem; display: flex; align-items: center; gap: .4rem;
}
.pd-exit:hover { background: rgba(255,165,0,.1) !important; color: var(--aw) !important; }

.main-content--event { position: relative; }

.ev-team-callout {
  display: flex; align-items: center; gap: 1rem; margin-bottom: 1.5rem;
  flex-wrap: wrap;
}
.ev-team-callout-icon {
  width: 42px; height: 42px; border-radius: 50%; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  background: rgba(var(--a-rgb),.1); border: 1px solid var(--b); color: var(--a); font-size: 1.1rem;
}
.ev-team-callout-body { flex: 1; min-width: 160px; }
.ev-team-callout-title { font-weight: 700; color: var(--t1); font-size: .95rem; }
.ev-team-callout-sub { color: var(--t3); font-size: .82rem; margin-top: .15rem; }
.ev-team-callout-sub .ttag { color: var(--ab); font-family: var(--mono); }

@media (min-width: 768px) {
  .navbar--event {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    gap: .6rem;
  }
  .nav-brand--event { min-width: 0; }
  .nav-end--event { min-width: 0; }
  .event-tab-nav {
    position: static;
    left: auto;
    transform: none;
    justify-self: center;
  }
}

@media (max-width: 1024px) {
  .nav-brand--event .brand-name { display: none; }
  .nav-end--event .profile-trigger-name { max-width: 6rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
}

@media (max-width: 860px) {
  .event-crumb-name { max-width: 28vw; }
  .event-tab-nav { gap: 0; }
  .event-tab-nav li a { padding: .3rem .55rem; font-size: .8rem; gap: .25rem; }
}

@media (max-width: 767px) {
  .navbar--event { gap: .4rem; flex-wrap: nowrap; }

  .event-tab-nav { display: none; }

  .nav-brand--event { gap: .35rem; flex: 1 1 auto; min-width: 0; }
  .nav-brand--event .brand-name { display: none; }
  .event-crumb-root .brand-icon { font-size: .95rem; flex-shrink: 0; }
  .event-crumb-root { flex-shrink: 0; }
  .event-crumb-sep { display: inline-block; }
  .event-crumb-name { display: inline-block; max-width: 48vw; }
  .nav-end--event { gap: .35rem; flex: 0 0 auto; }
  .nav-end--event .ev-status-pill--nav .ev-status-pill-label { display: none; }
  .nav-end--event .btn-nav-ghost,
  .nav-end--event .btn-nav-cta { display: none; }

  .navbar--event .nav-toggle { display: none !important; }
}

.event-bottom-tabbar {
  display: none;
}

@media (max-width: 767px) {
  :root { --bottom-tab-h: 60px; }

  .event-bottom-tabbar {
    display: flex;
    align-items: stretch;
    justify-content: space-around;
    position: fixed;
    left: 0; right: 0; bottom: 0;
    height: calc(var(--bottom-tab-h) + env(safe-area-inset-bottom));
    padding-bottom: env(safe-area-inset-bottom);
    background: var(--nav-bg);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    border-top: 1px solid var(--b);
    box-shadow: 0 -6px 24px rgba(0,0,0,.35);
    z-index: 840;
  }

  .ebt-item {
    flex: 1 1 0;
    min-width: 0;
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    gap: .22rem;
    padding: 0 2px;
    color: var(--t3);
    text-decoration: none;
    font-family: var(--font);
    font-weight: 600;
    position: relative;
    transition: color var(--ease);
  }
  .ebt-item i { font-size: 1.05rem; line-height: 1; transition: transform var(--ease); }
  .ebt-label { font-size: .62rem; letter-spacing: .01em; white-space: nowrap; max-width: 100%; overflow: hidden; text-overflow: ellipsis; }

  .ebt-item.active,
  .ebt-item:active { color: var(--a); }
  .ebt-item.active i { transform: translateY(-1px); }
  .ebt-item.active::before {
    content: ''; position: absolute; top: 0; left: 50%; transform: translateX(-50%);
    width: 22px; height: 2px; border-radius: 2px;
    background: var(--a); box-shadow: var(--glow);
  }

  .ebt-more.active { color: var(--a); }

  .main-content--event { padding-bottom: calc(var(--bottom-tab-h) + env(safe-area-inset-bottom) + 1rem); }
  .site-footer { margin-bottom: calc(var(--bottom-tab-h) + env(safe-area-inset-bottom)); }
  body.event-scope #toast-container { bottom: calc(var(--bottom-tab-h) + env(safe-area-inset-bottom) + .9rem); }
}

@media (max-width: 380px) {
  .ebt-item i { font-size: .95rem; }
  .ebt-label { font-size: .58rem; }
}

@media (hover: none) and (pointer: coarse) {
  .ebt-item { min-height: 44px; }
}

.ev-rules-prizes-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; }
@media (max-width: 700px) {
  .ev-rules-prizes-grid { grid-template-columns: 1fr; gap: 1.1rem; }
}




html, body { max-width: 100%; overflow-x: hidden; }
img, video, svg, canvas, iframe { max-width: 100%; height: auto; }
table { max-width: 100%; }
pre, code, .modal-desc { overflow-wrap: anywhere; word-break: break-word; }


@media (max-width: 767px) {
  .form-group input,
  .form-group select,
  .form-group textarea,
  .flag-input-row input,
  input[type="text"],
  input[type="email"],
  input[type="password"],
  input[type="search"],
  input[type="number"],
  textarea,
  select {
    font-size: 16px !important;
  }
  .otp-input { font-size: 1.6rem !important; }
}


.navbar { padding-left: max(1.1rem, env(safe-area-inset-left)); padding-right: max(1.1rem, env(safe-area-inset-right)); }
.site-footer { padding-bottom: max(1.1rem, env(safe-area-inset-bottom)); }
#toast-container { bottom: max(.9rem, env(safe-area-inset-bottom)); }
.nav-drawer { padding-bottom: max(1.5rem, env(safe-area-inset-bottom)); }


@media (hover: none) and (pointer: coarse) {
  .nav-toggle, .modal-close, .btn-sm,
  .filter-btn, .tab-btn, .admin-nav-link, .nav-drawer a,
  .profile-dropdown a, .toggle-pw { min-height: 40px; }
  .theme-toggle { min-width: 40px; min-height: 40px; }
  .btn { min-height: 44px; }
  .btn-sm { min-height: 38px; }
  
  .card:hover, .challenge-card:hover, .team-card:hover,
  .btn-primary:hover, .btn-outline:hover, .btn-nav-cta:hover { transform: none; }
}


@media (min-width: 768px) and (max-width: 1024px) {
  .container, .container-wide { padding: 1.5rem 1.25rem; }
  .challenges-grid { grid-template-columns: repeat(auto-fill, minmax(min(100%, 250px), 1fr)); }
  .admin-stats { grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); }
  .hero-glitch { letter-spacing: 1px; }
  .stat-grid { grid-template-columns: repeat(4, 1fr); }
}


@media (max-width: 767px) {
  .stat-grid { grid-template-columns: repeat(2, 1fr); }
  .admin-header { flex-direction: column; align-items: flex-start; }
  .admin-header .action-btns,
  .admin-header form { width: 100%; }
  .admin-header form input { width: 100%; }
  .modal-info { gap: .35rem; }
  .modal-badge { font-size: .74rem; }
  .form-card { margin: calc(var(--nav-h) + 1.25rem) auto 2rem; padding: 1.5rem 1.25rem 1.25rem; }
  .auth-tabs { margin-bottom: 1rem; }
  .team-hero { text-align: center; }
  .member-row { flex-wrap: wrap; gap: .4rem; }
  .btn-block-mobile, .hero-cta .btn, .flag-input-row .btn { width: 100%; }
  h1 { word-break: break-word; }
}


@media (max-width: 380px) {
  .container, .container-wide, .container-narrow { padding: .85rem .65rem; }
  .card, .challenge-card, .team-card { padding: .85rem; }
  .page-header h1 { font-size: 1.4rem; }
  .modal-body, .modal-header { padding: .85rem; }
  .profile-avatar { width: 76px; height: 76px; font-size: 1.7rem; }
  .toast { font-size: .82rem; }
}


@media (max-height: 480px) and (orientation: landscape) {
  .hero { min-height: auto; padding: 5rem 1rem 2rem; }
  .modal-overlay { align-items: center; padding: .5rem; }
  .modal { max-height: 94vh; }
  :root { --nav-h: 50px; }
}


@media (min-width: 1025px) and (max-width: 1279px) {
  .challenges-grid { grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }
}


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


 
.markdown-body > *:first-child { margin-top: 0; }
.markdown-body > *:last-child  { margin-bottom: 0; }
.markdown-body h1,
.markdown-body h2,
.markdown-body h3,
.markdown-body h4,
.markdown-body h5,
.markdown-body h6 {
  font-family: var(--brand);
  color: var(--t1);
  font-weight: 800;
  line-height: 1.35;
  margin: 1.5rem 0 .75rem;
}
.markdown-body h1 { font-size: 1.5rem; }
.markdown-body h2 { font-size: 1.28rem; padding-bottom: .4rem; border-bottom: 1px solid var(--b); }
.markdown-body h3 { font-size: 1.12rem; }
.markdown-body h4 { font-size: 1rem; }
.markdown-body p  { margin: 0 0 1rem; }
.markdown-body a  { color: var(--a); text-decoration: underline; text-decoration-color: rgba(var(--a-rgb),.35); }
.markdown-body a:hover { opacity: .85; }
.markdown-body strong { color: var(--t1); font-weight: 700; }
.markdown-body em { font-style: italic; }
.markdown-body del { opacity: .65; }
.markdown-body ul,
.markdown-body ol {
  margin: 0 0 1rem;
  padding-left: 1.5rem;
}
.markdown-body li { margin-bottom: .35rem; }
.markdown-body hr {
  border: none;
  border-top: 1px solid var(--b);
  margin: 1.75rem 0;
}
.markdown-body blockquote {
  margin: 0 0 1rem;
  padding: .6rem 1rem;
  border-left: 3px solid var(--a);
  background: rgba(var(--a-rgb),.05);
  color: var(--t2);
  border-radius: 0 var(--r-sm) var(--r-sm) 0;
}
.markdown-body blockquote p:last-child { margin-bottom: 0; }
.markdown-body code {
  font-family: var(--mono);
  font-size: .85em;
  background: rgba(0,0,0,.25);
  border: 1px solid var(--b);
  padding: .1rem .4rem;
  border-radius: 4px;
  color: var(--a);
}
.markdown-body pre.md-pre {
  background: rgba(0,0,0,.3);
  border: 1px solid var(--b);
  border-radius: var(--r-sm);
  padding: 1rem 1.1rem;
  overflow-x: auto;
  margin: 0 0 1rem;
}
.markdown-body pre.md-pre code {
  background: none;
  border: none;
  padding: 0;
  color: var(--t2);
  font-size: .85rem;
  line-height: 1.6;
  white-space: pre;
}
.markdown-body img {
  max-width: 100%;
  border-radius: var(--r-sm);
  border: 1px solid var(--b);
  margin: .5rem 0 1rem;
  display: block;
}
.markdown-body:empty::before {
  content: 'Nothing to preview yet — start typing in the Write tab.';
  color: var(--t3);
  font-style: italic;
  font-size: .85rem;
}

 
.wu-md-tabs {
  display: flex;
  gap: .3rem;
  margin-bottom: .5rem;
}
.wu-md-tab {
  font-size: .78rem;
  font-family: var(--font);
  font-weight: 600;
  padding: .35rem .9rem;
  border-radius: var(--r-sm) var(--r-sm) 0 0;
  border: 1px solid var(--b);
  border-bottom: none;
  background: transparent;
  color: var(--t3);
  cursor: pointer;
  transition: all .15s;
}
.wu-md-tab:hover { color: var(--t2); }
.wu-md-tab.active {
  background: var(--inp);
  color: var(--a);
  border-color: var(--a);
}
.wu-md-preview {
  overflow-y: auto;
  cursor: default;
  font-family: var(--font);
  font-size: .88rem;
  line-height: 1.7;
  white-space: normal;
}


.rbh-ann-body.markdown-body,
.ev-ann-body.markdown-body,
.announcement-content.markdown-body,
.modal-desc.markdown-body { white-space: normal; }

.rbh-ann-body.markdown-body h1, .rbh-ann-body.markdown-body h2, .rbh-ann-body.markdown-body h3,
.rbh-ann-body.markdown-body h4, .rbh-ann-body.markdown-body h5, .rbh-ann-body.markdown-body h6,
.ev-ann-body.markdown-body h1,  .ev-ann-body.markdown-body h2,  .ev-ann-body.markdown-body h3,
.ev-ann-body.markdown-body h4,  .ev-ann-body.markdown-body h5,  .ev-ann-body.markdown-body h6,
.announcement-content.markdown-body h1, .announcement-content.markdown-body h2, .announcement-content.markdown-body h3,
.announcement-content.markdown-body h4, .announcement-content.markdown-body h5, .announcement-content.markdown-body h6,
.modal-desc.markdown-body h1, .modal-desc.markdown-body h2, .modal-desc.markdown-body h3,
.modal-desc.markdown-body h4, .modal-desc.markdown-body h5, .modal-desc.markdown-body h6 {
  font-size: 1rem; margin: 1rem 0 .4rem; padding-bottom: 0; border-bottom: none;
}
.rbh-ann-body.markdown-body p, .ev-ann-body.markdown-body p,
.announcement-content.markdown-body p, .modal-desc.markdown-body p { margin: 0 0 .65rem; }
.rbh-ann-body.markdown-body ul, .rbh-ann-body.markdown-body ol,
.ev-ann-body.markdown-body ul,  .ev-ann-body.markdown-body ol,
.announcement-content.markdown-body ul, .announcement-content.markdown-body ol,
.modal-desc.markdown-body ul, .modal-desc.markdown-body ol { margin: 0 0 .65rem; }
.rbh-ann-body.markdown-body hr, .ev-ann-body.markdown-body hr,
.announcement-content.markdown-body hr, .modal-desc.markdown-body hr { margin: 1rem 0; }

.md-preview-box {
  background: var(--inp);
  border: 1px solid var(--b);
  border-radius: var(--r-sm);
  padding: .75rem .9rem;
  max-height: 60vh;
  overflow-y: auto;
  cursor: default;
}
.md-preview-box.md-preview-error { color: var(--ar); font-size: .85rem; }
.md-preview-box.cotw-desc { color: var(--t2); font-size: .94rem; line-height: 1.75; }

.brand-tag{
  font-family:var(--mono);font-size:.62rem;font-weight:500;letter-spacing:.08em;
  padding:.16rem .45rem;border-radius:var(--r-xs);
  color:var(--a);background:rgba(var(--a-rgb),.1);border:1px solid rgba(var(--a-rgb),.28);
  line-height:1;align-self:center;
}

.brand-logo-wrap{display:inline-flex;align-items:center;line-height:0}
.brand-logo{height:36px;width:auto;display:block;transition:opacity var(--ease),transform var(--ease)}
.brand-logo--dark{display:none}
[data-theme="dark"] .brand-logo--light{display:none}
[data-theme="dark"] .brand-logo--dark{display:block}
.nav-brand a:hover .brand-logo{opacity:.9;transform:scale(1.03)}
.brand-icon--compact{display:none}
.nav-brand a{gap:.55rem}
@media(max-width:1024px){
  .nav-brand--event .brand-logo-wrap{display:none}
  .nav-brand--event .brand-icon--compact{display:inline-flex}
}
@media(max-width:480px){
  .brand-logo{height:30px}
}

[data-theme="dark"] body{
  background:radial-gradient(ellipse 55% 45% at 80% 25%,rgba(30,155,255,.07),transparent 70%),var(--bg);
}
[data-theme="light"] body{
  background:linear-gradient(145deg,#edf4fc 0%,#f5f7ff 45%,#eaf4ff 100%);
}
::selection{background:rgba(var(--a-rgb),.28)}


.ai-teams-note{margin:2.5rem 0 0;max-width:none;width:100%;border:1px solid var(--b);border-radius:var(--r);background:var(--glass);
  font-size:.84rem;color:var(--t2);opacity:.85;transition:opacity .15s,border-color .15s,box-shadow .15s}
.ai-teams-note:hover,.ai-teams-note[open]{opacity:1}
.ai-teams-note[open]{border-color:rgba(var(--ab-rgb),.35);box-shadow:0 10px 30px rgba(0,0,0,.18)}
.ai-teams-note>summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:.85rem;padding:.85rem 1.1rem;user-select:none;border-radius:var(--r)}
.ai-teams-note>summary::-webkit-details-marker{display:none}
.ai-teams-note>summary:hover{background:rgba(var(--a-rgb),.04)}
.ai-teams-note>summary:focus-visible{outline:2px solid var(--a);outline-offset:2px}
.ai-teams-note[open]>summary{border-bottom:1px solid var(--b);border-radius:var(--r) var(--r) 0 0}
.ai-teams-note .ai-badge{flex:0 0 auto;width:2.2rem;height:2.2rem;border-radius:50%;display:flex;align-items:center;justify-content:center;
  background:rgba(var(--ab-rgb),.12);color:var(--ab);font-size:.95rem}
.ai-teams-note .ai-sum-text{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:.12rem}
.ai-teams-note .ai-sum-title{font-weight:700;color:var(--t1);font-size:.9rem;display:flex;align-items:center;gap:.5rem}
.ai-teams-note .ai-count{font-family:var(--mono);font-size:.68rem;font-weight:600;padding:.05rem .5rem;border-radius:999px;border:1px solid var(--b);color:var(--t2)}
.ai-teams-note .ai-sum-sub{font-size:.72rem;color:var(--t3);line-height:1.4}
.ai-teams-note[open] .ai-sum-sub{display:none}
.ai-teams-note .ai-chev{flex:0 0 auto;font-size:.72rem;color:var(--t3);transition:transform .2s}
.ai-teams-note[open] .ai-chev{transform:rotate(180deg)}

.ai-teams-note>table{width:calc(100% - 2.2rem);margin:1rem 1.1rem .4rem;border-collapse:separate;border-spacing:0}
.ai-teams-note th{font-weight:500;text-transform:uppercase;letter-spacing:.08em;font-size:.64rem;color:var(--t3);padding:.35rem .6rem .5rem;border-bottom:1px solid var(--b)}
.ai-teams-note td{padding:.7rem .6rem;border-bottom:1px solid var(--b);color:var(--t1);font-size:.86rem}
.ai-teams-note tbody tr:last-child td{border-bottom:0}
.ai-teams-note tbody tr:hover td{background:rgba(var(--a-rgb),.04)}
.ai-teams-note td:first-child{font-weight:600}
.ai-teams-note td:last-child{font-family:var(--mono);font-weight:700;color:var(--a)}
.ai-teams-note .ai-tag{color:var(--ab);font-family:var(--mono);font-size:.7rem;font-weight:500;margin-left:.3rem}

.ai-teams-note .ai-info{margin:.9rem 1.1rem 1.1rem;padding-top:1.1rem;border-top:1px dashed var(--b);text-align:left}
.ai-teams-note .ai-info-title{font-size:.66rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--t3);margin-bottom:.5rem}
.ai-teams-note .ai-intro{margin:0;max-width:72ch;line-height:1.7;color:var(--t2)}
.ai-teams-note .ai-info code{font-family:var(--mono);font-size:.74rem;padding:.08rem .4rem;border-radius:5px;background:rgba(var(--ab-rgb),.12);color:var(--ab);white-space:nowrap}
.ai-teams-note .ai-cols{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin:1rem 0}
.ai-teams-note .ai-col{border:1px solid var(--b);border-radius:var(--r-sm);padding:.8rem .95rem}
.ai-teams-note .ai-col.yes{border-color:rgba(var(--a-rgb),.28);background:rgba(var(--a-rgb),.05)}
.ai-teams-note .ai-col.no{border-color:rgba(255,85,85,.28);background:rgba(255,85,85,.05)}
.ai-teams-note .ai-col-h{display:flex;align-items:center;gap:.45rem;font-weight:700;font-size:.78rem;color:var(--t1);margin-bottom:.5rem}
.ai-teams-note .ai-col.yes .ai-col-h i{color:var(--ok)}
.ai-teams-note .ai-col.no .ai-col-h i{color:var(--ar)}
.ai-teams-note .ai-col ul{list-style:none;margin:0;padding:0;display:grid;gap:.35rem}
.ai-teams-note .ai-col li{position:relative;padding-left:.95rem;line-height:1.5;font-size:.8rem;color:var(--t2)}
.ai-teams-note .ai-col li::before{content:"";position:absolute;left:.15rem;top:.55em;width:.3rem;height:.3rem;border-radius:50%;background:var(--t3)}
.ai-teams-note .ai-notice{display:flex;gap:.7rem;align-items:flex-start;padding:.85rem 1rem;border-radius:var(--r-sm);
  background:rgba(var(--ab-rgb),.07);border-left:3px solid var(--ab);line-height:1.65;color:var(--t2);font-size:.82rem}
.ai-teams-note .ai-notice>i{flex:0 0 auto;margin-top:.25rem;color:var(--ab)}
.ai-teams-note .ai-notice strong{color:var(--t1);font-weight:600}
@media (max-width:560px){
  .ai-teams-note{margin-top:2rem}
  .ai-teams-note>summary{padding:.75rem .85rem}
  .ai-teams-note .ai-cols{grid-template-columns:1fr}
  .ai-teams-note>table{width:calc(100% - 1.6rem);margin-left:.8rem;margin-right:.8rem}
  .ai-teams-note .ai-info{margin-left:.8rem;margin-right:.8rem}
}

.ai-pill{display:inline-flex;align-items:center;gap:.3rem;vertical-align:middle;padding:.08rem .5rem;border-radius:999px;
  border:1px solid rgba(var(--ab-rgb),.4);background:rgba(var(--ab-rgb),.1);color:var(--ab);
  font-family:var(--mono);font-size:.62rem;font-weight:700;letter-spacing:.06em;line-height:1.5;white-space:nowrap}
.ai-pill i{font-size:.6rem}
.ai-pill{margin-left:.15rem}



:root{
  --font-brand: var(--brand);
  --font-mono:  var(--mono);
  --font-ui:    var(--font);

  --fs-xs:  .72rem;
  --fs-sm:  .85rem;
  --fs-md:  .95rem;
  --lh-body: 1.65;
  --ease-out: cubic-bezier(.22,.8,.26,1);
  --ring: 0 0 0 3px rgba(var(--a-rgb),.22);
  --sh-lift: 0 14px 34px -12px rgba(0,0,0,.42), 0 2px 6px rgba(0,0,0,.12);
}
[data-theme="light"]{ --sh-lift: 0 14px 34px -14px rgba(10,60,140,.28), 0 2px 6px rgba(10,60,140,.07) }

html{ scroll-padding-top: calc(var(--nav-h) + 16px) }
body{
  font-family: var(--font);
  font-size: 16px;
  line-height: var(--lh-body);
  font-weight: 400;
  font-optical-sizing: auto;
  font-feature-settings: "cv11","ss01","calt","kern";
  font-kerning: normal;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
h1,h2,h3,h4,h5,h6{
  font-family: var(--brand);
  font-weight: 700;
  line-height: 1.18;
  letter-spacing: -.018em;
  text-wrap: balance;
}
p,li{ text-wrap: pretty }
p{ line-height: var(--lh-body) }
::selection{ background: rgba(var(--a-rgb),.28); color: var(--t1) }
:focus-visible{ outline: 2px solid var(--a); outline-offset: 2px; border-radius: 4px }
code,kbd,samp,pre{ font-family: var(--mono); font-feature-settings: "calt","zero","ss02"; font-variant-ligatures: contextual }

.scoreboard-table td,.data-table td,.hero-stat-num,.stat-box-num,.admin-stat-num,
.challenge-points,.profile-score,.cd-num,.pd-score,.challenge-solves{
  font-variant-numeric: tabular-nums lining-nums;
  font-feature-settings: "tnum","lnum";
}

*{ scrollbar-width: thin; scrollbar-color: rgba(var(--a-rgb),.35) transparent }
::-webkit-scrollbar{ width:10px; height:10px }
::-webkit-scrollbar-track{ background: transparent }
::-webkit-scrollbar-thumb{ background: rgba(var(--a-rgb),.28); border-radius: 999px; border:2px solid var(--bg) }
::-webkit-scrollbar-thumb:hover{ background: rgba(var(--a-rgb),.5) }

.navbar{ box-shadow: 0 1px 0 var(--b), 0 10px 30px -18px rgba(0,0,0,.5) }
.nav-brand a{ font-weight: 900; letter-spacing: .08em; transition: opacity var(--ease), transform .3s var(--ease-out) }
.nav-brand a:hover{ opacity:1; transform: translateX(1px) }
.nav-links li a{
  font-family: var(--font); font-size: .86rem; font-weight: 600; letter-spacing: .005em;
  border-radius: var(--r-sm); padding: .4rem .8rem; position: relative;
}
.nav-links li a.active::after{
  content:''; position:absolute; left:.8rem; right:.8rem; bottom:-1px; height:2px;
  border-radius:2px; background: var(--a);
}
.btn-nav-cta{ letter-spacing: .01em; border-radius: var(--r-sm) !important }
.profile-trigger-name{ font-family: var(--brand); font-weight: 600; letter-spacing: -.005em }
.pd-name{ font-family: var(--brand); font-weight: 700; letter-spacing: -.01em }
.pd-score{ font-weight: 500; letter-spacing: .02em }
.profile-dropdown{ border-radius: var(--r); box-shadow: var(--sh-lift) }
.profile-dropdown a{ font-weight: 600; letter-spacing: .003em; border-radius: var(--r-sm) }
.nav-drawer a{ font-family: var(--font); letter-spacing: .005em }

.page-header{ padding: 2.8rem 1rem 1.8rem }
.page-header h1{
  font-weight: 700; letter-spacing: -.03em; line-height: 1.08;
}
.page-header p{ max-width: 60ch; margin: .5rem auto 0; line-height: 1.6; color: var(--t2) }
.hero-glitch{ letter-spacing: -.03em; line-height: 1.04; font-weight: 700 }
.hero-sub{ font-weight: 400; letter-spacing: -.01em; line-height: 1.7 }
.hero-stat-num{ font-weight: 700; letter-spacing: -.03em }
.hero-stat-label{
  font-family: var(--mono); font-size: .66rem; font-weight: 500;
  letter-spacing: .16em; text-transform: uppercase; margin-top: .45rem;
}
.rbh-logo-hex{ letter-spacing: .01em !important }
.rbh-tagline{ font-weight: 400; line-height: 1.7; letter-spacing: -.005em }
.section-title{ font-family: var(--brand); font-weight: 700; letter-spacing: -.02em }

.btn{
  font-family: var(--font); font-weight: 650; font-size: .92rem; letter-spacing: .005em;
  padding: .62rem 1.3rem; border-radius: var(--r-sm); line-height: 1.2;
  transition: transform .2s var(--ease-out), box-shadow .2s ease, background var(--ease), color var(--ease), border-color var(--ease), opacity var(--ease);
}
.btn-primary{ box-shadow: 0 1px 0 rgba(255,255,255,.14) inset, 0 6px 16px -8px rgba(var(--a-rgb),.55) }
.btn-primary:hover{ transform: translateY(-2px); box-shadow: 0 1px 0 rgba(255,255,255,.18) inset, 0 12px 24px -10px rgba(var(--a-rgb),.65) }
.btn-outline:hover{ transform: translateY(-2px); box-shadow: 0 10px 22px -12px rgba(var(--a-rgb),.6) }
.btn:focus-visible{ outline: none; box-shadow: var(--ring) }
.btn-sm{ font-size: .8rem; padding: .38rem .85rem }
.btn i{ font-size: .85em }
.filter-btn{ font-family: var(--font); font-weight: 600; letter-spacing: .01em; transition: all .2s var(--ease-out) }

.card,.team-card,.stat-box,.admin-stat-card,.announcement-card,.mode-card,.ev-team-callout{
  border-radius: var(--r);
  transition: border-color var(--ease), box-shadow .25s ease, transform .25s var(--ease-out), background var(--ease);
}
.card{ box-shadow: var(--sh-sm), 0 1px 0 rgba(255,255,255,.03) inset }
.card:hover{ box-shadow: var(--sh) }
.team-card:hover,.stat-box:hover,.admin-stat-card:hover,.mode-card:hover{ transform: translateY(-3px); box-shadow: var(--sh-lift) }

.challenges-grid{ gap: 1.05rem }
.challenge-card{ padding: 1.2rem 1.2rem 1.1rem; border-radius: var(--r); transition: transform .25s var(--ease-out), border-color var(--ease), box-shadow .25s ease }
.challenge-card:hover{ transform: translateY(-4px); box-shadow: var(--sh-lift) }
.challenge-cat{
  font-family: var(--mono); font-size: .66rem; font-weight: 600;
  letter-spacing: .14em; margin-bottom: .6rem;
}
.challenge-title{
  font-family: var(--brand); font-size: 1.1rem; font-weight: 600;
  letter-spacing: -.015em; line-height: 1.25; margin-bottom: .4rem;
}
.challenge-desc{ font-size: .85rem; line-height: 1.6 }
.challenge-points{ font-size: 1.2rem; letter-spacing: -.02em }
.difficulty-badge{
  font-family: var(--mono); font-size: .63rem; font-weight: 600; letter-spacing: .08em;
  text-transform: uppercase; padding: .2rem .6rem; border-width: 1px;
}
.challenge-solves{ font-family: var(--mono); font-size: .68rem; letter-spacing: .02em }
.challenge-card.solved::after{ font-weight: 600; letter-spacing: .1em; font-size: .58rem }

.form-card{ border-radius: calc(var(--r) + 4px); box-shadow: var(--sh-lift) }
.form-card h2,.auth-header h2{ font-family: var(--brand); font-weight: 700; letter-spacing: -.025em }
.form-group label{
  font-family: var(--font); font-size: .78rem; font-weight: 600;
  letter-spacing: .02em; color: var(--t2);
}
.form-group input,.form-group select,.form-group textarea,.input-wrap input{
  font-family: var(--font); font-size: .95rem; line-height: 1.4;
  border-radius: var(--r-sm);
  transition: border-color var(--ease), box-shadow .2s ease, background var(--ease);
}
.form-group input::placeholder,.form-group textarea::placeholder,.input-wrap input::placeholder{ color: var(--t3); opacity: .8; font-weight: 400 }
.form-group input:focus,.form-group select:focus,.form-group textarea:focus,.input-wrap input:focus{
  box-shadow: var(--ring); outline: none;
}
.form-help{ font-size: .76rem; line-height: 1.5 }
.otp-input{ font-family: var(--mono); font-weight: 600; letter-spacing: .5em }
.flag-input-row input{ font-family: var(--mono); font-size: .9rem; letter-spacing: .01em; transition: border-color var(--ease), box-shadow .2s ease }
.flag-input-row input:focus{ box-shadow: var(--ring) }

.modal{ border-radius: calc(var(--r) + 4px); box-shadow: 0 30px 80px -20px rgba(0,0,0,.65) }
.modal-header h2{ font-family: var(--brand); font-weight: 700; letter-spacing: -.02em; font-size: 1.25rem }
.modal-desc{ font-size: .92rem; line-height: 1.75 }
.modal-badge{ font-family: var(--mono); font-size: .66rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase }
.modal-overlay.active .modal{ animation: rbhPop .28s var(--ease-out) both }
@keyframes rbhPop{ from{ opacity:0; transform: translateY(14px) scale(.98) } to{ opacity:1; transform:none } }

.scoreboard-table th,.data-table th{
  font-family: var(--mono); font-size: .66rem; font-weight: 600;
  letter-spacing: .14em; text-transform: uppercase; color: var(--t3);
  padding-top: .85rem; padding-bottom: .85rem;
}
.scoreboard-table td,.data-table td{ font-size: .9rem; line-height: 1.45; transition: background .18s ease }
.scoreboard-table td:first-child{ font-family: var(--brand); font-weight: 700 }
.scoreboard-table tbody tr.rank-1 td,.scoreboard-table tbody tr.rank-2 td,.scoreboard-table tbody tr.rank-3 td{ font-weight: 600 }
.score-bar{ border-radius: 999px }
.score-bar-wrap{ border-radius: 999px; overflow: hidden }

.profile-username{ font-weight: 700; letter-spacing: -.02em; font-size: 1.35rem }
.profile-score{ font-weight: 700; letter-spacing: -.03em }
.profile-score-label,.stat-box-label,.admin-stat-label{
  font-family: var(--mono); font-weight: 500; letter-spacing: .14em; font-size: .62rem;
}
.stat-box-num,.admin-stat-num{ font-weight: 700; letter-spacing: -.025em }
.profile-bio{ line-height: 1.7 }

.badge{ font-family: var(--mono); font-size: .66rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase }
.tab-btn,.auth-tab,.wu-md-tab{ font-family: var(--font); font-weight: 600; letter-spacing: .005em }
.toast{ font-family: var(--font); font-size: .88rem; line-height: 1.5; border-radius: var(--r-sm); box-shadow: var(--sh-lift) }
.ctf-banner{ border-radius: var(--r) }
.ctf-banner__title{ font-family: var(--brand); font-weight: 700; letter-spacing: -.015em }
.ctf-banner__sub{ line-height: 1.55 }
.cd-num{ font-family: var(--brand); font-weight: 700; letter-spacing: -.02em }
.cd-lbl{ font-family: var(--mono); font-size: .58rem; letter-spacing: .16em; text-transform: uppercase }
.ev-status-pill{ font-family: var(--mono); font-weight: 600; letter-spacing: .1em }
.event-tab-nav li a{ font-family: var(--font); font-weight: 600; letter-spacing: .005em }

.admin-sidebar-title{ font-family: var(--mono); font-size: .64rem; font-weight: 600; letter-spacing: .16em }
.admin-nav-link{ font-weight: 600; letter-spacing: .005em; border-radius: var(--r-sm) }
.admin-header h1{ font-weight: 700; letter-spacing: -.025em }

.markdown-body{ font-size: .95rem; line-height: 1.8 }
.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4{ font-family: var(--brand); letter-spacing: -.02em; line-height: 1.25 }
.markdown-body h2{ margin-top: 1.9em }
.markdown-body code,.markdown-body pre.md-pre code{ font-family: var(--mono); font-size: .86em }
.markdown-body pre.md-pre{ border-radius: var(--r-sm); line-height: 1.65 }
.markdown-body blockquote{ border-radius: 0 var(--r-sm) var(--r-sm) 0 }

.footer-logo{ font-family: var(--logo); letter-spacing: .1em }
.footer-tagline{ font-family: var(--mono); font-size: .72rem; letter-spacing: .06em }
.site-footer a{ font-weight: 500 }

@keyframes rbhRise{ from{ opacity:0; transform: translateY(10px) } to{ opacity:1; transform:none } }
.main-content > .container,.main-content > .container-wide,.main-content > .container-narrow,.page-header{
  animation: rbhRise .5s var(--ease-out) both;
}
.challenges-grid > *,.stat-grid > *,.admin-stats > *{ animation: rbhRise .5s var(--ease-out) both }
.challenges-grid > *:nth-child(2),.stat-grid > *:nth-child(2),.admin-stats > *:nth-child(2){ animation-delay: .04s }
.challenges-grid > *:nth-child(3),.stat-grid > *:nth-child(3),.admin-stats > *:nth-child(3){ animation-delay: .08s }
.challenges-grid > *:nth-child(4),.stat-grid > *:nth-child(4),.admin-stats > *:nth-child(4){ animation-delay: .12s }
.challenges-grid > *:nth-child(n+5){ animation-delay: .16s }

@media (max-width: 640px){
  body{ font-size: 15.5px }
  .page-header{ padding: 2rem 1rem 1.25rem }
  .challenge-title{ font-size: 1.05rem }
}
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{ animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important }
}
