:root{
  --bg:#0b0907;
  --text:#f4eadc;
  --muted:rgba(244,234,220,0.78);
  --soft:rgba(244,234,220,0.56);
  --cream:#ead8bf;
  --cream-2:#f5e8d5;
  --bronze:#b98c5a;
  --line:rgba(255,236,212,0.12);
  --shadow:0 28px 90px rgba(0,0,0,0.38);
  --ease:cubic-bezier(.22,1,.36,1);
}
*{box-sizing:border-box}
html,body{min-height:100%}
body{
  margin:0;
  font-family:"Inter",system-ui,sans-serif;
  color:var(--text);
  background:var(--bg);
  overflow-x:hidden;
}
a{text-decoration:none;color:inherit}
button,input,select{font:inherit}
.auth-page{position:relative; min-height:100vh; background:linear-gradient(180deg,#0b0907,#090705)}
.auth-bg,.auth-overlay,.particles{position:fixed; inset:0}
.auth-bg{background-image:var(--bg); background-size:cover; background-position:center; transform:scale(1.04)}
.auth-overlay{
  background:
    linear-gradient(to bottom, rgba(10,7,5,0.28), rgba(10,7,5,0.62) 42%, rgba(10,7,5,0.92) 100%),
    linear-gradient(to right, rgba(10,7,5,0.74), rgba(10,7,5,0.34) 38%, rgba(10,7,5,0.78));
}
.particles{pointer-events:none; opacity:.42}
.auth-header{
  position:fixed; top:18px; left:50%; transform:translateX(-50%);
  width:min(1220px, calc(100% - 24px));
  display:flex; align-items:center; justify-content:space-between;
  padding:14px 16px; z-index:20; border-radius:999px;
  border:1px solid var(--line); background:rgba(17,12,8,0.46);
  backdrop-filter:blur(18px) saturate(145%); box-shadow:0 18px 50px rgba(0,0,0,.22);
}
.brand{font-family:"Cormorant Garamond",serif; font-size:clamp(1.5rem,2vw,1.95rem); font-weight:700; color:var(--cream-2)}
.auth-header__actions{display:flex; gap:10px}
.mini-link{padding:10px 14px; border-radius:999px; color:var(--muted); transition:background .35s ease,color .35s ease, transform .35s ease}
.mini-link:hover{transform:translateY(-1px)}
.mini-link.is-active{background:rgba(255,244,230,.08); color:var(--cream-2)}
.auth-shell{
  position:relative; z-index:5; min-height:100vh; width:min(1220px, calc(100% - 32px));
  margin:0 auto; display:grid; grid-template-columns:1.02fr 480px; gap:34px; align-items:center; padding:120px 0 40px;
}
.auth-left{padding-right:28px}
.eyebrow{text-transform:uppercase; letter-spacing:.18em; font-size:.72rem; color:var(--soft)}
.auth-left h1,.auth-card h2{font-family:"Cormorant Garamond",serif; line-height:.96}
.auth-left h1{margin:14px 0 16px; font-size:clamp(3.2rem,6vw,5.6rem); max-width:10ch; color:var(--cream-2)}
.auth-copy{max-width:560px; color:var(--muted); line-height:1.9; font-size:1.03rem}
.auth-feature-list{margin-top:34px; display:grid; gap:18px; max-width:560px}
.auth-feature{
  display:flex; gap:14px; align-items:flex-start; padding:18px 20px;
  border:1px solid rgba(255,236,212,0.10); border-radius:22px;
  background:rgba(255,244,230,0.04); backdrop-filter:blur(12px);
}
.auth-feature__dot{
  width:10px; height:10px; border-radius:50%; margin-top:8px;
  background:linear-gradient(180deg,var(--bronze),var(--cream)); box-shadow:0 0 0 8px rgba(185,140,90,.10); flex:none;
}
.auth-feature strong{display:block; color:var(--cream-2); margin-bottom:6px}
.auth-feature p{margin:0; color:var(--muted); line-height:1.7}
.auth-card{
  border:1px solid rgba(255,236,212,0.12); border-radius:32px;
  background:linear-gradient(180deg, rgba(48,34,22,.70), rgba(17,12,8,.82));
  backdrop-filter:blur(22px) saturate(145%); box-shadow:var(--shadow); padding:28px;
}
.auth-card__top h2{margin:10px 0 8px; font-size:3rem; color:var(--cream-2)}
.auth-card__text{margin:0; color:var(--muted); line-height:1.8}
.social-row{margin-top:24px}
.social-btn,.secondary-btn,.primary-btn{
  width:100%; border:none; border-radius:18px; padding:16px 18px; font-weight:600; cursor:pointer;
  transition:transform .35s var(--ease), box-shadow .35s ease, background .35s ease;
}
.social-btn:hover,.secondary-btn:hover,.primary-btn:hover{transform:translateY(-2px)}
.social-btn{
  display:flex; align-items:center; justify-content:center; gap:12px; color:#24180f;
  background:linear-gradient(180deg, var(--cream-2) 0%, var(--cream) 100%); box-shadow:0 16px 42px rgba(234,216,191,.18);
}
.social-icon{width:22px; height:22px; display:inline-flex; align-items:center; justify-content:center}
.social-icon svg{width:20px; height:20px}
.divider{position:relative; margin:22px 0; text-align:center}
.divider::before{content:""; position:absolute; left:0; right:0; top:50%; height:1px; background:rgba(255,236,212,0.12)}
.divider span{position:relative; display:inline-block; padding:0 12px; background:linear-gradient(180deg, rgba(48,34,22,.70), rgba(17,12,8,.82)); color:var(--soft)}
.auth-toggle{display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-bottom:18px}
.toggle-btn{
  padding:12px 14px; border-radius:16px; border:1px solid rgba(255,236,212,0.10);
  background:rgba(255,244,230,0.04); color:var(--muted); cursor:pointer;
  transition:background .35s ease,border-color .35s ease,color .35s ease, transform .35s ease;
}
.toggle-btn:hover{transform:translateY(-1px)}
.toggle-btn.is-active{background:rgba(255,244,230,0.10); border-color:rgba(255,236,212,0.18); color:var(--cream-2)}
.auth-panel{display:none}
.auth-panel.is-active{display:block}
.auth-form{display:grid; gap:16px}
.field-grid{display:grid; grid-template-columns:1fr 1fr; gap:12px}
.field{display:grid; gap:8px}
.field span{color:var(--soft); font-size:.95rem}
.field input,.field select{
  width:100%; border-radius:16px; border:1px solid rgba(255,236,212,0.12);
  background:rgba(255,244,230,0.05); color:var(--cream-2); padding:14px 16px; outline:none;
}
.field input::placeholder{color:rgba(244,234,220,0.42)}
.phone-group{display:grid; grid-template-columns:110px 1fr; gap:10px}
.form-row{display:flex; justify-content:space-between; gap:14px; align-items:center}
.checkbox{display:flex; gap:10px; align-items:flex-start; color:var(--muted); font-size:.95rem}
.checkbox input{margin-top:3px}
.text-link,.auth-footer a{color:var(--cream)}
.secondary-btn{background:rgba(255,244,230,0.06); border:1px solid rgba(255,236,212,0.12); color:var(--cream-2)}
.primary-btn{color:#24180f; background:linear-gradient(180deg, #f5e9d7 0%, #e8d5ba 100%); box-shadow:0 18px 50px rgba(234,216,191,.24)}
.auth-footer{margin:22px 0 0; color:var(--muted); text-align:center}
@media (max-width: 1080px){
  .auth-shell{grid-template-columns:1fr; gap:24px}
  .auth-left{padding-right:0}
}
@media (max-width: 760px){
  .auth-header{top:12px; width:calc(100% - 16px); padding:12px 14px}
  .auth-shell{width:calc(100% - 24px); padding:110px 0 28px}
  .auth-card{padding:22px}
  .auth-left h1{max-width:none}
  .field-grid,.phone-group{grid-template-columns:1fr}
  .form-row{flex-direction:column; align-items:flex-start}
}

/* Portal page */
.portal-shell{
  grid-template-columns:minmax(0,1.08fr) minmax(420px,520px);
}
.portal-left h1{
  max-width:11ch;
}
.portal-feature-list{
  margin-top:28px;
}
.portal-card{
  padding:30px;
}
.portal-card__top{
  margin-bottom:18px;
}
.portal-grid{
  display:grid;
  gap:16px;
}
.portal-option{
  position:relative;
  display:grid;
  grid-template-columns:72px 1fr;
  gap:18px;
  padding:22px;
  border-radius:24px;
  border:1px solid rgba(255,236,212,0.12);
  background:rgba(255,244,230,0.045);
  transition:transform .35s var(--ease), border-color .35s ease, background .35s ease, box-shadow .35s ease;
  overflow:hidden;
}
.portal-option::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(120deg, rgba(255,255,255,0.02), transparent 45%, rgba(234,216,191,0.02));
  pointer-events:none;
}
.portal-option:hover{
  transform:translateY(-3px);
  border-color:rgba(255,236,212,0.22);
  background:rgba(255,244,230,0.075);
  box-shadow:0 18px 48px rgba(0,0,0,.20);
}
.portal-option__badge{
  position:absolute;
  top:14px;
  right:14px;
  padding:7px 10px;
  border-radius:999px;
  font-size:.74rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--cream-2);
  background:rgba(255,244,230,0.08);
  border:1px solid rgba(255,236,212,0.08);
}
.portal-option__icon{
  width:72px;
  height:72px;
  border-radius:22px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:2rem;
  background:linear-gradient(180deg, rgba(255,244,230,0.12), rgba(255,244,230,0.04));
  border:1px solid rgba(255,236,212,0.10);
}
.portal-option__body h3{
  margin:0 0 8px;
  font-family:"Cormorant Garamond",serif;
  font-size:2rem;
  color:var(--cream-2);
}
.portal-option__body p{
  margin:0 0 12px;
  color:var(--muted);
  line-height:1.7;
}
.portal-option__body ul{
  list-style:none;
  padding:0;
  margin:0;
  display:grid;
  gap:8px;
}
.portal-option__body li{
  color:var(--text);
  opacity:.88;
  position:relative;
  padding-left:18px;
}
.portal-option__body li::before{
  content:"";
  position:absolute;
  left:0;
  top:.56em;
  width:7px;
  height:7px;
  border-radius:50%;
  background:linear-gradient(180deg,var(--bronze),var(--cream));
}
.portal-option__cta{
  grid-column:2;
  display:inline-flex;
  align-items:center;
  gap:10px;
  margin-top:6px;
  color:var(--cream);
  font-weight:600;
}
.portal-option__cta::after{
  content:"→";
  transition:transform .35s ease;
}
.portal-option:hover .portal-option__cta::after{
  transform:translateX(4px);
}
.portal-option--user .portal-option__icon{
  box-shadow:0 10px 30px rgba(234,216,191,0.07);
}
.portal-option--admin .portal-option__icon{
  box-shadow:0 10px 30px rgba(185,140,90,0.10);
}
.portal-footer-links{
  margin-top:18px;
  text-align:center;
}
.portal-footer-links .text-link{
  color:var(--cream);
  opacity:.92;
}
@media (max-width: 1080px){
  .portal-shell{
    grid-template-columns:1fr;
  }
}
@media (max-width: 760px){
  .portal-card{
    padding:22px;
  }
  .portal-option{
    grid-template-columns:1fr;
    gap:14px;
    padding:20px;
  }
  .portal-option__badge{
    position:static;
    width:max-content;
    margin-bottom:4px;
  }
  .portal-option__icon,
  .portal-option__cta{
    grid-column:auto;
  }
  .portal-option__body h3{
    font-size:1.8rem;
  }
}


.auth-demo-note {
  display: grid;
  gap: 0.35rem;
  margin-top: 0.9rem;
  padding: 0.95rem 1rem;
  border-radius: 16px;
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.12);
  color: rgba(255,255,255,0.88);
  font-size: 0.92rem;
}

.auth-demo-note strong {
  color: #fff;
  font-size: 0.95rem;
}

.auth-demo-note code {
  padding: 0.16rem 0.42rem;
  border-radius: 999px;
  background: rgba(255,255,255,0.09);
  color: #fff;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
}

.recaptcha-container {
  min-height: 1px;
}
