@charset "UTF-8";body {
  margin: 0;
  background: #f4f6fa;
}._loading-container_86kem_1 {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  color: #666;
}
._loading-container_86kem_1 ._loading_86kem_1 {
  animation: _rotate_86kem_1 1s linear infinite;
}
@keyframes _rotate_86kem_1 {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}
body {
  background: #f6f7fa;
  min-height: 100vh;
  max-height: 100vh;
  overflow-y: hidden;
  font-family: "Inter", "PingFang SC", "Microsoft YaHei", Arial, sans-serif;
}

.main-wrapper {
  width: 100%;
  max-width: 480px;
  height: 100vh;
  margin: 0 auto;
  background: #fff;
  border-radius: 22px;
  box-shadow: 0 6px 32px rgba(25, 118, 210, 0.07), 0 1.5px 6px rgba(0, 0, 0, 0.03);
  display: flex;
  flex-direction: column;
  align-items: stretch;
  overflow: hidden;
  border: 1.5px solid #f0f1f5;
  overflow-y: hidden;
}

.navbar {
  position: sticky;
  top: 0;
  z-index: 10;
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 64px;
  border-radius: 22px 22px 0 0;
  padding: 0 32px;
  border-bottom: 1.5px solid #f0f1f5;
  -webkit-app-region: drag;
  position: relative;
}
.navbar .navbar-left {
  flex: 1;
}
.navbar .navbar-center {
  position: absolute;
  left: 50%;
  top: 0;
  height: 100%;
  display: flex;
  align-items: center;
  transform: translateX(-50%);
  justify-content: center;
  z-index: 2;
}
.navbar .navbar-center img {
  height: 24px;
  display: block;
}
.navbar .navbar-right {
  display: flex;
  align-items: center;
  gap: 14px;
  flex: 1;
  justify-content: flex-end;
}
.navbar .navbar-right .avatar {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  object-fit: cover;
  border: 2px solid #fff;
  box-shadow: 0 2px 8px rgba(25, 118, 210, 0.08);
}
.navbar .navbar-right span,
.navbar .navbar-right div {
  font-weight: 500;
  color: #232d3b;
  font-size: 1.08rem;
}

.schedule-header {
  position: sticky;
  top: 64px;
  z-index: 9;
  background: #fff;
  color: #fff;
  padding: 36px 0 18px 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background-image: url("./background-DKl2WLGC.png");
  background-size: cover;
  background-position: left center;
  background-repeat: no-repeat;
}
.schedule-header .schedule-time {
  font-size: 3.2rem;
  font-weight: 700;
  margin-bottom: 6px;
  letter-spacing: 1px;
  color: #fff;
}
.schedule-header .schedule-date {
  font-size: 1.18rem;
  opacity: 0.85;
  font-weight: 400;
  letter-spacing: 0.2px;
  color: #cacaca;
}

.schedule-tabs {
  position: sticky;
  top: 152px; /* 64px navbar + 88px header 近似 */
  z-index: 8;
  background: #fff;
  display: flex;
  gap: 18px;
  justify-content: center;
  align-items: center;
  padding: 8px 0 8px 0;
  border: none;
}
.schedule-tabs.show-box-shadow {
  box-shadow: 0 2px 8px rgba(25, 118, 210, 0.2);
}
.schedule-tabs .tab {
  font-size: 1.13rem;
  color: #232d3b;
  background: none;
  border-radius: 999px;
  padding: 8px 28px;
  cursor: pointer;
  border: none;
  font-weight: 500;
  transition: background 0.18s, color 0.18s;
  position: relative;
}
.schedule-tabs .tab:hover {
  background: #f1f6fd;
  color: #1976d2;
}
.schedule-tabs .tab.active {
  background: #eaf2ff;
  color: #1976d2;
  font-weight: 700;
  box-shadow: 0 2px 8px rgba(25, 118, 210, 0.04);
}

