/* Percentage Tickets Panel Styling */

/* Main container for percentage tickets */
#app .panel[panel="tickets_percentage"] .panel_container {
  display: flex;
  flex-direction: column;
  height: 100%;
  background: var(--background);
  color: var(--colour);
}

/* Splitter controls */
.splitter_controls {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin: 0px 10px 5px 10px;
  padding: 12px;
  background: var(--alt-colour);
  border: 1px solid var(--border-standard);
  border-radius: 4px;
}

.splitter_range {
  display: flex;
  align-items: center;
  gap: 10px;
}

.splitter_range label {
  font-weight: var(--font-w-m);
  color: var(--colour);
  font-size: var(--font-size-small);
  margin: 0;
  min-width: 80px;
}

.splitter_slider {
  flex: 1;
  height: 6px;
  background: var(--background);
  border-radius: 3px;
  outline: none;
  -webkit-appearance: none;
  appearance: none;
}

.splitter_slider::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 18px;
  height: 18px;
  background: var(--title-bg);
  border-radius: 50%;
  cursor: pointer;
  transition: all 0.2s ease;
}

.splitter_slider::-webkit-slider-thumb:hover {
  transform: scale(1.1);
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
}

.splitter_slider::-moz-range-thumb {
  width: 18px;
  height: 18px;
  background: var(--title-bg);
  border-radius: 50%;
  cursor: pointer;
  border: none;
  transition: all 0.2s ease;
}

.splitter_slider::-moz-range-thumb:hover {
  transform: scale(1.1);
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
}

/* Percentage mode controls */
.percentage_mode_controls {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 10px;
  padding: 8px 12px;
  background: var(--alt-colour);
  border: 1px solid var(--border-standard);
  border-radius: 4px;
  display: none;
}

.percentage_mode_controls label {
  font-weight: var(--font-w-m);
  color: var(--colour);
  font-size: var(--font-size-small);
  margin: 0;
}

.mode_toggle {
  display: flex;
  gap: 2px;
  background: var(--background);
  border-radius: 4px;
  padding: 2px;
}

.mode_toggle button {
  background: transparent;
  color: var(--colour);
  border: none;
  padding: 6px 12px;
  border-radius: 3px;
  font-size: var(--font-size-small);
  font-weight: var(--font-w-m);
  cursor: pointer;
  transition: all 0.2s ease;
  min-width: 60px;
}

.mode_toggle button:hover {
  background: var(--alt-colour);
}

.mode_toggle button.active {
  background: var(--title-bg);
  color: white;
}

.mode_toggle button.active:hover {
  background: var(--title-bg);
  opacity: 0.9;
}

/* Consolidation control styling */
.consolidation_control {
  display: flex;
  align-items: center;
  gap: 8px;
  /* display: none; */
}

/* Expand control styling */
.expand_control {
  display: flex;
  align-items: center;
  gap: 8px;
}

.global_expand_btn {
  background: #28a745;
  color: white;
  border: none;
  padding: 6px 12px;
  border-radius: 3px;
  font-size: var(--font-size-small);
  font-weight: var(--font-w-m);
  cursor: pointer;
  transition: all 0.2s ease;
}

.global_expand_btn:hover {
  background: #218838;
}

.consolidation_control label {
  font-weight: var(--font-w-m);
  color: var(--colour);
  font-size: var(--font-size-small);
  margin: 0;
}

.consolidation_toggle {
  display: flex;
  gap: 2px;
  background: var(--background);
  border-radius: 4px;
  padding: 2px;
}

.consolidation_toggle .toggle_option {
  display: flex;
  align-items: center;
  gap: 4px;
  cursor: pointer;
  padding: 4px 8px;
  border: 1px solid var(--border-strong);
  border-radius: 2px;
  background: var(--background);
  color: var(--colour);
  flex: 1;
  justify-content: center;
  font-size: var(--font-size-small);
  font-family: var(--font);
  text-transform: uppercase;
  transition: all 0.2s ease;
  margin: 0;
}

.consolidation_toggle .toggle_option:hover {
  opacity: 0.8;
  cursor: pointer;
}

.consolidation_toggle .toggle_option input[type="radio"] {
  margin: 0;
  width: auto;
  height: auto;
}

.consolidation_toggle .toggle_option:has(input:checked) {
  background: var(--title-bg);
  border-color: var(--title-bg);
  color: white;
}

.consolidation_toggle .toggle_option span {
  font-weight: var(--font-w-m);
}

/* Consolidation Stats Display */
.consolidation_stats {
  /* font-size: 0.9em; */
  /* color: var(--alt-colour); */
  /* font-weight: var(--font-w-h); */
  margin-left: 8px;
}

/* Table container with scrolling */
#app .panel[panel="tickets_percentage"] .table_container {
  /* flex: 1; */
  overflow-y: auto;
  /* overflow-x: hidden; */
  /* max-height: calc(100vh - 200px); */ /* Adjust based on your layout */
  margin: 5px 7px;
}

