/*
 * YTHT Reborn — Website custom styles
 * Dark xiuxian-themed website matching the webclient aesthetic
 */

/* === Base dark theme === */
body {
  background-color: #0d0d1a !important;
  color: #c8c8d0 !important;
  font-family: -apple-system, BlinkMacSystemFont, "Noto Sans SC", "Microsoft YaHei", sans-serif;
}

/* === Navigation === */
.navbar {
  background-color: #12122a !important;
  border-bottom: 1px solid #2a2a4a;
}
.navbar-brand, .navbar .nav-link {
  color: #b0b0c0 !important;
}
.navbar .nav-link:hover {
  color: #e0c080 !important;
}
.navbar .nav-link.active {
  color: #e0c080 !important;
  font-weight: bold;
}
.navbar-toggler {
  border-color: #444;
}
.navbar-toggler-icon {
  filter: invert(0.7);
}
.dropdown-menu {
  background-color: #1a1a2e;
  border: 1px solid #333366;
}
.dropdown-item {
  color: #b0b0c0;
}
.dropdown-item:hover {
  background-color: #252545;
  color: #e0c080;
}

/* === Content area === */
.main-content {
  background-color: transparent;
}

/* === Cards and panels === */
.card {
  background-color: #12122a;
  border: 1px solid #2a2a4a;
  color: #c8c8d0;
}
.card-header {
  background-color: #1a1a2e;
  border-bottom: 1px solid #2a2a4a;
  color: #e0c080;
}

/* === Tables === */
.table {
  color: #c8c8d0;
}
.table td, .table th {
  border-color: #2a2a4a;
}
.table-striped tbody tr:nth-of-type(odd) {
  background-color: rgba(255, 255, 255, 0.03);
}
.table-hover tbody tr:hover {
  background-color: rgba(224, 192, 128, 0.05);
}

/* === Links === */
a {
  color: #8899cc;
}
a:hover {
  color: #aabbee;
  text-decoration: none;
}

/* === Buttons === */
.btn-primary {
  background-color: #333366;
  border-color: #444488;
  color: #e0c080;
}
.btn-primary:hover {
  background-color: #444488;
  border-color: #5555aa;
  color: #f0d090;
}
.btn-secondary {
  background-color: #1a1a2e;
  border-color: #333366;
  color: #b0b0c0;
}
.btn-secondary:hover {
  background-color: #252545;
  border-color: #444488;
}

/* === Forms === */
.form-control {
  background-color: #12122a;
  border: 1px solid #333366;
  color: #e0e0e8;
}
.form-control:focus {
  background-color: #1a1a2e;
  border-color: #6666aa;
  color: #e0e0e8;
  box-shadow: 0 0 4px rgba(100, 100, 180, 0.3);
}
.form-control::placeholder {
  color: #666;
}

/* === Footer === */
.footer {
  background-color: #0a0a15;
  border-top: 1px solid #1a1a2e;
  padding: 16px 0;
}
.footer .container {
  color: #666;
}

/* === Homepage overrides (dark theme) === */
.ytht-hero h1 {
  color: #e0c080;
}
.ytht-hero .ytht-subtitle {
  color: #8888aa !important;
}
.ytht-ascii-art {
  color: #4a4a6a !important;
}
.ytht-links a.ytht-btn {
  border-color: #444488 !important;
  color: #b0b0c0 !important;
}
.ytht-links a.ytht-btn:hover {
  background: #333366 !important;
  color: #e0c080 !important;
  border-color: #5555aa !important;
}
.ytht-links a.ytht-btn-primary {
  background: #333366 !important;
  color: #e0c080 !important;
}
.ytht-links a.ytht-btn-primary:hover {
  background: #444488 !important;
  border-color: #5555aa !important;
}
.ytht-desc {
  color: #999 !important;
}
.ytht-desc h4 {
  color: #e0c080;
}
.ytht-desc dt {
  color: #c8c8d0 !important;
}
.ytht-section {
  border-top-color: #2a2a4a !important;
}
.ytht-footer-note {
  color: #555 !important;
}

