/* 
 * Penal Code Page Styles - Rosewood Ridge Site
 * Web 3.0 Design System - MAINTAINING ORIGINAL LAYOUT
 */

@import url('variables.css');

/* Main layout - keeping original layout as requested */
.penalcode-content-wrapper {
  max-width: 1400px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 1rem;
  padding-right: 1rem;
}

/* Filter controls and search */
.filter-controls {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  margin-bottom: 1.5rem;
  align-items: center;
}

.search-input {
  flex-grow: 1;
  padding: .6rem .8rem;
  border: 1px solid var(--accent-color);
  color: var(--text-color);
  border-radius: 4px;
  background-color: var(--input-bg);
  font-size: 1rem;
  min-width: 250px;
}

.search-input:focus {
  outline: 0;
  border-color: var(--highlight-color);
  box-shadow: 0 0 5px rgba(204, 170, 116, 0.5);
}

.filter-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
}

.filter-button {
  padding: .6rem 1rem;
  background-color: transparent;
  border: 1px solid var(--accent-color);
  color: var(--text-color);
  border-radius: 4px;
  cursor: pointer;
  transition: background-color 0.3s, border-color 0.3s, color 0.3s, box-shadow 0.3s;
  font-size: .9rem;
  font-weight: 500;
}

/* Keep specific filter button colors as in original design */
.filter-button[data-filter="Capital Crime"] {
  border-color: var(--pastel-capital);
  color: var(--pastel-capital);
}

.filter-button[data-filter="First Degree Felony"] {
  border-color: var(--pastel-first-felony);
  color: var(--pastel-first-felony);
}

.filter-button[data-filter="Second Degree Felony"] {
  border-color: var(--pastel-second-felony);
  color: var(--pastel-second-felony);
}

.filter-button[data-filter="Third Degree Felony"] {
  border-color: var(--pastel-third-felony);
  color: var(--pastel-third-felony);
}

/* Removed Felony (Non-Violent) filter button style */

.filter-button[data-filter="Misdemeanor"] {
  border-color: var(--pastel-misdemeanor);
  color: var(--pastel-misdemeanor);
}

.filter-button[data-filter="Non-Criminal Infraction"] {
  border-color: var(--pastel-infraction);
  color: var(--pastel-infraction);
}

/* Added Justification filter button style */
.filter-button[data-filter="Justification"] {
  border-color: var(--pastel-justification);
  color: var(--pastel-justification);
}

.filter-button[data-filter="all"] {
  border-color: var(--accent-color);
  color: var(--text-color);
}

.filter-button:hover:not(.active) {
  background-color: rgba(125, 56, 45, 0.3);
}

.filter-button.active {
  color: var(--pastel-text-dark);
  font-weight: 600;
}

.filter-button[data-filter="Capital Crime"].active {
  background-color: var(--pastel-capital);
  border-color: var(--pastel-capital);
}

.filter-button[data-filter="First Degree Felony"].active {
  background-color: var(--pastel-first-felony);
  border-color: var(--pastel-first-felony);
}

.filter-button[data-filter="Second Degree Felony"].active {
  background-color: var(--pastel-second-felony);
  border-color: var(--pastel-second-felony);
}

.filter-button[data-filter="Third Degree Felony"].active {
  background-color: var(--pastel-third-felony);
  border-color: var(--pastel-third-felony);
}

/* Removed Felony (Non-Violent) active filter button style */

.filter-button[data-filter="Misdemeanor"].active {
  background-color: var(--pastel-misdemeanor);
  border-color: var(--pastel-misdemeanor);
}

.filter-button[data-filter="Non-Criminal Infraction"].active {
  background-color: var(--pastel-infraction);
  border-color: var(--pastel-infraction);
}

/* Added Justification active filter button style */
.filter-button[data-filter="Justification"].active {
  background-color: var(--pastel-justification);
  border-color: var(--pastel-justification);
  color: var(--pastel-text-dark); /* Ensure text is dark on light background */
}

