/* ============================================================================
   தெளிவு · THELIVU — corrected design system
   Single stylesheet shared by all pages. Latin: Poppins. Tamil: Mukta Malar.
   ============================================================================ */
@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700&family=Mukta+Malar:wght@400;500;600;700;800&display=swap');

:root{
  --bg:#eef0ec;
  --surface:#ffffff;
  --ink:#16335c;
  --ink-soft:#3a4a60;
  --ink-faint:#5f6e82; /* darkened from #7c8898 (3.60:1) to 5.20:1 on #fff — WCAG AA */
  --line:#e7e1d6;
  --line-soft:#efe9dd;
  --red:#cc2027;
  --green:#2f9e60;
  --blue:#2f6fdb;
  --amber:#d9912f;
  --r:18px;
  --rb:12px;
  --shadow:0 1px 3px rgba(20,30,50,.06),0 10px 28px rgba(20,30,50,.05);
  --shadow-sm:0 1px 2px rgba(20,30,50,.05);
}

*{box-sizing:border-box}
html{ -webkit-text-size-adjust:100%; }
body{
  margin:0;
  background:var(--bg);
  color:var(--ink-soft);
  font-family:'Poppins',system-ui,sans-serif;
  font-size:16px;
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
}
:lang(ta), [lang="ta"]{ font-family:'Mukta Malar','Poppins',sans-serif; }

.wrap{ max-width:740px; margin:0 auto; padding:26px 18px 56px; }
.wrap.wide{ max-width:1140px; }

