    /* ── AUTH SCREEN ── */
    body.auth-visible .nav {
      background: #0f1523;
      border-bottom-color: rgba(255,255,255,0.08);
    }
    #auth-screen {
      min-height: 100vh;
      background: #0f1523;
      display: flex; flex-direction: column;
    }
    .auth-wrap {
      flex: 1; display: flex; flex-direction: column;
      align-items: center; justify-content: center;
      padding: 2.5rem 1.5rem;
    }
    .auth-card {
      background: rgba(255,255,255,0.04);
      border: 0.5px solid rgba(255,255,255,0.1);
      border-radius: var(--radius-lg);
      padding: 2.25rem 2rem;
      width: 100%; max-width: 360px;
      box-shadow: 0 8px 40px rgba(0,0,0,0.4);
    }
    .auth-logo {
      display: flex; align-items: center; gap: 18px;
      justify-content: center; margin-bottom: 0.5rem;
    }
    .auth-logo-icon {
      width: 48px; height: 48px;
      display: flex; align-items: center; justify-content: center;
      flex-shrink: 0;
      background: transparent;
    }
    .auth-logo-icon img {
      width: 100%; height: 100%;
      object-fit: contain;
      animation: axGlowPulse 3.2s ease-in-out infinite;
      will-change: filter;
    }
    .auth-logo-name {
      font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
      font-size: 22px; font-weight: 800;
      color: #f0f4fa;
      text-transform: uppercase;
      letter-spacing: 0.04em;
    }
    .auth-title {
      font-size: 13px; font-weight: 400;
      color: rgba(255,255,255,0.4);
      text-align: center; margin-bottom: 1.75rem;
    }
    .auth-sub { display: none; } /* absorbed into auth-title */
    .auth-field { margin-bottom: 12px; }
    .auth-field-hint { font-size: 11px; color: rgba(255,255,255,0.3); margin-top: 5px; }
    .auth-field label {
      display: block; font-size: 11px; font-weight: 500;
      color: rgba(255,255,255,0.45);
      margin-bottom: 5px; text-transform: uppercase; letter-spacing: .05em;
    }
    .auth-field input {
      width: 100%; padding: 10px 13px; font-size: 13px;
      border: 0.5px solid rgba(255,255,255,0.12);
      border-radius: var(--radius-md);
      background: rgba(255,255,255,0.06);
      color: #f0f4fa;
      outline: none;
      font-family: inherit;
      transition: border-color 0.15s, box-shadow 0.15s;
    }
    .auth-field input::placeholder { color: rgba(255,255,255,0.25); }
    .auth-field input:focus {
      border-color: #378ADD;
      box-shadow: 0 0 0 3px rgba(55,138,221,0.15);
    }
    .auth-password-wrap { position: relative; }
    .auth-password-wrap input { padding-right: 40px; }
    .auth-pw-toggle {
      position: absolute;
      top: 50%;
      right: 8px;
      transform: translateY(-50%);
      width: 28px;
      height: 28px;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      padding: 0;
      background: transparent;
      border: 0;
      border-radius: 6px;
      cursor: pointer;
      color: rgba(255,255,255,0.45);
      transition: color 0.15s, background 0.15s;
    }
    .auth-pw-toggle:hover { color: #f0f4fa; background: rgba(255,255,255,0.06); }
    .auth-pw-toggle:focus-visible { outline: 2px solid #378ADD; outline-offset: 1px; }
    .auth-pw-toggle svg { display: block; }
    .auth-pw-toggle .icon-eye-off { display: none; }
    .auth-pw-toggle[data-visible="true"] .icon-eye { display: none; }
    .auth-pw-toggle[data-visible="true"] .icon-eye-off { display: block; }
    .auth-actions {
      display: flex; flex-direction: column; gap: 8px; margin-top: 1.5rem;
    }
    .auth-actions .btn-primary {
      justify-content: center; width: 100%;
      padding: 11px 20px; font-size: 14px;
      background: #185FA5;
      box-shadow: 0 2px 12px rgba(24,95,165,0.4);
    }
    .auth-actions .btn-primary:hover { opacity: 0.9; }
    .auth-actions .btn-secondary {
      justify-content: center; width: 100%;
      padding: 10px 20px; font-size: 13px;
      background: transparent;
      border: 0.5px solid rgba(255,255,255,0.15);
      color: rgba(255,255,255,0.55);
    }
    .auth-actions .btn-secondary:hover {
      background: rgba(255,255,255,0.05);
      color: rgba(255,255,255,0.8);
    }
    .auth-switch {
      margin-top: 16px; text-align: center;
      font-size: 12px; color: rgba(255,255,255,0.4);
    }
    .auth-switch-btn {
      background: none; border: none; padding: 0; margin-left: 4px;
      font-size: 12px; color: #378ADD; cursor: pointer;
      font-family: inherit; text-decoration: underline;
      text-underline-offset: 2px;
    }
    .auth-switch-btn:hover { color: #5ca0e8; }
    .auth-invite-note {
      margin-top: 14px; padding: 10px 12px;
      border-radius: var(--radius-md);
      background: rgba(255,255,255,0.04);
      border: 0.5px solid rgba(255,255,255,0.08);
      font-size: 11px; color: rgba(255,255,255,0.35);
      line-height: 1.5; text-align: center;
    }
    .signup-type-toggle {
      display: flex; gap: 6px; margin-top: 8px;
    }
    .signup-type-btn {
      flex: 1; padding: 8px 10px; border-radius: var(--radius-md);
      background: rgba(255,255,255,0.05);
      border: 1px solid rgba(255,255,255,0.12);
      color: rgba(255,255,255,0.6); font-family: inherit;
      font-size: 12px; font-weight: 500; cursor: pointer;
      transition: background 0.15s, border-color 0.15s, color 0.15s;
    }
    .signup-type-btn:hover { background: rgba(255,255,255,0.1); color: rgba(255,255,255,0.85); }
    .signup-type-btn--active {
      background: rgba(55,138,221,0.2);
      border-color: rgba(55,138,221,0.5);
      color: #5ca0e8;
    }
    .auth-status {
      margin-top: 12px; font-size: 12px; line-height: 1.5;
      min-height: 18px; text-align: center;
    }
    .auth-status.error   { color: #F09595; }
    .auth-status.success { color: #5DCAA5; }
    .invite-banner {
      font-size: 13px; line-height: 1.6; padding: 10px 14px;
      border-radius: 8px; text-align: left;
    }
    .invite-banner--success { background: #E1F5EE; color: #085041; }
    .invite-banner--info    { background: #E6F1FB; color: #0C447C; }
    .invite-banner--error   { background: #FCEBEB; color: #791F1F; }
    .invite-card { max-width: 400px; }
    .invite-screen-headline {
      font-size: 20px; font-weight: 600; color: #fff;
      text-align: center; margin-bottom: 8px;
    }
    .invite-screen-sub {
      font-size: 13px; color: rgba(255,255,255,0.55);
      text-align: center; line-height: 1.6;
    }
    .invite-screen-firm {
      font-size: 15px; font-weight: 600; color: #fff;
      text-align: center; margin-bottom: 6px;
    }
    .invite-screen-email {
      font-size: 12px; color: rgba(255,255,255,0.4);
      text-align: center; margin-top: 6px;
    }
    .invite-screen-error {
      font-size: 13px; color: #F09595;
      text-align: center; line-height: 1.6; padding: 8px 0;
    }
    .invite-divider {
      border: none; border-top: 0.5px solid rgba(255,255,255,0.08);
      margin: 1.25rem 0;
    }
    .auth-divider { height: 0.5px; background: rgba(255,255,255,0.08); margin: 1.25rem 0; }
    .auth-signout-row { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
    .auth-user-label { font-size: 12px; color: rgba(255,255,255,0.4); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
    /* mobile */
    @media (max-width: 768px) {
      .auth-card { padding: 1.75rem 1.25rem; }
      .auth-wrap  { padding: 2rem 1rem; justify-content: flex-start; padding-top: 4rem; }
    }
    /* ── SAVED PORTFOLIOS ── */
    .saved-wrap { margin-bottom: 1.25rem; border: 0.5px solid var(--border); border-radius: 8px; overflow: hidden; }
    .saved-hdr { display: flex; align-items: center; justify-content: space-between; width: 100%; padding: 9px 12px; background: var(--bg-secondary); border: none; cursor: pointer; font-size: 11px; font-weight: 600; color: var(--text-secondary); text-transform: uppercase; letter-spacing: .05em; text-align: left; }
    .saved-hdr:hover { background: var(--bg-subtle); }
    .saved-hdr-right { display: flex; align-items: center; gap: 6px; }
    .saved-hdr-count { font-size: 10px; font-weight: 700; color: var(--text-tertiary); }
    .saved-hdr-chevron { transition: transform 0.2s; color: var(--text-tertiary); flex-shrink: 0; }
    .saved-wrap--collapsed .saved-hdr-chevron { transform: rotate(-90deg); }
    .saved-wrap--collapsed .saved-list { display: none; }
    .saved-list { display: flex; flex-direction: column; gap: 6px; padding: 8px; }
    .saved-item {
      display: flex; align-items: center; justify-content: space-between;
      background: var(--bg); border: 0.5px solid var(--border);
      border-radius: var(--radius-md); padding: 10px 14px;
      cursor: pointer; transition: background 0.12s;
    }
    .saved-item:hover { background: var(--bg-secondary); }
    .saved-item.active { border-color: var(--blue-mid); background: var(--blue-bg); }
    .saved-item-left { display: flex; flex-direction: column; gap: 2px; }
    .saved-item-name { font-size: 13px; font-weight: 500; color: var(--text-primary); }
    .saved-item-meta { font-size: 11px; color: var(--text-tertiary); }
    .saved-item-del { font-size: 11px; color: var(--text-tertiary); background: none; border: none; cursor: pointer; padding: 2px 6px; border-radius: 4px; opacity: 0; transition: opacity 0.15s; flex-shrink: 0; }
    .saved-item:hover .saved-item-del { opacity: 1; }
    .saved-item-del:hover { color: var(--red-mid); background: var(--red-bg); }
    .saved-item-rename { font-size: 11px; color: var(--text-tertiary); background: none; border: none; cursor: pointer; padding: 2px 6px; border-radius: 4px; opacity: 0; transition: opacity 0.15s; flex-shrink: 0; line-height: 1; }
    .saved-item:hover .saved-item-rename { opacity: 1; }
    .saved-item-rename:hover { color: var(--blue-mid); background: var(--blue-bg); }
    .saved-item-actions { display: flex; gap: 2px; align-items: center; flex-shrink: 0; }
    .saved-group-header { font-size: 10px; font-weight: 600; letter-spacing: 0.05em; text-transform: uppercase; color: var(--text-tertiary); padding: 8px 12px 3px; margin-top: 2px; }
    .saved-group-header:first-child { margin-top: 0; }
    .saved-item--indented { padding-left: 18px; }
    .saved-item-name-input {
      font-size: 13px; font-weight: 500; color: var(--text-primary);
      background: var(--bg-secondary); border: 0.5px solid var(--blue-mid);
      border-radius: 4px; padding: 1px 6px; outline: none;
      width: 100%; min-width: 80px; max-width: 200px;
      font-family: inherit;
    }
    .save-status { font-size: 11px; color: var(--text-tertiary); margin-left: 8px; min-width: 80px; }
    .save-status.saving  { color: var(--blue-mid); }
    .save-status.saved   { color: var(--green-mid); }
    .save-status.error   { color: var(--red-mid); }
    .btn-save-portfolio {
      display: inline-flex; align-items: center; gap: 6px;
      font-size: 12px; font-weight: 500; padding: 6px 14px;
      border-radius: var(--radius-md); border: 0.5px solid var(--green-mid);
      color: var(--green-mid); background: transparent; cursor: pointer;
      transition: background 0.12s;
    }
    .btn-save-portfolio:hover { background: var(--green-bg); }
    .save-row { display: flex; align-items: center; margin-bottom: 12px; }