.filter-button[data-filter="all"].active {
  background-color: var(--accent-color);
  color: var(--text-color);
  border-color: var(--accent-color);
}

/* Charge cards grid */
.charge-cards-container {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(350px, 1fr));
  gap: 1.5rem;
  margin-top: 1rem;
}

.charge-card {
  background-color: var(--card-base-bg);
  border: 1px solid var(--accent-color);
  border-left-width: 5px;
  border-radius: 6px;
  padding: 1rem 1.25rem;
  box-shadow: var(--box-shadow-std);
  transition: transform 0.2s ease-in-out, box-shadow 0.3s ease-in-out, border-color 0.3s ease-in-out, background-color 0.3s ease-in-out;
  cursor: pointer;
  position: relative;
  overflow: hidden;
}

/* Card type styles - keeping original */
.charge-card[data-type="Capital Crime"] {
  background-color: var(--pastel-capital-bg-dark);
  border-left-color: var(--pastel-capital);
}

.charge-card[data-type="First Degree Felony"] {
  background-color: var(--pastel-first-felony-bg-dark);
  border-left-color: var(--pastel-first-felony);
}

.charge-card[data-type="Second Degree Felony"] {
  background-color: var(--pastel-second-felony-bg-dark);
  border-left-color: var(--pastel-second-felony);
}

.charge-card[data-type="Third Degree Felony"] {
  background-color: var(--pastel-third-felony-bg-dark);
  border-left-color: var(--pastel-third-felony);
}

/* Removed Felony (Non-Violent) card style */

.charge-card[data-type="Misdemeanor"] {
  background-color: var(--pastel-misdemeanor-bg-dark);
  border-left-color: var(--pastel-misdemeanor);
}

.charge-card[data-type="Non-Criminal Infraction"] {
  background-color: var(--pastel-infraction-bg-dark);
  border-left-color: var(--pastel-infraction);
}

/* Added Justification card style */
.charge-card[data-type="Justification"] {
  background-color: var(--pastel-justification-bg-dark);
  border-left-color: var(--pastel-justification);
}

/* Title colors - keeping original */
.charge-card[data-type="Capital Crime"] .card-title-group h3,
.charge-card[data-type="Capital Crime"] .charge-punishment strong {
  color: var(--pastel-capital);
}

.charge-card[data-type="First Degree Felony"] .card-title-group h3,
.charge-card[data-type="First Degree Felony"] .charge-punishment strong {
  color: var(--pastel-first-felony);
}

.charge-card[data-type="Second Degree Felony"] .card-title-group h3,
.charge-card[data-type="Second Degree Felony"] .charge-punishment strong {
  color: var(--pastel-second-felony);
}

.charge-card[data-type="Third Degree Felony"] .card-title-group h3,
.charge-card[data-type="Third Degree Felony"] .charge-punishment strong {
  color: var(--pastel-third-felony);
}

/* Removed Felony (Non-Violent) title/punishment color */

.charge-card[data-type="Misdemeanor"] .card-title-group h3,
.charge-card[data-type="Misdemeanor"] .charge-punishment strong {
  color: var(--pastel-misdemeanor);
}

.charge-card[data-type="Non-Criminal Infraction"] .card-title-group h3,
.charge-card[data-type="Non-Criminal Infraction"] .charge-punishment strong {
  color: var(--pastel-infraction);
}

/* Added Justification title/punishment color */
.charge-card[data-type="Justification"] .card-title-group h3,
.charge-card[data-type="Justification"] .charge-punishment strong {
  color: var(--pastel-justification);
}

.charge-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.4);
}

.charge-card.selected {
  border-width: 2px;
  border-left-width: 5px !important;
}

/* Selected card styles - keeping original */
.charge-card[data-type="Capital Crime"].selected {
  background-color: var(--pastel-capital-bg-selected);
  border-color: var(--pastel-capital-border-selected);
  box-shadow: 0 0 12px 2px var(--pastel-capital-border-selected);
}

