/* ================================================================
   睿桨数智 — 移动端体验补强
   仅作用于带页面级 class 的入口与业务页，避免影响内部工具。
   ================================================================ */

:root {
  --mobile-brand: #103d52;
  --mobile-brand-light: #17627a;
  --mobile-accent: #168392;
  --mobile-bg: #f4f7f8;
  --mobile-card: #ffffff;
  --mobile-text: #102a3a;
  --mobile-muted: #687e89;
  --mobile-border: #dfe8eb;
  --mobile-danger: #dc4b4b;
  --mobile-shadow: 0 16px 48px rgba(16,61,82,.10);
}

/* 登录入口 */
.auth-page {
  min-height: 100vh !important;
  min-height: 100dvh !important;
  padding: max(24px, env(safe-area-inset-top)) 20px max(24px, env(safe-area-inset-bottom)) !important;
  background:
    radial-gradient(circle at 12% 8%, rgba(22,131,146,.12), transparent 30%),
    radial-gradient(circle at 92% 88%, rgba(16,61,82,.10), transparent 34%),
    var(--mobile-bg) !important;
  color: var(--mobile-text) !important;
}

.auth-page .card {
  width: min(100%, 400px) !important;
  max-width: 100% !important;
  padding: 38px 32px 32px !important;
  background: rgba(255,255,255,.94) !important;
  border: 1px solid var(--mobile-border) !important;
  border-radius: 20px !important;
  box-shadow: var(--mobile-shadow) !important;
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}

.auth-page .logo::before {
  content: "";
  display: block;
  width: 48px;
  height: 48px;
  margin: 0 auto 16px;
  border-radius: 14px;
  background: url('/static/img/favicon.svg') center/cover no-repeat;
  box-shadow: 0 8px 18px rgba(16,61,82,.16);
}

