/*
  Lokale Utility-Schicht fuer die kostenlosen Tools.
  Ersetzt die bisher extern geladene Tailwind-/FontAwesome-CDN-Basis.
*/
:root {
  --tool-bg: #181B32;
  --tool-border: #253A66;
  --tool-navy: #1B2E4A;
  --tool-navy-light: #1E2240;
  --tool-crimson: #E32058;
  --tool-crimson-light: #F02870;
  --tool-success: #1C7A49;
  --tool-text-sec: #9AA2B8;
}

.hidden { display: none !important; }
.block { display: block; }
.inline-block { display: inline-block; }
.flex { display: flex; }
.inline-flex { display: inline-flex; }
.grid { display: grid; }
.fixed { position: fixed; }
.absolute { position: absolute; }
.relative { position: relative; }
.inset-0 { inset: 0; }
.top-4 { top: 1rem; }
.top-6 { top: 1.5rem; }
.top-1\/2 { top: 50%; }
.-top-3 { top: -.75rem; }
.-top-8 { top: -2rem; }
.bottom-5 { bottom: 1.25rem; }
.bottom-6 { bottom: 1.5rem; }
.right-4 { right: 1rem; }
.right-5 { right: 1.25rem; }
.right-6 { right: 1.5rem; }
.-right-8 { right: -2rem; }
.left-3\.5 { left: .875rem; }
.left-4 { left: 1rem; }
.left-1\/2 { left: 50%; }
.z-50 { z-index: 50; }

.min-h-screen { min-height: 100vh; }
.w-full { width: 100%; }
.w-auto { width: auto; }
.w-0 { width: 0; }
.w-2 { width: .5rem; }
.w-2\.5 { width: .625rem; }
.w-5 { width: 1.25rem; }
.w-6 { width: 1.5rem; }
.w-7 { width: 1.75rem; }
.w-14 { width: 3.5rem; }
.w-16 { width: 4rem; }
.w-20 { width: 5rem; }
.w-24 { width: 6rem; }
.w-32 { width: 8rem; }
.h-full { height: 100%; }
.h-1\.5 { height: .375rem; }
.h-2 { height: .5rem; }
.h-2\.5 { height: .625rem; }
.h-3 { height: .75rem; }
.h-5 { height: 1.25rem; }
.h-6 { height: 1.5rem; }
.h-7 { height: 1.75rem; }
.h-16 { height: 4rem; }
.h-20 { height: 5rem; }
.h-24 { height: 6rem; }
.h-32 { height: 8rem; }
.h-64 { height: 16rem; }
.max-h-\[180px\] { max-height: 180px; }
.max-w-xs { max-width: 20rem; }
.max-w-sm { max-width: 24rem; }
.max-w-md { max-width: 28rem; }
.max-w-lg { max-width: 32rem; }
.max-w-xl { max-width: 36rem; }
.max-w-2xl { max-width: 42rem; }
.max-w-5xl { max-width: 64rem; }
.max-w-6xl { max-width: 72rem; }
.max-w-7xl { max-width: 80rem; }
.max-w-none { max-width: none; }
.max-w-\[150px\] { max-width: 150px; }
.max-w-\[380px\] { max-width: 380px; }

.mx-auto { margin-left: auto; margin-right: auto; }
.my-12 { margin-top: 3rem; margin-bottom: 3rem; }
.mt-0\.5 { margin-top: .125rem; }
.mt-1 { margin-top: .25rem; }
.mt-1\.5 { margin-top: .375rem; }
.mt-2 { margin-top: .5rem; }
.mt-3 { margin-top: .75rem; }
.mt-4 { margin-top: 1rem; }
.mt-5 { margin-top: 1.25rem; }
.mt-6 { margin-top: 1.5rem; }
.mt-12 { margin-top: 3rem; }
.mb-1 { margin-bottom: .25rem; }
.mb-1\.5 { margin-bottom: .375rem; }
.mb-2 { margin-bottom: .5rem; }
.mb-3 { margin-bottom: .75rem; }
.mb-4 { margin-bottom: 1rem; }
.mb-5 { margin-bottom: 1.25rem; }
.mb-6 { margin-bottom: 1.5rem; }
.mb-8 { margin-bottom: 2rem; }
.ml-3 { margin-left: .75rem; }
.mr-1 { margin-right: .25rem; }
.mr-2 { margin-right: .5rem; }