.schedule-list {
  flex: 1 1 0;
  min-height: 0;
  padding: 0 18px 24px 18px;
  display: flex;
  flex-direction: column;
  gap: 0;
  overflow-y: auto;
  background: none;
}
.schedule-list .schedule-item {
  background: #fcfdff;
  border-radius: 16px;
  border: 1.5px solid #eaf0fa;
  box-shadow: 0 2px 12px rgba(25, 118, 210, 0.04);
  margin-bottom: 18px;
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  cursor: pointer;
  transition: border-color 0.18s, box-shadow 0.18s, background 0.18s;
}
.schedule-list .schedule-item:hover {
  border-color: #b6d2fa;
  background: #f6faff;
  box-shadow: 0 4px 24px rgba(25, 118, 210, 0.1);
}
.schedule-list .schedule-item .item-title {
  font-size: 1rem;
  font-weight: 600;
  color: #232d3b;
  margin-bottom: 2px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.schedule-list .schedule-item .item-time {
  font-size: 1.02rem;
  color: #6b7280;
  font-weight: 500;
  margin-bottom: 0;
}
.schedule-list .schedule-item .item-host,
.schedule-list .schedule-item .item-location {
  font-size: 1rem;
  color: #b0b7c3;
  font-weight: 400;
  text-align: right;
  margin-top: 0;
}
.schedule-list .schedule-item .item-location {
  text-align: left;
}
.schedule-list .schedule-item .item-meta {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  margin-bottom: 0;
}

.divider {
  height: 1px;
  background: #f0f1f5;
  margin: 0 18px 0 18px;
  border: none;
}

.schedule-item.is_ending {
  background: #f5f6fa;
  border-color: #e0e3ea;
  opacity: 0.7;
}
.schedule-item.is_ending .item-title,
.schedule-item.is_ending .item-time,
.schedule-item.is_ending .item-host,
.schedule-item.is_ending .item-location {
  color: #b0b7c3;
}

.main-wrapper {
  max-width: 100vw;
  border-radius: 0;
  margin: 0;
}
.main-wrapper .navbar {
  border-radius: 0;
  padding-left: 10px;
  padding-right: 10px;
}
.main-wrapper .schedule-tabs {
  padding-left: 0;
  padding-right: 0;
  margin-left: 0;
  margin-right: 0;
}
.main-wrapper .schedule-list {
  padding-left: 6px;
  padding-right: 6px;
}

.tabs-shadow {
  position: sticky;
  top: 162px; /* navbar + header + tabs 近似高度 */
  left: 0;
  right: 0;
  height: 16px;
  z-index: 9;
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.18s;
  background: linear-gradient(to bottom, rgba(0, 0, 0, 0.03), rgba(0, 0, 0, 0));
}

.tabs-shadow.show {
  opacity: 1;
}.login-container {
  position: relative;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  background-image: url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201422%20800'%20opacity='0.3'%3e%3cdefs%3e%3clinearGradient%20x1='50%25'%20y1='0%25'%20x2='50%25'%20y2='100%25'%20id='oooscillate-grad'%3e%3cstop%20stop-color='hsl(206,%2075%25,%2049%25)'%20stop-opacity='1'%20offset='0%25'%3e%3c/stop%3e%3cstop%20stop-color='hsl(331,%2090%25,%2056%25)'%20stop-opacity='1'%20offset='100%25'%3e%3c/stop%3e%3c/linearGradient%3e%3c/defs%3e%3cg%20stroke-width='1'%20stroke='url(%23oooscillate-grad)'%20fill='none'%20stroke-linecap='round'%3e%3cpath%20d='M%200%20448%20Q%20355.5%20-100%20711%20400%20Q%201066.5%20900%201422%20448'%20opacity='0.05'%3e%3c/path%3e%3cpath%20d='M%200%20420%20Q%20355.5%20-100%20711%20400%20Q%201066.5%20900%201422%20420'%20opacity='0.11'%3e%3c/path%3e%3cpath%20d='M%200%20392%20Q%20355.5%20-100%20711%20400%20Q%201066.5%20900%201422%20392'%20opacity='0.18'%3e%3c/path%3e%3cpath%20d='M%200%20364%20Q%20355.5%20-100%20711%20400%20Q%201066.5%20900%201422%20364'%20opacity='0.24'%3e%3c/path%3e%3cpath%20d='M%200%20336%20Q%20355.5%20-100%20711%20400%20Q%201066.5%20900%201422%20336'%20opacity='0.30'%3e%3c/path%3e%3cpath%20d='M%200%20308%20Q%20355.5%20-100%20711%20400%20Q%201066.5%20900%201422%20308'%20opacity='0.37'%3e%3c/path%3e%3cpath%20d='M%200%20280%20Q%20355.5%20-100%20711%20400%20Q%201066.5%20900%201422%20280'%20opacity='0.43'%3e%3c/path%3e%3cpath%20d='M%200%20252%20Q%20355.5%20-100%20711%20400%20Q%201066.5%20900%201422%20252'%20opacity='0.49'%3e%3c/path%3e%3cpath%20d='M%200%20224%20Q%20355.5%20-100%20711%20400%20Q%201066.5%20900%201422%20224'%20opacity='0.56'%3e%3c/path%3e%3cpath%20d='M%200%20196%20Q%20355.5%20-100%20711%20400%20Q%201066.5%20900%201422%20196'%20opacity='0.62'%3e%3c/path%3e%3cpath%20d='M%200%20168%20Q%20355.5%20-100%20711%20400%20Q%201066.5%20900%201422%20168'%20opacity='0.68'%3e%3c/path%3e%3cpath%20d='M%200%20140%20Q%20355.5%20-100%20711%20400%20Q%201066.5%20900%201422%20140'%20opacity='0.75'%3e%3c/path%3e%3cpath%20d='M%200%20112%20Q%20355.5%20-100%20711%20400%20Q%201066.5%20900%201422%20112'%20opacity='0.81'%3e%3c/path%3e%3cpath%20d='M%200%2084%20Q%20355.5%20-100%20711%20400%20Q%201066.5%20900%201422%2084'%20opacity='0.87'%3e%3c/path%3e%3cpath%20d='M%200%2056%20Q%20355.5%20-100%20711%20400%20Q%201066.5%20900%201422%2056'%20opacity='0.94'%3e%3c/path%3e%3c/g%3e%3c/svg%3e");
  background-size: 100% 100%;
  background-repeat: no-repeat;
  background-position: center;
  background-color: #222;
  color: #fff;
}
.login-container .login-head {
  height: 80px;
  width: 100%;
  -webkit-app-region: drag;
  position: absolute;
  top: 0;
  left: 0;
}
.login-container .login-card {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  min-width: 340px;
  animation: float-in 0.8s cubic-bezier(0.23, 1, 0.32, 1);
}
@keyframes float-in {
  0% {
    opacity: 0;
    transform: translateY(40px) scale(0.95);
  }
  100% {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}
.login-container .login-card .login-title {
  font-size: 1.4rem;
  font-weight: 700;
  margin-bottom: 32px;
  letter-spacing: 1px;
}
.login-container .login-card .google-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  background: #fff;
  color: #222;
  font-size: 1.1rem;
  font-weight: 600;
  border: none;
  border-radius: 8px;
  padding: 14px 32px;
  cursor: pointer;
  box-shadow: 0 4px 16px 0 rgba(66, 133, 244, 0.18);
  transition: transform 0.18s, box-shadow 0.18s, background 0.18s;
  outline: none;
  position: relative;
  overflow: hidden;
}
.login-container .login-card .google-btn:hover {
  transform: translateY(-2px) scale(1.04);
  box-shadow: 0 8px 24px 0 rgba(66, 133, 244, 0.28);
  background: #ff6b2b;
}
.login-container .login-card .google-icon {
  width: 28px;
  height: 28px;
  background: none;
  display: block;
}