/* Warning message */
#app .panel[panel="tickets_percentage"] .tickets_warn {
  text-align: center;
  color: var(--colour);
  font-style: italic;
  padding: 20px;
  background: var(--alt-colour);
  border: 1px solid var(--border-standard);
  border-radius: 4px;
  margin: 10px;
  font-size: var(--font-size-small);
}


#app .panel[panel="tickets_percentage"] .panel_container > button:hover {
  background: var(--title-bg);
  opacity: 0.9;
}

#percentage_plus_tickets_table .icon_info {
  font-size: var(--font-size-smaller);
  font-style: italic;
  font-weight: 700;
  margin: 0 2px 0 2px;
  background: var(--colour);
  color: var(--background);
  padding: 0 0px 0 0px;
  display: inline-block;
  text-align: center;
  height: 16px;
  width: 16px;
  border-radius: 15px;
}

#percentage_plus_tickets_table .icon_info[disabled='true'] {
    opacity: 0.1
}

#percentage_plus_tickets_table .icon_info[disabled='false']:hover {
  opacity: 0.8;
  cursor: pointer;
}

/* Main container for percentage plus tickets */
#app .panel[panel="tickets_percentage_plus"] .panel_container {
  display: flex;
  flex-direction: column;
  height: 100%;
  background: var(--background);
  color: var(--colour);
}

/* Table container with scrolling */
#app .panel[panel="tickets_percentage_plus"] .table_container {
  overflow-y: auto;
  margin: 4px 4px;
}

/* Table styling */
#percentage_plus_tickets_table {
  border-collapse: collapse;
  background: var(--background);
  width: 100%;
  margin: 0;
}

/* Table header */
#percentage_plus_tickets_table thead {
  position: sticky;
  top: 0;
  z-index: 10;
  background: var(--background);
}

#percentage_plus_tickets_table th {
  color: var(--colour);
  /* text-align: left; */
}

/* Table body */
#percentage_plus_tickets_table tbody {
  overflow-y: auto;
}

/* Table rows */
#percentage_plus_tickets_table tr {
  background: var(--background);
  border: 1px solid var(--border-standard);
  border-radius: 4px;
  margin: 0 0 4px 0;
  transition: all 0.2s ease;
}

#percentage_plus_tickets_table tr:hover {
  border-color: var(--title-bg);
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

/* Table cells */
#percentage_plus_tickets_table td {
  padding: 2px;
  background: transparent;
}


#percentage_plus_tickets_table td {
  /* font-weight: var(--font-w-h); */
  font-size: var(--font-size-small);
  white-space: nowrap;
}

/* Button styling */
#percentage_plus_tickets_table button {
  color: #fff;
  border: none;
  padding: 6px 12px;
  border-radius: 3px;
  font-weight: var(--font-w-m);
  cursor: pointer;
  transition: all 0.2s ease;
  vertical-align: middle;
}

#percentage_plus_tickets_table button:hover {
  background: var(--title-bg);
  opacity: 0.9;
}

#percentage_plus_tickets_table button:active {
  transform: translateY(1px);
}

/* Error row styling */
#percentage_plus_tickets_table .percentage_ticket_error {
  grid-column: 1 / -1;
  margin: 0;
  border-radius: 0 0 4px 4px;
}

/* Responsive design for percentage plus */
@media only screen and (max-width: 768px) {
  #app .panel[panel="tickets_percentage_plus"] .table_container {
    max-height: calc(100vh - 150px);
    margin: 0 5px;
  }
  
  #percentage_plus_tickets_table tr {
    margin: 0 5px 4px 5px;
  }
  
  #percentage_plus_tickets_table {
    margin: 0;
  }
  
  #percentage_plus_tickets_table button {
    padding: 4px 8px;
    font-size: var(--font-size-smaller);
    min-width: 60px;
  }
  
  #app .panel[panel="tickets_percentage_plus"] .panel_container > button {
    margin: 5px;
    width: calc(100% - 10px);
  }
  
  #app .panel[panel="tickets_percentage_plus"] .cost {
    margin: 5px;
  }
}

/* Dark mode adjustments for percentage plus */
.dark #percentage_plus_tickets_table tr {
  background: #1a1a1a;
  border-color: #333;
}

.dark #percentage_plus_tickets_table tr:hover {
  /* border-color: var(--title-bg); */
  background: #1f1f1f;
}

/* Light mode adjustments for percentage plus */
.light #percentage_plus_tickets_table tr {
  background: #fff;
  border-color: #ddd;
}

.light #percentage_plus_tickets_table tr:hover {
  /* border-color: var(--title-bg); */
  background: #fafafa;
}

/* Sortable header styling for both percentage tables */
.sortable-header {
  cursor: pointer;
  user-select: none;
  position: relative;
  transition: background-color 0.2s ease;
}

.sortable-header:hover {
  background-color: var(--alt-colour);
}

.sortable-header.sorted {
  /* background-color: var(--title-bg); */
  color: white;
}