.p-2\.5 { padding: .625rem; }
.p-3 { padding: .75rem; }
.p-4 { padding: 1rem; }
.p-5 { padding: 1.25rem; }
.p-6 { padding: 1.5rem; }
.p-8 { padding: 2rem; }
.px-1 { padding-left: .25rem; padding-right: .25rem; }
.px-1\.5 { padding-left: .375rem; padding-right: .375rem; }
.px-2 { padding-left: .5rem; padding-right: .5rem; }
.px-2\.5 { padding-left: .625rem; padding-right: .625rem; }
.px-3 { padding-left: .75rem; padding-right: .75rem; }
.px-4 { padding-left: 1rem; padding-right: 1rem; }
.px-5 { padding-left: 1.25rem; padding-right: 1.25rem; }
.px-6 { padding-left: 1.5rem; padding-right: 1.5rem; }
.px-8 { padding-left: 2rem; padding-right: 2rem; }
.py-0\.5 { padding-top: .125rem; padding-bottom: .125rem; }
.py-1 { padding-top: .25rem; padding-bottom: .25rem; }
.py-1\.5 { padding-top: .375rem; padding-bottom: .375rem; }
.py-2 { padding-top: .5rem; padding-bottom: .5rem; }
.py-2\.5 { padding-top: .625rem; padding-bottom: .625rem; }
.py-3 { padding-top: .75rem; padding-bottom: .75rem; }
.py-3\.5 { padding-top: .875rem; padding-bottom: .875rem; }
.py-4 { padding-top: 1rem; padding-bottom: 1rem; }
.py-8 { padding-top: 2rem; padding-bottom: 2rem; }
.py-10 { padding-top: 2.5rem; padding-bottom: 2.5rem; }
.py-12 { padding-top: 3rem; padding-bottom: 3rem; }
.pt-1 { padding-top: .25rem; }
.pt-2 { padding-top: .5rem; }
.pt-4 { padding-top: 1rem; }
.pt-5 { padding-top: 1.25rem; }
.pt-8 { padding-top: 2rem; }
.pb-1 { padding-bottom: .25rem; }
.pb-2 { padding-bottom: .5rem; }
.pb-3 { padding-bottom: .75rem; }
.pb-4 { padding-bottom: 1rem; }
.pb-5 { padding-bottom: 1.25rem; }
.pb-6 { padding-bottom: 1.5rem; }
.pb-8 { padding-bottom: 2rem; }
.pl-4 { padding-left: 1rem; }
.pl-11 { padding-left: 2.75rem; }
.pl-16 { padding-left: 4rem; }
.pr-1 { padding-right: .25rem; }
.pr-4 { padding-right: 1rem; }

.gap-1 { gap: .25rem; }
.gap-2 { gap: .5rem; }
.gap-3 { gap: .75rem; }
.gap-4 { gap: 1rem; }
.gap-5 { gap: 1.25rem; }
.gap-6 { gap: 1.5rem; }
.gap-7 { gap: 1.75rem; }
.gap-8 { gap: 2rem; }
.space-x-1 > * + * { margin-left: .25rem; }
.space-x-1\.5 > * + * { margin-left: .375rem; }
.space-x-2 > * + * { margin-left: .5rem; }
.space-x-3 > * + * { margin-left: .75rem; }
.space-x-4 > * + * { margin-left: 1rem; }
.space-y-1 > * + * { margin-top: .25rem; }
.space-y-1\.5 > * + * { margin-top: .375rem; }
.space-y-2 > * + * { margin-top: .5rem; }
.space-y-2\.5 > * + * { margin-top: .625rem; }
.space-y-3 > * + * { margin-top: .75rem; }
.space-y-4 > * + * { margin-top: 1rem; }
.space-y-5 > * + * { margin-top: 1.25rem; }
.space-y-6 > * + * { margin-top: 1.5rem; }
.space-y-8 > * + * { margin-top: 2rem; }

.grid-cols-1 { grid-template-columns: repeat(1, minmax(0, 1fr)); }
.grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.flex-1 { flex: 1 1 0%; }
.flex-grow { flex-grow: 1; }
.flex-shrink-0 { flex-shrink: 0; }
.flex-col { flex-direction: column; }
.flex-wrap { flex-wrap: wrap; }
.items-start { align-items: flex-start; }
.items-center { align-items: center; }
.items-end { align-items: flex-end; }
.items-baseline { align-items: baseline; }
.justify-start { justify-content: flex-start; }
.justify-center { justify-content: center; }
.justify-between { justify-content: space-between; }
.text-left { text-align: left; }
.text-center { text-align: center; }

