:root {
  --account-ink: #13221a;
  --account-muted: #5c6b62;
  --account-green: #0b6b35;
  --account-green-dark: #064723;
  --account-mint: #eaf6ef;
  --account-line: #d8e2dc;
  --account-paper: #f5f7f5;
  --account-white: #fff;
  --account-danger: #a3332a;
  --account-radius: 18px;
  --account-shadow: 0 20px 55px rgba(17, 43, 29, .1);
}

* { box-sizing: border-box; }

html { color-scheme: light; }

body {
  margin: 0;
  background:
    radial-gradient(circle at 10% 8%, rgba(41, 153, 86, .12), transparent 30rem),
    var(--account-paper);
  color: var(--account-ink);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  line-height: 1.55;
}

a { color: var(--account-green); }

:focus-visible {
  outline: 3px solid rgba(11, 107, 53, .35);
  outline-offset: 3px;
}

.account-topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  min-height: 76px;
  padding: .8rem clamp(1rem, 4vw, 4rem);
  background: rgba(255, 255, 255, .9);
  border-bottom: 1px solid var(--account-line);
  backdrop-filter: blur(12px);
}

.account-topbar__brand {
  display: inline-flex;
  align-items: center;
  gap: .7rem;
  color: var(--account-green-dark);
  font-weight: 800;
  text-decoration: none;
}

.account-topbar__brand img { width: 46px; height: 46px; }

.account-topbar nav { display: flex; gap: 1.2rem; }
.account-topbar nav a { color: var(--account-ink); font-weight: 650; text-decoration: none; }
.account-topbar nav a:hover { color: var(--account-green); }
.agreement-document{margin-top:24px;line-height:1.65}.agreement-document h3{margin:28px 0 8px;color:var(--account-green)}.agreement-prewrap{white-space:pre-wrap}.agreement-table-wrap{overflow:auto}.agreement-price-table{width:100%;border-collapse:collapse;min-width:650px}.agreement-price-table th,.agreement-price-table td{padding:11px;border-bottom:1px solid rgba(80,170,120,.2);text-align:left}.agreement-totals{margin-left:auto;width:min(100%,430px);display:grid;grid-template-columns:1fr auto;gap:7px 20px}.agreement-totals dt,.agreement-totals dd{margin:0}.agreement-consumer{padding:16px;border:1px solid rgba(255,179,92,.35);border-radius:14px;background:rgba(255,179,92,.07)}.agreement-acceptance{padding:16px;border:1px solid rgba(80,220,140,.35);border-radius:14px;background:rgba(80,220,140,.07)}.agreement-hash{font-size:.75rem;overflow-wrap:anywhere;opacity:.7}.agreement-check{display:flex!important;gap:10px;align-items:flex-start}.agreement-check input{width:auto!important;margin-top:5px}.agreement-response{margin-top:24px}

.account-main {
  display: grid;
  place-items: start center;
  min-height: calc(100vh - 230px);
  padding: clamp(2rem, 6vw, 5rem) 1rem;
}

.account-shell {
  width: min(100%, 680px);
  padding: clamp(1.3rem, 4vw, 2.7rem);
  background: var(--account-white);
  border: 1px solid var(--account-line);
  border-radius: 26px;
  box-shadow: var(--account-shadow);
}

.account-shell--wide { width: min(100%, 960px); }
.account-dashboard .account-shell { width: min(100%, 960px); }

.account-heading { margin-bottom: 1.8rem; }
.account-heading h1 { margin: .25rem 0 .7rem; color: var(--account-green-dark); font-size: clamp(2rem, 6vw, 3rem); line-height: 1.05; }
.account-heading > p:last-child { margin: 0; color: var(--account-muted); font-size: 1.05rem; }

.account-eyebrow {
  margin: 0;
  color: var(--account-green);
  font-size: .75rem;
  font-weight: 850;
  letter-spacing: .13em;
  text-transform: uppercase;
}

.account-form { display: grid; gap: 1.1rem; }
.account-form-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.account-field { display: grid; gap: .38rem; }
.account-field label, .account-fieldset legend { font-weight: 750; }
.account-hint { margin: 0; color: var(--account-muted); font-size: .86rem; }
.account-hint--valid { color: var(--account-green); }
.account-hint--invalid { color: var(--account-danger); }

.account-input-wrap { position: relative; }
.account-input-wrap input { padding-right: 5.5rem; }

.account-field input,
.account-field select,
.account-field textarea {
  width: 100%;
  min-height: 49px;
  padding: .75rem .9rem;
  color: var(--account-ink);
  background: #fff;
  border: 1px solid #bfcac3;
  border-radius: 10px;
  font: inherit;
}
.account-field textarea { min-height: 110px; resize: vertical; }

