/* Flowing Feather · Electric Cobalt V4
 * Independent edition only. Loaded last on every page.
 * Unifies Home / Circle / Other / Mine and all dynamic sheets.
 */
:root {
  --cobalt-950: #061536;
  --cobalt-900: #081f4d;
  --cobalt-800: #0a3188;
  --cobalt-700: #003bd8;
  --cobalt-600: #0047ff;
  --cobalt-500: #0066ff;
  --cyan-400: #00a6ff;
  --ice-50: #f7faff;
  --ice-100: #eef4ff;
  --ice-200: #e2ecff;
  --ice-300: #cbdcff;
  --ice-400: #a9c7ff;
  --ink: #081a3a;
  --muted: #536b8e;
  --surface: #ffffff;
  --canvas: #eef4ff;
  --line: #cbdcff;
  --primary: #0047ff;
  --primary-strong: #003bd8;
  --primary-soft: #e8f0ff;
  --accent: #0066ff;
  --shadow-blue: 0 14px 34px rgba(7, 49, 136, .12);
}

html { background: var(--canvas) !important; }
body {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  color: var(--ink) !important;
  background:
    radial-gradient(circle at 92% 0%, rgba(0, 102, 255, .20), transparent 26rem),
    radial-gradient(circle at 4% 28%, rgba(0, 166, 255, .10), transparent 22rem),
    linear-gradient(180deg, #e8f0ff 0, #f8faff 24rem, #eef4ff 100%) !important;
}
.app-shell, .circle-page, .other-page, .auth-shell {
  visibility: visible !important;
  opacity: 1 !important;
}
button, input, textarea, select { font: inherit; }
a { color: var(--cobalt-600); }

/* Shared cobalt headers */
.hero,
.circle-simple-hero,
.circle-hero,
.other-hero,
.auth-hero,
.publish-hub-hero,
.publish-form-hero,
.profile-setup-hero {
  color: #fff !important;
  border-color: rgba(255, 255, 255, .20) !important;
  background:
    radial-gradient(circle at 88% 8%, rgba(0, 214, 255, .34), transparent 34%),
    linear-gradient(135deg, var(--cobalt-950) 0%, var(--cobalt-600) 58%, var(--cyan-400) 100%) !important;
  box-shadow: 0 16px 38px rgba(0, 55, 170, .27) !important;
}
.hero *, .circle-simple-hero *, .circle-hero *, .other-hero *, .auth-hero *,
.publish-hub-hero *, .publish-form-hero *, .profile-setup-hero * {
  color: inherit;
}
.icon-button, .avatar, .auth-entry-button {
  color: #fff !important;
  border-color: rgba(255, 255, 255, .42) !important;
  background: rgba(255, 255, 255, .14) !important;
}
.eyebrow, .circle-simple-hero p, .other-hero p, .auth-brand p, .auth-brand small {
  color: rgba(255, 255, 255, .78) !important;
}

/* Shared surfaces */
.calendar-card, .agenda-section, .ops-section, .feed-section,
.game-card, .feed-card, .circle-card, .partner-card, .created-circle-card,
.activity-post-card, .circle-photo-card, .mine-hero-card,
.mine-menu-list, .more-feature-card, .profile-info-card,
.profile-photo-section, .profile-photo-card, .mine-club-card,
.club-points-card, .club-sponsor-card, .preference-summary,
.mine-record-card, .form-card-block, .publish-form,
.circle-switcher, .circle-content-card, .venue-card,
.other-feature-card, .other-detail-card, .ai-data-insight,
.ai-data-record, .message-record, .auth-card, .profile-setup-card,
.auth-status, .bottom-sheet, .sheet-card, .success-card {
  color: var(--ink) !important;
  border-color: var(--ice-300) !important;
  background: rgba(255, 255, 255, .97) !important;
  box-shadow: var(--shadow-blue) !important;
}
.section-title h2, .section-title h3,
.game-card h3, .feed-card h3, .circle-card h3,
.mine-menu-list b, .more-feature-card b,
.other-feature-card b, .other-detail-card h2,
.circle-content-card h2, .venue-card h3,
.auth-card h2, .profile-info-card b {
  color: var(--cobalt-950) !important;
}
.section-title p, .game-card p, .feed-card p, .circle-card p,
.more-feature-card p, .other-feature-card p, .other-detail-card p,
.mine-menu-list small, .profile-info-card p,
.circle-content-card p, .venue-card p, .auth-hint {
  color: var(--muted) !important;
}

/* Home: calendar and agenda */
.today-panel, .ai-review-card {
  color: var(--ink) !important;
  border: 1px solid var(--ice-300) !important;
  background: linear-gradient(135deg, #ffffff 0%, #e5efff 100%) !important;
  box-shadow: var(--shadow-blue) !important;
}
.today-panel strong, .ai-review-card b, .calendar-card .section-title h2 {
  color: var(--cobalt-950) !important;
}
.calendar-card {
  background:
    linear-gradient(180deg, rgba(255,255,255,.99), rgba(242,247,255,.99)) !important;
}
.weekday-row {
  color: var(--cobalt-800) !important;
  background: var(--ice-100) !important;
  border-radius: 14px;
}
.day-cell {
  color: var(--ink) !important;
  border-color: transparent !important;
  background: rgba(236, 243, 255, .78) !important;
}
.day-cell:hover { background: var(--ice-200) !important; }
.day-cell.out-month { color: #9aacc6 !important; background: #f6f9ff !important; }
.day-cell.today {
  color: var(--cobalt-700) !important;
  border-color: var(--cobalt-500) !important;
  box-shadow: inset 0 0 0 1px var(--cobalt-500) !important;
}
.day-cell.selected,
.calendar-grid button.active,
.calendar-day.selected {
  color: #fff !important;
  border-color: var(--cobalt-600) !important;
  background: linear-gradient(145deg, var(--cobalt-700), var(--cobalt-500)) !important;
  box-shadow: 0 7px 18px rgba(0, 71, 255, .30) !important;
}
.day-cell.selected .count { color: rgba(255,255,255,.84) !important; }
.day-cell::after { background: #9db2ce !important; }
.day-cell.has-open::after { background: #20a565 !important; }
.day-cell.has-tight::after { background: #f2a51a !important; }
.day-cell.has-full::after { background: #8898ad !important; }
.calendar-actions button, .text-button, .chip {
  color: var(--cobalt-700) !important;
  border-color: var(--ice-300) !important;
  background: var(--ice-100) !important;
}
.chip.active, .calendar-actions button:first-child {
  color: #fff !important;
  border-color: var(--cobalt-600) !important;
  background: linear-gradient(135deg, var(--cobalt-700), var(--cobalt-500)) !important;
}
.game-card {
  border-left: 4px solid var(--cobalt-500) !important;
}
.game-time, .ops-grid span, .more-feature-card > span,
.other-feature-card > span, .ai-data-record > b,
.message-record > span, .mine-avatar, .profile-avatar,
.club-detail-logo, .mine-club-logo {
  color: var(--cobalt-700) !important;
  border-color: var(--ice-300) !important;
  background: linear-gradient(145deg, var(--ice-100), var(--ice-200)) !important;
}
.progress { background: var(--ice-200) !important; }
.progress i, .calendar-extra-card .progress i {
  background: linear-gradient(90deg, var(--cobalt-600), var(--cyan-400)) !important;
}
.tags span, .mini-tags span, .tag-cloud span, .activity-type,
.profile-badges span, .mine-mini-status {
  color: var(--cobalt-800) !important;
  border-color: var(--ice-300) !important;
  background: var(--ice-100) !important;
}

/* Circle: switchers, club and venue content */
.circle-switcher, .circle-tab-row, .circle-filter-row {
  border-color: var(--ice-300) !important;
  background: rgba(255,255,255,.96) !important;
}
.circle-switcher button, .circle-tab-row button, .circle-filter-row button {
  color: var(--muted) !important;
  border-color: var(--ice-300) !important;
  background: var(--ice-100) !important;
}
.circle-switcher button.active, .circle-tab-row button.active,
.circle-filter-row button.active, .circle-page .active {
  color: #fff !important;
  border-color: var(--cobalt-600) !important;
  background: linear-gradient(135deg, var(--cobalt-700), var(--cobalt-500)) !important;
  box-shadow: 0 7px 18px rgba(0, 71, 255, .24) !important;
}
.circle-card, .venue-card, .created-circle-card, .mine-club-card {
  border-top: 3px solid var(--cobalt-500) !important;
}
.circle-meta span, .activity-meta span, .venue-meta span,
.circle-photo-info small, .mine-record-card small {
  color: var(--muted) !important;
}
.circle-photo, .activity-cover, .photo-preview-placeholder,
.club-logo-preview, .club-detail-logo {
  border-color: var(--ice-300) !important;
  background:
    radial-gradient(circle at 78% 12%, rgba(0,166,255,.24), transparent 38%),
    linear-gradient(145deg, var(--ice-100), var(--ice-300)) !important;
}
.inline-action, .social-actions button, .circle-subtitle button,
.venue-action, .club-action {
  color: var(--cobalt-700) !important;
  border-color: var(--ice-300) !important;
  background: var(--ice-100) !important;
}

/* Other: every entry and detail panel */
.other-feature-section, .other-feature-list {
  background: transparent !important;
}
.other-feature-card {
  border-left: 4px solid var(--cobalt-500) !important;
}
.other-feature-card > span,
.other-feature-card.ai-data-card > span,
.other-feature-card.message-feature-card > span {
  color: #fff !important;
  background: linear-gradient(145deg, var(--cobalt-700), var(--cobalt-500)) !important;
  box-shadow: 0 8px 20px rgba(0,71,255,.22) !important;
}
.other-feature-card i, .mine-menu-list i, .more-feature-card i,
.mine-club-card i, .mine-record-card i {
  color: var(--cobalt-500) !important;
}
.other-detail-grid div, .ai-data-summary-grid div, .message-summary-grid div {
  border-color: var(--ice-300) !important;
  background: var(--ice-100) !important;
}
.other-detail-grid b, .ai-data-summary-grid b, .message-summary-grid b,
.ai-data-record strong, .message-record strong {
  color: var(--cobalt-900) !important;
}
.ai-data-insight {
  border-left: 4px solid var(--cyan-400) !important;
  background: linear-gradient(135deg, #f8fbff, #e7f1ff) !important;
}
.message-record.unread {
  border-color: var(--ice-400) !important;
  background: #f0f6ff !important;
}
.message-unread-badge:not(.empty) { background: #e5484d !important; color: #fff !important; }

/* Mine: profile center, menus, points, reports and clubs */
.mine-hero-card, .rich-profile-hero {
  color: #fff !important;
  border-color: transparent !important;
  background:
    radial-gradient(circle at 88% 8%, rgba(0,214,255,.30), transparent 36%),
    linear-gradient(135deg, var(--cobalt-950), var(--cobalt-600) 60%, var(--cyan-400)) !important;
  box-shadow: 0 16px 38px rgba(0,55,170,.26) !important;
}
.mine-hero-card *, .rich-profile-hero * { color: inherit; }
.mine-avatar, .profile-avatar {
  color: var(--cobalt-800) !important;
  border: 3px solid rgba(255,255,255,.88) !important;
  background: linear-gradient(145deg, #fff, var(--ice-200)) !important;
}
.mine-stats-grid div, .rich-profile-stats div, .club-point-grid span {
  border-color: rgba(203,220,255,.74) !important;
  background: rgba(255,255,255,.15) !important;
}
.mine-stats-grid b, .rich-profile-stats b { color: #fff !important; }
.mine-stats-grid span, .rich-profile-stats span { color: rgba(255,255,255,.76) !important; }
.mine-menu-list button {
  color: var(--ink) !important;
  border-color: var(--ice-200) !important;
  background: #fff !important;
}
.mine-menu-list button:active, .mine-menu-list button:hover {
  background: var(--ice-100) !important;
}
.mine-menu-list button > span, .more-feature-card > span {
  color: var(--cobalt-700) !important;
  background: linear-gradient(145deg, var(--ice-100), var(--ice-200)) !important;
}
.more-feature-grid { gap: 12px !important; }
.more-feature-card {
  border-top: 3px solid var(--cobalt-500) !important;
}
.club-points-card {
  color: var(--ink) !important;
  background: linear-gradient(145deg, #ffffff, #e7f0ff) !important;
}
.club-points-card > div:first-child, .club-card-title,
.profile-section-title, .form-card-title {
  color: var(--cobalt-900) !important;
}
.club-point-grid span {
  color: var(--muted) !important;
  border-color: var(--ice-300) !important;
  background: rgba(255,255,255,.82) !important;
}
.club-point-grid span b { color: var(--cobalt-700) !important; }
.preference-summary, .mine-record-card, .profile-photo-card {
  border-left: 3px solid var(--cobalt-400, #4d8cff) !important;
}

/* Forms and sheets */
.sheet-mask { background: rgba(4, 19, 49, .54) !important; }
.bottom-sheet {
  border-top: 1px solid var(--ice-300) !important;
  background: #f8faff !important;
}
.sheet-handle { background: var(--ice-400) !important; }
.sheet-title { color: var(--cobalt-950) !important; }
.sheet-subtitle { color: var(--muted) !important; }
.sheet-list div, .more-feature-sheet-list div, .invite-list article {
  border-color: var(--ice-300) !important;
  background: #fff !important;
}
.field input, .field textarea, .field select,
.auth-field input, .auth-field textarea, .auth-field select,
.club-desc-textarea {
  color: var(--ink) !important;
  border-color: var(--ice-300) !important;
  background: #fff !important;
}
.field input:focus, .field textarea:focus, .field select:focus,
.auth-field input:focus, .auth-field textarea:focus, .auth-field select:focus,
.club-desc-textarea:focus {
  border-color: var(--cobalt-500) !important;
  box-shadow: 0 0 0 3px rgba(0,102,255,.14) !important;
  outline: none !important;
}
.template-row button, .publish-hub-grid button, .switch-row,
.form-preview-strip, .club-logo-preview {
  color: var(--ink) !important;
  border-color: var(--ice-300) !important;
  background: var(--ice-100) !important;
}
.primary-action, .join-button, .auth-submit,
.sheet-actions .primary-action, .other-detail-actions .primary-action {
  color: #fff !important;
  border-color: var(--cobalt-600) !important;
  background: linear-gradient(135deg, var(--cobalt-700), var(--cobalt-500)) !important;
  box-shadow: 0 8px 22px rgba(0,71,255,.25) !important;
}
.secondary-action, .sheet-actions .secondary-action,
.auth-actions a, .auth-actions button, .test-account-button {
  color: var(--cobalt-700) !important;
  border-color: var(--ice-300) !important;
  background: var(--ice-100) !important;
}

/* Auth */
.auth-shell {
  background:
    radial-gradient(circle at 90% 4%, rgba(0,102,255,.24), transparent 28rem),
    linear-gradient(180deg, #e8f0ff, #f8faff) !important;
}
.auth-tabs { background: var(--ice-100) !important; }
.auth-tabs button { color: var(--muted) !important; }
.auth-tabs button.active,
.auth-card[aria-label*="用户名密码"] .auth-tabs button.active {
  color: #fff !important;
  background: linear-gradient(135deg, var(--cobalt-700), var(--cobalt-500)) !important;
}
.brand-mark {
  color: #fff !important;
  background: linear-gradient(145deg, var(--cobalt-600), var(--cyan-400)) !important;
  box-shadow: 0 10px 24px rgba(0,71,255,.26) !important;
}
.auth-code-row button, .wechat-button {
  color: var(--cobalt-700) !important;
  border-color: var(--ice-300) !important;
  background: var(--ice-100) !important;
}

/* Bottom navigation */
.bottom-nav {
  border-top: 1px solid var(--ice-300) !important;
  background: rgba(255,255,255,.97) !important;
  box-shadow: 0 -12px 30px rgba(7,49,136,.10) !important;
  backdrop-filter: blur(18px);
}
.bottom-nav button { color: #7184a0 !important; background: transparent !important; }
.bottom-nav button.active, .bottom-nav .active,
.bottom-nav #navCalendar.active span { color: var(--cobalt-600) !important; }
.bottom-nav .nav-publish {
  color: #fff !important;
  border-color: rgba(255,255,255,.85) !important;
  background: linear-gradient(145deg, var(--cobalt-700), var(--cobalt-500)) !important;
  box-shadow: 0 9px 24px rgba(0,71,255,.34) !important;
}
.bottom-nav .nav-publish span { color: #fff !important; }
.fab {
  color: #fff !important;
  background: linear-gradient(145deg, var(--cobalt-700), var(--cobalt-500)) !important;
  box-shadow: 0 12px 28px rgba(0,71,255,.32) !important;
}

/* Semantic colors stay semantic */
.status-pill.open, .success-card, .auth-status.success {
  color: #11613d !important;
  border-color: #9ad9bb !important;
  background: #e9f8f0 !important;
}
.status-pill.tight { color: #8a5700 !important; background: #fff3d8 !important; }
.status-pill.full, .form-error, .auth-error { color: #a52b34 !important; background: #fff0f1 !important; }
.dot.green { background: #20a565 !important; }
.dot.amber { background: #f2a51a !important; }
.dot.gray { background: #8898ad !important; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; }
}
/* Flowing Feather · Cobalt Blue "Mine" tone repair v5 · 2026-07-13
 * Scope: bottom navigation + the "我的" sheet only.
 * Fixes the electric-blue/cyan cast and inherited text contrast conflicts
 * without changing calendar, circle, more, or semantic status colours.
 */

:root {
  --cobalt-950: #071a3d;
  --cobalt-900: #0a2a5e;
  --cobalt-800: #0b3d91;
  --cobalt-700: #003d91;
  --cobalt-600: #0047ab;
  --cobalt-500: #1e63b6;
  --cobalt-300: #8fb2df;
  --cobalt-100: #e8f0fb;
  --cobalt-50: #f7faff;
}

/* Bottom-navigation brand state: keep the selected item and publish control cobalt. */
.bottom-nav button.active {
  color: var(--cobalt-600) !important;
  background: linear-gradient(180deg, #f7faff, #e8f0fb) !important;
  box-shadow: inset 0 -3px 0 rgba(0, 71, 171, .22) !important;
}

.bottom-nav .nav-publish,
.bottom-nav .nav-publish span {
  color: #ffffff !important;
  border-color: rgba(255, 255, 255, .88) !important;
  background: linear-gradient(145deg, var(--cobalt-700), var(--cobalt-500)) !important;
  box-shadow: 0 9px 24px rgba(0, 71, 171, .30) !important;
}

.bottom-nav .nav-publish span {
  border: 0 !important;
  box-shadow: none !important;
}

/* "我的" identity card: restrained true-cobalt gradient, no cyan neon. */
.mine-hero-card {
  color: #ffffff !important;
  border-color: rgba(255, 255, 255, .30) !important;
  background:
    radial-gradient(circle at 88% 8%, rgba(143, 178, 223, .24), transparent 38%),
    linear-gradient(135deg, var(--cobalt-950) 0%, var(--cobalt-600) 66%, #3f7fcf 100%) !important;
  box-shadow: 0 14px 30px rgba(0, 55, 135, .23) !important;
}

.mine-hero-card .mine-avatar {
  color: var(--cobalt-700) !important;
  border-color: rgba(255, 255, 255, .72) !important;
  background: linear-gradient(145deg, #ffffff, #dce8f7) !important;
  box-shadow: 0 8px 18px rgba(7, 26, 61, .20) !important;
}

.mine-hero-card .mine-title-row h2 {
  color: #ffffff !important;
}

.mine-hero-card .mine-title-row .mine-user-id {
  color: var(--cobalt-900) !important;
  border-color: rgba(255, 255, 255, .72) !important;
  background: rgba(255, 255, 255, .94) !important;
}

.mine-hero-card .sheet-subtitle {
  color: rgba(255, 255, 255, .84) !important;
}

/* The stats sit outside the dark hero. Restore dark copy on a light cobalt surface. */
.mine-stats-grid div,
.mine-stats-grid .mine-stat-card {
  color: #0b1f3a !important;
  border-color: #c9d9ee !important;
  background: var(--cobalt-50) !important;
  box-shadow: 0 7px 16px rgba(10, 54, 112, .07) !important;
}

.mine-stats-grid b,
.mine-stats-grid .mine-stat-card b {
  color: var(--cobalt-600) !important;
}

.mine-stats-grid span,
.mine-stats-grid .mine-stat-card span {
  color: #566d8d !important;
}

/* Mine content uses quiet cobalt tints instead of the former electric blue. */
.mine-points-card {
  border-color: #c9d9ee !important;
  background: linear-gradient(135deg, #ffffff, #edf3fb) !important;
  box-shadow: 0 10px 22px rgba(10, 54, 112, .08) !important;
}

.mine-points-main b,
.mine-points-breakdown b,
.mine-point-rule-list b,
.mine-point-rule-table td:nth-child(2),
.mine-point-rule-table td:nth-child(4),
.mine-point-rule-table tfoot td:last-child,
.mine-record-card i,
.mine-club-card i {
  color: var(--cobalt-600) !important;
}

.mine-menu-list button,
.mine-record-card,
.mine-club-card,
.mine-point-rule-card,
.mine-rule-note {
  border-color: #c9d9ee !important;
  box-shadow: 0 7px 18px rgba(10, 54, 112, .055) !important;
}

.mine-menu-list button > span,
.mine-mini-status,
.mine-review-score,
.mine-report-preview button {
  color: var(--cobalt-600) !important;
  background: var(--cobalt-100) !important;
}

.mine-stats-grid .mine-stat-card.clickable:focus-visible,
.mine-menu-list button:focus-visible {
  outline: 3px solid rgba(0, 71, 171, .34) !important;
  outline-offset: 2px;
}

/* Cobalt calendar availability marker repair — 2026-07-13.
 * In this colour edition, the calendar's former green availability marker
 * follows the cobalt brand. Amber and grey capacity markers stay semantic.
 */
.day-cell.has-open::after,
.dot.green {
  background: #0047ab !important;
  box-shadow: 0 0 0 2px rgba(0, 71, 171, .14) !important;
}

/* Cobalt home calendar: four activity categories — 2026-07-13.
 * Category colours are deliberately limited to the card rail, time block,
 * type tag, progress bar and CTA. Capacity pills keep their status colours.
 */

/* 1. 俱乐部约球 — emerald */
.game-card.club-game-card {
  border-color: #b8dfcc !important;
  border-left-color: #23825b !important;
  background: linear-gradient(180deg, #ffffff 0%, #f3fbf7 100%) !important;
  box-shadow: 0 12px 28px rgba(35, 130, 91, .10) !important;
}
.game-card.club-game-card .game-time {
  color: #166344 !important;
  border-color: #b8dfcc !important;
  background: linear-gradient(145deg, #e8f7ef, #d8f0e4) !important;
}
.game-card.club-game-card .role-tag {
  color: #166344 !important;
  border-color: #b8dfcc !important;
  background: #e8f7ef !important;
}
.game-card.club-game-card .progress i {
  background: linear-gradient(90deg, #23825b, #5fbd8f) !important;
}
.game-card.club-game-card .join-button {
  border-color: #23825b !important;
  background: linear-gradient(135deg, #176a49, #2f946b) !important;
  box-shadow: 0 8px 20px rgba(35, 130, 91, .20) !important;
}
.game-card.club-game-card .price { color: #176a49 !important; }

/* 2. 场地约球 — cobalt */
.game-card.venue-game-card {
  border-color: #c9d9ee !important;
  border-left-color: #0047ab !important;
  background: linear-gradient(180deg, #ffffff 0%, #f3f7fd 100%) !important;
  box-shadow: 0 12px 28px rgba(0, 71, 171, .10) !important;
}
.game-card.venue-game-card .game-time {
  color: #003d91 !important;
  border-color: #c9d9ee !important;
  background: linear-gradient(145deg, #edf3fb, #dfeafa) !important;
}
.game-card.venue-game-card .role-tag {
  color: #003d91 !important;
  border-color: #c9d9ee !important;
  background: #e8f0fb !important;
}
.game-card.venue-game-card .progress i {
  background: linear-gradient(90deg, #0047ab, #5b8fd7) !important;
}
.game-card.venue-game-card .join-button {
  border-color: #0047ab !important;
  background: linear-gradient(135deg, #003d91, #1e63b6) !important;
  box-shadow: 0 8px 20px rgba(0, 71, 171, .20) !important;
}
.game-card.venue-game-card .price { color: #003d91 !important; }

/* 3. 流行羽赛事 — violet */
.calendar-extra-card.tournament-card {
  border-color: #d9ccf2 !important;
  border-left-color: #7651b5 !important;
  background: linear-gradient(180deg, #ffffff 0%, #f8f5fc 100%) !important;
  box-shadow: 0 12px 28px rgba(118, 81, 181, .10) !important;
}
.calendar-extra-card.tournament-card .game-time {
  color: #593a91 !important;
  border-color: #d9ccf2 !important;
  background: linear-gradient(145deg, #f3edfb, #e8def6) !important;
}
.calendar-extra-card.tournament-card .role-tag {
  color: #593a91 !important;
  border-color: #d9ccf2 !important;
  background: #f1ebf9 !important;
}
.calendar-extra-card.tournament-card .progress i {
  background: linear-gradient(90deg, #7651b5, #a680d2) !important;
}
.calendar-extra-card.tournament-card .join-button {
  border-color: #7651b5 !important;
  background: linear-gradient(135deg, #593a91, #8562be) !important;
  box-shadow: 0 8px 20px rgba(118, 81, 181, .20) !important;
}
.calendar-extra-card.tournament-card .price { color: #593a91 !important; }
.calendar-extra-card.tournament-card .extra-mini-attendees {
  border-color: #e4daf5 !important;
  background: #fbf9fe !important;
}
.status-pill.event-tournament {
  color: #593a91 !important;
  border-color: #d9ccf2 !important;
  background: #f1ebf9 !important;
}

/* 4. 其他活动 — amber */
.calendar-extra-card.activity-card {
  border-color: #ead5ad !important;
  border-left-color: #b87113 !important;
  background: linear-gradient(180deg, #ffffff 0%, #fff9ee 100%) !important;
  box-shadow: 0 12px 28px rgba(184, 113, 19, .10) !important;
}
.calendar-extra-card.activity-card .game-time {
  color: #8a5700 !important;
  border-color: #ead5ad !important;
  background: linear-gradient(145deg, #fff5df, #f8e6bf) !important;
}
.calendar-extra-card.activity-card .role-tag {
  color: #8a5700 !important;
  border-color: #ead5ad !important;
  background: #fff3d8 !important;
}
.calendar-extra-card.activity-card .progress i {
  background: linear-gradient(90deg, #b87113, #dfaa45) !important;
}
.calendar-extra-card.activity-card .join-button {
  border-color: #b87113 !important;
  background: linear-gradient(135deg, #925808, #c98320) !important;
  box-shadow: 0 8px 20px rgba(184, 113, 19, .20) !important;
}
.calendar-extra-card.activity-card .price { color: #8a5700 !important; }
.calendar-extra-card.activity-card .extra-mini-attendees {
  border-color: #eadfc8 !important;
  background: #fffdf8 !important;
}
.status-pill.event-activity {
  color: #8a5700 !important;
  border-color: #ead5ad !important;
  background: #fff3d8 !important;
}

/* Cobalt publish header contrast repair — 2026-07-13.
 * Scope: the publish/create hub hero only. The global sheet title rules were
 * overriding white-on-cobalt copy, and the plus glyph inherited white on a
 * white tile. Keep Home, Mine, other sheets and publish cards untouched.
 */
.publish-hub-hero {
  color: #ffffff !important;
  border-color: rgba(255, 255, 255, .28) !important;
  background:
    radial-gradient(circle at 88% 8%, rgba(143, 178, 223, .24), transparent 38%),
    linear-gradient(135deg, #071a3d 0%, #0047ab 66%, #3f7fcf 100%) !important;
  box-shadow: 0 14px 30px rgba(0, 55, 135, .23) !important;
}

.publish-hub-hero > span {
  color: #0047ab !important;
  border: 1px solid rgba(255, 255, 255, .74) !important;
  background: linear-gradient(145deg, #ffffff, #dce8f7) !important;
  box-shadow: 0 8px 18px rgba(7, 26, 61, .20) !important;
}

.publish-hub-hero .sheet-title {
  color: #ffffff !important;
}

.publish-hub-hero .sheet-subtitle {
  color: rgba(255, 255, 255, .84) !important;
}

/* Cobalt user-profile header contrast repair — 2026-07-13.
 * Scope: user profile sheets opened from avatars / "查看资料" only.
 * Removes the old electric-blue/cyan end stop and fixes inherited title,
 * ID-chip and avatar contrast without changing Mine, Publish or list cards.
 */
.rich-profile-hero {
  color: #ffffff !important;
  border-color: rgba(255, 255, 255, .28) !important;
  background:
    radial-gradient(circle at 88% 8%, rgba(143, 178, 223, .24), transparent 38%),
    linear-gradient(135deg, #071a3d 0%, #0047ab 66%, #3f7fcf 100%) !important;
  box-shadow: 0 14px 30px rgba(0, 55, 135, .23) !important;
}

.rich-profile-hero .profile-avatar {
  color: #0b3d91 !important;
  border-color: rgba(255, 255, 255, .88) !important;
  background: linear-gradient(145deg, #ffffff, #dce8f7) !important;
  box-shadow: 0 8px 18px rgba(7, 26, 61, .20) !important;
}

.rich-profile-hero .sheet-title {
  color: #ffffff !important;
}

.rich-profile-hero .mine-user-id {
  color: #0a2a5e !important;
  border-color: rgba(255, 255, 255, .72) !important;
  background: rgba(255, 255, 255, .94) !important;
}

.rich-profile-hero .review-v-badge {
  color: #ffffff !important;
  border-color: #ffffff !important;
  background: linear-gradient(135deg, #0047ab, #5b8fd7) !important;
  box-shadow: 0 4px 10px rgba(0, 55, 135, .28) !important;
}

/* Review membership entry contrast repair — 2026-07-17.
 * This must follow the generic Mine menu rules so the VIP treatment wins. */
.mine-menu-list button.mine-membership-entry {
  color: #ffffff !important;
  border-color: #c79a3c !important;
  background:
    radial-gradient(circle at 88% 0, rgba(255, 224, 145, .24), transparent 36%),
    linear-gradient(135deg, #071a3d 0%, #0b3d91 72%, #765313 100%) !important;
  box-shadow: 0 10px 24px rgba(7, 26, 61, .18) !important;
}

.mine-menu-list button.mine-membership-entry b {
  color: #ffffff !important;
  text-shadow: 0 1px 2px rgba(0, 0, 0, .18);
}

.mine-menu-list button.mine-membership-entry small {
  color: #ffe6a6 !important;
}

.mine-menu-list button.mine-membership-entry > span {
  color: #503400 !important;
  background: linear-gradient(145deg, #fff1b5, #e4ad37) !important;
  box-shadow: 0 6px 14px rgba(0, 0, 0, .18) !important;
}

.mine-menu-list button.mine-membership-entry > i {
  color: #ffe6a6 !important;
}

.mine-menu-list button.mine-membership-entry:hover,
.mine-menu-list button.mine-membership-entry:active {
  background:
    radial-gradient(circle at 88% 0, rgba(255, 224, 145, .30), transparent 38%),
    linear-gradient(135deg, #061633 0%, #0a357e 72%, #68480f 100%) !important;
}

/* Review membership page hero: clean cobalt hierarchy, gold accent only. */
.membership-hero-card {
  color: #ffffff !important;
  border: 1px solid rgba(255, 255, 255, .24) !important;
  background:
    radial-gradient(circle at 88% 8%, rgba(145, 187, 244, .30), transparent 38%),
    linear-gradient(135deg, #061a3e 0%, #0849a6 58%, #397fd1 100%) !important;
  box-shadow: 0 15px 32px rgba(0, 55, 135, .25) !important;
}

.membership-hero-card .sheet-title {
  color: #ffffff !important;
  text-shadow: 0 1px 3px rgba(0, 20, 55, .24);
}

.membership-hero-card p {
  color: rgba(239, 246, 255, .88) !important;
}

.membership-hero-card > span {
  color: #4e3300 !important;
  border: 1px solid rgba(255, 255, 255, .74) !important;
  background: linear-gradient(145deg, #fff4bd, #e5ad37) !important;
  box-shadow: 0 8px 18px rgba(4, 28, 67, .24) !important;
}


/* v=publish_hero_colors_v55_20260722: per-flow palette overrides */
.publish-form-hero.club-game-hero { background:linear-gradient(135deg,#075d4e 0%,#15956f 58%,#48c59b 100%) !important; box-shadow:0 14px 28px rgba(7,93,78,.24) !important; }
.publish-form-hero.venue-game-hero { background:linear-gradient(135deg,#073b85 0%,#0f6bd8 58%,#55a9f3 100%) !important; box-shadow:0 14px 28px rgba(7,59,133,.24) !important; }
.publish-form-hero.venue-hero { background:linear-gradient(135deg,#29388f 0%,#5168d7 58%,#55b7d9 100%) !important; box-shadow:0 14px 28px rgba(41,56,143,.23) !important; }
.publish-form-hero.circle-hero { background:linear-gradient(135deg,#54258d 0%,#8752c7 58%,#c478df 100%) !important; box-shadow:0 14px 28px rgba(84,37,141,.23) !important; }
.publish-form-hero.activity-hero { background:linear-gradient(135deg,#a43d18 0%,#e26c2d 55%,#f6aa4a 100%) !important; box-shadow:0 14px 28px rgba(164,61,24,.23) !important; }
.publish-form-hero.club-game-hero .sheet-title,.publish-form-hero.club-game-hero .sheet-subtitle,
.publish-form-hero.venue-game-hero .sheet-title,.publish-form-hero.venue-game-hero .sheet-subtitle,
.publish-form-hero.venue-hero .sheet-title,.publish-form-hero.venue-hero .sheet-subtitle,
.publish-form-hero.circle-hero .sheet-title,.publish-form-hero.circle-hero .sheet-subtitle,
.publish-form-hero.activity-hero .sheet-title,.publish-form-hero.activity-hero .sheet-subtitle { color:#fff !important; }
.publish-form-hero.club-game-hero .sheet-subtitle,.publish-form-hero.venue-game-hero .sheet-subtitle,.publish-form-hero.venue-hero .sheet-subtitle,.publish-form-hero.circle-hero .sheet-subtitle,.publish-form-hero.activity-hero .sheet-subtitle { opacity:.84; }
.publish-form-hero.club-game-hero > span,.publish-form-hero.venue-game-hero > span,.publish-form-hero.venue-hero > span,.publish-form-hero.circle-hero > span,.publish-form-hero.activity-hero > span { color:#fff !important; background:rgba(255,255,255,.17) !important; border-color:rgba(255,255,255,.3) !important; }


/* v=full_means_closed_v57_20260722: visually closed when capacity is full */
.primary-action.is-disabled,.sheet-actions .primary-action:disabled { cursor:not-allowed !important; color:#7d899b !important; border-color:#d6dde7 !important; background:#e5eaf0 !important; box-shadow:none !important; opacity:1 !important; }

/* v=venue_challenge_distinct_card_and_detail_theme_20260807: final cobalt overrides for challenge card */
.game-card.challenge-game-card {
  border-color: #cdb9f0 !important;
  border-left-color: #6240ad !important;
  background: linear-gradient(180deg, #ffffff 0%, #f4efff 100%) !important;
  box-shadow: 0 12px 28px rgba(98, 64, 173, .14) !important;
}
.game-card.challenge-game-card .game-time {
  color: #6240ad !important;
  border-color: #d8c9f4 !important;
  background: linear-gradient(145deg, #eee6ff, #e1d3ff) !important;
}
.game-card.challenge-game-card .role-tag,
.game-card.challenge-game-card .tags span {
  color: #6240ad !important;
  border-color: #d8c9f4 !important;
  background: #eee6ff !important;
}
.game-card.challenge-game-card .status-pill {
  color: #6240ad !important;
  border-color: #d8c9f4 !important;
  background: #e9ddff !important;
}
.game-card.challenge-game-card .progress i {
  background: linear-gradient(90deg, #7650c5, #bd9bff) !important;
}
.game-card.challenge-game-card .join-button {
  border-color: #6240ad !important;
  background: linear-gradient(135deg, #56369b, #805ec5) !important;
  box-shadow: 0 8px 20px rgba(98, 64, 173, .20) !important;
}
.game-card.challenge-game-card .price { color: #6240ad !important; }
.challenge-detail-participant-wall {
  border-color: #ded1fb !important;
  background: linear-gradient(180deg, #fbf9ff 0%, #f2ebff 100%) !important;
}
.challenge-detail-grid .type-item,
.challenge-detail-grid .court-item {
  border-color: #d8cdf5 !important;
  background: linear-gradient(145deg, #fcfaff, #f1ebff) !important;
}
.challenge-detail-grid .type-item .activity-detail-icon,
.challenge-detail-grid .court-item .activity-detail-icon {
  background: linear-gradient(135deg, #6240ad, #9a72e8) !important;
  box-shadow: 0 5px 10px rgba(98,64,173,.18) !important;
}
.challenge-detail-grid .type-item .activity-detail-tags em { color: #6240ad !important; background: #eee6ff !important; }
.challenge-detail-grid .court-item b { color: #6240ad !important; }
.challenge-detail-grid .note-item {
  border-color: #ded2f4 !important;
  background: linear-gradient(145deg, #fcfaff, #f5efff) !important;
}
.challenge-detail-grid .note-item .activity-detail-icon { color: #6240ad !important; background: #eadfff !important; }
.challenge-detail-actions { grid-template-columns: 1fr 1fr; }

/* v=venue_challenge_coral_contrast_20260807: challenge is coral/red, tournament remains violet */
.game-card.challenge-game-card {
  border-color: #f2b7b0 !important;
  border-left-color: #d64b4b !important;
  background: linear-gradient(180deg, #ffffff 0%, #fff2f0 100%) !important;
  box-shadow: 0 12px 28px rgba(214, 75, 75, .14) !important;
}
.game-card.challenge-game-card .game-time {
  color: #b8323b !important;
  border-color: #f2c4bf !important;
  background: linear-gradient(145deg, #ffe9e5, #ffd6d0) !important;
}
.game-card.challenge-game-card .role-tag,
.game-card.challenge-game-card .tags span {
  color: #b8323b !important;
  border-color: #f2c4bf !important;
  background: #ffe8e4 !important;
}
.game-card.challenge-game-card .status-pill {
  color: #b8323b !important;
  border-color: #f2c4bf !important;
  background: #ffe0dc !important;
}
.game-card.challenge-game-card .progress i {
  background: linear-gradient(90deg, #d64b4b, #ff9b82) !important;
}
.game-card.challenge-game-card .join-button {
  border-color: #c83e46 !important;
  background: linear-gradient(135deg, #b8323b, #e56757) !important;
  box-shadow: 0 8px 20px rgba(214, 75, 75, .22) !important;
}
.game-card.challenge-game-card .price { color: #b8323b !important; }
.challenge-detail-participant-wall {
  border-color: #f2c4bf !important;
  background: linear-gradient(180deg, #fffaf9 0%, #fff0ed 100%) !important;
}
.challenge-detail-grid .type-item,
.challenge-detail-grid .court-item {
  border-color: #f2c4bf !important;
  background: linear-gradient(145deg, #fffdfc, #fff0ed) !important;
}
.challenge-detail-grid .type-item .activity-detail-icon,
.challenge-detail-grid .court-item .activity-detail-icon {
  background: linear-gradient(135deg, #b8323b, #ed765e) !important;
  box-shadow: 0 5px 10px rgba(184,50,59,.20) !important;
}
.challenge-detail-grid .type-item .activity-detail-tags em { color: #b8323b !important; background: #ffe8e4 !important; }
.challenge-detail-grid .court-item b { color: #b8323b !important; }
.challenge-detail-grid .note-item {
  border-color: #f2c4bf !important;
  background: linear-gradient(145deg, #fffdfc, #fff3f0) !important;
}
.challenge-detail-grid .note-item .activity-detail-icon { color: #b8323b !important; background: #ffe1dc !important; }

/* v=compact_agenda_summary_v72: reduce category summary footprint on mobile */
.agenda-summary {
  padding: 12px 14px 11px !important;
  border-radius: 18px !important;
}
.agenda-summary-title {
  margin-bottom: 8px !important;
  min-height: 20px !important;
}
.agenda-summary-title b { font-size: 14px !important; }
.agenda-summary-title span { font-size: 11px !important; padding: 3px 7px !important; }
.agenda-summary-tags {
  display: flex !important;
  flex-wrap: nowrap !important;
  gap: 5px !important;
  overflow: hidden !important;
  margin: 0 !important;
}
.agenda-summary-tags span {
  flex: 0 1 auto !important;
  min-width: 0 !important;
  white-space: nowrap !important;
  padding: 4px 6px !important;
  border-radius: 8px !important;
  font-size: 10px !important;
  line-height: 16px !important;
  letter-spacing: -0.2px !important;
}


/* v=organizer_wechat_after_registration_v73 */
.organizer-wechat-card { display:flex; align-items:flex-start; gap:10px; margin:12px 0 14px; padding:11px 12px; border:1px solid #cfe0ff; border-radius:14px; background:linear-gradient(135deg,#f5f9ff,#fff); color:#19335f; }
.organizer-wechat-card.is-locked { border-color:#e4e8f0; background:#f8fafc; color:#6f7b8e; }
.organizer-wechat-icon { display:grid; place-items:center; flex:0 0 26px; width:26px; height:26px; border-radius:9px; background:#e5efff; color:#3568bd; font-weight:900; }
.organizer-wechat-card.is-locked .organizer-wechat-icon { background:#edf0f5; color:#8a95a6; }
.organizer-wechat-card b { display:block; font-size:13px; line-height:18px; }
.organizer-wechat-card p { margin:2px 0 0; font-size:12px; font-weight:800; line-height:18px; }
.organizer-wechat-card small { display:block; margin-top:2px; font-size:10px; line-height:15px; color:#7b8798; }
