:root{--brand:#173b7a;--brand2:#2563eb;--ink:#172033;--muted:#667085;--bg:#f4f7fb;--card:#fff;--border:#e6eaf0;--success:#128a55;--danger:#dc3545;--warning:#d98b00;--shadow:0 10px 30px rgba(23,59,122,.08)}
*{box-sizing:border-box}
html,body{min-height:100%;}
body{background:linear-gradient(135deg,#f4f7fb 0%,#eef3fa 100%)!important;color:var(--ink)!important;font-family:Inter,Segoe UI,Arial,Helvetica,sans-serif!important}
a{color:var(--brand2)}
.container,.container-fluid{position:relative}
.card{border:1px solid rgba(23,59,122,.07)!important;border-radius:16px!important;box-shadow:var(--shadow)!important;background:rgba(255,255,255,.97)!important}
.btn{border-radius:9px!important;font-weight:600;box-shadow:none!important;transition:all .16s ease}
.btn:hover{transform:translateY(-1px)}
.btn-success{background:var(--success)!important;border-color:var(--success)!important}
.btn-danger{background:var(--danger)!important;border-color:var(--danger)!important}
.btn-primary{background:var(--brand2)!important;border-color:var(--brand2)!important}
.form-control,.form-select{border:1px solid #d7deea!important;border-radius:10px!important;min-height:40px!important;box-shadow:none!important}
.form-control:focus,.form-select:focus{border-color:#7aa7f7!important;box-shadow:0 0 0 .2rem rgba(37,99,235,.12)!important}
h1,h2,h3,h4,h5{color:var(--ink)}
.table{--bs-table-striped-bg:#f8fafc;vertical-align:middle}
.table thead th{background:#173b7a!important;color:#fff!important;border-color:#274b87!important;font-weight:700;white-space:nowrap}
.table td,.table th{border-color:#e1e6ee!important}
.badge-soft{background:#eef4ff;color:#174ea6;border:1px solid #d7e5ff;padding:.45rem .7rem;border-radius:999px;font-weight:700}
.page-top{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:22px;padding:18px 20px;border-radius:16px;background:linear-gradient(120deg,#173b7a,#2563eb);color:#fff;box-shadow:0 12px 30px rgba(23,59,122,.16)}
.page-top h1,.page-top h2{color:#fff;margin:0;font-weight:800;letter-spacing:-.3px}
.page-top p{margin:5px 0 0;color:rgba(255,255,255,.82);font-size:14px}
.page-top .btn{background:#fff!important;color:#173b7a!important;border-color:#fff!important}
.section-title{font-weight:800;margin:0 0 12px}
.report-section{padding:20px 22px!important}
.report-section+.report-section{border-top:1px solid var(--border)}
.report-section h4{font-weight:800;font-size:19px;margin-bottom:14px}
.report-buttons{display:flex;flex-wrap:wrap;gap:9px}
.report-buttons .btn{padding:.55rem .8rem}
.stat-modern{position:relative;overflow:hidden;padding:22px!important;min-height:145px}
.stat-modern:after{content:"";position:absolute;right:-35px;top:-35px;width:120px;height:120px;border-radius:50%;background:rgba(37,99,235,.06)}
.stat-modern .stat-label{font-size:12px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);font-weight:800}
.stat-modern .stat-value{font-size:32px;font-weight:800;margin-top:6px}
.toolbar{display:flex;flex-wrap:wrap;gap:9px;align-items:center}
.table-wrap{border-radius:14px!important;overflow:auto;box-shadow:var(--shadow)!important}
.alert{border-radius:12px!important;border:1px solid rgba(37,99,235,.12)!important}
@media(max-width:768px){.page-top{align-items:flex-start;flex-direction:column}.report-buttons .btn{width:100%}.table{font-size:13px}}
/* Page-specific polish */
.dashboard-wrap{max-width:1280px!important;padding:24px 20px 50px!important}
.dashboard-wrap .hero{height:auto!important;min-height:116px!important;border-radius:18px!important;padding:24px 28px!important;background:linear-gradient(120deg,#173b7a,#2563eb 70%,#3b82f6)!important;box-shadow:0 14px 34px rgba(23,59,122,.18)!important}
.dashboard-wrap .hero-title{font-size:30px!important}.dashboard-wrap .hero-subtitle{font-size:14px!important;opacity:.9}
.dashboard-wrap .actions{margin-bottom:20px!important}.dashboard-wrap .action-btn{background:#fff!important;color:#173b7a!important;border:1px solid #e4eaf3!important;height:44px!important;box-shadow:0 5px 14px rgba(23,59,122,.06)!important}
.dashboard-wrap .action-btn:hover{background:#f8fbff!important;transform:translateY(-2px)!important}.dashboard-wrap .action-btn.red{color:#b42318!important}
.dashboard-wrap .stat-card{min-height:145px!important;padding:20px!important}.dashboard-wrap .age-card{padding:20px!important}.dashboard-wrap .age-card h5{font-size:17px!important}
body> .container-fluid.py-3{max-width:1400px;margin:auto;padding:24px 20px 50px!important}
body> .container.py-5{max-width:1180px!important}
/* Reports */
.report-box{background:#fff!important;padding:20px 22px 22px!important}.report-box h4{margin:0 0 14px!important;font-weight:800!important;color:#173b7a!important}.buttons{margin-left:0!important}.buttons .btn{padding:.55rem .82rem!important}
/* MIS */
.mis-page-card{padding:24px!important}
/* Detail report */
.table-wrap{background:#fff}.sticky-head th{position:sticky;top:0;z-index:2}
/* Login */
.login-card{max-width:460px!important;margin:10vh auto!important;border-radius:20px!important;padding:30px!important}.login-card:before{content:"";display:block;height:5px;border-radius:99px;background:linear-gradient(90deg,#173b7a,#2563eb);margin:-30px -30px 26px}
.login-card .brand{font-size:27px!important}.login-card .form-control{padding:12px 14px!important}.login-card .btn{padding:11px!important}
/* Download / upload */
.container .card h2,.container .card h3{font-weight:800;color:#173b7a}.container .card h5{font-weight:800;color:#344054}.container .card .btn{margin-bottom:5px}


/* ============================================================
   TECHNICAL UI OVERLAY
   Visual-only layer. Does not alter report/database logic.
   ============================================================ */
:root{
  --tech-navy:#071a33;
  --tech-blue:#0b4f9c;
  --tech-cyan:#16c7e8;
  --tech-cyan-soft:rgba(22,199,232,.12);
  --tech-line:#d8e4f1;
  --tech-text:#10233f;
  --tech-muted:#64748b;
  --tech-panel:#ffffff;
  --tech-bg:#eef4fa;
}
html{background:var(--tech-bg)}
body.page-shell{
  background:
    linear-gradient(rgba(7,26,51,.035) 1px,transparent 1px),
    linear-gradient(90deg,rgba(7,26,51,.035) 1px,transparent 1px),
    radial-gradient(circle at 90% 0%,rgba(22,199,232,.10),transparent 28%),
    linear-gradient(135deg,#eef4fa 0%,#f7fafd 52%,#edf3f9 100%) !important;
  background-size:28px 28px,28px 28px,auto,auto !important;
  color:var(--tech-text)!important;
}
.page-shell::before{
  content:"SYSTEM • e-DISTRICT APPLICATION AGEING";
  position:fixed;left:14px;bottom:10px;z-index:20;
  font:700 9px/1 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  letter-spacing:1.4px;color:#7890aa;pointer-events:none;
}
.page-shell .page-top,
.page-shell .hero{
  position:relative;overflow:hidden;
  background:linear-gradient(120deg,#061a34 0%,#0b3d7a 48%,#1169c9 100%) !important;
  border:1px solid rgba(255,255,255,.12)!important;
  box-shadow:0 16px 35px rgba(7,26,51,.18)!important;
}
.page-shell .page-top::after,
.page-shell .hero::after{
  content:"";position:absolute;right:-45px;top:-75px;width:210px;height:210px;
  border:1px solid rgba(22,199,232,.32);border-radius:50%;
  box-shadow:0 0 0 26px rgba(22,199,232,.06),0 0 0 52px rgba(22,199,232,.035);
}
.page-shell .page-top::before,
.page-shell .hero::before{
  content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--tech-cyan);
}
.page-shell .page-top h1,.page-shell .page-top h2,
.page-shell .hero-title{letter-spacing:.2px!important}
.page-shell .page-top p,.page-shell .hero-subtitle{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace!important;font-size:11px!important;letter-spacing:.35px}
.page-shell .card{
  border:1px solid var(--tech-line)!important;
  box-shadow:0 10px 28px rgba(7,26,51,.08)!important;
  position:relative;
}
.page-shell .card::after{
  content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.9);
}
.page-shell .btn{
  font-size:12px!important;letter-spacing:.15px;
  border-radius:7px!important;border-width:1px!important;
  min-height:38px;padding:.55rem .78rem!important;
  position:relative;overflow:hidden;
}
.page-shell .btn::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:rgba(255,255,255,.22);opacity:.65;
}
.page-shell .btn-success{background:#087f55!important;border-color:#087f55!important}
.page-shell .btn-danger{background:#c92f48!important;border-color:#c92f48!important}
.page-shell .btn-primary{background:#1268d5!important;border-color:#1268d5!important}
.page-shell .btn-outline-secondary{background:#fff!important;color:#173b7a!important;border-color:#c8d6e7!important}
.page-shell .form-label{font:800 11px/1.2 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;text-transform:uppercase;letter-spacing:.8px;color:#52657d}
.page-shell .form-control,.page-shell .form-select{background:#fbfdff!important;border-color:#cbd9e8!important;font-size:13px!important}
.page-shell .form-control:focus,.page-shell .form-select:focus{border-color:var(--tech-cyan)!important;box-shadow:0 0 0 .18rem rgba(22,199,232,.13)!important}
/* dashboard */
.dashboard-wrap{max-width:1380px!important;padding:22px 24px 58px!important}
.dashboard-wrap .actions{gap:10px!important}
.dashboard-wrap .action-btn{border-radius:8px!important;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace!important;font-size:11px!important;text-transform:uppercase;letter-spacing:.25px}
.dashboard-wrap .stat-card,.dashboard-wrap .age-card{border:1px solid var(--tech-line)!important;position:relative;overflow:hidden}
.dashboard-wrap .stat-card::before,.dashboard-wrap .age-card::before{
 content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,#0b4f9c,var(--tech-cyan));
}
.dashboard-wrap .stat-label{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace!important;font-size:10px!important;letter-spacing:1px!important}
.dashboard-wrap .stat-value{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace!important}
/* reports */
.reports-page>.container-fluid{max-width:1420px!important}
.reports-page .row.g-3.mb-4{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px!important;margin:0 0 18px!important}
.reports-page .row.g-3.mb-4>[class*="col-"]{width:auto!important}
.reports-page .row.g-3.mb-4 .card{min-height:132px!important;padding:18px!important}
.reports-page .row.g-3.mb-4 .card h3{font:800 30px/1 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace!important;margin:8px 0 10px}
.reports-page .row.g-3.mb-4 .text-muted{font:700 10px ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;text-transform:uppercase;letter-spacing:.7px}
.reports-page .row.g-3.mb-4 .card a{font:700 11px ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;text-decoration:none}
.reports-page .card.overflow-hidden{border-radius:16px!important}
.reports-page .report-box{padding:22px 26px 24px!important;background:linear-gradient(180deg,#fff,#fbfdff)!important}
.reports-page .report-box h4{font:800 15px ui-monospace,SFMono-Regular,Menlo,Consolas,monospace!important;text-transform:uppercase;letter-spacing:.55px!important}
.reports-page .report-box h4::before{content:"▸ ";color:var(--tech-cyan)}
.reports-page .buttons .btn{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace!important;font-size:10.5px!important}
/* MIS */
.mis-page>.container{max-width:1260px!important}
.mis-page .mis-page-card{border-radius:16px!important;background:rgba(255,255,255,.97)!important}
.mis-page .mis-page-card::before{content:"FILTER / CONTROL PANEL";display:block;font:800 10px ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;letter-spacing:1.2px;color:#0b4f9c;margin-bottom:12px}
.mis-page .alert{background:#eefaff!important;border-color:#a9e7f2!important;color:#1c4f63!important;font-size:12px}
.mis-page .card.mt-4{padding:0!important;overflow:hidden}
.mis-page .card.mt-4 h4{margin:0;padding:18px 20px;border-bottom:1px solid var(--tech-line);font:800 15px ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;text-transform:uppercase}
.mis-page .card.mt-4 .d-flex{padding:18px 20px}
/* detailed report */
.age-page>.container-fluid{max-width:1500px!important}
.age-page .page-top{padding:20px 24px!important}
.age-page .page-top h2{font-size:23px!important}
.age-page .mb-3.d-flex{padding:4px 0 10px}
.age-page .mb-3.d-flex .btn{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace!important;font-size:10px!important;text-transform:uppercase}
.age-page .table-wrap{border-radius:12px!important;border:1px solid #cbd9e8!important}
.age-page table{font-size:11.5px!important;margin:0!important}
.age-page thead th{font:800 10px ui-monospace,SFMono-Regular,Menlo,Consolas,monospace!important;text-transform:uppercase;letter-spacing:.3px;padding:10px 9px!important}
.age-page tbody td{padding:8px 9px!important;white-space:nowrap}
.age-page tbody tr:nth-child(even){background:#f7fafd}
.age-page tbody tr:hover{background:#eaf7fb!important}
.age-page tbody td:nth-child(2){font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-weight:800}
/* download */
.download-page>.container{max-width:1200px!important}
.download-page>.container>.card{padding:24px!important}
.download-page h5{font:800 12px ui-monospace,SFMono-Regular,Menlo,Consolas,monospace!important;text-transform:uppercase;letter-spacing:.8px;color:#0b4f9c!important;margin-top:24px!important}
.download-page .d-flex.flex-wrap{padding:12px;background:#f5f9fd;border:1px solid var(--tech-line);border-radius:10px}
.download-page .d-flex.flex-wrap .btn{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace!important;font-size:10px!important}
/* upload/login */
.upload-page>.container{max-width:920px!important}.upload-page .card{padding:28px!important}.upload-page h3{font:800 20px ui-monospace,SFMono-Regular,Menlo,Consolas,monospace!important;text-transform:uppercase}
.login-page{display:flex;align-items:center;justify-content:center;padding:30px!important}
.login-page .login-card{width:min(460px,100%);margin:0!important;border-top:4px solid var(--tech-cyan)!important}
.login-page .brand{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace!important;text-transform:uppercase;letter-spacing:.5px}
/* technical tiny status accents */
.page-shell .page-top h2::after{content:"  // ONLINE";font:700 9px ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:#72e7f5;letter-spacing:1px;margin-left:10px}
@media(max-width:1100px){.reports-page .row.g-3.mb-4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){
 .reports-page .row.g-3.mb-4{grid-template-columns:1fr}
 .page-shell::before{display:none}
 .dashboard-wrap{padding:16px 14px 42px!important}
 .page-shell .page-top{padding:18px!important}
}


/* ============================================================
   FINAL UI TYPOGRAPHY / BOLD CONTROL
   Visual-only changes. Report and database logic is untouched.
   ============================================================ */
.page-shell{font-weight:600!important}
.page-shell h1,.page-shell h2,.page-shell h3,.page-shell h4,.page-shell h5,.page-shell h6{font-weight:800!important}
.page-shell p,.page-shell label,.page-shell .form-label,.page-shell .text-muted,.page-shell .alert,.page-shell a{font-weight:650!important}
.page-shell .btn{font-weight:800!important}
.page-shell .form-control,.page-shell .form-select{font-weight:650!important}
.page-shell .form-control::placeholder{font-weight:600!important}
.page-shell .table th{font-weight:800!important}
.page-shell .table td{font-weight:650!important}
.page-shell .stat-label,.page-shell .stat-value,.page-shell .report-box h4,.page-shell .section-title{font-weight:800!important}
.dashboard-wrap{font-weight:600!important}
.dashboard-wrap .hero-title,.dashboard-wrap .hero-subtitle,.dashboard-wrap .stat-label,.dashboard-wrap .stat-value,.dashboard-wrap .action-btn,.dashboard-wrap h1,.dashboard-wrap h2,.dashboard-wrap h3,.dashboard-wrap h4,.dashboard-wrap h5{font-weight:800!important}
.dashboard-wrap a,.dashboard-wrap p,.dashboard-wrap label{font-weight:650!important}
.reports-page .report-box h4,.reports-page .card .text-muted,.reports-page .card h3,.reports-page .card a,.reports-page .buttons .btn{font-weight:800!important}
.age-page .page-top h2,.age-page .page-top p,.age-page .btn,.age-page table th,.age-page table td{font-weight:800!important}
.mis-page .page-top h2,.mis-page .page-top p,.mis-page .form-label,.mis-page .btn,.mis-page h4,.mis-page .alert{font-weight:800!important}
.download-page .page-top h2,.download-page .page-top p,.download-page h5,.download-page .btn{font-weight:800!important}
.upload-page .page-top h2,.upload-page .page-top p,.upload-page h3,.upload-page .btn,.upload-page .alert,.upload-page label{font-weight:800!important}
.login-page .brand,.login-page .text-muted,.login-page .btn,.login-page .form-control{font-weight:800!important}
