@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900&display=swap');

:root{
  --bg:#f6f7fb;
  --text:#0f172a;
  --muted:#64748b;
  --line:#e5e7eb;

  --green:#16a34a;
  --blue:#2563eb;

  --shadow:0 10px 25px rgba(17,24,39,.06);
  --shadow2:0 20px 40px rgba(2,6,23,.18);

  --r:16px;
  --r2:18px;
}

/* ================= BASE ================= */
*{box-sizing:border-box}
body{
  margin:0;
  font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
  background:var(--bg);
  color:var(--text);
}
a{text-decoration:none;color:inherit}
.wrap{max-width:1100px;margin:0 auto;padding:18px}

/* ================= TOP BAR ================= */
.top{
  background:#fff;
  border-bottom:1px solid var(--line);
  position:sticky;
  top:0;
  z-index:10;
}
.topbar{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
}
.brand{
  font-weight:900;
  color:var(--green);
  letter-spacing:-.2px;
}
.top-actions{
  display:flex;
  align-items:center;
  gap:12px;
}
.nav .navlink{
  color:var(--muted);
  font-weight:800;
}

/* Search */
.search{position:relative; display:flex; align-items:center;}
.search-ico{
  position:absolute;
  left:12px;
  color:var(--muted);
  font-weight:900;
  pointer-events:none;
}
.search input{
  width:min(320px, 62vw);
  padding:11px 12px 11px 34px;
  border-radius:999px;
  border:1px solid var(--line);
  outline:none;
  background:#fff;
  color:var(--text);
  font-weight:700;
}
.search input:focus{
  border-color:rgba(22,163,74,.55);
  box-shadow:0 0 0 4px rgba(22,163,74,.12);
}

/* ================= HEADINGS ================= */
h1{
  margin:10px 0 6px;
  font-size:34px;
  letter-spacing:-.3px;
}
.sub{
  margin:0 0 18px;
  color:var(--muted);
  font-weight:600;
  font-size:13px; /* smaller */
}

/* ================= GRID ================= */
.grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
}

/* ================= CARD ================= */
.card{
  position:relative;
  padding:16px;
  border-radius:var(--r2);

  background:rgba(22,163,74,.08);
  border:2px solid rgba(22,163,74,.35);

  box-shadow:var(--shadow);
  transition:.2s ease;
  overflow:hidden;
  min-height:170px;
}

.card::before{
  content:"";
  position:absolute;
  inset:-40% -40% auto auto;
  width:240px;
  height:240px;
  background:radial-gradient(circle, rgba(34,197,94,.18), transparent 65%);
  transform:translate(30px,-30px);
  pointer-events:none;
}

.card:hover{
  transform:translateY(-3px);
  box-shadow:var(--shadow2);
  background:rgba(22,163,74,.10);
  border-color:rgba(22,163,74,.55);
}

/* ================= TAG ================= */
.card-top{margin-bottom:10px}

.tag{
  display:inline-flex;
  align-items:center;
  gap:8px;

  font-size:12px;
  font-weight:900;
  padding:6px 10px;

  border-radius:999px;
  background:rgba(255,255,255,.8);
  border:1px solid rgba(15,23,42,.08);

  color:#000;
}

/* blink dot */
.dot{
  width:10px;
  height:10px;
  border-radius:999px;
  background:var(--green);
  box-shadow:0 0 0 0 rgba(22,163,74,.7);
  animation:blink 1.25s infinite;
}
@keyframes blink{
  0%{transform:scale(.9);box-shadow:0 0 0 0 rgba(22,163,74,.55)}
  60%{transform:scale(1.05);box-shadow:0 0 0 10px rgba(22,163,74,0)}
  100%{transform:scale(.9);box-shadow:0 0 0 0 rgba(22,163,74,0)}
}

/* ================= TEXT ================= */
.t{
  margin:10px 0 6px;
  font-size:18px;
  font-weight:900;
}
.d{
  margin:0;
  color:var(--muted);
  font-weight:600;
  line-height:1.35;
  font-size:13px;
}

/* ================= BUTTON (GREEN → BLUE GRADIENT) ================= */
.card-actions{margin-top:16px}

.go{
  position:relative;
  display:inline-flex;
  align-items:center;
  gap:10px;

  font-size:14px;
  font-weight:900;

  padding:12px 18px;
  border-radius:14px;

  color:#ffffff;
  background:linear-gradient(135deg, var(--green), var(--blue));
  border:none;

  box-shadow:0 14px 30px rgba(37,99,235,.35);
  transition:.2s ease;
  overflow:hidden;
}

.go::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(
    120deg,
    transparent 0%,
    rgba(255,255,255,.25) 40%,
    transparent 70%
  );
  transform:translateX(-120%);
  transition:transform .45s ease;
}

.arr{
  font-weight:900;
  transition:transform .2s ease;
}

.card:hover .go{
  transform:translateY(-2px);
  box-shadow:0 20px 40px rgba(37,99,235,.45);
}
.card:hover .go::before{
  transform:translateX(120%);
}
.card:hover .go .arr{
  transform:translateX(4px);
}

/* Empty state */
.empty{grid-column:1 / -1;}
.empty-box{
  border-radius:var(--r2);
  border:1px dashed rgba(15,23,42,.18);
  background:rgba(255,255,255,.65);
  padding:18px;
  text-align:center;
}
.empty-title{font-weight:900}
.empty-sub{color:var(--muted);font-weight:650;margin-top:6px}

/* ================= FOOTER ================= */
footer{
  color:var(--muted);
  text-align:center;
  padding:18px;
}

/* ================= RESPONSIVE ================= */
@media(max-width:900px){
  .grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:520px){
  .grid{grid-template-columns:1fr}
  h1{font-size:28px}
  .search input{width:58vw}
}