.account-field input:hover { border-color: #8ba092; }
.account-field input:focus { border-color: var(--account-green); box-shadow: 0 0 0 3px rgba(11, 107, 53, .12); outline: 0; }
.account-field input[aria-invalid="true"] { border-color: var(--account-danger); }

.password-toggle {
  position: absolute;
  top: 50%;
  right: .55rem;
  translate: 0 -50%;
  padding: .38rem .5rem;
  color: var(--account-green-dark);
  background: transparent;
  border: 0;
  border-radius: 6px;
  cursor: pointer;
  font-weight: 700;
}

.password-meter { height: 6px; overflow: hidden; background: #e5eae7; border-radius: 999px; }
.password-meter span { display: block; width: 0; height: 100%; background: var(--account-danger); transition: width .2s, background .2s; }
.password-meter[data-score="2"] span { background: #bd7227; }
.password-meter[data-score="3"] span, .password-meter[data-score="4"] span { background: var(--account-green); }

.password-requirements {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .35rem .8rem;
  margin: .1rem 0 0;
  padding: 0;
  color: var(--account-muted);
  font-size: .82rem;
  list-style: none;
}

.password-requirements li::before {
  content: "○";
  display: inline-block;
  width: 1.2rem;
  color: var(--account-danger);
  font-weight: 900;
}

.password-requirements li[data-met="true"] { color: var(--account-green); }
.password-requirements li[data-met="true"]::before { content: "✓"; color: var(--account-green); }

.account-check { display: flex; align-items: flex-start; gap: .65rem; color: #3f4d45; }
.account-check input { width: 1.05rem; height: 1.05rem; margin-top: .25rem; accent-color: var(--account-green); flex: 0 0 auto; }

.account-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 50px;
  padding: .75rem 1.2rem;
  color: #fff;
  background: var(--account-green);
  border: 1px solid var(--account-green);
  border-radius: 999px;
  cursor: pointer;
  font: inherit;
  font-weight: 800;
  text-decoration: none;
}

.account-button:hover { background: var(--account-green-dark); border-color: var(--account-green-dark); }
.account-button--secondary { color: var(--account-green-dark); background: #fff; }
.account-button--danger { background: var(--account-danger); border-color: var(--account-danger); }
.account-button[disabled] { cursor: wait; opacity: .7; }

.account-actions { display: flex; flex-wrap: wrap; gap: .75rem; align-items: center; }
.account-link-row { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .8rem; margin-top: .4rem; }
.account-link-row a { font-weight: 700; }

.account-alert { margin: 0 0 1.2rem; padding: .9rem 1rem; border-radius: 12px; border: 1px solid; }
.account-alert--success { color: #07592c; background: #e8f7ee; border-color: #a8d6b9; }
.account-alert--error { color: #7f261f; background: #fff0ee; border-color: #e3b0aa; }
.account-alert--info { color: #315243; background: #eef6f1; border-color: #c6dacf; }

.account-divider { height: 1px; margin: 1.5rem 0; background: var(--account-line); border: 0; }
.account-note { padding: 1rem; color: #405249; background: var(--account-mint); border-radius: 12px; }
.account-note p:last-child { margin-bottom: 0; }

.account-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.account-card { padding: 1.3rem; background: #fbfcfb; border: 1px solid var(--account-line); border-radius: var(--account-radius); }
.account-card h2, .account-card h3 { margin-top: 0; color: var(--account-green-dark); }
.account-card p { color: var(--account-muted); }
.account-meta { display: grid; grid-template-columns: auto 1fr; gap: .45rem .9rem; margin: 0; }
.account-meta dt { color: var(--account-muted); }
.account-meta dd { margin: 0; font-weight: 700; overflow-wrap: anywhere; }
.account-document-table { overflow: auto; border: 1px solid var(--account-line); border-radius: 14px; }
.account-document-table table { width: 100%; min-width: 620px; border-collapse: collapse; }
.account-document-table th, .account-document-table td { padding: .8rem; text-align: left; border-bottom: 1px solid var(--account-line); }
.account-document-table th { color: var(--account-muted); background: var(--account-mint); font-size: .82rem; }
.account-document-totals { display: grid; grid-template-columns: 1fr auto; gap: .4rem 2rem; width: min(100%, 360px); margin: 1rem 0 0 auto; }
.account-document-totals dt { color: var(--account-muted); }
.account-document-totals dd { margin: 0; font-weight: 800; text-align: right; }
.account-document-totals dt:last-of-type, .account-document-totals dd:last-of-type { padding-top: .5rem; border-top: 1px solid var(--account-line); color: var(--account-green-dark); font-size: 1.1rem; }

.account-footer { padding: 1.8rem 1rem 2.5rem; text-align: center; color: var(--account-muted); }
.account-footer a { display: inline-block; margin: .25rem .6rem; }
.account-footer p { margin: .8rem 0 0; font-size: .85rem; }

.cf-turnstile { min-height: 65px; }

@media (max-width: 680px) {
  .account-topbar { align-items: flex-start; }
  .account-topbar__brand span { display: none; }
  .account-topbar nav { flex-direction: column; align-items: flex-end; gap: .35rem; font-size: .9rem; }
  .account-grid, .account-form-row { grid-template-columns: 1fr; }
  .password-requirements { grid-template-columns: 1fr; }
  .account-shell { border-radius: 18px; }
}
