[hidden]{display:none!important;}

.validation-shell{max-width:760px;margin:0 auto;}
.validation-lead{max-width:66ch;color:var(--text-dim);font-size:1.02rem;margin:0 0 28px;}
.validation-progress{
  display:grid;grid-template-columns:repeat(3,1fr);gap:0;list-style:none;margin:28px 0 30px;padding:0;
  position:relative;
}
.validation-progress::before{
  content:"";position:absolute;left:16.66%;right:16.66%;top:18px;height:2px;background:var(--line);z-index:0;
}
.validation-progress li{
  position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:6px;
  color:var(--text-dim);font-family:'Inter',sans-serif;font-size:.72rem;font-weight:600;text-align:center;
}
.validation-progress li span{
  width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:var(--bg);
  border:2px solid var(--line);color:var(--text-dim);transition:.2s ease;
}
.validation-progress li.is-active{color:var(--ochre-hi);}
.validation-progress li.is-active span{background:var(--ochre);border-color:var(--ochre);color:#fff;box-shadow:0 0 0 5px rgba(192,141,16,.10);}
.validation-progress li.is-complete span{background:var(--ok);border-color:var(--ok);color:#fff;}

.validation-stage{
  border:1px solid var(--line);border-radius:10px;background:var(--bg-panel);padding:clamp(22px,5vw,38px);
  box-shadow:0 16px 36px -32px rgba(34,48,60,.55);text-align:center;
}
.validation-stage h2,.validation-result h2{
  font-family:'Inter',sans-serif;font-size:clamp(1.25rem,4vw,1.65rem);color:var(--text);margin:8px 0 8px;
}
.validation-stage>p{max-width:56ch;margin:0 auto 20px;color:var(--text-dim);}
.validation-stage-icon{
  width:58px;height:58px;border-radius:50%;display:grid;place-items:center;margin:0 auto 14px;
  background:rgba(194,69,45,.08);border:1px solid rgba(194,69,45,.28);color:var(--danger);
}
.validation-stage-icon-ochre{background:rgba(192,141,16,.08);border-color:rgba(192,141,16,.28);color:var(--ochre-hi);}
.validation-stage-icon svg{width:29px;height:29px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round;}

.validation-primary-button,.validation-secondary-button{
  appearance:none;border:1px solid var(--ochre);border-radius:5px;padding:12px 22px;
  font:700 .94rem 'Inter',sans-serif;cursor:pointer;transition:.16s ease;
}
.validation-primary-button{background:var(--ochre);color:#fff;min-width:min(100%,260px);}
.validation-secondary-button{background:transparent;color:var(--ochre-hi);margin-top:22px;}
.validation-primary-button:disabled{opacity:.58;cursor:wait;}
.validation-primary-button:focus-visible,.validation-secondary-button:focus-visible{outline:3px solid rgba(192,141,16,.30);outline-offset:3px;}
@media (hover:hover) and (pointer:fine){
  .validation-primary-button:hover{background:var(--ochre-hi);border-color:var(--ochre-hi);transform:translateY(-1px);}
  .validation-secondary-button:hover{background:rgba(192,141,16,.07);}
}

.scanner-wrap{max-width:520px;margin:22px auto 0;text-align:left;}
.qr-reader{width:100%;min-height:210px;border-radius:8px;overflow:hidden;background:#101820;border:1px solid var(--line);}
.qr-reader video{width:100%!important;height:auto!important;display:block;border-radius:8px;}
.qr-reader img{max-width:100%;}
.file-scan-label{margin:14px 0 4px;text-transform:none;letter-spacing:0;font-family:'Inter',sans-serif;font-size:.82rem;}
.scanner-wrap input[type=file]{font-size:.82rem;}
.validation-status{min-height:1.5em;margin:14px auto 0;color:var(--text-dim);font-size:.86rem;text-align:center;}
.validation-status.is-error,.validation-warning{color:var(--danger);}

#public-security-form{max-width:500px;margin:24px auto 0;text-align:left;}
#public-security-form label{margin-top:16px;}
#public-security-form input{
  width:100%;background:var(--bg-raised);border:1px solid var(--line);border-radius:5px;color:var(--text);
  font:400 1rem 'Inter',sans-serif;padding:12px 13px;
}
#public-security-form input:focus{outline:2px solid rgba(192,141,16,.25);outline-offset:1px;border-color:var(--ochre);}
#public-security-form .validation-primary-button{display:flex;margin:22px auto 0;}

.validation-result{
  border:1px solid var(--line);border-radius:10px;background:var(--bg-panel);padding:clamp(28px,7vw,48px) clamp(20px,5vw,38px);
  text-align:center;box-shadow:0 16px 36px -32px rgba(34,48,60,.55);
}
.validation-result-mark{width:116px;height:116px;margin:0 auto 18px;}
.validation-result-mark svg{width:100%;height:100%;fill:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;}
.validation-result .result-check,.validation-result .result-cross{display:none;}
.validation-result.is-success .result-check{display:block;stroke:var(--ok);animation:validationMarkIn .45s ease-out both;}
.validation-result.is-error .result-cross{display:block;stroke:var(--danger);animation:validationMarkIn .45s ease-out both;}
.validation-result.is-success h2{color:var(--ok);}
.validation-result.is-error h2{color:var(--danger);}
.validation-result>p{max-width:58ch;margin:0 auto;color:var(--text-dim);}
.validation-document-summary{max-width:620px;margin:26px auto 0;text-align:left;}
.validation-document-summary dl{margin:0;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--bg-raised);}
.validation-document-summary dl>div{display:grid;grid-template-columns:minmax(145px,.8fr) minmax(0,1.5fr);gap:14px;padding:12px 15px;border-bottom:1px solid var(--line);}
.validation-document-summary dl>div:last-child{border-bottom:0;}
.validation-document-summary dt{font-size:.75rem;font-weight:700;color:var(--text-dim);text-transform:uppercase;letter-spacing:.04em;}
.validation-document-summary dd{margin:0;color:var(--text);font-weight:600;overflow-wrap:anywhere;}
.validation-classification{margin-top:14px;padding:15px 17px;border:2px solid var(--line);border-radius:8px;display:flex;align-items:center;gap:13px;background:var(--bg-raised);}
.validation-classification svg{width:46px;height:46px;flex:0 0 46px;fill:none;stroke-width:3.2;stroke-linecap:round;stroke-linejoin:round;}
.validation-classification span{display:block;color:var(--text-dim);font-size:.74rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;}
.validation-classification strong{display:block;margin-top:2px;font:700 1.08rem 'Inter',sans-serif;}
.validation-classification .classification-ok-icon,.validation-classification .classification-warning-icon{display:none;}
.validation-classification.is-appropriate{border-color:rgba(46,125,79,.42);background:rgba(46,125,79,.06);color:var(--ok);}
.validation-classification.is-appropriate .classification-ok-icon{display:block;}
.validation-classification.is-appropriate .classification-ok-icon circle{fill:var(--ok);stroke:var(--ok);}
.validation-classification.is-appropriate .classification-ok-icon path{stroke:#fff;}
.validation-classification.is-inappropriate{border-color:rgba(194,69,45,.55);background:rgba(194,69,45,.08);color:var(--danger);}
.validation-classification.is-inappropriate .classification-warning-icon{display:block;animation:validationMarkIn .4s ease-out both;}
.validation-classification.is-inappropriate .classification-warning-icon circle{fill:var(--danger);stroke:var(--danger);}
.validation-classification.is-inappropriate .classification-warning-icon path{stroke:#fff;}
@keyframes validationMarkIn{from{opacity:0;transform:scale(.72);}to{opacity:1;transform:scale(1);}}
.validation-contact{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:5px 14px;margin:20px auto 0;color:var(--text-dim);font-size:.9rem;}
.validation-contact a{color:var(--ochre-hi);font-weight:600;text-underline-offset:3px;}
.validation-privacy-note{
  margin:24px 0 0;padding:16px 18px;border-left:3px solid var(--ochre);background:rgba(192,141,16,.05);font-size:.84rem;color:var(--text-dim);
}
.validation-privacy-note strong{display:block;color:var(--text);font-family:'Inter',sans-serif;margin-bottom:3px;}
.validation-privacy-note a{color:var(--ochre-hi);text-underline-offset:3px;}

/* Admin */
.admin-nav-row .btn{margin-top:0;padding:8px 13px;font-size:.8rem;}
.validation-step-label{
  display:inline-block;color:var(--ochre);font:600 .72rem 'Inter',sans-serif;letter-spacing:.14em;text-transform:uppercase;margin-bottom:4px;
}
.validation-action-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:22px;}
.validation-action-grid-single{grid-template-columns:minmax(0,440px);justify-content:center;}
.validation-action{
  appearance:none;border:1px solid var(--line);border-radius:8px;background:var(--bg-raised);color:var(--text);
  min-height:132px;padding:18px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;cursor:pointer;
  transition:border-color .16s ease,transform .16s ease,background .16s ease;
}
.validation-action svg{width:34px;height:34px;fill:none;stroke:var(--ochre-hi);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;margin-bottom:9px;}
.validation-action strong{font-family:'Inter',sans-serif;font-size:.95rem;}
.validation-action span{font-size:.78rem;color:var(--text-dim);margin-top:3px;}
.validation-action-primary{border-color:rgba(192,141,16,.58);background:rgba(192,141,16,.06);}
.validation-action:focus-visible{outline:3px solid rgba(192,141,16,.25);outline-offset:3px;}
@media (hover:hover) and (pointer:fine){.validation-action:hover{border-color:var(--ochre);transform:translateY(-2px);background:#fff;}}
.validation-register .scanner-wrap{margin-left:auto;margin-right:auto;}
.validation-register .validation-status{margin-bottom:0;}
.validation-question-head{margin-top:26px;padding-top:24px;border-top:1px solid var(--line);}
.validation-question-head h3{font-family:'Inter',sans-serif;font-size:1.1rem;margin-bottom:5px;}
.validation-question-head p{font-size:.86rem;color:var(--text-dim);}
.validation-warning{margin:12px 0 0;padding:10px 12px;border:1px solid rgba(194,69,45,.35);background:rgba(194,69,45,.06);border-radius:5px;font-size:.82rem;}
.validation-metadata-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px;margin:18px 0 4px;}
.validation-metadata-grid>div{min-width:0;}
.validation-metadata-grid .validation-field-wide{grid-column:1/-1;}
.validation-metadata-grid label span{font-weight:400;color:var(--text-dim);text-transform:none;letter-spacing:0;}
.validation-metadata-grid input,.validation-metadata-grid select{width:100%;}
#admin-security-form input.is-derived{background:rgba(46,125,79,.06);border-color:rgba(46,125,79,.35);color:var(--text-dim);cursor:not-allowed;}
.validation-derived-note{margin:10px 0;padding:9px 11px;border-left:3px solid var(--ochre);background:rgba(192,141,16,.05);font-size:.84rem;color:var(--text-dim);}

.validation-list-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px;}
.validation-record{
  display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;
  border:1px solid var(--line);border-radius:6px;background:var(--bg-raised);padding:15px 16px;margin-top:10px;
}
.validation-record.is-inactive{opacity:.72;}
.validation-record-main{flex:1;min-width:230px;}
.validation-record-title{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-bottom:5px;}
.validation-record-title strong{font-family:'Inter',sans-serif;font-size:.9rem;}
.record-status{display:inline-flex;border-radius:999px;padding:3px 8px;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;}
.record-status.active{background:rgba(46,125,79,.11);color:var(--ok);}
.record-status.inactive{background:rgba(194,69,45,.10);color:var(--danger);}
.record-status.appropriate{background:rgba(46,125,79,.11);color:var(--ok);}
.record-status.inappropriate{background:rgba(194,69,45,.11);color:var(--danger);}
.validation-record-main p{font-size:.82rem;color:var(--text-dim);margin-bottom:2px;}
.validation-record-main small{font-size:.74rem;color:var(--text-dim);}
.validation-record-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap;}
.validation-record-actions form{margin:0;}
.validation-record-actions .btn{margin:0;padding:7px 10px;font-size:.72rem;}

@media (max-width:640px){
  .validation-progress li{font-size:.66rem;}
  .validation-stage{padding:24px 16px;}
  .validation-action-grid{grid-template-columns:1fr;}
  .validation-metadata-grid{grid-template-columns:1fr;}
  .validation-metadata-grid .validation-field-wide{grid-column:auto;}
  .validation-document-summary dl>div{grid-template-columns:1fr;gap:3px;}
  .validation-action{min-height:112px;}
  .validation-record{align-items:flex-start;}
  .validation-record-actions{width:100%;}
  .validation-record-actions .btn{flex:1 1 auto;}
  .validation-record-actions form{display:flex;flex:1 1 auto;}
  .validation-record-actions form .btn{width:100%;}
}

@media (prefers-reduced-motion:reduce){
  .validation-result.is-success .result-check,.validation-result.is-error .result-cross{animation:none;}
  .validation-action,.validation-primary-button{transition:none;}
}
