/* V22 — client-only shell and authentication visual foundation */
@media screen {
  body:not(.admin-app-shell) .client-top-nav {
    isolation: isolate;
    position: sticky !important;
    top: 0 !important;
    z-index: 110 !important;
    min-height: 68px !important;
    height: auto !important;
    padding-block: 9px !important;
    background: #eef4fc !important;
    background-image: linear-gradient(120deg,#eaf2fd 0%,#f8fbff 100%) !important;
    border-bottom: 1px solid #d7e3f2 !important;
    box-shadow: 0 8px 22px rgba(22,49,93,.11) !important;
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
  }
  body:not(.admin-app-shell) .client-top-nav .client-top-actions {display:flex;align-items:center;gap:8px;flex-shrink:0;}
  body:not(.admin-app-shell) .client-top-nav .top-icon-link {
    display:inline-flex;align-items:center;justify-content:center;
    min-width:42px;min-height:42px;border-radius:15px;
    background:#fff !important;border:1px solid #e0e9f5 !important;
    box-shadow:0 2px 9px rgba(20,50,92,.05) !important;
  }
  body:not(.admin-app-shell) .client-top-nav .client-brand {display:flex;align-items:center;min-width:0;}
  body:not(.admin-app-shell) .client-top-nav .client-brand img {max-width:48px;max-height:48px;object-fit:contain;}
  body:not(.admin-app-shell) .auth-wrapper {
    box-sizing:border-box;width:100%;min-height:100svh;
    padding:clamp(18px,4vh,52px) clamp(12px,4vw,24px) calc(28px + env(safe-area-inset-bottom,0px));
    display:flex;align-items:center;justify-content:center;
    background-color:#edf4ff;
    background-image: radial-gradient(circle at 18% 13%,rgba(116,161,226,.22),transparent 38%),linear-gradient(148deg,#edf4ff,#f7faff);
  }
  body:not(.admin-app-shell) .auth-card {
    box-sizing:border-box;width:min(100%,520px) !important;max-width:520px !important;
    padding:clamp(20px,4vw,34px) !important;
    margin-inline:auto;border-radius:25px !important;
    border:1px solid #e0e8f5;box-shadow:0 20px 60px rgba(22,47,85,.1);
    background:#fff;
  }
  body:not(.admin-app-shell) .auth-card-login {max-width:455px !important;}
  body:not(.admin-app-shell) .auth-card .auth-logo {margin-bottom:22px;}
  body:not(.admin-app-shell) .auth-card .auth-logo img {max-width:116px;height:auto !important;object-fit:contain;}
  body:not(.admin-app-shell) .auth-card .form-group {min-width:0;margin-bottom:16px;}
  body:not(.admin-app-shell) .auth-card input:not([type=checkbox]):not([type=radio]),
  body:not(.admin-app-shell) .auth-card select,
  body:not(.admin-app-shell) .auth-card textarea {
    box-sizing:border-box;width:100%;max-width:100%;min-height:49px;
    border-radius:12px !important;background:#f6f9ff;border:1px solid #d8e3f2;
    font-size:16px;
  }
  body:not(.admin-app-shell) .auth-card input:focus-visible,
  body:not(.admin-app-shell) .auth-card select:focus-visible {outline:2px solid #3463a6;outline-offset:2px;}
  body:not(.admin-app-shell) .auth-card .btn-primary {min-height:48px;border-radius:12px;}
  body:not(.admin-app-shell) .auth-card .consent-block {border-radius:13px;}
  body:not(.admin-app-shell) .auth-card .auth-trust-row {display:flex;flex-wrap:wrap;gap:8px;justify-content:center;}
}
@media screen and (max-width:390px) {
  body:not(.admin-app-shell) .client-top-nav {min-height:62px !important;padding-block:7px !important;}
  body:not(.admin-app-shell) .client-top-nav .top-icon-link {min-width:39px;min-height:39px;}
  body:not(.admin-app-shell) .auth-card {padding:19px 16px !important;border-radius:20px !important;}
}
/* PWA launch animation. Fully accessible: respects motion preference and never blocks navigation permanently. */
.alf-launch {position:fixed;inset:0;z-index:99999;display:grid;place-items:center;background:linear-gradient(150deg,#192e61,#3259a3);color:white;opacity:1;transition:opacity .32s ease;}
.alf-launch.is-leaving {opacity:0;pointer-events:none;}
.alf-launch__inner {display:flex;flex-direction:column;align-items:center;gap:15px;text-align:center;animation:alf-arrive .5s cubic-bezier(.2,.75,.3,1) both;}
.alf-launch__logo {width:114px;height:114px;border-radius:28px;display:grid;place-items:center;background:#fff;box-shadow:0 20px 50px rgba(0,0,0,.15);}
.alf-launch__logo img {display:block;width:90px;height:90px;object-fit:contain;}
.alf-launch__title {font-size:20px;font-weight:800;letter-spacing:0;}
.alf-launch__subtitle {font-size:12px;opacity:.78;}
.alf-launch__line {height:3px;width:110px;background:rgba(255,255,255,.23);border-radius:20px;overflow:hidden;}
.alf-launch__line::after {content:"";display:block;width:40%;height:100%;border-radius:20px;background:#fff;animation:alf-progress .95s ease-in-out infinite alternate;}
@keyframes alf-arrive {from{opacity:0;transform:translateY(12px) scale(.96)}to{opacity:1;transform:none}}
@keyframes alf-progress {from{transform:translateX(-100%)}to{transform:translateX(270%)}}
@media (prefers-reduced-motion: reduce) {.alf-launch,.alf-launch__inner,.alf-launch__line::after{animation:none!important;transition:none!important;}}
@media print {.alf-launch{display:none!important}}
