@keyframes gridMove {
  0% { background-position: 0 0; }
  to { background-position: 50px 50px; }
}

html { scroll-behavior: smooth; color-scheme: dark; }
body { color-scheme: dark; }

::-webkit-scrollbar { width: 8px; }
::-webkit-scrollbar-track { background: #0a1628; }
::-webkit-scrollbar-thumb { background: #082949; border-radius: 4px; }
::-webkit-scrollbar-thumb:hover { background: #7DB2E8; }

.op-idea-section-marker {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 1rem;
}
.op-idea-section-marker--center { justify-content: center; }
.op-idea-section-marker--left { justify-content: flex-start; }
.op-idea-section-marker__number {
  color: #EC7D1F;
  font-weight: 700;
  font-size: 0.85rem;
  letter-spacing: 0.08em;
}
.op-idea-section-marker__line {
  width: 48px;
  height: 1px;
  background: linear-gradient(90deg, #EC7D1F, transparent);
}

.op-about-layout {
  display: grid;
  gap: 2rem;
}
@media (min-width: 1024px) {
  .op-about-layout {
    grid-template-columns: 1.2fr 1fr;
    align-items: center;
  }
}
.op-about-photo {
  border-radius: 1.25rem;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,0.1);
  min-height: 240px;
  background:
    linear-gradient(135deg, rgba(12,85,157,0.45), rgba(233,98,36,0.35)),
    radial-gradient(circle at 30% 30%, rgba(255,255,255,0.15), transparent 55%);
  display: flex;
  align-items: center;
  justify-content: center;
  color: rgba(255,255,255,0.7);
  font-size: 0.95rem;
}

.op-idea-industry-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  justify-content: center;
  margin-bottom: 1.5rem;
}
.op-idea-industry-filter {
  padding: 0.5rem 1rem;
  border-radius: 9999px;
  border: 1px solid rgba(255,255,255,0.15);
  background: rgba(255,255,255,0.05);
  color: #d1d5db;
  font-size: 0.875rem;
  transition: all .2s;
}
.op-idea-industry-filter[aria-pressed="true"],
.op-idea-industry-filter:hover {
  background: rgba(12,85,157,0.35);
  border-color: rgba(61,140,219,0.6);
  color: #fff;
}
.op-idea-industry-list { display: grid; gap: 0.75rem; }
.op-idea-industry-row {
  display: grid;
  gap: 0.75rem;
  padding: 1.25rem;
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: 1rem;
  background: rgba(255,255,255,0.04);
  transition: border-color .2s, transform .2s;
}
.op-idea-industry-row:hover {
  border-color: rgba(233,98,36,0.45);
  transform: translateY(-2px);
}
@media (min-width: 768px) {
  .op-idea-industry-row {
    grid-template-columns: 180px 1fr auto;
    align-items: center;
  }
}
.op-idea-industry-name { font-size: 1.125rem; font-weight: 700; }
.op-idea-industry-tags { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.op-idea-industry-tag {
  font-size: 0.75rem;
  color: #d1d5db;
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 9999px;
  padding: 0.35rem 0.75rem;
}
.op-idea-industry-arrow { color: #EC7D1F; font-size: 1.25rem; }

/* 全站深色表单控件：消灭系统白底 select */
select,
select.otp-select,
.otp-select,
.op-idea-inquirer-select {
  color-scheme: dark;
  background-color: #0F1E3D !important;
  color: #fff !important;
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: 0.75rem;
  padding: 0.65rem 2.2rem 0.65rem 0.9rem;
  appearance: none;
  -webkit-appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%239ca3af' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 0.75rem center;
}
select option,
select.otp-select option,
.otp-select option,
.op-idea-inquirer-select option {
  background-color: #0F1E3D !important;
  color: #fff !important;
}

/* 表单选项胶囊（替代易出白底的原生下拉） */
.otp-choice-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.otp-choice {
  padding: 0.55rem 0.95rem;
  border-radius: 0.75rem;
  border: 1px solid rgba(255,255,255,0.12);
  background: rgba(255,255,255,0.05);
  color: #d1d5db;
  font-size: 0.875rem;
  cursor: pointer;
  transition: .15s ease;
  user-select: none;
}
.otp-choice:hover { border-color: rgba(233,98,36,0.45); color: #fff; }
.otp-choice.is-active {
  background: rgba(233,98,36,0.2);
  border-color: rgba(233,98,36,0.65);
  color: #fff;
}
.otp-choice input { position: absolute; opacity: 0; pointer-events: none; }

.otp-filter-bar {
  position: relative;
  z-index: 30;
  margin-bottom: 1.5rem;
}
.otp-chip-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.otp-chip {
  padding: 0.4rem 0.85rem;
  border-radius: 9999px;
  border: 1px solid rgba(255,255,255,0.12);
  background: rgba(255,255,255,0.05);
  color: #d1d5db;
  font-size: 0.8125rem;
  cursor: pointer;
  transition: .15s ease;
}
.otp-chip:hover { border-color: rgba(61,140,219,0.5); color: #fff; }
.otp-chip.is-active {
  background: rgba(12,85,157,0.45);
  border-color: rgba(61,140,219,0.7);
  color: #fff;
}

.marquee-track {
  display: flex;
  width: max-content;
  animation: marquee 35s linear infinite;
}
@keyframes marquee {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}

.fade-up {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity .7s ease, transform .7s ease;
}
.fade-up.visible {
  opacity: 1;
  transform: none;
}

.hero-grid {
  background-image:
    linear-gradient(rgba(12,85,157,0.1) 1px, transparent 1px),
    linear-gradient(90deg, rgba(12,85,157,0.1) 1px, transparent 1px);
  background-size: 60px 60px;
  transform: perspective(500px) rotateX(60deg) translateY(-100px) scale(2);
  animation: gridMove 25s linear infinite;
}

.toast {
  position: fixed;
  top: 6rem;
  right: 1rem;
  z-index: 60;
  padding: 0.85rem 1.1rem;
  border-radius: 0.75rem;
  background: #0C559D;
  color: #fff;
  box-shadow: 0 10px 30px rgba(0,0,0,.35);
  opacity: 0;
  pointer-events: none;
  transform: translateY(-8px);
  transition: .25s ease;
}
.toast.show { opacity: 1; transform: none; }
.toast.error { background: #b91c1c; }
.toast.success { background: #047857; }

.admin-shell { min-height: 100vh; background: #0b1220; }
.admin-card {
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: 1rem;
}
.table-wrap { overflow-x: auto; }
.admin-table { width: 100%; border-collapse: collapse; font-size: 0.9rem; }
.admin-table th, .admin-table td {
  border-bottom: 1px solid rgba(255,255,255,0.08);
  padding: 0.85rem 0.75rem;
  text-align: left;
  vertical-align: top;
}
.admin-table th { color: #9ca3af; font-weight: 600; }
