/* ===============================
   ROOT VARIABLES
   =============================== */
:root{
  --bg:#f5f7fb;
  --card:#ffffff;
  --text:#111827;
  --muted:#4b5563;
  --muted2:#6b7280;
  --border:#e5e7eb;

  --primary:#2563eb;
  --primary-hover:#1d4ed8;

  --success-bg:#ecfdf5;
  --success-border:#a7f3d0;
  --success-text:#065f46;

  --warn-bg:#fff7ed;
  --warn-border:#fed7aa;
  --warn-text:#9a3412;

  --page-max: 1480px;
  --page-pad: 24px;

  --radius: 14px;
  --shadow: 0 12px 28px rgba(17,24,39,0.08);
  --shadow-sm: 0 1px 0 rgba(17,24,39,0.04);
}

/* ===============================
   BASE
   =============================== */
*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial;
  background:var(--bg);
  color:var(--text);
  line-height:1.55;
  font-size:15px;
  -webkit-font-smoothing:antialiased;
}
a{color:var(--primary);text-decoration:none}
a:hover{text-decoration:underline}

/* ===============================
   HEADER
   =============================== */
.header{
  background:#1f2937;
  color:#fff;
  padding:12px 16px;
}
.header .row{
  max-width:var(--page-max);
  margin:auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
}
.logo{
  font-size:18px;
  font-weight:900;
}
.nav{
  display:flex;
  gap:14px;
}
.nav a{
  color:#dbeafe;
  font-weight:700;
  font-size:14px;
}
.userbox{
  display:flex;
  align-items:center;
  gap:10px;
  font-size:13px;
  font-weight:700;
}
.userbox .btn-sm{
  padding:8px 12px;
  border:1px solid rgba(255,255,255,.25);
  background:rgba(255,255,255,.08);
  color:#fff;
  font-weight:800;
}

/* ===============================
   NOTICE BAR
   =============================== */
.notice{
  background:var(--warn-bg);
  border-bottom:1px solid var(--warn-border);
  color:var(--warn-text);
}
.notice .row{
  max-width:var(--page-max);
  margin:auto;
  padding:10px var(--page-pad);
  display:flex;
  justify-content:space-between;
  gap:10px;
  flex-wrap:wrap;
  font-size:13px;
  font-weight:600;
}

/* ===============================
   LAYOUT
   =============================== */
.container{
  max-width:var(--page-max);
  margin:18px auto 24px;
  padding:0 var(--page-pad);
}
.card{
  background:var(--card);
  border:1px solid var(--border);
  border-radius:var(--radius);
  padding:18px;
  box-shadow:var(--shadow-sm);
}
.card + .card{margin-top:16px}

/* ===============================
   HERO
   =============================== */
.hero{
  box-shadow:var(--shadow);
}
.hero h1{
  margin:0;
  font-size:28px;
  font-weight:900;
}
.hero p{
  margin-top:10px;
  color:var(--muted);
}
.pills{
  display:flex;
  gap:8px;
  margin-top:12px;
  flex-wrap:wrap;
}
.pill{
  padding:6px 10px;
  border-radius:999px;
  border:1px solid var(--border);
  background:#f9fafb;
  font-size:12px;
  font-weight:700;
}
.pill.green{
  background:var(--success-bg);
  border-color:var(--success-border);
  color:var(--success-text);
}

/* ===============================
   MAIN GRID
   =============================== */
.mainGrid{
  display:grid;
  grid-template-columns:1.4fr .6fr;
  gap:16px;
  margin-top:16px;
}
@media(max-width:1000px){
  .mainGrid{grid-template-columns:1fr}
}

/* ===============================
   SECTION TITLE
   =============================== */
.sectionTitle{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  border-bottom:1px solid var(--border);
  padding-bottom:10px;
  margin-bottom:14px;
}
.sectionTitle .title{
  font-size:16px;
  font-weight:900;
}
.sectionTitle .hint{
  font-size:12px;
  color:var(--muted2);
  font-weight:600;
}

/* ===============================
   SEARCH
   =============================== */
.searchWrap{
  display:flex;
  align-items:center;
  gap:10px;
  border:1px solid var(--border);
  border-radius:14px;
  padding:10px 12px;
  background:#fff;
}
.searchInput{
  border:0;
  outline:0;
  font-size:13px;
  width:260px;
}

/* ===============================
   EXAM GRID
   =============================== */
.examGrid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(220px,1fr));
  gap:14px;
}
.examCard{
  border:1px solid var(--border);
  border-radius:18px;
  padding:14px;
  background:#fff;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  transition:.15s;
}
.examCard:hover{
  transform:translateY(-3px);
  box-shadow:0 16px 30px rgba(0,0,0,.1);
}
.examName{
  font-size:16px;
  font-weight:900;
}
.examMeta{
  font-size:12px;
  color:var(--muted2);
  margin-top:6px;
}
.badge{
  padding:6px 10px;
  border-radius:999px;
  font-size:11px;
  font-weight:800;
}
.badge.active{
  background:var(--success-bg);
  color:var(--success-text);
}

/* ===============================
   BUTTONS
   =============================== */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:11px 14px;
  min-height:44px;
  border-radius:14px;
  font-size:13px;
  font-weight:800;
  cursor:pointer;
}
.btn-primary{
  background:var(--primary);
  color:#fff;
}
.btn-primary:hover{
  background:var(--primary-hover);
}
.btn-outline{
  border:1px solid rgba(37,99,235,.35);
  color:var(--primary);
}

/* ===============================
   SIDEBAR
   =============================== */
.sideCard{
  position:sticky;
  top:14px;
}
.sideTitle{
  font-size:16px;
  font-weight:900;
}
.sideSub{
  color:var(--muted);
  font-size:13px;
}
.benefits{
  list-style:none;
  padding:0;
  margin-top:12px;
}
.benefit{
  display:flex;
  gap:10px;
  padding:10px;
  border:1px solid var(--border);
  border-radius:14px;
  margin-bottom:10px;
}
.icon{
  width:30px;
  height:30px;
  border-radius:10px;
  background:#eff6ff;
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight:900;
}

/* ===============================
   FOOTER
   =============================== */
.footer{
  text-align:center;
  font-size:12px;
  color:var(--muted2);
  padding:20px 0;
}

/* ===============================
   MOBILE
   =============================== */
@media(max-width:720px){
  .hero h1{font-size:22px}
  .searchInput{width:100%}
  .btn{width:100%}
  .sideCard{position:static}
}
