/* admin-tw-shim.css — 自动生成的 Tailwind 兼容工具层（构建期产物，由 tools/gen_admin_tw_shim.py 生成） */
/* 项目级：在 admin.css / student.css 之后加载，补足其未覆盖的 Tailwind 工具类，
   使管理端与考生端移除 Tailwind Play CDN 后保持统一视觉识别且布局稳定 */

/* preflight-lite: 复刻 Tailwind 的 border 默认值（无 preflight 时 border 不显示） */
*, ::before, ::after { box-sizing: border-box; border-width: 0; border-style: solid; border-color: #e5e7eb; }

/* 基础工具类 */
.absolute { position:absolute }
.align-bottom { vertical-align:bottom }
.align-middle { vertical-align:middle }
.backdrop-blur-lg { -webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px) }
.backdrop-blur-sm { -webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px) }
.bg-amber-100 { background-color:rgb(254, 243, 199) }
.bg-amber-50 { background-color:rgb(255, 251, 235) }
.bg-amber-50\/50 { background-color:rgba(255, 251, 235, 0.5) }
.bg-amber-500 { background-color:rgb(245, 158, 11) }
.bg-black\/30 { background-color:rgba(0, 0, 0, 0.3) }
.bg-black\/40 { background-color:rgba(0, 0, 0, 0.4) }
.bg-blue-100 { background-color:rgb(219, 234, 254) }
.bg-blue-50 { background-color:rgb(239, 246, 255) }
.bg-blue-50\/30 { background-color:rgba(239, 246, 255, 0.3) }
.bg-blue-50\/40 { background-color:rgba(239, 246, 255, 0.4) }
.bg-blue-50\/50 { background-color:rgba(239, 246, 255, 0.5) }
.bg-blue-50\/60 { background-color:rgba(239, 246, 255, 0.6) }
.bg-blue-50\/80 { background-color:rgba(239, 246, 255, 0.8) }
.bg-blue-500 { background-color:rgb(59, 130, 246) }
.bg-blue-600 { background-color:rgb(37, 99, 235) }
.bg-cyan-50 { background-color:rgb(236, 254, 255) }
.bg-cyan-50\/50 { background-color:rgba(236, 254, 255, 0.5) }
.bg-emerald-50 { background-color:rgb(236, 253, 245) }
.bg-emerald-50\/40 { background-color:rgba(236, 253, 245, 0.4) }
.bg-emerald-50\/50 { background-color:rgba(236, 253, 245, 0.5) }
.bg-emerald-50\/80 { background-color:rgba(236, 253, 245, 0.8) }
.bg-emerald-500 { background-color:rgb(16, 185, 129) }
.bg-gradient-to-br { background-image:linear-gradient(to bottom right, var(--tw-gradient-stops, rgba(0,0,0,0))) }
.bg-gradient-to-r { background-image:linear-gradient(to right, var(--tw-gradient-stops, rgba(0,0,0,0))) }
.bg-gray-100 { background-color:rgb(243, 244, 246) }
.bg-gray-100\/50 { background-color:rgba(243, 244, 246, 0.5) }
.bg-gray-100\/80 { background-color:rgba(243, 244, 246, 0.8) }
.bg-gray-200 { background-color:rgb(229, 231, 235) }
.bg-gray-300 { background-color:rgb(209, 213, 219) }
.bg-gray-400 { background-color:rgb(156, 163, 175) }
.bg-gray-50 { background-color:rgb(249, 250, 251) }
.bg-gray-50\/80 { background-color:rgba(249, 250, 251, 0.8) }
.bg-green-100 { background-color:rgb(220, 252, 231) }
.bg-green-400 { background-color:rgb(74, 222, 128) }
.bg-green-50 { background-color:rgb(240, 253, 244) }
.bg-green-500 { background-color:rgb(34, 197, 94) }
.bg-indigo-100 { background-color:rgb(224, 231, 255) }
.bg-indigo-50 { background-color:rgb(238, 242, 255) }
.bg-indigo-50\/50 { background-color:rgba(238, 242, 255, 0.5) }
.bg-indigo-50\/70 { background-color:rgba(238, 242, 255, 0.7) }
.bg-indigo-500 { background-color:rgb(99, 102, 241) }
.bg-orange-50 { background-color:rgb(255, 247, 237) }
.bg-orange-500 { background-color:rgb(249, 115, 22) }
.bg-purple-100 { background-color:rgb(243, 232, 255) }
.bg-purple-50 { background-color:rgb(250, 245, 255) }
.bg-purple-50\/40 { background-color:rgba(250, 245, 255, 0.4) }
.bg-purple-50\/50 { background-color:rgba(250, 245, 255, 0.5) }
.bg-purple-500 { background-color:rgb(168, 85, 247) }
.bg-red-100 { background-color:rgb(254, 226, 226) }
.bg-red-50 { background-color:rgb(254, 242, 242) }
.bg-red-500 { background-color:rgb(239, 68, 68) }
.bg-rose-50\/40 { background-color:rgba(255, 241, 242, 0.4) }
.bg-rose-500 { background-color:rgb(244, 63, 94) }
.bg-teal-50\/50 { background-color:rgba(240, 253, 250, 0.5) }
.bg-teal-500 { background-color:rgb(20, 184, 166) }
.bg-violet-500 { background-color:rgb(139, 92, 246) }
.bg-white { background-color:#ffffff }
.bg-white\/50 { background-color:rgba(255, 255, 255, 0.5) }
.bg-white\/60 { background-color:rgba(255, 255, 255, 0.6) }
.bg-white\/80 { background-color:rgba(255, 255, 255, 0.8) }
.border-2 { border-width:2 }
.border-amber-100 { border-color:rgb(254, 243, 199) }
.border-amber-200 { border-color:rgb(253, 230, 138) }
.border-amber-300 { border-color:rgb(252, 211, 77) }
.border-blue-100 { border-color:rgb(219, 234, 254) }
.border-blue-100\/50 { border-color:rgba(219, 234, 254, 0.5) }
.border-blue-200 { border-color:rgb(191, 219, 254) }
.border-blue-300 { border-color:rgb(147, 197, 253) }
.border-blue-400 { border-color:rgb(96, 165, 250) }
.border-blue-50 { border-color:rgb(239, 246, 255) }
.border-blue-500 { border-color:rgb(59, 130, 246) }
.border-collapse { border-collapse:collapse }
.border-cyan-100 { border-color:rgb(207, 250, 254) }
.border-cyan-200 { border-color:rgb(165, 243, 252) }
.border-dashed { border-style:dashed }
.border-emerald-100 { border-color:rgb(209, 250, 229) }
.border-emerald-100\/50 { border-color:rgba(209, 250, 229, 0.5) }
.border-emerald-200 { border-color:rgb(167, 243, 208) }
.border-gray-100 { border-color:rgb(243, 244, 246) }
.border-gray-200 { border-color:rgb(229, 231, 235) }
.border-gray-200\/50 { border-color:rgba(229, 231, 235, 0.5) }
.border-gray-300 { border-color:rgb(209, 213, 219) }
.border-gray-50 { border-color:rgb(249, 250, 251) }
.border-green-200 { border-color:rgb(187, 247, 208) }
.border-indigo-200 { border-color:rgb(199, 210, 254) }
.border-orange-200 { border-color:rgb(254, 215, 170) }
.border-purple-100 { border-color:rgb(243, 232, 255) }
.border-purple-100\/60 { border-color:rgba(243, 232, 255, 0.6) }
.border-purple-200 { border-color:rgb(233, 213, 255) }
.border-red-200 { border-color:rgb(254, 202, 202) }
.border-red-300 { border-color:rgb(252, 165, 165) }
.border-rose-100 { border-color:rgb(255, 228, 230) }
.border-rose-200 { border-color:rgb(254, 205, 211) }
.border-teal-100 { border-color:rgb(204, 251, 241) }
.border-teal-200 { border-color:rgb(153, 246, 228) }
.border-violet-200 { border-color:rgb(221, 214, 254) }
.bottom-0 { bottom:0px }
.break-all { word-break:break-all }
.col-span-1 { grid-column:span 1 / span 1 }
.col-span-2 { grid-column:span 2 / span 2 }
.col-span-3 { grid-column:span 3 / span 3 }
.col-span-4 { grid-column:span 4 / span 4 }
.col-span-5 { grid-column:span 5 / span 5 }
.cursor-move { cursor:move }
.cursor-not-allowed { cursor:not-allowed }
.divide-blue-100\/30 > * + * { border-color:rgba(219, 234, 254, 0.3) }
.divide-gray-100 > * + * { border-color:rgb(243, 244, 246) }
.divide-y > * + * { border-top-width:1px }
.fixed { position:fixed }
.flex-shrink-0 { flex-shrink:0 }
.font-mono { font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace }
.font-normal { font-weight:400 }
.font-semibold { font-weight:600 }
.from-amber-500 { --tw-gradient-from:rgb(245, 158, 11);--tw-gradient-to:rgb(255 255 255 / 0);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to) }
.from-blue-50 { --tw-gradient-from:rgb(239, 246, 255);--tw-gradient-to:rgb(255 255 255 / 0);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to) }
.from-blue-500 { --tw-gradient-from:rgb(59, 130, 246);--tw-gradient-to:rgb(255 255 255 / 0);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to) }
.from-emerald-50 { --tw-gradient-from:rgb(236, 253, 245);--tw-gradient-to:rgb(255 255 255 / 0);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to) }
.from-emerald-500 { --tw-gradient-from:rgb(16, 185, 129);--tw-gradient-to:rgb(255 255 255 / 0);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to) }
.from-gray-50 { --tw-gradient-from:rgb(249, 250, 251);--tw-gradient-to:rgb(255 255 255 / 0);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to) }
.from-green-50 { --tw-gradient-from:rgb(240, 253, 244);--tw-gradient-to:rgb(255 255 255 / 0);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to) }
.from-green-500 { --tw-gradient-from:rgb(34, 197, 94);--tw-gradient-to:rgb(255 255 255 / 0);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to) }
.from-indigo-500 { --tw-gradient-from:rgb(99, 102, 241);--tw-gradient-to:rgb(255 255 255 / 0);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to) }
.from-orange-400 { --tw-gradient-from:rgb(251, 146, 60);--tw-gradient-to:rgb(255 255 255 / 0);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to) }
.from-orange-500 { --tw-gradient-from:rgb(249, 115, 22);--tw-gradient-to:rgb(255 255 255 / 0);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to) }
.from-purple-500 { --tw-gradient-from:rgb(168, 85, 247);--tw-gradient-to:rgb(255 255 255 / 0);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to) }
.from-red-500 { --tw-gradient-from:rgb(239, 68, 68);--tw-gradient-to:rgb(255 255 255 / 0);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to) }
.from-rose-400 { --tw-gradient-from:rgb(251, 113, 133);--tw-gradient-to:rgb(255 255 255 / 0);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to) }
.from-slate-600 { --tw-gradient-from:rgb(71, 85, 105);--tw-gradient-to:rgb(255 255 255 / 0);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to) }
.from-teal-400 { --tw-gradient-from:rgb(45, 212, 191);--tw-gradient-to:rgb(255 255 255 / 0);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to) }
.from-teal-500 { --tw-gradient-from:rgb(20, 184, 166);--tw-gradient-to:rgb(255 255 255 / 0);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to) }
.gap-0\.5 { gap:0.125rem }
.gap-1\.5 { gap:0.375rem }
.gap-2\.5 { gap:0.625rem }
.gap-5 { gap:1.25rem }
.gap-x-4 { column-gap:1rem }
.gap-y-3 { row-gap:0.75rem }
.grid-cols-1 { grid-template-columns:repeat(1, minmax(0, 1fr)) }
.grid-cols-12 { grid-template-columns:repeat(12, minmax(0, 1fr)) }
.grid-cols-5 { grid-template-columns:repeat(5, minmax(0, 1fr)) }
.h-10 { height:2.5rem }
.h-12 { height:3rem }
.h-14 { height:3.5rem }
.h-16 { height:4rem }
.h-2 { height:0.5rem }
.h-20 { height:5rem }
.h-24 { height:6rem }
.h-3\.5 { height:0.875rem }
.h-4 { height:1rem }
.h-5 { height:1.25rem }
.h-6 { height:1.5rem }
.h-7 { height:1.75rem }
.h-8 { height:2rem }
.h-9 { height:2.25rem }
.h-\[42px\] { height:42px }
.inline { display:inline }
.inline-flex { display:inline-flex }
.inset-0 { inset:0px }
.items-end { align-items:end }
.leading-5 { line-height:1.25rem }
.leading-6 { line-height:1.5rem }
.leading-relaxed { line-height:1.625 }
.leading-tight { line-height:1.25 }
.left-0 { left:0px }
.list-disc { list-style-type:disc }
.max-h-\[360px\] { max-height:360px }
.max-h-\[380px\] { max-height:380px }
.max-h-\[80vh\] { max-height:80vh }
.max-h-\[85vh\] { max-height:85vh }
.max-h-\[90vh\] { max-height:90vh }
.max-w-2xl { max-width:42rem }
.max-w-3xl { max-width:48rem }
.max-w-4xl { max-width:56rem }
.max-w-6xl { max-width:72rem }
.max-w-\[180px\] { max-width:180px }
.max-w-\[200px\] { max-width:200px }
.max-w-lg { max-width:32rem }
.max-w-md { max-width:28rem }
.max-w-sm { max-width:24rem }
.max-w-xs { max-width:20rem }
.mb-0\.5 { margin-bottom:0.125rem }
.mb-1\.5 { margin-bottom:0.375rem }
.mb-5 { margin-bottom:1.25rem }
.mb-8 { margin-bottom:2rem }
.min-h-screen { min-height:100vh }
.min-w-0 { min-width:0px }
.ml-1 { margin-left:0.25rem }
.ml-2 { margin-left:0.5rem }
.ml-3 { margin-left:0.75rem }
.ml-8 { margin-left:2rem }
.mt-0\.5 { margin-top:0.125rem }
.mx-4 { margin-left:1rem;margin-right:1rem }
.mx-auto { margin-left:auto;margin-right:auto }
.my-4 { margin-top:1rem;margin-bottom:1rem }
.object-cover { object-fit:cover }
.opacity-60 { opacity:0.6 }
.outline-none { outline:2px solid transparent;outline-offset:2px }
.overflow-auto { overflow:auto }
.overflow-y-auto { overflow-y:auto }
.p-1 { padding:0.25rem }
.p-1\.5 { padding:0.375rem }
.p-2 { padding:0.5rem }
.p-2\.5 { padding:0.625rem }
.p-8 { padding:2rem }
.pb-1 { padding-bottom:0.25rem }
.pb-2 { padding-bottom:0.5rem }
.pl-2 { padding-left:0.5rem }
.pl-5 { padding-left:1.25rem }
.pr-1 { padding-right:0.25rem }
.pr-3 { padding-right:0.75rem }
.pt-2 { padding-top:0.5rem }
.pt-4 { padding-top:1rem }
.px-1 { padding-left:0.25rem;padding-right:0.25rem }
.px-1\.5 { padding-left:0.375rem;padding-right:0.375rem }
.px-5 { padding-left:1.25rem;padding-right:1.25rem }
.px-6 { padding-left:1.5rem;padding-right:1.5rem }
.py-0\.5 { padding-top:0.125rem;padding-bottom:0.125rem }
.py-1\.5 { padding-top:0.375rem;padding-bottom:0.375rem }
.py-10 { padding-top:2.5rem;padding-bottom:2.5rem }
.py-12 { padding-top:3rem;padding-bottom:3rem }
.py-2\.5 { padding-top:0.625rem;padding-bottom:0.625rem }
.py-20 { padding-top:5rem;padding-bottom:5rem }
.py-4 { padding-top:1rem;padding-bottom:1rem }
.py-6 { padding-top:1.5rem;padding-bottom:1.5rem }
.py-8 { padding-top:2rem;padding-bottom:2rem }
.right-0 { right:0px }
.rounded-2xl { border-radius:1rem }
.rounded-xl { border-radius:0.75rem }
.select-none { user-select:none }
.self-center { align-self:center }
.shadow-2xl { box-shadow:0 25px 50px -12px var(--tw-shadow-color, rgb(0 0 0 / 0.1)) }
.shadow-amber-200\/50 { --tw-shadow-color:rgba(253, 230, 138, 0.5) }
.shadow-blue-200 { --tw-shadow-color:rgb(191, 219, 254) }
.shadow-blue-200\/50 { --tw-shadow-color:rgba(191, 219, 254, 0.5) }
.shadow-emerald-200\/50 { --tw-shadow-color:rgba(167, 243, 208, 0.5) }
.shadow-green-200\/50 { --tw-shadow-color:rgba(187, 247, 208, 0.5) }
.shadow-indigo-200\/50 { --tw-shadow-color:rgba(199, 210, 254, 0.5) }
.shadow-orange-200\/50 { --tw-shadow-color:rgba(254, 215, 170, 0.5) }
.shadow-purple-200 { --tw-shadow-color:rgb(233, 213, 255) }
.shadow-purple-200\/50 { --tw-shadow-color:rgba(233, 213, 255, 0.5) }
.shadow-slate-200\/50 { --tw-shadow-color:rgba(226, 232, 240, 0.5) }
.shadow-teal-200\/50 { --tw-shadow-color:rgba(153, 246, 228, 0.5) }
.shadow-xl { box-shadow:0 20px 25px -5px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 8px 10px -6px var(--tw-shadow-color, rgb(0 0 0 / 0.1)) }
.shrink-0 { flex-shrink:0 }
.space-x-2 > * + * { margin-left:0.5rem }
.space-y-0\.5 > * + * { margin-top:0.125rem }
.space-y-1 > * + * { margin-top:0.25rem }
.space-y-2 > * + * { margin-top:0.5rem }
.space-y-3 > * + * { margin-top:0.75rem }
.space-y-4 > * + * { margin-top:1rem }
.space-y-5 > * + * { margin-top:1.25rem }
.space-y-6 > * + * { margin-top:1.5rem }
.sticky { position:sticky }
.text-3xl { font-size:1.875rem;line-height:2.25rem }
.text-4xl { font-size:2.25rem;line-height:2.5rem }
.text-\[10px\] { color:10px }
.text-\[11px\] { color:11px }
.text-amber-500 { color:rgb(245, 158, 11) }
.text-amber-600 { color:rgb(217, 119, 6) }
.text-amber-700 { color:rgb(180, 83, 9) }
.text-amber-800 { color:rgb(146, 64, 14) }
.text-amber-900 { color:rgb(120, 53, 15) }
.text-blue-400 { color:rgb(96, 165, 250) }
.text-blue-500 { color:rgb(59, 130, 246) }
.text-blue-600 { color:rgb(37, 99, 235) }
.text-blue-700 { color:rgb(29, 78, 216) }
.text-cyan-500 { color:rgb(6, 182, 212) }
.text-cyan-600 { color:rgb(8, 145, 178) }
.text-cyan-700 { color:rgb(14, 116, 144) }
.text-emerald-500\/70 { color:rgba(16, 185, 129, 0.7) }
.text-emerald-600 { color:rgb(5, 150, 105) }
.text-emerald-600\/80 { color:rgba(5, 150, 105, 0.8) }
.text-emerald-700 { color:rgb(4, 120, 87) }
.text-gray-200 { color:rgb(229, 231, 235) }
.text-gray-300 { color:rgb(209, 213, 219) }
.text-green-500 { color:rgb(34, 197, 94) }
.text-green-600 { color:rgb(22, 163, 74) }
.text-green-700 { color:rgb(21, 128, 61) }
.text-indigo-500 { color:rgb(99, 102, 241) }
.text-indigo-600 { color:rgb(79, 70, 229) }
.text-indigo-700 { color:rgb(67, 56, 202) }
.text-orange-600 { color:rgb(234, 88, 12) }
.text-purple-500 { color:rgb(168, 85, 247) }
.text-purple-600 { color:rgb(147, 51, 234) }
.text-purple-700 { color:rgb(126, 34, 206) }
.text-red-400 { color:rgb(248, 113, 113) }
.text-red-500 { color:rgb(239, 68, 68) }
.text-red-600 { color:rgb(220, 38, 38) }
.text-red-700 { color:rgb(185, 28, 28) }
.text-rose-500 { color:rgb(244, 63, 94) }
.text-rose-600 { color:rgb(225, 29, 72) }
.text-slate-500 { color:rgb(100, 116, 139) }
.text-teal-600 { color:rgb(13, 148, 136) }
.text-white { color:#ffffff }
.to-blue-50 { --tw-gradient-to:rgb(239, 246, 255) }
.to-blue-600 { --tw-gradient-to:rgb(37, 99, 235) }
.to-emerald-50 { --tw-gradient-to:rgb(236, 253, 245) }
.to-emerald-500 { --tw-gradient-to:rgb(16, 185, 129) }
.to-emerald-600 { --tw-gradient-to:rgb(5, 150, 105) }
.to-gray-50 { --tw-gradient-to:rgb(249, 250, 251) }
.to-green-600 { --tw-gradient-to:rgb(22, 163, 74) }
.to-indigo-50 { --tw-gradient-to:rgb(238, 242, 255) }
.to-indigo-600 { --tw-gradient-to:rgb(79, 70, 229) }
.to-orange-500 { --tw-gradient-to:rgb(249, 115, 22) }
.to-orange-600 { --tw-gradient-to:rgb(234, 88, 12) }
.to-purple-600 { --tw-gradient-to:rgb(147, 51, 234) }
.to-red-600 { --tw-gradient-to:rgb(220, 38, 38) }
.to-rose-500 { --tw-gradient-to:rgb(244, 63, 94) }
.to-slate-700 { --tw-gradient-to:rgb(51, 65, 85) }
.to-teal-50 { --tw-gradient-to:rgb(240, 253, 250) }
.to-teal-500 { --tw-gradient-to:rgb(20, 184, 166) }
.to-teal-600 { --tw-gradient-to:rgb(13, 148, 136) }
.top-4 { top:1rem }
.tracking-wide { letter-spacing:0.025em }
.transition-all { transition-property:all;transition-timing-function:cubic-bezier(0.4,0,0.2,1);transition-duration:150ms }
.transition-colors { transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(0.4,0,0.2,1);transition-duration:150ms }
.transition-transform { transition-property:transform;transition-timing-function:cubic-bezier(0.4,0,0.2,1);transition-duration:150ms }
.underline { text-decoration-line:underline }
.uppercase { text-transform:uppercase }
.via-blue-100\/20 { --tw-gradient-stops:var(--tw-gradient-from),rgba(219, 234, 254, 0.2),var(--tw-gradient-to) }
.via-blue-100\/40 { --tw-gradient-stops:var(--tw-gradient-from),rgba(219, 234, 254, 0.4),var(--tw-gradient-to) }
.via-gray-100\/40 { --tw-gradient-stops:var(--tw-gradient-from),rgba(243, 244, 246, 0.4),var(--tw-gradient-to) }
.via-teal-100\/40 { --tw-gradient-stops:var(--tw-gradient-from),rgba(204, 251, 241, 0.4),var(--tw-gradient-to) }
.w-1\/5 { width:20% }
.w-10 { width:2.5rem }
.w-12 { width:3rem }
.w-14 { width:3.5rem }
.w-16 { width:4rem }
.w-2 { width:0.5rem }
.w-2\/5 { width:40% }
.w-20 { width:5rem }
.w-24 { width:6rem }
.w-28 { width:7rem }
.w-3\.5 { width:0.875rem }
.w-32 { width:8rem }
.w-4 { width:1rem }
.w-40 { width:10rem }
.w-5 { width:1.25rem }
.w-56 { width:14rem }
.w-6 { width:1.5rem }
.w-7 { width:1.75rem }
.w-8 { width:2rem }
.w-80 { width:20rem }
.w-9 { width:2.25rem }
.w-\[120px\] { width:120px }
.whitespace-pre-wrap { white-space:pre-wrap }
.z-50 { z-index:50 }
.z-\[60\] { z-index:60 }

/* 伪类变体 (hover/focus/active/disabled...) */
.active\:scale-\[0\.98\]:active { transform:scale(0.98) }
.file\:bg-blue-50::file-selector-button { background-color:rgb(239, 246, 255) }
.file\:border-0::file-selector-button { border-width:0 }
.file\:font-medium::file-selector-button { font-weight:500 }
.file\:mr-4::file-selector-button { margin-right:1rem }
.file\:px-4::file-selector-button { padding-left:1rem;padding-right:1rem }
.file\:py-2::file-selector-button { padding-top:0.5rem;padding-bottom:0.5rem }
.file\:rounded-lg::file-selector-button { border-radius:0.5rem }
.file\:text-blue-700::file-selector-button { color:rgb(29, 78, 216) }
.file\:text-sm::file-selector-button { font-size:0.875rem;line-height:1.25rem }
.focus\:border-amber-400:focus { border-color:rgb(251, 191, 36) }
.focus\:border-blue-400:focus { border-color:rgb(96, 165, 250) }
.focus\:ring-2:focus { box-shadow:0 0 0 2px rgba(59,130,246,0.5) }
.focus\:ring-amber-400\/30:focus { box-shadow:0 0 0 3px rgba(251, 191, 36, 0.3) }
.focus\:ring-blue-100:focus { box-shadow:0 0 0 3px rgb(219, 234, 254) }
.focus\:ring-blue-400\/30:focus { box-shadow:0 0 0 3px rgba(96, 165, 250, 0.3) }
.focus\:ring-cyan-400\/30:focus { box-shadow:0 0 0 3px rgba(34, 211, 238, 0.3) }
.focus\:ring-purple-400\/30:focus { box-shadow:0 0 0 3px rgba(192, 132, 252, 0.3) }
.focus\:ring-red-400\/30:focus { box-shadow:0 0 0 3px rgba(248, 113, 113, 0.3) }
.focus\:ring-rose-400\/30:focus { box-shadow:0 0 0 3px rgba(251, 113, 133, 0.3) }
.hover\:bg-amber-100:hover { background-color:rgb(254, 243, 199) }
.hover\:bg-amber-200:hover { background-color:rgb(253, 230, 138) }
.hover\:bg-amber-50:hover { background-color:rgb(255, 251, 235) }
.hover\:bg-amber-600:hover { background-color:rgb(217, 119, 6) }
.hover\:bg-blue-100:hover { background-color:rgb(219, 234, 254) }
.hover\:bg-blue-200:hover { background-color:rgb(191, 219, 254) }
.hover\:bg-blue-50:hover { background-color:rgb(239, 246, 255) }
.hover\:bg-blue-50\/30:hover { background-color:rgba(239, 246, 255, 0.3) }
.hover\:bg-blue-50\/40:hover { background-color:rgba(239, 246, 255, 0.4) }
.hover\:bg-blue-50\/50:hover { background-color:rgba(239, 246, 255, 0.5) }
.hover\:bg-blue-600:hover { background-color:rgb(37, 99, 235) }
.hover\:bg-emerald-100:hover { background-color:rgb(209, 250, 229) }
.hover\:bg-emerald-50\/30:hover { background-color:rgba(236, 253, 245, 0.3) }
.hover\:bg-emerald-600:hover { background-color:rgb(5, 150, 105) }
.hover\:bg-gray-200:hover { background-color:rgb(229, 231, 235) }
.hover\:bg-gray-300:hover { background-color:rgb(209, 213, 219) }
.hover\:bg-gray-50:hover { background-color:rgb(249, 250, 251) }
.hover\:bg-gray-50\/50:hover { background-color:rgba(249, 250, 251, 0.5) }
.hover\:bg-green-100:hover { background-color:rgb(220, 252, 231) }
.hover\:bg-green-200:hover { background-color:rgb(187, 247, 208) }
.hover\:bg-green-600:hover { background-color:rgb(22, 163, 74) }
.hover\:bg-indigo-100:hover { background-color:rgb(224, 231, 255) }
.hover\:bg-indigo-50:hover { background-color:rgb(238, 242, 255) }
.hover\:bg-indigo-600:hover { background-color:rgb(79, 70, 229) }
.hover\:bg-orange-100:hover { background-color:rgb(255, 237, 213) }
.hover\:bg-orange-50:hover { background-color:rgb(255, 247, 237) }
.hover\:bg-orange-600:hover { background-color:rgb(234, 88, 12) }
.hover\:bg-purple-100:hover { background-color:rgb(243, 232, 255) }
.hover\:bg-purple-600:hover { background-color:rgb(147, 51, 234) }
.hover\:bg-red-100:hover { background-color:rgb(254, 226, 226) }
.hover\:bg-red-200:hover { background-color:rgb(254, 202, 202) }
.hover\:bg-red-50:hover { background-color:rgb(254, 242, 242) }
.hover\:bg-red-600:hover { background-color:rgb(220, 38, 38) }
.hover\:bg-rose-50:hover { background-color:rgb(255, 241, 242) }
.hover\:bg-rose-600:hover { background-color:rgb(225, 29, 72) }
.hover\:bg-teal-50:hover { background-color:rgb(240, 253, 250) }
.hover\:bg-teal-600:hover { background-color:rgb(13, 148, 136) }
.hover\:bg-violet-600:hover { background-color:rgb(124, 58, 237) }
.hover\:border-blue-300:hover { border-color:rgb(147, 197, 253) }
.hover\:file\:bg-blue-100:hover::file-selector-button { background-color:rgb(219, 234, 254) }
.hover\:from-amber-600:hover { --tw-gradient-from:rgb(217, 119, 6);--tw-gradient-to:rgb(255 255 255 / 0);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to) }
.hover\:from-blue-600:hover { --tw-gradient-from:rgb(37, 99, 235);--tw-gradient-to:rgb(255 255 255 / 0);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to) }
.hover\:from-emerald-600:hover { --tw-gradient-from:rgb(5, 150, 105);--tw-gradient-to:rgb(255 255 255 / 0);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to) }
.hover\:from-green-600:hover { --tw-gradient-from:rgb(22, 163, 74);--tw-gradient-to:rgb(255 255 255 / 0);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to) }
.hover\:from-indigo-600:hover { --tw-gradient-from:rgb(79, 70, 229);--tw-gradient-to:rgb(255 255 255 / 0);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to) }
.hover\:from-orange-600:hover { --tw-gradient-from:rgb(234, 88, 12);--tw-gradient-to:rgb(255 255 255 / 0);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to) }
.hover\:from-purple-600:hover { --tw-gradient-from:rgb(147, 51, 234);--tw-gradient-to:rgb(255 255 255 / 0);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to) }
.hover\:from-red-600:hover { --tw-gradient-from:rgb(220, 38, 38);--tw-gradient-to:rgb(255 255 255 / 0);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to) }
.hover\:from-slate-700:hover { --tw-gradient-from:rgb(51, 65, 85);--tw-gradient-to:rgb(255 255 255 / 0);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to) }
.hover\:from-teal-600:hover { --tw-gradient-from:rgb(13, 148, 136);--tw-gradient-to:rgb(255 255 255 / 0);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to) }
.hover\:opacity-100:hover { opacity:1.0 }
.hover\:opacity-80:hover { opacity:0.8 }
.hover\:shadow-md:hover { box-shadow:0 4px 6px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 2px 4px -2px var(--tw-shadow-color, rgb(0 0 0 / 0.1)) }
.hover\:shadow-sm:hover { box-shadow:0 1px 2px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)) }
.hover\:text-blue-500:hover { color:rgb(59, 130, 246) }
.hover\:text-blue-600:hover { color:rgb(37, 99, 235) }
.hover\:text-blue-700:hover { color:rgb(29, 78, 216) }
.hover\:text-blue-800:hover { color:rgb(30, 64, 175) }
.hover\:text-gray-600:hover { color:rgb(75, 85, 99) }
.hover\:text-indigo-800:hover { color:rgb(55, 48, 163) }
.hover\:text-red-700:hover { color:rgb(185, 28, 28) }
.hover\:to-blue-700:hover { --tw-gradient-to:rgb(29, 78, 216) }
.hover\:to-emerald-600:hover { --tw-gradient-to:rgb(5, 150, 105) }
.hover\:to-emerald-700:hover { --tw-gradient-to:rgb(4, 120, 87) }
.hover\:to-green-700:hover { --tw-gradient-to:rgb(21, 128, 61) }
.hover\:to-indigo-700:hover { --tw-gradient-to:rgb(67, 56, 202) }
.hover\:to-orange-600:hover { --tw-gradient-to:rgb(234, 88, 12) }
.hover\:to-orange-700:hover { --tw-gradient-to:rgb(194, 65, 12) }
.hover\:to-purple-700:hover { --tw-gradient-to:rgb(126, 34, 206) }
.hover\:to-red-700:hover { --tw-gradient-to:rgb(185, 28, 28) }
.hover\:to-slate-800:hover { --tw-gradient-to:rgb(30, 41, 59) }
.hover\:to-teal-700:hover { --tw-gradient-to:rgb(15, 118, 110) }
.hover\:underline:hover { text-decoration-line:underline }
.last\:border-0:last-child { border-width:0 }

