/* Layout System - Semantic Classes for Common Patterns */
/* Generated by Golem - Phase 1: CSS Foundation */

/* Module Container System */
.module-container {
  border-radius: var(--border-radius);
  margin-bottom: var(--space-xs);
}

.module-header {
  padding: var(--space-sm) var(--space-md);
  cursor: pointer;
  border-radius: var(--border-radius) var(--border-radius) 0 0;
}

.module-content {
  padding: var(--space-md);
}

/* Section Wrappers */
.section-wrapper {
  padding: var(--section-padding);
  margin-bottom: var(--space-md);
}

.section-divider {
  margin: var(--space-md) 0;
}

/* Input Layout System */
.input-row {
  display: flex;
  gap: var(--input-gap);
  margin-bottom: var(--space-sm);
}

.input-group {
  flex: 1;
  margin-bottom: var(--space-sm);
}

.input-group-half {
  flex: 0.5;
}

.input-label {
  font-weight: normal;
  margin-bottom: var(--space-xs);
  display: block;
  color: var(--section-header);
}

.input-help {
  font-size: 11px;
  color: var(--text-muted);
  margin-top: var(--space-xs);
}

/* Step Layout (for multi-step forms) */
.step-container {
  margin-bottom: var(--space-md);
  padding-bottom: var(--space-sm);
}

.step-header {
  color: var(--section-header);
  margin-bottom: var(--space-sm);
  font-weight: var(--font-weight-bold);
  font-size: var(--font-size-h5);
}

/* File Upload Layout */
.file-upload-zone {
  border-radius: var(--input-border-radius);
  padding: var(--space-xs);
  margin: var(--space-xs) 0;
}

.upload-info {
  border-radius: var(--input-border-radius);
  padding: var(--space-xs);
  margin: var(--space-xs) 0;
}

.upload-status {
  font-size: 11px;
  margin-top: var(--space-xs);
}

/* Button Layout */
.btn-container {
  text-align: center;
  padding: 0 var(--space-lg);
}

.btn-plan {
  width: 200px;
  max-width: 90%;
}

/* Utility Classes for Spacing */
.mb-xs { margin-bottom: var(--space-xs); }
.mb-sm { margin-bottom: var(--space-sm); }
.mb-md { margin-bottom: var(--space-md); }
.mb-lg { margin-bottom: var(--space-lg); }

.mt-xs { margin-top: var(--space-xs); }
.mt-sm { margin-top: var(--space-sm); }
.mt-md { margin-top: var(--space-md); }
.mt-lg { margin-top: var(--space-lg); }

.p-xs { padding: var(--space-xs); }
.p-sm { padding: var(--space-sm); }
.p-md { padding: var(--space-md); }
.p-lg { padding: var(--space-lg); }

/* Text Utilities */
.text-muted {
  color: var(--text-muted);
}

.text-center {
  text-align: center;
}

.font-bold {
  font-weight: var(--font-weight-bold);
}

/* Border Utilities */
.border-light {
  border: 1px solid var(--border-light);
}

.border-bottom-light {
  /* border-bottom removed for cleaner UI */
}

/* Scrollable Container */
.scrollable-sidebar {
  padding: var(--space-sm);
  max-height: 90vh;
  overflow-y: auto;
}