/* === Alerts === */
.alert-info {
  background-color: rgba(102, 136, 204, 0.15);
  border-color: #333366;
  color: #8899cc;
}
.alert-success {
  background-color: rgba(102, 204, 136, 0.15);
  border-color: #336633;
  color: #66cc88;
}
.alert-danger {
  background-color: rgba(204, 102, 102, 0.15);
  border-color: #663333;
  color: #cc6666;
}
.alert-warning {
  background-color: rgba(224, 192, 128, 0.15);
  border-color: #665533;
  color: #e0c080;
}

/* === Pagination === */
.page-link {
  background-color: #12122a;
  border-color: #2a2a4a;
  color: #8899cc;
}
.page-link:hover {
  background-color: #1a1a2e;
  border-color: #333366;
  color: #e0c080;
}
.page-item.active .page-link {
  background-color: #333366;
  border-color: #444488;
  color: #e0c080;
}

/* === Breadcrumbs === */
.breadcrumb {
  background-color: #12122a;
}
.breadcrumb-item a {
  color: #8899cc;
}
.breadcrumb-item.active {
  color: #888;
}

/* === Scrollbar === */
::-webkit-scrollbar {
  width: 8px;
}
::-webkit-scrollbar-track {
  background: #0d0d1a;
}
::-webkit-scrollbar-thumb {
  background: #333366;
  border-radius: 4px;
}
::-webkit-scrollbar-thumb:hover {
  background: #4444aa;
}

/* === Selection === */
::selection {
  background: #333366;
  color: #e0e0e8;
}

/* === Headings === */
h1, h2, h3, h4, h5, h6 {
  color: #d0d0e0;
}

/* === Misc Bootstrap overrides === */
.text-muted {
  color: #666 !important;
}
.bg-light {
  background-color: #12122a !important;
}
.border {
  border-color: #2a2a4a !important;
}
hr {
  border-color: #2a2a4a;
}

/* === Login/Register forms === */
.auth-form {
  max-width: 420px;
  margin: 40px auto;
  padding: 30px;
  background-color: #12122a;
  border: 1px solid #2a2a4a;
  border-radius: 4px;
}
.auth-form h2 {
  color: #e0c080;
  text-align: center;
  margin-bottom: 24px;
}
.auth-form .form-group label {
  color: #b0b0c0;
}

/* === Error pages === */
.error-page {
  text-align: center;
  padding: 80px 20px;
}
.error-page h1 {
  font-size: 6em;
  color: #333366;
  margin-bottom: 16px;
}
.error-page h2 {
  color: #e0c080;
  margin-bottom: 20px;
}
.error-page p {
  color: #888;
  margin-bottom: 30px;
}

/* === Mobile responsive — tablet === */
@media (max-width: 768px) {
  .ytht-ascii-art {
    font-size: 10px !important;
  }
  .auth-form {
    margin: 20px 10px;
    padding: 20px;
  }
  .ytht-hero h1 {
    font-size: 1.6em;
  }
  .ytht-desc {
    padding: 0 10px;
  }
}

/* === Mobile responsive — phone portrait === */
@media (max-width: 480px) {
  .ytht-ascii-art {
    font-size: 8px !important;
    line-height: 1.2;
  }
  .ytht-hero {
    padding: 20px 10px;
  }
  .ytht-hero h1 {
    font-size: 1.3em;
  }
  .ytht-hero .ytht-subtitle {
    font-size: 0.9em;
  }
  .ytht-links a.ytht-btn {
    display: block;
    margin: 6px 0;
    padding: 12px 20px;
    min-height: 44px;
  }
  .auth-form {
    margin: 10px 5px;
    padding: 16px;
    max-width: 100%;
  }
  .auth-form h3 {
    font-size: 20px;
  }
  .auth-form input.form-control {
    font-size: 16px !important; /* prevent iOS zoom */
    min-height: 44px;
  }
  .auth-form .btn {
    min-height: 44px;
    font-size: 16px;
  }
  .ytht-desc dt {
    margin-top: 8px;
  }
  .ytht-section {
    margin: 16px 0;
    padding: 12px 0;
  }
  .error-page h1 {
    font-size: 4em;
  }
  /* Stack navbar items vertically */
  .navbar-brand {
    font-size: 14px !important;
  }
}

/* === Touch-friendly targets === */
@media (hover: none) and (pointer: coarse) {
  .btn, .ytht-links a.ytht-btn {
    min-height: 44px;
  }
  .form-control {
    min-height: 44px;
    font-size: 16px !important;
  }
  .nav > li > a {
    padding: 12px 16px !important;
  }
}
