/* VybeTechno ID Cards — front end: registration form ([vybe_id_registration]), public card page ([vybe_id_card]) and the card itself.
   2.5: registration form rebuilt for phones — 16px inputs (no zoom on iPhone), 48px touch targets, one column under 640px,
   photo preview, live roll-number check, success panel. Colours follow the card design (--vtic-c / --vtic-on). */

.vtic-reg{--vtic-c:#123b6d;--vtic-on:#fff;--vtic-ink:#101828;--vtic-mute:#5d6b82;--vtic-line:#cfd6e1;--vtic-soft:#f6f8fb;--vtic-err:#b42318;--vtic-errbg:#fef3f2;--vtic-ok:#067647;--vtic-okbg:#ecfdf3;--vtic-warn:#b54708;--vtic-warnbg:#fffaeb;--vtic-info:#175cd3;--vtic-infobg:#eff8ff;
  max-width:760px;margin:24px auto;color:var(--vtic-ink);font-size:16px;line-height:1.5;text-align:left;-webkit-text-size-adjust:100%}
.vtic-reg *,.vtic-reg *::before,.vtic-reg *::after{box-sizing:border-box}
.vtic-reg [hidden]{display:none!important}
.vtic-reg,.vtic-reg .vtic-alert,.vtic-reg .vtic-done,.vtic-reg .vtic-field{scroll-margin-top:90px}
.vtic-reg-title{margin:0 0 6px;font-size:1.5rem;font-weight:700;line-height:1.25;color:var(--vtic-ink)}
.vtic-reg-intro{margin:0 0 16px;color:var(--vtic-mute)}

/* Form card */
.vtic-reg .vtic-registration{max-width:none;margin:0;padding:28px;background:#fff;border:1px solid #e4e8ef;border-top:4px solid var(--vtic-c);border-radius:16px;box-shadow:0 1px 2px rgba(16,24,40,.04),0 10px 30px rgba(16,24,40,.06)}
.vtic-reg .vtic-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 16px}
.vtic-reg .vtic-field{min-width:0;margin:0;padding:0}
.vtic-reg .vtic-field.full{grid-column:1/-1}
.vtic-reg .vtic-label{display:block;margin:0 0 6px;padding:0;font-size:.95rem;font-weight:600;line-height:1.35;color:var(--vtic-ink)}
.vtic-reg .vtic-req{color:var(--vtic-err);font-weight:700}

