:root{
  color-scheme:light;
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:#17211f;
  background:#dfe7d9;
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html,body{margin:0;min-width:100%;min-height:100%;background:#dfe7d9}
body{min-height:100dvh;overflow-x:hidden}
button,input{font:inherit}
.access-shell{
  min-height:100dvh;
  display:grid;
  place-items:center;
  padding:max(24px,env(safe-area-inset-top)) max(18px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(18px,env(safe-area-inset-left));
  background:
    radial-gradient(circle at 18% 18%,rgba(255,255,255,.82),transparent 32%),
    radial-gradient(circle at 84% 76%,rgba(94,189,166,.24),transparent 34%),
    linear-gradient(145deg,#edf3e9,#cfdccb 58%,#c4d8d2);
}
.access-card{
  width:min(480px,100%);
  padding:clamp(22px,5vw,34px);
  border:1px solid rgba(255,255,255,.72);
  border-radius:28px;
  background:rgba(250,252,249,.58);
  box-shadow:0 24px 80px rgba(27,48,40,.16);
  backdrop-filter:blur(30px) saturate(145%);
  -webkit-backdrop-filter:blur(30px) saturate(145%);
}
.access-brand{display:flex;align-items:center;gap:14px;margin-bottom:22px}
.access-brand img{border-radius:15px;box-shadow:0 8px 24px rgba(0,99,89,.12)}
.access-kicker{display:block;margin-bottom:3px;color:#64716c;font-size:11px;font-weight:750;letter-spacing:.12em;text-transform:uppercase}
h1{margin:0;font-size:30px;line-height:1;letter-spacing:-.045em}
.access-copy{margin:0 0 20px;color:#59645f;font-size:15px;line-height:1.55}
.access-form{display:grid;gap:8px}
.access-form-field{display:grid;gap:8px;margin-top:4px}
.access-form label{font-size:12px;font-weight:720;color:#45514c}
.access-password-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}
input{
  width:100%;min-height:46px;padding:10px 13px;
  border:1px solid rgba(48,71,62,.18);border-radius:14px;
  color:#17211f;background:rgba(255,255,255,.68);outline:none;
}
input:focus-visible{border-color:#009e90;box-shadow:0 0 0 3px rgba(0,158,144,.16)}
button{
  min-height:46px;padding:10px 16px;border:0;border-radius:14px;
  color:#fff;background:#087f74;font-weight:720;cursor:pointer;
  box-shadow:0 8px 20px rgba(0,94,85,.18);
}
button:hover{background:#006f66}
button:disabled{opacity:.55;cursor:wait}
.access-submit{justify-self:start;margin-top:4px}
.guest-password-panel{padding-top:4px}
.guest-expired-panel{display:grid;justify-items:start;gap:10px;padding-top:4px}
.guest-expired-panel h2{margin:0;font-size:24px;letter-spacing:-.035em}
.guest-expired-panel .access-copy{margin:0}
.guest-code{margin-top:18px;border-top:1px solid rgba(38,56,49,.10);padding-top:14px}
.guest-code summary{color:#60706a;font-size:13px;cursor:pointer}
.guest-code[open] summary{margin-bottom:12px}
.access-message{min-height:22px;margin:16px 0 0;color:#9a2930;font-size:13px;line-height:1.45}
.access-message.is-success{color:#087267}
.access-progress{display:flex;align-items:center;gap:12px;padding:10px 0;color:#50605a}
.access-progress p{margin:0}
.access-spinner{width:22px;height:22px;border:2px solid rgba(0,126,115,.18);border-top-color:#087f74;border-radius:50%;animation:access-spin .8s linear infinite}
@keyframes access-spin{to{transform:rotate(360deg)}}
@media(max-width:520px){
  .access-password-row{grid-template-columns:1fr}
  .access-password-row button,.access-submit{width:100%}
}
@media(prefers-reduced-motion:reduce){.access-spinner{animation-duration:1.6s}}
