/* TAXPOLIS PORTAL AUTH UI — brand #078EF1
   Use wrapper classes: .auth-page, .auth-layout, .auth-visual/.auth-intro/.auth-left, .auth-card
*/
:root {
  --tp-primary:#078EF1; --tp-primary-hover:#0676D8; --tp-primary-soft:#EFF7FF;
  --tp-ink:#172334; --tp-muted:#66758A; --tp-border:#DCE5EF;
  --tp-surface:#FFFFFF; --tp-page:#F5F8FC; --tp-radius:18px;
  --tp-shadow:0 18px 55px rgba(22,50,84,.10);
}
.auth-page {
  min-height:100vh; color:var(--tp-ink);
  background:radial-gradient(circle at 8% 12%,rgba(7,142,241,.08),transparent 30%),linear-gradient(135deg,#F8FBFF 0%,#F1F6FC 100%);
  font-family:Inter,Poppins,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
.auth-page *, .auth-page *::before, .auth-page *::after { box-sizing:border-box; }
.auth-page a { color:var(--tp-primary); text-decoration:none; }
.auth-page a:hover { color:var(--tp-primary-hover); }
.auth-layout {
  width:min(1240px,calc(100% - 48px)); min-height:calc(100vh - 32px);
  margin:16px auto; display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(400px,.95fr);
  align-items:stretch; gap:clamp(28px,5vw,76px);
}
.auth-visual, .auth-intro, .auth-left {
  position:relative; display:flex; flex-direction:column; justify-content:center;
  min-width:0; padding:clamp(28px,4vw,62px) 0;
}
.auth-brand {
  display:inline-flex; align-items:center; gap:12px; margin-bottom:38px;
  color:var(--tp-ink); font-size:1.1rem; font-weight:800; letter-spacing:-.03em;
}
.auth-brand img { display:block; width:min(190px,100%); height:auto; object-fit:contain; }
.auth-eyebrow {
  display:inline-flex; align-items:center; gap:8px; width:fit-content;
  margin:0 0 18px; padding:8px 12px; border:1px solid #D6EBFF;
  border-radius:999px; color:var(--tp-primary-hover); background:rgba(239,247,255,.9);
  font-size:.78rem; font-weight:750; letter-spacing:.08em; text-transform:uppercase;
}
.auth-visual h1, .auth-intro h1, .auth-left h1 {
  max-width:650px; margin:0 0 20px; color:#142033;
  font-size:clamp(2.2rem,4vw,3.65rem); font-weight:750; letter-spacing:-.055em; line-height:1.08;
}
.auth-visual h1 .accent, .auth-intro h1 .accent, .auth-left h1 .accent { color:var(--tp-primary); }
.auth-visual p, .auth-intro p, .auth-left p {
  max-width:560px; margin:0 0 20px; color:var(--tp-muted);
  font-size:clamp(.98rem,1.2vw,1.12rem); line-height:1.8;
}
.auth-benefits, .auth-feature-list, .auth-visual ul, .auth-intro ul, .auth-left ul {
  display:grid; gap:14px; margin:18px 0 0; padding:0; list-style:none;
}
.auth-benefits li, .auth-feature-list li, .auth-visual ul li, .auth-intro ul li, .auth-left ul li {
  display:flex; align-items:flex-start; gap:11px; color:#334155; font-size:.96rem; line-height:1.55;
}
.auth-benefits li::before, .auth-feature-list li::before, .auth-visual ul li::before, .auth-intro ul li::before, .auth-left ul li::before {
  content:"✓"; flex:0 0 23px; display:inline-flex; align-items:center; justify-content:center;
  width:23px; height:23px; border-radius:50%; color:#fff; background:var(--tp-primary); font-size:.78rem; font-weight:800;
}
.auth-illustration {
  display:block; width:min(100%,500px); max-height:360px; margin:30px auto 0;
  object-fit:contain; filter:drop-shadow(0 18px 24px rgba(23,73,120,.10));
}
.auth-card {
  align-self:center; width:100%; min-width:0; padding:clamp(26px,3.4vw,46px);
  border:1px solid rgba(220,229,239,.9); border-radius:var(--tp-radius);
  background:var(--tp-surface); box-shadow:var(--tp-shadow);
}
.auth-card h2 { margin:0 0 9px; color:#142033; font-size:clamp(1.65rem,2.4vw,2.15rem); font-weight:750; letter-spacing:-.04em; line-height:1.2; }
.auth-card .auth-subtitle, .auth-card > p { margin:0 0 26px; color:var(--tp-muted); font-size:.98rem; line-height:1.65; }
.auth-card form { display:flex; flex-direction:column; gap:0; }
.auth-card label { display:block; margin:0 0 8px; color:#273548; font-size:.78rem; font-weight:750; letter-spacing:.045em; text-transform:uppercase; }
.auth-card input:not([type="checkbox"]):not([type="radio"]), .auth-card select, .auth-card textarea {
  display:block; width:100%; min-height:54px; margin:0 0 20px; padding:13px 15px;
  border:1px solid var(--tp-border); border-radius:10px; outline:none; color:#172334;
  background:#fff; font:inherit; font-size:.98rem;
  transition:border-color .2s ease,box-shadow .2s ease,background .2s ease;
}
.auth-card input::placeholder, .auth-card textarea::placeholder { color:#98A4B4; }
.auth-card input:focus, .auth-card select:focus, .auth-card textarea:focus {
  border-color:var(--tp-primary); box-shadow:0 0 0 4px rgba(7,142,241,.12);
}
.auth-card button[type="submit"], .auth-submit {
  display:inline-flex; align-items:center; justify-content:center; width:100%; min-height:54px;
  margin-top:5px; padding:14px 20px; border:1px solid var(--tp-primary); border-radius:10px;
  color:#fff; background:linear-gradient(135deg,#078EF1 0%,#087DE0 100%);
  box-shadow:0 8px 18px rgba(7,142,241,.20); font:inherit; font-size:1rem; font-weight:750; cursor:pointer;
  transition:transform .2s ease,box-shadow .2s ease,background .2s ease;
}
.auth-card button[type="submit"]:hover, .auth-submit:hover {
  transform:translateY(-1px); background:var(--tp-primary-hover); box-shadow:0 11px 22px rgba(7,142,241,.26);
}
.auth-card button[type="submit"]:focus-visible, .auth-submit:focus-visible { outline:3px solid rgba(7,142,241,.3); outline-offset:3px; }
.auth-footer, .auth-card .auth-footer { margin:22px 0 0; color:var(--tp-muted); font-size:.92rem; line-height:1.6; text-align:center; }
.auth-footer a, .auth-card .auth-footer a { color:var(--tp-primary-hover); font-weight:750; }
.auth-note, .auth-alert {
  margin:0 0 18px; padding:12px 14px; border:1px solid #D6EBFF; border-radius:10px;
  color:#17558B; background:var(--tp-primary-soft); font-size:.9rem; line-height:1.55;
}
.auth-alert.error { color:#9F2730; background:#FFF1F2; border-color:#F8CDD1; }
.auth-alert.success { color:#17643B; background:#ECFDF3; border-color:#B7E8C8; }
.password-field { position:relative; width:100%; margin:0 0 20px; }
.auth-card .password-field input { width:100%; margin:0; padding-right:54px; }
.password-toggle {
  position:absolute; top:50%; right:9px; z-index:2; transform:translateY(-50%);
  display:inline-flex; align-items:center; justify-content:center; width:36px; height:36px;
  padding:7px; border:0; border-radius:8px; color:var(--tp-primary); background:transparent; cursor:pointer;
}
.password-toggle:hover { background:var(--tp-primary-soft); }
.password-toggle:focus-visible { outline:2px solid var(--tp-primary); outline-offset:2px; }
.password-toggle svg { width:21px; height:21px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.auth-links { display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; margin:-4px 0 18px; font-size:.9rem; }
.auth-links a { color:var(--tp-primary-hover); font-weight:650; }

@media (max-width:900px) {
  .auth-layout { width:min(680px,calc(100% - 32px)); min-height:auto; margin:16px auto 28px; grid-template-columns:minmax(0,1fr); gap:24px; }
  .auth-visual, .auth-intro, .auth-left { padding:24px 4px 0; }
  .auth-brand { margin-bottom:22px; }
  .auth-visual h1, .auth-intro h1, .auth-left h1 { max-width:100%; font-size:clamp(2rem,6vw,3rem); }
  .auth-illustration { max-height:250px; margin-top:16px; }
  .auth-card { align-self:auto; padding:clamp(24px,5vw,38px); }
}
@media (max-width:560px) {
  .auth-layout { width:100%; margin:0; padding:18px 14px 28px; gap:18px; }
  .auth-visual, .auth-intro, .auth-left { padding:12px 4px 0; }
  .auth-brand { margin-bottom:18px; }
  .auth-brand img { width:150px; }
  .auth-eyebrow { margin-bottom:13px; font-size:.7rem; }
  .auth-visual h1, .auth-intro h1, .auth-left h1 { margin-bottom:13px; font-size:clamp(1.8rem,8vw,2.45rem); line-height:1.12; }
  .auth-visual p, .auth-intro p, .auth-left p { font-size:.94rem; line-height:1.65; }
  .auth-benefits, .auth-feature-list, .auth-visual ul, .auth-intro ul, .auth-left ul { gap:10px; margin-top:12px; }
  .auth-benefits li, .auth-feature-list li, .auth-visual ul li, .auth-intro ul li, .auth-left ul li { font-size:.9rem; }
  .auth-illustration { max-height:180px; }
  .auth-card { padding:23px 19px; border-radius:15px; box-shadow:0 10px 32px rgba(22,50,84,.08); }
  .auth-card h2 { font-size:1.65rem; }
  .auth-card .auth-subtitle, .auth-card > p { margin-bottom:22px; font-size:.92rem; }
  .auth-card input:not([type="checkbox"]):not([type="radio"]), .auth-card select, .auth-card textarea { min-height:51px; margin-bottom:17px; font-size:16px; }
  .password-field { margin-bottom:17px; }
  .auth-card .password-field input { margin-bottom:0; }
  .auth-card button[type="submit"], .auth-submit { min-height:52px; }
}
@media (prefers-reduced-motion:reduce) {
  .auth-page *, .auth-page *::before, .auth-page *::after { transition-duration:.01ms!important; animation-duration:.01ms!important; scroll-behavior:auto!important; }
}
