:root {
  color-scheme: light;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: #172321;
  background: #f2f1ec;
  font-synthesis: none;
}

* { box-sizing: border-box; }

body {
  min-width: 320px;
  min-height: 100vh;
  margin: 0;
  background: #f2f1ec;
}

button, input { font: inherit; }
a { color: #146b60; text-underline-offset: 3px; }

.login-shell {
  display: grid;
  grid-template-columns: minmax(360px, 1.15fr) minmax(440px, .85fr);
  min-height: 100vh;
}

.login-visual {
  position: relative;
  min-height: 100vh;
  overflow: hidden;
  background: #183d38;
}

.login-visual > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.login-visual__shade {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(8, 31, 28, .18), rgba(8, 31, 28, .18) 42%, rgba(8, 31, 28, .82));
}

.login-visual__content {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: clamp(32px, 5vw, 72px);
  color: #fff;
}

.brand {
  display: flex;
  align-items: center;
  gap: 11px;
  margin: 0;
  font-size: 18px;
  font-weight: 760;
  letter-spacing: -.02em;
}

.brand__mark {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border-radius: 11px;
  color: #173f39;
  background: #fff;
  font-family: Georgia, serif;
  font-size: 20px;
}

.eyebrow {
  margin: 0 0 12px;
  color: rgba(255, 255, 255, .78);
  font-size: 12px;
  font-weight: 760;
  letter-spacing: .13em;
  text-transform: uppercase;
}

.login-visual h1 {
  max-width: 650px;
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(50px, 6.2vw, 86px);
  font-weight: 500;
  line-height: .98;
  letter-spacing: -.055em;
}

.login-visual__content > div > p:last-child {
  max-width: 470px;
  margin: 24px 0 0;
  color: rgba(255, 255, 255, .86);
  font-size: 17px;
  line-height: 1.55;
}

.login-panel {
  display: grid;
  place-items: center;
  padding: clamp(28px, 5vw, 72px);
}

.login-card { width: min(100%, 430px); }
.brand--mobile { display: none; margin-bottom: 52px; }
.brand--mobile .brand__mark { color: #fff; background: #146b60; }
.eyebrow--green { color: #36786f; }

.login-card h2 {
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(38px, 5vw, 52px);
  font-weight: 500;
  line-height: 1.05;
  letter-spacing: -.045em;
}

.intro {
  margin: 12px 0 30px;
  color: #66716e;
  font-size: 16px;
}

.alert {
  margin: 0 0 18px;
  padding: 12px 14px;
  border: 1px solid #e7b6ad;
  border-radius: 12px;
  color: #7f2c23;
  background: #fff1ee;
  font-size: 14px;
  line-height: 1.45;
}

.button {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 50px;
  padding: 0 18px;
  border: 1px solid transparent;
  border-radius: 13px;
  font-weight: 720;
  cursor: pointer;
  transition: transform .16s ease, background-color .16s ease, border-color .16s ease;
}

.button:not(:disabled):active { transform: translateY(1px); }
.button:focus-visible, input:focus-visible, a:focus-visible { outline: 3px solid rgba(20, 107, 96, .25); outline-offset: 2px; }

.button--google {
  gap: 12px;
  border-color: #d5dad7;
  color: #26312f;
  background: #fff;
}

.button--google:not(:disabled):hover { border-color: #9fafab; background: #fafcfb; }
.button--google:disabled { cursor: not-allowed; opacity: .62; }
.button--google svg { width: 20px; height: 20px; flex: 0 0 auto; }

.setup-note {
  margin: 8px 0 0;
  color: #7b8582;
  font-size: 12px;
  text-align: center;
}

.divider {
  display: flex;
  align-items: center;
  gap: 14px;
  margin: 24px 0;
  color: #87908e;
  font-size: 13px;
}

.divider::before, .divider::after { content: ""; height: 1px; flex: 1; background: #d8dcd9; }

.credentials-form { display: grid; gap: 10px; }
.credentials-form label, .label-row { font-size: 14px; font-weight: 690; }
.label-row { display: flex; justify-content: space-between; align-items: center; margin-top: 8px; }
.label-row a { font-size: 13px; font-weight: 600; }

.credentials-form input {
  width: 100%;
  min-height: 50px;
  padding: 0 14px;
  border: 1px solid #ccd2cf;
  border-radius: 12px;
  color: #172321;
  background: rgba(255, 255, 255, .82);
}

.credentials-form input:hover { border-color: #9fafab; }
.credentials-form input:focus { border-color: #146b60; background: #fff; }

.button--primary {
  margin-top: 12px;
  color: #fff;
  background: #146b60;
  box-shadow: 0 8px 22px rgba(20, 107, 96, .18);
}

.button--primary:hover { background: #105d53; }
.invite-note { margin: 22px 0 0; color: #697370; font-size: 13px; text-align: center; }
.privacy-note { margin: 42px 0 0; color: #77817e; font-size: 12px; text-align: center; }
.privacy-note span { margin-right: 7px; color: #3e8e72; font-size: 9px; }

@media (max-width: 820px) {
  .login-shell { display: block; }
  .login-visual { display: none; }
  .login-panel { min-height: 100vh; padding: 32px 22px; }
  .brand--mobile { display: flex; }
}

@media (max-width: 420px) {
  .login-panel { align-items: start; padding-top: 24px; }
  .brand--mobile { margin-bottom: 42px; }
  .login-card h2 { font-size: 40px; }
  .privacy-note { margin-top: 32px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; }
}

.access-page{width:min(100% - 40px,480px);margin:48px auto;padding:28px;background:#fffdfa;border:1px solid #cbd3ce;border-radius:20px}.access-page h1{font-size:2rem;line-height:1.2;color:#17324d}.access-page .eyebrow{margin-top:28px}.access-page p{line-height:1.5}.access-page select,.access-page textarea{width:100%;min-height:48px;border:1px solid #cbd3ce;padding:12px;border-radius:8px;font:inherit;box-sizing:border-box;background:#fff}.access-page textarea{margin:12px 0;font-size:.85rem}.access-page button{min-height:48px;width:100%;margin:12px 0}.access-page label{display:block;margin-top:12px;font-weight:650}.access-page input{width:100%}.access-result{margin-top:24px}