.charge-card[data-type="First Degree Felony"].selected {
  background-color: var(--pastel-first-felony-bg-selected);
  border-color: var(--pastel-first-felony-border-selected);
  box-shadow: 0 0 12px 2px var(--pastel-first-felony-border-selected);
}

.charge-card[data-type="Second Degree Felony"].selected {
  background-color: var(--pastel-second-felony-bg-selected);
  border-color: var(--pastel-second-felony-border-selected);
  box-shadow: 0 0 12px 2px var(--pastel-second-felony-border-selected);
}

.charge-card[data-type="Third Degree Felony"].selected {
  background-color: var(--pastel-third-felony-bg-selected);
  border-color: var(--pastel-third-felony-border-selected);
  box-shadow: 0 0 12px 2px var(--pastel-third-felony-border-selected);
}

/* Removed Felony (Non-Violent) selected card style */

.charge-card[data-type="Misdemeanor"].selected {
  background-color: var(--pastel-misdemeanor-bg-selected);
  border-color: var(--pastel-misdemeanor-border-selected);
  box-shadow: 0 0 12px 2px var(--pastel-misdemeanor-border-selected);
}

.charge-card[data-type="Non-Criminal Infraction"].selected {
  background-color: var(--pastel-infraction-bg-selected);
  border-color: var(--pastel-infraction-border-selected);
  box-shadow: 0 0 12px 2px var(--pastel-infraction-border-selected);
}

/* Added Justification selected card style (assuming selected variables exist or using base) */
.charge-card[data-type="Justification"].selected {
  /* Define selected background/border/shadow or use defaults if not specified */
  background-color: var(--pastel-justification-bg-dark); /* Example: Darken slightly */
  border-color: var(--pastel-justification);
  box-shadow: 0 0 12px 2px var(--pastel-justification);
}

/* Card header */
.card-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: .75rem;
  border-bottom: 1px solid rgba(242, 236, 208, 0.2);
  padding-bottom: .5rem;
  gap: .5rem;
}

.card-title-group {
  flex-grow: 1;
}

.card-title-group h3 {
  margin: 0;
  font-size: 1.3rem;
  line-height: 1.3;
  transition: color 0.3s;
}

.charge-pc-code {
  display: block;
  margin-top: .2rem;
  transition: color 0.3s;
}

.charge-type {
  padding: .25rem .6rem;
  border-radius: 15px;
  font-size: .8rem;
  font-weight: 600;
  white-space: nowrap;
  flex-shrink: 0;
  text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.3);
  color: var(--pastel-text-dark);
  background-color: rgba(0, 0, 0, 0.3);
  transition: background-color 0.3s, color 0.3s;
}

/* Charge type badge styles - keeping original */
.charge-card[data-type="Capital Crime"] .charge-type {
  background-color: var(--pastel-capital);
}

.charge-card[data-type="First Degree Felony"] .charge-type {
  background-color: var(--pastel-first-felony);
}

.charge-card[data-type="Second Degree Felony"] .charge-type {
  background-color: var(--pastel-second-felony);
}

.charge-card[data-type="Third Degree Felony"] .charge-type {
  background-color: var(--pastel-third-felony);
}

/* Removed Felony (Non-Violent) charge type style */

.charge-card[data-type="Misdemeanor"] .charge-type {
  background-color: var(--pastel-misdemeanor);
}

.charge-card[data-type="Non-Criminal Infraction"] .charge-type {
  background-color: var(--pastel-infraction);
}

/* Added Justification charge type style */
.charge-card[data-type="Justification"] .charge-type {
  background-color: var(--pastel-justification);
  color: var(--pastel-text-dark); /* Ensure text is dark on light background */
}

.charge-definition {
  line-height: 1.5;
  margin-bottom: .75rem;
  transition: color 0.3s;
}

