/* ===== Portal Layout ===== */
.top-bar {
  max-width: 1300px;
  margin: 0 auto;
  padding: 18px 20px 0;
  display: grid;
  grid-template-columns: 1fr auto 1fr; /* 三栏：左占位/标题居中/右按钮 */
  align-items: center;
  gap: 16px;
}

.brand {
  grid-column: 2;
  justify-self: center;
  display: flex;
  align-items: center;
  gap: 10px;
  font: 600 20px/1.3 -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;
  text-shadow: var(--text-shadow-md);
}

.brand-icon {
  font-size: 24px;
}

.top-actions {
  grid-column: 3;
  justify-self: end;
  display: flex;
  gap: 10px;
}

.portal-main {
  max-width: 1300px;
  margin: 0 auto;
  padding: 26px 20px 36px;
}

.search-shell {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  margin-bottom: 30px;
}

.schedule-row,
.tools-section,
.courses-section {
  margin-bottom: 30px;
}

/* 校历 + 课表并排，各占 50%，等高对齐 */
.schedule-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  align-items: stretch;
}

.schedule-row .glass-panel {
  min-width: 0;
}

@media (max-width: 900px) {
  .schedule-row {
    grid-template-columns: 1fr;
  }
}

.section-title {
  font: 600 16px/1.4 -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;
  color: rgb(var(--color-t2));
  text-shadow: var(--text-shadow-sm);
  margin-bottom: 14px;
  opacity: 0.92;
}

.icon-grid {
  display: grid;
  gap: 12px;
}
/* 注：网格列数已由 components.css 的 .icon-grid 统一为 auto-fill（一行可放 10-12 个） */

.portal-footer {
  max-width: 1300px;
  margin: 0 auto 24px;
  padding: 0 20px;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 28px;
  flex-wrap: wrap;
  font: var(--font-small);
  color: rgb(var(--color-t2));
  opacity: 0.55;
  text-shadow: var(--text-shadow-sm);
}

@media (max-width: 560px) {
  .top-bar {
    display: flex; /* 小屏回退纵向堆叠 */
    flex-direction: column;
    align-items: center;
    text-align: center;
  }

  .portal-footer {
    flex-direction: column;
    gap: 8px;
  }
}
