/* ── Turnier-Paarungssystem – Frontend Styles ────────────────────── */
:root {
  --tps-red:   #e94560;
  --tps-navy:  #1a1a2e;
  --tps-blue:  #0f3460;
  --tps-light: #f8f9fa;
}

.tps-form-wrap { max-width: 800px; margin: 0 auto; font-family: inherit; }
.tps-form-header { background: var(--tps-navy); color: #fff; padding: 24px 28px; border-radius: 10px 10px 0 0; border-bottom: 4px solid var(--tps-red); margin-bottom: 24px; }
.tps-form-header h2 { margin: 0 0 6px; font-size: 1.5em; }
.tps-form-header p { margin: 0; opacity: 0.8; font-size: 0.9em; }

/* Alerts */
.tps-alert { padding: 14px 18px; border-radius: 8px; margin-bottom: 20px; }
.tps-alert-success { background: #d4edda; color: #155724; border-left: 4px solid #28a745; }
.tps-alert-error   { background: #f8d7da; color: #721c24; border-left: 4px solid #dc3545; }
.tps-alert ul { margin: 8px 0 0 16px; padding: 0; }

/* Form */
.tps-form .tps-fieldset { border: 1px solid #dee2e6; border-radius: 8px; padding: 20px 24px; margin-bottom: 20px; }
.tps-form .tps-fieldset legend { font-weight: 700; color: var(--tps-blue); padding: 0 8px; font-size: 0.95em; }
.tps-row { display: flex; gap: 16px; flex-wrap: wrap; margin-bottom: 14px; }
.tps-col { flex: 1; min-width: 180px; }
.tps-col-full { flex: 100%; }
.tps-col label { display: block; font-weight: 600; font-size: 0.85em; margin-bottom: 5px; color: #333; }
.tps-col input,
.tps-col select,
.tps-col textarea { width: 100%; padding: 9px 12px; border: 1px solid #ced4da; border-radius: 6px; font-size: 0.95em; box-sizing: border-box; transition: border-color .15s; }
.tps-col input:focus, .tps-col select:focus, .tps-col textarea:focus { outline: none; border-color: var(--tps-red); box-shadow: 0 0 0 3px rgba(233,69,96,.15); }

/* Submit */
.tps-submit { text-align: center; padding: 10px 0 20px; }
.tps-btn-submit { background: var(--tps-red); color: #fff; border: none; padding: 14px 40px; font-size: 1.05em; font-weight: 700; border-radius: 8px; cursor: pointer; transition: background .2s; }
.tps-btn-submit:hover { background: #c73652; }
.tps-hint { font-size: 0.8em; color: #6c757d; margin-top: 10px; }
.tps-notice { color: #6c757d; font-style: italic; }

/* Upload */
.tps-download-bar { background: var(--tps-light); border: 1px dashed #ced4da; border-radius: 8px; padding: 16px 20px; margin-bottom: 20px; display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.tps-btn-download { background: var(--tps-blue); color: #fff; padding: 8px 18px; border-radius: 6px; text-decoration: none; font-weight: 600; font-size: 0.9em; }
.tps-btn-download:hover { background: var(--tps-navy); color: #fff; }

.tps-upload-zone { border: 2px dashed #ced4da; border-radius: 8px; padding: 30px; text-align: center; transition: border-color .2s; background: var(--tps-light); cursor: pointer; }
.tps-upload-zone:hover, .tps-upload-zone.drag-over { border-color: var(--tps-red); background: #fff5f7; }
.tps-upload-zone input[type="file"] { position: absolute; opacity: 0; width: 0; height: 0; }
.tps-upload-icon { font-size: 2.5em; display: block; margin-bottom: 8px; }
.tps-upload-text { font-size: 0.95em; color: #495057; }
.tps-upload-label { cursor: pointer; display: block; }
.tps-file-name { display: block; margin-top: 10px; font-weight: 600; color: var(--tps-blue); font-size: 0.9em; }

/* Columns reference */
.tps-info-box { background: var(--tps-light); border: 1px solid #dee2e6; border-radius: 8px; padding: 16px 20px; margin-top: 20px; }
.tps-info-box h4 { margin: 0 0 12px; color: var(--tps-blue); font-size: 0.9em; }
.tps-cols-grid { display: flex; flex-wrap: wrap; gap: 6px; }
.tps-col-tag { background: #e9ecef; border-radius: 4px; padding: 3px 8px; font-size: 0.8em; }
.tps-col-tag.tps-required { background: #fff3cd; color: #856404; font-weight: 600; }

.tps-upload-hint { text-align: center; margin-top: 16px; font-size: 0.85em; color: #6c757d; }
.tps-upload-hint a { color: var(--tps-red); }

@media (max-width: 600px) {
  .tps-row { flex-direction: column; }
  .tps-col { min-width: 100%; }
  .tps-download-bar { flex-direction: column; align-items: flex-start; }
}