/* Definition Text Colors */
.charge-card[data-type="Capital Crime"] .charge-definition-text { color: var(--pastel-capital-definition); }
.charge-card[data-type="First Degree Felony"] .charge-definition-text { color: var(--pastel-first-felony-definition); }
.charge-card[data-type="Second Degree Felony"] .charge-definition-text { color: var(--pastel-second-felony-definition); }
.charge-card[data-type="Third Degree Felony"] .charge-definition-text { color: var(--pastel-third-felony-definition); }
/* Removed Felony (Non-Violent) definition text color */
.charge-card[data-type="Misdemeanor"] .charge-definition-text { color: var(--pastel-misdemeanor-definition); }
.charge-card[data-type="Non-Criminal Infraction"] .charge-definition-text { color: var(--pastel-infraction-definition); }
/* Added Justification definition text color */
.charge-card[data-type="Justification"] .charge-definition-text { color: var(--pastel-justification-definition); }

/* Detail Text Colors (PC Code, Months, Fine, HUT) */
.charge-card[data-type="Capital Crime"] .charge-detail-text { color: var(--pastel-capital-details); }
.charge-card[data-type="First Degree Felony"] .charge-detail-text { color: var(--pastel-first-felony-details); }
.charge-card[data-type="Second Degree Felony"] .charge-detail-text { color: var(--pastel-second-felony-details); }
.charge-card[data-type="Third Degree Felony"] .charge-detail-text { color: var(--pastel-third-felony-details); }
/* Removed Felony (Non-Violent) detail text color */
.charge-card[data-type="Misdemeanor"] .charge-detail-text { color: var(--pastel-misdemeanor-details); }
.charge-card[data-type="Non-Criminal Infraction"] .charge-detail-text { color: var(--pastel-infraction-details); }
/* Added Justification detail text color */
.charge-card[data-type="Justification"] .charge-detail-text { color: var(--pastel-justification-details); }

/* Ensure detail text within punishment also transitions */
.charge-punishment .charge-detail-text {
    transition: color 0.3s;
}

.charge-punishment {
  font-size: .9rem;
  color: rgba(242, 236, 208, 0.85);
  margin-top: .5rem;
  padding-top: .5rem;
  border-top: 1px dashed rgba(242, 236, 208, 0.15);
}

.charge-punishment strong {
  font-weight: 600;
}

.no-results-message {
  grid-column: 1/-1;
  text-align: center;
  padding: 2rem;
  font-size: 1.1rem;
  color: rgba(242, 236, 208, 0.7);
  background-color: rgba(0, 0, 0, 0.1);
  border-radius: 4px;
}

/* Disclaimers Section Styles */
.disclaimers-section {
  margin-top: 3rem; /* Add space above the disclaimers */
  padding-top: 1.5rem;
  border-top: 1px solid var(--accent-color); /* Separator line */
}

.disclaimers-title {
  text-align: center;
  color: var(--text-secondary-color);
  margin-bottom: 1.5rem;
  font-size: 1.5rem;
  font-weight: 500;
}

.disclaimer-cards-container {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(350px, 1fr));
  gap: 1.5rem;
}

.disclaimer-card {
  background-color: rgba(50, 50, 50, 0.7); /* Slightly different background */
  border: 1px solid rgba(242, 236, 208, 0.2); /* Neutral border */
  border-left: 5px solid var(--text-secondary-color); /* Accent border */
  border-radius: 6px;
  padding: 1rem 1.25rem;
  box-shadow: var(--box-shadow-light); /* Lighter shadow */
  color: var(--text-color);
  font-size: 0.95rem;
  line-height: 1.6;
  /* No cursor pointer, hover effects, or transitions needed */
}

.disclaimer-card p {
    margin: 0; /* Remove default paragraph margin */
}
/* End Disclaimers Section Styles */

