/* The account page's own styles; tokens, body, header and footer come from /site.css. */
.hero { padding: 3.2rem 0 1.6rem; }
.eyebrow { margin: 0 0 .5rem; color: var(--muted); font-size: .82rem; font-weight: 600;
           letter-spacing: .05em; text-transform: uppercase; }
.account-nav { display: flex; flex-wrap: wrap; gap: .4rem; padding-bottom: 1.1rem;
               margin-bottom: 1.4rem; border-bottom: 1px solid var(--line); }
.account-nav a { padding: .65rem 1rem; border-radius: 10px; text-decoration: none;
                 color: var(--muted); font-size: .95rem; font-weight: 600; }
.account-nav a:hover { color: var(--link); background: color-mix(in srgb, var(--accent) 6%, transparent); }
.account-nav a[aria-current] { color: var(--link); background: color-mix(in srgb, var(--accent) 12%, transparent); }
#address, #security, #contact { scroll-margin-top: 1.5rem; }
h1 { margin: 0 0 .6rem; font-size: clamp(2.15rem, 1.4rem + 2.8vw, 3rem);
     line-height: 1.03; letter-spacing: -.038em; font-weight: 700; }
.lead { margin: 0; font-size: 1.16rem; line-height: 1.45; color: var(--muted); max-width: 56ch; }
h2 { margin: 0; font-size: 1.16rem; letter-spacing: -.018em; }
h3 { margin: 0 0 .15rem; font-size: .97rem; letter-spacing: -.01em; }
p { margin: 0 0 .9rem; }
p:last-child { margin-bottom: 0; }

.card { padding: 1.4rem 1.4rem 1.35rem; margin: 0 0 1.15rem;
        border: 1px solid var(--line); border-radius: 16px;
        background: var(--surface); box-shadow: var(--shadow); }
.card.approval { border-color: color-mix(in srgb, var(--accent) 60%, var(--line)); }
.card-head { display: flex; align-items: center; justify-content: space-between; gap: .7rem; margin-bottom: .9rem; }
.card-head h2 { margin: 0; }
.card > h2 { margin-bottom: .9rem; }

