/* MyVillageInfo — extracted from public/myvillageinfo.html */
:root{
  --navy:#0b3d91;
  --navy-dark:#062a66;
  --green:#1c8a3f;
  --green-dark:#146b30;
  --orange:#f5a623;
  --bg:#f4f7fb;
  --card:#ffffff;
  --text:#1c2733;
  --muted:#5b6b7a;
  --border:#e1e8ef;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
html,body{margin:0;padding:0;}
body{
  font-family:'Segoe UI', Arial, sans-serif;
  background:var(--bg);
  color:var(--text);
  min-height:100vh;
  display:flex;
  flex-direction:column;
  overflow-x:hidden;
  -webkit-text-size-adjust:100%;
}
a{text-decoration:none;color:inherit;}
img{max-width:100%;display:block;}
button{font:inherit;}
ul{margin:0;padding:0;list-style:none;}

/* Top bar */
.topbar{
  background:var(--navy);
  color:#fff;
  font-size:13px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:6px 24px;
}
.topbar .left, .topbar .right{display:flex;gap:18px;align-items:center;flex-wrap:wrap;}
.topbar select, .topbar .lang-toggle{
  background:transparent;border:none;color:#fff;font-size:13px;cursor:pointer;
}
.topbar a:hover{opacity:.9;}

/* Header */
header.main{
  background:#fff;
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:12px 24px;
  border-bottom:1px solid var(--border);
  flex-wrap:wrap;
  gap:12px;
  position:sticky;
  top:0;
  z-index:40;
}
.logo{display:inline-flex;align-items:center;text-decoration:none;line-height:0;min-width:0;}
.logo-img{display:block;height:52px;width:auto;max-width:220px;object-fit:contain;}

.header-right{
  display:flex;
  align-items:center;
  gap:20px;
  flex-wrap:wrap;
  justify-content:flex-end;
}

nav.mainnav{display:flex;gap:22px;align-items:center;font-size:15px;font-weight:500;color:#2c3e50;flex-wrap:wrap;}
nav.mainnav a{display:flex;align-items:center;gap:4px;padding:6px 2px;}
nav.mainnav a.active{color:var(--green);border-bottom:2px solid var(--green);}
nav.mainnav a:hover{color:var(--green);}

.auth-buttons{display:flex;gap:10px;align-items:center;flex-wrap:wrap;}
.btn{
  padding:9px 18px;border-radius:6px;font-size:14px;font-weight:600;border:none;cursor:pointer;
  display:inline-flex;align-items:center;justify-content:center;gap:6px;
}
.btn-login{background:var(--navy);color:#fff !important;}
.btn-login:hover{background:var(--navy-dark);}
.btn-register{background:var(--green);color:#fff !important;}
.btn-register:hover{background:var(--green-dark);}
.btn-outline{
  background:#fff;color:var(--navy);border:1px solid var(--border);
}
.btn-outline:hover{background:#f2f6fb;}
.logout-form{margin:0;}

.profile-menu{position:relative;}
.profile-menu.is-active .profile-toggle,
.profile-menu.is-open .profile-toggle{border-color:var(--navy);background:#f2f6fb;}
.profile-dropdown{
  position:absolute;right:0;top:calc(100% + 6px);
  min-width:190px;background:#fff;border:1px solid var(--border);
  border-radius:10px;box-shadow:0 10px 28px rgba(20,40,80,.12);
  padding:6px;z-index:40;
}
.profile-dropdown[hidden]{display:none !important;}
.profile-dropdown a{
  display:block;padding:10px 12px;border-radius:8px;
  color:var(--text);font-size:14px;font-weight:600;text-decoration:none;
}
.profile-dropdown a:hover{background:#f2f6fb;color:var(--navy);}
.profile-dropdown a.active{background:#eef4fb;color:var(--navy);}

.nav-toggle{
  display:none;
  width:42px;height:42px;border-radius:8px;border:1px solid var(--border);
  background:#fff;cursor:pointer;padding:10px;
  flex-direction:column;justify-content:space-between;
}
.nav-toggle span{
  display:block;height:2px;background:var(--navy);border-radius:2px;
  transition:transform .2s ease, opacity .2s ease;
}
.nav-toggle.is-open span:nth-child(1){transform:translateY(8px) rotate(45deg);}
.nav-toggle.is-open span:nth-child(2){opacity:0;}
.nav-toggle.is-open span:nth-child(3){transform:translateY(-8px) rotate(-45deg);}

main.site-main{flex:1;width:100%;}

/* Hero slider */
.hero{
  position:relative;
  min-height:500px;
  overflow:hidden;
  background:#0b2a4a;
}
.hero-slides{position:relative;min-height:500px;}
.hero-slide{
  position:absolute;inset:0;
  display:flex;align-items:center;
  opacity:0;visibility:hidden;
  transition:opacity .55s ease, visibility .55s ease;
  pointer-events:none;
}
.hero-slide.is-active{
  opacity:1;visibility:visible;pointer-events:auto;z-index:1;
}
.hero-media{
  position:absolute;inset:0;
  pointer-events:none;
}
.hero-media img{
  width:100%;height:100%;object-fit:cover;display:block;
}
.hero-media--illus{
  background:
    linear-gradient(90deg, rgba(6,20,40,.78) 0%, rgba(6,20,40,.42) 45%, rgba(6,20,40,.12) 72%),
    linear-gradient(180deg,#a9c9e6,#cfe3c8 55%,#dcead0);
}
.hero-media--illus img{
  object-position:right center;
  mix-blend-mode:normal;
  opacity:.95;
}
.hero-media--illus::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(90deg, rgba(6,20,40,.78) 0%, rgba(6,20,40,.4) 42%, rgba(6,20,40,.08) 70%);
}
.hero-media--photo::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(90deg, rgba(6,20,40,.78) 0%, rgba(6,20,40,.45) 45%, rgba(6,20,40,.15) 75%);
}
.hero-content{
  position:relative;z-index:2;color:#fff;padding:48px 72px;max-width:640px;
}
.hero-content .eyebrow{font-size:22px;font-weight:400;margin:0 0 4px;}
.hero-content h1{font-size:40px;font-weight:800;margin:0 0 16px;line-height:1.15;}
.hero-content p{font-size:16px;line-height:1.5;color:#e8eef5;margin-bottom:26px;max-width:480px;}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap;}
.hero-btn{
  padding:13px 22px;border-radius:6px;font-weight:600;font-size:15px;
  display:inline-flex;align-items:center;gap:8px;border:none;cursor:pointer;
}
.hero-btn.primary{background:var(--navy);color:#fff;}
.hero-btn.primary:hover{background:var(--navy-dark);}
.hero-btn.secondary{background:var(--green);color:#fff;}
.hero-btn.secondary:hover{background:var(--green-dark);}

.hero-arrow{
  position:absolute;top:50%;transform:translateY(-50%);
  width:38px;height:38px;border-radius:50%;background:rgba(255,255,255,.9);
  display:flex;align-items:center;justify-content:center;font-size:22px;line-height:1;color:var(--navy);
  cursor:pointer;z-index:3;border:none;box-shadow:0 4px 14px rgba(0,0,0,.12);
}
.hero-arrow:hover{background:#fff;}
.hero-arrow.left{left:20px;}
.hero-arrow.right{right:20px;}

.hero-dots{
  position:absolute;left:50%;bottom:18px;transform:translateX(-50%);
  display:flex;gap:8px;z-index:3;
}
.hero-dot{
  width:10px;height:10px;border-radius:50%;border:none;padding:0;
  background:rgba(255,255,255,.45);cursor:pointer;
}
.hero-dot.is-active{background:#fff;transform:scale(1.15);}

/* Quick services panel (overlapping hero) */
.panel{
  background:var(--card);
  max-width:1440px;
  margin:-40px auto 0;
  position:relative;z-index:4;
  border-radius:12px;
  box-shadow:0 10px 30px rgba(20,40,80,.12);
  padding:24px 28px;
  width:calc(100% - 48px);
}
.panel h2{
  font-size:17px;color:var(--navy);margin:0 0 18px;font-weight:700;
}

/* A panel inside the sidebar layout is already positioned by the grid: the -40px pull
   and the fixed width belong to the full-bleed home panel, and inside module-main they
   drag it under the header and out past its column. */
.module-main > .panel{
  margin:0;
  width:100%;
  box-shadow:none;
  border:1px solid var(--border);
}

/* .services-page / .schemes-page carry their own 28px margins for the full-width
   layout; inside the shell the flex gap on .module-main already spaces them, and
   keeping both doubles it. */
.module-main > .panel.services-page,
.module-main > .panel.schemes-page{
  margin:0;
}

/* Those grids are pinned to 4 columns with !important, which was fine full-bleed but
   squeezes the cards now that the sidebar takes 240px. Let them fit to the space they
   actually have. The media queries further down still narrow them on small screens. */
/* Inside the shell these panels show six tiles plus a "View All", so give them exactly
   seven columns: auto-fit with a minimum wide enough for the labels wrapped the last
   tile onto its own row. The full-list pages keep fitting to the available width. */
.module-main .quick-grid,
.module-main .scheme-grid{
  grid-template-columns:repeat(7,minmax(0,1fr)) !important;
}
.module-main .quick-grid.services-grid,
.module-main .quick-grid.schemes-all-grid,
.module-main .services-page .services-grid,
.module-main .schemes-page .schemes-all-grid{
  grid-template-columns:repeat(auto-fit,minmax(130px,1fr)) !important;
}
.quick-grid{
  display:grid;
  grid-template-columns:repeat(10,1fr);
  gap:10px;
}
.qs-item{
  display:flex;flex-direction:column;align-items:center;gap:10px;
  padding:14px 6px;border-radius:8px;text-align:center;
  font-size:12.5px;font-weight:600;color:#2c3e50;
}
.qs-item:hover{background:#f2f6fb;}
.qs-icon{
  width:48px;height:48px;border-radius:10px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:20px;
  flex-shrink:0;
}

.services-page{margin:28px auto;}
.services-page .services-grid,
.quick-grid.services-grid{
  display:grid !important;
  grid-template-columns:repeat(4,minmax(0,1fr)) !important;
  gap:14px !important;
  width:100%;
}
.services-page .qs-item{
  border:1px solid #e6edf5;
  background:#fff;
  padding:20px 10px;
  min-width:0;
}
.services-page .qs-item:hover{
  background:#f7fafc;
  border-color:#c9d8ec;
  box-shadow:0 6px 16px rgba(20,40,80,.08);
}

.schemes-page{margin:28px auto;}
.schemes-page .schemes-all-grid,
.quick-grid.schemes-all-grid{
  display:grid !important;
  grid-template-columns:repeat(4,minmax(0,1fr)) !important;
  gap:14px !important;
  width:100%;
}
.schemes-page .qs-item{
  border:1px solid #d9ecd8;
  background:#fff;
  padding:20px 10px;
  min-width:0;
}
.schemes-page .qs-item:hover{
  background:#f3faf3;
  border-color:#b8dcb6;
  box-shadow:0 6px 16px rgba(20,80,40,.08);
}
.schemes-page .scheme-icon{
  width:48px;height:48px;border-radius:10px;background:#eef7ee;
  display:flex;align-items:center;justify-content:center;font-size:22px;
}

.section{max-width:1440px;margin:20px auto;padding:0 24px;width:100%;}

.schemes-panel{
  background:#eef7ee;border:1px solid #d9ecd8;border-radius:12px;padding:22px 26px;
}
.schemes-panel h2{color:var(--green-dark);font-size:16px;margin:0 0 18px;}
.scheme-grid{display:grid;grid-template-columns:repeat(9,1fr);gap:10px;}
.scheme-item{
  display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;
  font-size:12.5px;font-weight:600;color:#2c3e50;padding:10px 4px;border-radius:8px;
}
.scheme-item:hover{background:#fff;}
.scheme-icon{
  width:44px;height:44px;border-radius:10px;background:#fff;display:flex;align-items:center;justify-content:center;font-size:20px;
  box-shadow:0 2px 6px rgba(0,0,0,.06);
}

.grid-lower{
  display:grid;grid-template-columns:1fr 1.35fr 1.15fr;gap:16px;margin-top:20px;
  align-items:stretch;
}
.grid-lower > .card{min-width:0;}
.card{
  background:var(--card);border:1px solid var(--border);border-radius:12px;padding:20px 22px;
}
.card h3{font-size:15px;color:var(--navy);margin:0 0 16px;font-weight:700;display:flex;justify-content:space-between;align-items:center;gap:8px;}
.card h3 a{font-size:12px;color:var(--green);font-weight:600;white-space:nowrap;}

.stats-list{display:flex;flex-direction:column;gap:16px;}
.stat-row{display:flex;align-items:center;gap:12px;}
.stat-icon{
  width:38px;height:38px;border-radius:8px;background:#eaf1fb;color:var(--navy);
  display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0;
}
.stat-num{font-size:18px;font-weight:800;color:var(--text);line-height:1.1;}
.stat-label{font-size:12px;color:var(--muted);}

.news-item{padding:12px 0;border-bottom:1px solid var(--border);}
.news-item:last-child{border-bottom:none;}
.news-row{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;}
.news-title{font-size:13.5px;color:#2c3e50;font-weight:500;}
.news-title a{color:inherit;}
.news-title a:hover{color:var(--green-dark);}
.news-tag{background:var(--green);color:#fff;font-size:10px;font-weight:700;padding:2px 6px;border-radius:4px;margin-right:6px;}
.news-date{font-size:11.5px;color:var(--muted);white-space:nowrap;}
.news-source{font-size:12px;color:var(--muted);margin-top:4px;}
.view-all-link{color:var(--green);font-size:13px;font-weight:600;margin-top:8px;display:inline-block;}
.news-page{margin:28px auto;}
.news-page-intro{margin:-8px 0 18px;color:#5a6a7a;font-size:14px;}
.news-empty{color:#5a6a7a;font-size:14px;margin:0;}

.yt-news-card{display:flex;flex-direction:column;}
.yt-embed{
  position:relative;width:100%;aspect-ratio:16/9;
  border-radius:10px;overflow:hidden;background:#0f172a;margin-bottom:12px;
}
.yt-embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0;}
.yt-list{display:flex;flex-direction:column;gap:10px;}
.yt-item{
  display:flex;gap:10px;align-items:flex-start;
  padding:8px;border-radius:8px;border:1px solid transparent;
}
.yt-item:hover{background:#f7fafc;border-color:#e6edf5;}
.yt-item img{width:72px;height:40px;object-fit:cover;border-radius:6px;flex-shrink:0;}
.yt-item span{display:flex;flex-direction:column;gap:2px;min-width:0;}
.yt-item strong{
  font-size:12.5px;color:#2c3e50;line-height:1.35;font-weight:600;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.yt-item small{font-size:11px;color:var(--muted);}

.links-list{display:flex;flex-direction:column;gap:14px;}
.link-row{display:flex;align-items:center;gap:10px;font-size:13.5px;color:#2c3e50;font-weight:500;}
.link-row .dot{color:var(--navy);font-size:15px;}

.banner-card{
  padding:0;overflow:hidden;position:relative;
  background:linear-gradient(135deg,#fff 40%,#fff4e0 100%);
}
.banner-inner{padding:20px 22px;}
.banner-inner h4{margin:0 0 6px;font-size:17px;color:var(--navy);}
.banner-inner p{margin:0;font-size:12.5px;color:var(--muted);line-height:1.5;}
.banner-stripe{height:10px;width:100%;background:linear-gradient(90deg,var(--orange),#fff,var(--green));}
.banner-graphic{
  height:110px;display:flex;align-items:center;justify-content:center;
}

/* Footer helplines */
footer.helplines{
  background:var(--navy);color:#fff;padding:18px 30px;
  display:flex;align-items:center;gap:40px;flex-wrap:wrap;margin-top:24px;
}
footer.helplines .label{font-weight:700;font-size:15px;margin-right:10px;}
.helpline-item{display:flex;align-items:center;gap:10px;}
.helpline-item .hicon{
  width:34px;height:34px;border-radius:50%;background:rgba(255,255,255,.15);
  display:flex;align-items:center;justify-content:center;font-size:15px;
}
.helpline-item .hnum{font-weight:800;font-size:15px;line-height:1;}
.helpline-item .hname{font-size:11px;color:#cfe0f7;}

.footer-bottom{
  background:var(--navy-dark);
  color:rgba(255,255,255,.7);
  padding:12px 30px;
  font-size:12px;
  display:flex;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
}

/* Auth pages */
.auth-wrap{
  min-height:calc(100vh - 220px);
  display:flex;align-items:center;justify-content:center;
  padding:28px 16px;
}
.auth-box{
  background:#fff;
  width:100%;
  max-width:400px;
  padding:28px;
  border-radius:12px;
  border:1px solid var(--border);
  box-shadow:0 10px 30px rgba(20,40,80,.10);
}
.auth-box h1{margin:0 0 4px;color:var(--navy);font-size:22px;}
.auth-box .sub{color:var(--muted);font-size:13px;margin-bottom:18px;}
.auth-box label{display:block;font-size:13px;margin:10px 0 4px;font-weight:600;}
.auth-box input{
  width:100%;padding:10px 12px;border:1px solid #c9d4e5;border-radius:8px;font:inherit;
}
.auth-box input:focus{outline:2px solid rgba(11,61,145,.2);border-color:var(--navy);}
.auth-box input[readonly]{
  background:#f4f7fb;
  color:var(--muted);
  cursor:default;
}
.auth-box .err{
  background:#ffecec;color:#a10000;border:1px solid #ffb3b3;
  padding:8px 10px;border-radius:8px;font-size:13px;margin-bottom:10px;
}
.auth-box .ok{
  background:#d9f5e2;color:#0b5e3b;
  padding:8px 10px;border-radius:8px;font-size:13px;margin-bottom:10px;
}
.auth-box .links{margin-top:14px;font-size:13px;text-align:center;}
.auth-box .links a{color:var(--navy);font-weight:600;}

.auth-box.auth-wide{max-width:720px;}
.auth-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.auth-grid .full{grid-column:1/3;}
.auth-box select{
  width:100%;padding:10px 12px;border:1px solid #c9d4e5;border-radius:8px;font:inherit;background:#fff;
}
.auth-box select:focus{outline:2px solid rgba(11,61,145,.2);border-color:var(--navy);}
.auth-hint{color:var(--muted);font-weight:500;font-size:12px;}

/* Panchayat module (left sidebar + content) */
.module-shell{
  max-width:1440px;
  margin:0 auto;
  padding:24px;
  display:grid;
  grid-template-columns:240px 1fr;
  gap:20px;
  align-items:start;
  width:100%;
  min-height:calc(100vh - 220px);
}

/* On pages where the shell is only part of the page — the home page puts Popular
   Schemes and the news grid below it — that full-height minimum leaves a screen of
   empty space under the panel and pushes the rest far down. */
.module-shell.module-shell--inline{
  min-height:0;
  padding-bottom:0;
}
.module-sidebar{
  background:#fff;
  border:1px solid var(--border);
  border-radius:12px;
  box-shadow:0 8px 24px rgba(20,40,80,.06);
  overflow:hidden;
  position:sticky;
  top:84px;
}
.module-sidebar-head{
  padding:16px 16px 14px;
  background:linear-gradient(160deg,#0b3d91 0%,#146b30 120%);
  color:#fff;
}
.module-sidebar-kicker{
  font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
  opacity:.8;margin-bottom:4px;
}
.module-sidebar-title{font-size:16px;font-weight:700;line-height:1.3;}
.module-sidebar-code{font-size:12px;opacity:.85;margin-top:4px;}
.module-nav{padding:10px;}
.module-nav-item{
  display:flex;align-items:center;gap:10px;
  padding:11px 12px;border-radius:8px;
  font-size:14px;font-weight:600;color:#2c3e50;
}
.module-nav-item:hover{background:#f2f6fb;color:var(--navy);}
.module-nav-item.active{background:#eef4fb;color:var(--navy);}
.module-nav-icon{font-size:16px;line-height:1;}
.module-main{
  min-width:0;
  /* Stack whatever the page puts here with even spacing. The panels themselves carry
     no margins inside the shell (see .module-main > .panel), and .schemes-panel lost
     the .section wrapper that used to space it, so the gap belongs here. */
  display:flex;
  flex-direction:column;
  gap:16px;
}
.module-card{
  background:#fff;
  border:1px solid var(--border);
  border-radius:12px;
  box-shadow:0 8px 24px rgba(20,40,80,.06);
  padding:20px 10px;
}
.module-toolbar{
  display:flex;justify-content:space-between;align-items:flex-start;
  gap:16px;flex-wrap:wrap;margin-bottom:16px;
}
.module-toolbar h1{
  margin:0 0 4px;font-size:22px;color:var(--navy);
}
.module-meta{margin:0;font-size:13px;color:var(--muted);}
.module-meta b{color:var(--green-dark);}
.module-search{display:flex;gap:8px;align-items:center;}
.module-search input{
  width:240px;max-width:100%;padding:10px 12px;
  border:1px solid #c9d4e5;border-radius:8px;font:inherit;
}
.module-empty{
  margin:8px 0 0;padding:16px;border-radius:8px;
  background:#f7fafc;border:1px dashed var(--border);
  color:var(--muted);font-size:14px;
}
.module-table-wrap{overflow-x:auto;}
.module-table{
  width:100%;border-collapse:collapse;font-size:14px;
}
.module-table th,.module-table td{
  text-align:left;padding:10px 12px;
  border-bottom:1px solid var(--border);
}
.module-table th{
  font-size:12px;text-transform:uppercase;letter-spacing:.03em;
  color:var(--muted);background:#f7fafc;
}
.module-table tbody tr:hover{background:#f9fbfd;}
.module-pager{margin-top:18px;padding-top:14px;border-top:1px solid var(--border);}
.module-toolbar-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center;}
.module-filters{
  display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end;
  margin-bottom:16px;padding-bottom:14px;border-bottom:1px solid var(--border);
}
.module-filters label{
  display:block;font-size:12px;font-weight:600;color:var(--muted);margin-bottom:4px;
}
.module-filters select{
  min-width:200px;padding:10px 12px;border:1px solid #c9d4e5;border-radius:8px;
  font:inherit;background:#fff;
}
.module-group-head{
  margin:8px 0 10px;font-size:14px;color:var(--green-dark);
}
.module-group-sub{font-size:12px;color:var(--muted);font-weight:500;margin-top:2px;}
.module-code{font-size:11px;color:var(--muted);}
.module-link{color:var(--green);font-weight:700;}
.module-link:hover{text-decoration:underline;}
.module-err{
  background:#ffecec;color:#a10000;border:1px solid #ffb3b3;
  padding:10px 12px;border-radius:8px;font-size:13px;margin-bottom:12px;
}
.module-ok{
  background:#d9f5e2;color:#0b5e3b;
  padding:10px 12px;border-radius:8px;font-size:13px;margin-bottom:12px;
}
.module-tracked{
  background:#f0f7ff;border:1px solid #cfe0f5;border-radius:10px;
  padding:14px;margin-bottom:16px;
}
.module-tracked-title{
  font-weight:700;color:var(--green-dark);font-size:14px;margin-bottom:8px;
}
.module-tracked-title span{font-weight:500;color:var(--muted);font-size:12px;}
.module-frame{
  overflow:auto;max-height:70vh;border:1px solid var(--border);
  border-radius:10px;background:#fff;padding:8px;
}
.module-frame table{width:100%;font-size:13px;}
.status-pill{
  display:inline-block;padding:3px 8px;border-radius:999px;
  font-size:12px;font-weight:700;
}
.status-pill.is-present{background:#d9f5e2;color:#0b5e3b;}
.status-pill.is-absent{background:#ffecec;color:#a10000;}
.status-pill.is-pending{background:#fff7e6;color:#8a5a00;}
.module-subhead{margin:0 0 12px;font-size:17px;color:var(--navy);}
.module-form label{display:block;font-size:13px;margin:0 0 4px;font-weight:600;}
.module-form input[type=text],
.module-form input[type=email],
.module-form input:not([type]),
.module-form textarea,
.module-form input[type=file]{
  width:100%;padding:10px 12px;border:1px solid #c9d4e5;border-radius:8px;font:inherit;
  background:#fff;
}
.module-form textarea{resize:vertical;min-height:110px;}
.module-form input[type=file]{padding:8px;}

/* Shared pagination */
.pager{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.pager-info{font-size:13px;color:var(--muted);}
.pager-info b{color:var(--text);font-weight:700;}
.pager-links{display:flex;flex-wrap:wrap;align-items:center;gap:6px;}
.pager .pg{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:36px;height:36px;padding:0 12px;
  border:1px solid var(--border);border-radius:8px;
  font-size:13px;font-weight:600;color:var(--navy);
  background:#fff;text-decoration:none;line-height:1;
}
.pager a.pg:hover{background:#eef4fb;border-color:#b8c9e0;}
.pager .pg.active{
  background:var(--navy);color:#fff;border-color:var(--navy);
}
.pager .pg.disabled{
  color:#9aa8b8;background:#f4f7fb;cursor:default;
}
.pager .pg.dots{
  border:0;background:transparent;min-width:24px;color:var(--muted);
  padding:0 4px;
}
.pager svg{width:14px;height:14px;}

@media (max-width:640px){
  .auth-grid{grid-template-columns:1fr;}
  .auth-grid .full{grid-column:1;}
}

@media (max-width:1100px){
  header.main{padding:10px 14px;}
  .logo-img{height:44px;max-width:170px;}
  .nav-toggle{display:flex;margin-left:auto;}
  .header-right{
    display:none;
    width:100%;
    flex-direction:column;
    align-items:stretch;
    gap:12px;
    padding:12px 0 4px;
    border-top:1px solid var(--border);
  }
  .header-right.is-open{display:flex;}
  nav.mainnav{display:flex;flex-direction:column;align-items:stretch;gap:2px;width:100%;}
  nav.mainnav a{
    padding:12px 10px;border-bottom:1px solid var(--border);border-radius:8px;
  }
  nav.mainnav a.active{
    border-bottom-color:transparent;background:#eef4fb;color:var(--navy);
  }
  .auth-buttons{width:100%;}
  .auth-buttons .btn{flex:1;min-height:42px;}
  .profile-menu{flex:1;min-width:0;}
  .profile-menu .profile-toggle{width:100%;}
  .profile-dropdown{left:0;right:0;min-width:0;position:static;margin-top:6px;box-shadow:none;}

  .module-shell{grid-template-columns:1fr;padding:14px;gap:14px;}
  .module-sidebar{position:static;border-radius:12px;}
  .module-sidebar-head{padding:14px;}
  .module-nav{
    display:flex;flex-wrap:nowrap;gap:8px;padding:10px;
    overflow-x:auto;-webkit-overflow-scrolling:touch;
    scrollbar-width:thin;
  }
  .module-nav-item{
    flex:0 0 auto;white-space:nowrap;
    padding:10px 14px;background:#f7fafc;border:1px solid var(--border);
  }
  .module-nav-item.active{border-color:#b8c9e0;}
  .module-card{padding:16px;}
  .module-toolbar h1{font-size:20px;}
  .module-search{width:100%;}
  .module-search input{width:100%;flex:1;}
  .module-toolbar-actions{width:100%;}
  .module-filters{flex-direction:column;align-items:stretch;}
  .module-filters > div{width:100%;}
  .module-filters select{width:100%;min-width:0;}
  .module-table{font-size:13px;min-width:640px;}
  .module-table th,.module-table td{padding:8px 10px;}
  .module-frame{max-height:60vh;padding:4px;}
  .pager{flex-direction:column;align-items:stretch;}
  .pager-links{justify-content:center;}
  .pager-info{text-align:center;}

  .quick-grid{grid-template-columns:repeat(5,1fr);}
  .scheme-grid{grid-template-columns:repeat(4,1fr);}
  .grid-lower{grid-template-columns:1fr 1fr;}
  .grid-lower > .card:last-child{grid-column:1 / -1;}
  .services-page .services-grid,
  .quick-grid.services-grid{grid-template-columns:repeat(3,minmax(0,1fr)) !important;}
  .schemes-page .schemes-all-grid,
  .quick-grid.schemes-all-grid{grid-template-columns:repeat(3,minmax(0,1fr)) !important;}
}

@media (max-width:800px){
  .hero,.hero-slides{min-height:340px;}
  .hero-content{padding:28px 52px 64px 18px;max-width:100%;}
  .hero-content .eyebrow{font-size:16px;}
  .hero-content h1{font-size:26px;margin-bottom:12px;}
  .hero-content p{font-size:14px;margin-bottom:18px;}
  .hero-arrow{width:32px;height:32px;font-size:18px;}
  .hero-arrow.left{left:8px;}
  .hero-arrow.right{right:8px;}
  .hero-dots{bottom:12px;}
  .panel{margin-top:-20px;width:calc(100% - 20px);padding:16px;}
  .panel h2{font-size:16px;}
  .section{padding:0 12px;margin:16px auto;}
  .schemes-panel{padding:16px;}
  .quick-grid{grid-template-columns:repeat(3,1fr);gap:8px;}
  .scheme-grid{grid-template-columns:repeat(3,1fr);gap:8px;}
  /* The seven-column rule above uses !important to beat the base grid, so the
     responsive counts have to match it to win here. */
  .module-main .quick-grid,
  .module-main .scheme-grid{grid-template-columns:repeat(3,1fr) !important;gap:8px;}
  .grid-lower{grid-template-columns:1fr;gap:14px;}
  .services-page .services-grid,
  .quick-grid.services-grid{grid-template-columns:repeat(2,minmax(0,1fr)) !important;gap:10px !important;}
  .schemes-page .schemes-all-grid,
  .quick-grid.schemes-all-grid{grid-template-columns:repeat(2,minmax(0,1fr)) !important;gap:10px !important;}
  .qs-item{font-size:12px;padding:10px 4px;}
  .qs-icon{width:42px;height:42px;font-size:18px;}
  .auth-wrap{padding:20px 12px;min-height:calc(100vh - 180px);}
  .auth-box{padding:22px 18px;}
  .auth-box.auth-wide{max-width:100%;}
  .topbar .right{display:none;}
  footer.helplines{
    gap:14px;padding:16px;justify-content:flex-start;
  }
  .footer-bottom{
    flex-direction:column;padding:12px 16px;text-align:center;
  }
}

@media (max-width:520px){
  .logo-img{height:40px;max-width:150px;}
  .quick-grid,.scheme-grid{grid-template-columns:repeat(2,1fr);}
  .module-main .quick-grid,
  .module-main .scheme-grid{grid-template-columns:repeat(2,1fr) !important;}
  .services-page .services-grid,
  .quick-grid.services-grid{grid-template-columns:repeat(2,minmax(0,1fr)) !important;}
  .schemes-page .schemes-all-grid,
  .quick-grid.schemes-all-grid{grid-template-columns:repeat(2,minmax(0,1fr)) !important;}
  .hero,.hero-slides{min-height:300px;}
  .hero-content{padding:24px 44px 56px 14px;}
  .hero-content h1{font-size:22px;}
  .hero-actions{flex-direction:column;}
  .hero-btn{justify-content:center;width:100%;}
  .module-shell{padding:5px;}
  .module-card{padding:5px;border-radius:10px;}

  /* The gov job-card page brings its own Bootstrap spacing, which wastes most of the
     width on a phone. Scoped to .gov-report so the rest of the site keeps its padding. */
  .gov-report .container{padding-left:0;padding-right:0;}
  .gov-report .container.py-3{padding-top:0;padding-bottom:0;}
  .gov-report .jc-profile{padding:0;}
  .module-toolbar{margin-bottom:12px;}
  .module-search{flex-direction:column;align-items:stretch;}
  .module-search .btn{width:100%;}
  .module-table{min-width:560px;font-size:12px;}
  .pager .pg{min-width:32px;height:32px;padding:0 8px;font-size:12px;}
  footer.helplines{gap:12px;padding:14px;}
  .helpline-item .hnum{font-size:14px;}
}

/* --- Vahi Khata: reading-mode choice on the upload form --- */
.reader-choice{
  display:flex;
  gap:10px;
  align-items:flex-start;
  padding:12px 14px;
  margin-top:8px;
  border:1px solid #d9dee6;
  border-radius:8px;
  cursor:pointer;
  background:#fff;
}
.reader-choice:hover{border-color:#9fb2cc;}
.reader-choice input[type=radio]{margin-top:3px;flex:0 0 auto;width:auto;}
.reader-choice > span{display:block;}
.reader-choice .module-meta{display:block;margin-top:3px;}
/* Grey out an option whose reader is not installed/configured. */
.reader-choice:has(input:disabled){opacity:.55;cursor:not-allowed;background:#f6f7f9;}
.reader-choice:has(input:checked){border-color:#2f6fbf;box-shadow:0 0 0 2px rgba(47,111,191,.12);}

/* --- Poster translation POC --- */
.lang-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(190px,1fr));
  gap:8px;
  margin-top:8px;
}
.lang-choice{
  display:flex;
  gap:8px;
  align-items:center;
  padding:9px 12px;
  border:1px solid #d9dee6;
  border-radius:8px;
  cursor:pointer;
  background:#fff;
}
.lang-choice:hover{border-color:#9fb2cc;}
.lang-choice input{width:auto;flex:0 0 auto;margin:0;}
.lang-choice:has(input:disabled){opacity:.55;cursor:not-allowed;background:#f6f7f9;}
.lang-choice:has(input:checked){border-color:#2f6fbf;box-shadow:0 0 0 2px rgba(47,111,191,.12);}

.poster-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(260px,1fr));
  gap:16px;
  margin-top:12px;
}
.poster-item{margin:0;}
.poster-item img{
  width:100%;
  height:auto;
  border:1px solid #d9dee6;
  border-radius:8px;
  background:#fff;
}
.poster-item figcaption{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:center;
  margin-top:6px;
  font-size:13px;
}