.sort-indicator {
  margin-left: -2px;
  margin: 2px -3px 0 -4px;
  font-weight: bold;
  /* position: absolute; */
}

/* Apply sortable styling to percentage tickets table */
#percentage_plus_tickets_table th.sortable-header {
  padding: 2px 3px 2px 3px;
  /* border-radius: 3px; */
  /* text-transform: uppercase; */
}

/* Zero stake ticket styling */
.zero_stake_ticket {
  opacity: 0.6;
  background-color: #f5f5f5 !important;
}

.zero_stake_ticket:hover {
  opacity: 0.8;
}

/* Filtered out ticket styling */
.filtered_out_ticket {
  opacity: 0.6;
  background-color: #f5f5f5 !important;
}

.filtered_out_ticket:hover {
  opacity: 0.8;
}

/* Filtered out ticket header styling */
.filtered_out_ticket_header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  flex: 1;
}

.percentage_ticket_separator {
  background-color: #f0f0f0;
}

/* Responsive adjustments for sortable headers */
@media only screen and (max-width: 768px) {
  .sortable-header {
    padding: 6px 2px !important;
  }
  
  .sort-indicator {
    margin-left: 2px;
  }
}

.percentage_combo {
  width: auto
}

.percentage_number {
  width: 60px;
}

.percentage_order_ticket {
  width: 100px;
}

/* Expand/Collapse Button Styling */
.global_expand_btn {
  background: #28a745;
  color: white;
  border: none;
  padding: 6px 12px;
  border-radius: 3px;
  font-size: var(--font-size-small);
  font-weight: var(--font-w-m);
  cursor: pointer;
  transition: all 0.2s ease;
  margin: 2px;
}

.global_expand_btn:hover {
  background: #218838;
}

/* Child Row Styling */
.child_row {
  background-color: #f8f9fa;
  border-left: 3px solid #007bff;
}

.child_row.basic_mode {
  background-color: #f8f9fa;
}

.child_indent {
  padding-left: 10px !important;
  font-size: 0.9em;
  color: #666;
}

/* Original ticket styling for individual cells */

.child_row td div {
  color: var(--colour);
  font-weight: 400;
  font-size: 0.85em;
  font-style: italic;
}

.original_ticket_base,
.original_ticket_extra {
  color: #666;
  font-weight: var(--font-w-m);
  font-size: 0.9em;
}

.original_ticket_total {
  /* color: var(--title-bg); */
  font-weight: 400;
  font-size: 0.8em;
}


/* Smooth animation for expand/collapse */
.child_row {
  animation: slideDown 0.3s ease-out;
}

@keyframes slideDown {
  from {
    opacity: 0;
    transform: translateY(-10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Dark mode adjustments for child rows */
.dark .child_row {
  background-color: #2a2a2a;
  border-left-color: #007bff;
}

.dark .child_indent {
  color: #ccc;
}

.dark .original_ticket_description {
  color: var(--colour);
}

.dark .original_ticket_percentage {
  color: var(--title-bg);
}

.dark .original_ticket_base,
.dark .original_ticket_extra {
  color: #ccc;
}

.dark .original_ticket_total {
  color: var(--title-bg);
}


/* Light mode adjustments for child rows */
.light .child_row {
  background-color: #f8f9fa;
  border-left-color: #007bff;
}

.light .original_tickets_cell {
  background-color: #f8f9fa;
}

.light .original_ticket {
  color: #666;
}

/* Column Visibility Controls */
.column_visibility_controls {
  margin: 10px;
  padding: 12px;
  background: var(--alt-colour);
  border: 1px solid var(--border-standard);
  border-radius: 4px;
  display: none;
}

.column_visibility_controls h4 {
  margin: 0 0 10px 0;
  font-size: var(--font-size-small);
  font-weight: var(--font-w-m);
  color: var(--colour);
}

.column_toggles {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.column_toggle {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: var(--font-size-small);
  color: var(--colour);
  cursor: pointer;
}

.column_toggle input[type="checkbox"] {
  margin: 0;
  cursor: pointer;
}

.column_label {
  font-weight: var(--font-w-n);
}

/* Responsive design */
@media only screen and (max-width: 768px) {
  #app .panel[panel="tickets_percentage"] .table_container {
    max-height: calc(100vh - 150px); /* Smaller height for mobile */
    margin: 0 5px;
  }
  
  #percentage_plus_tickets_table tr {
    margin: 0 5px 4px 5px;
  }
  
  #percentage_plus_tickets_table {
    margin: 0;
  }
  
  #percentage_plus_tickets_table button {
    padding: 4px 8px;
    font-size: var(--font-size-smaller);
    min-width: 60px;
  }
  
  #app .panel[panel="tickets_percentage"] .panel_container > button {
    margin: 5px;
    width: calc(100% - 10px);
  }
  
  #app .panel[panel="tickets_percentage"] .cost {
    margin: 5px;
  }
}


@media only screen and (max-width: 500px) {
 .percentage_order_ticket {
   display: none
 }
}