/* Material 3 Form Components */

/* Form Container */
.md-form-container {
  background-color: var(--md-sys-color-surface);
  border-radius: var(--md-sys-shape-corner-medium);
  padding: 24px;
  margin: 16px 0;
  box-shadow: var(--md-sys-elevation-level1);
}

/* Form Header */
.md-form-header {
  background-color: var(--md-sys-color-primary);
  color: var(--md-sys-color-on-primary);
  padding: 16px 24px;
  border-radius: var(--md-sys-shape-corner-medium) var(--md-sys-shape-corner-medium) 0 0;
  margin: -24px -24px 24px -24px;
  font-size: 20px;
  font-weight: 500;
}

/* Text Fields - Only for navigation */
.md-navigation-drawer .md-nav-text-field {
  position: relative;
  margin: 16px 0;
}

.md-navigation-drawer .md-nav-text-field input,
.md-navigation-drawer .md-nav-text-field select,
.md-navigation-drawer .md-nav-text-field textarea {
  width: 100%;
  padding: 16px 12px 8px 12px;
  border: 1px solid var(--md-sys-color-outline);
  border-radius: var(--md-sys-shape-corner-extra-small);
  background-color: var(--md-sys-color-surface);
  color: var(--md-sys-color-on-surface);
  font-size: 16px;
  transition: all 0.2s ease;
  outline: none;
}

.md-navigation-drawer .md-nav-text-field input:focus,
.md-navigation-drawer .md-nav-text-field select:focus,
.md-navigation-drawer .md-nav-text-field textarea:focus {
  border-color: var(--md-sys-color-primary);
  border-width: 2px;
  padding-left: 11px;
  padding-right: 11px;
}

.md-navigation-drawer .md-nav-text-field label {
  position: absolute;
  left: 12px;
  top: 16px;
  color: var(--md-sys-color-on-surface-variant);
  font-size: 16px;
  transition: all 0.2s ease;
  pointer-events: none;
  background-color: var(--md-sys-color-surface);
  padding: 0 4px;
}

.md-text-field input:focus + label,
.md-text-field input:not(:placeholder-shown) + label,
.md-text-field select:focus + label,
.md-text-field select:not([value=""]) + label,
.md-text-field textarea:focus + label,
.md-text-field textarea:not(:placeholder-shown) + label {
  top: -8px;
  left: 8px;
  font-size: 12px;
  color: var(--md-sys-color-primary);
  font-weight: 500;
}

/* Required field indicator */
.md-text-field.required label::after {
  content: " *";
  color: var(--md-sys-color-error);
}

/* Error state */
.md-text-field.error input,
.md-text-field.error select,
.md-text-field.error textarea {
  border-color: var(--md-sys-color-error);
}

.md-text-field.error label {
  color: var(--md-sys-color-error);
}

.md-text-field .error-message {
  color: var(--md-sys-color-error);
  font-size: 12px;
  margin-top: 4px;
  margin-left: 12px;
}

/* Buttons */
.md-button-group {
  display: flex;
  gap: 12px;
  margin-top: 24px;
  justify-content: flex-end;
}

.md-button-primary {
  background-color: var(--md-sys-color-primary);
  color: var(--md-sys-color-on-primary);
  border: none;
  padding: 12px 24px;
  border-radius: var(--md-sys-shape-corner-large);
  font-size: 14px;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.2s ease;
  min-height: 40px;
}

.md-button-primary:hover {
  background-color: color-mix(in srgb, var(--md-sys-color-primary) 92%, white);
  box-shadow: var(--md-sys-elevation-level1);
}

.md-button-secondary {
  background-color: transparent;
  color: var(--md-sys-color-primary);
  border: 1px solid var(--md-sys-color-outline);
  padding: 12px 24px;
  border-radius: var(--md-sys-shape-corner-large);
  font-size: 14px;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.2s ease;
  min-height: 40px;
}

.md-button-secondary:hover {
  background-color: color-mix(in srgb, var(--md-sys-color-primary) 8%, transparent);
}

/* Checkboxes and Radio Buttons */
.md-checkbox,
.md-radio {
  display: flex;
  align-items: center;
  margin: 12px 0;
  cursor: pointer;
}

.md-checkbox input[type="checkbox"],
.md-radio input[type="radio"] {
  width: 20px;
  height: 20px;
  margin-right: 12px;
  accent-color: var(--md-sys-color-primary);
}

.md-checkbox label,
.md-radio label {
  color: var(--md-sys-color-on-surface);
  cursor: pointer;
}

/* Select Dropdown */
.md-select {
  position: relative;
}

.md-select select {
  appearance: none;
  background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6,9 12,15 18,9'%3e%3c/polyline%3e%3c/svg%3e");
  background-repeat: no-repeat;
  background-position: right 12px center;
  background-size: 20px;
  padding-right: 40px;
}

/* Form Grid */
.md-form-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 16px;
  margin: 16px 0;
}

.md-form-grid-2 {
  grid-template-columns: repeat(2, 1fr);
}

.md-form-grid-3 {
  grid-template-columns: repeat(3, 1fr);
}

/* Responsive adjustments */
@media (max-width: 768px) {
  .md-form-grid,
  .md-form-grid-2,
  .md-form-grid-3 {
    grid-template-columns: 1fr;
  }
  
  .md-button-group {
    flex-direction: column;
  }
  
  .md-form-container {
    padding: 16px;
  }
}

/* Integration with existing Bootstrap classes */
.form-group.md-text-field {
  margin-bottom: 16px;
}

.form-control.md-input {
  border: 1px solid var(--md-sys-color-outline);
  border-radius: var(--md-sys-shape-corner-extra-small);
  padding: 16px 12px 8px 12px;
  background-color: var(--md-sys-color-surface);
  color: var(--md-sys-color-on-surface);
}

.form-control.md-input:focus {
  border-color: var(--md-sys-color-primary);
  border-width: 2px;
  box-shadow: none;
}

.btn.md-button-filled {
  background-color: var(--md-sys-color-primary);
  color: var(--md-sys-color-on-primary);
  border: none;
  border-radius: var(--md-sys-shape-corner-large);
  padding: 10px 24px;
  font-weight: 500;
  transition: all 0.2s ease;
}

.btn.md-button-filled:hover {
  background-color: color-mix(in srgb, var(--md-sys-color-primary) 92%, white);
  box-shadow: var(--md-sys-elevation-level1);
}

/* Accordion/Panel styling */
.panel.md-card {
  border: none;
  border-radius: var(--md-sys-shape-corner-medium);
  box-shadow: var(--md-sys-elevation-level1);
  margin-bottom: 16px;
}

.panel-heading.md-header {
  background-color: var(--md-sys-color-primary);
  color: var(--md-sys-color-on-primary);
  border-radius: var(--md-sys-shape-corner-medium) var(--md-sys-shape-corner-medium) 0 0;
  padding: 16px 24px;
  border: none;
}

.panel-heading.md-header a {
  color: var(--md-sys-color-on-primary);
  text-decoration: none;
  font-weight: 500;
}

.panel-body {
  padding: 24px;
  background-color: var(--md-sys-color-surface);
}