/* CPS Scoring - Custom Styles */

/* Smooth transitions */
* {
    transition-property: background-color, border-color, color, fill, stroke, opacity, box-shadow, transform;
    transition-duration: 150ms;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}

/* Image aspect ratio helper */
.aspect-w-4 {
    position: relative;
    padding-bottom: 75%;
}
.aspect-w-4 > * {
    position: absolute;
    height: 100%;
    width: 100%;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    object-fit: cover;
}

/* WYSIWYG content styling */
.prose h1 { font-size: 2em; font-weight: bold; margin-bottom: 0.5em; }
.prose h2 { font-size: 1.5em; font-weight: bold; margin-bottom: 0.5em; margin-top: 1em; }
.prose h3 { font-size: 1.25em; font-weight: bold; margin-bottom: 0.5em; margin-top: 1em; }
.prose p { margin-bottom: 1em; line-height: 1.7; }
.prose ul { list-style-type: disc; padding-left: 2em; margin-bottom: 1em; }
.prose ol { list-style-type: decimal; padding-left: 2em; margin-bottom: 1em; }
.prose li { margin-bottom: 0.25em; }
.prose a { color: #2563eb; text-decoration: underline; }
.prose img { max-width: 100%; border-radius: 0.5rem; margin: 1em 0; }
.prose blockquote { border-left: 4px solid #d1d5db; padding-left: 1em; color: #6b7280; font-style: italic; margin: 1em 0; }
.prose table { width: 100%; border-collapse: collapse; margin: 1em 0; }
.prose th, .prose td { border: 1px solid #e5e7eb; padding: 0.5em; text-align: left; }
.prose th { background-color: #f9fafb; font-weight: 600; }

/* Form elements base styling for non-Tailwind browsers */
input[type="text"],
input[type="email"],
input[type="password"],
input[type="number"],
input[type="date"],
input[type="datetime-local"],
input[type="tel"],
select,
textarea {
    font-size: 0.875rem;
}

/* Print styles */
@media print {
    nav, footer, .no-print { display: none !important; }
    body { background: white; }
}
