:root{--bg:#f4f7fb;--card:#fff;--text:#172033;--muted:#637083;--line:#d9e2ef;--primary:#0f4c81;--danger:#b42318;--success:#087443;--warning:#ad6700}
*{box-sizing:border-box}body{margin:0;font-family:Arial,Helvetica,sans-serif;background:var(--bg);color:var(--text)}a{color:inherit;text-decoration:none}.topbar{background:#0b2f4f;color:#fff;padding:14px 24px;display:flex;justify-content:space-between;gap:20px;align-items:center}.brand{font-weight:700}.topbar nav{display:flex;gap:12px;flex-wrap:wrap}.topbar a{padding:8px 10px;border-radius:8px}.topbar a:hover{background:rgba(255,255,255,.12)}.container{max-width:1180px;margin:28px auto;padding:0 18px}.card,.login-card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:22px;box-shadow:0 8px 22px rgba(16,24,40,.06)}.login-card,.narrow{max-width:480px;margin:40px auto}h1{margin:0 0 16px;font-size:28px}h2{margin-top:0}.muted{color:var(--muted)}label{font-weight:700;font-size:14px;margin:12px 0 6px;display:block}input,select,textarea{width:100%;padding:12px;border:1px solid var(--line);border-radius:10px;background:#fff;font-size:15px}.btn{display:inline-block;border:1px solid var(--line);background:#fff;color:#172033;padding:10px 14px;border-radius:10px;cursor:pointer;font-weight:700}.btn.primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn.danger{background:var(--danger);border-color:var(--danger);color:#fff}.btn.small{padding:7px 10px;font-size:13px}.actions{display:flex;gap:10px;flex-wrap:wrap;margin:16px 0}.alert{padding:12px 14px;border-radius:10px;margin:12px 0}.alert.error{background:#fff1f0;color:#9f1d16;border:1px solid #ffc9c4}.alert.info{background:#eef6ff;color:#0b4c82;border:1px solid #c7e0ff}.alert.success{background:#ecfdf3;color:#067647;border:1px solid #abefc6}.grid.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:16px}.stat{background:#fff;border:1px solid var(--line);border-radius:16px;padding:20px}.stat span{display:block;font-size:34px;font-weight:800;color:var(--primary)}.stat small{color:var(--muted)}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 18px}.form-grid .full{grid-column:1/-1}.filters{display:flex;gap:10px;margin:12px 0 18px}.filters input{max-width:300px}.table{width:100%;border-collapse:collapse;background:#fff;border-radius:14px;overflow:hidden;box-shadow:0 8px 22px rgba(16,24,40,.04)}.table th,.table td{border-bottom:1px solid var(--line);text-align:left;padding:12px}.table th{background:#f0f4f9;font-size:13px;text-transform:uppercase}.badge{display:inline-block;border-radius:99px;padding:5px 9px;font-weight:800;font-size:12px}.badge.submitted{background:#fff7ed;color:#ad6700}.badge.approved{background:#ecfdf3;color:#087443}.badge.rejected{background:#fff1f0;color:#b42318}.badge.printed{background:#eff8ff;color:#175cd3}.detail{display:grid;grid-template-columns:1fr 220px;gap:20px}.photo-box{border:1px dashed var(--line);border-radius:14px;display:flex;align-items:center;justify-content:center;min-height:220px;overflow:hidden}.photo-box img{width:100%;height:100%;object-fit:cover}.print-body{background:#fff}.receipt-paper{width:760px;margin:25px auto;background:#fff;padding:30px;border:1px solid #222}.receipt-head{text-align:center;border-bottom:2px solid #222;margin-bottom:20px}.receipt-table{width:100%;border-collapse:collapse}.receipt-table td{border:1px solid #333;padding:11px}.receipt-table td:first-child{font-weight:700;background:#f5f5f5;width:35%}.signature-row{display:flex;justify-content:space-between;margin-top:55px}.certificate-paper{width:820px;margin:18px auto;background:#fff}.cert-border{border:2px solid #1f2937;padding:28px;min-height:1120px}.cert-header{display:grid;grid-template-columns:1fr 120px 1fr;align-items:center;text-align:center;border-bottom:4px double #1f2937;padding-bottom:18px}.org-left{text-align:left;color:#0f4c81}.org-right{text-align:right;color:#0f4c81}.logo-circle{width:94px;height:94px;border:2px solid #0f4c81;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:auto;color:#0f4c81;font-weight:800}.certificate-paper h1{text-align:center;text-transform:uppercase;font-size:22px;margin:20px 0}.cert-meta{display:flex;justify-content:space-between;margin:18px 0}.cert-main{display:grid;grid-template-columns:1fr 170px;gap:22px}.cert-fields p{border-bottom:1px dotted #60a5fa;margin:18px 0 0}.cert-fields span{display:block;font-size:20px;font-weight:700}.cert-fields small{font-size:11px;color:#333}.cert-side{text-align:center}.cert-photo{width:150px;height:185px;object-fit:cover;margin-top:18px;border:1px solid #ccc}.cert-photo.empty{display:flex;align-items:center;justify-content:center;color:#777}.cert-statement{border:2px solid #333;margin:48px 20px;padding:28px;text-align:center;font-size:20px;line-height:1.7}.cert-footer{display:flex;align-items:flex-end;justify-content:space-between;margin-top:55px}.stamp{border:3px solid #0f4c81;border-radius:50%;width:120px;height:120px;color:#0f4c81;display:flex;align-items:center;justify-content:center;text-align:center;font-weight:800}.signature{width:420px;text-align:center}.signature .line{border-top:2px solid #222;margin-bottom:8px}.verify-text{text-align:center;font-size:12px;color:#444}.qr-fallback{width:118px;height:118px;border:2px solid #111;display:flex;align-items:center;justify-content:center;font-weight:800}.verify-card{text-align:left}@media(max-width:760px){.topbar{display:block}.topbar nav{margin-top:10px}.form-grid,.detail,.cert-main{grid-template-columns:1fr}.filters{display:block}.filters>*{margin:5px 0}.table{font-size:13px}.container{padding:0 10px}.certificate-paper,.receipt-paper{width:100%}}
@media print{.no-print,.topbar,.btn{display:none!important}body{background:#fff}.container{margin:0;max-width:none}.card,.table{box-shadow:none}.certificate-paper,.receipt-paper{margin:0 auto;border:0}.cert-border{min-height:auto}@page{size:A4;margin:10mm}}