.vtic-reg .vtic-field input:not([type=radio]):not([type=checkbox]):not([type=file]),
.vtic-reg .vtic-field select,
.vtic-reg .vtic-field textarea{display:block;width:100%;max-width:none;min-height:48px;height:auto;margin:0;padding:11px 14px;font-family:inherit;font-size:16px;line-height:1.4;color:var(--vtic-ink);background:#fff;border:1.5px solid var(--vtic-line);border-radius:10px;box-shadow:none;outline:none;-webkit-appearance:none;appearance:none;transition:border-color .15s,box-shadow .15s}
.vtic-reg .vtic-field textarea{min-height:100px;resize:vertical}
.vtic-reg .vtic-field select{padding-right:42px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5 7.5l5 5 5-5' fill='none' stroke='%235d6b82' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;background-size:16px}
.vtic-reg .vtic-field input[type=date]{text-align:left;min-width:0}
.vtic-reg .vtic-field input[type=date]::-webkit-date-and-time-value{text-align:left}
.vtic-reg .vtic-field input::placeholder,.vtic-reg .vtic-field textarea::placeholder{color:#98a2b3;opacity:1;text-transform:none;letter-spacing:normal;font-weight:400}
.vtic-reg .vtic-field input:hover,.vtic-reg .vtic-field select:hover,.vtic-reg .vtic-field textarea:hover{border-color:#98a2b3}
.vtic-reg .vtic-field input:focus,.vtic-reg .vtic-field select:focus,.vtic-reg .vtic-field textarea:focus{border-color:var(--vtic-c);box-shadow:0 0 0 4px rgba(18,59,109,.15);box-shadow:0 0 0 4px color-mix(in srgb,var(--vtic-c) 18%,transparent)}

.vtic-reg .vtic-help{display:block;margin:6px 0 0;color:var(--vtic-mute);font-size:.875rem;line-height:1.45}
.vtic-reg .vtic-field-error{display:flex;gap:6px;align-items:flex-start;margin:6px 0 0;color:var(--vtic-err);font-size:.9rem;font-weight:500;line-height:1.45}
.vtic-reg .vtic-field-error::before{content:"!";flex:0 0 18px;height:18px;margin-top:1px;border-radius:50%;background:var(--vtic-err);color:#fff;font-size:12px;font-weight:700;line-height:18px;text-align:center}
.vtic-reg .has-error input:not([type=radio]):not([type=checkbox]):not([type=file]),.vtic-reg .has-error select,.vtic-reg .has-error textarea{border-color:var(--vtic-err);background-color:var(--vtic-errbg)}
.vtic-reg .has-error .vtic-label{color:var(--vtic-err)}

/* Radio buttons as large tap targets */
.vtic-reg .vtic-radios{display:flex;flex-wrap:wrap;gap:8px}
.vtic-reg .vtic-radios label{display:inline-flex;align-items:center;gap:8px;min-height:46px;margin:0;padding:8px 16px;border:1.5px solid var(--vtic-line);border-radius:10px;background:#fff;font-weight:500;cursor:pointer;-webkit-tap-highlight-color:transparent}
.vtic-reg .vtic-radios input{width:18px;height:18px;margin:0;accent-color:var(--vtic-c)}
.vtic-reg .vtic-radios label:has(input:checked){border-color:var(--vtic-c);background:var(--vtic-soft);box-shadow:inset 0 0 0 1px var(--vtic-c)}
.vtic-reg .has-error .vtic-radios label{border-color:#fda29b}

/* Roll number: first, highlighted, checked while typing */
.vtic-reg .vtic-field--roll{padding:16px;background:var(--vtic-soft);border:1px solid #e4e8ef;border-radius:12px}
.vtic-reg .vtic-field--roll input{font-weight:600;letter-spacing:.04em}
.vtic-reg .vtic-field--roll input[data-vtic-upper]{text-transform:uppercase}
.vtic-reg .vtic-field--roll.has-error{background:var(--vtic-errbg);border-color:#fecdca}
.vtic-reg .vtic-roll-status{display:flex;gap:6px;align-items:flex-start;margin-top:8px;font-size:.9rem;font-weight:500;line-height:1.45}
.vtic-reg .vtic-roll-status:empty{display:none}
.vtic-reg .vtic-roll-status::before{flex:0 0 18px;height:18px;margin-top:1px;border-radius:50%;font-size:12px;font-weight:700;line-height:18px;text-align:center;color:#fff}
.vtic-reg .vtic-roll-status.is-busy{color:var(--vtic-mute)}
.vtic-reg .vtic-roll-status.is-busy::before{content:"";border:2px solid currentColor;border-right-color:transparent;animation:vtic-spin .7s linear infinite}
.vtic-reg .vtic-roll-status.is-ok{color:var(--vtic-ok)}
.vtic-reg .vtic-roll-status.is-ok::before{content:"\2713";background:var(--vtic-ok)}
.vtic-reg .vtic-roll-status.is-bad{color:var(--vtic-err)}
.vtic-reg .vtic-roll-status.is-bad::before{content:"!";background:var(--vtic-err)}
.vtic-reg .vtic-roll-status.is-warn{color:var(--vtic-warn)}
.vtic-reg .vtic-roll-status.is-warn::before{content:"i";background:var(--vtic-warn);font-style:italic;font-family:Georgia,serif}
.vtic-reg .vtic-field--roll .vtic-roll-status.is-bad,.vtic-reg .vtic-field--roll .vtic-roll-status.is-warn{padding:10px 12px;border-radius:10px;background:#fff;border:1px solid currentColor}
.vtic-reg [data-vtic-mask]{font-variant-numeric:tabular-nums;letter-spacing:.04em}
.vtic-reg [data-vtic-upper]:not(:placeholder-shown){text-transform:uppercase}

/* Photo picker with preview */
.vtic-reg .vtic-field--photo{position:relative}
.vtic-reg .vtic-photo-input{position:absolute;left:16px;top:44px;width:1px;height:1px;margin:0;padding:0;border:0;opacity:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%)}
.vtic-reg .vtic-photo{display:flex;align-items:center;gap:16px;margin:0;padding:14px;border:1.5px dashed var(--vtic-line);border-radius:12px;background:var(--vtic-soft);cursor:pointer;font-weight:400;transition:border-color .15s,background .15s;-webkit-tap-highlight-color:transparent}
.vtic-reg .vtic-photo:hover{border-color:var(--vtic-c)}
.vtic-reg .vtic-photo-input:focus-visible+.vtic-photo{border-color:var(--vtic-c);box-shadow:0 0 0 4px rgba(18,59,109,.15);box-shadow:0 0 0 4px color-mix(in srgb,var(--vtic-c) 18%,transparent)}
.vtic-reg .vtic-photo.is-set{border-style:solid;background:#fff}
.vtic-reg .vtic-photo-frame{position:relative;flex:0 0 auto;display:flex;align-items:center;justify-content:center;width:84px;height:104px;overflow:hidden;border-radius:10px;background:#e4e8ef;color:#98a2b3}
.vtic-reg .vtic-photo-frame img{display:block;width:100%;height:100%;max-width:none;object-fit:cover}
.vtic-reg .vtic-photo-frame img:not([hidden])+.vtic-photo-ph{display:none}
.vtic-reg .vtic-photo-body{display:flex;flex-direction:column;align-items:flex-start;gap:6px;min-width:0}
.vtic-reg .vtic-photo-btn{display:inline-flex;align-items:center;min-height:42px;padding:8px 16px;border:1.5px solid var(--vtic-c);border-radius:999px;background:#fff;color:var(--vtic-c);font-size:.95rem;font-weight:600;line-height:1.2}
.vtic-reg .vtic-photo-name{color:var(--vtic-ink);font-size:.875rem;overflow-wrap:anywhere}
.vtic-reg .vtic-photo-name:empty{display:none}
.vtic-reg .vtic-photo-name.is-bad{color:var(--vtic-err);font-weight:600}
.vtic-reg .vtic-photo-again{color:var(--vtic-warn);font-weight:600}
.vtic-reg .vtic-photo .vtic-help{margin:0}
.vtic-reg .has-error .vtic-photo{border-color:var(--vtic-err);background:var(--vtic-errbg)}

/* Submit */
.vtic-reg .vtic-actions{margin-top:28px}
.vtic-reg .vtic-submit{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-width:260px;min-height:54px;margin:0;padding:12px 28px;border:0;border-radius:12px;background:var(--vtic-c);color:var(--vtic-on);font-family:inherit;font-size:1.05rem;font-weight:700;line-height:1.2;letter-spacing:.01em;text-transform:none;cursor:pointer;box-shadow:0 1px 2px rgba(16,24,40,.1);transition:filter .15s,transform .06s;-webkit-tap-highlight-color:transparent}
.vtic-reg .vtic-submit:hover{filter:brightness(1.1)}
.vtic-reg .vtic-submit:active{transform:translateY(1px)}
.vtic-reg .vtic-submit:focus-visible{outline:3px solid var(--vtic-c);outline-offset:3px}
.vtic-reg .vtic-submit[disabled]{opacity:.8;cursor:progress;filter:none}
.vtic-reg .vtic-spinner{display:none;width:18px;height:18px;border:2.5px solid currentColor;border-right-color:transparent;border-radius:50%;animation:vtic-spin .7s linear infinite}
.vtic-reg .vtic-submit.is-busy .vtic-spinner{display:inline-block}
@keyframes vtic-spin{to{transform:rotate(360deg)}}

/* Spam traps / security check */
.vtic-reg .vtic-hp{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden!important}

/* Alerts */
.vtic-reg .vtic-alert{display:flex;flex-direction:column;gap:4px;margin:0 0 16px;padding:14px 16px;border:1px solid;border-left-width:5px;border-radius:12px;font-size:.95rem;line-height:1.5}
.vtic-reg .vtic-alert strong{font-weight:700}
.vtic-reg .vtic-alert:focus{outline:none;box-shadow:0 0 0 3px rgba(180,35,24,.18)}
.vtic-reg .vtic-alert--error{background:var(--vtic-errbg);border-color:#fecdca;border-left-color:var(--vtic-err);color:#7a271a}
.vtic-reg .vtic-alert--error a{color:var(--vtic-err);font-weight:600;text-decoration:underline;text-underline-offset:2px}
.vtic-reg .vtic-alert--info{background:var(--vtic-infobg);border-color:#b2ddff;border-left-color:var(--vtic-info);color:#194185}
.vtic-reg .vtic-alert--warn{background:var(--vtic-warnbg);border-color:#fedf89;border-left-color:var(--vtic-warn);color:#7a2e0e}

/* After submitting */
.vtic-reg .vtic-done{padding:28px;background:#fff;border:1px solid #e4e8ef;border-top:4px solid var(--vtic-ok);border-radius:16px;box-shadow:0 1px 2px rgba(16,24,40,.04),0 10px 30px rgba(16,24,40,.06)}
.vtic-reg .vtic-done:focus{outline:none}
.vtic-reg .vtic-done-head{display:flex;align-items:center;gap:14px;margin:0 0 12px}
.vtic-reg .vtic-done-icon{display:flex;flex:0 0 54px;align-items:center;justify-content:center;width:54px;height:54px;border-radius:50%;background:var(--vtic-okbg);color:var(--vtic-ok);animation:vtic-pop .45s cubic-bezier(.2,.9,.3,1.3)}
.vtic-reg .vtic-done-title{margin:0;padding:0;font-size:1.4rem;font-weight:700;line-height:1.25;color:var(--vtic-ink)}
.vtic-reg .vtic-done-msg{margin:0 0 18px;font-size:1.05rem}
.vtic-reg .vtic-done-card{display:flex;gap:16px;align-items:flex-start;padding:16px;background:var(--vtic-soft);border:1px solid #e4e8ef;border-radius:12px}
.vtic-reg .vtic-done-photo{flex:0 0 auto;width:84px;height:104px;max-width:none;object-fit:cover;border:2px solid #fff;border-radius:10px;box-shadow:0 1px 4px rgba(16,24,40,.15)}
.vtic-reg .vtic-done-list{flex:1 1 auto;min-width:0;margin:0;padding:0}
.vtic-reg .vtic-done-list>div{display:grid;grid-template-columns:minmax(110px,36%) 1fr;gap:12px;padding:8px 0;border-bottom:1px solid #e4e8ef}
.vtic-reg .vtic-done-list>div:first-child{padding-top:0}
.vtic-reg .vtic-done-list>div:last-child{padding-bottom:0;border-bottom:0}
.vtic-reg .vtic-done-list dt{margin:0;color:var(--vtic-mute);font-weight:500}
.vtic-reg .vtic-done-list dd{margin:0;font-weight:600;overflow-wrap:anywhere}
.vtic-reg .vtic-pill{display:inline-block;padding:2px 10px;border-radius:999px;background:#f2f4f7;color:#344054;font-size:.85rem;font-weight:600}
.vtic-reg .vtic-pill--pending{background:var(--vtic-warnbg);color:var(--vtic-warn)}
.vtic-reg .vtic-pill--active{background:var(--vtic-okbg);color:var(--vtic-ok)}
.vtic-reg .vtic-done-note{margin:16px 0 0;padding:12px 14px;border-radius:10px;background:var(--vtic-infobg);color:#194185;font-size:.95rem}
.vtic-reg .vtic-done-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}
.vtic-reg .vtic-btn{display:inline-flex;align-items:center;justify-content:center;min-height:46px;margin:0;padding:10px 18px;border:1.5px solid transparent;border-radius:10px;background:transparent;font-family:inherit;font-size:.95rem;font-weight:600;line-height:1.2;text-decoration:none;cursor:pointer}
.vtic-reg .vtic-btn--ghost{border-color:var(--vtic-c);background:#fff;color:var(--vtic-c)}
.vtic-reg .vtic-btn--link{color:var(--vtic-c);text-decoration:underline;text-underline-offset:2px}
@keyframes vtic-pop{0%{transform:scale(.5);opacity:0}100%{transform:scale(1);opacity:1}}

/* Phones */
@media (max-width:640px){
  .vtic-reg{margin:12px auto}
  .vtic-reg-title{font-size:1.3rem}
  .vtic-reg .vtic-registration{padding:20px 16px;border-radius:14px}
  .vtic-reg .vtic-form-grid{grid-template-columns:1fr;gap:18px}
  .vtic-reg .vtic-field--roll{padding:14px 12px}
  .vtic-reg .vtic-photo{gap:12px;padding:12px}
  .vtic-reg .vtic-photo-frame{width:72px;height:90px}
  .vtic-reg .vtic-submit{width:100%;min-width:0}
  .vtic-reg .vtic-done{padding:22px 16px;border-radius:14px}
  .vtic-reg .vtic-done-title{font-size:1.25rem}
  .vtic-reg .vtic-done-card{flex-direction:column;align-items:center;padding:14px 12px}
  .vtic-reg .vtic-done-list{width:100%}
  .vtic-reg .vtic-done-list>div{grid-template-columns:1fr;gap:0}
  .vtic-reg .vtic-done-actions .vtic-btn{flex:1 1 100%}
}
@media (max-width:360px){
  .vtic-reg .vtic-registration{padding:16px 12px}
  .vtic-reg .vtic-radios label{flex:1 1 auto;justify-content:flex-start}
}
@media (prefers-reduced-motion:reduce){
  .vtic-reg *,.vtic-reg *::before{animation:none!important;transition:none!important}
}

/* Messages outside the form */
.vtic-notice{padding:12px 14px;margin:15px 0;border-radius:10px}.vtic-notice.success{background:#ecfdf3;color:#065f46}.vtic-notice.error{background:#fef3f2;color:#991b1b}

/* Public card page ([vybe_id_card]) */
.vtic-public-card-page{background:#f1f5f9;padding:30px 16px;border-radius:16px;text-align:center}
.vtic-print-controls{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:20px}
.vtic-print-controls button{min-height:46px;margin:0;padding:10px 18px;border:0;border-radius:10px;background:#123b6d;color:#fff;font-family:inherit;font-size:15px;font-weight:600;line-height:1.2;cursor:pointer}
.vtic-print-controls button+button{background:#fff;color:#123b6d;box-shadow:inset 0 0 0 1.5px #123b6d}
.vtic-print-controls button:disabled{opacity:.6;cursor:default}
@media (max-width:640px){
  .vtic-public-card-page{padding:20px 12px;border-radius:12px}
  .vtic-print-controls{display:grid;grid-template-columns:repeat(3,1fr)}
  .vtic-print-controls button{width:100%;padding:10px 8px}
  .vtic-print-controls button:first-child{grid-column:1/-1}
  .vtic-print-controls .vtic-dl-word{display:none}
}


.vtic-card-pair{display:flex;flex-wrap:wrap;gap:6mm;justify-content:center;align-items:flex-start}

/* ---- Card canvas: every element is absolutely positioned in mm ---- */
.vtic-card{width:54mm;height:85.6mm;box-sizing:border-box;position:relative;overflow:hidden;margin:0 auto;background-color:var(--vtic-card-bg);color:var(--vtic-text);font-family:var(--vtic-font);font-size:var(--vtic-body);border:0.25mm solid var(--vtic-border);border-radius:var(--vtic-radius);box-shadow:0 3px 18px rgba(15,23,42,.15);background-repeat:no-repeat;text-align:left;line-height:1.2;-webkit-print-color-adjust:exact;print-color-adjust:exact}
.vtic-card *{box-sizing:border-box}
.vtic-card.vtic-landscape{width:85.6mm;height:54mm}
.vtic-exporting .vtic-card{box-shadow:none}
.vtic-square .vtic-card{border-radius:0!important}

.vtic-el{position:absolute;display:flex;flex-direction:column;overflow:hidden;line-height:1.2;margin:0;padding:0;border:0 solid transparent;min-width:0}

/* Shapes (header/footer bands follow the chosen style) */
.vtic-role-header{background:var(--vtic-primary)}
.vtic-role-footer{background:var(--vtic-secondary)}
.vtic-card.minimal .vtic-role-header{background:transparent;border-bottom:.6mm solid var(--vtic-primary)}
.vtic-card.minimal .vtic-role-footer{background:var(--vtic-primary)}
.vtic-card.institutional .vtic-role-header{background:var(--vtic-secondary)}
.vtic-card.institutional .vtic-role-footer{background:var(--vtic-primary)}

/* Text */
.vtic-txt{white-space:normal;overflow-wrap:anywhere;max-width:100%}
.vtic-src-organization,.vtic-src-subtitle{color:#fff;line-height:1.1}
.vtic-src-subtitle{letter-spacing:.2mm;opacity:.92}
.vtic-card.minimal .vtic-src-organization,.vtic-card.minimal .vtic-src-subtitle{color:var(--vtic-primary)}
.vtic-src-name{font-size:var(--vtic-name-size);line-height:1.05}
.vtic-src-back_title{color:var(--vtic-primary)}
.vtic-src-back_text{line-height:1.35}
.vtic-src-back_contact{color:var(--vtic-muted);line-height:1.3}

/* Field lines: label + value */
.vtic-t-field{font-weight:400}
.vtic-frow{display:flex;gap:1mm;align-items:baseline;width:100%;min-width:0}
.vtic-fl{flex:0 0 auto;color:var(--vtic-muted);font-size:.8em;font-weight:400;font-style:normal;text-transform:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vtic-fv{flex:1 1 auto;min-width:0;font-weight:inherit;white-space:normal;overflow-wrap:anywhere}
.vtic-underline{border-bottom:.15mm solid rgba(100,116,139,.2)}

/* Images */
.vtic-img{width:100%;height:100%;background-repeat:no-repeat;background-position:center}
.vtic-ph{margin:auto;font-size:2mm;font-weight:700;color:#94a3b8;letter-spacing:.2mm}
.vtic-t-photo{border:.5mm solid var(--vtic-primary);border-radius:1.5mm;background:#e2e8f0}
.vtic-card.institutional .vtic-t-photo{border-color:var(--vtic-accent)}
.vtic-t-logo{background:#fff;border-radius:1mm;padding:.6mm}
.vtic-t-qr{background:#fff;padding:.4mm}
.vtic-t-qr svg{width:100%;height:100%;display:block;min-height:0;flex:1 1 auto}
.vtic-t-qr .vtic-code-raster{image-rendering:pixelated}
.vtic-t-barcode{background:transparent}
.vtic-t-barcode.vtic-bc-quiet{background:#fff}
.vtic-t-barcode .vtic-barcode{flex:1 1 auto;min-height:0}
.vtic-bc-text{flex:0 0 auto;text-align:center;font-size:1.8mm;line-height:1.15;letter-spacing:.35mm;font-family:ui-monospace,Menlo,Consolas,monospace;color:#000;padding-top:.3mm}
.vtic-barcode{width:100%!important;height:100%!important;display:block}

/* Shapes (1.1): SVG bands — the path draws the fill — and ellipses */
.vtic-card .vtic-shape-svg{background:transparent!important;border:0!important;border-radius:0!important;overflow:visible}
.vtic-shape-art{position:absolute;left:0;top:0;width:100%;height:100%;display:block}
.vtic-card .vtic-shape-ellipse{border-radius:50%!important}

/* Frames for photos, logos and images */
.vtic-card .vtic-mask-circle{border-radius:50%!important}
.vtic-card .vtic-mask-rounded{border-radius:22%!important}
.vtic-card .vtic-mask-hexagon{border:0!important;border-radius:0!important}
.vtic-mask-line{position:absolute;left:0;top:0;width:100%;height:100%;display:block;pointer-events:none}

/* Icons beside field lines */
.vtic-ficon{flex:0 0 auto;width:1.15em;height:1.15em;margin-right:.5mm;align-self:center;display:block}

/* Security patterns (drawn by card-render.js) */
.vtic-t-pattern{background:transparent}
.vtic-t-pattern>svg{position:absolute;left:0;top:0;width:100%;height:100%;display:block}

/* Signature */
.vtic-t-signature{justify-content:flex-end}
.vtic-sig-img{flex:1 1 auto;min-height:0;width:100%}
.vtic-sig-line{display:block;border-top:.3mm solid var(--vtic-muted);width:80%;margin:.5mm auto 1mm;flex:0 0 auto}
.vtic-sig-label{font-size:1.7mm;color:var(--vtic-muted);flex:0 0 auto}


@media print{
 body:has(.vtic-public-card-page){background:#fff!important}
 body:has(.vtic-public-card-page) *{visibility:hidden}
 body:has(.vtic-public-card-page) .vtic-public-card-page,body:has(.vtic-public-card-page) .vtic-public-card-page *{visibility:visible}
 .vtic-public-card-page{position:absolute;left:0;top:0;padding:0!important;background:#fff!important}
 .vtic-card{box-shadow:none!important}
 .vtic-public-card-page .vtic-card{margin:0!important}
 .vtic-public-card-page .vtic-card-pair{display:block}
 .vtic-public-card-page .vtic-card-pair>.vtic-card:first-child{page-break-after:always}
 .vtic-print-controls{display:none!important}
 /* Registration receipt: only the panel */
 body:has(.vtic-done) *{visibility:hidden}
 body:has(.vtic-done) .vtic-done,body:has(.vtic-done) .vtic-done *{visibility:visible}
 .vtic-reg .vtic-done{position:absolute;left:0;top:0;width:100%;box-shadow:none!important}
 .vtic-reg .vtic-done-actions{display:none!important}
}

/* Registration form: brand kit header (logo + organisation name) */
.vtic-reg-brand{display:flex;align-items:center;gap:14px;margin:0 0 16px}
.vtic-reg-brand-logo{height:52px;width:auto;max-width:150px;object-fit:contain;flex:0 0 auto}
.vtic-reg-brand-name{font-size:1.3rem;font-weight:800;line-height:1.2;color:var(--vtic-c)}
@media (max-width:480px){.vtic-reg-brand-logo{height:42px}.vtic-reg-brand-name{font-size:1.1rem}}

/* Proof watermark (client portal, proofs): not printed — proofs are never sent to the printer. */
.vtic-card.vtic-proof::before{content:"";position:absolute;inset:0;z-index:998;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='90'%3E%3Ctext x='8' y='54' transform='rotate(-30 60 45)' font-family='Arial,sans-serif' font-size='17' font-weight='700' fill='rgba(220,38,38,0.20)'%3EPROOF%3C/text%3E%3C/svg%3E");background-size:22mm 16.5mm}
.vtic-card.vtic-proof::after{content:attr(data-proof);position:absolute;left:50%;top:50%;z-index:999;pointer-events:none;transform:translate(-50%,-50%) rotate(-32deg);font:800 9mm/1 Arial,Helvetica,sans-serif;letter-spacing:1mm;color:rgba(220,38,38,.34);border:.7mm solid rgba(220,38,38,.34);padding:1mm 2.5mm;border-radius:1.5mm;white-space:nowrap}
.vtic-card.vtic-landscape.vtic-proof::after{transform:translate(-50%,-50%) rotate(-18deg)}
/* Print service: consent box and lost-card link on registration forms */
.vtic-reg .vtic-consent .vtic-check{display:flex;gap:10px;align-items:flex-start;font-size:15px;line-height:1.45;cursor:pointer}
.vtic-reg .vtic-consent .vtic-check input{width:20px;height:20px;margin:2px 0 0;flex:0 0 auto}
.vtic-reg .vtic-lost-link{text-align:center;margin:18px 0 0;font-size:15px}
.vtic-reg .vtic-lost{max-width:640px;margin:0 auto}
