/* GENERATED from miniprogram WXSS by webapp/tools/sync_styles.py.
 * Do not edit — edit the WXSS source and re-run. Web-only overrides belong in
 * styles.web.css, which loads after this file.
 *
 * rpx -> calc(N * var(--rpx)); --rpx is defined in index.html as 100vw/750,
 * matching WeChat's rpx definition exactly.
 */

/* ---- app.wxss ---- */
body {
  background-color: #0B0E14;
  color: #E6EAF2;
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
}

/* ---- pages/index/index.wxss ---- */
/* Mirrors lib/ui/app_theme.dart + qr_sync_screen.dart layout */

.page {
  min-height: 100vh;
  padding: calc(24 * var(--rpx)) calc(40 * var(--rpx)) calc(32 * var(--rpx));
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
}

/* ---- Header ---- */
.header {
  display: flex;
  flex-direction: row;
  align-items: center;
  margin-bottom: calc(28 * var(--rpx));
}

.status-dot {
  width: calc(20 * var(--rpx));
  height: calc(20 * var(--rpx));
  border-radius: 50%;
  flex-shrink: 0;
}

.title {
  color: #E6EAF2;
  font-size: calc(36 * var(--rpx));
  font-weight: 700;
  letter-spacing: calc(2.4 * var(--rpx));
  margin-left: calc(20 * var(--rpx));
  margin-right: calc(16 * var(--rpx));
}

.spacer {
  flex: 1;
}

.chip {
  display: flex;
  flex-direction: row;
  align-items: center;
  background-color: #161B26;
  border: calc(1 * var(--rpx)) solid #1F2633;
  border-radius: calc(20 * var(--rpx));
  padding: calc(14 * var(--rpx)) calc(20 * var(--rpx));
  margin-right: calc(8 * var(--rpx));
}

.chip-icon {
  font-size: calc(24 * var(--rpx));
  margin-right: calc(10 * var(--rpx));
}

.chip-text {
  color: #E6EAF2;
  font-size: calc(26 * var(--rpx));
  font-weight: 600;
  letter-spacing: calc(2 * var(--rpx));
}

.chip-text.accent {
  color: #4F8CFF;
  font-size: calc(24 * var(--rpx));
}

.muted {
  opacity: 0.6;
}

.refresh-btn {
  width: calc(64 * var(--rpx));
  height: calc(64 * var(--rpx));
  display: flex;
  align-items: center;
  justify-content: center;
}

.refresh-btn.disabled {
  opacity: 0.35;
}

.refresh-icon {
  color: #8A93A6;
  font-size: calc(40 * var(--rpx));
}

/* ---- QR ---- */
.qr-wrap {
  display: flex;
  justify-content: center;
  margin-bottom: calc(40 * var(--rpx));
}

