:root{
    --white:#FFFFFF;
    --ink:#141414;
    --ink-soft:#5E5E5E;
    --rule:#E3E3E3;
    --orange:#ED7D26;
    --orange-deep:#C25A10;
    --tint:#FDF6F0;
    --radius:2px;
  }

  *{box-sizing:border-box;}
  html,body{margin:0;padding:0;}
  body{
    background:var(--white);
    color:var(--ink);
    font-family:"Lato", system-ui, -apple-system, "Segoe UI", sans-serif;
    font-size:15px;
    line-height:1.55;
    -webkit-font-smoothing:antialiased;
    display:flex;
    justify-content:center;
    padding:70px 20px 48px;
    min-height:100vh;
  }

  .portal{width:100%;max-width:520px;}
  .column{max-width:400px;margin:0 auto;}

  /* Logo */
  .brand{text-align:center;margin-bottom:32px;}
  .brand img{width:310px;max-width:100%;height:auto;display:inline-block;}
  .brand .placeholder{
    display:inline-flex;align-items:center;justify-content:center;
    width:230px;height:60px;border:1px dashed var(--rule);
    color:var(--ink-soft);font-size:12px;border-radius:var(--radius);
  }

  /* Intro copy */
  .intro{
    font-family:"Lora", Georgia, serif;
    text-align:center;
    color:#3D3D3D;
    font-size:15.5px;
    line-height:1.7;
    margin:0 auto 16px;
    max-width:500px;
    text-wrap:pretty;
  }

  .intro-cta{
    font-family:"Lora", Georgia, serif;
    font-size:15.5px;
    font-weight:400;
    color:var(--ink);
    margin-bottom:34px;
  }

  /* Tabs */
  .tabs{
    position:relative;
    display:grid;
    grid-template-columns:1fr 1fr;
    border-bottom:1px solid var(--rule);
    margin-bottom:30px;
  }
  .tab{
    appearance:none;background:none;border:0;
    font:inherit;font-size:14px;font-weight:700;
    color:var(--ink-soft);
    padding:10px 4px 14px;
    cursor:pointer;
    transition:color .18s ease;
  }
  .tab:hover{color:var(--ink);}
  .tab[aria-selected="true"]{color:var(--ink);}
  .tab:focus-visible{outline:2px solid var(--orange-deep);outline-offset:2px;border-radius:var(--radius);}
  .rail{
    position:absolute;bottom:-1px;left:0;
    width:50%;height:2px;background:var(--orange);
    transition:transform .26s cubic-bezier(.4,0,.2,1);
  }
  .tabs[data-active="login"] .rail{transform:translateX(100%);}

  /* Form */
  form{display:none;}
  form.active{display:block;}
  .field{margin-bottom:18px;}
  label{
    display:block;
    font-size:13px;
    font-weight:700;
    margin-bottom:6px;
    color:var(--ink);
  }
  input[type=text],input[type=email],input[type=password],input[type=tel]{
    width:100%;
    background:var(--white);
    border:1px solid var(--rule);
    border-radius:var(--radius);
    padding:11px 12px;
    font:inherit;
    font-size:14.5px;
    color:var(--ink);
    transition:border-color .15s ease, box-shadow .15s ease;
  }
  input::placeholder{color:#A3A3A3;}
  input:focus{
    outline:none;
    border-color:var(--orange);
    box-shadow:0 0 0 3px rgba(237,125,38,.18);
  }
  select{
    width:100%;
    background:var(--white);
    border:1px solid var(--rule);
    border-radius:var(--radius);
    padding:11px 34px 11px 12px;
    font:inherit;
    font-size:14.5px;
    color:var(--ink);
    appearance:none;
    background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path d='M1 1l5 5 5-5' fill='none' stroke='%235E5E5E' stroke-width='1.6'/></svg>");
    background-repeat:no-repeat;
    background-position:right 12px center;
    transition:border-color .15s ease, box-shadow .15s ease;
  }
  select:focus{outline:none;border-color:var(--orange);box-shadow:0 0 0 3px rgba(237,125,38,.18);}

  .hint{font-size:12.5px;color:var(--ink-soft);margin-top:6px;}

  .two{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
  .two.narrow-first{grid-template-columns:92px 1fr;}
  .two.zip-city{grid-template-columns:110px 1fr;}
  .two > .field{margin-bottom:18px;}

  .remember{display:flex;gap:9px;align-items:center;margin:2px 0 22px;}
  .remember input{margin:0;accent-color:var(--orange);width:15px;height:15px;flex:none;}
  .remember label{font-size:13px;font-weight:400;color:var(--ink-soft);margin:0;cursor:pointer;}

  .reset-view{display:none;}
  .reset-view.active{display:block;}
  .hidden{display:none !important;}
  .reset-lead{
    font-family:"Lora", Georgia, serif;
    font-size:14.5px;
    line-height:1.65;
    color:#3D3D3D;
    margin:0 0 22px;
  }
  .back{display:block;text-align:center;margin-top:18px;font-size:13px;}

  .alert{
    display:none;
    border:1px solid #E6C3BC;
    background:#FCF3F1;
    color:#8C2F27;
    border-radius:var(--radius);
    padding:10px 12px;
    font-size:13.5px;
    line-height:1.5;
    margin-bottom:18px;
  }
  .alert.show{display:block;}
  input.invalid{border-color:#C4675C;}
  input.invalid:focus{box-shadow:0 0 0 3px rgba(196,103,92,.18);}

  .row-between{display:flex;justify-content:space-between;align-items:baseline;gap:12px;}

  button.submit{
    width:100%;
    background:var(--ink);
    color:#fff;
    border:0;
    border-radius:var(--radius);
    padding:13px 16px;
    font:inherit;
    font-size:14.5px;
    font-weight:700;
    letter-spacing:.01em;
    cursor:pointer;
    transition:background .16s ease;
  }
  button.submit:hover{background:var(--orange);}
  button.submit:focus-visible{outline:2px solid var(--orange-deep);outline-offset:2px;}

  a{color:var(--orange-deep);text-decoration:none;}
  a:hover{text-decoration:underline;}
  a:focus-visible{outline:2px solid var(--orange-deep);outline-offset:2px;border-radius:2px;}
  .link-small{font-size:13px;}

/* Success panel */
  .done{
    background:var(--tint);
    border:1px solid #F1DDCB;
    border-radius:var(--radius);
    padding:38px 30px 30px;
    margin-top:8px;
    text-align:center;
  }
  .done .mark{
    width:46px;height:46px;
    margin:0 auto 20px;
    border-radius:50%;
    background:#2E8B57;
    display:flex;align-items:center;justify-content:center;
  }
  .done .mark svg{display:block;}
  .done h2{
    font-family:"Lora", Georgia, serif;
    font-size:20px;
    font-weight:500;
    line-height:1.35;
    margin:0 0 26px;
    color:var(--ink);
  }
  .done .steps{
    list-style:none;
    margin:0 auto;
    padding:0;
    max-width:330px;
    text-align:left;
  }
  .done .steps li{
    display:flex;
    gap:12px;
    align-items:flex-start;
    font-size:14px;
    line-height:1.55;
    color:#3D3D3D;
    padding-bottom:16px;
  }
  .done .steps li:last-child{padding-bottom:0;}

  .done .steps li span{
    flex:none;
    width:22px;height:22px;
    border-radius:50%;
    background:var(--white);
    border:1px solid #E7CDB4;
    color:var(--orange-deep);
    font-size:12px;
    font-weight:700;
    display:flex;align-items:center;justify-content:center;
    margin-top:1px;
  }
  .done .done-foot{
    margin:26px 0 0;
    padding-top:18px;
    border-top:1px solid #EEDFD0;
    font-size:13px;
    color:var(--ink-soft);
  }

  .foot{
    margin:40px auto 0;
    padding-top:18px;
    border-top:1px solid var(--rule);
    max-width:340px;
    font-size:13px;
    color:var(--ink-soft);
    text-align:center;
    line-height:1.9;
    text-wrap:balance;
  }
  .foot a{color:var(--orange-deep);text-decoration:none;white-space:nowrap;}
  .foot a:hover{text-decoration:underline;}

  @media (prefers-reduced-motion:reduce){ *{transition:none !important;} }
  @media (max-width:420px){ body{padding:44px 18px 32px;} }