.bg-brand-bg { background-color: var(--tool-bg); }
.bg-brand-bg\/30 { background-color: rgba(24, 27, 50, .3); }
.bg-brand-bg\/40 { background-color: rgba(24, 27, 50, .4); }
.bg-brand-bg\/45 { background-color: rgba(24, 27, 50, .45); }
.bg-brand-bg\/50 { background-color: rgba(24, 27, 50, .5); }
.bg-brand-bg\/60 { background-color: rgba(24, 27, 50, .6); }
.bg-brand-border { background-color: var(--tool-border); }
.bg-brand-navy { background-color: var(--tool-navy); }
.bg-brand-navyLight { background-color: var(--tool-navy-light); }
.bg-brand-crimson { background-color: var(--tool-crimson); }
.bg-brand-crimson\/5 { background-color: rgba(227, 32, 88, .05); }
.bg-brand-crimson\/10 { background-color: rgba(227, 32, 88, .1); }
.bg-brand-crimson\/15 { background-color: rgba(227, 32, 88, .15); }
.bg-brand-crimson\/20 { background-color: rgba(227, 32, 88, .2); }
.bg-brand-success { background-color: var(--tool-success); }
.bg-brand-success\/10 { background-color: rgba(28, 122, 73, .1); }
.bg-brand-success\/15 { background-color: rgba(28, 122, 73, .15); }
.bg-brand-textSec { background-color: var(--tool-text-sec); }
.bg-brand\/bg, .bg-navy { background-color: var(--tool-navy); }
.bg-gray-800 { background-color: #1f2937; }
.bg-white { background-color: #fff; }
.bg-white\/20 { background-color: rgba(255, 255, 255, .2); }
.bg-black\/60 { background-color: rgba(0, 0, 0, .6); }
.bg-gradient-to-r { background-image: linear-gradient(to right, var(--tw-gradient-stops)); }
.bg-gradient-to-br { background-image: linear-gradient(to bottom right, var(--tw-gradient-stops)); }
.from-brand-navy { --tw-gradient-from: var(--tool-navy); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(27, 46, 74, 0)); }
.from-brand-navyLight { --tw-gradient-from: var(--tool-navy-light); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(30, 34, 64, 0)); }
.via-brand-navyLight { --tw-gradient-stops: var(--tw-gradient-from), var(--tool-navy-light), var(--tw-gradient-to, rgba(30, 34, 64, 0)); }
.to-brand-bg { --tw-gradient-to: var(--tool-bg); }

