blob: b7b4ff82c47ec472dff9077f8c53bdbbb5c9feef [file]
/* WeChat QR login dialog content. */
.settingsWechatQrCaption {
font: var(--maka-text-body);
margin: 0;
color: var(--muted-foreground);
}
.settingsWechatQrBody {
display: grid;
place-items: center;
align-content: center;
gap: var(--space-3);
text-align: center;
/* Deep-review fix: the retired `.settingsWechatQrState` pane carried a
180px floor; without one the dialog collapses in the generating/expired/
error states and snaps taller when the QR frame arrives — the floor
tracks the frame token so the two cannot drift. */
min-height: var(--qr-frame-size);
}
.settingsWechatQrFrame {
/* Shared with the bot onboarding QR frame (settings/bot.css): both read
--qr-frame-size so the paired dialogs present one QR spec. */
width: var(--qr-frame-size);
height: var(--qr-frame-size);
display: grid;
place-items: center;
border: var(--border-width-hairline) solid color-mix(in srgb, var(--brand-wechat) 20%, var(--border));
border-radius: var(--radius-surface);
/* Paper, not a ladder tier: a QR code has to stay dark-on-light to be
scannable at all. See --surface-paper in maka-tokens.css. */
background: var(--surface-paper);
padding: var(--space-3);
}
.settingsWechatQrFrame img {
width: 100%;
height: 100%;
object-fit: contain;
image-rendering: pixelated;
}
/* Astryx convergence (task #136): the `.settingsWechatQrState` placeholder
pane and its four hand-tinted `data-tone` variants are EmptyState / Spinner
now; only the QR frame plate and caption remain bespoke. */