.qr-card {
  background-color: #FFFFFF;
  border-radius: calc(40 * var(--rpx));
  box-shadow: 0 calc(16 * var(--rpx)) calc(48 * var(--rpx)) rgba(0, 0, 0, 0.2);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.qr-canvas {
  display: block;
}

/* ---- Clock ---- */
.clock-block {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-bottom: calc(32 * var(--rpx));
}

.clock-time {
  display: flex;
  flex-direction: row;
  align-items: baseline;
}

.time-main {
  color: #E6EAF2;
  font-size: calc(88 * var(--rpx));
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  letter-spacing: calc(2 * var(--rpx));
}

.time-ms {
  color: #4F8CFF;
  font-size: calc(52 * var(--rpx));
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}

.clock-date {
  color: #8A93A6;
  font-size: calc(26 * var(--rpx));
  letter-spacing: calc(1.6 * var(--rpx));
  margin-top: calc(8 * var(--rpx));
}

/* ---- Status ---- */
.status-banner {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-bottom: calc(8 * var(--rpx));
}

.status-row {
  display: flex;
  flex-direction: row;
  align-items: center;
}

.status-dot-lg {
  width: calc(24 * var(--rpx));
  height: calc(24 * var(--rpx));
  border-radius: 50%;
  margin-right: calc(16 * var(--rpx));
}

.status-text {
  color: #E6EAF2;
  font-size: calc(40 * var(--rpx));
  font-weight: 700;
}

.status-sub {
  color: #8A93A6;
  font-size: calc(26 * var(--rpx));
  text-align: center;
  margin-top: calc(6 * var(--rpx));
}

/* ---- Details ---- */
.details-toggle {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  padding: calc(8 * var(--rpx)) calc(16 * var(--rpx));
  margin-bottom: calc(8 * var(--rpx));
}

.details-label {
  color: #8A93A6;
  font-size: calc(24 * var(--rpx));
}

.details-arrow {
  color: #8A93A6;
  font-size: calc(28 * var(--rpx));
  margin-left: calc(8 * var(--rpx));
}

.details-chips {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: center;
  gap: calc(16 * var(--rpx));
  padding-top: calc(16 * var(--rpx));
  margin-bottom: calc(16 * var(--rpx));
}

.chip-metric {
  display: flex;
  flex-direction: row;
  align-items: center;
  background-color: #161B26;
  border: calc(1 * var(--rpx)) solid #1F2633;
  border-radius: calc(20 * var(--rpx));
  padding: calc(16 * var(--rpx)) calc(24 * var(--rpx));
}

.metric-dot {
  width: calc(16 * var(--rpx));
  height: calc(16 * var(--rpx));
  border-radius: 50%;
  margin-right: calc(16 * var(--rpx));
}

.metric-dot.muted-dot {
  background-color: #8A93A6;
}

.metric-label {
  color: #8A93A6;
  font-size: calc(24 * var(--rpx));
  letter-spacing: calc(0.8 * var(--rpx));
  margin-right: calc(8 * var(--rpx));
}

.metric-value {
  color: #E6EAF2;
  font-size: calc(26 * var(--rpx));
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}

/* ---- Instructions ---- */
.instructions {
  margin-top: calc(28 * var(--rpx));
}

.step {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  padding: calc(6 * var(--rpx)) 0;
}

.step-num {
  width: calc(40 * var(--rpx));
  height: calc(40 * var(--rpx));
  border-radius: 50%;
  background-color: #1F2633;
  color: #4F8CFF;
  font-size: calc(22 * var(--rpx));
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.step-text {
  color: #8A93A6;
  font-size: calc(25 * var(--rpx));
  line-height: 1.3;
  margin-left: calc(20 * var(--rpx));
  flex: 1;
}

/* ---- Dialog ---- */
.dialog-mask {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: rgba(0, 0, 0, 0.6);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1000;
}

.dialog {
  width: 80%;
  background-color: #161B26;
  border-radius: calc(24 * var(--rpx));
  padding: calc(40 * var(--rpx));
}

.dialog-title {
  color: #E6EAF2;
  font-size: calc(34 * var(--rpx));
  font-weight: 600;
  margin-bottom: calc(24 * var(--rpx));
  display: block;
}

.dialog-input {
  background-color: #1F2633;
  border: calc(1 * var(--rpx)) solid #2a3344;
  border-radius: calc(12 * var(--rpx));
  color: #E6EAF2;
  font-size: calc(30 * var(--rpx));
  padding: calc(16 * var(--rpx)) calc(20 * var(--rpx));
  margin-bottom: calc(32 * var(--rpx));
}

.dialog-actions {
  display: flex;
  flex-direction: row;
  justify-content: flex-end;
  gap: calc(16 * var(--rpx));
}

.dialog-btn {
  color: #8A93A6;
  font-size: calc(30 * var(--rpx));
  padding: calc(12 * var(--rpx)) calc(24 * var(--rpx));
}

.dialog-btn.primary {
  color: #4F8CFF;
  font-weight: 600;
}
