/**
 * CreateSpaces 全站共用：Powered By 頁尾（fixed 底欄 + 內容區留白）
 * 頁面內須包含 <footer class="cs-site-footer" role="contentinfo">…</footer>
 */
:root {
  --cs-footer-h: 2.75rem;
  --cs-bg-deep: #f4f6fa;
  --cs-bg-card: rgba(255, 255, 255, 0.92);
  --cs-border: rgba(15, 23, 42, 0.1);
  --cs-accent: #0284c7;
  --cs-accent-dim: #0369a1;
  --cs-success: #059669;
  --cs-text: #0f172a;
  --cs-text-muted: #64748b;
  --cs-glow: 0 8px 30px rgba(2, 132, 199, 0.08);
}

/* 有頁尾時避免內容被底欄遮擋；蓋過少數頁面 head 內 body{height:100vh} 避免出現雙重捲軸 */
body:has(.cs-site-footer) {
  padding-bottom: var(--cs-footer-h);
  min-height: 100vh;
  min-height: 100dvh;
  height: auto !important;
}

/* Global visual language aligned with Timetable Studio */
body {
  font-family: "DM Sans", "Segoe UI", "Microsoft JhengHei", sans-serif !important;
  background: var(--cs-bg-deep) !important;
  background-image:
    radial-gradient(ellipse 100% 70% at 50% -15%, rgba(14, 165, 233, 0.12), transparent),
    linear-gradient(180deg, #ffffff 0%, #f1f5f9 55%, #eef2f7 100%) !important;
  color: var(--cs-text) !important;
}

h1, h2, h3, h4, h5, h6 {
  color: var(--cs-text);
}

.navbar {
  background: rgba(255, 255, 255, 0.96) !important;
  border-bottom: 1px solid var(--cs-border);
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.06);
}

.navbar .navbar-brand {
  color: var(--cs-text) !important;
  font-weight: 700;
}

.navbar .nav-link,
.navbar .navbar-text {
  color: var(--cs-text-muted) !important;
}

.card,
.card-custom,
.content-section,
.header,
.controls {
  background: var(--cs-bg-card);
  border: 1px solid var(--cs-border) !important;
  border-radius: 16px;
  box-shadow: var(--cs-glow);
}

.header,
.controls,
.content-section {
  padding: 1rem 1.25rem;
}

.table thead th,
.table-dark th {
  background: #e2e8f0 !important;
  color: #1e293b !important;
  border-color: #cbd5e1 !important;
}

.btn-primary,
.btn-info,
.btn.btn {
  border-color: transparent;
}

.btn-primary,
.btn-info {
  background: linear-gradient(90deg, var(--cs-accent-dim), var(--cs-accent));
  color: #fff;
}

.btn-outline-primary {
  color: var(--cs-accent);
  border-color: rgba(2, 132, 199, 0.4);
}

.btn-outline-primary:hover {
  background: rgba(2, 132, 199, 0.08);
  color: var(--cs-accent-dim);
  border-color: var(--cs-accent);
}

.form-control,
.form-select,
select,
textarea {
  border-color: #cbd5e1;
}

.form-control:focus,
.form-select:focus,
select:focus,
textarea:focus {
  border-color: rgba(2, 132, 199, 0.45);
  box-shadow: 0 0 0 0.2rem rgba(2, 132, 199, 0.15);
}

.badge.bg-secondary {
  background-color: #475569 !important;
}

.cs-site-footer {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 2000;
  box-sizing: border-box;
  min-height: var(--cs-footer-h);
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0;
  padding: 0.35rem 0.75rem;
  border-top: 1px solid rgba(15, 23, 42, 0.08);
  background: rgba(255, 255, 255, 0.94);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  font-size: 0.8125rem;
  letter-spacing: 0.02em;
  color: #64748b;
}

@media (prefers-color-scheme: dark) {
  .cs-site-footer {
    background: rgba(15, 23, 42, 0.94);
    color: #94a3b8;
    border-top-color: rgba(255, 255, 255, 0.08);
  }
}

.cs-site-footer__text {
  white-space: nowrap;
}

@media (max-width: 480px) {
  .cs-site-footer__text {
    white-space: normal;
    text-align: center;
    line-height: 1.35;
  }
}
