.h-1\/2 { height: 50%; }
.h-2\/3 { height: 66.6667%; }
.w-1\/2 { width: 50%; }
.w-3\/4 { width: 75%; }
.w-11\/12 { width: 91.6667%; }

/* Invalid styles */
.invalid\:border-pink-500:invalid { border-color: #d50032; }
.invalid\:text-pink-600:invalid { color: #c2185b; }

/* Hover effects */
.hover\:scale-105:hover { transform: scale(1.05); }
.hover\:scale-110:hover { transform: scale(1.1); }
.hover\:bg-blue-600:hover { background-color: #2563eb; }
.hover\:bg-blue-700:hover { background-color: #1d4ed8; }
.hover\:bg-gray-200:hover { background-color: #e5e7eb; }
.hover\:bg-gray-400:hover { background-color: #9ca3af; }
.hover\:bg-gray-500:hover { background-color: #6b7280; }
.hover\:bg-green-600:hover { background-color: #16a34a; }
.hover\:bg-purple-500:hover { background-color: #9333ea; }
.hover\:bg-red-600:hover { background-color: #dc2626; }

.hover\:text-blue-400:hover { color: #60a5fa; }
.hover\:text-blue-500:hover { color: #3b82f6; }
.hover\:text-blue-600:hover { color: #2563eb; }
.hover\:text-blue-700:hover { color: #1d4ed8; }
.hover\:text-blue-800:hover { color: #1e40af; }
.hover\:text-blue-900:hover { color: #1e3a8a; }
.hover\:text-gray-200:hover { color: #e5e7eb; }
.hover\:text-gray-300:hover { color: #d1d5db; }
.hover\:text-green-600:hover { color: #16a34a; }
.hover\:text-green-700:hover { color: #15803d; }
.hover\:text-orange-700:hover { color: #c2410c; }
.hover\:text-pink-600:hover { color: #ec4899; }
.hover\:text-red-500:hover { color: #f87171; }
.hover\:text-red-600:hover { color: #ef4444; }
.hover\:text-red-700:hover { color: #dc2626; }
.hover\:text-white:hover { color: #ffffff; }
.hover\:text-yellow-600:hover { color: #f59e0b; }
.hover\:text-yellow-700:hover { color: #d97706; }
.hover\:underline:hover { text-decoration-line: underline; }

/* Focus styles */
.focus\:ring:focus { box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.1), 0 0 0 3px currentColor; }
.focus\:ring-2:focus { box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.1), 0 0 0 4px currentColor; }
.focus\:ring-blue-200:focus { box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.5); }
.focus\:ring-blue-300:focus { box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.5); }
.focus\:ring-blue-500:focus { box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.5); }
.focus\:ring-green-400:focus { box-shadow: 0 0 0 2px rgba(22, 163, 74, 0.5); }
.focus\:ring-red-200:focus { box-shadow: 0 0 0 2px rgba(248, 113, 113, 0.5); }
.focus\:ring-red-400:focus { box-shadow: 0 0 0 2px rgba(220, 38, 38, 0.5); }
.focus\:ring-red-500:focus { box-shadow: 0 0 0 2px rgba(239, 68, 68, 0.5); }
.focus\:outline-none:focus { outline-style: none; }

/* Disabled state */
.disabled\:opacity-50:disabled { opacity: 0.5; }
.\[color\:red\] { color: red; }

/* Grid system */
.grid { display: grid; }
.grid-cols-1 { grid-template-columns: repeat(1, minmax(0, 1fr)); }
.grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.grid-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.grid-cols-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.grid-cols-6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.grid-cols-none { grid-template-columns: none; }
.grid-rows-none { grid-template-rows: none; }
.col-auto { grid-column: auto; }
.col-span-full { grid-column: 1 / -1; }
.col-start-auto { grid-column-start: auto; }
.col-end-auto { grid-column-end: auto; }
.row-auto { grid-row: auto; }
.row-span-full { grid-row: 1 / -1; }
.row-start-auto { grid-row-start: auto; }
.row-end-auto { grid-row-end: auto; }
.columns-auto { columns: auto; }
.auto-cols-auto { grid-auto-columns: auto; }
.auto-cols-fr { grid-auto-columns: minmax(0, 1fr); }
.auto-cols-max { grid-auto-columns: max-content; }
.auto-cols-min { grid-auto-columns: min-content; }
.grid-flow-col { grid-auto-flow: column; }
.grid-flow-col-dense { grid-auto-flow: column dense; }
.grid-flow-dense { grid-auto-flow: dense; }
.grid-flow-row { grid-auto-flow: row; }
.grid-flow-row-dense { grid-auto-flow: row dense; }
.auto-rows-auto { grid-auto-rows: auto; }
.auto-rows-fr { grid-auto-rows: minmax(0, 1fr); }
.auto-rows-max { grid-auto-rows: max-content; }
.auto-rows-min { grid-auto-rows: min-content; }

/* Responsive grid */
@media (min-width: 640px) {
    .sm\:grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .sm\:grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (min-width: 768px) {
    .md\:grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .md\:grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* Flexbox system */
.flex { display: flex; }
.flex-row { flex-direction: row; }
.flex-row-reverse { flex-direction: row-reverse; }
.flex-col { flex-direction: column; }
.flex-col-reverse { flex-direction: column-reverse; }
.flex-nowrap { flex-wrap: nowrap; }
.flex-wrap { flex-wrap: wrap; }
.flex-wrap-reverse { flex-wrap: wrap-reverse; }
.flex-grow, .grow { flex-grow: 1; }
.flex-grow-0 { flex-grow: 0; }
.flex-shrink, .shrink { flex-shrink: 1; }
.flex-shrink-0 { flex-shrink: 0; }
.flex-1 { flex: 1 1 0; }
.flex-auto { flex: 1 1 auto; }
.flex-initial { flex: 0 1 auto; }
.flex-none { flex: none; }
.basis-auto { flex-basis: auto; }
.basis-full { flex-basis: 100%; }

/* Alignment utilities */
.place-content-around { place-content: space-around; }
.place-content-baseline { place-content: baseline; }
.place-content-between { place-content: space-between; }
.place-content-center { place-content: center; }
.place-content-end { place-content: end; }
.place-content-evenly { place-content: space-evenly; }
.place-content-start { place-content: start; }
.place-content-stretch { place-content: stretch; }
.place-items-baseline { place-items: baseline; }
.place-items-center { place-items: center; }
.place-items-end { place-items: end; }
.place-items-start { place-items: start; }
.place-items-stretch { place-items: stretch; }
.content-around { align-content: space-around; }
.content-baseline { align-content: baseline; }
.content-between { align-content: space-between; }
.content-center { align-content: center; }
.content-end { align-content: flex-end; }
.content-evenly { align-content: space-evenly; }
.content-normal { align-content: normal; }
.content-start { align-content: flex-start; }
.content-stretch { align-content: stretch; }
.items-start { align-items: flex-start; }
.items-center { align-items: center; }
.items-end { align-items: flex-end; }
.items-baseline { align-items: baseline; }
.items-stretch { align-items: stretch; }
.self-auto { align-self: auto; }
.self-start { align-self: flex-start; }
.self-center { align-self: center; }
.self-end { align-self: flex-end; }
.self-stretch { align-self: stretch; }
.justify-start { justify-content: flex-start; }
.justify-center { justify-content: center; }
.justify-end { justify-content: flex-end; }
.justify-between { justify-content: space-between; }
.justify-around { justify-content: space-around; }
.justify-evenly { justify-content: space-evenly; }
.justify-self-auto { justify-self: auto; }
.justify-self-center { justify-self: center; }
.justify-self-end { justify-self: flex-end; }
.justify-self-start { justify-self: flex-start; }
.justify-self-stretch { justify-self: stretch; }
.place-self-auto { place-self: auto; }
.place-self-center { place-self: center; }
.place-self-end { place-self: end; }
.place-self-start { place-self: start; }
.place-self-stretch { place-self: stretch; }

/* Gaps */
.gap-0 { gap: 0; }
.gap-1 { gap: 0.25rem; }
.gap-2 { gap: 0.5rem; }
.gap-3 { gap: 0.75rem; }
.gap-4 { gap: 1rem; }
.gap-5 { gap: 1.25rem; }
.gap-6 { gap: 1.5rem; }
.gap-8 { gap: 2rem; }

/* Scroll Snap */
.snap-none { scroll-snap-type: none; }
.snap-mandatory { scroll-snap-type: both mandatory; }
.snap-proximity { scroll-snap-type: both proximity; }
.snap-align-none { scroll-snap-align: none; }
.snap-center { scroll-snap-align: center; }
.snap-end { scroll-snap-align: end; }
.snap-start { scroll-snap-align: start; }
.snap-always { scroll-snap-stop: always; }
.snap-normal { scroll-snap-stop: normal; }
