/* 合作店家的現場打卡頁。
 *
 * 這一頁的觀眾有兩個，而且需求相反：
 *   旅客 —— 掃完要立刻知道「成功了」
 *   店員 —— 隔著櫃檯、可能一公尺外、可能只看兩秒
 *
 * 所以版面是為**店員**設計的：店名與時間放到極大，其餘一律讓路。
 * 手機拿在手上舉給對面的人看，字小一點就得湊過去，那正是要避免的。 */

.qg-checkin {
  min-height: 70vh;
  display: grid;
  place-items: center;
  padding: 24px 18px 48px;
}

.qg-checkin-card {
  width: 100%;
  max-width: 420px;
  background: #fffdf8;
  border: 1px solid #d9ccba;
  border-radius: 18px;
  padding: 28px 24px 24px;
  text-align: center;
}

.qg-checkin-mark {
  width: 58px;
  height: 58px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  margin: 0 auto 14px;
  background: var(--ql-green, #3f6b3a);
  color: #fff;
}
.qg-checkin-mark svg { width: 30px; height: 30px; }
.qg-checkin-card.is-error .qg-checkin-mark { background: #9c3b2e; }
.qg-checkin-card.is-join .qg-checkin-mark { background: var(--ql-orange, #c0714f); }

.qg-checkin-lead {
  margin: 0 0 6px;
  font-size: 14px;
  letter-spacing: .06em;
  color: #6b6154;
}

/* 店名。店員要判斷的第一件事——是不是我這家店。 */
.qg-checkin-place {
  margin: 0 0 18px;
  font-size: clamp(26px, 7vw, 34px);
  line-height: 1.25;
  color: #2c2a25;
  text-wrap: balance;
}

/* 時間。第二件事——是不是剛剛。每秒跳動，截圖是凍住的。 */
.qg-checkin-clock {
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 6px;
  margin-bottom: 4px;
}
.qg-checkin-clock time {
  font-size: clamp(52px, 16vw, 72px);
  font-weight: 700;
  line-height: 1;
  letter-spacing: -.02em;
  font-variant-numeric: tabular-nums;
  color: #1f3a52;
}
.qg-checkin-clock small {
  font-size: clamp(20px, 6vw, 26px);
  font-weight: 500;
  font-variant-numeric: tabular-nums;
  color: #5c7f9e;
}

/* 日期。第三件事——是不是今天。 */
.qg-checkin-date {
  margin: 0 0 18px;
  font-size: 17px;
  font-variant-numeric: tabular-nums;
  color: #4a4741;
}

.qg-checkin-note {
  display: flex;
  align-items: flex-start;
  gap: 6px;
  margin: 0;
  padding-top: 14px;
  border-top: 1px solid #e6dccb;
  font-size: 12.5px;
  line-height: 1.6;
  text-align: left;
  color: #6b6154;
}
.qg-checkin-note svg { width: 15px; flex: 0 0 15px; margin-top: 2px; }

/* 🔴 這條通用規則必須排除店名。
 * .qg-checkin-card h1 的特異度是 (0,1,1)，.qg-checkin-place 只有 (0,1,0)
 * ——不排除的話，店員畫面上最重要的那個字會被自己的通用規則壓成 22px。
 * 實測就是這樣：clamp(26px,7vw,34px) 寫了，量出來卻是 22px。 */
.qg-checkin-card h1:not(.qg-checkin-place) {
  margin: 0 0 10px;
  font-size: 22px;
  color: #2c2a25;
}
.qg-checkin-card p { color: #55514a; line-height: 1.7; }

.qg-checkin-primary,
.qg-checkin-secondary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 46px;
  margin-top: 14px;
  border-radius: 12px;
  font-size: 16px;
  text-decoration: none;
  border: 1px solid var(--ql-orange, #c0714f);
}
.qg-checkin-primary { background: var(--ql-orange, #c0714f); color: #fff; }
.qg-checkin-secondary { background: #fffdf8; color: var(--ql-orange, #c0714f); }

.qg-checkin-card small { display: block; margin-top: 8px; font-size: 12.5px; color: #7b7365; }

.qg-checkin-skeleton {
  height: 26px;
  border-radius: 8px;
  background: linear-gradient(90deg, #efe7da 25%, #f7f1e6 50%, #efe7da 75%);
  background-size: 200% 100%;
  animation: qg-checkin-shimmer 1.2s linear infinite;
  margin-bottom: 10px;
}
.qg-checkin-skeleton.is-short { width: 60%; margin: 0 auto; }

@keyframes qg-checkin-shimmer {
  from { background-position: 200% 0; }
  to { background-position: -200% 0; }
}
@media (prefers-reduced-motion: reduce) {
  .qg-checkin-skeleton { animation: none; }
}