/* ---------------- Header (mockup header A) ---------------- */
.header{
  position:relative;
  display:flex;
  align-items:center;
  gap:16px;
  flex-wrap:wrap;
  background:var(--surface);
  border-radius:var(--r);
  box-shadow:var(--shadow);
  padding:18px 22px 16px;
  margin-bottom:24px;
}
.header::before{
  content:"";
  position:absolute; top:0; left:0; right:0; height:4px;
  border-radius:var(--r) var(--r) 0 0;
  background:linear-gradient(90deg,#16458a,#5d2a6b,#cc2027,#b5632a,#2f9e60);
}
.brandmark{ flex:0 0 auto; display:block; line-height:0; text-decoration:none; }
.brandmark img{
  height:44px; width:auto; display:block;
  border:none; background:none; padding:0; border-radius:0;
}
.brand-eyebrow{ display:flex; align-items:baseline; gap:8px; flex:0 0 auto; }
.brand-eyebrow .ta{ font-family:'Mukta Malar',sans-serif; font-weight:700; color:var(--red); font-size:22px; line-height:1; }
.brand-eyebrow .dot{ color:#cbc4b6; font-size:16px; }
.brand-eyebrow .en{ font-weight:600; letter-spacing:.22em; color:var(--ink); font-size:13px; }
.hdiv{ width:1px; align-self:stretch; min-height:30px; background:var(--line); flex:0 0 auto; }
.header h1{ margin:0; font-weight:700; color:var(--ink); font-size:21px; line-height:1.15; }
.hctx{ color:var(--ink-faint); font-size:15px; font-weight:500; }
.header .row{ margin-left:auto; flex:0 0 auto; }

/* legacy stacked .brand wrapper still supported */
.header .brand{ display:flex; flex-direction:column; gap:2px; min-width:0; }
.header .brand h1{ font-size:21px; }
.header .brand small{ color:var(--ink-faint); font-size:13px; font-weight:500; }

/* ---------------- Landing (index) ---------------- */
body.landing{
  background:radial-gradient(130% 78% at 50% -10%, #e7f0fc 0%, #eef0ec 40%, #eae7e0 100%);
  background-attachment:fixed;
}
.landing .wrap{ max-width:960px; }
.hero{
  position:relative; overflow:hidden; text-align:center;
  background:var(--surface); border:1px solid var(--line-soft);
  border-radius:22px; box-shadow:0 1px 3px rgba(20,30,50,.06),0 16px 40px rgba(20,30,50,.08);
  padding:24px 34px 30px; margin-bottom:16px;
}
.hero::before{
  content:""; position:absolute; top:0; left:0; right:0; height:3px;
  background:linear-gradient(90deg,#16458a,#5d2a6b,#cc2027,#b5632a,#2f9e60); opacity:.85;
}
.hero::after{
  content:""; position:absolute; top:0; left:50%; transform:translateX(-50%);
  width:420px; height:300px; border-radius:50%;
  background:radial-gradient(closest-side, rgba(47,111,219,.08), rgba(47,111,219,0) 70%);
  pointer-events:none;
}
.hero > *{ position:relative; z-index:1; }
.hero-top{ display:flex; align-items:center; justify-content:center; position:relative; min-height:42px; }
.lang-pill{
  position:absolute; right:0; top:50%; transform:translateY(-50%);
  display:inline-flex; gap:3px; background:#eceae4; border:1px solid var(--line-soft);
  border-radius:999px; padding:4px;
}
.lang-pill button{
  border:none; background:transparent; cursor:pointer; font-family:inherit;
  font-weight:600; font-size:14px; color:var(--ink-faint); padding:8px 17px; border-radius:999px;
  transition:background .15s ease, color .15s ease, box-shadow .15s ease;
}
.lang-pill button#langTa{ font-family:'Mukta Malar',sans-serif; }
.lang-pill button.active{ background:var(--ink); color:#fff; box-shadow:0 1px 3px rgba(20,30,50,.22); }
.hero .eyebrow{
  display:inline-flex; align-items:center; gap:9px;
  color:var(--blue); font-size:15px; font-weight:600;
  background:#eef4fc; border:1px solid #dbe8f7; border-radius:999px; padding:9px 20px;
}
:lang(ta) .hero .eyebrow{ font-family:'Mukta Malar',sans-serif; }
.hero .eyebrow svg{ width:18px; height:18px; flex:0 0 auto; }
.hero img{ display:block; max-width:min(440px,80%); height:auto; margin:14px auto 4px; }
.hero #brandSub{ margin-top:4px; }

/* info banner */
.info-banner{
  display:flex; align-items:flex-start; gap:15px;
  background:#eef4fc; border:1px solid #dbe8f7; border-radius:16px;
  padding:18px 22px; margin-bottom:20px;
}
.info-banner .ib-ic{ flex:0 0 auto; color:var(--blue); margin-top:1px; }
.info-banner p{ margin:0; color:var(--ink-soft); font-size:16px; line-height:1.55; text-wrap:pretty; }
:lang(ta) .info-banner p{ font-family:'Mukta Malar',sans-serif; }

/* three role cards */
.role-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.role-card{
  display:flex; flex-direction:column; align-items:center; text-align:center;
  background:#fff; border:1px solid var(--line-soft); border-radius:18px;
  padding:28px 22px 24px; box-shadow:var(--shadow-sm);
  transition:transform .1s ease, box-shadow .15s ease, border-color .15s ease;
}
.role-card.patient{ background:linear-gradient(#ffffff,#fbfdfb); }
.role-card.staff{ background:linear-gradient(#ffffff,#fbfcfe); }
.role-card.about{ background:linear-gradient(#ffffff,#fdfbf7); }
.role-card:hover{ transform:translateY(-2px); box-shadow:0 12px 28px rgba(20,30,50,.09); }
.rc-ic{ width:64px; height:64px; border-radius:50%; display:grid; place-items:center; margin-bottom:16px; }
.rc-ic.patient{ background:#e6f3ec; color:var(--green); }
.rc-ic.staff{ background:#e7f0fd; color:var(--blue); }
.rc-ic.about{ background:#fbf0e1; color:var(--amber); }
.rc-ic svg{ width:30px; height:30px; }
.rc-title{ font-weight:700; font-size:18px; margin-bottom:9px; line-height:1.25; }
.role-card.patient .rc-title{ color:var(--green); }
.role-card.staff .rc-title{ color:var(--blue); }
.role-card.about .rc-title{ color:#b9772a; }
.rc-sub{ color:var(--ink-faint); font-size:14px; line-height:1.5; margin:0 0 20px; flex:1; text-wrap:pretty; }
.rc-btn{ width:100%; }
:lang(ta) .rc-title, :lang(ta) .rc-sub, :lang(ta) .rc-btn{ font-family:'Mukta Malar',sans-serif; }

/* trust line */
.trust{
  display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:8px 16px;
  margin:24px 0 2px; color:var(--ink-faint); font-size:14.5px; font-weight:500;
}
.trust .titem{ display:inline-flex; align-items:center; gap:7px; }
.trust .titem svg{ width:16px; height:16px; color:var(--green); }
.trust .sep{ color:#c8cdd5; }
:lang(ta) .trust{ font-family:'Mukta Malar',sans-serif; }

@media (max-width:760px){
  .role-grid{ grid-template-columns:1fr; }
  .hero-top{ flex-direction:column; gap:12px; }
  .lang-pill{ position:static; transform:none; }
  .hero .eyebrow{ font-size:13.5px; }
}

/* ---------------- Cards ---------------- */
.card{
  background:var(--surface);
  border:1px solid var(--line-soft);
  border-radius:var(--r);
  box-shadow:var(--shadow-sm);
  padding:22px;
  margin-bottom:18px;
}
.card h2{ margin:0 0 14px; font-size:18px; font-weight:700; color:var(--ink); }

/* ---------------- Buttons ---------------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  font-family:inherit; font-weight:600; font-size:15px;
  padding:12px 20px; border-radius:var(--rb);
  border:1px solid transparent; background:var(--ink); color:#fff;
  cursor:pointer; text-decoration:none; white-space:nowrap;
  transition:background .15s ease, box-shadow .15s ease, transform .05s ease;
}
.btn:hover{ background:#10284a; }
.btn:active{ transform:translateY(1px); }
.btn.secondary{ background:#fff; color:var(--ink); border-color:var(--line); box-shadow:var(--shadow-sm); }
.btn.secondary:hover{ background:#faf8f4; }
.btn.small{ padding:10px 16px; font-size:14px; border-radius:11px; }
.btn.green{ background:var(--green); }
.btn.green:hover{ background:#26834d; }
.btn.blue{ background:var(--blue); }
.btn.blue:hover{ background:#225fc0; }
.btn.ghost{ background:#fff; color:#b9772a; border-color:#f0dcbe; box-shadow:var(--shadow-sm); }
.btn.ghost:hover{ background:#fdf7ee; border-color:#e7c79b; }
.btn.unselected{ background:#fff; color:var(--ink); border-color:var(--line); box-shadow:var(--shadow-sm); }
.btn.selected{ background:var(--ink); color:#fff; border-color:transparent; }
.btn:disabled{ opacity:.55; cursor:default; }

/* ---------------- Language toggle ---------------- */
.lang-toggle{ display:inline-flex; align-items:center; gap:2px; background:#e9e3d8; border-radius:999px; padding:4px; }
.lang-toggle button{
  border:none; background:transparent; color:#8b8676; cursor:pointer;
  font-family:inherit; font-weight:600; font-size:14px; padding:6px 13px; border-radius:999px;
}
.lang-toggle button#lTa{ font-family:'Mukta Malar',sans-serif; }
.lang-toggle button.active{ background:#fff; color:var(--ink); box-shadow:0 1px 3px rgba(20,30,50,.14); }

/* ---------------- Forms ---------------- */
label{ display:block; font-size:14px; font-weight:600; color:var(--ink); margin:16px 0 6px; }
input,select,textarea{
  width:100%; padding:12px 14px; font-family:inherit; font-size:16px; color:var(--ink);
  background:#fff; border:1.5px solid var(--line); border-radius:var(--rb); outline:none;
  transition:border-color .15s ease, box-shadow .15s ease;
}
input:focus,select:focus,textarea:focus{ border-color:var(--blue); box-shadow:0 0 0 3px rgba(47,111,219,.12); }
.field-help{ font-size:13px; color:var(--ink-faint); margin-top:6px; line-height:1.45; }
.pin-wrap{ position:relative; }
.pin-wrap input{ padding-right:74px; }
.pin-toggle{
  position:absolute; right:8px; top:50%; transform:translateY(-50%);
  background:transparent; border:none; color:var(--blue); cursor:pointer;
  font-family:inherit; font-weight:600; font-size:13px; padding:6px 8px;
}

/* ---------------- Layout helpers ---------------- */
.row{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.grid{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.grid-2{ display:grid; grid-template-columns:1fr 1fr; gap:14px 16px; }
.muted{ color:var(--ink-faint); }
.hidden{ display:none !important; }
code{ font-family:ui-monospace,SFMono-Regular,Menlo,monospace; background:#f1ede5; color:#4a3f2c; padding:1px 5px; border-radius:5px; font-size:.88em; }

/* ---------------- Notices ---------------- */
.warn{
  background:#fdf6e7; border:1px solid #f0e0bb; border-left:4px solid var(--amber);
  border-radius:10px; padding:12px 14px; font-size:14px; color:#6b541f; line-height:1.5;
}
.advisory{
  background:#eef4fc; border:1px solid #dbe8f7; border-radius:12px;
  padding:14px 16px; font-size:14px; color:var(--ink-soft); line-height:1.55; margin:18px 0;
}
.advisory b{ color:var(--ink); }
.footer{ text-align:center; color:var(--ink-faint); font-size:12.5px; line-height:1.6; margin-top:24px; }

/* status messages (THELIVU.show) */
.statusmsg{ border-radius:10px; padding:11px 14px; font-size:14.5px; line-height:1.5; }
.statusmsg.ok{ background:#e9f5ee; border:1px solid #cfe7d6; color:#1d6b41; }
.statusmsg.err{ background:#fdecec; border:1px solid #f4cdcd; color:#a3232a; }
.statusmsg.notice{ background:#eef4fc; border:1px solid #dbe8f7; color:#27517f; }
.statusmsg.warn{ background:#fdf6e7; border:1px solid #f0e0bb; color:#6b541f; }
.statusmsg.lockout{ background:#fdecec; border:1px solid #f0bcbc; color:#8f1d23; font-weight:600; }

/* ---------------- Check-in symptoms ---------------- */
.section-title{ font-size:15px; font-weight:700; color:var(--ink); margin:6px 0 12px; letter-spacing:.01em; }
/* symptom lists stack one per row so longer (Tamil) labels have room to breathe */
.grid:has(.checkrow){ grid-template-columns:1fr; gap:9px; }
.grid .checkrow{ margin-bottom:0; align-items:flex-start; }
.grid .checkrow input[type="checkbox"]{ margin-top:1px; }
.checkrow{
  display:flex; align-items:center; gap:13px;
  background:#fff; border:1px solid var(--line-soft); border-radius:var(--rb);
  padding:13px 15px; margin-bottom:9px; cursor:pointer;
}
.checkrow:hover{ background:#fcfbf8; }
.checkrow input[type="checkbox"]{
  width:24px; height:24px; flex:0 0 auto; margin:0; accent-color:var(--ink); cursor:pointer;
}
.checkrow span{ font-size:15.5px; line-height:1.95; color:var(--ink); text-wrap:balance; }
:lang(ta) .checkrow span{ font-family:'Mukta Malar',sans-serif; line-height:2.1; }
.checkrow.no-symptoms{ background:#eaf5ee; border-color:#cfe7d6; }
.checkrow.danger span{ color:#1f3a5f; }

/* auto-numbered concerning-symptom grid (counters never skip) */
.grid.numbered{ counter-reset:sym; }
.grid.numbered .checkrow{ position:relative; }
.grid.numbered .checkrow > span{ flex:1; position:relative; padding-left:39px; }
.grid.numbered .checkrow > input[type="checkbox"] + span::before{
  counter-increment:sym; content:counter(sym);
  position:absolute; left:0; top:0;
  display:flex; align-items:center; justify-content:center;
  width:27px; height:27px;
  border-radius:999px; background:#fdf6ec; border:1.5px solid #ecdcc0;
  color:#b9772a; font-family:'Poppins',sans-serif; font-weight:700; font-size:14px;
}

/* ---------------- Dashboard table ---------------- */
table{ width:100%; border-collapse:collapse; font-size:14px; }
thead th{
  text-align:left; font-size:12.5px; font-weight:700; color:var(--ink-faint);
  text-transform:uppercase; letter-spacing:.03em; padding:10px 10px; border-bottom:2px solid var(--line);
  white-space:nowrap;
}
tbody td{ padding:11px 10px; border-bottom:1px solid #f1ede5; vertical-align:top; color:var(--ink-soft); }
tbody tr:hover{ background:#fbfaf7; }

/* tier pills */
.pill{ display:inline-block; padding:4px 11px; border-radius:999px; font-size:12.5px; font-weight:700; color:#fff; white-space:nowrap; }
.pill.RED{ background:var(--red); }
.pill.AMBER_HIGH{ background:#e2761b; }
.pill.AMBER{ background:#d9a72f; }
.pill.GREEN{ background:var(--green); }
.pill.OTHER{ background:#94a3b8; }

/* result tiers (check-in) */
.result{ border-left:5px solid var(--line); }
.result.RED{ border-left-color:var(--red); }
.result.AMBER_HIGH{ border-left-color:#e2761b; }
.result.AMBER{ border-left-color:#d9a72f; }
.result.GREEN{ border-left-color:var(--green); }
.result h2{ display:flex; align-items:center; gap:10px; }
.result ul{ margin:8px 0 0; padding-left:20px; }
.result li{ margin:3px 0; }

/* ---------------- Responsive ---------------- */
/* On narrower viewports the single-row header can't fit title + context +
   actions, so keep the actions on the top row and drop context to its own line. */
@media (max-width:860px){
  .header{ row-gap:6px; }
  .header .row{ order:4; }
  .header .hctx{ order:5; flex:1 1 100%; padding-left:72px; }
}
@media (max-width:640px){
  .header{ gap:10px 12px; padding:14px 16px; }
  .brandmark img{ width:48px; height:48px; }
  .header h1{ font-size:18px; }
  .hdiv{ display:none; }
  .header .row{ margin-left:0; width:100%; }
  .grid-2{ grid-template-columns:1fr; }
  .hctx{ font-size:13.5px; }
}

/* small EN/த toggle reused in headers */
.lang-toggle{ display:inline-flex; align-items:center; gap:2px; background:#e9e3d8; border-radius:999px; padding:4px; }
.lang-toggle button{ border:none; background:transparent; color:#8b8676; cursor:pointer; font-family:inherit; font-weight:600; font-size:13px; padding:6px 12px; border-radius:999px; }
.lang-toggle button#lTa,.lang-toggle button#langTa{ font-family:'Mukta Malar',sans-serif; }
.lang-toggle button.active{ background:#fff; color:var(--ink); box-shadow:0 1px 3px rgba(20,30,50,.14); }

/* ============================================================
   Dashboard — stat cards, toolbar, filter, pagination, modal
   ============================================================ */
.stat-grid{ display:grid; grid-template-columns:repeat(5,1fr); gap:14px; margin-bottom:18px; }
.stat{
  position:relative; overflow:hidden; background:var(--surface);
  border:1px solid var(--line-soft); border-radius:16px; padding:16px 18px;
  box-shadow:var(--shadow-sm);
}
.stat::before{ content:""; position:absolute; left:0; top:0; bottom:0; width:5px; }
.stat.RED::before{ background:var(--red); }
.stat.AMBER_HIGH::before{ background:#e2761b; }
.stat.AMBER::before{ background:#d9a72f; }
.stat.GREEN::before{ background:var(--green); }
.stat.TOTAL::before{ background:var(--ink); }
.stat .stat-top{ display:flex; align-items:center; justify-content:space-between; }
.stat .stat-ic{ width:34px; height:34px; border-radius:9px; display:grid; place-items:center; }
.stat.RED .stat-ic{ background:#fdecec; color:var(--red); }
.stat.AMBER_HIGH .stat-ic{ background:#fbeede; color:#c4651a; }
.stat.AMBER .stat-ic{ background:#fbf3df; color:#b07f12; }
.stat.GREEN .stat-ic{ background:#e7f4ec; color:var(--green); }
.stat.TOTAL .stat-ic{ background:#eef1f6; color:var(--ink); }
.stat .stat-ic svg{ width:19px; height:19px; }
.stat .stat-num{ font-size:30px; font-weight:700; color:var(--ink); line-height:1.1; margin-top:8px; }
.stat .stat-label{ font-size:12.5px; font-weight:700; letter-spacing:.03em; text-transform:uppercase; color:var(--ink-faint); margin-top:2px; }
.stat .stat-sub{ font-size:12px; color:var(--ink-faint); margin-top:3px; }

/* toolbar */
.toolbar{ display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin-bottom:14px; }
.search{ position:relative; flex:1; min-width:220px; }
.search svg{ position:absolute; left:13px; top:50%; transform:translateY(-50%); width:18px; height:18px; color:var(--ink-faint); pointer-events:none; }
.search input{ width:100%; padding:11px 14px 11px 40px; border-radius:12px; }
.filter-wrap{ position:relative; }
.icon-btn{
  display:inline-flex; align-items:center; gap:8px; font-family:inherit; font-weight:600; font-size:14px;
  color:var(--ink); background:#fff; border:1px solid var(--line); border-radius:12px; padding:11px 16px;
  cursor:pointer; box-shadow:var(--shadow-sm); white-space:nowrap;
}
.icon-btn:hover{ background:#faf8f4; }
.icon-btn svg{ width:17px; height:17px; }
.icon-btn .badge{ background:var(--blue); color:#fff; border-radius:999px; font-size:11px; font-weight:700; padding:1px 7px; }
.filter-menu{
  position:absolute; right:0; top:calc(100% + 8px); z-index:30; width:230px;
  background:#fff; border:1px solid var(--line-soft); border-radius:14px; box-shadow:0 12px 30px rgba(20,30,50,.14);
  padding:14px; 
}
.filter-menu h4{ margin:0 0 8px; font-size:12px; text-transform:uppercase; letter-spacing:.04em; color:var(--ink-faint); }
.filter-menu h4 + h4{ margin-top:14px; }
.chip-row{ display:flex; flex-wrap:wrap; gap:7px; }
.chip{ border:1px solid var(--line); background:#fff; color:var(--ink-soft); border-radius:999px; padding:6px 12px; font-size:13px; font-weight:600; cursor:pointer; font-family:inherit; }
.chip.on{ background:var(--ink); color:#fff; border-color:var(--ink); }
.chip.on.RED{ background:var(--red); border-color:var(--red); }
.chip.on.AMBER_HIGH{ background:#e2761b; border-color:#e2761b; }
.chip.on.AMBER{ background:#d9a72f; border-color:#d9a72f; }
.chip.on.GREEN{ background:var(--green); border-color:var(--green); }

/* table view button + mode pills */
.tbl-action{ display:inline-flex; align-items:center; justify-content:center; width:34px; height:34px; border-radius:9px; border:1px solid var(--line); background:#fff; color:var(--blue); cursor:pointer; }
.tbl-action:hover{ background:#eff5fe; border-color:#bcd4f5; }
.tbl-action svg{ width:17px; height:17px; }
.mode-pill{ display:inline-block; padding:3px 10px; border-radius:999px; font-size:11.5px; font-weight:700; }
.mode-pill.REAL{ background:#e7f4ec; color:#1d7a45; }
.mode-pill.TEST{ background:#eef1f6; color:#6b7686; }
thead th.sortable{ cursor:pointer; user-select:none; }
thead th.sortable:hover{ color:var(--ink); }

/* pagination */
.pager{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-top:16px; }
.pager .pinfo{ color:var(--ink-faint); font-size:13.5px; margin-right:auto; }
.pager button{ min-width:36px; height:36px; padding:0 10px; border:1px solid var(--line); background:#fff; border-radius:9px; font-family:inherit; font-weight:600; font-size:14px; color:var(--ink); cursor:pointer; }
.pager button:hover:not(:disabled){ background:#faf8f4; }
.pager button.active{ background:var(--ink); color:#fff; border-color:var(--ink); }
.pager button:disabled{ opacity:.4; cursor:default; }

/* modal */
.modal-back{ position:fixed; inset:0; background:rgba(16,24,40,.45); display:flex; align-items:center; justify-content:center; padding:20px; z-index:50; }
.modal{ width:100%; max-width:520px; background:#fff; border-radius:18px; box-shadow:0 30px 70px rgba(0,0,0,.3); overflow:hidden; }
.modal-head{ display:flex; align-items:center; gap:12px; padding:18px 22px; border-bottom:1px solid var(--line-soft); }
.modal-head h3{ margin:0; font-size:18px; color:var(--ink); }
.modal-x{ margin-left:auto; border:none; background:#f1ede5; width:32px; height:32px; border-radius:9px; cursor:pointer; font-size:16px; color:var(--ink-soft); }
.modal-body{ padding:20px 22px; }
.kv{ display:grid; grid-template-columns:120px 1fr; gap:8px 14px; font-size:14.5px; }
.kv dt{ color:var(--ink-faint); font-weight:600; }
.kv dd{ margin:0; color:var(--ink); }

/* dashboard empty/loading/error state */
.state{ text-align:center; padding:36px 20px; }
.state img{ width:150px; height:auto; margin:0 auto 6px; display:block; opacity:.95; }
.state h3{ margin:6px 0 4px; font-size:17px; color:var(--ink); }
.state p{ margin:0; color:var(--ink-faint); font-size:14px; }

@media (max-width:900px){ .stat-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:520px){ .stat-grid{ grid-template-columns:1fr; } }

/* ============================================================
   Login split + feature strip + landing imagery
   ============================================================ */
.auth{ display:grid; grid-template-columns:1.05fr .95fr; gap:0; background:#fff; border:1px solid var(--line-soft); border-radius:22px; overflow:hidden; box-shadow:0 1px 3px rgba(20,30,50,.06),0 16px 40px rgba(20,30,50,.08); }
.auth-aside{ position:relative; padding:34px 32px; background:radial-gradient(120% 90% at 30% 0%, #eaf1fb, #e7eef8 55%, #e4ebf6); display:flex; flex-direction:column; }
.auth-aside .a-brand{ display:inline-flex; align-items:center; gap:10px; align-self:flex-start; background:#fff; border:1px solid var(--line-soft); border-radius:13px; padding:8px 14px; box-shadow:var(--shadow-sm); }
.auth-aside .a-brand img{ height:40px; width:auto; display:block; }
.auth-aside h2{ margin:22px 0 8px; font-size:24px; color:var(--ink); line-height:1.2; }
.auth-aside p{ margin:0; color:var(--ink-soft); font-size:15px; line-height:1.55; max-width:34ch; text-wrap:pretty; }
.auth-aside .a-img{ margin-top:auto; }
.auth-aside .a-img img{ display:block; width:100%; max-width:330px; margin:18px auto 0; mix-blend-mode:multiply; }
.auth-main{ padding:34px 34px 30px; }
.auth-main .am-head{ display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:14px; }
.auth-main h1{ margin:0; font-size:22px; color:var(--ink); }
:lang(ta) .auth-aside h2, :lang(ta) .auth-aside p, :lang(ta) .auth-main h1{ font-family:'Mukta Malar',sans-serif; }
@media (max-width:760px){ .auth{ grid-template-columns:1fr; } .auth-aside{ display:none; } }

/* feature strip (landing) */
.features{ display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin-top:20px; }
.feature{ background:#fff; border:1px solid var(--line-soft); border-radius:16px; padding:22px 18px; text-align:center; box-shadow:var(--shadow-sm); }
.feature .f-ic{ width:52px; height:52px; border-radius:14px; display:grid; place-items:center; margin:0 auto 12px; background:#eef4fc; color:var(--blue); }
.feature .f-ic svg{ width:26px; height:26px; }
.feature h3{ margin:0 0 6px; font-size:15.5px; color:var(--ink); }
.feature p{ margin:0; font-size:13.5px; color:var(--ink-faint); line-height:1.5; text-wrap:pretty; }
:lang(ta) .feature h3, :lang(ta) .feature p{ font-family:'Mukta Malar',sans-serif; }
@media (max-width:760px){ .features{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:460px){ .features{ grid-template-columns:1fr; } }

/* vitals grid (check-in) */
.vitals{ display:grid; grid-template-columns:repeat(2,1fr); gap:14px 16px; }
.vital{ display:flex; align-items:center; gap:13px; background:#fff; border:1px solid var(--line-soft); border-radius:14px; padding:13px 15px; box-shadow:var(--shadow-sm); }
.vital .v-ic{ width:42px; height:42px; border-radius:11px; display:grid; place-items:center; flex:0 0 auto; background:#eef4fc; color:var(--blue); }
.vital .v-ic svg{ width:22px; height:22px; }
.vital .v-body{ flex:1; min-width:0; }
.vital label{ margin:0 0 4px; font-size:12.5px; color:var(--ink-faint); }
.vital input{ padding:8px 10px; font-size:16px; }
:lang(ta) .vital label{ font-family:'Mukta Malar',sans-serif; }
@media (max-width:560px){ .vitals{ grid-template-columns:1fr; } }

/* ============================================================
   LANDING v2  (home page — scoped under .landing-v2)
   ============================================================ */
body.landing-v2{
  background:
    radial-gradient(1100px 520px at 82% -8%, #e9f1fc 0%, rgba(233,241,252,0) 60%),
    radial-gradient(900px 480px at 12% 4%, #eaf4ee 0%, rgba(234,244,238,0) 55%),
    #eef1ee;
  background-attachment:fixed;
}
.landing-v2 :lang(ta){ font-family:'Mukta Malar','Poppins',sans-serif; }
.home-shell{ max-width:1080px; margin:0 auto; padding:22px 20px 40px; position:relative; }

/* nav */
.home-nav{
  position:relative; overflow:hidden; display:flex; align-items:center; gap:18px;
  background:#fff; border:1px solid var(--line-soft); border-radius:18px;
  padding:16px 22px; box-shadow:var(--shadow); margin-bottom:22px;
}
.home-nav::before{
  content:""; position:absolute; left:0; top:0; right:0; height:4px;
  border-radius:18px 18px 0 0;
  background:linear-gradient(90deg,#16458a,#2f9e60,#d9a72f,#cc2027,#5d2a6b);
}
.home-logo{ display:flex; align-items:center; gap:13px; text-decoration:none; flex:0 0 auto; }
.home-logo img{ height:54px; width:auto; display:block; }
.home-logo img.full-logo{ height:104px; }
@media (max-width:560px){ .home-logo img.full-logo{ height:70px; } }
/* index banner header: floating utility buttons + big centered logo, no card */
.home-nav-banner{ flex-direction:column; align-items:center; gap:0; background:none; border:none; box-shadow:none; padding:6px 0 4px; margin-bottom:10px; overflow:visible; }
.home-nav-banner::before{ display:none; }
.home-nav-banner .home-nav-top{ position:absolute; top:16px; right:18px; z-index:6; display:flex; align-items:center; gap:10px; }
.home-nav-banner .home-logo{ align-self:center; justify-content:center; margin-top:0; }
.home-nav-banner .home-logo img.full-logo{ height:340px; mix-blend-mode:multiply; }
@media (max-width:560px){ .home-nav-banner .home-logo img.full-logo{ height:170px; } .home-nav-banner{ padding-top:54px; } }
.home-brand{ display:flex; flex-direction:column; line-height:1; }
.home-brand .bn{ display:flex; align-items:baseline; gap:7px; }
.home-brand .bn .ta{ font-family:'Mukta Malar',sans-serif; font-weight:700; color:var(--red); font-size:22px; }
.home-brand .bn .en{ font-weight:600; letter-spacing:.2em; color:var(--ink); font-size:14px; }
.home-tag{ color:var(--ink-faint); font-size:13px; font-weight:500; line-height:1.35; max-width:30ch; }
.home-spacer{ flex:1; }
.home-nav .nav-about{ flex:0 0 auto; }
@media (max-width:780px){
  .home-nav{ flex-wrap:wrap; gap:12px; }
  .home-tag{ order:5; flex:1 1 100%; max-width:none; }
}

/* hero */
.home-hero{ display:grid; grid-template-columns:1.04fr .96fr; gap:26px; align-items:center; margin-bottom:22px; }
.home-copy{ padding:8px 4px 8px 8px; }
.home-eyebrow{
  display:inline-flex; align-items:center; gap:9px; font-weight:700; font-size:13px; color:var(--blue);
  background:#eaf2fd; border:1px solid #d7e6f8; border-radius:999px; padding:8px 16px;
}
.home-eyebrow-icon{
  width:18px; height:18px; border-radius:50%; background:var(--green); color:#fff;
  display:grid; place-items:center; font-size:11px; font-weight:800;
}
.home-copy h1{
  margin:18px 0 14px; font-size:40px; line-height:1.1; letter-spacing:-.01em; color:var(--ink);
  font-weight:700; text-wrap:balance;
}
.home-copy:lang(ta) h1{ font-size:33px; line-height:1.4; }
.home-copy h1 :lang(ta){ font-family:'Mukta Malar',sans-serif; }
.home-sub{ margin:0; font-size:16.5px; line-height:1.6; color:var(--ink-soft); max-width:46ch; text-wrap:pretty; }
.home-mini{ display:flex; flex-wrap:wrap; gap:10px; margin-top:24px; }
.home-mini > div{
  display:flex; flex-direction:column; gap:1px; background:#fff; border:1px solid var(--line-soft);
  border-radius:13px; padding:11px 15px 12px; box-shadow:var(--shadow-sm); min-width:140px;
}
.home-mini > div > span{ display:none; }
.home-mini b{ color:var(--ink); font-size:14px; font-weight:700; }
.home-mini small{ color:var(--ink-faint); font-size:12.5px; }
.home-mini > div:nth-child(1){ border-top:3px solid var(--green); }
.home-mini > div:nth-child(2){ border-top:3px solid var(--amber); }
.home-mini > div:nth-child(3){ border-top:3px solid var(--blue); }

/* hero art */
.home-art{ position:relative; min-height:330px; display:flex; align-items:center; justify-content:center; }
.home-art .art-blob{
  position:absolute; inset:6% 0 6% 6%;
  background:radial-gradient(120% 100% at 65% 25%, #e6eefb, #e7f1ec 70%, rgba(231,241,236,0));
  border-radius:36px 36px 40px 40px;
}
.home-art .chair-art{ position:relative; z-index:1; width:54%; max-width:240px; align-self:flex-end; margin-bottom:6%; mix-blend-mode:multiply; filter:drop-shadow(0 14px 24px rgba(20,30,50,.12)); }
.home-art .phone-art{ position:relative; z-index:2; width:42%; max-width:188px; margin-right:-6%; filter:drop-shadow(0 20px 34px rgba(20,30,50,.22)); }
@media (max-width:820px){
  .home-hero{ grid-template-columns:1fr; }
  .home-copy h1{ font-size:32px; }
  .home-art{ min-height:240px; order:-1; }
}
@media (max-width:520px){ .home-art{ display:none; } }

/* role panel: patient + staff (2 col) and about (full width) */
.role-panel{ display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-bottom:22px; }
.landing-v2 .role-card{
  position:relative; display:flex; flex-direction:column; align-items:stretch; text-align:left;
  background:#fff; border:1px solid var(--line-soft); border-radius:20px; padding:26px 26px 24px;
  box-shadow:var(--shadow-sm); text-decoration:none; color:var(--ink);
  transition:transform .12s ease, box-shadow .18s ease, border-color .18s ease;
}
.landing-v2 .role-card:hover{ transform:translateY(-3px); box-shadow:0 16px 38px rgba(20,30,50,.10); }
.landing-v2 .role-card.patient{ background:linear-gradient(180deg,#f4faf6,#ffffff 40%); border-color:#d8ecdf; }
.landing-v2 .role-card.staff{ background:linear-gradient(180deg,#eff5fd,#ffffff 40%); border-color:#d7e6f7; }
.landing-v2 .role-card .role-icon{
  width:60px; height:60px; border-radius:50%; display:grid; place-items:center; margin-bottom:14px; align-self:flex-start;
}
.landing-v2 .role-card.patient .role-icon{ background:#e3f2e9; }
.landing-v2 .role-card.staff .role-icon{ background:#e4eefb; }
.landing-v2 .role-card.about .role-icon{ background:#fbf0e0; }
.landing-v2 .role-card .role-icon svg{ width:30px; height:30px; fill:none; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.landing-v2 .role-card.patient .role-icon svg{ stroke:var(--green); }
.landing-v2 .role-card.staff .role-icon svg{ stroke:var(--blue); }
.landing-v2 .role-card.about .role-icon svg{ stroke:var(--amber); }
.landing-v2 .role-card h2{ margin:0 0 4px; font-size:21px; font-weight:700; }
.landing-v2 .role-card.patient h2{ color:#1d7a45; }
.landing-v2 .role-card.staff h2{ color:var(--blue); }
.landing-v2 .role-card.about h2{ color:#b9772a; }
.landing-v2 .role-card > p{ margin:0 0 16px; color:var(--ink-faint); font-size:14.5px; line-height:1.5; }
.landing-v2 .role-card ul{ list-style:none; margin:0 0 20px; padding:0; display:flex; flex-direction:column; gap:9px; }
.landing-v2 .role-card li{ position:relative; padding-left:28px; font-size:14.5px; color:var(--ink-soft); line-height:1.4; }
.landing-v2 .role-card li::before{
  content:""; position:absolute; left:0; top:1px; width:19px; height:19px; border-radius:50%;
  background:#e3f2e9 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%231d7a45' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4 4 10-10'/%3E%3C/svg%3E") center/12px no-repeat;
}
.landing-v2 .role-card.staff li::before{ background-color:#e4eefb; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%232f6fdb' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4 4 10-10'/%3E%3C/svg%3E"); }
.landing-v2 .role-btn{
  margin-top:auto; display:flex; align-items:center; justify-content:center; gap:9px;
  font-weight:600; font-size:16px; color:#fff; padding:14px 18px; border-radius:13px; text-align:center;
}
.landing-v2 .role-btn.green{ background:var(--green); }
.landing-v2 .role-btn.blue{ background:var(--blue); }
.landing-v2 .role-btn.amber{ background:#fff; color:#b9772a; border:1.5px solid #ecd3ad; }
.landing-v2 .role-card:hover .role-btn.green{ background:#26834d; }
.landing-v2 .role-card:hover .role-btn.blue{ background:#225fc0; }
.landing-v2 .role-card:hover .role-btn.amber{ background:#fdf6ec; }
/* about spans full width as a horizontal banner */
.landing-v2 .role-card.about{
  grid-column:1 / -1; flex-direction:row; align-items:center; gap:20px; padding:20px 24px;
  background:linear-gradient(90deg,#fdf8f0,#ffffff 60%); border-color:#f0e3cd;
}
.landing-v2 .role-card.about .role-icon{ margin:0; flex:0 0 auto; }
.landing-v2 .role-card.about h2{ margin:0; }
.landing-v2 .role-card.about > p{ margin:2px 0 0; flex:1; }
.landing-v2 .role-card.about .role-btn{ margin:0; flex:0 0 auto; width:auto; padding:12px 22px; }
.landing-v2 .role-card h2 :lang(ta), .landing-v2 .role-card li :lang(ta){ font-family:'Mukta Malar',sans-serif; }
@media (max-width:720px){
  .role-panel{ grid-template-columns:1fr; }
  .landing-v2 .role-card.about{ flex-direction:column; align-items:flex-start; }
  .landing-v2 .role-card.about .role-btn{ width:100%; }
}

/* feature strip */
.feature-strip{
  display:grid; grid-template-columns:repeat(4,1fr); gap:0;
  background:#fff; border:1px solid var(--line-soft); border-radius:20px; padding:8px; margin-bottom:22px; box-shadow:var(--shadow-sm);
}
.feature-tile{ text-align:center; padding:24px 18px; border-radius:14px; }
.feature-tile + .feature-tile{ border-left:1px solid var(--line-soft); }
.feature-tile .tile-ic{ width:54px; height:54px; border-radius:50%; display:grid; place-items:center; margin:0 auto 13px; }
.feature-tile .tile-ic svg{ width:26px; height:26px; fill:none; stroke-width:1.9; stroke-linecap:round; stroke-linejoin:round; }
.feature-tile:nth-child(1) .tile-ic{ background:#e3f2e9; } .feature-tile:nth-child(1) .tile-ic svg{ stroke:var(--green); }
.feature-tile:nth-child(2) .tile-ic{ background:#efe9fb; } .feature-tile:nth-child(2) .tile-ic svg{ stroke:#7c5cd6; }
.feature-tile:nth-child(3) .tile-ic{ background:#fde7e7; } .feature-tile:nth-child(3) .tile-ic svg{ stroke:var(--red); }
.feature-tile:nth-child(4) .tile-ic{ background:#fbf0e0; } .feature-tile:nth-child(4) .tile-ic svg{ stroke:var(--amber); }
.feature-tile h3{ margin:0 0 6px; font-size:15px; font-weight:700; color:var(--ink); }
.feature-tile p{ margin:0; font-size:13px; color:var(--ink-faint); line-height:1.5; text-wrap:pretty; }
.feature-tile h3 :lang(ta), .feature-tile p :lang(ta){ font-family:'Mukta Malar',sans-serif; }
@media (max-width:720px){
  .feature-strip{ grid-template-columns:1fr 1fr; }
  .feature-tile:nth-child(3){ border-left:none; }
  .feature-tile:nth-child(odd) + .feature-tile{ border-left:1px solid var(--line-soft); }
  .feature-tile:nth-child(n+3){ border-top:1px solid var(--line-soft); }
}
@media (max-width:440px){
  .feature-strip{ grid-template-columns:1fr; }
  .feature-tile + .feature-tile{ border-left:none; border-top:1px solid var(--line-soft); }
}

/* important warning */
.home-warning{
  display:flex; align-items:flex-start; gap:18px;
  background:linear-gradient(90deg,#fdf6e7,#fff9ee); border:1px solid #f0e0bb; border-left:5px solid var(--amber);
  border-radius:16px; padding:20px 24px; margin-bottom:22px;
}
.home-warning .warn-icon{
  flex:0 0 auto; width:46px; height:46px; border-radius:50%; background:#fbe9c5; color:#b07f12;
  display:grid; place-items:center; font-size:24px; font-weight:800;
}
.home-warning h3{ margin:0 0 4px; font-size:16px; color:#8a6314; }
.home-warning p{ margin:0; font-size:14px; color:#6b541f; line-height:1.55; text-wrap:pretty; }
.home-warning h3:lang(ta), .home-warning p:lang(ta){ font-family:'Mukta Malar',sans-serif; }

/* footer */
.home-footer{
  display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap;
  border-top:1px solid var(--line); padding-top:18px; color:var(--ink-faint); font-size:13px;
}
.home-footer b{ color:var(--ink); }
.home-footer b :lang(ta){ font-family:'Mukta Malar',sans-serif; }
.home-footer .footer-links{ display:flex; align-items:center; gap:12px; }
.home-footer .footer-links a, .home-footer .footer-links span{ color:var(--ink-faint); text-decoration:none; }
.home-footer .footer-links a:hover{ color:var(--blue); }

/* About page */
.about-hero{ position:relative; overflow:hidden; display:grid; grid-template-columns:1.35fr .65fr; gap:26px; align-items:center; background:#fff; border:1px solid var(--line-soft); border-radius:20px; box-shadow:var(--shadow); padding:30px 30px 26px; margin-bottom:18px; }
.about-hero::before{ content:""; position:absolute; left:0; top:0; right:0; height:4px; border-radius:20px 20px 0 0; background:linear-gradient(90deg,#16458a,#2f9e60,#d9a72f,#cc2027,#5d2a6b); }
.about-hero h1{ margin:14px 0 8px; font-size:28px; color:var(--ink); }
.about-hero p{ margin:0; font-size:16px; color:var(--ink-soft); line-height:1.6; max-width:54ch; text-wrap:pretty; }
.about-hero-art{ display:flex; align-items:center; justify-content:center; }
.about-hero-art img{ width:100%; max-width:240px; height:auto; display:block; mix-blend-mode:multiply; }
@media (max-width:680px){ .about-hero{ grid-template-columns:1fr; } .about-hero-art{ display:none; } }
.tier-legend{ display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin:18px 0; }
.tier{ background:#fff; border:1px solid var(--line-soft); border-radius:15px; padding:18px; box-shadow:var(--shadow-sm); border-top:5px solid var(--line); }
.tier.RED{ border-top-color:var(--red); } .tier.AMBER_HIGH{ border-top-color:#e2761b; } .tier.AMBER{ border-top-color:#d9a72f; } .tier.GREEN{ border-top-color:var(--green); }
.tier h3{ margin:0 0 6px; font-size:16px; color:var(--ink); }
.tier p{ margin:0; font-size:13.5px; color:var(--ink-faint); line-height:1.5; }
:lang(ta) .about-hero h1, :lang(ta) .about-hero p, :lang(ta) .tier h3, :lang(ta) .tier p{ font-family:'Mukta Malar',sans-serif; }
.steps{ counter-reset:st; display:flex; flex-direction:column; gap:12px; }
.step-row{ display:flex; gap:15px; align-items:flex-start; background:#fff; border:1px solid var(--line-soft); border-radius:14px; padding:16px 18px; box-shadow:var(--shadow-sm); }
.step-row::before{ counter-increment:st; content:counter(st); flex:0 0 auto; width:32px; height:32px; border-radius:50%; background:var(--ink); color:#fff; display:grid; place-items:center; font-weight:700; }
.step-row div h3{ margin:0 0 3px; font-size:15.5px; color:var(--ink); }
.step-row div p{ margin:0; font-size:14px; color:var(--ink-faint); line-height:1.5; }
:lang(ta) .step-row div h3, :lang(ta) .step-row div p{ font-family:'Mukta Malar',sans-serif; }
@media (max-width:720px){ .tier-legend{ grid-template-columns:1fr 1fr; } }

/* patient education gallery */
.edu-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
.edu-card{ display:flex; flex-direction:column; gap:9px; padding:0; border:none; background:none; cursor:pointer; font-family:inherit; text-align:center; }
.edu-card img{ width:100%; height:auto; display:block; border-radius:12px; border:1px solid var(--line-soft); box-shadow:var(--shadow-sm); transition:transform .12s ease, box-shadow .18s ease; }
.edu-card:hover img{ transform:translateY(-3px); box-shadow:0 14px 30px rgba(20,30,50,.12); }
.edu-cap{ font-size:13px; font-weight:600; color:var(--ink-soft); line-height:1.35; text-wrap:pretty; }
:lang(ta) .edu-cap{ font-family:'Mukta Malar',sans-serif; }
@media (max-width:760px){ .edu-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:420px){ .edu-grid{ grid-template-columns:1fr; } }

.edu-lightbox{ position:fixed; inset:0; background:rgba(16,24,40,.82); z-index:80; display:flex; align-items:center; justify-content:center; padding:24px; }
.edu-lightbox.hidden{ display:none; }
.edu-lightbox img{ max-width:min(560px,92vw); max-height:92vh; width:auto; height:auto; border-radius:14px; box-shadow:0 30px 80px rgba(0,0,0,.5); }
.edu-lightbox .edu-x{ position:absolute; top:18px; right:20px; width:42px; height:42px; border-radius:50%; border:none; background:rgba(255,255,255,.92); color:var(--ink); font-size:18px; cursor:pointer; }
.edu-lightbox .edu-prev, .edu-lightbox .edu-next{ position:absolute; top:50%; transform:translateY(-50%); width:48px; height:48px; border-radius:50%; border:none; background:rgba(255,255,255,.92); color:var(--ink); font-size:26px; line-height:1; cursor:pointer; display:grid; place-items:center; }
.edu-lightbox .edu-prev{ left:20px; } .edu-lightbox .edu-next{ right:20px; }
.edu-lightbox .edu-prev:hover, .edu-lightbox .edu-next:hover, .edu-lightbox .edu-x:hover{ background:#fff; }
@media (max-width:560px){ .edu-lightbox .edu-prev{ left:8px; } .edu-lightbox .edu-next{ right:8px; } }


/* ===== v4 COMPLETE — appended safe accessibility additions ===== */
/* later same-specificity rules override the originals above */
/* --ink-faint is set to the AA value at :root above */
body{ font-size:16px; line-height:1.6; }
button, a.btn, .rc-btn, input, select, textarea{ font-size:16px; }   /* 16px min control text */
.lang-pill button{ padding:8px 20px; font-size:15px; }               /* wider language toggle */
:lang(ta) p, :lang(ta) li, :lang(ta) label,
:lang(ta) .rc-sub, :lang(ta) .field-help, :lang(ta) .muted,
:lang(ta) .edu-cap, :lang(ta) .footer{ line-height:1.7; }            /* roomier Tamil text */
button:focus-visible, a:focus-visible,
input:focus-visible, select:focus-visible, textarea:focus-visible{
  outline:3px solid #1a56db; outline-offset:2px;                     /* visible keyboard focus, WCAG 2.4.7 */
}


/* ===== THELIVU education content patch v1 ===== */
.landing-v2 .role-card.education{ background:linear-gradient(180deg,#fff8e8,#ffffff 42%); border-color:#f1deba; }
.landing-v2 .role-card.education .role-icon{ background:#fff2d8; }
.landing-v2 .role-card.education .role-icon svg{ stroke:var(--amber); }
.landing-v2 .role-card.education h2{ color:#b9772a; }
.landing-v2 .role-card.education li::before{ background-color:#fff2d8; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23b9772a' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4 4 10-10'/%3E%3C/svg%3E"); }
.edu-hero-panel{ margin-top:14px; }
.edu-actions{ display:flex; flex-wrap:wrap; gap:10px; margin-top:18px; }
.edu-module{ background:#fff; border:1px solid var(--line-soft); border-radius:24px; padding:26px; box-shadow:var(--shadow-sm); margin-top:22px; }
.module-kicker{ display:inline-flex; padding:7px 12px; border-radius:999px; background:#eef5ff; color:var(--blue); font-weight:700; font-size:13px; margin-bottom:10px; }
.edu-module h2{ margin:0 0 8px; color:var(--ink); font-size:28px; line-height:1.25; }
.edu-module > p{ margin:0 0 18px; color:var(--ink-soft); line-height:1.65; }
.learning-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:14px; }
.learning-card{ position:relative; background:#fbfdff; border:1px solid #dbe7f5; border-radius:18px; padding:20px 18px 18px; min-height:160px; }
.learning-num{ width:34px; height:34px; border-radius:50%; background:var(--blue); color:#fff; display:grid; place-items:center; font-weight:800; margin-bottom:10px; }
.learning-card h3{ margin:0 0 8px; color:var(--blue); font-size:18px; }
.learning-card p{ margin:0; color:var(--ink-soft); font-size:14.5px; line-height:1.65; }
.quiz-card{ margin-top:16px; padding:18px 20px; border-radius:18px; background:#fff8ea; border:1px solid #f3ddb8; }
.quiz-card h3{ margin:0 0 8px; color:#8a5b16; }
.quiz-card ol{ margin:0; padding-left:20px; color:var(--ink-soft); line-height:1.75; }
.module-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.module-card{ background:#fff; border:1px solid var(--line-soft); border-radius:18px; padding:18px; box-shadow:var(--shadow-sm); }
.module-card span{ display:inline-grid; place-items:center; min-width:42px; height:34px; border-radius:12px; background:#eef5ff; color:var(--blue); font-weight:800; margin-bottom:10px; }
.module-card h3{ margin:0 0 6px; color:var(--ink); font-size:17px; }
.module-card p{ margin:0 0 12px; color:var(--ink-soft); font-size:14px; line-height:1.55; }
.module-card b{ color:#9a6a20; font-size:13px; }
:lang(ta) .edu-module h2, :lang(ta) .learning-card h3, :lang(ta) .learning-card p, :lang(ta) .quiz-card, :lang(ta) .module-card{ font-family:'Mukta Malar',sans-serif; }
@media (max-width:820px){ .learning-grid,.module-grid{ grid-template-columns:1fr; } .edu-module{ padding:20px; } }