.text-white { color: #fff; }
.text-white\/50 { color: rgba(255, 255, 255, .5); }
.text-white\/65 { color: rgba(255, 255, 255, .65); }
.text-white\/70 { color: rgba(255, 255, 255, .7); }
.text-white\/80 { color: rgba(255, 255, 255, .8); }
.text-black { color: #000; }
.text-gray-100 { color: #f3f4f6; }
.text-gray-200 { color: #e5e7eb; }
.text-gray-300 { color: #d1d5db; }
.text-gray-400 { color: #9ca3af; }
.text-gray-500 { color: #6b7280; }
.text-gray-600 { color: #4b5563; }
.text-brand-crimson { color: var(--tool-crimson); }
.text-brandCrimson { color: var(--tool-crimson); }
.text-brand-crimsonLight { color: var(--tool-crimson-light); }
.text-brand-success { color: var(--tool-success); }
.text-brand-textSec { color: var(--tool-text-sec); }
.text-\[\#031C41\] { color: #031C41; }
.text-\[\#1C7A49\] { color: #1C7A49; }
.text-\[\#5A6070\] { color: #5A6070; }
.text-\[\#E32058\] { color: #E32058; }

.font-sans { font-family: 'Barlow', ui-sans-serif, system-ui, sans-serif; }
.font-condensed, .font-display { font-family: 'Barlow Condensed', 'Barlow', sans-serif; }
.font-mono { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; }
.font-normal { font-weight: 400; }
.font-medium { font-weight: 500; }
.font-semibold { font-weight: 600; }
.font-bold { font-weight: 700; }
.font-extrabold { font-weight: 800; }
.italic { font-style: italic; }
.uppercase { text-transform: uppercase; }
.underline { text-decoration: underline; }
.tracking-tight { letter-spacing: -.025em; }
.tracking-wide { letter-spacing: .025em; }
.tracking-wider { letter-spacing: .05em; }
.tracking-widest { letter-spacing: .1em; }
.leading-none { line-height: 1; }
.leading-tight { line-height: 1.25; }
.leading-snug { line-height: 1.375; }
.leading-normal { line-height: 1.5; }
.leading-relaxed { line-height: 1.625; }
.leading-\[1\.05\] { line-height: 1.05; }
.text-\[9px\] { font-size: 9px; }
.text-\[10px\] { font-size: 10px; }
.text-\[11px\] { font-size: 11px; }
.text-\[13px\] { font-size: 13px; }
.text-xs { font-size: .75rem; line-height: 1rem; }
.text-sm { font-size: .875rem; line-height: 1.25rem; }
.text-md { font-size: 1rem; line-height: 1.5rem; }
.text-base { font-size: 1rem; line-height: 1.5rem; }
.text-lg { font-size: 1.125rem; line-height: 1.75rem; }
.text-xl { font-size: 1.25rem; line-height: 1.75rem; }
.text-2xl { font-size: 1.5rem; line-height: 2rem; }
.text-3xl { font-size: 1.875rem; line-height: 2.25rem; }
.text-4xl { font-size: 2.25rem; line-height: 2.5rem; }
.text-6xl { font-size: 3.75rem; line-height: 1; }

.border { border-width: 1px; }
.border-2 { border-width: 2px; }
.border-4 { border-width: 4px; }
.border-t { border-top-width: 1px; }
.border-b { border-bottom-width: 1px; }
.border-y { border-top-width: 1px; border-bottom-width: 1px; }
.border-collapse { border-collapse: collapse; }
.border-transparent { border-color: transparent; }
.border-brand-bg { border-color: var(--tool-bg); }
.border-brand-border { border-color: var(--tool-border); }
.border-brand-border\/40 { border-color: rgba(37, 58, 102, .4); }
.border-brand-border\/70 { border-color: rgba(37, 58, 102, .7); }
.border-brand-crimson { border-color: var(--tool-crimson); }
.border-brand-crimson\/30 { border-color: rgba(227, 32, 88, .3); }
.border-brand-crimson\/40 { border-color: rgba(227, 32, 88, .4); }
.border-brand-success\/30 { border-color: rgba(28, 122, 73, .3); }
.border-\[\#E32058\] { border-color: #E32058; }
.border-\[\#DDE1EA\] { border-color: #DDE1EA; }
.border-gray-300 { border-color: #d1d5db; }
.border-t-brand-crimson { border-top-color: var(--tool-crimson); }
.border-t-transparent { border-top-color: transparent; }
.divide-y > * + * { border-top: 1px solid var(--tool-border); }
.divide-brand-border > * + * { border-color: var(--tool-border); }

.rounded { border-radius: .25rem; }
.rounded-md { border-radius: .375rem; }
.rounded-lg { border-radius: .5rem; }
.rounded-xl { border-radius: .75rem; }
.rounded-2xl { border-radius: 1rem; }
.rounded-full { border-radius: 9999px; }
.shadow-md { box-shadow: 0 4px 10px rgba(0,0,0,.16); }
.shadow-lg { box-shadow: 0 10px 18px rgba(0,0,0,.18); }
.shadow-xl { box-shadow: 0 18px 35px rgba(0,0,0,.22); }
.shadow-2xl { box-shadow: 0 25px 50px rgba(0,0,0,.28); }
.shadow-inner { box-shadow: inset 0 2px 4px rgba(0,0,0,.18); }
.shadow-brand-crimson\/20 { box-shadow: 0 16px 32px rgba(227, 32, 88, .2); }
.shadow-brand-crimson\/30 { box-shadow: 0 16px 32px rgba(227, 32, 88, .3); }
.shadow-brand-crimson\/5 { box-shadow: 0 16px 32px rgba(227, 32, 88, .05); }

.overflow-hidden { overflow: hidden; }
.overflow-x-auto { overflow-x: auto; }
.overflow-y-auto { overflow-y: auto; }
.resize-none { resize: none; }
.cursor-pointer { cursor: pointer; }
.cursor-default { cursor: default; }
.select-none { user-select: none; }
.whitespace-nowrap { white-space: nowrap; }
.whitespace-pre-wrap { white-space: pre-wrap; }
.truncate { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.antialiased { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
.backdrop-blur-sm { backdrop-filter: blur(4px); }
.blur-2xl { filter: blur(40px); }
.blur-3xl { filter: blur(64px); }
.opacity-0 { opacity: 0; }
.opacity-40 { opacity: .4; }
.scale-0 { transform: scale(0); }
.scale-100 { transform: scale(1); }
.scale-105 { transform: scale(1.05); }
.transform { transform: translateZ(0); }
.-translate-x-1\/2 { transform: translateX(-50%); }
.-translate-y-1\/2 { transform: translateY(-50%); }
.transition, .transition-all { transition: all .2s ease; }
.transition-colors { transition: color .2s ease, background-color .2s ease, border-color .2s ease; }
.transition-transform { transition: transform .2s ease; }
.duration-150 { transition-duration: .15s; }
.duration-200 { transition-duration: .2s; }
.duration-300 { transition-duration: .3s; }
.duration-1000 { transition-duration: 1s; }
.animate-spin { animation: tool-spin 1s linear infinite; }
.animate-pulse { animation: tool-pulse 1.5s ease-in-out infinite; }
.animate-bounce { animation: tool-bounce 1s infinite; }
.accent-\[\#E32058\] { accent-color: #E32058; }
.placeholder-gray-400::placeholder { color: #9ca3af; }

@keyframes tool-spin { to { transform: rotate(360deg); } }
@keyframes tool-pulse { 50% { opacity: .55; } }
@keyframes tool-bounce { 0%, 100% { transform: translateY(-15%); } 50% { transform: translateY(0); } }

.hover\:-translate-y-0\.5:hover { transform: translateY(-.125rem); }
.active\:translate-y-0:active { transform: translateY(0); }
.hover\:bg-brand-bg:hover { background-color: var(--tool-bg); }
.hover\:bg-brand-border:hover { background-color: var(--tool-border); }
.hover\:bg-brand-border\/40:hover { background-color: rgba(37, 58, 102, .4); }
.hover\:bg-brand-crimsonLight:hover { background-color: var(--tool-crimson-light); }
.hover\:bg-brand-navy:hover { background-color: var(--tool-navy); }
.hover\:bg-brand-navy\/60:hover { background-color: rgba(27, 46, 74, .6); }
.hover\:bg-brand-navyLight:hover { background-color: var(--tool-navy-light); }
.hover\:border-brand-crimson:hover { border-color: var(--tool-crimson); }
.hover\:text-white:hover { color: #fff; }
.hover\:text-brand-crimson:hover { color: var(--tool-crimson); }
.hover\:text-brand-crimsonLight:hover { color: var(--tool-crimson-light); }
.hover\:text-gray-300:hover { color: #d1d5db; }
.hover\:underline:hover { text-decoration: underline; }
.focus\:outline-none:focus { outline: 2px solid transparent; outline-offset: 2px; }
.focus\:border-brand-crimson:focus { border-color: var(--tool-crimson); }
.focus\:ring-1:focus { box-shadow: 0 0 0 1px var(--tool-crimson); }
.focus\:ring-brand-crimson:focus { box-shadow: 0 0 0 1px var(--tool-crimson); }
.group:hover .group-hover\:scale-100 { transform: scale(1); }
.group:hover .group-hover\:text-white { color: #fff; }
.group:hover .group-hover\:border-brand-crimson { border-color: var(--tool-crimson); }

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border-width: 0;
}

.prose { max-width: 65ch; }
.list-disc { list-style-type: disc; }
.list-decimal { list-style-type: decimal; }
.list-inside { list-style-position: inside; }
.line-clamp-2 {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.fa-solid, .fa-regular, .fa-brands {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1em;
  min-width: 1em;
  font-style: normal;
  font-weight: 700;
  line-height: 1;
}
.fa-solid::before, .fa-regular::before, .fa-brands::before {
  content: "";
  display: block;
  width: 1em;
  height: 1em;
  background: currentColor;
  -webkit-mask: var(--fa-icon, url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='black' d='M12 2l2.1 6.3h6.6l-5.35 3.9 2.05 6.3L12 14.6 6.6 18.5l2.05-6.3L3.3 8.3h6.6z'/%3E%3C/svg%3E")) center / contain no-repeat;
  mask: var(--fa-icon, url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='black' d='M12 2l2.1 6.3h6.6l-5.35 3.9 2.05 6.3L12 14.6 6.6 18.5l2.05-6.3L3.3 8.3h6.6z'/%3E%3C/svg%3E")) center / contain no-repeat;
}
.fa-screwdriver-wrench::before { --fa-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14.7 6.3l3-3 3 3-3 3'/%3E%3Cpath d='M16.7 8.3L8 17l-3 1 1-3 8.7-8.7'/%3E%3Cpath d='M4 4l16 16'/%3E%3Cpath d='M6 4l-2 2'/%3E%3Cpath d='M20 18l-2 2'/%3E%3C/g%3E%3C/svg%3E"); }
.fa-bullseye::before { --fa-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='black' stroke-width='2.2'%3E%3Ccircle cx='12' cy='12' r='8.5'/%3E%3Ccircle cx='12' cy='12' r='4.5'/%3E%3Ccircle cx='12' cy='12' r='1.5' fill='black'/%3E%3C/g%3E%3C/svg%3E"); }
.fa-chart-line::before { --fa-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 19h16'/%3E%3Cpath d='M4 15l5-5 4 3 7-8'/%3E%3Cpath d='M17 5h3v3'/%3E%3C/g%3E%3C/svg%3E"); }
.fa-shield-halved::before, .fa-user-shield::before { --fa-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3l7 3v5c0 5-3.2 8.4-7 10-3.8-1.6-7-5-7-10V6z'/%3E%3Cpath d='M12 3v18'/%3E%3C/g%3E%3C/svg%3E"); }
.fa-circle-question::before { --fa-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M9.6 9a2.7 2.7 0 115 1.4c-1.4.8-2.1 1.4-2.1 2.6'/%3E%3Cpath d='M12 17h.01'/%3E%3C/g%3E%3C/svg%3E"); }
.fa-circle-info::before { --fa-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 11v6'/%3E%3Cpath d='M12 7h.01'/%3E%3C/g%3E%3C/svg%3E"); }
.fa-file-pen::before, .fa-pen-to-square::before { --fa-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 3H6a2 2 0 00-2 2v14a2 2 0 002 2h12a2 2 0 002-2v-8'/%3E%3Cpath d='M13 14l7-7-3-3-7 7-1 4z'/%3E%3C/g%3E%3C/svg%3E"); }
.fa-envelope-open-text::before { --fa-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 10l8-6 8 6v9a2 2 0 01-2 2H6a2 2 0 01-2-2z'/%3E%3Cpath d='M4 11l8 6 8-6'/%3E%3Cpath d='M9 10h6M9 13h6'/%3E%3C/g%3E%3C/svg%3E"); }
.fa-map-location-dot::before { --fa-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 18l-5 3V6l5-3 6 3 5-3v15l-5 3z'/%3E%3Cpath d='M9 3v15M15 6v15'/%3E%3Ccircle cx='15' cy='10' r='2'/%3E%3C/g%3E%3C/svg%3E"); }
.fa-magnifying-glass-chart::before { --fa-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='10' cy='10' r='6'/%3E%3Cpath d='M15 15l5 5'/%3E%3Cpath d='M7 12V9M10 12V7M13 12v-2'/%3E%3C/g%3E%3C/svg%3E"); }
.fa-tags::before { --fa-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 13l-7 7-9-9V4h7z'/%3E%3Cpath d='M7.5 7.5h.01'/%3E%3Cpath d='M16 5l4 4'/%3E%3C/g%3E%3C/svg%3E"); }
.fa-file-invoice::before, .fa-file-code::before, .fa-file-contract::before { --fa-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 3H6a2 2 0 00-2 2v14a2 2 0 002 2h12a2 2 0 002-2V7z'/%3E%3Cpath d='M14 3v4h4'/%3E%3Cpath d='M8 12h8M8 16h6'/%3E%3C/g%3E%3C/svg%3E"); }
.fa-google::before { content: "G"; background: none; -webkit-mask: none; mask: none; width: auto; height: auto; font-family: Arial, sans-serif; font-weight: 700; }
.fa-share-nodes::before { --fa-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round'%3E%3Ccircle cx='18' cy='5' r='3'/%3E%3Ccircle cx='6' cy='12' r='3'/%3E%3Ccircle cx='18' cy='19' r='3'/%3E%3Cpath d='M8.7 10.7l6.6-4.4M8.7 13.3l6.6 4.4'/%3E%3C/g%3E%3C/svg%3E"); }
.fa-paper-plane::before { --fa-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='black' d='M21 3L3 11l7 3 3 7zM10.7 13.3l5.9-5.9-4.2 8.9z'/%3E%3C/svg%3E"); }
.fa-arrow-up-right-from-square::before { --fa-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 4h6v6'/%3E%3Cpath d='M10 14L20 4'/%3E%3Cpath d='M20 14v4a2 2 0 01-2 2H6a2 2 0 01-2-2V6a2 2 0 012-2h4'/%3E%3C/g%3E%3C/svg%3E"); }
.fa-gear::before { --fa-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3Cpath d='M19.4 15a8 8 0 000-6l2-1.5-2-3.4-2.4 1a8 8 0 00-5-2L11.6 1H7.7L7.3 3.6a8 8 0 00-4.3 2.5L.7 5.1l-2 3.4L.7 10a8 8 0 000 4l-2 1.5 2 3.4 2.4-1a8 8 0 004.2 2.5l.4 2.6h3.9l.4-2.6a8 8 0 004.3-2.5l2.3 1 2-3.4z' transform='translate(1.3)'/%3E%3C/g%3E%3C/svg%3E"); }
.fa-wand-magic-sparkles::before { --fa-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 20L20 4'/%3E%3Cpath d='M14 4l6 6'/%3E%3Cpath d='M6 4l1 2 2 1-2 1-1 2-1-2-2-1 2-1z'/%3E%3Cpath d='M18 15l1 2 2 1-2 1-1 2-1-2-2-1 2-1z'/%3E%3C/g%3E%3C/svg%3E"); }
.fa-key::before { --fa-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='7' cy='14' r='4'/%3E%3Cpath d='M10 11l9-9M15 6l3 3M13 8l2 2'/%3E%3C/g%3E%3C/svg%3E"); }
.fa-file-csv::before, .fa-file-pdf::before, .fa-file-export::before { --fa-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 3H6a2 2 0 00-2 2v14a2 2 0 002 2h12a2 2 0 002-2V7z'/%3E%3Cpath d='M14 3v4h4'/%3E%3Cpath d='M8 16h8M12 12v6M9 15l3 3 3-3'/%3E%3C/g%3E%3C/svg%3E"); }
.fa-list-check::before, .fa-clipboard-list::before { --fa-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 6h11M9 12h11M9 18h11'/%3E%3Cpath d='M4 6l1 1 2-2M4 12l1 1 2-2M4 18l1 1 2-2'/%3E%3C/g%3E%3C/svg%3E"); }
.fa-copy::before { --fa-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='black' stroke-width='2.2' stroke-linejoin='round'%3E%3Crect x='8' y='8' width='11' height='11' rx='2'/%3E%3Cpath d='M5 15H4a2 2 0 01-2-2V5a2 2 0 012-2h8a2 2 0 012 2v1'/%3E%3C/g%3E%3C/svg%3E"); }
.fa-rectangle-ad::before { --fa-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='M7 15l2-6 2 6M8 13h2M14 9h2a3 3 0 010 6h-2z'/%3E%3C/g%3E%3C/svg%3E"); }
.fa-code::before { --fa-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 8l-4 4 4 4M16 8l4 4-4 4M14 4l-4 16'/%3E%3C/g%3E%3C/svg%3E"); }
.fa-database::before { --fa-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='black' stroke-width='2.2'%3E%3Cellipse cx='12' cy='5' rx='8' ry='3'/%3E%3Cpath d='M4 5v14c0 1.7 3.6 3 8 3s8-1.3 8-3V5'/%3E%3Cpath d='M4 12c0 1.7 3.6 3 8 3s8-1.3 8-3'/%3E%3C/g%3E%3C/svg%3E"); }
.fa-graduation-cap::before { --fa-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 9l10-5 10 5-10 5z'/%3E%3Cpath d='M6 12v4c2 2 10 2 12 0v-4'/%3E%3Cpath d='M22 9v6'/%3E%3C/g%3E%3C/svg%3E"); }
.fa-users::before, .fa-users-gear::before, .fa-users-viewfinder::before { --fa-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 21v-2a4 4 0 00-4-4H6a4 4 0 00-4 4v2'/%3E%3Ccircle cx='9' cy='7' r='4'/%3E%3Cpath d='M22 21v-2a4 4 0 00-3-3.9M16 3.1a4 4 0 010 7.8'/%3E%3C/g%3E%3C/svg%3E"); }
.fa-comments::before, .fa-message::before { --fa-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 12a7 7 0 01-7 7H8l-5 3 1.5-5A7 7 0 113 12a7 7 0 0118 0z'/%3E%3Cpath d='M8 10h8M8 14h5'/%3E%3C/g%3E%3C/svg%3E"); }
.fa-eye::before { --fa-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 12s4-7 10-7 10 7 10 7-4 7-10 7S2 12 2 12z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/g%3E%3C/svg%3E"); }
.fa-download::before { --fa-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3v12'/%3E%3Cpath d='M7 10l5 5 5-5'/%3E%3Cpath d='M5 21h14'/%3E%3C/g%3E%3C/svg%3E"); }
.fa-rocket::before { --fa-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 4c3 0 5 2 5 5 0 5-5 9-11 11l-5-5C6 9 10 4 15 4z'/%3E%3Ccircle cx='15' cy='9' r='2'/%3E%3Cpath d='M5 19l-2 2M9 15l-4 4'/%3E%3C/g%3E%3C/svg%3E"); }
.fa-bolt::before { --fa-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='black' d='M13 2L4 14h7l-1 8 10-13h-7z'/%3E%3C/svg%3E"); }
.fa-rotate-left::before { --fa-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 12a9 9 0 109-9 9 9 0 00-7.7 4.4'/%3E%3Cpath d='M3 4v6h6'/%3E%3C/g%3E%3C/svg%3E"); }
.fa-plus::before { --fa-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg stroke='black' stroke-width='2.6' stroke-linecap='round'%3E%3Cpath d='M12 5v14M5 12h14'/%3E%3C/g%3E%3C/svg%3E"); }
.fa-trash-can::before, .fa-xmark::before { --fa-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round' fill='none'%3E%3Cpath d='M6 6l12 12M18 6L6 18'/%3E%3C/g%3E%3C/svg%3E"); }
.fa-check::before, .fa-circle-check::before, .fa-check-double::before { --fa-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6L9 17l-5-5'/%3E%3C/g%3E%3C/svg%3E"); }
.fa-circle-exclamation::before, .fa-triangle-exclamation::before { --fa-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3l10 18H2z'/%3E%3Cpath d='M12 9v5'/%3E%3Cpath d='M12 18h.01'/%3E%3C/g%3E%3C/svg%3E"); }
.fa-arrow-up::before { --fa-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 19V5M5 12l7-7 7 7'/%3E%3C/g%3E%3C/svg%3E"); }
.fa-arrow-down::before { --fa-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 5v14M5 12l7 7 7-7'/%3E%3C/g%3E%3C/svg%3E"); }
.fa-spinner::before { --fa-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='black' stroke-width='3' stroke-linecap='round'%3E%3Cpath d='M12 3a9 9 0 019 9'/%3E%3Cpath opacity='.35' d='M21 12a9 9 0 11-9-9'/%3E%3C/g%3E%3C/svg%3E"); }

@media (min-width: 640px) {
  .sm\:flex-row { flex-direction: row; }
  .sm\:grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sm\:items-center { align-items: center; }
  .sm\:justify-between { justify-content: space-between; }
  .sm\:px-6 { padding-left: 1.5rem; padding-right: 1.5rem; }
}

@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)); }
  .md\:grid-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .md\:grid-cols-12 { grid-template-columns: repeat(12, minmax(0, 1fr)); }
  .md\:grid-cols-\[1fr_1\.2fr_auto\] { grid-template-columns: 1fr 1.2fr auto; }
  .md\:col-span-2 { grid-column: span 2 / span 2; }
  .md\:col-span-3 { grid-column: span 3 / span 3; }
  .md\:col-span-4 { grid-column: span 4 / span 4; }
  .md\:col-span-5 { grid-column: span 5 / span 5; }
  .md\:col-span-6 { grid-column: span 6 / span 6; }
  .md\:col-span-7 { grid-column: span 7 / span 7; }
  .md\:flex-row { flex-direction: row; }
  .md\:items-center { align-items: center; }
  .md\:items-end { align-items: flex-end; }
  .md\:justify-start { justify-content: flex-start; }
  .md\:justify-end { justify-content: flex-end; }
  .md\:justify-between { justify-content: space-between; }
  .md\:text-left { text-align: left; }
  .md\:text-sm { font-size: .875rem; line-height: 1.25rem; }
  .md\:text-base { font-size: 1rem; line-height: 1.5rem; }
  .md\:text-3xl { font-size: 1.875rem; line-height: 2.25rem; }
  .md\:text-5xl { font-size: 3rem; line-height: 1; }
  .md\:text-6xl { font-size: 3.75rem; line-height: 1; }
  .md\:text-7xl { font-size: 4.5rem; line-height: 1; }
  .md\:text-\[10px\] { font-size: 10px; }
  .md\:p-7 { padding: 1.75rem; }
  .md\:p-8 { padding: 2rem; }
  .md\:px-6 { padding-left: 1.5rem; padding-right: 1.5rem; }
  .md\:py-0 { padding-top: 0; padding-bottom: 0; }
  .md\:py-16 { padding-top: 4rem; padding-bottom: 4rem; }
  .md\:pt-16 { padding-top: 4rem; }
  .md\:pb-14 { padding-bottom: 3.5rem; }
  .md\:mt-0 { margin-top: 0; }
  .md\:w-auto { width: auto; }
  .md\:border-x { border-left-width: 1px; border-right-width: 1px; }
  .md\:border-y-0 { border-top-width: 0; border-bottom-width: 0; }
}

@media (min-width: 1024px) {
  .lg\:grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .lg\:grid-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .lg\:grid-cols-12 { grid-template-columns: repeat(12, minmax(0, 1fr)); }
  .lg\:col-span-1 { grid-column: span 1 / span 1; }
  .lg\:col-span-2 { grid-column: span 2 / span 2; }
  .lg\:col-span-4 { grid-column: span 4 / span 4; }
  .lg\:col-span-5 { grid-column: span 5 / span 5; }
  .lg\:col-span-6 { grid-column: span 6 / span 6; }
  .lg\:col-span-7 { grid-column: span 7 / span 7; }
  .lg\:col-span-8 { grid-column: span 8 / span 8; }
  .lg\:border-l { border-left-width: 1px; }
  .lg\:border-t-0 { border-top-width: 0; }
  .lg\:pl-7 { padding-left: 1.75rem; }
  .lg\:pt-0 { padding-top: 0; }
  .lg\:px-8 { padding-left: 2rem; padding-right: 2rem; }
}

@media (min-width: 1280px) {
  .xl\:grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media print {
  .print\:block { display: block !important; }
}