button, .button, input, textarea { font: inherit; }
button, .button {
  display: inline-flex; align-items: center; justify-content: center; text-decoration: none;
  font-weight: 600; font-size: .97rem; line-height: 1.3; cursor: pointer;
  padding: .62rem 1.05rem; border-radius: 10px;
  background: transparent; color: var(--link);
  border: 1px solid color-mix(in srgb, var(--accent) 45%, var(--line));
  transition: background-color .15s ease;
}
button:hover:not(:disabled), a.button:hover { background: color-mix(in srgb, var(--accent) 10%, transparent); }
.primary { background: var(--accent); border-color: transparent; color: #fff; }
.primary:hover:not(:disabled), a.primary:hover { background: color-mix(in srgb, var(--accent) 86%, #000); }
.quiet { background: transparent; border-color: transparent; padding: .45rem .6rem; }
.danger { color: var(--danger); border-color: color-mix(in srgb, var(--danger) 45%, var(--line)); }
.danger:hover:not(:disabled) { background: color-mix(in srgb, var(--danger) 10%, transparent); }
button:disabled { opacity: .45; cursor: default; }

/* The Google and Apple sign-in buttons carry each vendor's own button spec:
   their fill, border, logo, logo size and wording are fixed by the brand
   guidelines, and only the corner radius follows the rest of the site. */
.provider-actions { display: grid; gap: .6rem; max-width: 22.5rem; margin: 1.1rem 0 .9rem; }
.provider-button {
  display: flex; align-items: center; justify-content: center; gap: .7rem;
  min-height: 2.75rem; padding: .6rem 1.1rem; border-radius: 10px;
  font-size: 1rem; font-weight: 500; letter-spacing: -.005em;
  text-decoration: none; cursor: pointer;
  transition: background-color .15s ease, box-shadow .15s ease;
}
.provider-mark { display: flex; flex: none; }
.provider-mark svg { display: block; }
.provider-google { background: #fff; color: #1f1f1f; border: 1px solid #747775; }
.provider-google:hover { background: #f4f4f5; box-shadow: 0 1px 2px rgba(60, 64, 67, .18); }
.provider-apple { background: #000; color: #fff; border: 1px solid #000; }
.provider-apple:hover { background: #1b1b1d; }
.provider-apple .provider-mark { margin-top: -1px; }
.provider-apple .provider-mark svg { width: 18px; height: 18px; }

/* Linking the second provider is a secondary action, so it keeps the page's
   own button and only carries the vendor mark. */
.provider-link { gap: .5rem; }
.provider-link .provider-mark svg { width: 16px; height: 16px; }
.provider-link.apple .provider-mark { color: var(--ink); margin-top: -2px; }

.actions { display: flex; flex-wrap: wrap; gap: .6rem; align-items: center; margin: .8rem 0; }
.actions:last-child { margin-bottom: 0; }
.hint { font-size: .9rem; color: var(--muted); }
label { display: block; font-size: .9rem; font-weight: 600; margin-bottom: .45rem; }
input, textarea { background: var(--surface); color: var(--ink); border: 1px solid var(--line);
                  border-radius: 10px; padding: .6rem .75rem; min-width: 0; max-width: 100%; }
input:focus-visible, textarea:focus-visible { outline-offset: 0; border-color: var(--link); }
textarea { display: block; width: 100%; resize: vertical; line-height: 1.5; }
.field { margin-bottom: .9rem; }
.field input { width: 100%; }
#contact-status { margin: 1.1rem 0 0; }
.name-input { display: flex; align-items: center; gap: .5rem; }
.name-input input { width: 11rem; }
.name-input span { font-size: .95rem; color: var(--muted); font-weight: 500; }
form { margin-top: 1.1rem; }

.notice { padding: .85rem 1.1rem; margin-bottom: 1.15rem; border-radius: 12px;
          background: color-mix(in srgb, var(--accent) 9%, transparent);
          border: 1px solid color-mix(in srgb, var(--accent) 30%, var(--line)); }
.notice.error { color: var(--danger);
                background: color-mix(in srgb, var(--danger) 8%, transparent);
                border-color: color-mix(in srgb, var(--danger) 35%, var(--line)); }
#loading { color: var(--muted); }

.account-bar { display: flex; gap: 1rem; justify-content: space-between; align-items: center;
               margin-bottom: 1.15rem; }
.account-bar strong { display: block; font-size: 1.05rem; letter-spacing: -.012em; }
.account-bar span { display: block; color: var(--muted); font-size: .9rem; }

.address { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem;
           padding: 1.05rem 0 0; border-top: 1px solid var(--line); }
.address + .address { margin-top: 1rem; }
.address strong { display: block; font-size: 1.28rem; font-weight: 600; letter-spacing: -.02em;
                  line-height: 1.25; overflow-wrap: anywhere; }
.address p { font-size: .92rem; margin: .55rem 0 0; color: var(--muted); }
.address .badge { margin-top: .5rem; }
.badge { display: inline-block; font-size: .78rem; font-weight: 600; line-height: 1.4;
         padding: .12rem .6rem; border-radius: 20px;
         background: color-mix(in srgb, var(--accent) 12%, transparent); color: var(--link); }
.badge.connected { background: color-mix(in srgb, #1f9d55 14%, transparent); color: #1a7f45; }
.badge.silent, .badge.cleanup { background: color-mix(in srgb, #d98c00 16%, transparent); color: #8a5a00; }
.badge.suspended, .badge.releasing { background: color-mix(in srgb, var(--danger) 12%, transparent); color: var(--danger); }
.card-foot { margin-top: 1.25rem; padding-top: 1.05rem; border-top: 1px solid var(--line); }
.card-foot .hint { display: block; }

.security-row { display: flex; justify-content: space-between; gap: 1rem; align-items: center;
                border-top: 1px solid var(--line); padding: 1rem 0; }
.security-row:last-child { padding-bottom: 0; }
.security-row p { font-size: .92rem; color: var(--muted); margin: 0; }
.security-row .actions { margin: 0; }
.inset { background: color-mix(in srgb, var(--accent) 6%, transparent); padding: 1.15rem 1.25rem;
         border-radius: 12px; margin-top: 1.15rem; }
.secret { display: block; white-space: pre-wrap; overflow-wrap: anywhere; user-select: all;
          background: var(--surface); padding: .75rem .85rem; border: 1px solid var(--line);
          border-radius: 10px; font: .95rem/1.7 ui-monospace, SFMono-Regular, Menlo, monospace;
          letter-spacing: .04em; margin: .6rem 0; }
dl { display: grid; grid-template-columns: 7rem 1fr; gap: .45rem 1rem; font-size: .92rem; margin: 0 0 .9rem; }
dt { color: var(--muted); }
dd { margin: 0; overflow-wrap: anywhere; }

dialog { border: 1px solid var(--line); border-radius: 16px; padding: 1.5rem; max-width: 30rem;
         width: calc(100% - 2rem); background: var(--surface); color: var(--ink); box-shadow: var(--shadow); }
dialog::backdrop { background: rgba(7, 6, 20, .55); }
dialog form { margin: 0; }
dialog h2 { margin-bottom: .6rem; }
dialog input { width: 100%; }
[hidden] { display: none !important; }

.perks-title { margin: 1.6rem 0 .5rem; font-size: 1rem; }
.perks { margin: 0; padding-left: 1.2rem; display: grid; gap: .45rem; font-size: .95rem; }
.perks li { line-height: 1.5; }
.perks code { font-size: .9em; }

@media (max-width: 720px) {
  .hero { padding-top: 2.4rem; }
  .card { padding: 1.15rem; }
  .security-row { align-items: flex-start; flex-direction: column; }
  .address { flex-direction: column; }
  .address .quiet { padding-left: 0; }
  .name-input { width: 100%; }
  .name-input input { flex: 1; width: 6rem; }
  dl { grid-template-columns: 5.5rem 1fr; }
}
/* The panel renders after the account request answers; holding the main column at a full
   screen keeps the footer below the fold meanwhile, so nothing visible shifts. */
.site-main { min-height: 100vh; }