.auth-page .logo { margin-bottom: 28px !important; }
.auth-page .logo h1 { color: var(--mobile-text) !important; font-size: 24px !important; letter-spacing: -.02em !important; }
.auth-page .logo p { color: var(--mobile-muted) !important; }
.auth-page label { color: var(--mobile-muted) !important; font-weight: 650 !important; }
.auth-page input {
  min-height: 48px !important;
  padding: 12px 14px !important;
  background: #f8fafb !important;
  border: 1px solid var(--mobile-border) !important;
  border-radius: 11px !important;
  color: var(--mobile-text) !important;
  font-size: 16px !important;
}
.auth-page input:focus { border-color: var(--mobile-accent) !important; box-shadow: 0 0 0 3px rgba(22,131,146,.12) !important; }
.auth-page button[type="submit"] {
  min-height: 50px !important;
  background: linear-gradient(135deg,var(--mobile-brand),var(--mobile-brand-light)) !important;
  border-radius: 11px !important;
  box-shadow: 0 8px 18px rgba(16,61,82,.14);
}
.auth-page a { color: var(--mobile-brand-light) !important; font-weight: 650; }
.auth-page .error { color: #9f2d2d !important; background: #fff3f2 !important; border-color: #f1c9c6 !important; }

/* 注册入口 */
.registration-page { background: var(--mobile-bg) !important; color: var(--mobile-text) !important; min-height:100dvh; }
.registration-page .container,
.registration-page .register-container { width: min(100%, 720px); margin: 0 auto !important; padding: 28px 20px 64px !important; }
.registration-page .brand-header {
  margin: 0 !important;
  padding: max(26px, env(safe-area-inset-top)) 20px 24px !important;
  background: linear-gradient(135deg,var(--mobile-brand),var(--mobile-brand-light)) !important;
}
.registration-page .header { margin: 4px 0 26px !important; }
.registration-page .header h1 { color: var(--mobile-text); letter-spacing:-.02em; }
.registration-page .card {
  padding: 24px !important;
  border: 1px solid var(--mobile-border) !important;
  border-radius: 16px !important;
  box-shadow: 0 7px 24px rgba(16,61,82,.06) !important;
}
.registration-page input,
.registration-page select,
.registration-page textarea { min-height:46px !important; border-color:var(--mobile-border) !important; border-radius:9px !important; }
.registration-page .btn-primary { min-height:50px; background:linear-gradient(135deg,var(--mobile-brand),var(--mobile-brand-light)) !important; border-radius:10px !important; }

/* 教练工作台 */
.coach-page header { min-height:58px; padding-left:16px; padding-right:16px; }
.coach-page .header-upload-link { min-height:38px; display:inline-flex; align-items:center; }

/* 俱乐部工作台 */
.club-dashboard-page header { position:sticky; top:0; z-index:40; background:rgba(255,255,255,.94); backdrop-filter:blur(14px); }
.club-dashboard-page .nav { overflow-x:auto; padding-bottom:4px; scrollbar-width:none; }
.club-dashboard-page .nav::-webkit-scrollbar { display:none; }
.club-dashboard-page .nav a { flex:0 0 auto; min-height:42px; display:inline-flex; align-items:center; }
.club-dashboard-page .club-nav-hint { display:none; }

/* 报告查询 */
.report-viewer-page {
  --bg: var(--mobile-bg);
  --panel: var(--mobile-card);
  --panel-2: #f8fafb;
  --text: var(--mobile-text);
  --muted: var(--mobile-muted);
  --accent: var(--mobile-accent);
  --border: var(--mobile-border);
  background: var(--mobile-bg) !important;
}
.report-viewer-page .topbar { position:sticky; top:0; z-index:20; background:rgba(255,255,255,.94); backdrop-filter:blur(14px); }
.report-viewer-page .search-card,
.report-viewer-page .result-card { box-shadow:0 7px 24px rgba(16,61,82,.06); border-radius:14px; }

@media (max-width: 767px) {
  .auth-page { align-items:center !important; }
  .auth-page .card { padding:30px 22px 24px !important; }
  .auth-page .auth-register-link a,
  .registration-page .login-link a { display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:0 6px; margin-block:-12px; }

  .registration-page .container,
  .registration-page .register-container { padding:20px 14px calc(42px + env(safe-area-inset-bottom)) !important; }
  .registration-page .card { padding:18px 16px !important; }
  .registration-page .form-row { grid-template-columns:1fr !important; gap:0 !important; }
  .registration-page input,
  .registration-page select,
  .registration-page textarea { font-size:16px !important; }

  .coach-page .header-right > button.header-upload-link { display:none; }
  .coach-page .header-right > a.header-upload-link { min-width:46px; padding:7px 9px; font-size:0; }
  .coach-page .header-right > a.header-upload-link::after { content:'上传'; font-size:12px; }
  .coach-page .layout { min-height:calc(100dvh - 58px); }
  .coach-page .right-content { padding-bottom:env(safe-area-inset-bottom); }
  .coach-page .tabs { position:sticky; top:0; z-index:12; background:var(--panel); }
  .coach-page input:not([type="range"]):not([type="color"]):not([type="checkbox"]):not([type="radio"]),
  .coach-page select,
  .coach-page textarea { font-size:16px !important; }
  .coach-page button,
  .coach-page .avatar-btn,
  .coach-page .avatar-dropdown .drop-item,
  .coach-page .tab,
  .coach-page .session-item,
  .coach-page .studio-entry-action,
  .coach-page .session-studio-link,
  .coach-page .header-upload-link { min-height:44px !important; }
  .coach-page .avatar-btn { min-width:44px; justify-content:center; }
  .coach-page .menu-toggle { min-width:44px; }

  .club-dashboard-page header { padding:12px 14px; }
  .club-dashboard-page header h1 { font-size:15px; }
  .club-dashboard-page #userInfo { display:none; }
  .club-dashboard-page header a { display:inline-flex; align-items:center; justify-content:center; min-width:44px; min-height:44px; }
  .club-dashboard-page .container { margin:14px auto; padding:0 12px calc(28px + env(safe-area-inset-bottom)); }
  .club-dashboard-page .club-nav-wrap { margin:0 -12px 14px; }
  .club-dashboard-page .nav { margin:0; padding:0 12px 5px; scroll-padding-inline:12px; }
  .club-dashboard-page .nav a { min-height:44px; padding:8px 13px; }
  .club-dashboard-page .club-nav-hint { display:block; padding:2px 14px 0; color:var(--mobile-muted); font-size:12px; text-align:right; }
  .club-dashboard-page .card { padding:16px; }
  .club-dashboard-page .stats { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
  .club-dashboard-page .stat { min-width:0; padding:13px 8px; }
  .club-dashboard-page table { min-width:620px; }
  .club-dashboard-page .card:has(table) { overflow-x:auto; }
  .club-dashboard-page input:not([type="checkbox"]):not([type="radio"]),
  .club-dashboard-page select,
  .club-dashboard-page textarea { min-height:44px; font-size:16px !important; }
  .club-dashboard-page button,
  .club-dashboard-page .btn { min-height:44px !important; padding:8px 12px !important; }

  .report-viewer-page .topbar { padding:12px 14px; }
  .report-viewer-page .main { padding:24px 14px calc(30px + env(safe-area-inset-bottom)); }
  .report-viewer-page .search-card { padding:18px 16px; }
  .report-viewer-page input,
  .report-viewer-page button { min-height:46px; font-size:16px; }

  .replay-page .top { padding-top:max(10px,env(safe-area-inset-top)); }
  .replay-page .top .meta { display:none; }
  .replay-page .stage { max-height:62dvh; }
  .replay-page .stage video { max-height:62dvh; object-fit:contain; }
  .replay-page .bars { padding-bottom:calc(24px + env(safe-area-inset-bottom)); }
  .replay-page button.play { width:52px; height:52px; }
  .replay-page .top a { display:inline-flex; align-items:center; justify-content:center; width:44px; height:44px; margin:-8px 0 -8px -10px; }
  .replay-page input[type="range"] { min-height:44px; }

  .coach-studio-page .top { padding-top:max(10px,env(safe-area-inset-top)); }
  .coach-studio-page .top h1 { white-space:nowrap; }
  .coach-studio-page .top .meta { display:none; }
  .coach-studio-page .top a,
  .coach-upload-page header a { display:inline-flex; align-items:center; justify-content:center; width:44px; height:44px; margin-left:-10px; }
  .coach-studio-page button.ctl,
  .coach-studio-page .tool,
  .coach-studio-page .saveBtn,
  .coach-studio-page .ai-item .ai-btns button,
  .coach-studio-page .ai-add { min-width:44px; min-height:44px; padding:9px 12px; }
  .coach-studio-page select { min-height:44px; font-size:16px; }
  .coach-studio-page input[type="range"] { min-height:44px; }
  .coach-studio-page input[type="color"] { min-width:44px; height:44px; }

  .coach-upload-page .wrap { padding-bottom:calc(32px + env(safe-area-inset-bottom)); }
  .coach-upload-page select,
  .coach-upload-page input[type="text"],
  .coach-upload-page input[type="datetime-local"] { min-height:46px; font-size:16px; }
  .coach-upload-page .filebox { display:flex; align-items:center; justify-content:center; min-height:48px; }
  .coach-upload-page button { min-height:46px; }
  .coach-upload-page .relationship-link { display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding-inline:6px; }
}

@media (prefers-reduced-motion: reduce) {
  *,*::before,*::after { animation-duration:.01ms !important; transition-duration:.01ms !important; }
}