/* Sentencing Modifiers Section Styles (Based on Disclaimers) */
.modifiers-section {
  margin-top: 3rem; /* Space above */
  padding-top: 1.5rem;
  border-top: 1px solid var(--accent-color); /* Separator line */
}

.modifiers-title {
  text-align: center;
  color: var(--text-secondary-color);
  margin-bottom: 1.5rem;
  font-size: 1.5rem;
  font-weight: 500;
}

.modifier-cards-container {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(350px, 1fr));
  gap: 1.5rem;
}

.modifier-card {
  background-color: rgba(50, 50, 50, 0.7); /* Same background as disclaimers */
  border: 1px solid rgba(242, 236, 208, 0.2); /* Neutral border */
  border-left: 5px solid var(--highlight-color); /* Different accent border color */
  border-radius: 6px;
  padding: 1rem 1.25rem;
  box-shadow: var(--box-shadow-light); /* Lighter shadow */
  color: var(--text-color);
  font-size: 0.95rem;
  line-height: 1.6;
}

.modifier-card .modifier-name {
  margin-top: 0;
  margin-bottom: 0.75rem;
  font-size: 1.1rem;
  color: var(--highlight-color); /* Match accent border */
  font-weight: 600;
  border-bottom: 1px solid rgba(242, 236, 208, 0.15);
  padding-bottom: 0.5rem;
}

.modifier-card .modifier-definition {
  margin-bottom: 0.75rem; /* Space before adjustment text */
}

.modifier-card .modifier-adjustment {
  margin: 0;
  font-size: 0.9rem;
  color: rgba(242, 236, 208, 0.8); /* Slightly dimmer text */
}
/* End Sentencing Modifiers Section Styles */

/* Tab Navigation Styles */
.tabs-nav {
  margin-bottom: 2rem;
  border-bottom: 2px solid var(--accent-color);
}

.tabs-nav ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  gap: 0.5rem; /* Spacing between tabs */
}

.tabs-nav li {
  margin: 0;
}

.tab-link {
  padding: 0.8rem 1.5rem;
  background-color: transparent;
  border: none;
  border-bottom: 3px solid transparent; /* Space for active indicator */
  color: var(--text-secondary-color);
  font-size: 1.1rem;
  font-weight: 500;
  cursor: pointer;
  transition: color 0.3s, border-color 0.3s, background-color 0.3s;
  border-radius: 4px 4px 0 0; /* Slightly rounded top corners */
  margin-bottom: -2px; /* Overlap the container border */
  position: relative; /* For potential pseudo-elements */
}

.tab-link:hover {
  color: var(--highlight-color);
  background-color: rgba(204, 170, 116, 0.1); /* Subtle hover background */
}

.tab-link.active {
  color: var(--text-color);
  font-weight: 600;
  border-bottom-color: var(--highlight-color); /* Active indicator */
  background-color: var(--card-base-bg); /* Match card background slightly */
}

/* Tab Content Styles */
.tabs-content {
  /* Container for all tab panels */
}

.tab-content {
  display: none; /* Hide inactive tabs by default */
  padding-top: 1.5rem; /* Add some space below the tabs nav */
  animation: fadeIn 0.5s ease-in-out; /* Use existing fadeIn */
}

.tab-content.active {
  display: block; /* Show the active tab */
}

/* Adjustments for content within tabs */
/* Remove top margin/border from sections when inside tabs */
.tab-content .modifiers-section,
.tab-content .disclaimers-section {
  margin-top: 0;
  padding-top: 0;
  border-top: none;
}

/* Ensure titles within tabs look okay */
.tab-content .modifiers-title,
.tab-content .disclaimers-title {
   /* Optional: Adjust title styling if needed */
   /* margin-bottom: 1.5rem; */ /* Already set */
}

/* Ensure filter controls have space in the tab */
.tab-content#penal-codes .filter-controls {
  margin-bottom: 1.5rem; /* Keep bottom margin */
}

