/* ==========================================================================
   手机端签到页专用样式（index.html）
   仅在 / 加载；与 style.css 合计即手机端首屏全部样式
   ========================================================================== */

.checkin-body{
  min-height:100vh;
  background:var(--hero);
  color:#fff;
  padding:calc(22px + env(safe-area-inset-top)) 18px calc(28px + env(safe-area-inset-bottom));
  display:flex;flex-direction:column;
}

/* ---------- 品牌区 ---------- */
.m-brand{display:flex;align-items:center;gap:12px;max-width:440px;width:100%;margin:0 auto 18px}
.m-brand-mark{
  width:46px;height:46px;flex-shrink:0;border-radius:13px;
  background:linear-gradient(135deg,var(--gold-light),var(--gold));
  color:#3B2A0A;font-size:23px;font-weight:800;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 6px 18px rgba(0,0,0,.22);
}
.m-brand-name{font-size:20px;font-weight:800;letter-spacing:3px;line-height:1.3}
.m-brand-sub{font-size:13px;opacity:.82;letter-spacing:2px}

/* ---------- 卡片 ---------- */
.m-main{flex:1;width:100%;max-width:440px;margin:0 auto}
.m-card{
  background:#fff;color:var(--text);border-radius:20px;
  padding:26px 22px;box-shadow:0 18px 50px rgba(0,0,0,.26);
}
.m-card-title{font-size:21px;font-weight:800;color:var(--green-dark);margin-bottom:6px}
.m-card-lead{font-size:14px;color:var(--muted);margin-bottom:20px;line-height:1.7}

/* ---------- 表单 ---------- */
.m-field{margin-bottom:16px}
.m-label{display:block;font-size:14px;font-weight:700;color:var(--text);margin-bottom:7px}
.m-req{color:var(--danger)}
.m-opt{font-weight:400;color:var(--muted);font-size:13px}
.m-field input{
  width:100%;padding:15px 16px;border:1.5px solid var(--line);border-radius:13px;
  /* 关键：字号 16px 防 iOS Safari 聚焦缩放 */
  font-size:17px;background:#fff;transition:border-color .15s,box-shadow .15s;
}
.m-field input:focus{border-color:var(--green);box-shadow:0 0 0 4px rgba(0,166,80,.13);outline:none}
.m-field input[aria-invalid="true"]{border-color:var(--danger);box-shadow:0 0 0 4px rgba(214,69,69,.1)}
.m-field-hint{font-size:12.5px;color:var(--muted);margin-top:6px}
.m-field-err{font-size:13px;color:var(--danger);margin-top:6px;font-weight:600}
.m-card .alert{margin:4px 0 14px}

/* ---------- 主按钮 ---------- */
.m-submit{
  width:100%;padding:17px;border-radius:14px;font-size:18px;font-weight:800;letter-spacing:3px;
  background:linear-gradient(135deg,#00A650,#0B5E3B);color:#fff;
  display:flex;align-items:center;justify-content:center;gap:9px;
  transition:transform .1s,opacity .15s;margin-top:6px;
  box-shadow:0 8px 22px rgba(11,94,59,.28);
}
.m-submit:active:not(:disabled){transform:scale(.985)}
.m-submit:disabled{opacity:.62;cursor:not-allowed}
.m-submit[data-state="busy"]::before{
  content:"";width:17px;height:17px;border-radius:50%;flex-shrink:0;
  border:2.5px solid rgba(255,255,255,.85);border-top-color:transparent;
  animation:spin .7s linear infinite;
}
.m-submit[data-state="err"]{background:linear-gradient(135deg,#D64545,#A62B2B)}
.m-submit[data-state="ok"]{background:linear-gradient(135deg,#00A650,#0B7A3E)}
.m-foot-note{font-size:12px;color:var(--muted);margin-top:14px;line-height:1.7;text-align:center}

/* ---------- 结果态 ---------- */
.m-check{
  width:76px;height:76px;border-radius:50%;margin:6px auto 18px;
  background:linear-gradient(135deg,#00A650,#0B5E3B);color:#fff;
  display:flex;align-items:center;justify-content:center;font-size:42px;font-weight:800;
  animation:pop .45s cubic-bezier(.2,1.6,.4,1);
}
.m-check-neutral{background:linear-gradient(135deg,#C9A063,#8A6420);font-size:38px;font-style:italic}
.m-check-fail{background:linear-gradient(135deg,#E06A6A,#A62B2B)}
@keyframes pop{0%{transform:scale(.5);opacity:0}60%{transform:scale(1.08)}100%{transform:scale(1);opacity:1}}
.m-done-title{font-size:22px;font-weight:800;color:var(--green-dark);text-align:center;margin-bottom:8px}
.m-done-title-neutral{color:var(--gold-deep)}
.m-done-name{text-align:center;font-size:19px;font-weight:700;margin-bottom:16px;word-break:break-all}
.m-done-msg{text-align:center;font-size:15px;color:var(--muted);line-height:1.8;margin-bottom:14px}
.m-done-tip{text-align:center;font-size:12.5px;color:var(--muted);line-height:1.7;margin-top:16px}
.m-code-box{
  background:#F6FBF7;border:1.5px dashed #B9DCC6;border-radius:14px;
  padding:14px;text-align:center;margin:0 0 16px;
}
.m-code-label{display:block;font-size:12.5px;color:var(--muted);letter-spacing:2px;margin-bottom:5px}
.m-code{
  font-family:Consolas,"SF Mono",monospace;font-size:34px;font-weight:800;
  color:var(--green-dark);letter-spacing:6px;line-height:1.2;word-break:break-all;
}

/* ---------- 页脚 ---------- */
.m-page-foot{
  text-align:center;font-size:12px;opacity:.75;margin-top:22px;letter-spacing:1px;
}

/* ---------- 小屏微调 ---------- */
@media (max-width:360px){
  .m-card{padding:22px 16px;border-radius:16px}
  .m-card-title{font-size:19px}
  .m-code{font-size:29px}
}
/* ---------- 横屏/大屏（iPad 打开签到页也能正常显示） ---------- */
@media (min-height:820px){
  .checkin-body{justify-content:center}
}
