/* ══════════════════════════════════════════════
   CGHS DAMS — Biometric Attendance System
   Government of India Styling
   ══════════════════════════════════════════════ */
*{margin:0;padding:0;box-sizing:border-box}
:root{
  --saffron:#FF9933;--green:#138808;--navy:#003366;--dark:#00205B;
  --bg:#f0f4f8;--card:#fff;--border:#d1d9e0;--text:#333;--textl:#666;
  --ok:#28a745;--danger:#dc3545;--warn:#e67e22;--link:#0056b3;
}
body{font-family:'Segoe UI',Tahoma,Geneva,Verdana,sans-serif;background:var(--bg);color:var(--text);line-height:1.6;min-height:100vh;display:flex;flex-direction:column}

/* Tricolor */
.tricolor-bar{display:flex;height:4px}
.tricolor-bar span:nth-child(1){flex:1;background:var(--saffron)}
.tricolor-bar span:nth-child(2){flex:1;background:#fff}
.tricolor-bar span:nth-child(3){flex:1;background:var(--green)}

/* Header */
.gov-header{background:linear-gradient(135deg,var(--dark),var(--navy));color:#fff;text-align:center;padding:14px 20px}
.header-content{display:flex;align-items:center;justify-content:center;gap:14px;margin-bottom:4px}
.emblem{width:56px;height:56px;border:2px solid rgba(255,255,255,.3);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:28px;background:rgba(255,255,255,.1)}
.header-text{display:flex;flex-direction:column;text-align:left}
.h-hindi{font-size:13px;opacity:.9} .h-en{font-size:15px;font-weight:600}
.h-sub{font-size:12px;opacity:.78;color:var(--textl)}
.header-title{margin-top:6px;padding-top:6px;border-top:1px solid rgba(255,255,255,.2)}
.header-title h1{font-size:17px;font-weight:600;letter-spacing:.4px}
.header-title p{font-size:12px;opacity:.78}

/* Nav */
.nav-bar{background:#1a4d7e;padding:0}
.nav-bar ul{list-style:none;display:flex;justify-content:center;flex-wrap:wrap}
.nav-bar li a{color:#fff;text-decoration:none;padding:9px 18px;display:block;font-size:13px;transition:background .2s}
.nav-bar li a:hover,.nav-bar li a.active{background:rgba(255,255,255,.15)}

/* Notice */
.notice-bar{background:#fff3cd;border-bottom:1px solid #ffc107;padding:7px 20px;font-size:12px;color:#856404}

/* Main */
.main-content{flex:1;max-width:1100px;margin:0 auto;padding:24px 20px;width:100%}

/* Card */
.card{background:var(--card);border-radius:6px;box-shadow:0 1px 4px rgba(0,0,0,.1);margin-bottom:18px;overflow:hidden}
.card-header{background:var(--navy);color:#fff;padding:11px 16px;font-size:14px;font-weight:600}
.card-body{padding:16px}

/* Info row */
.info-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.info-card ul{margin:8px 0 0 18px;font-size:13px}
.info-card p{font-size:13px}

/* Centre directory */
.search-box{width:100%;padding:9px 14px;border:1px solid var(--border);border-radius:4px;font-size:14px;margin-bottom:14px}
.search-box:focus{outline:none;border-color:var(--navy);box-shadow:0 0 0 2px rgba(0,51,102,.1)}
.state-group{margin-bottom:2px;border-bottom:1px solid #eee}
.state-name{font-size:14px;font-weight:600;color:var(--navy);padding:10px 0;cursor:pointer;user-select:none}
.state-name:hover{color:var(--link)}
.state-name .arrow{display:inline-block;transition:transform .2s;font-size:11px}
.state-group.open .arrow{transform:rotate(90deg)}
.centre-list{display:none;padding:0 0 6px 16px}
.state-group.open .centre-list{display:block}
.centre-item{display:flex;justify-content:space-between;align-items:center;padding:6px 12px;border-bottom:1px solid #f5f5f5}
.centre-item:hover{background:#f8f9fa}
.centre-item a{color:var(--link);text-decoration:none;font-size:13px}
.centre-item a:hover{text-decoration:underline}
.centre-code{font-size:11px;color:var(--textl);font-family:monospace}
.count{font-weight:400;font-size:12px;color:var(--textl)}

/* Footer */
.gov-footer{background:var(--dark);color:#fff;text-align:center;padding:14px 20px;font-size:11px;margin-top:auto}
.gov-footer a{color:#8bb9e0;text-decoration:none}
.footer-links{margin-bottom:6px} .footer-links a{margin:0 8px}
.footer-meta{opacity:.65;margin-top:4px}

/* Forms */
.form-group{margin-bottom:14px;text-align:left}
.form-group label{display:block;font-size:12px;font-weight:600;margin-bottom:4px}
.form-group input,.form-group select{width:100%;padding:9px 11px;border:1px solid var(--border);border-radius:4px;font-size:14px}
.form-group input:focus,.form-group select:focus{outline:none;border-color:var(--navy);box-shadow:0 0 0 2px rgba(0,51,102,.1)}
.form-group small{display:block;margin-top:3px}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}

.btn{display:inline-block;padding:9px 22px;border:none;border-radius:4px;font-size:13px;font-weight:600;cursor:pointer;transition:background .2s,transform .1s;text-align:center}
.btn:active{transform:scale(.98)}
.btn-primary{background:var(--navy);color:#fff} .btn-primary:hover{background:#004080}
.btn-success{background:var(--ok);color:#fff} .btn-success:hover{background:#218838}
.btn-danger{background:var(--danger);color:#fff} .btn-danger:hover{background:#c82333}
.btn-secondary{background:#6c757d;color:#fff} .btn-secondary:hover{background:#5a6268}
.btn-sm{padding:5px 12px;font-size:12px}
.error-msg{padding:10px;background:#f8d7da;color:#721c24;border-radius:5px;margin-bottom:12px;font-size:13px}
.hidden{display:none!important}
.text-center{text-align:center}

/* ═══════ FINGERPRINT TERMINAL PAGE ═══════ */
.terminal-body{background:#0a1929}
.centre-header{background:linear-gradient(135deg,var(--dark),var(--navy));color:#fff;text-align:center;padding:14px 20px}
.centre-header h1{font-size:18px;margin-top:2px}
.centre-header .h-sub{color:rgba(255,255,255,.7)}

.fp-box{max-width:520px;margin:0 auto;padding:30px 20px;text-align:center}
.state-panel{display:none}
.state-panel:not(.hidden){display:block}

.fp-icon-lock{font-size:56px;margin-bottom:12px;color:var(--warn)}

/* Terminal login card */
.term-login-card{max-width:400px;margin:0 auto}
.term-login-card .card{box-shadow:0 4px 20px rgba(0,0,0,.4)}
.term-login-card .h-sub{color:var(--textl)!important}

/* Fingerprint scanner animation */
.fp-scanner-area{padding:20px 0}
.fp-icon-wrap{width:140px;height:140px;margin:0 auto 20px;position:relative}
.fp-svg{width:100%;height:100%}
.fp-line{fill:none;stroke:rgba(255,255,255,.25);stroke-width:2;stroke-linecap:round;transition:stroke .3s}

/* Idle pulsing */
.fp-icon-wrap.idle .fp-line{animation:fpPulse 2s ease-in-out infinite}
@keyframes fpPulse{0%,100%{stroke:rgba(255,255,255,.2)}50%{stroke:rgba(255,255,255,.5)}}

/* Scanning animation */
.fp-icon-wrap.scanning .fp-line{stroke:#3498db;animation:fpScan 1s ease-in-out infinite}
@keyframes fpScan{0%,100%{stroke:#3498db}50%{stroke:#2ecc71}}

/* Matched */
.fp-icon-wrap.matched .fp-line{stroke:var(--ok);animation:none}

.fp-scanner-area h2{color:#fff;font-size:18px;margin-bottom:6px}
.fp-scanner-area .h-sub{color:rgba(255,255,255,.6)}

.scan-btn{display:block;width:100%;max-width:340px;margin:20px auto 0;padding:16px 30px;font-size:18px;font-weight:700;background:linear-gradient(135deg,#2980b9,#3498db);color:#fff;border:none;border-radius:10px;cursor:pointer;letter-spacing:.3px;transition:all .2s}
.scan-btn:hover{background:linear-gradient(135deg,#21618c,#2980b9);transform:translateY(-1px)}
.scan-btn:disabled{background:#555;cursor:not-allowed;transform:none}
.scan-btn .scan-icon{font-size:22px;vertical-align:middle;margin-right:6px}

.scan-btn.scanning{animation:btnPulse 1.5s ease-in-out infinite}
@keyframes btnPulse{0%,100%{box-shadow:0 0 0 0 rgba(52,152,219,.5)}50%{box-shadow:0 0 0 12px rgba(52,152,219,0)}}

.fp-box .error-msg{margin-top:14px}

/* Simulation panel */
.sim-panel{margin-top:24px;padding:16px;background:rgba(255,255,255,.05);border:1px dashed rgba(255,255,255,.2);border-radius:8px}
.sim-badge{display:inline-block;padding:3px 12px;background:var(--warn);color:#fff;border-radius:12px;font-size:11px;font-weight:700;margin-bottom:8px}
.sim-panel .h-sub{color:rgba(255,255,255,.6)}
.sim-panel select{max-width:300px;margin:8px auto;display:block}

/* Success screen */
.success-panel{padding:16px;color:#fff}
.success-check{font-size:64px;color:var(--ok);margin-bottom:8px}
.success-panel h2{font-size:22px;color:#fff}
.success-panel .h-sub{color:rgba(255,255,255,.7)}
.success-details{margin-top:14px;padding:14px;background:rgba(255,255,255,.08);border-radius:8px}
.success-details p{color:rgba(255,255,255,.9);margin:3px 0;font-size:14px}

/* ═══════ ADMIN PANEL ═══════ */
.admin-body{background:#ecf0f5}
.admin-login-wrap{display:flex;align-items:center;justify-content:center;min-height:100vh}
.admin-header{background:#2c3e50;color:#fff;padding:14px 20px;display:flex;justify-content:space-between;align-items:center}
.admin-header h1{font-size:15px}
.tabs{display:flex;background:#34495e;overflow-x:auto}
.tab-btn{padding:11px 18px;border:none;background:transparent;color:#bdc3c7;font-size:12px;font-weight:600;cursor:pointer;white-space:nowrap;transition:all .2s}
.tab-btn.active,.tab-btn:hover{background:rgba(255,255,255,.12);color:#fff}
.tab-content{display:none;padding:20px;max-width:1200px;margin:0 auto}
.tab-content.active{display:block}

.filter-bar{display:flex;gap:10px;align-items:center;margin-bottom:14px;flex-wrap:wrap}
.filter-bar label{font-size:12px;font-weight:600}
.filter-bar input,.filter-bar select{padding:7px 10px;border:1px solid var(--border);border-radius:4px;font-size:13px}

/* Tables */
.data-table{width:100%;border-collapse:collapse;font-size:13px;background:#fff;border-radius:6px;overflow:hidden;box-shadow:0 1px 3px rgba(0,0,0,.08)}
.data-table th{background:var(--navy);color:#fff;padding:9px 10px;text-align:left;font-weight:600;font-size:12px}
.data-table td{padding:7px 10px;border-bottom:1px solid #eee}
.data-table tr:hover td{background:#f8f9fa}
.badge{padding:2px 8px;border-radius:10px;font-size:10px;font-weight:700;text-transform:uppercase}
.badge-present{background:#d4edda;color:#155724}
.badge-late{background:#fff3cd;color:#856404}
.badge-absent{background:#f8d7da;color:#721c24}
.badge-fixed{background:#d1ecf1;color:#0c5460}
.badge-roster{background:#e2d9f3;color:#4a235a}
.badge-enrolled{background:#d4edda;color:#155724}
.badge-pending{background:#f8d7da;color:#721c24}
.no-data{text-align:center;padding:30px;color:var(--textl);font-size:14px}

/* Fingerprint enrolment area */
.fp-enrol-area{display:flex;align-items:center;gap:16px;padding:10px 0}
.fp-enrol-preview{width:120px;height:140px;background:#f5f5f5;border:2px dashed var(--border);border-radius:8px;display:flex;align-items:center;justify-content:center;overflow:hidden}
.fp-enrol-preview img{width:100%;height:100%;object-fit:contain}
.fp-enrol-preview .h-sub{font-size:11px;text-align:center;padding:8px}
.fp-enrol-actions{display:flex;flex-direction:column;gap:8px}

/* Groups layout */
.groups-layout{display:grid;grid-template-columns:300px 1fr;gap:20px}
.groups-sidebar{background:#fff;border-radius:6px;padding:16px;box-shadow:0 1px 3px rgba(0,0,0,.08)}
.groups-sidebar h3{font-size:14px;margin-bottom:10px;color:var(--navy)}
.groups-detail{min-height:200px}

.group-item{display:flex;justify-content:space-between;align-items:center;padding:8px 10px;border:1px solid #eee;border-radius:4px;margin-bottom:4px;cursor:pointer;transition:background .2s}
.group-item:hover,.group-item.active{background:#e8f0fe;border-color:#b6d4fe}
.group-item .g-name{font-weight:600;font-size:13px}
.group-item .g-desc{font-size:11px;color:var(--textl)}

.shift-card{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;background:#f8f9fa;border:1px solid #ddd;border-radius:6px;margin:4px;font-size:13px}
.shift-card .s-name{font-weight:600}
.shift-card .s-time{color:var(--textl);font-size:12px}

/* ═══════ PRINTABLE MONTHLY REPORT ═══════ */
.print-report{background:#fff;padding:20px}
.report-header{text-align:center;margin-bottom:18px;padding-bottom:12px;border-bottom:2px solid #333}
.report-header p{font-size:12px;margin:1px 0}
.report-header h2{font-size:15px;margin:4px 0}
.report-header h3{font-size:13px;margin:2px 0}

.report-table{width:100%;border-collapse:collapse;font-size:10px;margin-top:10px}
.report-table th,.report-table td{border:1px solid #999;padding:3px 4px;text-align:center}
.report-table th{background:#e8e8e8;font-weight:700}
.report-table .name-col{text-align:left;white-space:nowrap;min-width:100px}
.report-table .sun{background:#f0e6e6}
.report-table .cell-P{color:var(--ok);font-weight:700}
.report-table .cell-L{color:var(--warn);font-weight:700}
.report-table .cell-A{color:var(--danger);font-weight:700}
.report-table .cell-S{color:#999}
.summary-cols{background:#f5f5f5;font-weight:700}

.report-footer{margin-top:18px;font-size:11px}
.report-footer .legend{margin-bottom:14px;padding:6px;background:#f9f9f9;border-radius:4px}
.sig-row{display:flex;justify-content:space-between;margin-top:50px}
.sig-box{width:200px;text-align:center}
.sig-line{border-top:1px solid #333;margin-bottom:4px}
.report-note{margin-top:20px;text-align:center;font-size:10px;color:#999}

/* ═══════ PRINT ═══════ */
@media print{
  body{background:#fff!important}
  .no-print,.nav-bar,.tabs,.admin-header,.filter-bar,.gov-footer,.tricolor-bar{display:none!important}
  .tab-content{display:none!important}
  #tab-report{display:block!important;padding:0!important}
  .print-report{box-shadow:none;padding:10px}
  .report-table th{background:#e0e0e0!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .report-table .sun{background:#f0e6e6!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .summary-cols{background:#f0f0f0!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  @page{size:landscape;margin:10mm}
}

/* ═══════ RESPONSIVE ═══════ */
@media(max-width:768px){
  .header-content{flex-direction:column}
  .header-text{text-align:center}
  .info-row{grid-template-columns:1fr}
  .form-row{grid-template-columns:1fr}
  .nav-bar ul{flex-direction:column}
  .nav-bar li a{text-align:center;padding:7px 14px}
  .admin-header{flex-direction:column;gap:8px}
  .filter-bar{flex-direction:column;align-items:stretch}
  .groups-layout{grid-template-columns:1fr}
  .tabs{flex-wrap:wrap}
  .fp-enrol-area{flex-direction:column}
}