/* Ensure modifier/disclaimer cards look okay in tabs */
.modifier-cards-container,
.disclaimer-cards-container {
  /* Styles are likely fine, but check spacing */
}

/* Selection action bar */
#selectionActionBar {
  position: fixed;
  bottom: 0;
  left: 0;
  width: 100%;
  background-color: var(--dark-accent);
  padding: .75rem 1.5rem;
  box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.4);
  display: flex;
  justify-content: space-between;
  align-items: center;
  z-index: 1001;
  transform: translateY(100%);
  transition: transform 0.3s ease-in-out;
  color: var(--text-color);
}

#selectionActionBar.visible {
  transform: translateY(0);
}

#selectionCount {
  font-size: 1rem;
  font-weight: 500;
}

#selectionActionBar div {
  display: flex;
  gap: .75rem;
}

#selectionActionBar button {
  padding: .5rem 1rem;
  font-size: .9rem;
  border-radius: 4px;
  cursor: pointer;
  border: none;
  font-weight: 600;
  transition: background-color 0.2s, transform 0.1s;
}

#clearSelectionBtn {
  background-color: var(--accent-color);
  color: var(--text-color);
}

#clearSelectionBtn:hover {
  background-color: var(--highlight-color);
  transform: translateY(-1px);
}

#createArrestRecordBtn {
  background-color: var(--success-color);
  color: #fff;
}

#createArrestRecordBtn:hover {
  background-color: #218838;
  transform: translateY(-1px);
}

/* Solicitation Licensing Section Styles */
.solicitation-section {
  margin-top: 0;
  padding-top: 0;
  border-top: none;
}

.solicitation-title {
  text-align: center;
  color: var(--text-secondary-color);
  margin-bottom: 0.75rem;
  font-size: 1.5rem;
  font-weight: 500;
}

.solicitation-preamble {
  text-align: center;
  color: rgba(242, 236, 208, 0.7);
  font-size: 0.95rem;
  font-style: italic;
  margin-bottom: 1.5rem;
}

.solicitation-cards-container {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(350px, 1fr));
  gap: 1.5rem;
}

.solicitation-card {
  background-color: rgba(50, 50, 50, 0.7);
  border: 1px solid rgba(242, 236, 208, 0.2);
  border-left: 5px solid var(--highlight-color);
  border-radius: 6px;
  padding: 1rem 1.25rem;
  box-shadow: var(--box-shadow-light);
  color: var(--text-color);
  font-size: 0.95rem;
  line-height: 1.6;
}

.solicitation-card .solicitation-code {
  margin-top: 0;
  margin-bottom: 0.75rem;
  font-size: 1.1rem;
  color: var(--highlight-color);
  font-weight: 600;
  border-bottom: 1px solid rgba(242, 236, 208, 0.15);
  padding-bottom: 0.5rem;
}

.solicitation-card p {
  margin: 0;
}

.solicitation-ooc-notice {
  margin-top: 2rem;
  background-color: rgba(125, 56, 45, 0.25);
  border: 1px solid rgba(125, 56, 45, 0.5);
  border-left: 5px solid #b44;
  border-radius: 6px;
  padding: 1rem 1.25rem;
  color: var(--text-color);
  font-size: 0.95rem;
  line-height: 1.6;
}

.solicitation-ooc-notice h4 {
  margin-top: 0;
  margin-bottom: 0.75rem;
  font-size: 1.1rem;
  color: #e07070;
  font-weight: 600;
  border-bottom: 1px solid rgba(242, 236, 208, 0.15);
  padding-bottom: 0.5rem;
}

.solicitation-ooc-notice p {
  margin: 0 0 0.5rem 0;
}

.solicitation-ooc-notice p:last-child {
  margin-bottom: 0;
}
/* End Solicitation Licensing Section Styles */

/* Animation for card updates */
@keyframes fadeIn {
  from { opacity: 0; transform: scale(.98); }
  to { opacity: 1; transform: scale(1); }
}