.topbar{
  position:sticky;
  top:0;
  z-index:50;
  color:#fff;
  background:linear-gradient(100deg,#0f2250 0%,#1c3f94 45%,#9c2118 100%);
  box-shadow:0 2px 14px rgba(0,0,0,.18);
}
.topbar-inner{
  max-width:1240px;
  margin:0 auto;
  display:flex;
  align-items:center;
  gap:16px;
  padding:10px 18px;
  flex-wrap:wrap;
}

.brand{
  display:flex;
  align-items:center;
  gap:10px;
  font-weight:700;
  font-size:17px;
  white-space:nowrap;
}
.flag{
  width:26px;
  height:18px;
  border-radius:3px;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  box-shadow:0 0 0 1px rgba(255,255,255,.4);
}
.flag i{flex:1;display:block}
.flag i:nth-child(1){background:#fff}
.flag i:nth-child(2){background:#1c3f94}
.flag i:nth-child(3){background:#d52b1e}

.nav{display:flex;gap:3px;flex-wrap:wrap;margin-left:auto}
.nav button{
  background:transparent;
  border:0;
  color:#dbe4ff;
  padding:8px 12px;
  border-radius:8px;
  cursor:pointer;
  font-size:14px;
  font-family:inherit;
  transition:.15s;
}
.nav button:hover{background:rgba(255,255,255,.14);color:#fff}
.nav button.active{background:#fff;color:var(--blue-dark);font-weight:600}

.auth-area{display:flex;align-items:center;gap:8px}
.who{font-size:13px;color:#cdd9ff;text-align:right;line-height:1.2}
.who b{display:block;color:#fff;font-size:14px}

main{max-width:1240px;margin:0 auto;padding:26px 18px 60px}

.page{display:none;animation:fade .25s ease}
.page.active{display:block}
@keyframes fade{
  from{opacity:0;transform:translateY(6px)}
  to  {opacity:1;transform:none}
}

.card{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:14px;
  padding:20px;
  box-shadow:var(--shadow);
  margin-bottom:20px;
}
.grid{display:grid;gap:16px}
.grid.c2{grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr))}
.grid.c3{grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}
.grid.c4{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}
.muted{color:var(--muted)}
.small{font-size:13px}
.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}

footer{
  border-top:1px solid var(--line);
  background:#fff;
  padding:18px;
  text-align:center;
  color:var(--muted);
  font-size:13px;
}

@media(max-width:640px){
  .hero{padding:26px 20px}
  .hero h1{font-size:26px}
  .nav{width:100%;margin-left:0;justify-content:flex-start}
  main{padding:18px 12px 50px}
}

.brand-tag{
  font-size:11px;text-transform:uppercase;letter-spacing:1px;
  background:rgba(255,255,255,.18);padding:3px 8px;border-radius:20px;
  margin-left:8px;font-weight:600
}
