/* ============================================================
   MED-ALGAE-BIOMOL — stylesheet
   Marine / academic palette: deep teal, sea green, sand
   ============================================================ */
:root{
  --navy:#0d3b46;
  --teal:#10656d;
  --sea:#1c8a8a;
  --sea-light:#3fb0a9;
  --sand:#f4efe6;
  --sand-deep:#e8dfce;
  --ink:#1b2b2e;
  --muted:#5c6f72;
  --line:#d8e0df;
  --white:#ffffff;
  --warn:#9c3b2e;
  --shadow:0 2px 14px rgba(13,59,70,.08);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family:'Inter',system-ui,-apple-system,sans-serif;
  color:var(--ink);
  background:var(--sand);
  line-height:1.6;
}
.wrap{max-width:1120px;margin:0 auto;padding:0 22px}
a{color:var(--sea);text-decoration:none}
a:hover{text-decoration:underline}

/* ---------- Header ---------- */
.site-header{
  background:linear-gradient(100deg,var(--navy),var(--teal));
  color:#fff;box-shadow:var(--shadow);position:sticky;top:0;z-index:50;
}
.header-inner{display:flex;align-items:center;justify-content:space-between;height:72px;gap:20px}
.brand{display:flex;align-items:center;gap:12px;color:#fff;text-decoration:none}
.brand-mark{font-size:30px;line-height:1}
.brand-text strong{display:block;font-size:18px;font-weight:800;letter-spacing:.3px}
.brand-text small{display:block;font-size:11px;opacity:.8;font-weight:500;letter-spacing:.5px;text-transform:uppercase}
.main-nav{display:flex;gap:6px;flex-wrap:wrap}
.main-nav a{
  color:#dfeeec;padding:8px 14px;border-radius:8px;font-size:14px;font-weight:500;
  transition:background .15s;text-decoration:none;
}
.main-nav a:hover{background:rgba(255,255,255,.12)}
.main-nav a.active{background:var(--sea-light);color:#06343a;font-weight:700}

/* ---------- Hero ---------- */
.hero{
  margin:28px 0;border-radius:18px;overflow:hidden;position:relative;
  background:
    radial-gradient(900px 400px at 80% -10%, rgba(63,176,169,.35), transparent),
    linear-gradient(135deg,var(--navy) 0%, var(--teal) 55%, var(--sea) 100%);
  color:#fff;box-shadow:var(--shadow);
}
.hero-inner{padding:54px 46px}
.hero h1{font-family:'Lora',serif;font-size:40px;line-height:1.15;margin:0 0 14px;font-weight:600}
.hero p.lead{font-size:18px;max-width:680px;opacity:.94;margin:0 0 26px}
.hero .cta{display:flex;gap:12px;flex-wrap:wrap}
.btn{
  display:inline-block;padding:12px 22px;border-radius:10px;font-weight:600;font-size:15px;
  background:#fff;color:var(--navy);text-decoration:none;transition:transform .12s,box-shadow .12s;
}
.btn:hover{transform:translateY(-1px);box-shadow:0 6px 18px rgba(0,0,0,.18);text-decoration:none}
.btn.ghost{background:transparent;color:#fff;border:1.5px solid rgba(255,255,255,.55)}

/* ---------- Stat cards ---------- */
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin:30px 0}
.stat-card{
  background:var(--white);border-radius:14px;padding:24px 22px;box-shadow:var(--shadow);
  border:1px solid var(--line);text-align:left;
}
.stat-card .num{font-size:34px;font-weight:800;color:var(--teal);line-height:1}
.stat-card .lbl{font-size:13px;color:var(--muted);margin-top:6px;font-weight:500;text-transform:uppercase;letter-spacing:.4px}
.stat-card .ico{font-size:24px;margin-bottom:10px;display:block}

/* ---------- Sections ---------- */
.section{background:var(--white);border:1px solid var(--line);border-radius:16px;padding:30px 30px;margin:24px 0;box-shadow:var(--shadow)}
.section h2{font-family:'Lora',serif;font-size:26px;color:var(--navy);margin:0 0 6px}
.section .sub{color:var(--muted);margin:0 0 22px;font-size:15px}

/* charts */
.chart-row{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.bar-item{margin:10px 0}
.bar-head{display:flex;justify-content:space-between;font-size:13px;margin-bottom:4px;color:var(--ink)}
.bar-track{height:14px;background:var(--sand-deep);border-radius:8px;overflow:hidden}
.bar-fill{height:100%;background:linear-gradient(90deg,var(--sea),var(--sea-light));border-radius:8px}

/* feature cards */
.feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:8px}
.feature{border:1px solid var(--line);border-radius:14px;padding:24px;background:var(--sand);transition:transform .12s}
.feature:hover{transform:translateY(-3px)}
.feature .fi{font-size:30px}
.feature h3{margin:12px 0 6px;font-size:18px;color:var(--navy)}
.feature p{margin:0;color:var(--muted);font-size:14px}
.feature a.more{display:inline-block;margin-top:12px;font-weight:600;font-size:14px}

/* ---------- Tables ---------- */
.table-tools{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-bottom:16px}
.table-tools input,.table-tools select{
  padding:10px 14px;border:1px solid var(--line);border-radius:9px;font-size:14px;font-family:inherit;background:#fff;
}
.table-tools input[type=text]{min-width:280px}
.table-tools .btn-sm{padding:10px 18px;background:var(--teal);color:#fff;border:none;border-radius:9px;font-weight:600;cursor:pointer;font-size:14px}
.table-tools .btn-sm:hover{background:var(--navy)}
.count-pill{margin-left:auto;background:var(--sand-deep);color:var(--navy);padding:6px 14px;border-radius:20px;font-size:13px;font-weight:600}

table.data{width:100%;border-collapse:collapse;font-size:14px;background:#fff}
table.data th{
  background:var(--navy);color:#fff;text-align:left;padding:12px 14px;font-weight:600;font-size:13px;
  position:sticky;top:72px;white-space:nowrap;
}
table.data td{padding:11px 14px;border-bottom:1px solid var(--line);vertical-align:top}
table.data tr:nth-child(even) td{background:#faf8f3}
table.data tr:hover td{background:#eef6f4}
.tag{display:inline-block;background:var(--sea-light);color:#06343a;padding:2px 9px;border-radius:12px;font-size:11px;font-weight:700;letter-spacing:.3px}
.tag.rhodo{background:#e7a6b8;color:#5a1730}
.tag.chloro{background:#a7d8a0;color:#143d10}
.tag.ochro{background:#e8c98a;color:#5a3d0a}
.tag.cyano{background:#9cc4e8;color:#0d2f54}
.idcell{font-family:'Lora',serif;font-size:12px;color:var(--muted);white-space:nowrap}
.reflink{font-size:13px;white-space:nowrap}

/* pagination */
.pager{display:flex;gap:6px;justify-content:center;margin-top:22px;flex-wrap:wrap}
.pager a,.pager span{
  padding:8px 13px;border:1px solid var(--line);border-radius:8px;font-size:14px;color:var(--ink);text-decoration:none;background:#fff;
}
.pager a:hover{background:var(--sand-deep);text-decoration:none}
.pager .cur{background:var(--teal);color:#fff;border-color:var(--teal);font-weight:700}
.pager .dots{border:none;background:none}

/* search page */
.search-hero{text-align:center;padding:30px 0 10px}
.search-hero h1{font-family:'Lora',serif;color:var(--navy);font-size:32px;margin:0 0 8px}
.search-hero p{color:var(--muted);margin:0 0 24px}
.search-box{display:flex;gap:10px;max-width:680px;margin:0 auto;flex-wrap:wrap;justify-content:center}
.search-box input[type=text]{flex:1;min-width:260px;padding:14px 18px;border:1px solid var(--line);border-radius:11px;font-size:16px}
.search-box select{padding:14px 16px;border:1px solid var(--line);border-radius:11px;font-size:15px;background:#fff}
.search-box button{padding:14px 26px;background:var(--teal);color:#fff;border:none;border-radius:11px;font-weight:700;font-size:16px;cursor:pointer}
.search-box button:hover{background:var(--navy)}
.result-group{margin-top:26px}
.result-group h3{color:var(--navy);font-family:'Lora',serif;border-bottom:2px solid var(--sea-light);padding-bottom:6px}
.empty{text-align:center;color:var(--muted);padding:40px;font-style:italic}

/* contact */
.contact-card{display:grid;grid-template-columns:1fr 1fr;gap:30px}
.contact-card .info p{margin:8px 0;font-size:15px}
.contact-card .info strong{color:var(--navy)}
.contact-card .map{background:var(--navy);border-radius:14px;color:#fff;padding:30px;display:flex;flex-direction:column;justify-content:center}
.contact-card .map h3{margin-top:0;font-family:'Lora',serif}

/* ---------- Footer ---------- */
.site-footer{background:var(--navy);color:#cfe1df;margin-top:40px}
.footer-inner{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;padding:34px 0;font-size:13.5px}
.site-footer strong{color:#fff}
.site-footer a{color:var(--sea-light)}

/* responsive */
@media(max-width:900px){
  .stats-grid{grid-template-columns:repeat(2,1fr)}
  .chart-row,.feature-grid,.contact-card,.footer-inner{grid-template-columns:1fr}
  .hero h1{font-size:30px}
  .header-inner{height:auto;flex-direction:column;padding:14px 0;gap:10px}
  table.data th{top:0;position:static}
}
