<style>
  /* ---- account-area shell (built only from tokens) ---- */
  .a-wrap { padding-block: clamp(28px, 4vw, 44px); }

  .a-shell {
    display: grid; grid-template-columns: 248px 1fr; gap: 28px;
    align-items: start;
  }

  /* ---- left account sidebar (clean vertical nav) ---- */
  .a-side {
    background: var(--surface); border: var(--hairline);
    border-radius: var(--radius-md); overflow: hidden;
    position: sticky; top: 92px;
  }
  .a-side__head {
    padding: 16px 18px; border-bottom: var(--hairline);
    display: flex; align-items: center; gap: 12px;
  }
  .a-side__avatar {
    width: 34px; height: 34px; border-radius: 2px; flex-shrink: 0;
    background: var(--ink); color: var(--paper);
    display: grid; place-items: center;
    font-family: var(--font-display); font-weight: 600; font-size: 0.92rem;
  }
  .a-side__id { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
  .a-side__id strong {
    font-family: var(--font-display); font-weight: 500; font-size: 0.95rem;
    letter-spacing: -0.01em;
  }
  .a-side__id span {
    font-family: var(--font-mono); font-size: 0.68rem; color: var(--slate);
    letter-spacing: var(--tracking-mono);
  }
  .a-side__cap {
    padding: 14px 18px 8px;
    font-family: var(--font-mono); font-size: 0.62rem; letter-spacing: 0.16em;
    text-transform: uppercase; color: var(--slate-soft);
  }
  .a-side__nav { display: flex; flex-direction: column; padding-bottom: 8px; }
  .a-side__link {
    display: flex; align-items: center; justify-content: space-between; gap: 10px;
    padding: 9px 18px;
    font-family: var(--font-mono); font-size: 0.78rem;
    letter-spacing: var(--tracking-mono); color: var(--ink-soft);
    border-left: 2px solid transparent;
    transition: background 140ms, color 140ms, border-color 140ms;
  }
  .a-side__link:hover { background: var(--paper-2); color: var(--ink); }
  .a-side__link.is-active {
    color: var(--signal); background: var(--signal-tint);
    border-left-color: var(--signal); font-weight: 500;
  }
  .a-side__link .a-side__caret { color: var(--slate-soft); }
  .a-side__link.is-active .a-side__caret { color: var(--signal); }

  /* ---- content panel ---- */
  .a-content { min-width: 0; display: flex; flex-direction: column; gap: 24px; }
  .a-head {
    display: flex; align-items: flex-end; justify-content: space-between;
    gap: 18px; flex-wrap: wrap;
  }
  .a-head__title {
    font-family: var(--font-display); font-weight: 500;
    font-size: clamp(1.5rem, 2.6vw, 2rem); letter-spacing: -0.025em;
    margin: 8px 0 0;
  }
  .a-head__sub {
    font-family: var(--font-mono); font-size: 0.76rem; color: var(--slate);
    letter-spacing: var(--tracking-mono); margin-top: 4px; display: block;
  }
  .a-head__actions { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }

  /* ---- panel ---- */
  .a-panel {
    background: var(--surface); border: var(--hairline);
    border-radius: var(--radius-md); overflow: hidden;
  }

  /* ---- account data table ---- */
  .a-tbl-wrap { overflow-x: auto; }
  .a-tbl { width: 100%; border-collapse: collapse; }
  .a-tbl th, .a-tbl td {
    padding: 13px 18px; text-align: left;
    border-bottom: var(--hairline); vertical-align: middle;
    white-space: nowrap;
  }
  .a-tbl thead th {
    background: var(--paper-2);
    font-family: var(--font-mono); font-size: 0.66rem;
    letter-spacing: 0.1em; text-transform: uppercase; color: var(--slate);
    font-weight: 500;
  }
  .a-tbl tbody td {
    font-family: var(--font-body); font-size: 0.92rem; color: var(--ink-soft);
  }
  .a-tbl tbody tr:last-child td { border-bottom: 0; }
  .a-tbl tbody tr:hover td { background: var(--paper-2); }

  /* device cell — glyph + label */
  .a-dev { display: inline-flex; align-items: center; gap: 11px; }
  .a-dev__glyph {
    width: 30px; height: 30px; flex-shrink: 0;
    border: var(--hairline); border-radius: var(--radius-sm);
    background: var(--paper-2);
    display: grid; place-items: center;
    color: var(--slate);
  }
  .a-dev__glyph svg { width: 15px; height: 15px; }
  .a-dev__name { color: var(--ink); font-weight: 500; }

  .a-tbl .os { font-family: var(--font-mono); font-size: 0.8rem; letter-spacing: var(--tracking-mono); color: var(--slate); }

  /* current-session marker */
  .a-current {
    margin-left: 8px;
    font-family: var(--font-mono); font-size: 0.62rem; letter-spacing: 0.08em;
    text-transform: uppercase; color: var(--signal);
    border: 1px solid color-mix(in oklab, var(--signal) 50%, transparent);
    background: var(--signal-tint); border-radius: var(--radius-sm);
    padding: 1px 6px;
  }

  /* activity timestamp cell */
  .a-ts {
    font-family: var(--font-mono); font-feature-settings: "tnum" 1;
    font-size: 0.84rem; letter-spacing: var(--tracking-mono);
    color: var(--ink); text-align: right;
  }
  .a-tbl th.a-ts-h { text-align: right; }

  @media (max-width: 1024px) {
    .a-shell { grid-template-columns: 1fr; }
    .a-side { position: static; }
    .a-side__nav { flex-direction: row; flex-wrap: wrap; padding: 8px; gap: 4px; }
    .a-side__cap { display: none; }
    .a-side__link { border-left: 0; border-radius: var(--radius-sm); }
    .a-side__link.is-active { border-left: 0; }
    .a-side__link .a-side__caret { display: none; }
  }
</style>

/* ── select2 -> Helix tokens (profile dropdowns: country, state, timezone, phone code)
   select2.min.css gives structure + hides the native <select>; this paints it
   to match .f-input so dark/light both look native, not light-Bootstrap. ── */
.select2-container--default .select2-selection--single{
  background:var(--field);border:var(--hairline);border-radius:var(--radius-sm);
  height:auto;min-height:38px;padding:6px 10px;display:flex;align-items:center;
}
.select2-container--default .select2-selection--single .select2-selection__rendered{
  color:var(--ink);line-height:1.4;padding:0;font-family:var(--font-body);font-size:var(--fs-body);
}
.select2-container--default .select2-selection--single .select2-selection__placeholder{color:var(--slate-soft);}
.select2-container--default .select2-selection--single .select2-selection__arrow{height:36px;right:8px;}
.select2-container--default .select2-selection--single .select2-selection__arrow b{border-color:var(--slate) transparent transparent;}
.select2-container--default.select2-container--open .select2-selection--single{border-color:var(--signal);}
.select2-dropdown{background:var(--surface);border:var(--hairline);border-radius:var(--radius-sm);color:var(--ink);}
.select2-container--default .select2-results__option{color:var(--ink);font-size:var(--fs-body);}
.select2-container--default .select2-results__option--highlighted[aria-selected]{background:var(--signal-tint);color:var(--ink);}
.select2-container--default .select2-results__option[aria-selected=true]{background:var(--paper-2);}
.select2-search--dropdown .select2-search__field{background:var(--field);border:var(--hairline);color:var(--ink);border-radius:var(--radius-sm);}

/* ── Helix form fields (.f-grid / .f-field / .f-label / .f-input) ──────────────
   These were referenced (e.g. the select2 block above is described as matching
   .f-input) but NEVER actually defined -> the account forms (profile, password,
   manage-share-access, telegram settings, offline-invoice) rendered as ragged
   browser-default inputs with inline labels. Paint them to match the select2
   dropdowns (same --field bg + 38px min-height) so columns line up. */
.f-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:start;}
.f-field{display:flex;flex-direction:column;gap:6px;min-width:0;}
.f-label{font-family:var(--font-mono);font-size:0.7rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--ink);font-weight:500;}
.f-input{width:100%;box-sizing:border-box;padding:0 10px;min-height:38px;font-family:var(--font-body);font-size:var(--fs-body);color:var(--ink);background:var(--field);border:var(--hairline);border-radius:var(--radius-sm);transition:border-color 140ms;}
.f-input:focus{outline:none;border-color:var(--signal);}
.f-input:disabled{background:var(--paper-2);color:var(--slate);cursor:not-allowed;}
.f-input::placeholder{color:var(--slate-soft);}
textarea.f-input{min-height:90px;padding:8px 10px;line-height:1.5;resize:vertical;}
@media (max-width:640px){.f-grid{grid-template-columns:1fr;}}
