/* VeritasMatch V7.7.3 - accessibility, responsive and browser hardening.
   This layer is intentionally non-destructive and loaded after app.css. */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth}
body{overflow-wrap:anywhere}
.skip-link{position:fixed;left:12px;top:10px;z-index:10000;padding:11px 15px;border-radius:10px;background:#171923;color:#fff;font-weight:800;transform:translateY(-160%);transition:transform .15s ease;box-shadow:0 4px 18px rgba(0,0,0,.22)}
.skip-link:focus{transform:translateY(0)}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
:where(a,button,input,select,textarea,[tabindex]):focus-visible{outline:3px solid #4c1d95;outline-offset:3px;box-shadow:none}
:where(button,.btn,.linkbtn,.nav-item,.languages a,input,select,textarea){min-height:44px}
:where(button,.btn,.linkbtn,.nav-item,.languages a){touch-action:manipulation}
input,select,textarea{font-size:max(16px,1em)}
input::placeholder,textarea::placeholder{opacity:.78}
[aria-current="page"]{text-decoration-thickness:2px;text-underline-offset:4px}
.alert[role="alert"],.alert[role="status"]{border:1px solid currentColor}
.table-wrap{max-width:100%;-webkit-overflow-scrolling:touch;overscroll-behavior-inline:contain}
table{min-width:max-content}
th{font-weight:800}
img,video,canvas,svg{max-width:100%}
pre,code{white-space:pre-wrap;overflow-wrap:anywhere}
main:focus{outline:none}
main [id]{scroll-margin-top:110px}

/* Navigation: keep all destinations reachable at zoom and narrow widths. */
.main-nav,.nav-row{max-width:100%}
.nav-row{overflow-x:auto;scrollbar-width:thin;-webkit-overflow-scrolling:touch;padding-block:2px}
.nav-item{flex:0 0 auto}
.header-tools{flex-wrap:wrap}

/* More resilient grids: cards do not force horizontal overflow at 200% zoom. */
.features,.cards,.stats,.photo-grid,.community-photo-grid{min-width:0}
.features>* , .cards>* , .stats>* , .photo-grid>* , .community-photo-grid>*{min-width:0}
.panel,.auth-card,.person-card,.trust-card{max-width:100%}
.actions,.admin-actions{flex-wrap:wrap}
.actions>.btn,.admin-actions>.btn{max-width:100%}

/* Graceful fallback where backdrop-filter is unavailable/disabled. */
@supports not ((backdrop-filter:blur(2px)) or (-webkit-backdrop-filter:blur(2px))){
 .topbar,.hero-trust-card,.community-photo figcaption{background:#fff}
 .community-photo figcaption{background:rgba(16,18,28,.92)}
}

/* Windows high-contrast / forced colors. */
@media (forced-colors:active){
 .btn,.brandmark,.verified,.badge,.nav-count,.premium-dot{forced-color-adjust:auto;border:1px solid ButtonText}
 .panel,.auth-card,.person-card,.trust-card,.features article,.stats div{border:1px solid CanvasText;box-shadow:none}
 .skip-link{border:2px solid CanvasText}
}

/* Respect users who request less movement. */
@media (prefers-reduced-motion:reduce){
 html{scroll-behavior:auto}
 *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
 .community-photo:hover img{transform:none}
}

/* Tablet / large zoom hardening. */
@media (max-width:900px){
 .page-head{align-items:flex-start;flex-direction:column}
 .page-head>.actions{width:100%}
 .topbar{gap:12px}
 .main-nav{width:100%}
 .admin-shell{min-width:0}
 .admin-workspace{min-width:0}
}

/* Phone portrait. */
@media (max-width:600px){
 body{font-size:16px}
 .container{width:100%;max-width:none}
 .topbar{align-items:flex-start}
 .brand-copy small{display:none}
 .main-nav{overflow-x:auto;justify-content:flex-start!important;padding-bottom:4px}
 .nav-row{justify-content:flex-start!important;width:max-content;max-width:none}
 .nav-item{padding-inline:11px}
 .actions,.admin-actions{width:100%;display:grid;grid-template-columns:1fr}
 .actions>.btn,.admin-actions>.btn,.admin-actions>select{width:100%;min-width:0}
 .two-col,.features,.cards,.stats,.form-grid,.photo-grid{grid-template-columns:minmax(0,1fr)!important}
 .hero h1,.page-head h1,.section-head h1{overflow-wrap:break-word}
 .table-wrap{margin-inline:-6px;padding-inline:6px}
 .auth-card,.panel,.trust-card{padding-left:18px;padding-right:18px}
}

/* Very narrow screens / 200% zoom. */
@media (max-width:380px){
 .container{padding-left:10px;padding-right:10px}
 .btn{width:100%}
 .languages{gap:2px}
 .languages a{padding-inline:8px}
}

@media print{
 .skip-link,.topbar,.header-tools,.main-nav{display:none!important}
 main{max-width:none!important;padding:0!important}
 a{text-decoration:underline}
}
