:root{
  --bg:#f5f6f8; --card:#ffffff; --tx:#1c2230; --mu:#697083; --ac:#3b5bfd;
  --ac2:#8b5cf6; --ok:#1c9a5b; --no:#e0464b; --bd:#e4e7ee; --warn:#e2a13a;
  --radius:16px;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#12141c; --card:#1b1f2c; --tx:#eef0f6; --mu:#9aa2b8;
    --ac:#7c93ff; --ac2:#b49aff; --ok:#4fd394; --no:#ff7a7f; --bd:#2a3040; --warn:#f0bd6a;
  }
}
:root[data-theme="dark"]{
  --bg:#12141c; --card:#1b1f2c; --tx:#eef0f6; --mu:#9aa2b8;
  --ac:#7c93ff; --ac2:#b49aff; --ok:#4fd394; --no:#ff7a7f; --bd:#2a3040; --warn:#f0bd6a;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  background:var(--bg); color:var(--tx); min-height:100vh;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
}
a{color:inherit;text-decoration:none}
.wrap{max-width:1080px;margin:0 auto;padding:0 20px}

/* Header / nav */
.site-header{
  background:var(--card); border-bottom:1px solid var(--bd);
  position:sticky; top:0; z-index:50;
}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;gap:12px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:10px;font-weight:800;font-size:1.15rem}
.brand .logo{font-size:1.5rem}
.site-nav{display:flex;gap:6px;flex-wrap:wrap}
.site-nav a{
  padding:8px 14px;border-radius:999px;font-weight:600;font-size:.92rem;color:var(--mu);
  transition:background .15s,color .15s;
}
.site-nav a:hover{background:var(--bg);color:var(--tx)}
.site-nav a.active{background:var(--ac);color:#fff}

/* Hero */
.hero{padding:52px 0 36px;text-align:center}
.hero h1{font-size:2.1rem;margin:0 0 10px;font-weight:800}
.hero p{color:var(--mu);font-size:1.05rem;max-width:640px;margin:0 auto}

/* Cards grid */
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px;padding:8px 0 48px}
.card-link{
  background:var(--card);border:1px solid var(--bd);border-radius:var(--radius);
  padding:26px 22px;display:flex;flex-direction:column;gap:10px;transition:transform .15s,box-shadow .15s;
  min-height:190px;
}
.card-link:hover{transform:translateY(-3px);box-shadow:0 10px 28px rgba(0,0,0,.08)}
.card-link .icon{font-size:2.2rem}
.card-link h2{margin:0;font-size:1.25rem}
.card-link p{margin:0;color:var(--mu);font-size:.94rem;line-height:1.5;flex:1}
.card-link .tag{
  align-self:flex-start;font-size:.72rem;font-weight:700;padding:3px 10px;border-radius:999px;
  background:rgba(59,91,253,.12);color:var(--ac);
}
.card-link .tag.soon{background:rgba(226,161,58,.15);color:var(--warn)}

/* Generic content area (reused inside modules) */
.page-wrap{max-width:760px;margin:0 auto;padding:28px 20px 60px}
h1{font-size:1.6rem}
.mu{color:var(--mu)}
.sm{background:none;border:none;color:var(--ac);font-weight:600;cursor:pointer;padding:6px 0;font-size:.95rem}
.big{
  display:block;width:100%;text-align:left;background:var(--card);border:1px solid var(--bd);
  border-radius:12px;padding:14px 16px;margin:10px 0;cursor:pointer;color:var(--tx);font-size:1rem;
}
.big:hover{border-color:var(--ac)}
.big.pri{background:var(--ac);color:#fff;border-color:var(--ac);font-weight:700;text-align:center}
.big:disabled{opacity:.5;cursor:not-allowed}
.opt{
  display:block;width:100%;text-align:left;background:var(--card);border:1px solid var(--bd);
  border-radius:12px;padding:13px 16px;margin:8px 0;cursor:pointer;color:var(--tx);font-size:.98rem;
}
.opt:hover:not(:disabled){border-color:var(--ac)}
.opt.ok{border-color:var(--ok);background:rgba(28,154,91,.12);font-weight:700}
.opt.no{border-color:var(--no);background:rgba(224,70,75,.12)}
.top{display:flex;justify-content:space-between;align-items:center;margin:10px 0;font-size:.9rem;color:var(--mu)}
.bar{height:6px;background:var(--bd);border-radius:99px;overflow:hidden;margin-bottom:18px}
.bar i{display:block;height:100%;background:var(--ac);transition:width .25s}
.score{font-size:3rem;text-align:center;margin:8px 0}
.rev{background:var(--card);border:1px solid var(--bd);border-radius:10px;padding:10px 12px;margin:8px 0;font-size:.95rem}
.rev b{color:var(--ok)}
.field{
  width:100%;padding:12px 14px;border-radius:10px;border:1px solid var(--bd);background:var(--card);
  color:var(--tx);font-size:1rem;margin:6px 0 14px;
}
.field:focus{outline:2px solid var(--ac);border-color:var(--ac)}
.badge{display:inline-block;background:rgba(59,91,253,.12);color:var(--ac);font-weight:700;font-size:.75rem;padding:2px 9px;border-radius:999px}

/* Ranking */
.rank-row{
  display:flex;align-items:center;gap:12px;background:var(--card);border:1px solid var(--bd);
  border-radius:12px;padding:12px 14px;margin:8px 0;
}
.rank-pos{font-weight:800;width:28px;text-align:center;color:var(--mu)}
.rank-row:nth-child(1) .rank-pos{color:#e0a300}
.rank-row:nth-child(2) .rank-pos{color:#9aa2b8}
.rank-row:nth-child(3) .rank-pos{color:#c07a3e}
.rank-name{flex:1;font-weight:600}
.rank-score{font-weight:800;color:var(--ac)}

/* Footer */
.site-footer{border-top:1px solid var(--bd);padding:28px 0;margin-top:40px;text-align:center;color:var(--mu);font-size:.85rem}

/* Knowledge area */
.topic-item{
  display:flex;justify-content:space-between;align-items:center;background:var(--card);border:1px solid var(--bd);
  border-radius:12px;padding:14px 16px;margin:8px 0;cursor:pointer;
}
.topic-item:hover{border-color:var(--ac2)}
.topic-item .status{font-size:.75rem;color:var(--mu)}
.content-block{background:var(--card);border:1px solid var(--bd);border-radius:14px;padding:20px 22px;margin:14px 0;line-height:1.7}
.content-block h3{margin-top:0}
.mindmap-placeholder{
  border:2px dashed var(--bd);border-radius:12px;padding:30px;text-align:center;color:var(--mu);margin:14px 0;
}

@media(max-width:640px){
  .site-header .wrap{flex-direction:column;align-items:flex-start}
  .hero h1{font-size:1.6rem}
}