/* 响应式 sm (>=640px) */
@media (min-width: 640px) {
  .sm\:grid-cols-2 { grid-template-columns:repeat(2, minmax(0, 1fr)) }
}

/* 响应式 md (>=768px) */
@media (min-width: 768px) {
  .md\:col-span-2 { grid-column:span 2 / span 2 }
  .md\:col-span-4 { grid-column:span 4 / span 4 }
  .md\:flex { display:flex }
  .md\:grid-cols-2 { grid-template-columns:repeat(2, minmax(0, 1fr)) }
  .md\:grid-cols-3 { grid-template-columns:repeat(3, minmax(0, 1fr)) }
  .md\:grid-cols-4 { grid-template-columns:repeat(4, minmax(0, 1fr)) }
  .md\:grid-cols-5 { grid-template-columns:repeat(5, minmax(0, 1fr)) }
  .md\:grid-cols-6 { grid-template-columns:repeat(6, minmax(0, 1fr)) }
}

/* 响应式 lg (>=1024px) */
@media (min-width: 1024px) {
  .lg\:col-span-1 { grid-column:span 1 / span 1 }
  .lg\:col-span-2 { grid-column:span 2 / span 2 }
  .lg\:grid-cols-3 { grid-template-columns:repeat(3, minmax(0, 1fr)) }
}

/* 响应式 xl (>=1280px) */
@media (min-width: 1280px) {
  .xl\:col-span-2 { grid-column:span 2 / span 2 }
  .xl\:col-span-3 { grid-column:span 3 / span 3 }
  .xl\:grid-cols-5 { grid-template-columns:repeat(5, minmax(0, 1fr)) }
}
