.id-public{padding:90px 0;background:linear-gradient(135deg,#eff8f2,#fff8ea);min-height:70vh;color:#17382c}.id-public .wrap{max-width:850px}.id-eyebrow{font-weight:800;color:#c87918;letter-spacing:.15em}.id-public h1{font-size:clamp(2.3rem,5vw,4rem);margin:10px 0}.id-public p{line-height:1.7}.id-search,.id-note,.id-result{background:#fff;border-radius:20px;padding:24px;box-shadow:0 15px 40px #183d2920;margin-top:25px}.id-search label{display:block;font-weight:800;margin-bottom:10px}.id-search>div{display:flex;gap:10px}.id-search input{flex:1;min-width:0;padding:15px;border:1px solid #b6cfc0;border-radius:10px}.id-search button,.print-actions button{border:0;background:#176e4c;color:#fff;padding:14px 20px;border-radius:10px;font-weight:800;cursor:pointer}.id-result{border-left:7px solid #b22d33}.id-result.is-valid{border-color:#218551}.id-result strong{font-size:1.3rem}.id-note div{display:flex;flex-wrap:wrap;gap:8px;margin-top:15px}.id-note span{padding:8px 12px;background:#e9f4ee;border-radius:30px;color:#146544;font-weight:700}.id-note span:nth-child(2){background:#edf4ff;color:#235b91}.id-note span:nth-child(3){background:#fff2d7;color:#916111}.id-note span:nth-child(4){background:#fcebec;color:#a13b42}@media(max-width:600px){.id-search>div{flex-direction:column}}
.print-page{margin:0;background:#e8eee9;font-family:Arial,sans-serif;color:#193a2b}.print-actions{padding:20px;text-align:center}.print-actions a{margin-left:20px}.cards-sheet{display:flex;gap:24px;justify-content:center;flex-wrap:wrap;padding:20px}.id-card{position:relative;overflow:hidden;box-sizing:border-box;width:54mm;height:86mm;background:white;border-radius:12px;box-shadow:0 10px 30px #163b2b30;text-align:center}.card-stripe{height:5mm;background:linear-gradient(90deg,#e78b24 0 25%,#126c49 25% 50%,#2471ad 50% 75%,#bd4051 75%)}.id-card header{display:flex;align-items:center;gap:6px;padding:11px 12px 3px;text-align:left}.id-card header img{width:32px;height:32px;object-fit:contain;border-radius:50%}.id-card header b{display:block;font-size:14px;letter-spacing:1px}.id-card header span{display:block;font-size:10px;letter-spacing:3px;color:#176e4c;font-weight:bold}.id-card header small{font-size:6px}.category{background:#eaf3ee;color:#156543;font-size:9px;font-weight:bold;letter-spacing:1px;padding:6px}.portrait{margin:10px auto 6px;width:28mm;height:32mm;border:3px solid #e5ad55;border-radius:8px;background:#eef4ef}.portrait img{height:100%;width:100%;object-fit:cover}.id-card h1{font-size:16px;margin:6px 6px 2px;overflow-wrap:anywhere}.role{font-size:10px;font-weight:bold;color:#166c4b;margin:3px}.department{font-size:8px;margin:3px;min-height:10px}.card-details{display:flex;justify-content:space-around;text-align:left;margin:10px 9px 0;padding:8px 0;border-top:1px solid #cfded3}.card-details small{display:block;color:#6b8172;font-size:7px}.card-details strong{font-size:8px}.id-card footer{position:absolute;bottom:0;width:100%;display:flex;height:10mm}.id-card footer span{flex:1;display:grid;place-items:center;font-size:6px;color:white;background:#e78b24}.id-card footer span:nth-child(2){background:#126c49}.id-card footer span:nth-child(3){background:#2471ad}.id-card footer span:nth-child(4){background:#bd4051}.back{padding:0 12px}.back-logo{width:58px;height:58px;object-fit:contain;border-radius:50%;margin-top:20px}.back h2{font-size:13px}.back p{font-size:10px;line-height:1.5}.back-info{text-align:left;padding:10px;background:#edf5ef;font-size:10px;line-height:1.8}.back .verify{font-weight:bold}.verify span{font-size:8px;overflow-wrap:anywhere}.back .return{font-size:8px}@media print{@page{size:A4;margin:12mm}.print-page{background:#fff;print-color-adjust:exact;-webkit-print-color-adjust:exact}.print-actions{display:none}.cards-sheet{justify-content:flex-start;gap:6mm;padding:0}.id-card{box-shadow:none;border:1px solid #ddd;border-radius:0;break-inside:avoid}}

.holder-contact{font-size:7px;line-height:1.35;text-align:left;padding:3px 12px;height:30px;overflow:hidden;overflow-wrap:anywhere}.holder-contact span{display:inline-block;font-weight:800;color:#176e4c;margin-right:4px}.holder-contact span:not(:first-child){margin-left:5px}.card-details{margin-top:3px}.back .return{font-size:8px;line-height:1.6;text-align:center;background:#f4f8f5;border:1px solid #d7e6da;border-radius:8px;padding:7px 2px;overflow-wrap:anywhere}.back .verify{margin:7px 0}.back-logo{margin-top:12px}
/* Compact front layout to keep address and phone above the four-color footer. */
.front .portrait{width:25mm;height:26mm;margin:5px auto 3px}.front header{padding-top:7px}.front h1{font-size:14px;margin:3px 6px 1px}.front .role,.front .department{margin:1px}.front .card-details{padding:4px 0;margin-top:1px}.front .category{padding:4px}
/* ID-1 card layout: fixed rows prevent text from colliding with adjacent fields. */
.print-actions .download-card{display:inline-block;margin-left:12px;padding:14px 20px;background:#2471ad;color:white;border-radius:10px;font-weight:800;text-decoration:none}
.print-page .id-card.front{display:grid;grid-template-rows:5mm 12mm 7mm 27mm 7mm 5mm 5mm 8mm 6mm 10mm 10mm;align-content:stretch}
.print-page .front .card-stripe{height:5mm}
.print-page .front header{box-sizing:border-box;height:12mm;padding:1mm 3mm;min-width:0;overflow:hidden;gap:2mm}
.print-page .front header img{width:9mm;height:9mm;flex:none}
.print-page .front header b{font-size:10px;white-space:nowrap}.print-page .front header span{font-size:7px}.print-page .front header small{font-size:5px}
.print-page .front .category{height:7mm;box-sizing:border-box;display:grid;place-items:center;padding:0;font-size:8px}
.print-page .front .portrait{box-sizing:border-box;width:23mm;height:26mm;margin:.5mm auto;border-width:2px}
.print-page .front h1{box-sizing:border-box;height:7mm;margin:0;padding:1mm 2mm 0;line-height:1.1;font-size:12px;display:grid;place-items:center;overflow:hidden;overflow-wrap:anywhere}
.print-page .front .role,.print-page .front .department{box-sizing:border-box;height:5mm;margin:0;padding:0 2mm;line-height:5mm;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:8px}
.print-page .front .holder-contact{box-sizing:border-box;height:8mm;padding:0 3mm;line-height:1.25;font-size:6.5px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical}
.print-page .front .card-details{grid-row:9/11;box-sizing:border-box;height:16mm;margin:0 2mm;padding:2mm 1mm;gap:2mm;align-items:start}
.print-page .front .card-details>div{min-width:0;max-width:50%;overflow-wrap:anywhere}.print-page .front .card-details strong{font-size:7px}
.print-page .front footer,.print-page .back footer{height:6mm}.print-page .id-card footer span{font-size:5px}
.print-page .id-card.back{box-sizing:border-box;padding:0 3mm;display:grid;grid-template-rows:5mm 14mm 7mm 13mm 16mm 25mm 6mm;align-content:stretch}
.print-page .back .card-stripe{margin:0 -3mm}.print-page .back-logo{height:12mm;width:12mm;margin:1mm auto}.print-page .back h2{margin:0;font-size:11px;align-self:center}.print-page .back>p:not(.verify){font-size:7px;line-height:1.35;margin:0;align-self:center}.print-page .back-info{box-sizing:border-box;font-size:7px;line-height:1.4;padding:1mm 2mm;align-self:center}.print-page .back .verify{font-size:7px;line-height:1.3;margin:0;align-self:center}.print-page .back .verify span{font-size:6px}.print-page .back .return{font-size:7px;line-height:1.25;padding:1mm 0;margin:0;align-self:center;border:0;background:none;overflow-wrap:anywhere}
.print-page .back footer{margin:0 -3mm;width:54mm}
@media print{.print-page .id-card{break-inside:avoid;page-break-inside:avoid}.print-actions{display:none!important}}
.print-page .id-card.front{grid-template-rows:5mm 10mm 6mm 25mm 6mm 4mm 4mm 9mm 11mm 6mm}
.print-page .front header{height:10mm}.print-page .front .category{height:6mm}.print-page .front .portrait{height:24mm;width:22mm}.print-page .front h1{height:6mm;font-size:11px}.print-page .front .role,.print-page .front .department{height:4mm;line-height:4mm}.print-page .front .holder-contact{height:9mm}.print-page .front .card-details{grid-row:9;height:11mm;padding:1mm}.print-page .front footer{grid-row:10;position:static;height:6mm}
