/* =============================
   Nsana — Design System (HTML+CSS)
   ============================= */
:root{
  --bg:#ffffff;
  --bg-alt:#f5f7f6;
  --text:#1f2937;
  --muted:#6b7280;
  --brand:#156f3c;
  --brand-600:#0e5a31;
  --ring: rgba(21,111,60,.35);
  --radius:18px;
  --shadow:0 10px 25px rgba(0,0,0,.06);
  --shadow-lg:0 25px 60px rgba(0,0,0,.10);
}

/* Base */
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,'Helvetica Neue',Arial,'Noto Sans',sans-serif;color:var(--text);background:var(--bg);line-height:1.6}
img{max-width:100%;display:block}
.container{width:min(1120px,92%);margin-inline:auto}

/* Links & Buttons */
a{color:var(--brand);text-decoration:none}
a:hover{text-decoration:underline}
.btn{display:inline-block;padding:.85rem 1rem;border-radius:14px;border:1.5px solid transparent;font-weight:700;text-align:center}
.btn.primary{background:var(--brand);color:#fff;box-shadow:var(--shadow)}
.btn.primary:hover{background:var(--brand-600)}
.btn.ghost{border-color:var(--brand);color:var(--brand);background:#fff}
.btn.ghost:hover{background:rgba(21,111,60,.06)}

/* Header (shared) */
.header{position:sticky;top:0;z-index:30;background:var(--bg);border-bottom:1px solid #eef0ee}
.header__in{display:flex;align-items:center;justify-content:space-between;padding:14px 0}
.brand{display:flex;align-items:center;gap:10px;font-weight:900;color:var(--brand)}
.brand__logo{display:inline-grid;place-items:center;width:36px;height:36px;background:#e9f6ef;color:#0e5a31;border-radius:10px;font-weight:900}
.nav{display:flex;align-items:center;gap:18px}
.nav a{color:var(--text)}
.nav .btn{text-decoration:none}

/* Mobile nav (checkbox hack) */
.nav-toggle{display:none}
.hamburger{display:none;font-size:1.6rem;cursor:pointer;user-select:none}
@media (max-width:860px){
  .hamburger{display:block}
  .nav{
    position:absolute;inset-inline:0;top:64px;background:var(--bg);
    border-bottom:1px solid #eef0ee;display:grid;gap:10px;padding:14px 4%;
    transform:translateY(-110%);opacity:0;pointer-events:none;transition:.2s ease;
  }
  .nav a{padding:8px 0}
  .nav-toggle:checked ~ .nav{transform:translateY(0);opacity:1;pointer-events:auto}
}

/* Sections & Cards */
.section{padding:64px 0}
.section.alt{background:var(--bg-alt)}
.hero{background:var(--bg-alt);padding:72px 0}
.hero h1{margin:0 0 10px;font-size:clamp(1.8rem,2.5vw + 1rem,3rem);line-height:1.15}
.hero p{color:var(--muted);font-size:1.1rem;margin:0 0 22px}
.card{background:#fff;border:1px solid #eef0ee;border-radius:20px;box-shadow:var(--shadow)}
.grid{display:grid;gap:18px}
.grid.cols-2{grid-template-columns:repeat(2,1fr)}
.grid.cols-3{grid-template-columns:repeat(3,1fr)}
@media (max-width:960px){.grid.cols-2,.grid.cols-3{grid-template-columns:1fr}}

/* Lists */
.list{margin:16px 0 20px}.list li{margin:6px 0}
.link{display:inline-block;margin-top:10px;font-weight:600}

/* Inputs */
.label{font-weight:600;font-size:.95rem}
.input,.select,.textarea{
  width:100%;padding:12px 14px;border-radius:14px;border:1.5px solid #e5e7eb;background:#fff;color:var(--text)
}
.input:focus,.select:focus,.textarea:focus{outline:3px solid var(--ring);border-color:transparent}
.textarea{min-height:110px;resize:vertical}

/* Services grid */
.services{list-style:none;padding:0;margin:24px 0;display:grid;gap:14px}
.services.cols-3{grid-template-columns:repeat(3,1fr)}
@media (max-width:960px){.services.cols-3{grid-template-columns:1fr}}
.service{padding:16px; border-radius: var(--radius); box-shadow: var(--shadow); border:1px solid #eef0ee; background:#fff}
.service .title{font-weight:800; margin:4px 0}

/* Footer */
.footer{background:var(--bg-alt);padding:28px 0;margin-top:20px}
.footer__in{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}

/* Tabbar (mobile) for logged-in pages */
.tabbar{position:fixed;bottom:0;left:0;right:0;background:#fff;border-top:1px solid #e8efe8;display:none;z-index:40}
.tabbar__in{display:flex}
.tabbar a{flex:1;text-align:center;padding:10px 8px;color:var(--text);text-decoration:none;font-weight:600}
.tabbar a[aria-current="page"]{color:var(--brand);border-top:3px solid var(--brand)}
@media (max-width:860px){.tabbar{display:block}}

/* Tables (responsive wrapper) */
.table{width:100%;border-collapse:collapse}
.table th,.table td{padding:10px 12px;border-bottom:1px solid #e8efe8;text-align:left}
.table th{font-size:.9rem;color:var(--muted)}
.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
.table-wrap .table{min-width:640px}

/* Utilities */
.center{text-align:center}
.muted{color:var(--muted)}
.badge{display:inline-flex;align-items:center;gap:8px;background:#e9f6ef;color:#0e5a31;padding:6px 10px;border-radius:999px;font-weight:700;font-size:.86rem}
.tag{display:inline-block;padding:.2rem .6rem;border-radius:10px;background:#e9f6ef;color:#0e5a31;font-weight:600;font-size:.82rem}

/* Mobile refinements */
@media (max-width:560px){
  .btn{padding:1rem 1rem;font-size:1rem}
  .input,.select,.textarea{padding:14px 16px;font-size:1rem}
}