.gradient-bg {
    background: linear-gradient(135deg, #1e3a8a 0%, #3b82f6 100%);
}

.form-section {
    display: none;
}

.form-section.active {
    display: block;
}

.error-message {
    color: #ef4444;
    font-size: 0.875rem;
    margin-top: 0.25rem;
}

.maturity-level-description {
    display: none;
    padding: 1rem;
    margin-top: 0.5rem;
    background-color: #f3f4f6;
    border-radius: 0.375rem;
}

.maturity-level-description.active {
    display: block;
}

/* Animation for invalid step selection */
@keyframes shake {
    0%, 100% { transform: translateX(0); }
    25% { transform: translateX(-5px); }
    50% { transform: translateX(5px); }
    75% { transform: translateX(-5px); }
}

.shake-animation {
    animation: shake 0.4s ease-in-out;
}

/* Common grid layouts */
.maturity-grid-4 {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr 1fr 1fr;
    width: 100%;
}

.maturity-grid-5 {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    width: 100%;
}

/* Special alignment for Advanced and Optimised labels */
.maturity-grid-4 span:nth-child(4) {
    grid-column: 4;
    text-align: left;
    padding-left: 0;
    transform: translateX(-50%);
    width: fit-content;
}

.maturity-grid-4 span:last-child {
    grid-column: 5;
    text-align: right;
    padding-right: 0;
    transform: translateX(0);
    width: fit-content;
}

/* Maturity Assessment Container */
.maturity-assessment-container {
    position: relative;
    padding: 1rem;
}

/* Slider container */
.maturity-slider-container {
    position: relative;
    width: 100%;
    margin: 2rem 0;
}

/* Slider Styles */
.maturity-slider {
    -webkit-appearance: none;
    appearance: none;
    height: 2px;
    outline: none;
    transition: all 0.2s ease;
    width: 100%;
    background: #E5E7EB;
    margin: 1rem 0;
}

/* Slider thumb */
.maturity-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: #2563EB;
    cursor: pointer;
    border: 2px solid white;
    box-shadow: 0 0 0 1px #2563EB;
}

.maturity-slider::-moz-range-thumb {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: #2563EB;
    cursor: pointer;
    border: 2px solid white;
    box-shadow: 0 0 0 1px #2563EB;
}

/* Labels grid */
.maturity-slider-labels {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    width: 100%;
    margin-top: 0.5rem;
    position: relative;
}

.maturity-slider-labels span {
    font-size: 0.75rem;
    color: #4B5563;
    text-align: center;
}

/* Special positioning for labels */
.maturity-slider-labels span:nth-child(1) { 
    text-align: center; 
    transform: translateX(0);
}
.maturity-slider-labels span:nth-child(2) { text-align: center; }
.maturity-slider-labels span:nth-child(3) { text-align: center; }
.maturity-slider-labels span:nth-child(4) { text-align: center; }
.maturity-slider-labels span:nth-child(5) { text-align: center; }

/* Current vs Target styles */
.current-slider::-webkit-slider-thumb {
    background: #2563EB;
}

.target-slider::-webkit-slider-thumb {
    background: #7C3AED;
}

/* Grid visualization */
.grid-visualization {
    position: absolute;
    top: -20px;
    left: 0;
    right: 0;
    bottom: -20px;
    pointer-events: none;
    z-index: 1;
}

/* Grid column borders for visualization */
.grid-visualization > div {
    border-right: 1px solid rgba(203, 213, 225, 0.5);
}

.grid-visualization > div:last-child {
    border-right: none;
}

/* Hover states */
.current-slider::-webkit-slider-thumb:hover {
    transform: scale(1.1);
    box-shadow: 0 0 0 4px rgba(37, 99, 235, 0.2);
}

.target-slider::-webkit-slider-thumb:hover {
    transform: scale(1.1);
    box-shadow: 0 0 0 4px rgba(124, 58, 237, 0.2);
}

/* Active state */
.maturity-slider:active::-webkit-slider-thumb {
    transform: scale(1.1);
}

/* Standardize popup checkbox size and alignment */
.maturity-level-checkbox {
  width: 18px !important;
  height: 18px !important;
  min-width: 18px !important;
  min-height: 18px !important;
  margin-top: 0 !important;
  vertical-align: middle !important;
}
