/* 售前需求模块：沿用项目管理台现有深色设计变量与组件 */
.presales-section-tabs {
  display: inline-flex;
  gap: 4px;
  margin-bottom: 18px;
  padding: 4px;
  border: 1px solid rgba(76,144,169,.24);
  border-radius: 10px;
  background: rgba(4,17,25,.72);
}
.presales-section-tabs button {
  min-height: 36px;
  padding: 0 18px;
  border: 1px solid transparent;
  border-radius: 7px;
  background: transparent;
  color: #91AAB5;
  font: inherit;
  font-weight: 650;
  cursor: pointer;
  transition: 180ms ease;
}
.presales-section-tabs button:hover { color: #DFF8FC; background: rgba(8,200,244,.06); }
.presales-section-tabs button.active {
  border-color: rgba(8,200,244,.35);
  background: rgba(8,200,244,.12);
  color: #A8F2FF;
  box-shadow: inset 0 0 18px rgba(8,200,244,.05);
}
.presales-panel { display: none; }
.presales-panel.active { display: block; }
.presales-toolbar {
  display: grid;
  grid-template-columns: minmax(260px,1.6fr) repeat(3,minmax(150px,.7fr)) auto;
  gap: 10px;
  padding: 12px;
  border: 1px solid rgba(76,144,169,.24);
  border-radius: 12px;
  background: rgba(5,20,29,.76);
}
.presales-toolbar input,
.presales-toolbar select,
.presales-stats-filters input,
.presales-stats-filters select {
  width: 100%;
  min-height: 40px;
  padding: 0 12px;
  border: 1px solid rgba(76,144,169,.28);
  border-radius: 8px;
  outline: none;
  background: rgba(1,12,19,.8);
  color: #DCEEF2;
  font: inherit;
}
.presales-toolbar input:focus,
.presales-toolbar select:focus,
.presales-stats-filters input:focus,
.presales-stats-filters select:focus { border-color: #08C8F4; box-shadow: 0 0 0 3px rgba(8,200,244,.1); }
.presales-table-meta {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  margin: 13px 2px 8px;
  color: #91AAB5;
  font-size: 13px;
}
.presales-table-wrap {
  overflow: auto;
  border: 1px solid rgba(76,144,169,.24);
  border-radius: 12px;
  background: rgba(5,20,29,.68);
}
.presales-table { width: 100%; min-width: 1380px; border-collapse: collapse; }
.presales-table th {
  position: sticky;
  top: 0;
  z-index: 1;
  padding: 12px 11px;
  border-bottom: 1px solid rgba(76,144,169,.25);
  background: #071923;
  color: #7FA1AF;
  font-size: 12px;
  font-weight: 700;
  text-align: left;
  white-space: nowrap;
}
.presales-table td {
  padding: 12px 11px;
  border-bottom: 1px solid rgba(76,144,169,.15);
  color: #CBE1E6;
  font-size: 13px;
  line-height: 1.5;
  vertical-align: middle;
}
.presales-table tr:last-child td { border-bottom: 0; }
.presales-table tbody tr { transition: 160ms ease; }
.presales-table tbody tr:hover { background: rgba(8,200,244,.035); }
.presales-project-cell { max-width: 230px; color: #F0FAFC; font-weight: 700; }
.presales-truncate { display: block; max-width: 210px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.presales-actions { display: inline-flex; gap: 5px; white-space: nowrap; }
.presales-status {
  display: inline-flex;
  align-items: center;
  min-height: 25px;
  padding: 2px 8px;
  border: 1px solid rgba(120,147,161,.2);
  border-radius: 6px;
  background: rgba(120,147,161,.1);
  color: #A9C0C9;
  white-space: nowrap;
}
.presales-status.is-processing { border-color: rgba(245,165,36,.25); background: rgba(245,165,36,.1); color: #FFC15B; }
.presales-status.is-delivered { border-color: rgba(32,214,137,.25); background: rgba(32,214,137,.1); color: #55E6A5; }
.presales-status.is-closed { color: #7893A1; }
.presales-status.is-overdue { border-color: rgba(255,79,105,.28); background: rgba(255,79,105,.1); color: #FF7890; }
.presales-empty {
  padding: 54px 20px !important;
  color: #7893A1 !important;
  text-align: center !important;
}
.presales-form-modal { width: min(1040px,calc(100vw - 40px)); max-width: 1040px !important; max-height: calc(100vh - 38px); }
.presales-preview-modal { width: min(1280px,calc(100vw - 34px)); max-width: 1280px !important; max-height: calc(100vh - 34px); }
.presales-detail-modal { width: min(980px,calc(100vw - 40px)); max-width: 980px !important; max-height: calc(100vh - 40px); }
.presales-form-sections { display: grid; gap: 14px; }
.presales-form-section,
.presales-detail-section {
  padding: 15px;
  border: 1px solid rgba(76,144,169,.2);
  border-radius: 10px;
  background: rgba(3,15,23,.55);
}
.presales-form-section h4,
.presales-detail-section h4 {
  margin: 0 0 13px;
  color: #9FEAFF;
  font-size: 14px;
  letter-spacing: .02em;
}
.presales-field-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.presales-field-grid .is-wide { grid-column: 1 / -1; }
.presales-check-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 7px; }
.presales-check-option {
  display: flex;
  align-items: center;
  gap: 7px;
  min-height: 36px;
  padding: 7px 9px;
  border: 1px solid rgba(76,144,169,.22);
  border-radius: 7px;
  background: rgba(1,12,19,.62);
  color: #BBD2D8;
  cursor: pointer;
}
.presales-check-option:has(input:checked) { border-color: rgba(8,200,244,.5); background: rgba(8,200,244,.09); color: #BDF4FF; }
.presales-inline-note { margin-top: 6px; color: #7893A1; font-size: 12px; line-height: 1.55; }
.presales-warning { color: #FFC15B; }
.presales-preview-summary {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 12px;
  padding: 10px 12px;
  border: 1px solid rgba(76,144,169,.2);
  border-radius: 8px;
  background: rgba(8,200,244,.035);
  color: #91AAB5;
  font-size: 12px;
}
.presales-preview-table { width: 100%; min-width: 1060px; border-collapse: collapse; }
.presales-preview-table th,
.presales-preview-table td { padding: 9px; border-bottom: 1px solid rgba(76,144,169,.16); text-align: left; vertical-align: top; }
.presales-preview-table th { color: #82A7B5; font-size: 12px; white-space: nowrap; }
.presales-preview-table td { color: #CBE1E6; font-size: 12px; line-height: 1.55; }
.presales-preview-raw { max-width: 310px; white-space: pre-wrap; word-break: break-word; }
.presales-preview-edit { min-width: 310px; }
.presales-preview-edit textarea { min-height: 64px; }
.presales-recognition {
  display: inline-flex;
  padding: 3px 7px;
  border-radius: 999px;
  color: #55E6A5;
  background: rgba(32,214,137,.09);
  white-space: nowrap;
}
.presales-recognition.is-confirm { color: #FFC15B; background: rgba(245,165,36,.1); }
.presales-recognition.is-missing { color: #FF7890; background: rgba(255,79,105,.1); }
.presales-detail-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px 22px; }
.presales-detail-item { padding: 9px 0; border-bottom: 1px solid rgba(76,144,169,.13); }
.presales-detail-item.is-wide { grid-column: 1 / -1; }
.presales-detail-item dt { margin-bottom: 5px; color: #7893A1; font-size: 12px; }
.presales-detail-item dd { margin: 0; color: #D8EBEF; line-height: 1.65; white-space: pre-wrap; word-break: break-word; }
.presales-raw-value { margin-top: 5px; color: #6E929F; font-size: 12px; }
.presales-stats-filters {
  display: grid;
  grid-template-columns: repeat(5,minmax(150px,1fr));
  gap: 9px;
  margin-bottom: 13px;
  padding: 12px;
  border: 1px solid rgba(76,144,169,.22);
  border-radius: 11px;
  background: rgba(5,20,29,.72);
}
.presales-stat-cards { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 10px; margin-bottom: 12px; }
.presales-stat-card {
  min-height: 100px;
  padding: 16px;
  border: 1px solid rgba(76,144,169,.24);
  border-radius: 11px;
  background: rgba(6,23,33,.82);
}
.presales-stat-card strong { display: block; color: #EDF9FB; font-size: 29px; line-height: 1; }
.presales-stat-card span { display: block; margin-top: 9px; color: #91AAB5; font-size: 13px; }
.presales-stat-card.is-warning strong { color: #FFC15B; }
.presales-stat-card.is-success strong { color: #55E6A5; }
.presales-stat-card.is-danger strong { color: #FF6781; }
.presales-chart-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.presales-chart-card {
  min-height: 260px;
  padding: 16px;
  border: 1px solid rgba(76,144,169,.24);
  border-radius: 12px;
  background: rgba(6,23,33,.76);
}
.presales-chart-card h3 { margin: 0 0 14px; color: #DCEEF2; font-size: 15px; }
.presales-bars { display: grid; gap: 11px; }
.presales-bar-head { display: flex; justify-content: space-between; gap: 10px; margin-bottom: 5px; color: #AFC7CE; font-size: 12px; }
.presales-bar-track { height: 7px; overflow: hidden; border-radius: 999px; background: rgba(76,144,169,.14); }
.presales-bar-fill { height: 100%; min-width: 2px; border-radius: inherit; background: linear-gradient(90deg,#08A9CF,#34D5F7); }
.presales-future-list { display: grid; gap: 8px; }
.presales-future-item {
  display: grid;
  grid-template-columns: 88px minmax(0,1fr) auto;
  gap: 10px;
  align-items: center;
  padding: 9px 10px;
  border: 1px solid rgba(76,144,169,.16);
  border-radius: 8px;
  color: #BFD6DC;
  font-size: 12px;
}
.presales-future-item strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #E3F1F4; }
.presales-duplicate-actions { display: grid; grid-template-columns: repeat(3,1fr); gap: 8px; }
@media (max-width: 1180px) {
  .presales-toolbar { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .presales-toolbar .btn { justify-content: center; }
  .presales-stats-filters { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .presales-stat-cards { grid-template-columns: repeat(3,minmax(0,1fr)); }
}
@media (max-width: 760px) {
  .presales-toolbar,
  .presales-stats-filters,
  .presales-field-grid,
  .presales-chart-grid { grid-template-columns: 1fr; }
  .presales-stat-cards { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .presales-check-grid { grid-template-columns: 1fr 1fr; }
  .presales-detail-grid { grid-template-columns: 1fr; }
  .presales-detail-item.is-wide { grid-column: auto; }
}
