/* TailwindCSS JIT-Mode Input file. Use TailwindCSS functions and directives here – https://tailwindcss.com/docs/functions-and-directives About JIT-Mode: https://tailwindcss.com/docs/just-in-time-mode#styles-rebuild-in-an-infinite-loop TailwindCSS CLI generates the css/index-tailwind-output.css file based on this file. It is not used directly in the app. */ /* ! tailwindcss v2.2.15 | MIT License | https://tailwindcss.com */ /*! modern-normalize v1.1.0 | MIT License | https://github.com/sindresorhus/modern-normalize */ /* Document ======== */ /** Use a better box model (opinionated). */ *, ::before, ::after { box-sizing: border-box; } /** Use a more readable tab size (opinionated). */ html { tab-size: 4; } /** 1. Correct the line height in all browsers. 2. Prevent adjustments of font size after orientation changes in iOS. */ html { line-height: 1.15; /* 1 */ -webkit-text-size-adjust: 100%; /* 2 */ } /* Sections ======== */ /** Remove the margin in all browsers. */ body { margin: 0; } /** Improve consistency of default fonts in all browsers. (https://github.com/sindresorhus/modern-normalize/issues/3) */ body { font-family: system-ui, -apple-system, /* Firefox supports this but not yet `system-ui` */ 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji'; } /* Grouping content ================ */ /** 1. Add the correct height in Firefox. 2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655) */ hr { height: 0; /* 1 */ color: inherit; /* 2 */ } /* Text-level semantics ==================== */ /** Add the correct text decoration in Chrome, Edge, and Safari. */ abbr[title] { -webkit-text-decoration: underline dotted; text-decoration: underline dotted; } /** Add the correct font weight in Edge and Safari. */ b, strong { font-weight: bolder; } /** 1. Improve consistency of default fonts in all browsers. (https://github.com/sindresorhus/modern-normalize/issues/3) 2. Correct the odd 'em' font sizing in all browsers. */ code, kbd, samp, pre { font-family: ui-monospace, SFMono-Regular, Consolas, 'Liberation Mono', Menlo, monospace; /* 1 */ font-size: 1em; /* 2 */ } /** Add the correct font size in all browsers. */ small { font-size: 80%; } /** Prevent 'sub' and 'sup' elements from affecting the line height in all browsers. */ sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; } sub { bottom: -0.25em; } sup { top: -0.5em; } /* Tabular data ============ */ /** 1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297) 2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016) */ table { text-indent: 0; /* 1 */ border-color: inherit; /* 2 */ } /* Forms ===== */ /** 1. Change the font styles in all browsers. 2. Remove the margin in Firefox and Safari. */ button, input, optgroup, select, textarea { font-family: inherit; /* 1 */ font-size: 100%; /* 1 */ line-height: 1.15; /* 1 */ margin: 0; /* 2 */ } /** Remove the inheritance of text transform in Edge and Firefox. 1. Remove the inheritance of text transform in Firefox. */ button, select { /* 1 */ text-transform: none; } /** Correct the inability to style clickable types in iOS and Safari. */ button, [type='button'], [type='reset'], [type='submit'] { -webkit-appearance: button; } /** Remove the inner border and padding in Firefox. */ ::-moz-focus-inner { border-style: none; padding: 0; } /** Restore the focus styles unset by the previous rule. */ :-moz-focusring { outline: 1px dotted ButtonText; } /** Remove the additional ':invalid' styles in Firefox. See: https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737 */ :-moz-ui-invalid { box-shadow: none; } /** Remove the padding so developers are not caught out when they zero out 'fieldset' elements in all browsers. */ legend { padding: 0; } /** Add the correct vertical alignment in Chrome and Firefox. */ progress { vertical-align: baseline; } /** Correct the cursor style of increment and decrement buttons in Safari. */ ::-webkit-inner-spin-button, ::-webkit-outer-spin-button { height: auto; } /** 1. Correct the odd appearance in Chrome and Safari. 2. Correct the outline style in Safari. */ [type='search'] { -webkit-appearance: textfield; /* 1 */ outline-offset: -2px; /* 2 */ } /** Remove the inner padding in Chrome and Safari on macOS. */ ::-webkit-search-decoration { -webkit-appearance: none; } /** 1. Correct the inability to style clickable types in iOS and Safari. 2. Change font properties to 'inherit' in Safari. */ ::-webkit-file-upload-button { -webkit-appearance: button; /* 1 */ font: inherit; /* 2 */ } /* Interactive =========== */ /* Add the correct display in Chrome and Safari. */ summary { display: list-item; } /** * Manually forked from SUIT CSS Base: https://github.com/suitcss/base * A thin layer on top of normalize.css that provides a starting point more * suitable for web applications. */ /** * Removes the default spacing and border for appropriate elements. */ blockquote, dl, dd, h1, h2, h3, h4, h5, h6, hr, figure, p, pre { margin: 0; } button { background-color: transparent; background-image: none; } fieldset { margin: 0; padding: 0; } ol, ul { list-style: none; margin: 0; padding: 0; } /** * Tailwind custom reset styles */ /** * 1. Use the user's configured `sans` font-family (with Tailwind's default * sans-serif font stack as a fallback) as a sane default. * 2. Use Tailwind's default "normal" line-height so the user isn't forced * to override it to ensure consistency even when using the default theme. */ html { font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; /* 1 */ line-height: 1.5; /* 2 */ } /** * Inherit font-family and line-height from `html` so users can set them as * a class directly on the `html` element. */ body { font-family: inherit; line-height: inherit; } /** * 1. Prevent padding and border from affecting element width. * * We used to set this in the html element and inherit from * the parent element for everything else. This caused issues * in shadow-dom-enhanced elements like
where the content * is wrapped by a div with box-sizing set to `content-box`. * * https://github.com/mozdevs/cssremedy/issues/4 * * * 2. Allow adding a border to an element by just adding a border-width. * * By default, the way the browser specifies that an element should have no * border is by setting it's border-style to `none` in the user-agent * stylesheet. * * In order to easily add borders to elements by just setting the `border-width` * property, we change the default border-style for all elements to `solid`, and * use border-width to hide them instead. This way our `border` utilities only * need to set the `border-width` property instead of the entire `border` * shorthand, making our border utilities much more straightforward to compose. * * https://github.com/tailwindcss/tailwindcss/pull/116 */ *, ::before, ::after { box-sizing: border-box; /* 1 */ border-width: 0; /* 2 */ border-style: solid; /* 2 */ border-color: currentColor; /* 2 */ } /* * Ensure horizontal rules are visible by default */ hr { border-top-width: 1px; } /** * Undo the `border-style: none` reset that Normalize applies to images so that * our `border-{width}` utilities have the expected effect. * * The Normalize reset is unnecessary for us since we default the border-width * to 0 on all elements. * * https://github.com/tailwindcss/tailwindcss/issues/362 */ img { border-style: solid; } textarea { resize: vertical; } input::-webkit-input-placeholder, textarea::-webkit-input-placeholder { opacity: 1; color: #9ca3af; } input:-ms-input-placeholder, textarea:-ms-input-placeholder { opacity: 1; color: #9ca3af; } input::placeholder, textarea::placeholder { opacity: 1; color: #9ca3af; } button, [role="button"] { cursor: pointer; } /** * Override legacy focus reset from Normalize with modern Firefox focus styles. * * This is actually an improvement over the new defaults in Firefox in our testing, * as it triggers the better focus styles even for links, which still use a dotted * outline in Firefox by default. */ :-moz-focusring { outline: auto; } table { border-collapse: collapse; } h1, h2, h3, h4, h5, h6 { font-size: inherit; font-weight: inherit; } /** * Reset links to optimize for opt-in styling instead of * opt-out. */ a { color: inherit; text-decoration: inherit; } /** * Reset form element properties that are easy to forget to * style explicitly so you don't inadvertently introduce * styles that deviate from your design system. These styles * supplement a partial reset that is already applied by * normalize.css. */ button, input, optgroup, select, textarea { padding: 0; line-height: inherit; color: inherit; } /** * Use the configured 'mono' font family for elements that * are expected to be rendered with a monospace font, falling * back to the system monospace stack if there is no configured * 'mono' font family. */ pre, code, kbd, samp { font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; } /** * 1. Make replaced elements `display: block` by default as that's * the behavior you want almost all of the time. Inspired by * CSS Remedy, with `svg` added as well. * * https://github.com/mozdevs/cssremedy/issues/14 * * 2. Add `vertical-align: middle` to align replaced elements more * sensibly by default when overriding `display` by adding a * utility like `inline`. * * This can trigger a poorly considered linting error in some * tools but is included by design. * * https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210 */ img, svg, video, canvas, audio, iframe, embed, object { display: block; /* 1 */ vertical-align: middle; /* 2 */ } /** * Constrain images and videos to the parent width and preserve * their intrinsic aspect ratio. * * https://github.com/mozdevs/cssremedy/issues/14 */ img, video { max-width: 100%; height: auto; } /** * Ensure the default browser behavior of the `hidden` attribute. */ [hidden] { display: none; } *, ::before, ::after { --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-transform: translateX(var(--tw-translate-x)) translateY(var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); --tw-border-opacity: 1; border-color: rgba(229, 231, 235, var(--tw-border-opacity)); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-ring-inset: var(--tw-empty,/*!*/ /*!*/); --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgba(59, 130, 246, 0.5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-blur: var(--tw-empty,/*!*/ /*!*/); --tw-brightness: var(--tw-empty,/*!*/ /*!*/); --tw-contrast: var(--tw-empty,/*!*/ /*!*/); --tw-grayscale: var(--tw-empty,/*!*/ /*!*/); --tw-hue-rotate: var(--tw-empty,/*!*/ /*!*/); --tw-invert: var(--tw-empty,/*!*/ /*!*/); --tw-saturate: var(--tw-empty,/*!*/ /*!*/); --tw-sepia: var(--tw-empty,/*!*/ /*!*/); --tw-drop-shadow: var(--tw-empty,/*!*/ /*!*/); --tw-filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow); } .container { width: 100%; } @media (min-width: 640px) { .container { max-width: 640px; } } @media (min-width: 768px) { .container { max-width: 768px; } } @media (min-width: 1024px) { .container { max-width: 1024px; } } @media (min-width: 1280px) { .container { max-width: 1280px; } } @media (min-width: 1536px) { .container { max-width: 1536px; } } .pointer-events-none { pointer-events: none; } .pointer-events-auto { pointer-events: auto; } .visible { visibility: visible; } .invisible { visibility: hidden; } .static { position: static; } .fixed { position: fixed; } .absolute { position: absolute; } .relative { position: relative; } .sticky { position: -webkit-sticky; position: sticky; } .inset-0 { top: 0px; right: 0px; bottom: 0px; left: 0px; } .left-24 { left: 6rem; } .right-24 { right: 6rem; } .top-56 { top: 14rem; } .bottom-3 { bottom: 0.75rem; } .left-3 { left: 0.75rem; } .right-2 { right: 0.5rem; } .top-2 { top: 0.5rem; } .right-3 { right: 0.75rem; } .bottom-0 { bottom: 0px; } .right-1\/3 { right: 33.333333%; } .top-4 { top: 1rem; } .top-0 { top: 0px; } .right-0 { right: 0px; } .left-0 { left: 0px; } .left-1\/2 { left: 50%; } .top-1\/2 { top: 50%; } .isolate { isolation: isolate; } .z-10 { z-index: 10; } .z-0 { z-index: 0; } .float-right { float: right; } .float-left { float: left; } .float-none { float: none; } .m-8 { margin: 2rem; } .m-1 { margin: 0.25rem; } .m-4 { margin: 1rem; } .m-5 { margin: 1.25rem; } .m-2 { margin: 0.5rem; } .m-0\.5 { margin: 0.125rem; } .m-0 { margin: 0px; } .m-3 { margin: 0.75rem; } .m-6 { margin: 1.5rem; } .m-px { margin: 1px; } .my-2 { margin-top: 0.5rem; margin-bottom: 0.5rem; } .mx-10 { margin-left: 2.5rem; margin-right: 2.5rem; } .my-3 { margin-top: 0.75rem; margin-bottom: 0.75rem; } .mb-2 { margin-bottom: 0.5rem; } .ml-3 { margin-left: 0.75rem; } .mb-4 { margin-bottom: 1rem; } .mt-2 { margin-top: 0.5rem; } .ml-0 { margin-left: 0px; } .mr-8 { margin-right: 2rem; } .mt-4 { margin-top: 1rem; } .mt-6 { margin-top: 1.5rem; } .mr-1 { margin-right: 0.25rem; } .mr-2 { margin-right: 0.5rem; } .mt-1 { margin-top: 0.25rem; } .ml-4 { margin-left: 1rem; } .mb-24 { margin-bottom: 6rem; } .mr-4 { margin-right: 1rem; } .ml-2 { margin-left: 0.5rem; } .ml-12 { margin-left: 3rem; } .mt-3 { margin-top: 0.75rem; } .mb-10 { margin-bottom: 2.5rem; } .mt-0 { margin-top: 0px; } .mt-8 { margin-top: 2rem; } .mb-8 { margin-bottom: 2rem; } .ml-1 { margin-left: 0.25rem; } .mb-1 { margin-bottom: 0.25rem; } .mr-0 { margin-right: 0px; } .mr-3 { margin-right: 0.75rem; } .-ml-12 { margin-left: -3rem; } .-mt-12 { margin-top: -3rem; } .mb-0 { margin-bottom: 0px; } .box-border { box-sizing: border-box; } .box-content { box-sizing: content-box; } .block { display: block; } .inline-block { display: inline-block; } .inline { display: inline; } .flex { display: flex; } .inline-flex { display: inline-flex; } .table { display: table; } .table-caption { display: table-caption; } .table-cell { display: table-cell; } .table-column { display: table-column; } .table-column-group { display: table-column-group; } .table-footer-group { display: table-footer-group; } .table-header-group { display: table-header-group; } .table-row-group { display: table-row-group; } .table-row { display: table-row; } .grid { display: grid; } .contents { display: contents; } .list-item { display: list-item; } .hidden { display: none; } .h-24 { height: 6rem; } .h-64 { height: 16rem; } .h-full { height: 100%; } .h-10 { height: 2.5rem; } .h-12 { height: 3rem; } .h-8 { height: 2rem; } .h-14 { height: 3.5rem; } .h-4 { height: 1rem; } .h-1\/2 { height: 50%; } .h-screen { height: 100vh; } .h-11 { height: 2.75rem; } .h-6 { height: 1.5rem; } .h-32 { height: 8rem; } .h-96 { height: 24rem; } .h-16 { height: 4rem; } .h-0 { height: 0px; } .h-3 { height: 0.75rem; } .h-48 { height: 12rem; } .max-h-7 { max-height: 1.75rem; } .max-h-20vh { max-height: 20vh; } .max-h-32 { max-height: 8rem; } .max-h-4 { max-height: 1rem; } .max-h-8 { max-height: 2rem; } .w-full { width: 100%; } .w-24 { width: 6rem; } .w-1\/2 { width: 50%; } .w-6 { width: 1.5rem; } .w-10 { width: 2.5rem; } .w-12 { width: 3rem; } .w-8 { width: 2rem; } .w-14 { width: 3.5rem; } .w-1\/3 { width: 33.333333%; } .w-4 { width: 1rem; } .w-0 { width: 0px; } .w-screen { width: 100vw; } .w-11 { width: 2.75rem; } .w-min { width: -webkit-min-content; width: min-content; } .w-max { width: -webkit-max-content; width: max-content; } .w-32 { width: 8rem; } .w-16 { width: 4rem; } .w-auto { width: auto; } .min-w-min { min-width: -webkit-min-content; min-width: min-content; } .max-w-full { max-width: 100%; } .flex-none { flex: none; } .flex-auto { flex: 1 1 auto; } .flex-shrink-0 { flex-shrink: 0; } .flex-shrink { flex-shrink: 1; } .flex-grow { flex-grow: 1; } .border-collapse { border-collapse: collapse; } .transform { -webkit-transform: var(--tw-transform); transform: var(--tw-transform); } @-webkit-keyframes spin { to { -webkit-transform: rotate(360deg); transform: rotate(360deg); } } @keyframes spin { to { -webkit-transform: rotate(360deg); transform: rotate(360deg); } } .animate-spin { -webkit-animation: spin 1s linear infinite; animation: spin 1s linear infinite; } @-webkit-keyframes pulse { 50% { opacity: .5; } } @keyframes pulse { 50% { opacity: .5; } } .animate-pulse { -webkit-animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite; animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite; } .cursor-pointer { cursor: pointer; } .cursor-wait { cursor: wait; } .resize { resize: both; } .flex-row { flex-direction: row; } .flex-col { flex-direction: column; } .flex-wrap { flex-wrap: wrap; } .flex-wrap-reverse { flex-wrap: wrap-reverse; } .place-content-center { place-content: center; } .content-start { align-content: flex-start; } .items-end { align-items: flex-end; } .items-center { align-items: center; } .items-baseline { align-items: baseline; } .items-stretch { align-items: stretch; } .justify-end { justify-content: flex-end; } .justify-center { justify-content: center; } .justify-between { justify-content: space-between; } .gap-4 { gap: 1rem; } .space-x-2 > :not([hidden]) ~ :not([hidden]) { --tw-space-x-reverse: 0; margin-right: calc(0.5rem * var(--tw-space-x-reverse)); margin-left: calc(0.5rem * calc(1 - var(--tw-space-x-reverse))); } .self-end { align-self: flex-end; } .self-center { align-self: center; } .overflow-auto { overflow: auto; } .overflow-hidden { overflow: hidden; } .overflow-scroll { overflow: scroll; } .overflow-x-auto { overflow-x: auto; } .overflow-y-auto { overflow-y: auto; } .truncate { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .overflow-ellipsis { text-overflow: ellipsis; } .whitespace-nowrap { white-space: nowrap; } .break-normal { overflow-wrap: normal; word-break: normal; } .break-words { overflow-wrap: break-word; } .break-all { word-break: break-all; } .rounded-full { border-radius: 9999px; } .rounded-xl { border-radius: 0.75rem; } .rounded-3xl { border-radius: 1.5rem; } .rounded { border-radius: 0.25rem; } .rounded-md { border-radius: 0.375rem; } .rounded-lg { border-radius: 0.5rem; } .rounded-sm { border-radius: 0.125rem; } .rounded-l { border-top-left-radius: 0.25rem; border-bottom-left-radius: 0.25rem; } .border-2 { border-width: 2px; } .border { border-width: 1px; } .border-4 { border-width: 4px; } .border-b-4 { border-bottom-width: 4px; } .border-l-4 { border-left-width: 4px; } .border-b { border-bottom-width: 1px; } .border-gray-500 { --tw-border-opacity: 1; border-color: rgba(107, 114, 128, var(--tw-border-opacity)); } .border-black { --tw-border-opacity: 1; border-color: rgba(0, 0, 0, var(--tw-border-opacity)); } .border-gray-400 { --tw-border-opacity: 1; border-color: rgba(156, 163, 175, var(--tw-border-opacity)); } .border-gray-300 { --tw-border-opacity: 1; border-color: rgba(209, 213, 219, var(--tw-border-opacity)); } .border-red-300 { --tw-border-opacity: 1; border-color: rgba(252, 165, 165, var(--tw-border-opacity)); } .border-blue-500 { --tw-border-opacity: 1; border-color: rgba(59, 130, 246, var(--tw-border-opacity)); } .border-gray-200 { --tw-border-opacity: 1; border-color: rgba(229, 231, 235, var(--tw-border-opacity)); } .border-opacity-50 { --tw-border-opacity: 0.5; } .bg-white { --tw-bg-opacity: 1; background-color: rgba(255, 255, 255, var(--tw-bg-opacity)); } .bg-gray-200 { --tw-bg-opacity: 1; background-color: rgba(229, 231, 235, var(--tw-bg-opacity)); } .bg-red-400 { --tw-bg-opacity: 1; background-color: rgba(248, 113, 113, var(--tw-bg-opacity)); } .bg-gray-400 { --tw-bg-opacity: 1; background-color: rgba(156, 163, 175, var(--tw-bg-opacity)); } .bg-indigo-100 { --tw-bg-opacity: 1; background-color: rgba(224, 231, 255, var(--tw-bg-opacity)); } .bg-black { --tw-bg-opacity: 1; background-color: rgba(0, 0, 0, var(--tw-bg-opacity)); } .bg-gray-100 { --tw-bg-opacity: 1; background-color: rgba(243, 244, 246, var(--tw-bg-opacity)); } .bg-gray-300 { --tw-bg-opacity: 1; background-color: rgba(209, 213, 219, var(--tw-bg-opacity)); } .bg-red-500 { --tw-bg-opacity: 1; background-color: rgba(239, 68, 68, var(--tw-bg-opacity)); } .bg-red-200 { --tw-bg-opacity: 1; background-color: rgba(254, 202, 202, var(--tw-bg-opacity)); } .p-3 { padding: 0.75rem; } .p-4 { padding: 1rem; } .p-2 { padding: 0.5rem; } .p-1 { padding: 0.25rem; } .p-0 { padding: 0px; } .p-0\.5 { padding: 0.125rem; } .px-0 { padding-left: 0px; padding-right: 0px; } .px-4 { padding-left: 1rem; padding-right: 1rem; } .pl-1 { padding-left: 0.25rem; } .pr-1 { padding-right: 0.25rem; } .pb-12 { padding-bottom: 3rem; } .pl-4 { padding-left: 1rem; } .pl-2 { padding-left: 0.5rem; } .pb-20 { padding-bottom: 5rem; } .pt-1 { padding-top: 0.25rem; } .pb-1 { padding-bottom: 0.25rem; } .pt-2 { padding-top: 0.5rem; } .pb-2 { padding-bottom: 0.5rem; } .pt-0 { padding-top: 0px; } .pl-5 { padding-left: 1.25rem; } .pr-3 { padding-right: 0.75rem; } .pr-4 { padding-right: 1rem; } .pl-3 { padding-left: 0.75rem; } .pr-0 { padding-right: 0px; } .pt-0\.5 { padding-top: 0.125rem; } .pr-2 { padding-right: 0.5rem; } .pl-6 { padding-left: 1.5rem; } .text-center { text-align: center; } .align-baseline { vertical-align: baseline; } .align-middle { vertical-align: middle; } .text-xl { font-size: 1.25rem; line-height: 1.75rem; } .text-lg { font-size: 1.125rem; line-height: 1.75rem; } .text-2xl { font-size: 1.5rem; line-height: 2rem; } .text-4xl { font-size: 2.25rem; line-height: 2.5rem; } .text-sm { font-size: 0.875rem; line-height: 1.25rem; } .text-3xl { font-size: 1.875rem; line-height: 2.25rem; } .text-base { font-size: 1rem; line-height: 1.5rem; } .font-bold { font-weight: 700; } .font-extrabold { font-weight: 800; } .font-semibold { font-weight: 600; } .uppercase { text-transform: uppercase; } .lowercase { text-transform: lowercase; } .italic { font-style: italic; } .ordinal, .slashed-zero, .lining-nums, .oldstyle-nums, .proportional-nums, .tabular-nums, .diagonal-fractions, .stacked-fractions { --tw-ordinal: var(--tw-empty,/*!*/ /*!*/); --tw-slashed-zero: var(--tw-empty,/*!*/ /*!*/); --tw-numeric-figure: var(--tw-empty,/*!*/ /*!*/); --tw-numeric-spacing: var(--tw-empty,/*!*/ /*!*/); --tw-numeric-fraction: var(--tw-empty,/*!*/ /*!*/); font-variant-numeric: var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction); } .ordinal { --tw-ordinal: ordinal; } .tracking-tight { letter-spacing: -0.025em; } .text-white { --tw-text-opacity: 1; color: rgba(255, 255, 255, var(--tw-text-opacity)); } .text-gray-900 { --tw-text-opacity: 1; color: rgba(17, 24, 39, var(--tw-text-opacity)); } .text-gray-800 { --tw-text-opacity: 1; color: rgba(31, 41, 55, var(--tw-text-opacity)); } .text-gray-500 { --tw-text-opacity: 1; color: rgba(107, 114, 128, var(--tw-text-opacity)); } .text-green-600 { --tw-text-opacity: 1; color: rgba(5, 150, 105, var(--tw-text-opacity)); } .underline { text-decoration: underline; } .line-through { text-decoration: line-through; } .opacity-50 { opacity: 0.5; } .opacity-0 { opacity: 0; } .opacity-40 { opacity: 0.4; } .shadow { --tw-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); } .ring { --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); } .blur { --tw-blur: blur(8px); -webkit-filter: var(--tw-filter); filter: var(--tw-filter); } .drop-shadow { --tw-drop-shadow: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.1)) drop-shadow(0 1px 1px rgba(0, 0, 0, 0.06)); -webkit-filter: var(--tw-filter); filter: var(--tw-filter); } .invert { --tw-invert: invert(100%); -webkit-filter: var(--tw-filter); filter: var(--tw-filter); } .filter { -webkit-filter: var(--tw-filter); filter: var(--tw-filter); } .\!filter { -webkit-filter: var(--tw-filter) !important; filter: var(--tw-filter) !important; } .transition { transition-property: background-color, border-color, color, fill, stroke, opacity, box-shadow, -webkit-transform, -webkit-filter, -webkit-backdrop-filter; transition-property: background-color, border-color, color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; transition-property: background-color, border-color, color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-transform, -webkit-filter, -webkit-backdrop-filter; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; } .transition-colors { transition-property: background-color, border-color, color, fill, stroke; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; } .transition-shadow { transition-property: box-shadow; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; } .transition-opacity { transition-property: opacity; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; } .duration-500 { transition-duration: 500ms; } .ease-in { transition-timing-function: cubic-bezier(0.4, 0, 1, 1); } .z-above-map { z-index: 10000; } .z-above-controls { z-index: 10001; } .bg-subtle { background-color: var(--subtle-detail-color); color: var(--subtle-detail-color-contrast); } .bg-unsubtle { background-color: var(--unsubtle-detail-color); color: var(--unsubtle-detail-color-contrast); } :root { /* The main colour scheme of mapcomplete is configured here. * For a custom styling, set 'customCss' in your layoutConfig and overwrite some of these. */ /* Main color of the application: the background and text colours */ --background-color: white; /* Main text colour. Also styles some elements, such as the 'close popup'-button or 'back-arrow' (in mobile) */ --foreground-color: black; /* A colour to indicate an error or warning */ --alert-color: #fee4d1; /** * Base colour of interactive elements, mainly the 'subtle button' * */ --subtle-detail-color: #dbeafe; --subtle-detail-color-contrast: black; --subtle-detail-color-light-contrast: lightgrey; /** * A stronger variant of the 'subtle-detail-colour' * Used as subtle button hover */ --unsubtle-detail-color: #bfdbfe; --unsubtle-detail-color-contrast: black; --catch-detail-color: #3a3aeb; --catch-detail-color-contrast: white; --non-active-tab-svg: var(--foreground-color); --shadow-color: #00000066; --return-to-the-map-height: 2em; --image-carousel-height: 350px; /* The border colour of the leaflet popup */ --popup-border: white; /* Technical variable to make some dynamic behaviour possible; set by javascript. */ --variable-title-height: 0px; } html, body { height: 100%; min-height: 100vh; min-height: -webkit-fill-available; margin: 0; padding: 0; background-color: var(--background-color); color: var(--foreground-color); font-family: "Helvetica Neue", Arial, sans-serif; } .leaflet-overlay-pane .leaflet-zoom-animated { /* Another workaround to keep leaflet working */ width: initial !important; height: initial !important; box-sizing: initial !important; } .leaflet-control-attribution { display: block ruby; } .badge { } .badge svg { /*Workaround for leaflet*/ width: unset !important; height: 100% !important; } svg, img { box-sizing: content-box; width: 100%; height: 100%; } .titleicon img { width: unset; } .titleicon svg { width: unset; } .svg-catch svg path { fill: var(--catch-detail-color) !important; stroke: var(--catch-detail-color) !important; } .svg-unsubtle svg path { fill: var(--unsubtle-detail-color) !important; stroke: var(--unsubtle-detail-color) !important; } .svg-subtle svg path { fill: var(--subtle-detail-color) !important; stroke: var(--subtle-detail-color) !important; } .svg-foreground svg path { fill: var(--foreground-color) !important; stroke: var(--foreground-color) !important; } .no-images img { display: none; } .weblate-link { /* Weblate-links are the little translation icon next to translatable sentences. Due to their special nature, they are exempt from some rules */ } .mapcontrol svg path { fill: var(--subtle-detail-color-contrast) !important; } .red-svg svg path { stroke: #d71010 !important; } a { color: var(--foreground-color); } .text-white a { color: var(--background-color); } .btn { line-height: 1.25rem; --tw-text-opacity: 1; color: var(--catch-detail-color-contrast); --tw-bg-opacity: 1; background-color: var(--catch-detail-color); display: inline-flex; border-radius: 1.5rem; padding-top: 0.75rem; padding-bottom: 0.75rem; padding-left: 1.25rem; padding-right: 1.25rem; font-size: large; font-weight: bold; transition: 100ms; /*-- invisible border: rendered on hover*/ border: 3px solid var(--unsubtle-detail-color); } .btn:hover { border: 3px solid var(--catch-detail-color); } .btn-secondary { background-color: var(--catch-detail-color); -webkit-filter: saturate(0.5); filter: saturate(0.5); } .btn-secondary:hover { background-color: var(--catch-detail-color); -webkit-filter: unset; filter: unset; } .btn-disabled { -webkit-filter: saturate(0.3); filter: saturate(0.3); cursor: default; } .btn-disabled:hover { border: 3px solid var(--unsubtle-detail-color); } .h-min { height: -webkit-min-content; height: min-content; } /* slider */ input[type="range"].vertical { -webkit-writing-mode: bt-lr; -ms-writing-mode: bt-lr; writing-mode: bt-lr; /* IE */ -webkit-appearance: slider-vertical; /* Chromium */ cursor: pointer; } @-moz-document url-prefix() { input[type="range"].elevator::-moz-range-thumb { background-color: #00000000 !important; background-image: url("/assets/svg/elevator_wheelchair.svg"); width: 150px !important; height: 30px !important; border: 2px; border-style: solid; background-size: contain; background-position: center center; background-repeat: no-repeat; cursor: pointer; border-image: linear-gradient(to right, black 50%, transparent 50%) 100% 1; padding-bottom: 5px; } } .border-detail { border-color: var(--foreground-color); } .w-min { width: -webkit-min-content; width: min-content; } .rounded-left-full { border-bottom-left-radius: 999rem; border-top-left-radius: 999rem; } .rounded-right-full { border-bottom-right-radius: 999rem; border-top-right-radius: 999rem; } .w-16-imp { width: 4rem !important; } .w-32-imp { width: 8rem !important; } .w-48-imp { width: 12rem !important; } .link-underline a { -webkit-text-decoration: underline 1px var(--foreground-color); text-decoration: underline 1px var(--foreground-color); } .link-no-underline a { text-decoration: none; } li { margin-left: 0.5em; padding-left: 0.2em; margin-top: 0.1em; } h2 { font-size: large; margin-top: 0.5em; margin-bottom: 0.3em; font-weight: bold; } h3 { font-size: larger; margin-top: 0.6em; margin-bottom: 0; font-weight: bold; font-size: larger; margin-top: 0.6em; margin-bottom: 0; font-weight: bolder; } p { padding-top: 0.1em; } li::marker { content: "•"; } .subtle-background { background: var(--subtle-detail-color); color: var(--subtle-detail-color-contrast); } .normal-background { background: var(--background-color); color: var(--foreground-color); } .subtle-lighter { color: var(--subtle-detail-color-light-contrast); } .border-attention-catch { border: 5px solid var(--catch-detail-color); } .border-invisible { border: 5px solid #00000000; } .border-attention { border-color: var(--catch-detail-color); } .direction-svg svg path { fill: var(--catch-detail-color) !important; } #leafletDiv { height: 100%; } .leaflet-popup-content-wrapper { background-color: var(--background-color); color: var(--foreground-color); border: 2px solid var(--popup-border); box-shadow: 0 3px 14px var(--shadow-color) !important; } .leaflet-container { font: unset !important; background-color: var(--background-color) !important; } .leaflet-popup-tip { background-color: var(--popup-border) !important; color: var(--popup-border) !important; box-shadow: 0 3px 14px var(--shadow-color) !important; } .single-layer-selection-toggle { position: relative; width: 2em; height: 2em; flex-shrink: 0; } .single-layer-selection-toggle img { max-height: 2em !important; max-width: 2em !important; } .single-layer-selection-toggle svg { max-height: 2em !important; max-width: 2em !important; } .block-ruby { display: block ruby; } .disable-links a { pointer-events: none; text-decoration: none !important; color: var(--subtle-detail-color-contrast) !important; } .enable-links a { pointer-events: unset; text-decoration: underline !important; color: unset !important; } .disable-links a.must-link, .disable-links .must-link a { /* Hide links if they are disabled */ display: none; } /**************** GENERIC ****************/ .alert { background-color: var(--alert-color); color: var(--foreground-color); font-weight: bold; border-radius: 1em; margin: 0.25em; text-align: center; padding: 0.15em 0.3em; } .invalid { box-shadow: 0 0 10px #ff5353; height: -webkit-min-content; height: min-content; } .shadow { box-shadow: 0 0 10px var(--shadow-color); } .title-font span { font-size: xx-large !important; font-weight: bold; } .soft { background-color: var(--subtle-detail-color); color: var(--subtle-detail-color-contrast); font-weight: bold; border-radius: 1em; margin: 0.25em; text-align: center; padding: 0.15em 0.3em; } .subtle { color: #999; } .link-underline .subtle a { -webkit-text-decoration: underline 1px #7193bb88; text-decoration: underline 1px #7193bb88; color: #7193bb; } .thanks { background-color: #43d904; font-weight: bold; border-radius: 1em; margin: 0.25em; text-align: center; padding: 0.15em 0.3em; } .clickable { pointer-events: all; } .unclickable { pointer-events: none !important; } @-webkit-keyframes slide { /* This is the animation on the marker to add a new point - it slides through all the possible presets */ from { -webkit-transform: translateX(0%); transform: translateX(0%); } to { -webkit-transform: translateX(calc(-100% + 42px)); transform: translateX(calc(-100% + 42px)); } } @keyframes slide { /* This is the animation on the marker to add a new point - it slides through all the possible presets */ from { -webkit-transform: translateX(0%); transform: translateX(0%); } to { -webkit-transform: translateX(calc(-100% + 42px)); transform: translateX(calc(-100% + 42px)); } } .hand-drag-animation { -webkit-animation: hand-drag-animation 6s ease-in-out infinite; animation: hand-drag-animation 6s ease-in-out infinite; -webkit-transform-origin: 50% 125%; transform-origin: 50% 125%; } @-webkit-keyframes hand-drag-animation { /* This is the animation on the little extra hand on the location input. If fades in, invites the user to interact/drag the map */ 0% { opacity: 0; -webkit-transform: rotate(-30deg); transform: rotate(-30deg); } 6% { opacity: 1; -webkit-transform: rotate(-30deg); transform: rotate(-30deg); } 12% { opacity: 1; -webkit-transform: rotate(-45deg); transform: rotate(-45deg); } 24% { opacity: 1; -webkit-transform: rotate(-00deg); transform: rotate(-00deg); } 30% { opacity: 1; -webkit-transform: rotate(-30deg); transform: rotate(-30deg); } 36% { opacity: 0; -webkit-transform: rotate(-30deg); transform: rotate(-30deg); } 100% { opacity: 0; -webkit-transform: rotate(-30deg); transform: rotate(-30deg); } } @keyframes hand-drag-animation { /* This is the animation on the little extra hand on the location input. If fades in, invites the user to interact/drag the map */ 0% { opacity: 0; -webkit-transform: rotate(-30deg); transform: rotate(-30deg); } 6% { opacity: 1; -webkit-transform: rotate(-30deg); transform: rotate(-30deg); } 12% { opacity: 1; -webkit-transform: rotate(-45deg); transform: rotate(-45deg); } 24% { opacity: 1; -webkit-transform: rotate(-00deg); transform: rotate(-00deg); } 30% { opacity: 1; -webkit-transform: rotate(-30deg); transform: rotate(-30deg); } 36% { opacity: 0; -webkit-transform: rotate(-30deg); transform: rotate(-30deg); } 100% { opacity: 0; -webkit-transform: rotate(-30deg); transform: rotate(-30deg); } } /**************************************/ #topleft-tools { display: block; position: absolute; z-index: 5000; transition: all 500ms linear; left: 0; right: 0; } .welcomeMessage { display: block; max-width: calc(100vw - 5em); width: 40em; max-height: calc(100vh - 15em); background-color: var(--background-color); color: var(--foreground-color); } /***************** Info box (box containing features and questions ******************/ input { color: var(--foreground-color); } .leaflet-popup-content { width: 45em !important; margin: 0.25rem !important; } .leaflet-div-icon { background-color: unset !important; border: unset !important; } .floating-element-width { max-width: calc(100vw - 5em); width: 40em; } .leaflet-div-icon svg { width: calc(100%); height: calc(100%); } /****** ShareScreen *****/ .literal-code { display: inline-block; background-color: lightgray; padding: 0.5em; word-break: break-word; color: black; box-sizing: border-box; } .code { display: inline-block; background-color: lightgray; padding: 0.5em; word-break: break-word; color: black; box-sizing: border-box; } /** Switch layout **/ .small-image img { height: 1em; max-width: 1em; } .small-image { height: 1em; max-width: 1em; } .slideshow-item img { height: var(--image-carousel-height); width: unset; } .animate-height { transition: max-height 0.5s ease-in-out; overflow-y: hidden; } .zebra-table tr:nth-child(even) { background-color: #f2f2f2; } .layer-toggle { /* The checkbox that toggles a single layer */ } .layer-filters { /* If needed, the panel which contains the extra filters for a layer */ margin-bottom: 1rem; border-bottom: 2px solid var(--foreground-color); } .filter-panel { /* The panel for a single layer, containing both the toggle and the filters (if any) */ border-bottom: 2px solid lightgrey; margin-bottom: 0.5rem; } .first-filter-panel { /* Additional class on the first layer filter */ } .mapping-icon-small-height { /* A mapping icon type */ height: 1.5rem; margin-right: 0.5rem; width: unset; } .mapping-icon-medium-height { /* A mapping icon type */ height: 3rem; margin-right: 0.5rem; width: unset; } .mapping-icon-large-height { /* A mapping icon type */ height: 5rem; margin-right: 0.5rem; width: unset; } .mapping-icon-small { /* A mapping icon type */ width: 1.5rem; max-height: 1.5rem; margin-right: 0.5rem; } .mapping-icon-medium { /* A mapping icon type */ width: 3rem; max-height: 3rem; margin-right: 1rem; margin-left: 1rem; } .mapping-icon-large { /* A mapping icon type */ width: 6rem; max-height: 5rem; margin-top: 0.5rem; margin-bottom: 0.5rem; margin-right: 1.5rem; margin-left: 1.5rem; } .hover\:bg-indigo-200:hover { --tw-bg-opacity: 1; background-color: rgba(199, 210, 254, var(--tw-bg-opacity)); } .hover\:text-blue-800:hover { --tw-text-opacity: 1; color: rgba(30, 64, 175, var(--tw-text-opacity)); } .hover\:opacity-100:hover { opacity: 1; } .hover\:shadow-xl:hover { --tw-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); } .hover\:bg-unsubtle:hover { background-color: var(--unsubtle-detail-color); color: var(--unsubtle-detail-color-contrast); } @media (min-width: 640px) { .sm\:mx-auto { margin-left: auto; margin-right: auto; } .sm\:mr-2 { margin-right: 0.5rem; } .sm\:mt-5 { margin-top: 1.25rem; } .sm\:flex { display: flex; } .sm\:h-24 { height: 6rem; } .sm\:w-24 { width: 6rem; } .sm\:w-auto { width: auto; } .sm\:max-w-sm { max-width: 24rem; } .sm\:max-w-xl { max-width: 36rem; } .sm\:flex-row { flex-direction: row; } .sm\:flex-wrap { flex-wrap: wrap; } .sm\:items-start { align-items: flex-start; } .sm\:items-stretch { align-items: stretch; } .sm\:justify-between { justify-content: space-between; } .sm\:border-4 { border-width: 4px; } .sm\:p-0\.5 { padding: 0.125rem; } .sm\:p-1\.5 { padding: 0.375rem; } .sm\:p-0 { padding: 0px; } .sm\:p-1 { padding: 0.25rem; } .sm\:p-2 { padding: 0.5rem; } .sm\:pl-2 { padding-left: 0.5rem; } .sm\:pt-1 { padding-top: 0.25rem; } .sm\:text-center { text-align: center; } .sm\:text-xl { font-size: 1.25rem; line-height: 1.75rem; } .sm\:text-5xl { font-size: 3rem; line-height: 1; } .sm\:text-lg { font-size: 1.125rem; line-height: 1.75rem; } } @media (min-width: 768px) { .md\:relative { position: relative; } .md\:m-1 { margin: 0.25rem; } .md\:m-2 { margin: 0.5rem; } .md\:mt-5 { margin-top: 1.25rem; } .md\:mt-4 { margin-top: 1rem; } .md\:block { display: block; } .md\:flex { display: flex; } .md\:grid { display: grid; } .md\:hidden { display: none; } .md\:h-12 { height: 3rem; } .md\:w-2\/6 { width: 33.333333%; } .md\:w-auto { width: auto; } .md\:w-max { width: -webkit-max-content; width: max-content; } .md\:grid-flow-row { grid-auto-flow: row; } .md\:grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } .md\:flex-row { flex-direction: row; } .md\:rounded-xl { border-radius: 0.75rem; } .md\:p-1 { padding: 0.25rem; } .md\:p-2 { padding: 0.5rem; } .md\:p-4 { padding: 1rem; } .md\:p-3 { padding: 0.75rem; } .md\:pt-4 { padding-top: 1rem; } .md\:pt-0 { padding-top: 0px; } .md\:pb-0 { padding-bottom: 0px; } .md\:text-2xl { font-size: 1.5rem; line-height: 2rem; } .md\:text-6xl { font-size: 3.75rem; line-height: 1; } .md\:text-xl { font-size: 1.25rem; line-height: 1.75rem; } .md\:w-160 { width: 40rem; } } @media (min-width: 1024px) { .lg\:mx-0 { margin-left: 0px; margin-right: 0px; } .lg\:ml-40 { margin-left: 10rem; } .lg\:ml-10 { margin-left: 2.5rem; } .lg\:w-3\/4 { width: 75%; } .lg\:w-1\/4 { width: 25%; } .lg\:w-1\/6 { width: 16.666667%; } .lg\:w-1\/3 { width: 33.333333%; } .lg\:grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } .lg\:text-left { text-align: left; } } @media (min-width: 1280px) { .xl\:inline { display: inline; } }