/* Shared public authentication and account presentation. Request processing remains in each page. */
:root {
  --auth-ivory: #fffaf1;
  --auth-card: #fffdf8;
  --auth-maroon: #741629;
  --auth-maroon-dark: #54101f;
  --auth-gold: #c5964a;
  --auth-border: #eadbc1;
  --auth-muted: #725f55;
  --auth-danger: #9b2c35;
  --auth-success: #276749;
}

body.tam-shell.auth-page { background: var(--auth-ivory); color: #35251f; }
.tam-shell.auth-page .inner-page-hero {
  min-height: 206px;
  padding: 34px 0 30px;
  background: linear-gradient(180deg, #fffaf1 0%, #f8ecda 100%);
  border-bottom: 1px solid var(--auth-border);
  box-shadow: none;
  color: var(--auth-maroon);
}
.tam-shell.auth-page .inner-page-hero::before { display: none; }
.tam-shell.auth-page .inner-page-hero-overlay { display: none; }
.tam-shell.auth-page .inner-page-hero-content::before {
  width: 42px;
  height: 42px;
  margin-bottom: 5px;
  filter: none;
  opacity: .72;
}
.tam-shell.auth-page .inner-page-hero-title {
  color: var(--auth-maroon) !important;
  font-size: clamp(36px, 4vw, 46px) !important;
  text-shadow: none;
}
.tam-shell.auth-page .inner-page-hero-sub {
  color: var(--auth-muted) !important;
  font-size: 14px !important;
}
.tam-shell.auth-page .inner-page-breadcrumb { color: #8b6c4b !important; }
.tam-shell.auth-page .inner-page-breadcrumb a { color: var(--auth-maroon) !important; }

.auth-page:not(.auth-profile) > .container { width: min(calc(100% - 32px), 560px); max-width: 560px; margin-inline: auto; }
.auth-page > .container > .row { margin: 42px 0 !important; }
.auth-page > .container > .row > [class*="col-"] { width: 100%; padding: 0; }
.auth-page form {
  padding: 32px;
  border: 1px solid var(--auth-border);
  border-radius: 18px;
  background: var(--auth-card);
  box-shadow: 0 14px 34px rgba(91, 45, 20, .08);
}
.auth-page form > .mb-3:first-of-type { margin-top: 0; }
.auth-page .form-label { display: block; margin-bottom: 7px; color: #4a3028; font: 700 13px/1.4 var(--tam-font-body, Manrope, sans-serif); }
.auth-page .form-control {
  min-height: 50px;
  border: 1px solid #d9c6a8;
  border-radius: 10px;
  background: #fffefb;
  color: #35251f;
  font: 500 15px/1.4 var(--tam-font-body, Manrope, sans-serif);
  box-shadow: none;
}
.auth-page .form-control::placeholder { color: #a79587; }
.auth-page .form-control:focus {
  border-color: var(--auth-gold);
  box-shadow: 0 0 0 4px rgba(197, 150, 74, .18);
}
.auth-page .btn-primary,
.auth-page .btn-save-city {
  min-height: 50px;
  border: 1px solid var(--auth-maroon);
  border-radius: 10px;
  background: var(--auth-maroon);
  color: #fffdf8;
  font: 700 14px/1.2 var(--tam-font-body, Manrope, sans-serif);
  transition: background .18s ease, border-color .18s ease, transform .18s ease;
}
.auth-page .btn-primary:hover,
.auth-page .btn-save-city:hover { background: var(--auth-maroon-dark); border-color: var(--auth-maroon-dark); color: #fff; transform: translateY(-1px); }
.auth-page .btn-primary:focus-visible,
.auth-page .btn-save-city:focus-visible { outline: 3px solid rgba(197, 150, 74, .5); outline-offset: 3px; }
.auth-page a:not(.navbar-brand):not(.nav-link):not(.dropdown-item) { color: var(--auth-maroon); font-weight: 600; }
.auth-page a:not(.navbar-brand):not(.nav-link):not(.dropdown-item):hover { color: var(--auth-maroon-dark); }
.auth-page .btn-outline-secondary {
  min-height: 48px;
  border: 1px solid var(--auth-gold) !important;
  border-radius: 10px;
  color: var(--auth-maroon) !important;
  background: transparent;
}
.auth-page .btn-outline-secondary:hover { background: #fbf0df; }
.auth-page .auth-alt-login {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 50px;
  padding: 13px 18px;
  border: 1px solid #b48132;
  border-radius: 10px;
  background: #F2B83F;
  color: #68152A !important;
  font: 700 14px/1.2 var(--tam-font-body, Manrope, sans-serif);
  text-decoration: none;
  box-shadow: 0 7px 16px rgba(84, 16, 31, .16);
  transition: background .18s ease, border-color .18s ease, color .18s ease, box-shadow .18s ease, transform .18s ease;
}
.auth-page .auth-alt-login:hover { background: #E5A52A; border-color: #9b6a27; color: #68152A !important; box-shadow: 0 9px 20px rgba(84, 16, 31, .22); transform: translateY(-1px); }
.auth-page .auth-alt-login:focus-visible { outline: 3px solid #68152A; outline-offset: 3px; }
.auth-page .auth-alt-login:active { background: #D9921F; border-color: #8f5f20; color: #68152A !important; transform: translateY(0); box-shadow: 0 4px 10px rgba(84, 16, 31, .18); }
.auth-page .auth-alt-login-icon, .auth-page .auth-alt-login-arrow { flex: 0 0 auto; color: #68152A; }
.auth-page .auth-alt-login-arrow { margin-left: auto; }
.auth-page .alert {
  margin-bottom: 22px;
  border-radius: 10px;
  padding: 13px 16px;
  font: 600 13px/1.55 var(--tam-font-body, Manrope, sans-serif);
}
.auth-page .alert-danger { color: var(--auth-danger); background: #fff1f0; border-color: #efc4c1; }
.auth-page .alert-success { color: var(--auth-success); background: #eef8f0; border-color: #bfdfc4; }
.auth-page .alert-warning { color: #76521c; background: #fff8e7; border-color: #ecd28f; }
.auth-page .text-muted { color: var(--auth-muted) !important; }
.auth-page .otp-wrap { display:flex; gap:10px; justify-content:center; margin:24px 0 8px; }
.auth-page .otp-digit { width:50px; height:58px; text-align:center; font-size:24px; font-weight:700; border:2px solid #d0b87a; border-radius:8px; color:#3d2600; background:#fffdf7; outline:none; transition:border-color .15s, box-shadow .15s; }
.auth-page .otp-digit:focus { border-color:#c8a96e; box-shadow:0 0 0 3px rgba(200,169,110,0.25); }
.auth-page .otp-digit.filled { border-color:#3d2600; background:#f5ebe0; }
.auth-page .otp-sep { display:flex; align-items:center; color:#c8a96e; font-size:20px; font-weight:300; margin-top:4px; }
.auth-page .otp-timer { font-size:.85rem; color:#a08050; text-align:center; margin-bottom:20px; }
.auth-page .otp-timer span { font-weight:700; color:#3d2600; }
.auth-page .lwc-divider { display:flex; align-items:center; gap:12px; color:#b8a99d; font-size:.8rem; margin:20px 0; }
.auth-page .lwc-divider::before, .auth-page .lwc-divider::after { content:''; flex:1; border-top:1px solid var(--auth-border); }
.auth-page .pwd-strength { height:4px; border-radius:2px; background:#eee; margin-top:6px; overflow:hidden; }
.auth-page .pwd-strength-bar { height:100%; width:0; border-radius:2px; transition:width .25s, background .25s; }
.auth-page .pwd-strength-label { font-size:.78rem; margin-top:4px; }
.auth-page .pwd-toggle { position:absolute; right:12px; top:50%; transform:translateY(-50%); background:none; border:none; padding:0; cursor:pointer; color:#8d7769; }
.auth-page .pwd-toggle:hover { color:var(--auth-maroon); }
.auth-page .pwd-field-wrap { position:relative; }
.auth-page > .container.my-4 { width:min(calc(100% - 32px),560px); margin:42px auto !important; }
.auth-page > .container.my-4 .alert { padding:28px; text-align:center; box-shadow:0 14px 34px rgba(91,45,20,.08); }

.auth-profile > .container { width:min(calc(100% - 32px),1080px); margin-inline:auto; }
.auth-profile .pref-card { background:var(--auth-card); border:1px solid var(--auth-border); border-radius:18px; padding:24px 28px; margin-bottom:24px; box-shadow:0 12px 28px rgba(91,45,20,.06); }
.auth-profile .pref-card h3 { color:var(--auth-maroon); font:700 1rem/1.3 var(--tam-font-body, Manrope, sans-serif); }
.auth-profile .prof-tabs { border-bottom:2px solid var(--auth-border); margin-bottom:24px; }
.auth-profile .prof-tab { color:#8d7769; font:600 14px/1.3 var(--tam-font-body, Manrope, sans-serif); }
.auth-profile .prof-tab:hover, .auth-profile .prof-tab.active { color:var(--auth-maroon); }
.auth-profile .prof-tab.active { border-bottom-color:var(--auth-maroon); }
.auth-profile .prof-tab-count { background:#f0dfc1; color:var(--auth-maroon); }
.auth-profile .prof-tab.active .prof-tab-count { background:var(--auth-maroon); color:#fff; }
.auth-profile .prof-empty { color:#9b887b; }
.auth-profile .prof-empty a { background:var(--auth-maroon); border-radius:10px; }

@media (max-width: 767px) {
  .tam-shell.auth-page .inner-page-hero { min-height:180px; padding:24px 0 22px; }
  .tam-shell.auth-page .inner-page-hero-title { font-size:clamp(30px, 9vw, 36px) !important; }
  .auth-page > .container > .row { margin:28px 0 !important; }
  .auth-page form { padding:22px 18px; border-radius:14px; }
  .auth-page .otp-wrap { gap:6px; }
  .auth-page .otp-digit { width:43px; height:52px; font-size:21px; }
  .auth-profile .pref-card { padding:20px 18px; }
  .auth-profile .prof-tabs { overflow-x:auto; }
  .auth-profile .prof-tab { flex:0 0 auto; padding-inline:12px; }
}
@media (max-width: 390px) {
  .auth-page > .container, .auth-page > .container.my-4 { width:calc(100% - 24px); }
  .auth-page .otp-digit { width:38px; height:48px; }
  .auth-page .otp-sep { font-size:16px; }
}
