:root{--purple:#6d35cf;--purple2:#813bd8;--teal:#008b98;--ink:#173d63;--text:#273446;--line:#e5e1ef;--bg:#f4f5fb;--green:#198754;--red:#c62828}
*{box-sizing:border-box}body{margin:0;background:var(--bg);font-family:Cairo,Tahoma,sans-serif;color:var(--text)}a{text-decoration:none}.cv-page{width:min(980px,calc(100% - 28px));margin:20px auto 35px}.cv-header{background:#fff;border:1px solid var(--line);border-radius:24px;padding:15px 22px;display:flex;align-items:center;justify-content:space-between;gap:15px;box-shadow:0 7px 25px #321e6108}.cv-brand{display:flex;align-items:center;gap:12px}.cv-brand img{width:62px;height:62px;object-fit:contain}.cv-brand strong{display:block;color:var(--teal);font-size:20px;font-weight:900}.cv-brand span{display:block;color:#697482;font-size:13px;margin-top:2px}.cv-home{display:inline-flex;align-items:center;gap:7px;background:#f2edff;color:var(--purple);padding:10px 15px;border-radius:13px;font-weight:800}.cv-card{margin-top:18px;background:#fff;border:1px solid var(--line);border-radius:28px;padding:35px;box-shadow:0 10px 35px #321e6109;text-align:center}.cv-icon{width:72px;height:72px;border-radius:22px;margin:0 auto 12px;display:grid;place-items:center;background:#f0eaff;color:var(--purple);font-size:31px}.cv-card h1{margin:0;color:#2d2789;font-size:34px}.cv-intro{max-width:650px;margin:8px auto 25px;color:#6c7480;line-height:1.9}.cv-form{text-align:right;max-width:760px;margin:auto}.cv-form label{display:block;font-weight:800;color:var(--ink);margin-bottom:7px}.cv-input-row{display:grid;grid-template-columns:1fr auto;gap:9px}.cv-input-row input{width:100%;height:52px;border:1px solid #d8d2e8;border-radius:14px;padding:0 16px;font:inherit;outline:none}.cv-input-row input:focus{border-color:var(--purple);box-shadow:0 0 0 4px #6d35cf12}.cv-input-row button,.cv-scan-btn{height:52px;border:0;border-radius:14px;padding:0 20px;background:linear-gradient(135deg,var(--purple),var(--purple2));color:#fff;font:inherit;font-weight:900;cursor:pointer;box-shadow:0 7px 18px #6d35cf22}.cv-divider{display:flex;align-items:center;gap:12px;max-width:760px;margin:22px auto 15px;color:#9690a5}.cv-divider:before,.cv-divider:after{content:"";height:1px;background:#ebe7f2;flex:1}.cv-scan-btn{background:#fff;color:var(--purple);border:1px solid #d9cdf1;box-shadow:none}.qr-reader{max-width:440px;margin:18px auto 0;border:1px solid #e1dced;border-radius:18px;overflow:hidden;padding:8px;background:#faf9fd}.scan-status{max-width:440px;margin:10px auto 0;padding:9px 12px;border-radius:11px;background:#f2edff;color:var(--purple);font-weight:700}.cv-result{max-width:760px;margin:25px auto 0;border-radius:20px;padding:20px;display:flex;gap:15px;text-align:right}.cv-success{background:#f2fbf5;border:1px solid #bfe8cd}.cv-invalid,.cv-error{background:#fff5f5;border:1px solid #f0c7c7}.result-icon{width:48px;height:48px;flex:0 0 48px;border-radius:50%;display:grid;place-items:center;font-size:23px}.cv-success .result-icon{background:#dff5e7;color:var(--green)}.cv-invalid .result-icon,.cv-error .result-icon{background:#ffe1e1;color:var(--red)}.result-body{flex:1}.valid-title{font-size:22px;color:var(--green);font-weight:900;margin-bottom:4px}.valid-badge{display:inline-flex;align-items:center;gap:5px;color:var(--green);background:#dff5e7;padding:4px 9px;border-radius:999px;font-size:12px;font-weight:900}.cert-data{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:17px}.cert-data div{background:#fff;border:1px solid #dcefe3;border-radius:13px;padding:10px 12px}.cert-data small{display:block;color:#78828c;font-size:11px;margin-bottom:3px}.cert-data strong{display:block;color:var(--ink);font-size:14px}.cv-result p{margin:5px 0 0;color:#697482}.cv-footer{display:flex;justify-content:center;gap:20px;flex-wrap:wrap;margin-top:16px;color:#7b8290;font-size:12px}@media(max-width:650px){.cv-page{width:100%;margin:0}.cv-header,.cv-card{border-radius:0}.cv-header{padding:13px 15px}.cv-card{margin-top:10px;padding:24px 16px}.cv-card h1{font-size:28px}.cv-input-row{grid-template-columns:1fr}.cv-input-row button{width:100%}.cert-data{grid-template-columns:1fr}.cv-result{padding:15px}.cv-footer{padding:15px}}
