.identity-card{width:54mm;height:85mm;background:linear-gradient(145deg,#ffffff,#fafbfc);border-radius:12px;border:1px solid #e1e5e9;box-shadow:0 15px 35px rgba(0,0,0,.1),0 5px 15px rgba(0,0,0,.07);position:relative;overflow:hidden;display:flex;flex-direction:column}.identity-card-front{background:linear-gradient(135deg,#ffffff,#f8fafc 60%,#e2e8f0)}.identity-card-back{background:linear-gradient(135deg,#f8fafc,#f1f5f9)}.card-front{padding:18px 14px 10px;height:100%;display:flex;flex-direction:column;gap:10px}.card-header{align-items:center;margin-bottom:12px}.card-header,.card-logo-section{display:flex;justify-content:center}.card-logo{height:32px;width:auto;object-fit:contain}.card-main{display:flex;flex-direction:column;align-items:center;gap:16px;flex:1}.photo-section{display:flex;justify-content:center}.photo-frame{position:relative;width:90px;height:108px}.person-photo{width:100%;height:100%;object-fit:cover;border-radius:10px;border:3px solid #ffffff;box-shadow:0 8px 20px rgba(0,0,0,.2)}.photo-border{position:absolute;inset:-2px;border:1px solid #e5e7eb;border-radius:12px;pointer-events:none}.info-section{display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center;width:100%}.person-name{font-size:14px;font-weight:800;color:#111827;line-height:1.1;text-transform:uppercase;letter-spacing:.3px;margin-bottom:3px}.person-role{font-size:11px;color:#3b82f6;text-transform:uppercase;letter-spacing:.5px;background:rgba(59,130,246,.1);border-radius:4px;margin-bottom:8px}.aso-validity,.person-role{font-weight:600;padding:3px 8px;display:inline-block}.aso-validity{font-size:10px;color:#dc2626;text-align:center;margin-top:4px;background:rgba(220,38,38,.1);border:1px solid rgba(220,38,38,.3);border-radius:4px}.card-footer{display:flex;justify-content:center;align-items:center;margin-top:auto;padding-top:6px;border-top:1px solid #e5e7eb}.card-back{padding:14px 12px;height:100%;display:flex;flex-direction:column;gap:8px}.back-content{flex:1;gap:12px}.back-content,.info-list{display:flex;flex-direction:column}.info-list{gap:8px}.info-item{display:flex;align-items:center;gap:8px;padding:6px;background:#f8fafc;border-radius:6px;border:1px solid #e2e8f0}.info-icon{font-size:14px;width:20px;text-align:center;flex-shrink:0}.info-details{flex:1}.info-label{font-size:7px;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.5px;margin-bottom:1px}.info-value{font-size:9px;font-weight:600;color:#111827;line-height:1.1}.company-section{margin-top:auto}.company-info{display:flex;align-items:center;gap:10px;padding:10px;background:linear-gradient(135deg,#dbeafe,#bfdbfe);border-radius:6px;border:1px solid #93c5fd}.company-logo-wrapper{flex-shrink:0}.company-logo{height:24px;width:auto;object-fit:contain}.company-details{flex:1;display:flex;flex-direction:column;gap:4px}.company-fullname{font-size:10px;font-weight:700;color:#1e40af;line-height:1.2}.card-glow{inset:0;background:linear-gradient(135deg,transparent,rgba(59,130,246,.05) 50%,transparent);z-index:1}.card-glow,.card-shine{position:absolute;pointer-events:none}.card-shine{top:-50%;left:-50%;width:200%;height:200%;background:linear-gradient(135deg,transparent,rgba(255,255,255,.1) 45%,transparent 50%);transform:rotate(45deg);z-index:2}.identity-card:hover .card-shine{animation:cardShine .6s ease-out}@keyframes cardShine{0%{transform:translateX(-100%) translateY(-100%) rotate(45deg)}to{transform:translateX(100%) translateY(100%) rotate(45deg)}}@media print{@page{size:A4;margin:12mm}body{background:white!important}.identity-card{box-shadow:none!important;border:2px solid #374151!important;break-inside:avoid;page-break-inside:avoid}.identity-card,.identity-card-back,.identity-card-front{background:#ffffff!important}.card-glow,.card-shine{display:none!important}.person-name,.person-role{color:#000000!important}.person-role{background:rgba(0,0,0,.1)!important}.company-info,.person-role{border:1px solid #374151!important}.company-info{background:#f3f4f6!important}body.badge-printing>:not(.badge-dialog){display:none!important}body.badge-printing .badge-dialog{position:static!important;transform:none!important;display:block!important;width:auto!important;max-width:none!important;border:0!important;box-shadow:none!important;padding:0!important;margin:0!important}body.badge-printing .badge-dialog>:not(.badge-print-area){display:none!important}.badge-print-area{display:flex!important;justify-content:flex-start;gap:16px}.print\\:hidden{display:none!important}.qr-placeholder{border:2px solid #374151!important}.qr-dot.filled{background:#000000!important}}