:root{--navy:#062b55;--navy2:#0b4584;--gold:#c99a2e;--bg:#eef4fb;--card:#fff;--ink:#071a33;--muted:#64748b;--ok:#15803d;--bad:#b91c1c;--line:#dbe5f0;--shadow:0 16px 42px rgba(4,28,55,.12)}
*{box-sizing:border-box}body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;background:linear-gradient(135deg,#eef4fb,#f8fbff);color:var(--ink)}a{color:inherit;text-decoration:none}img{max-width:100%}.topbar{height:68px;background:linear-gradient(90deg,var(--navy),var(--navy2));color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 22px;position:sticky;top:0;z-index:20;box-shadow:0 6px 20px rgba(0,0,0,.12)}.brand{display:flex;gap:12px;align-items:center;font-weight:900;letter-spacing:.2px}.brand img{width:46px;height:46px;object-fit:contain;border-radius:12px;background:#fff;padding:3px}.brand small{display:block;color:#cfe3ff;font-weight:500;font-size:12px}.top-actions{display:flex;gap:8px;align-items:center}.layout{display:flex;min-height:calc(100vh - 68px)}.sidebar{width:276px;background:#fff;border-right:1px solid var(--line);padding:18px 12px;position:sticky;top:68px;height:calc(100vh - 68px);overflow:auto}.side-title{font-size:12px;color:var(--muted);font-weight:800;text-transform:uppercase;padding:8px 12px}.nav a{display:flex;align-items:center;gap:10px;padding:11px 12px;border-radius:12px;margin:4px 0;color:#17365f;font-weight:750}.nav a:hover,.nav a.active{background:linear-gradient(90deg,#e8f1ff,#fff7e8);color:#042b58}.main{flex:1;padding:22px;max-width:1500px;margin:0 auto;width:100%}.card{background:rgba(255,255,255,.96);border:1px solid #e2eaf4;border-radius:18px;box-shadow:var(--shadow);padding:20px;margin-bottom:18px}.card h1,.card h2,.card h3{margin:0 0 14px}.hero{background:linear-gradient(135deg,#062b55,#0e57a3 65%,#c99a2e);color:#fff;border-radius:22px;padding:26px;box-shadow:var(--shadow);margin-bottom:20px}.hero h1{margin:0;font-size:30px}.hero p{color:#dbeafe;margin:8px 0 0}.grid{display:grid;grid-template-columns:repeat(12,1fr);gap:18px}.col-12{grid-column:span 12}.col-8{grid-column:span 8}.col-7{grid-column:span 7}.col-6{grid-column:span 6}.col-5{grid-column:span 5}.col-4{grid-column:span 4}.col-3{grid-column:span 3}.stat{padding:18px;border-radius:18px;background:linear-gradient(135deg,#fff,#eef6ff);border:1px solid #dce8f5}.stat b{font-size:28px;display:block;color:#062b55}.stat span{color:var(--muted);font-weight:700}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:0;background:var(--navy2);color:#fff;padding:10px 14px;border-radius:10px;font-weight:850;cursor:pointer;box-shadow:0 8px 18px rgba(11,69,132,.18);white-space:nowrap}.btn:hover{filter:brightness(1.05)}.btn.gold{background:linear-gradient(135deg,#d9a739,#b47a15);color:#071a33}.btn.red{background:#b91c1c}.btn.green{background:#15803d}.btn.gray,.btn.secondary{background:#64748b}.btn.light{background:#eaf2ff;color:#082d59;box-shadow:none}.actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.field{margin-bottom:12px}.field label{display:block;font-size:12px;text-transform:uppercase;color:#4b607a;font-weight:900;margin-bottom:6px}.field input,.field select,.field textarea{width:100%;padding:11px;border:1px solid #cbd8e6;border-radius:10px;background:#fff;font:inherit}.field textarea{min-height:84px}.form-row{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.full{grid-column:1/-1}table{width:100%;border-collapse:collapse;background:#fff;border-radius:14px;overflow:hidden}th,td{padding:12px;border-bottom:1px solid #e6edf5;text-align:left;vertical-align:top}th{background:#f3f7fb;color:#17365f;font-size:13px;text-transform:uppercase}.badge{display:inline-block;padding:5px 9px;border-radius:999px;font-size:12px;font-weight:900;background:#eaf2ff;color:#0b4584}.badge.ok{background:#dcfce7;color:#166534}.badge.bad{background:#fee2e2;color:#991b1b}.badge.gold{background:#fff4d6;color:#8a5b00}.alert{padding:12px 14px;border-radius:12px;margin-bottom:14px;font-weight:700}.alert.ok{background:#dcfce7;color:#166534}.alert.bad{background:#fee2e2;color:#991b1b}.alert.note{background:#fff7ed;color:#9a3412}.login-page{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at top left,#e6f1ff,#fff 45%,#eaf2ff)}.login-card{width:min(440px,92vw);background:#fff;border-radius:24px;padding:28px;box-shadow:var(--shadow);border:1px solid #e2eaf4}.login-logo{text-align:center}.login-logo img{width:86px}.side-note{color:var(--muted);font-size:13px}.wallet-box{background:linear-gradient(135deg,#062b55,#0b4584);color:#fff;border-radius:18px;padding:20px}.wallet-box .amount{font-size:34px;font-weight:950;margin-top:8px}.footer{padding:24px;text-align:center;color:#64748b}.print-sheet{background:#fff;padding:28px;max-width:900px;margin:20px auto;color:#111}.receipt-head{display:flex;align-items:center;gap:15px;border-bottom:3px solid var(--navy);padding-bottom:14px}.receipt-head img{width:72px}.print-actions{text-align:center;margin:18px}.cert-wrap{width:297mm;height:210mm;position:relative;margin:0 auto;background:#fff;overflow:hidden}.cert-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.cert-field{position:absolute;z-index:2;font-family:Georgia,serif;color:#071a33;font-weight:700}.cert-name{left:95mm;top:96mm;width:110mm;text-align:center;font-size:22px;letter-spacing:1px}.cert-adm{left:58mm;top:86mm;font-size:13px}.cert-join{left:58mm;top:99mm;font-size:12px}.cert-dob{left:58mm;top:112mm;font-size:12px}.cert-course-left{left:58mm;top:125mm;font-size:11px;width:38mm;text-align:center}.cert-issue{left:58mm;top:138mm;font-size:12px}.cert-course-center{left:105mm;top:141mm;width:82mm;text-align:center;font-size:12px}.cert-no{right:48mm;top:14mm;font-size:10px;color:#8a1b1b}.cert-photo{position:absolute;right:25mm;top:63mm;width:34mm;height:38mm;object-fit:cover;z-index:3;border-radius:3mm}.cert-sign{position:absolute;left:20mm;top:143mm;width:62mm;z-index:3}.cert-stamp{position:absolute;left:130mm;top:138mm;width:42mm;height:42mm;object-fit:contain;z-index:3;opacity:.86}.verify-box{position:absolute;right:16mm;top:139mm;width:65mm;height:42mm;z-index:4;background:rgba(255,255,255,.96);border:1.5mm solid #d4a14a;border-radius:3mm;padding:3mm;font-family:Arial,sans-serif}.verify-head{background:#154884;color:#fff;text-align:center;font-weight:900;border-radius:1.5mm;padding:1mm;font-size:10px}.verify-body{display:flex;gap:3mm;margin-top:2mm}.verify-body img{width:26mm;height:26mm}.verify-ok{font-size:16px;color:#15803d;font-weight:900}.verify-small{font-size:8px;line-height:1.25}.id-card{width:86mm;height:54mm;background:linear-gradient(135deg,#fff,#eaf2ff);border:1mm solid #0b4584;border-radius:5mm;position:relative;overflow:hidden;padding:5mm}.id-card .id-logo{width:18mm}.id-card .id-photo{position:absolute;right:5mm;top:17mm;width:22mm;height:26mm;object-fit:cover;border-radius:3mm;border:1px solid #bbb}.id-card h2{font-size:12px;margin:0;color:#062b55}.id-card p{font-size:9px;margin:2mm 0}.mobile-menu{display:none}.progress-bar{height:10px;background:#e5edf6;border-radius:20px;overflow:hidden}.progress-bar span{display:block;height:100%;background:linear-gradient(90deg,#0b4584,#c99a2e)}
@media(max-width:900px){.layout{display:block}.sidebar{position:static;width:auto;height:auto}.main{padding:14px}.grid{display:block}.col-8,.col-7,.col-6,.col-5,.col-4,.col-3{grid-column:span 12}.form-row{grid-template-columns:1fr}.topbar{height:auto;min-height:64px}.top-actions{flex-wrap:wrap}.nav{display:grid;grid-template-columns:repeat(2,1fr)}}
@media print{.no-print,.topbar,.sidebar,.footer,.print-actions{display:none!important}.main{padding:0}.layout{display:block}.card{box-shadow:none;border:0}.cert-wrap{margin:0;page-break-after:always}@page{size:A4 landscape;margin:0}}
