diff --git a/.changeset/config.json b/.changeset/config.json
index 89e46cd9..8947aa48 100644
--- a/.changeset/config.json
+++ b/.changeset/config.json
@@ -1,11 +1,11 @@
{
- "$schema": "https://unpkg.com/@changesets/config@2.0.0/schema.json",
- "changelog": "@changesets/cli/changelog",
- "commit": false,
- "fixed": [],
- "linked": [],
- "access": "restricted",
- "baseBranch": "next",
- "updateInternalDependencies": "patch",
- "ignore": ["@example/*"]
+ "$schema": "https://unpkg.com/@changesets/config@2.0.0/schema.json",
+ "changelog": "@changesets/cli/changelog",
+ "commit": false,
+ "fixed": [],
+ "linked": [],
+ "access": "restricted",
+ "baseBranch": "next",
+ "updateInternalDependencies": "patch",
+ "ignore": ["@example/*"]
}
diff --git a/.changeset/pre.json b/.changeset/pre.json
index 8c439e17..99be74d2 100644
--- a/.changeset/pre.json
+++ b/.changeset/pre.json
@@ -1,26 +1,26 @@
{
- "mode": "pre",
- "tag": "next",
- "initialVersions": {
- "@example/nextjs": "0.0.0",
- "@example/nextjs-server-components": "0.0.0",
- "@example/sveltekit": "0.0.0",
- "config": "0.1.0",
- "@supabase/auth-helpers-nextjs": "0.6.0",
- "@supabase/auth-helpers-react": "0.3.1",
- "@supabase/auth-helpers-remix": "0.1.8",
- "@supabase/auth-helpers-shared": "0.3.3",
- "@supabase/auth-helpers-sveltekit": "0.9.3",
- "tsconfig": "0.1.1"
- },
- "changesets": [
- "brave-lizards-thank",
- "cyan-dancers-care",
- "eighty-chefs-protect",
- "eleven-radios-share",
- "lazy-cows-shake",
- "plenty-seas-build",
- "silly-beds-watch",
- "violet-frogs-know"
- ]
+ "mode": "pre",
+ "tag": "next",
+ "initialVersions": {
+ "@example/nextjs": "0.0.0",
+ "@example/nextjs-server-components": "0.0.0",
+ "@example/sveltekit": "0.0.0",
+ "config": "0.1.0",
+ "@supabase/auth-helpers-nextjs": "0.6.0",
+ "@supabase/auth-helpers-react": "0.3.1",
+ "@supabase/auth-helpers-remix": "0.1.8",
+ "@supabase/auth-helpers-shared": "0.3.3",
+ "@supabase/auth-helpers-sveltekit": "0.9.3",
+ "tsconfig": "0.1.1"
+ },
+ "changesets": [
+ "brave-lizards-thank",
+ "cyan-dancers-care",
+ "eighty-chefs-protect",
+ "eleven-radios-share",
+ "lazy-cows-shake",
+ "plenty-seas-build",
+ "silly-beds-watch",
+ "violet-frogs-know"
+ ]
}
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
new file mode 100644
index 00000000..a6e0acab
--- /dev/null
+++ b/.github/workflows/ci.yml
@@ -0,0 +1,64 @@
+name: CI
+
+on:
+ push:
+ branches:
+ - '**'
+
+# cancel in-progress runs on new commits to same PR (gitub.event.number)
+concurrency:
+ group: ${{ github.workflow }}-${{ github.event.number || github.sha }}
+ cancel-in-progress: true
+
+permissions:
+ contents: read # to fetch code (actions/checkout)
+ checks: write
+
+jobs:
+ Lint:
+ strategy:
+ matrix:
+ node: ['18']
+
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+
+ - uses: pnpm/action-setup@v2.2.3
+ with:
+ version: 8.1.0
+
+ - name: Set up Node
+ uses: actions/setup-node@v2
+ with:
+ node-version: ${{ matrix.node }}
+ cache: pnpm
+
+ - run: pnpm install --frozen-lockfile
+
+ - uses: wearerequired/lint-action@v2
+ with:
+ tsc: true
+ prettier: true
+
+ # Lint:
+ # strategy:
+ # matrix:
+ # node: ['18']
+
+ # runs-on: ubuntu-latest
+ # steps:
+ # - uses: actions/checkout@v3
+
+ # - uses: pnpm/action-setup@v2
+ # with:
+ # version: 8.1.0
+
+ # - uses: actions/setup-node@v3
+ # with:
+ # node-version: 18.x
+ # cache: pnpm
+
+ # - run: pnpm install --frozen-lockfile
+ # - run: pnpm run lint
+ # - run: pnpm run check
diff --git a/.husky/pre-commit b/.husky/pre-commit
new file mode 100755
index 00000000..5ba764e8
--- /dev/null
+++ b/.husky/pre-commit
@@ -0,0 +1,4 @@
+#!/usr/bin/env sh
+. "$(dirname -- "$0")/_/husky.sh"
+
+pnpx lint-staged
diff --git a/.prettierignore b/.prettierignore
new file mode 100644
index 00000000..96b51bac
--- /dev/null
+++ b/.prettierignore
@@ -0,0 +1,43 @@
+# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
+
+# dependencies
+node_modules
+.pnp
+.pnp.js
+
+# testing
+coverage
+
+# next.js
+.next/
+out/
+build
+
+# misc
+.DS_Store
+*.pem
+
+pnpm-lock.yaml
+
+# debug
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+.pnpm-debug.log*
+
+# local env files
+.env.local
+.env.development.local
+.env.test.local
+.env.production.local
+
+# Distribution directories
+dist/
+package/
+docs/
+
+# turbo
+.turbo
+
+# svelte kit
+.svelte-kit
diff --git a/.prettierrc b/.prettierrc
index 32ebab4e..96af2637 100644
--- a/.prettierrc
+++ b/.prettierrc
@@ -1,4 +1,27 @@
{
- "singleQuote": true,
- "trailingComma": "none"
+ "useTabs": true,
+ "singleQuote": true,
+ "trailingComma": "none",
+ "printWidth": 100,
+ "overrides": [
+ {
+ "files": ["*.svelte"],
+ "options": {
+ "bracketSameLine": false
+ }
+ },
+ {
+ "files": ["*.md", "*.yaml", "*.yml"],
+ "options": {
+ "useTabs": false,
+ "tabWidth": 2
+ }
+ },
+ {
+ "files": ["**/CHANGELOG.md"],
+ "options": {
+ "requirePragma": true
+ }
+ }
+ ]
}
diff --git a/examples/nextjs-server-components/.eslintrc.json b/examples/nextjs-server-components/.eslintrc.json
index bffb357a..72cc705c 100644
--- a/examples/nextjs-server-components/.eslintrc.json
+++ b/examples/nextjs-server-components/.eslintrc.json
@@ -1,3 +1,3 @@
{
- "extends": "next/core-web-vitals"
+ "extends": "next/core-web-vitals"
}
diff --git a/examples/nextjs-server-components/.vscode/settings.json b/examples/nextjs-server-components/.vscode/settings.json
index c3d9d94c..57d84225 100644
--- a/examples/nextjs-server-components/.vscode/settings.json
+++ b/examples/nextjs-server-components/.vscode/settings.json
@@ -1,4 +1,4 @@
{
- "typescript.tsdk": "./node_modules/typescript/lib",
- "typescript.enablePromptUseWorkspaceTsdk": true
-}
\ No newline at end of file
+ "typescript.tsdk": "./node_modules/typescript/lib",
+ "typescript.enablePromptUseWorkspaceTsdk": true
+}
diff --git a/examples/nextjs-server-components/app/globals.css b/examples/nextjs-server-components/app/globals.css
index 4f184216..45214039 100644
--- a/examples/nextjs-server-components/app/globals.css
+++ b/examples/nextjs-server-components/app/globals.css
@@ -1,26 +1,26 @@
html,
body {
- padding: 0;
- margin: 0;
- font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen,
- Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, sans-serif;
+ padding: 0;
+ margin: 0;
+ font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen, Ubuntu, Cantarell,
+ Fira Sans, Droid Sans, Helvetica Neue, sans-serif;
}
a {
- color: inherit;
- text-decoration: none;
+ color: inherit;
+ text-decoration: none;
}
* {
- box-sizing: border-box;
+ box-sizing: border-box;
}
@media (prefers-color-scheme: dark) {
- html {
- color-scheme: dark;
- }
- body {
- color: white;
- background: black;
- }
+ html {
+ color-scheme: dark;
+ }
+ body {
+ color: white;
+ background: black;
+ }
}
diff --git a/examples/nextjs-server-components/app/head.tsx b/examples/nextjs-server-components/app/head.tsx
index f11b2596..9aa05a50 100644
--- a/examples/nextjs-server-components/app/head.tsx
+++ b/examples/nextjs-server-components/app/head.tsx
@@ -1,10 +1,10 @@
export default function Head() {
- return (
- <>
-
Create Next App
-
-
-
- >
- );
+ return (
+ <>
+ Create Next App
+
+
+
+ >
+ );
}
diff --git a/examples/nextjs-server-components/app/layout.tsx b/examples/nextjs-server-components/app/layout.tsx
index f968256f..730df2ef 100644
--- a/examples/nextjs-server-components/app/layout.tsx
+++ b/examples/nextjs-server-components/app/layout.tsx
@@ -14,31 +14,27 @@ export type TypedSupabaseClient = SupabaseClient;
// do not cache this layout
export const revalidate = 0;
-export default async function RootLayout({
- children
-}: {
- children: React.ReactNode;
-}) {
- const supabase = createServerClient();
+export default async function RootLayout({ children }: { children: React.ReactNode }) {
+ const supabase = createServerClient();
- const {
- data: { session }
- } = await supabase.auth.getSession();
+ const {
+ data: { session }
+ } = await supabase.auth.getSession();
- return (
-
- {/*
+ return (
+
+ {/*
will contain the components returned by the nearest parent
head.tsx. Find out more at https://beta.nextjs.org/docs/api-reference/file-conventions/head
*/}
-
-
-
-
- {children}
-
-
-
- );
+
+
+
+
+ {children}
+
+
+
+ );
}
diff --git a/examples/nextjs-server-components/app/optional-session/page.tsx b/examples/nextjs-server-components/app/optional-session/page.tsx
index 3761dd11..1dc1844b 100644
--- a/examples/nextjs-server-components/app/optional-session/page.tsx
+++ b/examples/nextjs-server-components/app/optional-session/page.tsx
@@ -7,8 +7,8 @@ export const revalidate = 0;
// this page will display with or without a user session
export default async function OptionalSession() {
- const supabase = createServerClient();
- const { data } = await supabase.from('posts').select('*');
+ const supabase = createServerClient();
+ const { data } = await supabase.from('posts').select('*');
- return {JSON.stringify({ data }, null, 2)} ;
+ return {JSON.stringify({ data }, null, 2)} ;
}
diff --git a/examples/nextjs-server-components/app/page.module.css b/examples/nextjs-server-components/app/page.module.css
index a978c99d..a03725de 100644
--- a/examples/nextjs-server-components/app/page.module.css
+++ b/examples/nextjs-server-components/app/page.module.css
@@ -1,146 +1,146 @@
.container {
- padding: 0 2rem;
+ padding: 0 2rem;
}
.main {
- min-height: 100vh;
- padding: 4rem 0;
- flex: 1;
- display: flex;
- flex-direction: column;
- justify-content: center;
- align-items: center;
+ min-height: 100vh;
+ padding: 4rem 0;
+ flex: 1;
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ align-items: center;
}
.footer {
- display: flex;
- flex: 1;
- padding: 2rem 0;
- border-top: 1px solid #eaeaea;
- justify-content: center;
- align-items: center;
+ display: flex;
+ flex: 1;
+ padding: 2rem 0;
+ border-top: 1px solid #eaeaea;
+ justify-content: center;
+ align-items: center;
}
.footer a {
- display: flex;
- justify-content: center;
- align-items: center;
- flex-grow: 1;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ flex-grow: 1;
}
.title {
- margin: 0;
- line-height: 1.15;
- font-size: 4rem;
- font-style: normal;
- font-weight: 800;
- letter-spacing: -0.025em;
+ margin: 0;
+ line-height: 1.15;
+ font-size: 4rem;
+ font-style: normal;
+ font-weight: 800;
+ letter-spacing: -0.025em;
}
.title a {
- text-decoration: none;
- color: #0070f3;
+ text-decoration: none;
+ color: #0070f3;
}
.title a:hover,
.title a:focus,
.title a:active {
- text-decoration: underline;
+ text-decoration: underline;
}
.title,
.description {
- text-align: center;
+ text-align: center;
}
.description {
- margin: 4rem 0;
- line-height: 1.5;
- font-size: 1.5rem;
+ margin: 4rem 0;
+ line-height: 1.5;
+ font-size: 1.5rem;
}
.code {
- background: #fafafa;
- border-radius: 5px;
- padding: 0.75rem;
- font-size: 1.1rem;
- font-family: Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono,
- Bitstream Vera Sans Mono, Courier New, monospace;
+ background: #fafafa;
+ border-radius: 5px;
+ padding: 0.75rem;
+ font-size: 1.1rem;
+ font-family: Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono,
+ Bitstream Vera Sans Mono, Courier New, monospace;
}
.grid {
- display: flex;
- align-items: center;
- justify-content: center;
- flex-wrap: wrap;
- max-width: 1200px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ flex-wrap: wrap;
+ max-width: 1200px;
}
.card {
- margin: 1rem;
- padding: 1.5rem;
- text-align: left;
- color: inherit;
- text-decoration: none;
- border: 1px solid #eaeaea;
- border-radius: 10px;
- transition: color 0.15s ease, border-color 0.15s ease;
- max-width: 300px;
+ margin: 1rem;
+ padding: 1.5rem;
+ text-align: left;
+ color: inherit;
+ text-decoration: none;
+ border: 1px solid #eaeaea;
+ border-radius: 10px;
+ transition: color 0.15s ease, border-color 0.15s ease;
+ max-width: 300px;
}
.card:hover,
.card:focus,
.card:active {
- color: #0070f3;
- border-color: #0070f3;
+ color: #0070f3;
+ border-color: #0070f3;
}
.card h2 {
- margin: 0 0 1rem 0;
- font-size: 1.5rem;
+ margin: 0 0 1rem 0;
+ font-size: 1.5rem;
}
.card p {
- margin: 0;
- font-size: 1.25rem;
- line-height: 1.5;
+ margin: 0;
+ font-size: 1.25rem;
+ line-height: 1.5;
}
.logo {
- height: 1em;
- margin-left: 0.5rem;
+ height: 1em;
+ margin-left: 0.5rem;
}
@media (max-width: 600px) {
- .grid {
- width: 100%;
- flex-direction: column;
- }
+ .grid {
+ width: 100%;
+ flex-direction: column;
+ }
}
@media (prefers-color-scheme: dark) {
- .title {
- background: linear-gradient(180deg, #ffffff 0%, #aaaaaa 100%);
- -webkit-background-clip: text;
- -webkit-text-fill-color: transparent;
- background-clip: text;
- text-fill-color: transparent;
- }
- .title a {
- background: linear-gradient(180deg, #0070f3 0%, #0153af 100%);
- -webkit-background-clip: text;
- -webkit-text-fill-color: transparent;
- background-clip: text;
- text-fill-color: transparent;
- }
- .card,
- .footer {
- border-color: #222;
- }
- .code {
- background: #111;
- }
- .logo img {
- filter: invert(1);
- }
+ .title {
+ background: linear-gradient(180deg, #ffffff 0%, #aaaaaa 100%);
+ -webkit-background-clip: text;
+ -webkit-text-fill-color: transparent;
+ background-clip: text;
+ text-fill-color: transparent;
+ }
+ .title a {
+ background: linear-gradient(180deg, #0070f3 0%, #0153af 100%);
+ -webkit-background-clip: text;
+ -webkit-text-fill-color: transparent;
+ background-clip: text;
+ text-fill-color: transparent;
+ }
+ .card,
+ .footer {
+ border-color: #222;
+ }
+ .code {
+ background: #111;
+ }
+ .logo img {
+ filter: invert(1);
+ }
}
diff --git a/examples/nextjs-server-components/app/page.tsx b/examples/nextjs-server-components/app/page.tsx
index ba3e43d0..484af069 100644
--- a/examples/nextjs-server-components/app/page.tsx
+++ b/examples/nextjs-server-components/app/page.tsx
@@ -2,49 +2,48 @@ import Image from 'next/image';
import styles from './page.module.css';
export default function Home() {
- return (
-
-
-
+ return (
+
+
+
-
- Get started by editing{' '}
- app/page.tsx
-
+
+ Get started by editing app/page.tsx
+
-
+
-
-
- );
+
+
+ );
}
diff --git a/examples/nextjs-server-components/app/realtime/new-post.tsx b/examples/nextjs-server-components/app/realtime/new-post.tsx
index ebe7682b..df30e4fc 100644
--- a/examples/nextjs-server-components/app/realtime/new-post.tsx
+++ b/examples/nextjs-server-components/app/realtime/new-post.tsx
@@ -3,27 +3,27 @@
import { useSupabase } from '../../components/supabase-provider';
export default function NewPost() {
- const { supabase, session } = useSupabase();
+ const { supabase, session } = useSupabase();
- const handleSubmit = async (e: React.SyntheticEvent) => {
- e.preventDefault();
- const target = e.target as typeof e.target & {
- post: { value: string };
- };
- const post = target.post.value;
+ const handleSubmit = async (e: React.SyntheticEvent) => {
+ e.preventDefault();
+ const target = e.target as typeof e.target & {
+ post: { value: string };
+ };
+ const post = target.post.value;
- await supabase.from('posts').insert({ content: post });
- // no need to refresh, as we are subscribed to db changes in `./realtime-posts.tsx`
- };
+ await supabase.from('posts').insert({ content: post });
+ // no need to refresh, as we are subscribed to db changes in `./realtime-posts.tsx`
+ };
- return session ? (
- <>
-
- >
- ) : (
- Sign in to see posts
- );
+ return session ? (
+ <>
+
+ >
+ ) : (
+ Sign in to see posts
+ );
}
diff --git a/examples/nextjs-server-components/app/realtime/page.tsx b/examples/nextjs-server-components/app/realtime/page.tsx
index 07317c69..27746ef9 100644
--- a/examples/nextjs-server-components/app/realtime/page.tsx
+++ b/examples/nextjs-server-components/app/realtime/page.tsx
@@ -10,16 +10,16 @@ export const revalidate = 0;
// this component fetches the current posts server-side
// and subscribes to new posts client-side
export default async function Realtime() {
- const supabase = createServerClient();
- const { data } = await supabase.from('posts').select('*');
+ const supabase = createServerClient();
+ const { data } = await supabase.from('posts').select('*');
- // data can be passed from server components to client components
- // this allows us to fetch the initial posts before rendering the page
- // our component will then subscribe to new posts client-side
- return (
- <>
-
-
- >
- );
+ // data can be passed from server components to client components
+ // this allows us to fetch the initial posts before rendering the page
+ // our component will then subscribe to new posts client-side
+ return (
+ <>
+
+
+ >
+ );
}
diff --git a/examples/nextjs-server-components/app/realtime/realtime-posts.tsx b/examples/nextjs-server-components/app/realtime/realtime-posts.tsx
index 48e3a6b1..28ce0a08 100644
--- a/examples/nextjs-server-components/app/realtime/realtime-posts.tsx
+++ b/examples/nextjs-server-components/app/realtime/realtime-posts.tsx
@@ -10,36 +10,30 @@ type Post = Database['public']['Tables']['posts']['Row'];
// realtime subscriptions need to be set up client-side
// this component takes initial posts as props and automatically
// updates when new posts are inserted into Supabase's `posts` table
-export default function RealtimePosts({
- serverPosts
-}: {
- serverPosts: Post[];
-}) {
- const [posts, setPosts] = useState(serverPosts);
- const { supabase } = useSupabase();
-
- useEffect(() => {
- // this overwrites `posts` any time the `serverPosts` prop changes
- // this happens when the parent Server Component is re-rendered
- setPosts(serverPosts);
- }, [serverPosts]);
-
- useEffect(() => {
- // ensure you have enabled replication on the `posts` table
- // https://app.supabase.com/project/_/database/replication
- const channel = supabase
- .channel('*')
- .on(
- 'postgres_changes',
- { event: 'INSERT', schema: 'public', table: 'posts' },
- (payload) => setPosts([...posts, payload.new as Post])
- )
- .subscribe();
-
- return () => {
- supabase.removeChannel(channel);
- };
- }, [supabase, setPosts, posts]);
-
- return {JSON.stringify(posts, null, 2)} ;
+export default function RealtimePosts({ serverPosts }: { serverPosts: Post[] }) {
+ const [posts, setPosts] = useState(serverPosts);
+ const { supabase } = useSupabase();
+
+ useEffect(() => {
+ // this overwrites `posts` any time the `serverPosts` prop changes
+ // this happens when the parent Server Component is re-rendered
+ setPosts(serverPosts);
+ }, [serverPosts]);
+
+ useEffect(() => {
+ // ensure you have enabled replication on the `posts` table
+ // https://app.supabase.com/project/_/database/replication
+ const channel = supabase
+ .channel('*')
+ .on('postgres_changes', { event: 'INSERT', schema: 'public', table: 'posts' }, (payload) =>
+ setPosts([...posts, payload.new as Post])
+ )
+ .subscribe();
+
+ return () => {
+ supabase.removeChannel(channel);
+ };
+ }, [supabase, setPosts, posts]);
+
+ return {JSON.stringify(posts, null, 2)} ;
}
diff --git a/examples/nextjs-server-components/app/required-session/page.tsx b/examples/nextjs-server-components/app/required-session/page.tsx
index c184d037..1c7fcd74 100644
--- a/examples/nextjs-server-components/app/required-session/page.tsx
+++ b/examples/nextjs-server-components/app/required-session/page.tsx
@@ -8,8 +8,8 @@ export const revalidate = 0;
// the user will be redirected to the landing page if they are not signed in
// check middleware.tsx to see how this routing rule is set
export default async function RequiredSession() {
- const supabase = createServerClient();
- const { data } = await supabase.from('posts').select('*');
+ const supabase = createServerClient();
+ const { data } = await supabase.from('posts').select('*');
- return {JSON.stringify({ data }, null, 2)} ;
+ return {JSON.stringify({ data }, null, 2)} ;
}
diff --git a/examples/nextjs-server-components/components/login.tsx b/examples/nextjs-server-components/components/login.tsx
index a6729bfa..5dc3add2 100644
--- a/examples/nextjs-server-components/components/login.tsx
+++ b/examples/nextjs-server-components/components/login.tsx
@@ -4,46 +4,46 @@ import { useSupabase } from './supabase-provider';
// Supabase auth needs to be triggered client-side
export default function Login() {
- const { supabase, session } = useSupabase();
-
- const handleEmailLogin = async () => {
- const { error } = await supabase.auth.signInWithPassword({
- email: 'jon@supabase.com',
- password: 'password'
- });
-
- if (error) {
- console.log({ error });
- }
- };
-
- const handleGitHubLogin = async () => {
- const { error } = await supabase.auth.signInWithOAuth({
- provider: 'github'
- });
-
- if (error) {
- console.log({ error });
- }
- };
-
- const handleLogout = async () => {
- const { error } = await supabase.auth.signOut();
-
- if (error) {
- console.log({ error });
- }
- };
-
- // this `session` is from the root loader - server-side
- // therefore, it can safely be used to conditionally render
- // SSR pages without issues with hydration
- return session ? (
- Logout
- ) : (
- <>
- Email Login
- GitHub Login
- >
- );
+ const { supabase, session } = useSupabase();
+
+ const handleEmailLogin = async () => {
+ const { error } = await supabase.auth.signInWithPassword({
+ email: 'jon@supabase.com',
+ password: 'password'
+ });
+
+ if (error) {
+ console.log({ error });
+ }
+ };
+
+ const handleGitHubLogin = async () => {
+ const { error } = await supabase.auth.signInWithOAuth({
+ provider: 'github'
+ });
+
+ if (error) {
+ console.log({ error });
+ }
+ };
+
+ const handleLogout = async () => {
+ const { error } = await supabase.auth.signOut();
+
+ if (error) {
+ console.log({ error });
+ }
+ };
+
+ // this `session` is from the root loader - server-side
+ // therefore, it can safely be used to conditionally render
+ // SSR pages without issues with hydration
+ return session ? (
+ Logout
+ ) : (
+ <>
+ Email Login
+ GitHub Login
+ >
+ );
}
diff --git a/examples/nextjs-server-components/components/supabase-listener.tsx b/examples/nextjs-server-components/components/supabase-listener.tsx
index e2e0fae5..ae7b012b 100644
--- a/examples/nextjs-server-components/components/supabase-listener.tsx
+++ b/examples/nextjs-server-components/components/supabase-listener.tsx
@@ -8,30 +8,26 @@ import { useSupabase } from './supabase-provider';
// this method avoids the need to pass a session down to child components
// in order to re-render when the user's session changes
// #elegant!
-export default function SupabaseListener({
- serverAccessToken
-}: {
- serverAccessToken?: string;
-}) {
- const { supabase } = useSupabase();
- const router = useRouter();
+export default function SupabaseListener({ serverAccessToken }: { serverAccessToken?: string }) {
+ const { supabase } = useSupabase();
+ const router = useRouter();
- useEffect(() => {
- const {
- data: { subscription }
- } = supabase.auth.onAuthStateChange((event, session) => {
- if (session?.access_token !== serverAccessToken) {
- // server and client are out of sync
- // reload the page to fetch fresh server data
- // https://beta.nextjs.org/docs/data-fetching/mutating
- router.refresh();
- }
- });
+ useEffect(() => {
+ const {
+ data: { subscription }
+ } = supabase.auth.onAuthStateChange((event, session) => {
+ if (session?.access_token !== serverAccessToken) {
+ // server and client are out of sync
+ // reload the page to fetch fresh server data
+ // https://beta.nextjs.org/docs/data-fetching/mutating
+ router.refresh();
+ }
+ });
- return () => {
- subscription.unsubscribe();
- };
- }, [serverAccessToken, router, supabase]);
+ return () => {
+ subscription.unsubscribe();
+ };
+ }, [serverAccessToken, router, supabase]);
- return null;
+ return null;
}
diff --git a/examples/nextjs-server-components/components/supabase-provider.tsx b/examples/nextjs-server-components/components/supabase-provider.tsx
index ba068416..9c94f2f5 100644
--- a/examples/nextjs-server-components/components/supabase-provider.tsx
+++ b/examples/nextjs-server-components/components/supabase-provider.tsx
@@ -8,27 +8,27 @@ import { createBrowserClient } from '../utils/supabase-browser';
type MaybeSession = Session | null;
type SupabaseContext = {
- supabase: TypedSupabaseClient;
- session: MaybeSession;
+ supabase: TypedSupabaseClient;
+ session: MaybeSession;
};
// @ts-ignore
const Context = createContext();
export default function SupabaseProvider({
- children,
- session
+ children,
+ session
}: {
- children: React.ReactNode;
- session: MaybeSession;
+ children: React.ReactNode;
+ session: MaybeSession;
}) {
- const [supabase] = useState(() => createBrowserClient());
+ const [supabase] = useState(() => createBrowserClient());
- return (
-
- <>{children}>
-
- );
+ return (
+
+ <>{children}>
+
+ );
}
export const useSupabase = () => useContext(Context);
diff --git a/examples/nextjs-server-components/db_types.ts b/examples/nextjs-server-components/db_types.ts
index 3986413a..64835236 100644
--- a/examples/nextjs-server-components/db_types.ts
+++ b/examples/nextjs-server-components/db_types.ts
@@ -1,43 +1,37 @@
-export type Json =
- | string
- | number
- | boolean
- | null
- | { [key: string]: Json }
- | Json[];
+export type Json = string | number | boolean | null | { [key: string]: Json } | Json[];
export interface Database {
- public: {
- Tables: {
- posts: {
- Row: {
- id: string;
- created_at: string;
- content: string;
- user_id: string;
- };
- Insert: {
- id?: string;
- created_at?: string;
- content: string;
- user_id?: string;
- };
- Update: {
- id?: string;
- created_at?: string;
- content?: string;
- user_id?: string;
- };
- };
- };
- Views: {
- [_ in never]: never;
- };
- Functions: {
- [_ in never]: never;
- };
- Enums: {
- [_ in never]: never;
- };
- };
+ public: {
+ Tables: {
+ posts: {
+ Row: {
+ id: string;
+ created_at: string;
+ content: string;
+ user_id: string;
+ };
+ Insert: {
+ id?: string;
+ created_at?: string;
+ content: string;
+ user_id?: string;
+ };
+ Update: {
+ id?: string;
+ created_at?: string;
+ content?: string;
+ user_id?: string;
+ };
+ };
+ };
+ Views: {
+ [_ in never]: never;
+ };
+ Functions: {
+ [_ in never]: never;
+ };
+ Enums: {
+ [_ in never]: never;
+ };
+ };
}
diff --git a/examples/nextjs-server-components/middleware.tsx b/examples/nextjs-server-components/middleware.tsx
index cbddfe51..54785a1f 100644
--- a/examples/nextjs-server-components/middleware.tsx
+++ b/examples/nextjs-server-components/middleware.tsx
@@ -5,21 +5,21 @@ import type { NextRequest } from 'next/server';
// this middleware refreshes the user's session and must be run
// for any Server Component route that uses `createServerComponentSupabaseClient`
export async function middleware(req: NextRequest) {
- const res = NextResponse.next();
+ const res = NextResponse.next();
- const supabase = createMiddlewareSupabaseClient({ req, res });
+ const supabase = createMiddlewareSupabaseClient({ req, res });
- const {
- data: { session }
- } = await supabase.auth.getSession();
+ const {
+ data: { session }
+ } = await supabase.auth.getSession();
- if (!session && req.nextUrl.pathname.startsWith('/required-session')) {
- // Auth condition not met, redirect to home page.
- const redirectUrl = req.nextUrl.clone();
- redirectUrl.pathname = '/';
- redirectUrl.searchParams.set(`redirectedFrom`, req.nextUrl.pathname);
- return NextResponse.redirect(redirectUrl);
- }
+ if (!session && req.nextUrl.pathname.startsWith('/required-session')) {
+ // Auth condition not met, redirect to home page.
+ const redirectUrl = req.nextUrl.clone();
+ redirectUrl.pathname = '/';
+ redirectUrl.searchParams.set(`redirectedFrom`, req.nextUrl.pathname);
+ return NextResponse.redirect(redirectUrl);
+ }
- return res;
+ return res;
}
diff --git a/examples/nextjs-server-components/next.config.js b/examples/nextjs-server-components/next.config.js
index dafb0c88..0f7a6ac0 100644
--- a/examples/nextjs-server-components/next.config.js
+++ b/examples/nextjs-server-components/next.config.js
@@ -1,8 +1,8 @@
/** @type {import('next').NextConfig} */
const nextConfig = {
- experimental: {
- appDir: true,
- },
-}
+ experimental: {
+ appDir: true
+ }
+};
-module.exports = nextConfig
+module.exports = nextConfig;
diff --git a/examples/nextjs-server-components/package.json b/examples/nextjs-server-components/package.json
index 71249272..1a77f6a8 100644
--- a/examples/nextjs-server-components/package.json
+++ b/examples/nextjs-server-components/package.json
@@ -1,29 +1,29 @@
{
- "name": "@example/nextjs-server-components",
- "version": "0.0.0",
- "private": true,
- "scripts": {
- "dev": "next dev",
- "build:example": "next build",
- "start": "next start",
- "lint": "next lint"
- },
- "dependencies": {
- "@supabase/auth-helpers-nextjs": "workspace:*",
- "@types/node": "18.11.9",
- "@types/react": "18.0.25",
- "@types/react-dom": "18.0.8",
- "config": "workspace:*",
- "eslint": "8.27.0",
- "eslint-config-next": "13.0.2",
- "next": "13.0.2",
- "react": "18.2.0",
- "react-dom": "18.2.0",
- "server-only": "^0.0.1",
- "tsconfig": "workspace:*",
- "typescript": "4.8.4"
- },
- "devDependencies": {
- "json5": ">=1.0.2"
- }
+ "name": "@example/nextjs-server-components",
+ "version": "0.0.0",
+ "private": true,
+ "scripts": {
+ "dev": "next dev",
+ "build:example": "next build",
+ "start": "next start",
+ "lint": "next lint"
+ },
+ "dependencies": {
+ "@supabase/auth-helpers-nextjs": "workspace:*",
+ "@types/node": "18.11.9",
+ "@types/react": "18.0.25",
+ "@types/react-dom": "18.0.8",
+ "config": "workspace:*",
+ "eslint": "8.27.0",
+ "eslint-config-next": "13.0.2",
+ "next": "13.0.2",
+ "react": "18.2.0",
+ "react-dom": "18.2.0",
+ "server-only": "^0.0.1",
+ "tsconfig": "workspace:*",
+ "typescript": "4.8.4"
+ },
+ "devDependencies": {
+ "json5": ">=1.0.2"
+ }
}
diff --git a/examples/nextjs-server-components/pages/api/hello.ts b/examples/nextjs-server-components/pages/api/hello.ts
index 89e4d6bd..fd02e058 100644
--- a/examples/nextjs-server-components/pages/api/hello.ts
+++ b/examples/nextjs-server-components/pages/api/hello.ts
@@ -2,12 +2,9 @@
import type { NextApiRequest, NextApiResponse } from 'next';
type Data = {
- name: string;
+ name: string;
};
-export default function handler(
- req: NextApiRequest,
- res: NextApiResponse
-) {
- res.status(200).json({ name: 'John Doe' });
+export default function handler(req: NextApiRequest, res: NextApiResponse) {
+ res.status(200).json({ name: 'John Doe' });
}
diff --git a/examples/nextjs-server-components/tsconfig.json b/examples/nextjs-server-components/tsconfig.json
index 6ef5cd57..7dc9d477 100644
--- a/examples/nextjs-server-components/tsconfig.json
+++ b/examples/nextjs-server-components/tsconfig.json
@@ -1,25 +1,25 @@
{
- "compilerOptions": {
- "target": "es5",
- "lib": ["dom", "dom.iterable", "esnext"],
- "allowJs": true,
- "skipLibCheck": true,
- "strict": true,
- "forceConsistentCasingInFileNames": true,
- "noEmit": true,
- "esModuleInterop": true,
- "module": "esnext",
- "moduleResolution": "node",
- "resolveJsonModule": true,
- "isolatedModules": true,
- "jsx": "preserve",
- "incremental": true,
- "plugins": [
- {
- "name": "next"
- }
- ]
- },
- "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"],
- "exclude": ["node_modules"]
+ "compilerOptions": {
+ "target": "es5",
+ "lib": ["dom", "dom.iterable", "esnext"],
+ "allowJs": true,
+ "skipLibCheck": true,
+ "strict": true,
+ "forceConsistentCasingInFileNames": true,
+ "noEmit": true,
+ "esModuleInterop": true,
+ "module": "esnext",
+ "moduleResolution": "node",
+ "resolveJsonModule": true,
+ "isolatedModules": true,
+ "jsx": "preserve",
+ "incremental": true,
+ "plugins": [
+ {
+ "name": "next"
+ }
+ ]
+ },
+ "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"],
+ "exclude": ["node_modules"]
}
diff --git a/examples/nextjs-server-components/utils/supabase-browser.ts b/examples/nextjs-server-components/utils/supabase-browser.ts
index ce2eb459..5ae1ede8 100644
--- a/examples/nextjs-server-components/utils/supabase-browser.ts
+++ b/examples/nextjs-server-components/utils/supabase-browser.ts
@@ -1,5 +1,4 @@
import { createBrowserSupabaseClient } from '@supabase/auth-helpers-nextjs';
import { Database } from '../db_types';
-export const createBrowserClient = () =>
- createBrowserSupabaseClient();
+export const createBrowserClient = () => createBrowserSupabaseClient();
diff --git a/examples/nextjs-server-components/utils/supabase-server.ts b/examples/nextjs-server-components/utils/supabase-server.ts
index 76d14d2f..af895cf8 100644
--- a/examples/nextjs-server-components/utils/supabase-server.ts
+++ b/examples/nextjs-server-components/utils/supabase-server.ts
@@ -3,7 +3,7 @@ import { createServerComponentSupabaseClient } from '@supabase/auth-helpers-next
import { Database } from '../db_types';
export const createServerClient = () =>
- createServerComponentSupabaseClient({
- headers,
- cookies
- });
+ createServerComponentSupabaseClient({
+ headers,
+ cookies
+ });
diff --git a/examples/nextjs/.eslintrc.json b/examples/nextjs/.eslintrc.json
index bffb357a..72cc705c 100644
--- a/examples/nextjs/.eslintrc.json
+++ b/examples/nextjs/.eslintrc.json
@@ -1,3 +1,3 @@
{
- "extends": "next/core-web-vitals"
+ "extends": "next/core-web-vitals"
}
diff --git a/examples/nextjs/db_types.ts b/examples/nextjs/db_types.ts
index 65bc3356..aedb3534 100644
--- a/examples/nextjs/db_types.ts
+++ b/examples/nextjs/db_types.ts
@@ -1,66 +1,60 @@
-export type Json =
- | string
- | number
- | boolean
- | null
- | { [key: string]: Json }
- | Json[];
+export type Json = string | number | boolean | null | { [key: string]: Json } | Json[];
export interface Database {
- public: {
- Tables: {
- test: {
- Row: {
- created_at: string | null;
- id: number;
- };
- Insert: {
- created_at?: string | null;
- id?: number;
- };
- Update: {
- created_at?: string | null;
- id?: number;
- };
- };
- users: {
- Row: {
- city: string | null;
- country: string | null;
- created_at: string;
- full_name: string | null;
- id: string;
- username: string | null;
- };
- Insert: {
- city?: string | null;
- country?: string | null;
- created_at?: string;
- full_name?: string | null;
- id: string;
- username?: string | null;
- };
- Update: {
- city?: string | null;
- country?: string | null;
- created_at?: string;
- full_name?: string | null;
- id?: string;
- username?: string | null;
- };
- };
- };
- Views: {
- [_ in never]: never;
- };
- Functions: {
- [_ in never]: never;
- };
- Enums: {
- [_ in never]: never;
- };
- CompositeTypes: {
- [_ in never]: never;
- };
- };
+ public: {
+ Tables: {
+ test: {
+ Row: {
+ created_at: string | null;
+ id: number;
+ };
+ Insert: {
+ created_at?: string | null;
+ id?: number;
+ };
+ Update: {
+ created_at?: string | null;
+ id?: number;
+ };
+ };
+ users: {
+ Row: {
+ city: string | null;
+ country: string | null;
+ created_at: string;
+ full_name: string | null;
+ id: string;
+ username: string | null;
+ };
+ Insert: {
+ city?: string | null;
+ country?: string | null;
+ created_at?: string;
+ full_name?: string | null;
+ id: string;
+ username?: string | null;
+ };
+ Update: {
+ city?: string | null;
+ country?: string | null;
+ created_at?: string;
+ full_name?: string | null;
+ id?: string;
+ username?: string | null;
+ };
+ };
+ };
+ Views: {
+ [_ in never]: never;
+ };
+ Functions: {
+ [_ in never]: never;
+ };
+ Enums: {
+ [_ in never]: never;
+ };
+ CompositeTypes: {
+ [_ in never]: never;
+ };
+ };
}
diff --git a/examples/nextjs/middleware.ts b/examples/nextjs/middleware.ts
index 9433cfce..be0491ef 100644
--- a/examples/nextjs/middleware.ts
+++ b/examples/nextjs/middleware.ts
@@ -3,28 +3,28 @@ import { NextResponse } from 'next/server';
import type { NextRequest } from 'next/server';
export async function middleware(req: NextRequest) {
- // We need to create a response and hand it to the supabase client to be able to modify the response headers.
- const res = NextResponse.next();
- // Create authenticated Supabase Client
- const supabase = createMiddlewareSupabaseClient({ req, res });
- // Check if we have a session
- const {
- data: { session }
- } = await supabase.auth.getSession();
+ // We need to create a response and hand it to the supabase client to be able to modify the response headers.
+ const res = NextResponse.next();
+ // Create authenticated Supabase Client
+ const supabase = createMiddlewareSupabaseClient({ req, res });
+ // Check if we have a session
+ const {
+ data: { session }
+ } = await supabase.auth.getSession();
- // Check auth condition
- if (session?.user.email?.endsWith('@gmail.com')) {
- // Authentication successful, forward request to protected route.
- return res;
- }
+ // Check auth condition
+ if (session?.user.email?.endsWith('@gmail.com')) {
+ // Authentication successful, forward request to protected route.
+ return res;
+ }
- // Auth condition not met, redirect to home page.
- const redirectUrl = req.nextUrl.clone();
- redirectUrl.pathname = '/';
- redirectUrl.searchParams.set(`redirectedFrom`, req.nextUrl.pathname);
- return NextResponse.redirect(redirectUrl);
+ // Auth condition not met, redirect to home page.
+ const redirectUrl = req.nextUrl.clone();
+ redirectUrl.pathname = '/';
+ redirectUrl.searchParams.set(`redirectedFrom`, req.nextUrl.pathname);
+ return NextResponse.redirect(redirectUrl);
}
export const config = {
- matcher: '/middleware-protected'
+ matcher: '/middleware-protected'
};
diff --git a/examples/nextjs/next.config.js b/examples/nextjs/next.config.js
index a843cbee..b8e3b7ba 100644
--- a/examples/nextjs/next.config.js
+++ b/examples/nextjs/next.config.js
@@ -1,6 +1,6 @@
/** @type {import('next').NextConfig} */
const nextConfig = {
- reactStrictMode: true,
-}
+ reactStrictMode: true
+};
-module.exports = nextConfig
+module.exports = nextConfig;
diff --git a/examples/nextjs/package.json b/examples/nextjs/package.json
index ccb1931e..9f06e9c8 100644
--- a/examples/nextjs/package.json
+++ b/examples/nextjs/package.json
@@ -1,36 +1,36 @@
{
- "name": "@example/nextjs",
- "version": "0.0.0",
- "private": true,
- "scripts": {
- "dev": "next dev",
- "build:example": "next build",
- "start": "next start",
- "lint": "next lint",
- "clean:all": "rimraf .next node_modules"
- },
- "dependencies": {
- "@supabase/auth-helpers-nextjs": "workspace:*",
- "@supabase/auth-helpers-react": "workspace:*",
- "@supabase/auth-ui-react": "^0.2.6",
- "@supabase/supabase-js": "^2.19.0",
- "next": "^12.2.5",
- "react": "17.0.2",
- "react-dom": "17.0.2"
- },
- "devDependencies": {
- "@babel/core": ">=7.0.0 <8.0.0",
- "@types/node": "^17.0.12",
- "@types/react": "17.0.37",
- "config": "workspace:*",
- "encoding": "^0.1.13",
- "eslint": "7.32.0",
- "next-transpile-modules": "9.0.0",
- "rimraf": "^3.0.2",
- "tsconfig": "workspace:*",
- "typescript": "^4.5.3"
- },
- "peerDependencies": {
- "@babel/core": ">=7.0.0 <8.0.0"
- }
+ "name": "@example/nextjs",
+ "version": "0.0.0",
+ "private": true,
+ "scripts": {
+ "dev": "next dev",
+ "build:example": "next build",
+ "start": "next start",
+ "lint": "next lint",
+ "clean:all": "rimraf .next node_modules"
+ },
+ "dependencies": {
+ "@supabase/auth-helpers-nextjs": "workspace:*",
+ "@supabase/auth-helpers-react": "workspace:*",
+ "@supabase/auth-ui-react": "^0.2.6",
+ "@supabase/supabase-js": "^2.19.0",
+ "next": "^12.2.5",
+ "react": "17.0.2",
+ "react-dom": "17.0.2"
+ },
+ "devDependencies": {
+ "@babel/core": ">=7.0.0 <8.0.0",
+ "@types/node": "^17.0.12",
+ "@types/react": "17.0.37",
+ "config": "workspace:*",
+ "encoding": "^0.1.13",
+ "eslint": "7.32.0",
+ "next-transpile-modules": "9.0.0",
+ "rimraf": "^3.0.2",
+ "tsconfig": "workspace:*",
+ "typescript": "^4.5.3"
+ },
+ "peerDependencies": {
+ "@babel/core": ">=7.0.0 <8.0.0"
+ }
}
diff --git a/examples/nextjs/pages/_app.tsx b/examples/nextjs/pages/_app.tsx
index 5f0d6567..9eaf4a2c 100644
--- a/examples/nextjs/pages/_app.tsx
+++ b/examples/nextjs/pages/_app.tsx
@@ -1,40 +1,32 @@
import { useRouter } from 'next/router';
-import {
- createBrowserSupabaseClient,
- Session
-} from '@supabase/auth-helpers-nextjs';
+import { createBrowserSupabaseClient, Session } from '@supabase/auth-helpers-nextjs';
import { SessionContextProvider } from '@supabase/auth-helpers-react';
import type { AppProps } from 'next/app';
import { useState } from 'react';
import { Database } from '../db_types';
import '../styles/globals.css';
-function MyApp({
- Component,
- pageProps
-}: AppProps<{ initialSession: Session }>) {
- const router = useRouter();
- const [supabaseClient] = useState(() =>
- createBrowserSupabaseClient()
- );
+function MyApp({ Component, pageProps }: AppProps<{ initialSession: Session }>) {
+ const router = useRouter();
+ const [supabaseClient] = useState(() => createBrowserSupabaseClient());
- return (
-
- {
- await supabaseClient.auth.signOut();
- router.push('/');
- }}
- >
- Logout
-
+ return (
+
+ {
+ await supabaseClient.auth.signOut();
+ router.push('/');
+ }}
+ >
+ Logout
+
-
-
- );
+
+
+ );
}
export default MyApp;
diff --git a/examples/nextjs/pages/api/callback.ts b/examples/nextjs/pages/api/callback.ts
index 3b19c528..048c6b9d 100644
--- a/examples/nextjs/pages/api/callback.ts
+++ b/examples/nextjs/pages/api/callback.ts
@@ -3,16 +3,16 @@ import { NextApiHandler } from 'next';
import { createServerSupabaseClient } from '@supabase/auth-helpers-nextjs';
const callback: NextApiHandler = async (req, res) => {
- // Create authenticated Supabase Client
- const supabase = createServerSupabaseClient({ req, res });
+ // Create authenticated Supabase Client
+ const supabase = createServerSupabaseClient({ req, res });
- const code = req.query.code;
+ const code = req.query.code;
- if (typeof code === 'string') {
- await supabase.auth.exchangeCodeForSession(code);
- }
+ if (typeof code === 'string') {
+ await supabase.auth.exchangeCodeForSession(code);
+ }
- res.redirect('/');
+ res.redirect('/');
};
export default callback;
diff --git a/examples/nextjs/pages/api/protected-route.ts b/examples/nextjs/pages/api/protected-route.ts
index 7e97a2f9..4bf899c1 100644
--- a/examples/nextjs/pages/api/protected-route.ts
+++ b/examples/nextjs/pages/api/protected-route.ts
@@ -3,23 +3,22 @@ import { NextApiHandler } from 'next';
import { createServerSupabaseClient } from '@supabase/auth-helpers-nextjs';
const ProtectedRoute: NextApiHandler = async (req, res) => {
- // Create authenticated Supabase Client
- const supabase = createServerSupabaseClient({ req, res });
- // Check if we have a session
- const {
- data: { session }
- } = await supabase.auth.getSession();
+ // Create authenticated Supabase Client
+ const supabase = createServerSupabaseClient({ req, res });
+ // Check if we have a session
+ const {
+ data: { session }
+ } = await supabase.auth.getSession();
- if (!session)
- return res.status(401).json({
- error: 'not_authenticated',
- description:
- 'The user does not have an active session or is not authenticated'
- });
+ if (!session)
+ return res.status(401).json({
+ error: 'not_authenticated',
+ description: 'The user does not have an active session or is not authenticated'
+ });
- // Run queries with RLS on the server
- const { data } = await supabase.from('users').select('*');
- res.json(data);
+ // Run queries with RLS on the server
+ const { data } = await supabase.from('users').select('*');
+ res.json(data);
};
export default ProtectedRoute;
diff --git a/examples/nextjs/pages/github-provider-token.tsx b/examples/nextjs/pages/github-provider-token.tsx
index 0a531c31..4814066d 100644
--- a/examples/nextjs/pages/github-provider-token.tsx
+++ b/examples/nextjs/pages/github-provider-token.tsx
@@ -1,61 +1,51 @@
// pages/protected-page.js
-import {
- User,
- createServerSupabaseClient
-} from '@supabase/auth-helpers-nextjs';
+import { User, createServerSupabaseClient } from '@supabase/auth-helpers-nextjs';
import { GetServerSidePropsContext } from 'next';
import Link from 'next/link';
-export default function ProtectedPage({
- user,
- allRepos
-}: {
- user: User;
- allRepos: any;
-}) {
- return (
- <>
-
- [ Home] | [
- withPageAuth]
-
- Protected content for {user.email}
- Data fetched with provider token:
- {JSON.stringify(allRepos, null, 2)}
- user:
- {JSON.stringify(user, null, 2)}
- >
- );
+export default function ProtectedPage({ user, allRepos }: { user: User; allRepos: any }) {
+ return (
+ <>
+
+ [ Home] | [ withPageAuth]
+
+ Protected content for {user.email}
+ Data fetched with provider token:
+ {JSON.stringify(allRepos, null, 2)}
+ user:
+ {JSON.stringify(user, null, 2)}
+ >
+ );
}
export const getServerSideProps = async (ctx: GetServerSidePropsContext) => {
- // Create authenticated Supabase Client
- const supabase = createServerSupabaseClient(ctx);
- // Check if we have a session
- const {
- data: { session }
- } = await supabase.auth.getSession();
+ // Create authenticated Supabase Client
+ const supabase = createServerSupabaseClient(ctx);
+ // Check if we have a session
+ const {
+ data: { session }
+ } = await supabase.auth.getSession();
- if (!session)
- return {
- redirect: {
- destination: '/',
- permanent: false
- }
- };
+ if (!session)
+ return {
+ redirect: {
+ destination: '/',
+ permanent: false
+ }
+ };
- // Retrieve provider_token & logged in user's third-party id from metadata
- const { provider_token, user } = session;
- const userId = user.user_metadata.user_name;
+ // Retrieve provider_token & logged in user's third-party id from metadata
+ const { provider_token, user } = session;
+ const userId = user.user_metadata.user_name;
- const allRepos = await (
- await fetch(`https://api.github.com/search/repositories?q=user:${userId}`, {
- method: 'GET',
- headers: {
- Authorization: `token ${provider_token}`
- }
- })
- ).json();
+ const allRepos = await (
+ await fetch(`https://api.github.com/search/repositories?q=user:${userId}`, {
+ method: 'GET',
+ headers: {
+ Authorization: `token ${provider_token}`
+ }
+ })
+ ).json();
- return { props: { user, allRepos } };
+ return { props: { user, allRepos } };
};
diff --git a/examples/nextjs/pages/index.tsx b/examples/nextjs/pages/index.tsx
index a2ab493f..69504667 100644
--- a/examples/nextjs/pages/index.tsx
+++ b/examples/nextjs/pages/index.tsx
@@ -1,8 +1,4 @@
-import {
- useSessionContext,
- useSupabaseClient,
- useUser
-} from '@supabase/auth-helpers-react';
+import { useSessionContext, useSupabaseClient, useUser } from '@supabase/auth-helpers-react';
import { Auth, ThemeSupa } from '@supabase/auth-ui-react';
import type { NextPage } from 'next';
import Link from 'next/link';
@@ -10,74 +6,68 @@ import { useEffect, useState } from 'react';
import { Database } from '../db_types';
const LoginPage: NextPage = () => {
- const { isLoading, session, error } = useSessionContext();
- const user = useUser();
- const supabaseClient = useSupabaseClient();
+ const { isLoading, session, error } = useSessionContext();
+ const user = useUser();
+ const supabaseClient = useSupabaseClient();
- const [data, setData] = useState(null);
+ const [data, setData] = useState(null);
- useEffect(() => {
- async function loadData() {
- const { data } = await supabaseClient.from('users').select('*').single();
- setData(data);
- }
+ useEffect(() => {
+ async function loadData() {
+ const { data } = await supabaseClient.from('users').select('*').single();
+ setData(data);
+ }
- if (user) loadData();
- }, [user, supabaseClient]);
+ if (user) loadData();
+ }, [user, supabaseClient]);
- if (!session)
- return (
- <>
- {error && {error.message}
}
- {isLoading ? Loading... : Loaded! }
- {
- supabaseClient.auth.signInWithOAuth({
- provider: 'github',
- options: {
- scopes: 'repo',
- redirectTo: 'http://localhost:3000/api/callback'
- }
- });
- }}
- >
- Login with github
-
-
- >
- );
+ if (!session)
+ return (
+ <>
+ {error && {error.message}
}
+ {isLoading ? Loading... : Loaded! }
+ {
+ supabaseClient.auth.signInWithOAuth({
+ provider: 'github',
+ options: {
+ scopes: 'repo',
+ redirectTo: 'http://localhost:3000/api/callback'
+ }
+ });
+ }}
+ >
+ Login with github
+
+
+ >
+ );
- return (
- <>
-
- [ getServerSideProps] | [
- server-side RLS] |{' '}
-
- supabaseClient.auth.updateUser({ data: { test1: 'updated' } })
- }
- >
- Update user metadata
-
- supabaseClient.auth.refreshSession()}>
- Refresh session
-
-
- {isLoading ? Loading... : Loaded! }
- user:
- {JSON.stringify(session, null, 2)}
- client-side data fetching with RLS
- {JSON.stringify(data, null, 2)}
- >
- );
+ return (
+ <>
+
+ [ getServerSideProps] | [
+ server-side RLS] |{' '}
+ supabaseClient.auth.updateUser({ data: { test1: 'updated' } })}>
+ Update user metadata
+
+ supabaseClient.auth.refreshSession()}>Refresh session
+
+ {isLoading ? Loading... : Loaded! }
+ user:
+ {JSON.stringify(session, null, 2)}
+ client-side data fetching with RLS
+ {JSON.stringify(data, null, 2)}
+ >
+ );
};
export default LoginPage;
diff --git a/examples/nextjs/pages/profile.tsx b/examples/nextjs/pages/profile.tsx
index a7ebd23d..dc0926eb 100644
--- a/examples/nextjs/pages/profile.tsx
+++ b/examples/nextjs/pages/profile.tsx
@@ -1,44 +1,40 @@
// pages/profile.js
-import {
- createServerSupabaseClient,
- User
-} from '@supabase/auth-helpers-nextjs';
+import { createServerSupabaseClient, User } from '@supabase/auth-helpers-nextjs';
import { GetServerSidePropsContext } from 'next';
import Link from 'next/link';
export default function Profile({ user }: { user: User }) {
- return (
- <>
-
- [ Home] | [
- server-side RLS]
-
- Hello {user.email}
- {JSON.stringify(user, null, 2)}
- >
- );
+ return (
+ <>
+
+ [ Home] | [ server-side RLS]
+
+ Hello {user.email}
+ {JSON.stringify(user, null, 2)}
+ >
+ );
}
export const getServerSideProps = async (ctx: GetServerSidePropsContext) => {
- // Create authenticated Supabase Client
- const supabase = createServerSupabaseClient(ctx);
- // Check if we have a session
- const {
- data: { session }
- } = await supabase.auth.getSession();
+ // Create authenticated Supabase Client
+ const supabase = createServerSupabaseClient(ctx);
+ // Check if we have a session
+ const {
+ data: { session }
+ } = await supabase.auth.getSession();
- if (!session)
- return {
- redirect: {
- destination: '/',
- permanent: false
- }
- };
+ if (!session)
+ return {
+ redirect: {
+ destination: '/',
+ permanent: false
+ }
+ };
- return {
- props: {
- initialSession: session,
- user: session.user
- }
- };
+ return {
+ props: {
+ initialSession: session,
+ user: session.user
+ }
+ };
};
diff --git a/examples/nextjs/pages/protected-page.tsx b/examples/nextjs/pages/protected-page.tsx
index f1f80c9c..1b8952c4 100644
--- a/examples/nextjs/pages/protected-page.tsx
+++ b/examples/nextjs/pages/protected-page.tsx
@@ -1,57 +1,47 @@
// pages/protected-page.js
-import {
- createServerSupabaseClient,
- User
-} from '@supabase/auth-helpers-nextjs';
+import { createServerSupabaseClient, User } from '@supabase/auth-helpers-nextjs';
import { GetServerSidePropsContext } from 'next';
import Link from 'next/link';
-export default function ProtectedPage({
- user,
- data
-}: {
- user: User;
- data: any;
-}) {
- return (
- <>
-
- [ Home] | [
- getServerSideProps]
-
- Protected content for {user?.email}
- server-side fetched data with RLS:
- {JSON.stringify(data, null, 2)}
- user:
- {JSON.stringify(user, null, 2)}
- >
- );
+export default function ProtectedPage({ user, data }: { user: User; data: any }) {
+ return (
+ <>
+
+ [ Home] | [ getServerSideProps]
+
+ Protected content for {user?.email}
+ server-side fetched data with RLS:
+ {JSON.stringify(data, null, 2)}
+ user:
+ {JSON.stringify(user, null, 2)}
+ >
+ );
}
export const getServerSideProps = async (ctx: GetServerSidePropsContext) => {
- // Create authenticated Supabase Client
- const supabase = createServerSupabaseClient(ctx);
- // Check if we have a session
- const {
- data: { session }
- } = await supabase.auth.getSession();
+ // Create authenticated Supabase Client
+ const supabase = createServerSupabaseClient(ctx);
+ // Check if we have a session
+ const {
+ data: { session }
+ } = await supabase.auth.getSession();
- if (!session)
- return {
- redirect: {
- destination: '/',
- permanent: false
- }
- };
+ if (!session)
+ return {
+ redirect: {
+ destination: '/',
+ permanent: false
+ }
+ };
- // Run queries with RLS on the server
- const { data } = await supabase.from('users').select('*');
+ // Run queries with RLS on the server
+ const { data } = await supabase.from('users').select('*');
- return {
- props: {
- initialSession: session,
- user: session.user,
- data: data ?? []
- }
- };
+ return {
+ props: {
+ initialSession: session,
+ user: session.user,
+ data: data ?? []
+ }
+ };
};
diff --git a/examples/nextjs/styles/Home.module.css b/examples/nextjs/styles/Home.module.css
index 32a57d52..e3800260 100644
--- a/examples/nextjs/styles/Home.module.css
+++ b/examples/nextjs/styles/Home.module.css
@@ -1,116 +1,116 @@
.container {
- padding: 0 2rem;
+ padding: 0 2rem;
}
.main {
- min-height: 100vh;
- padding: 4rem 0;
- flex: 1;
- display: flex;
- flex-direction: column;
- justify-content: center;
- align-items: center;
+ min-height: 100vh;
+ padding: 4rem 0;
+ flex: 1;
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ align-items: center;
}
.footer {
- display: flex;
- flex: 1;
- padding: 2rem 0;
- border-top: 1px solid #eaeaea;
- justify-content: center;
- align-items: center;
+ display: flex;
+ flex: 1;
+ padding: 2rem 0;
+ border-top: 1px solid #eaeaea;
+ justify-content: center;
+ align-items: center;
}
.footer a {
- display: flex;
- justify-content: center;
- align-items: center;
- flex-grow: 1;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ flex-grow: 1;
}
.title a {
- color: #0070f3;
- text-decoration: none;
+ color: #0070f3;
+ text-decoration: none;
}
.title a:hover,
.title a:focus,
.title a:active {
- text-decoration: underline;
+ text-decoration: underline;
}
.title {
- margin: 0;
- line-height: 1.15;
- font-size: 4rem;
+ margin: 0;
+ line-height: 1.15;
+ font-size: 4rem;
}
.title,
.description {
- text-align: center;
+ text-align: center;
}
.description {
- margin: 4rem 0;
- line-height: 1.5;
- font-size: 1.5rem;
+ margin: 4rem 0;
+ line-height: 1.5;
+ font-size: 1.5rem;
}
.code {
- background: #fafafa;
- border-radius: 5px;
- padding: 0.75rem;
- font-size: 1.1rem;
- font-family: Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono,
- Bitstream Vera Sans Mono, Courier New, monospace;
+ background: #fafafa;
+ border-radius: 5px;
+ padding: 0.75rem;
+ font-size: 1.1rem;
+ font-family: Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono,
+ Bitstream Vera Sans Mono, Courier New, monospace;
}
.grid {
- display: flex;
- align-items: center;
- justify-content: center;
- flex-wrap: wrap;
- max-width: 800px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ flex-wrap: wrap;
+ max-width: 800px;
}
.card {
- margin: 1rem;
- padding: 1.5rem;
- text-align: left;
- color: inherit;
- text-decoration: none;
- border: 1px solid #eaeaea;
- border-radius: 10px;
- transition: color 0.15s ease, border-color 0.15s ease;
- max-width: 300px;
+ margin: 1rem;
+ padding: 1.5rem;
+ text-align: left;
+ color: inherit;
+ text-decoration: none;
+ border: 1px solid #eaeaea;
+ border-radius: 10px;
+ transition: color 0.15s ease, border-color 0.15s ease;
+ max-width: 300px;
}
.card:hover,
.card:focus,
.card:active {
- color: #0070f3;
- border-color: #0070f3;
+ color: #0070f3;
+ border-color: #0070f3;
}
.card h2 {
- margin: 0 0 1rem 0;
- font-size: 1.5rem;
+ margin: 0 0 1rem 0;
+ font-size: 1.5rem;
}
.card p {
- margin: 0;
- font-size: 1.25rem;
- line-height: 1.5;
+ margin: 0;
+ font-size: 1.25rem;
+ line-height: 1.5;
}
.logo {
- height: 1em;
- margin-left: 0.5rem;
+ height: 1em;
+ margin-left: 0.5rem;
}
@media (max-width: 600px) {
- .grid {
- width: 100%;
- flex-direction: column;
- }
+ .grid {
+ width: 100%;
+ flex-direction: column;
+ }
}
diff --git a/examples/nextjs/styles/globals.css b/examples/nextjs/styles/globals.css
index e5e2dcc2..67f28bb4 100644
--- a/examples/nextjs/styles/globals.css
+++ b/examples/nextjs/styles/globals.css
@@ -1,16 +1,16 @@
html,
body {
- padding: 0;
- margin: 0;
- font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen,
- Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, sans-serif;
+ padding: 0;
+ margin: 0;
+ font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen, Ubuntu, Cantarell,
+ Fira Sans, Droid Sans, Helvetica Neue, sans-serif;
}
a {
- color: inherit;
- text-decoration: none;
+ color: inherit;
+ text-decoration: none;
}
* {
- box-sizing: border-box;
+ box-sizing: border-box;
}
diff --git a/examples/nextjs/tsconfig.json b/examples/nextjs/tsconfig.json
index 99710e85..d51865fa 100644
--- a/examples/nextjs/tsconfig.json
+++ b/examples/nextjs/tsconfig.json
@@ -1,20 +1,20 @@
{
- "compilerOptions": {
- "target": "es5",
- "lib": ["dom", "dom.iterable", "esnext"],
- "allowJs": true,
- "skipLibCheck": true,
- "strict": true,
- "forceConsistentCasingInFileNames": true,
- "noEmit": true,
- "esModuleInterop": true,
- "module": "esnext",
- "moduleResolution": "node",
- "resolveJsonModule": true,
- "isolatedModules": true,
- "jsx": "preserve",
- "incremental": true
- },
- "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx"],
- "exclude": ["node_modules"]
+ "compilerOptions": {
+ "target": "es5",
+ "lib": ["dom", "dom.iterable", "esnext"],
+ "allowJs": true,
+ "skipLibCheck": true,
+ "strict": true,
+ "forceConsistentCasingInFileNames": true,
+ "noEmit": true,
+ "esModuleInterop": true,
+ "module": "esnext",
+ "moduleResolution": "node",
+ "resolveJsonModule": true,
+ "isolatedModules": true,
+ "jsx": "preserve",
+ "incremental": true
+ },
+ "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx"],
+ "exclude": ["node_modules"]
}
diff --git a/examples/remix/.eslintrc b/examples/remix/.eslintrc
index 71569754..60fd39a0 100644
--- a/examples/remix/.eslintrc
+++ b/examples/remix/.eslintrc
@@ -1,3 +1,3 @@
{
- "extends": ["@remix-run/eslint-config", "@remix-run/eslint-config/node"]
+ "extends": ["@remix-run/eslint-config", "@remix-run/eslint-config/node"]
}
diff --git a/examples/remix/app/entry.client.tsx b/examples/remix/app/entry.client.tsx
index ea516524..ee296542 100644
--- a/examples/remix/app/entry.client.tsx
+++ b/examples/remix/app/entry.client.tsx
@@ -3,20 +3,20 @@ import { startTransition, StrictMode } from 'react';
import { hydrateRoot } from 'react-dom/client';
function hydrate() {
- startTransition(() => {
- hydrateRoot(
- document,
-
-
-
- );
- });
+ startTransition(() => {
+ hydrateRoot(
+ document,
+
+
+
+ );
+ });
}
if (window.requestIdleCallback) {
- window.requestIdleCallback(hydrate);
+ window.requestIdleCallback(hydrate);
} else {
- // Safari doesn't support requestIdleCallback
- // https://caniuse.com/requestidlecallback
- window.setTimeout(hydrate, 1);
+ // Safari doesn't support requestIdleCallback
+ // https://caniuse.com/requestidlecallback
+ window.setTimeout(hydrate, 1);
}
diff --git a/examples/remix/app/entry.server.tsx b/examples/remix/app/entry.server.tsx
index dc1f831f..9a800b60 100644
--- a/examples/remix/app/entry.server.tsx
+++ b/examples/remix/app/entry.server.tsx
@@ -8,104 +8,94 @@ import { renderToPipeableStream } from 'react-dom/server';
const ABORT_DELAY = 5000;
export default function handleRequest(
- request: Request,
- responseStatusCode: number,
- responseHeaders: Headers,
- remixContext: EntryContext
+ request: Request,
+ responseStatusCode: number,
+ responseHeaders: Headers,
+ remixContext: EntryContext
) {
- return isbot(request.headers.get('user-agent'))
- ? handleBotRequest(
- request,
- responseStatusCode,
- responseHeaders,
- remixContext
- )
- : handleBrowserRequest(
- request,
- responseStatusCode,
- responseHeaders,
- remixContext
- );
+ return isbot(request.headers.get('user-agent'))
+ ? handleBotRequest(request, responseStatusCode, responseHeaders, remixContext)
+ : handleBrowserRequest(request, responseStatusCode, responseHeaders, remixContext);
}
function handleBotRequest(
- request: Request,
- responseStatusCode: number,
- responseHeaders: Headers,
- remixContext: EntryContext
+ request: Request,
+ responseStatusCode: number,
+ responseHeaders: Headers,
+ remixContext: EntryContext
) {
- return new Promise((resolve, reject) => {
- let didError = false;
-
- const { pipe, abort } = renderToPipeableStream(
- ,
- {
- onAllReady() {
- const body = new PassThrough();
-
- responseHeaders.set('Content-Type', 'text/html');
-
- resolve(
- new Response(body, {
- headers: responseHeaders,
- status: didError ? 500 : responseStatusCode
- })
- );
-
- pipe(body);
- },
- onShellError(error: unknown) {
- reject(error);
- },
- onError(error: unknown) {
- didError = true;
-
- console.error(error);
- }
- }
- );
-
- setTimeout(abort, ABORT_DELAY);
- });
+ return new Promise((resolve, reject) => {
+ let didError = false;
+
+ const { pipe, abort } = renderToPipeableStream(
+ ,
+ {
+ onAllReady() {
+ const body = new PassThrough();
+
+ responseHeaders.set('Content-Type', 'text/html');
+
+ resolve(
+ new Response(body, {
+ headers: responseHeaders,
+ status: didError ? 500 : responseStatusCode
+ })
+ );
+
+ pipe(body);
+ },
+ onShellError(error: unknown) {
+ reject(error);
+ },
+ onError(error: unknown) {
+ didError = true;
+
+ console.error(error);
+ }
+ }
+ );
+
+ setTimeout(abort, ABORT_DELAY);
+ });
}
function handleBrowserRequest(
- request: Request,
- responseStatusCode: number,
- responseHeaders: Headers,
- remixContext: EntryContext
+ request: Request,
+ responseStatusCode: number,
+ responseHeaders: Headers,
+ remixContext: EntryContext
) {
- return new Promise((resolve, reject) => {
- let didError = false;
-
- const { pipe, abort } = renderToPipeableStream(
- ,
- {
- onShellReady() {
- const body = new PassThrough();
-
- responseHeaders.set('Content-Type', 'text/html');
-
- resolve(
- new Response(body, {
- headers: responseHeaders,
- status: didError ? 500 : responseStatusCode
- })
- );
-
- pipe(body);
- },
- onShellError(err: unknown) {
- reject(err);
- },
- onError(error: unknown) {
- didError = true;
-
- console.error(error);
- }
- }
- );
-
- setTimeout(abort, ABORT_DELAY);
- });
+ return new Promise((resolve, reject) => {
+ let didError = false;
+
+ const { pipe, abort } = renderToPipeableStream(
+ ,
+ {
+ onShellReady() {
+ const body = new PassThrough();
+
+ responseHeaders.set('Content-Type', 'text/html');
+
+ resolve(
+ new Response(body, {
+ headers: responseHeaders,
+ status: didError ? 500 : responseStatusCode
+ })
+ );
+
+ pipe(body);
+ },
+ onShellError(err: unknown) {
+ reject(err);
+ },
+ onError(error: unknown) {
+ didError = true;
+
+ console.error(error);
+ }
+ }
+ );
+
+ setTimeout(abort, ABORT_DELAY);
+ });
}
diff --git a/examples/remix/app/root.tsx b/examples/remix/app/root.tsx
index 66c0e2ff..1d44bd34 100644
--- a/examples/remix/app/root.tsx
+++ b/examples/remix/app/root.tsx
@@ -1,32 +1,25 @@
import { MetaFunction } from '@remix-run/node';
-import {
- Links,
- LiveReload,
- Meta,
- Outlet,
- Scripts,
- ScrollRestoration
-} from '@remix-run/react';
+import { Links, LiveReload, Meta, Outlet, Scripts, ScrollRestoration } from '@remix-run/react';
export const meta: MetaFunction = () => ({
- charset: 'utf-8',
- title: 'New Remix App',
- viewport: 'width=device-width,initial-scale=1'
+ charset: 'utf-8',
+ title: 'New Remix App',
+ viewport: 'width=device-width,initial-scale=1'
});
export default function App() {
- return (
-
-
-
-
-
-
-
-
-
-
-
-
- );
+ return (
+
+
+
+
+
+
+
+
+
+
+
+
+ );
}
diff --git a/examples/remix/app/routes/__supabase.tsx b/examples/remix/app/routes/__supabase.tsx
index d26096b1..1311a9ad 100644
--- a/examples/remix/app/routes/__supabase.tsx
+++ b/examples/remix/app/routes/__supabase.tsx
@@ -14,8 +14,8 @@ export type TypedSupabaseClient = SupabaseClient;
export type MaybeSession = Session | null;
export type SupabaseContext = {
- supabase: TypedSupabaseClient;
- session: MaybeSession;
+ supabase: TypedSupabaseClient;
+ session: MaybeSession;
};
// this uses Pathless Layout Routes [1] to wrap up all our Supabase logic
@@ -23,76 +23,73 @@ export type SupabaseContext = {
// [1] https://remix.run/docs/en/v1/guides/routing#pathless-layout-routes
export const loader = async ({ request }: LoaderArgs) => {
- // environment variables may be stored somewhere other than
- // `process.env` in runtimes other than node
- // we need to pipe these Supabase environment variables to the browser
- const env = {
- SUPABASE_URL: process.env.SUPABASE_URL!,
- SUPABASE_ANON_KEY: process.env.SUPABASE_ANON_KEY!
- };
-
- // We can retrieve the session on the server and hand it to the client.
- // This is used to make sure the session is available immediately upon rendering
- const response = new Response();
-
- const supabase = createServerClient({ request, response });
-
- const {
- data: { session }
- } = await supabase.auth.getSession();
-
- // in order for the set-cookie header to be set,
- // headers must be returned as part of the loader response
- return json(
- {
- env,
- session
- },
- {
- headers: response.headers
- }
- );
+ // environment variables may be stored somewhere other than
+ // `process.env` in runtimes other than node
+ // we need to pipe these Supabase environment variables to the browser
+ const env = {
+ SUPABASE_URL: process.env.SUPABASE_URL!,
+ SUPABASE_ANON_KEY: process.env.SUPABASE_ANON_KEY!
+ };
+
+ // We can retrieve the session on the server and hand it to the client.
+ // This is used to make sure the session is available immediately upon rendering
+ const response = new Response();
+
+ const supabase = createServerClient({ request, response });
+
+ const {
+ data: { session }
+ } = await supabase.auth.getSession();
+
+ // in order for the set-cookie header to be set,
+ // headers must be returned as part of the loader response
+ return json(
+ {
+ env,
+ session
+ },
+ {
+ headers: response.headers
+ }
+ );
};
export default function Supabase() {
- const { env, session } = useLoaderData();
- const fetcher = useFetcher();
-
- // it is important to create a single instance of Supabase
- // to use across client components - outlet context 👇
- const [supabase] = useState(() =>
- createBrowserClient(env.SUPABASE_URL, env.SUPABASE_ANON_KEY)
- );
-
- const serverAccessToken = session?.access_token;
-
- useEffect(() => {
- const {
- data: { subscription }
- } = supabase.auth.onAuthStateChange((event, session) => {
- if (
- session?.access_token !== serverAccessToken &&
- fetcher.state === 'idle'
- ) {
- // server and client are out of sync.
- // Remix recalls active loaders after actions complete
- fetcher.submit(null, {
- method: 'post',
- action: '/handle-supabase-auth'
- });
- }
- });
-
- return () => {
- subscription.unsubscribe();
- };
- }, [serverAccessToken, supabase, fetcher]);
-
- return (
- <>
-
-
-
- >
- );
+ const { env, session } = useLoaderData();
+ const fetcher = useFetcher();
+
+ // it is important to create a single instance of Supabase
+ // to use across client components - outlet context 👇
+ const [supabase] = useState(() =>
+ createBrowserClient(env.SUPABASE_URL, env.SUPABASE_ANON_KEY)
+ );
+
+ const serverAccessToken = session?.access_token;
+
+ useEffect(() => {
+ const {
+ data: { subscription }
+ } = supabase.auth.onAuthStateChange((event, session) => {
+ if (session?.access_token !== serverAccessToken && fetcher.state === 'idle') {
+ // server and client are out of sync.
+ // Remix recalls active loaders after actions complete
+ fetcher.submit(null, {
+ method: 'post',
+ action: '/handle-supabase-auth'
+ });
+ }
+ });
+
+ return () => {
+ subscription.unsubscribe();
+ };
+ }, [serverAccessToken, supabase, fetcher]);
+
+ return (
+ <>
+
+
+
+ >
+ );
}
diff --git a/examples/remix/app/routes/__supabase/callback.tsx b/examples/remix/app/routes/__supabase/callback.tsx
index 9f05bdc4..bbc9d4e4 100644
--- a/examples/remix/app/routes/__supabase/callback.tsx
+++ b/examples/remix/app/routes/__supabase/callback.tsx
@@ -2,17 +2,17 @@ import { type LoaderArgs, redirect } from '@remix-run/node';
import { createServerClient } from 'utils/supabase.server';
export async function loader({ request }: LoaderArgs) {
- const url = new URL(request.url);
- const code = url.searchParams.get('code');
+ const url = new URL(request.url);
+ const code = url.searchParams.get('code');
- const response = new Response();
- if (code) {
- const supabase = createServerClient({ request, response });
- await supabase.auth.exchangeCodeForSession(code);
- }
+ const response = new Response();
+ if (code) {
+ const supabase = createServerClient({ request, response });
+ await supabase.auth.exchangeCodeForSession(code);
+ }
- return redirect('/', {
- status: 303,
- headers: response.headers
- });
+ return redirect('/', {
+ status: 303,
+ headers: response.headers
+ });
}
diff --git a/examples/remix/app/routes/__supabase/index.tsx b/examples/remix/app/routes/__supabase/index.tsx
index c9d23ec1..5118b4ef 100644
--- a/examples/remix/app/routes/__supabase/index.tsx
+++ b/examples/remix/app/routes/__supabase/index.tsx
@@ -1,3 +1,3 @@
export default function Index() {
- return Welcome to the future! ;
+ return Welcome to the future! ;
}
diff --git a/examples/remix/app/routes/__supabase/optional-session.tsx b/examples/remix/app/routes/__supabase/optional-session.tsx
index ca0a8219..de544cc2 100644
--- a/examples/remix/app/routes/__supabase/optional-session.tsx
+++ b/examples/remix/app/routes/__supabase/optional-session.tsx
@@ -5,29 +5,29 @@ import { createServerClient } from 'utils/supabase.server';
import type { LoaderArgs } from '@remix-run/node';
export const loader = async ({ request }: LoaderArgs) => {
- const response = new Response();
- const supabase = createServerClient({ request, response });
+ const response = new Response();
+ const supabase = createServerClient({ request, response });
- const {
- data: { session }
- } = await supabase.auth.getSession();
+ const {
+ data: { session }
+ } = await supabase.auth.getSession();
- const { data } = await supabase.from('posts').select('*');
+ const { data } = await supabase.from('posts').select('*');
- // in order for the set-cookie header to be set,
- // headers must be returned as part of the loader response
- return json(
- { data, session },
- {
- headers: response.headers
- }
- );
+ // in order for the set-cookie header to be set,
+ // headers must be returned as part of the loader response
+ return json(
+ { data, session },
+ {
+ headers: response.headers
+ }
+ );
};
export default function OptionalSession() {
- // by fetching the session in the loader, we ensure it is available
- // for first SSR render - no flashing of incorrect state
- const { data, session } = useLoaderData();
+ // by fetching the session in the loader, we ensure it is available
+ // for first SSR render - no flashing of incorrect state
+ const { data, session } = useLoaderData();
- return {JSON.stringify({ data, session }, null, 2)} ;
+ return {JSON.stringify({ data, session }, null, 2)} ;
}
diff --git a/examples/remix/app/routes/__supabase/realtime.tsx b/examples/remix/app/routes/__supabase/realtime.tsx
index bae7eae1..d36be12b 100644
--- a/examples/remix/app/routes/__supabase/realtime.tsx
+++ b/examples/remix/app/routes/__supabase/realtime.tsx
@@ -6,41 +6,39 @@ import RealtimePosts from 'components/realtime-posts';
import type { ActionArgs, LoaderArgs } from '@remix-run/node';
export const action = async ({ request }: ActionArgs) => {
- const response = new Response();
- const supabase = createServerClient({ request, response });
+ const response = new Response();
+ const supabase = createServerClient({ request, response });
- const { post } = Object.fromEntries(await request.formData());
+ const { post } = Object.fromEntries(await request.formData());
- const { error } = await supabase
- .from('posts')
- .insert({ content: String(post) });
+ const { error } = await supabase.from('posts').insert({ content: String(post) });
- if (error) {
- console.log(error);
- }
+ if (error) {
+ console.log(error);
+ }
- return json(null, { headers: response.headers });
+ return json(null, { headers: response.headers });
};
export const loader = async ({ request }: LoaderArgs) => {
- const response = new Response();
- const supabase = createServerClient({ request, response });
+ const response = new Response();
+ const supabase = createServerClient({ request, response });
- const { data } = await supabase.from('posts').select();
+ const { data } = await supabase.from('posts').select();
- return json({ posts: data ?? [] }, { headers: response.headers });
+ return json({ posts: data ?? [] }, { headers: response.headers });
};
export default function Index() {
- const { posts } = useLoaderData();
-
- return (
- <>
-
-
- >
- );
+ const { posts } = useLoaderData();
+
+ return (
+ <>
+
+
+ >
+ );
}
diff --git a/examples/remix/app/routes/__supabase/required-session.tsx b/examples/remix/app/routes/__supabase/required-session.tsx
index 1a8b70db..09df4175 100644
--- a/examples/remix/app/routes/__supabase/required-session.tsx
+++ b/examples/remix/app/routes/__supabase/required-session.tsx
@@ -5,39 +5,39 @@ import { createServerClient } from 'utils/supabase.server';
import type { LoaderArgs } from '@remix-run/node';
export const loader = async ({ request }: LoaderArgs) => {
- const response = new Response();
- const supabase = createServerClient({ request, response });
-
- const {
- data: { session }
- } = await supabase.auth.getSession();
-
- if (!session) {
- // there is no session, therefore, we are redirecting
- // to the landing page. The `/?index` is required here
- // for Remix to correctly call our loaders
- return redirect('/?index', {
- // we still need to return response.headers to attach the set-cookie header
- headers: response.headers
- });
- }
-
- const { data } = await supabase.from('posts').select('*');
-
- // in order for the set-cookie header to be set,
- // headers must be returned as part of the loader response
- return json(
- { data, session },
- {
- headers: response.headers
- }
- );
+ const response = new Response();
+ const supabase = createServerClient({ request, response });
+
+ const {
+ data: { session }
+ } = await supabase.auth.getSession();
+
+ if (!session) {
+ // there is no session, therefore, we are redirecting
+ // to the landing page. The `/?index` is required here
+ // for Remix to correctly call our loaders
+ return redirect('/?index', {
+ // we still need to return response.headers to attach the set-cookie header
+ headers: response.headers
+ });
+ }
+
+ const { data } = await supabase.from('posts').select('*');
+
+ // in order for the set-cookie header to be set,
+ // headers must be returned as part of the loader response
+ return json(
+ { data, session },
+ {
+ headers: response.headers
+ }
+ );
};
export default function RequiredSession() {
- // by fetching the session in the loader, we ensure it is available
- // for first SSR render - no flashing of incorrect state
- const { data, session } = useLoaderData();
+ // by fetching the session in the loader, we ensure it is available
+ // for first SSR render - no flashing of incorrect state
+ const { data, session } = useLoaderData();
- return {JSON.stringify({ data, session }, null, 2)} ;
+ return {JSON.stringify({ data, session }, null, 2)} ;
}
diff --git a/examples/remix/components/login.tsx b/examples/remix/components/login.tsx
index acc06fcf..05055eb1 100644
--- a/examples/remix/components/login.tsx
+++ b/examples/remix/components/login.tsx
@@ -1,50 +1,50 @@
import type { MaybeSession, TypedSupabaseClient } from '~/routes/__supabase';
export default function Login({
- supabase,
- session
+ supabase,
+ session
}: {
- supabase: TypedSupabaseClient;
- session: MaybeSession;
+ supabase: TypedSupabaseClient;
+ session: MaybeSession;
}) {
- const handleEmailLogin = async () => {
- const { error } = await supabase.auth.signInWithPassword({
- email: 'jon@supabase.com',
- password: 'password'
- });
+ const handleEmailLogin = async () => {
+ const { error } = await supabase.auth.signInWithPassword({
+ email: 'jon@supabase.com',
+ password: 'password'
+ });
- if (error) {
- console.log({ error });
- }
- };
+ if (error) {
+ console.log({ error });
+ }
+ };
- const handleGitHubLogin = async () => {
- const { error } = await supabase.auth.signInWithOAuth({
- provider: 'github',
- options: {
- redirectTo: `${location.origin}/callback`
- }
- });
+ const handleGitHubLogin = async () => {
+ const { error } = await supabase.auth.signInWithOAuth({
+ provider: 'github',
+ options: {
+ redirectTo: `${location.origin}/callback`
+ }
+ });
- if (error) {
- console.log({ error });
- }
- };
+ if (error) {
+ console.log({ error });
+ }
+ };
- const handleLogout = async () => {
- const { error } = await supabase.auth.signOut();
+ const handleLogout = async () => {
+ const { error } = await supabase.auth.signOut();
- if (error) {
- console.log(error);
- }
- };
+ if (error) {
+ console.log(error);
+ }
+ };
- return session ? (
- Logout
- ) : (
- <>
- Email Login
- GitHub Login
- >
- );
+ return session ? (
+ Logout
+ ) : (
+ <>
+ Email Login
+ GitHub Login
+ >
+ );
}
diff --git a/examples/remix/components/nav.tsx b/examples/remix/components/nav.tsx
index 46542291..3fd8e847 100644
--- a/examples/remix/components/nav.tsx
+++ b/examples/remix/components/nav.tsx
@@ -1,17 +1,17 @@
import { Link } from '@remix-run/react';
export default function Nav() {
- return (
-
-
- Optional Session ✅
-
-
- Required Session 👮♀️
-
-
- Realtime ⏱️
-
-
- );
+ return (
+
+
+ Optional Session ✅
+
+
+ Required Session 👮♀️
+
+
+ Realtime ⏱️
+
+
+ );
}
diff --git a/examples/remix/components/realtime-posts.tsx b/examples/remix/components/realtime-posts.tsx
index 22db38f4..0f922fe2 100644
--- a/examples/remix/components/realtime-posts.tsx
+++ b/examples/remix/components/realtime-posts.tsx
@@ -6,32 +6,26 @@ import type { Database } from 'db_types';
type Post = Database['public']['Tables']['posts']['Row'];
-export default function RealtimePosts({
- serverPosts
-}: {
- serverPosts: Post[];
-}) {
- const [posts, setPosts] = useState(serverPosts);
- const { supabase } = useOutletContext();
+export default function RealtimePosts({ serverPosts }: { serverPosts: Post[] }) {
+ const [posts, setPosts] = useState(serverPosts);
+ const { supabase } = useOutletContext();
- useEffect(() => {
- setPosts(serverPosts);
- }, [serverPosts]);
+ useEffect(() => {
+ setPosts(serverPosts);
+ }, [serverPosts]);
- useEffect(() => {
- const channel = supabase
- .channel('*')
- .on(
- 'postgres_changes',
- { event: 'INSERT', schema: 'public', table: 'posts' },
- (payload) => setPosts([...posts, payload.new as Post])
- )
- .subscribe();
+ useEffect(() => {
+ const channel = supabase
+ .channel('*')
+ .on('postgres_changes', { event: 'INSERT', schema: 'public', table: 'posts' }, (payload) =>
+ setPosts([...posts, payload.new as Post])
+ )
+ .subscribe();
- return () => {
- supabase.removeChannel(channel);
- };
- }, [supabase, posts, setPosts]);
+ return () => {
+ supabase.removeChannel(channel);
+ };
+ }, [supabase, posts, setPosts]);
- return {JSON.stringify(posts, null, 2)} ;
+ return {JSON.stringify(posts, null, 2)} ;
}
diff --git a/examples/remix/db_types.ts b/examples/remix/db_types.ts
index 3986413a..64835236 100644
--- a/examples/remix/db_types.ts
+++ b/examples/remix/db_types.ts
@@ -1,43 +1,37 @@
-export type Json =
- | string
- | number
- | boolean
- | null
- | { [key: string]: Json }
- | Json[];
+export type Json = string | number | boolean | null | { [key: string]: Json } | Json[];
export interface Database {
- public: {
- Tables: {
- posts: {
- Row: {
- id: string;
- created_at: string;
- content: string;
- user_id: string;
- };
- Insert: {
- id?: string;
- created_at?: string;
- content: string;
- user_id?: string;
- };
- Update: {
- id?: string;
- created_at?: string;
- content?: string;
- user_id?: string;
- };
- };
- };
- Views: {
- [_ in never]: never;
- };
- Functions: {
- [_ in never]: never;
- };
- Enums: {
- [_ in never]: never;
- };
- };
+ public: {
+ Tables: {
+ posts: {
+ Row: {
+ id: string;
+ created_at: string;
+ content: string;
+ user_id: string;
+ };
+ Insert: {
+ id?: string;
+ created_at?: string;
+ content: string;
+ user_id?: string;
+ };
+ Update: {
+ id?: string;
+ created_at?: string;
+ content?: string;
+ user_id?: string;
+ };
+ };
+ };
+ Views: {
+ [_ in never]: never;
+ };
+ Functions: {
+ [_ in never]: never;
+ };
+ Enums: {
+ [_ in never]: never;
+ };
+ };
}
diff --git a/examples/remix/package.json b/examples/remix/package.json
index d3829810..3a739272 100644
--- a/examples/remix/package.json
+++ b/examples/remix/package.json
@@ -1,31 +1,31 @@
{
- "name": "@example/remix",
- "private": true,
- "sideEffects": false,
- "scripts": {
- "build:example": "remix build",
- "dev": "PORT=3004 remix dev",
- "start": "PORT=3004 remix-serve build"
- },
- "dependencies": {
- "@remix-run/node": "^1.7.6",
- "@remix-run/react": "^1.7.6",
- "@remix-run/serve": "^1.7.6",
- "@supabase/auth-helpers-remix": "workspace:*",
- "@supabase/supabase-js": "^2.19.0",
- "isbot": "^3.5.4",
- "react": "^18.2.0",
- "react-dom": "^18.2.0"
- },
- "devDependencies": {
- "@remix-run/dev": "^1.7.6",
- "@remix-run/eslint-config": "^1.7.6",
- "@types/react": "^18.0.25",
- "@types/react-dom": "^18.0.8",
- "eslint": "^8.27.0",
- "typescript": "^4.8.4"
- },
- "engines": {
- "node": ">=14"
- }
+ "name": "@example/remix",
+ "private": true,
+ "sideEffects": false,
+ "scripts": {
+ "build:example": "remix build",
+ "dev": "PORT=3004 remix dev",
+ "start": "PORT=3004 remix-serve build"
+ },
+ "dependencies": {
+ "@remix-run/node": "^1.7.6",
+ "@remix-run/react": "^1.7.6",
+ "@remix-run/serve": "^1.7.6",
+ "@supabase/auth-helpers-remix": "workspace:*",
+ "@supabase/supabase-js": "^2.19.0",
+ "isbot": "^3.5.4",
+ "react": "^18.2.0",
+ "react-dom": "^18.2.0"
+ },
+ "devDependencies": {
+ "@remix-run/dev": "^1.7.6",
+ "@remix-run/eslint-config": "^1.7.6",
+ "@types/react": "^18.0.25",
+ "@types/react-dom": "^18.0.8",
+ "eslint": "^8.27.0",
+ "typescript": "^4.8.4"
+ },
+ "engines": {
+ "node": ">=14"
+ }
}
diff --git a/examples/remix/remix.config.js b/examples/remix/remix.config.js
index adf2a0b5..63902de2 100644
--- a/examples/remix/remix.config.js
+++ b/examples/remix/remix.config.js
@@ -1,8 +1,8 @@
/** @type {import('@remix-run/dev').AppConfig} */
module.exports = {
- ignoredRouteFiles: ["**/.*"],
- // appDirectory: "app",
- // assetsBuildDirectory: "public/build",
- // serverBuildPath: "build/index.js",
- // publicPath: "/build/",
+ ignoredRouteFiles: ['**/.*']
+ // appDirectory: "app",
+ // assetsBuildDirectory: "public/build",
+ // serverBuildPath: "build/index.js",
+ // publicPath: "/build/",
};
diff --git a/examples/remix/tsconfig.json b/examples/remix/tsconfig.json
index 20f8a386..d8528bbe 100644
--- a/examples/remix/tsconfig.json
+++ b/examples/remix/tsconfig.json
@@ -1,22 +1,22 @@
{
- "include": ["remix.env.d.ts", "**/*.ts", "**/*.tsx"],
- "compilerOptions": {
- "lib": ["DOM", "DOM.Iterable", "ES2019"],
- "isolatedModules": true,
- "esModuleInterop": true,
- "jsx": "react-jsx",
- "moduleResolution": "node",
- "resolveJsonModule": true,
- "target": "ES2019",
- "strict": true,
- "allowJs": true,
- "forceConsistentCasingInFileNames": true,
- "baseUrl": ".",
- "paths": {
- "~/*": ["./app/*"]
- },
+ "include": ["remix.env.d.ts", "**/*.ts", "**/*.tsx"],
+ "compilerOptions": {
+ "lib": ["DOM", "DOM.Iterable", "ES2019"],
+ "isolatedModules": true,
+ "esModuleInterop": true,
+ "jsx": "react-jsx",
+ "moduleResolution": "node",
+ "resolveJsonModule": true,
+ "target": "ES2019",
+ "strict": true,
+ "allowJs": true,
+ "forceConsistentCasingInFileNames": true,
+ "baseUrl": ".",
+ "paths": {
+ "~/*": ["./app/*"]
+ },
- // Remix takes care of building everything in `remix build`.
- "noEmit": true
- }
+ // Remix takes care of building everything in `remix build`.
+ "noEmit": true
+ }
}
diff --git a/examples/remix/utils/supabase.server.ts b/examples/remix/utils/supabase.server.ts
index 92804323..a112e94e 100644
--- a/examples/remix/utils/supabase.server.ts
+++ b/examples/remix/utils/supabase.server.ts
@@ -3,14 +3,13 @@ import { createServerClient as _createServerClient } from '@supabase/auth-helper
import type { Database } from 'db_types';
export const createServerClient = ({
- request,
- response
+ request,
+ response
}: {
- request: Request;
- response: Response;
+ request: Request;
+ response: Response;
}) =>
- _createServerClient(
- process.env.SUPABASE_URL!,
- process.env.SUPABASE_ANON_KEY!,
- { request, response }
- );
+ _createServerClient(process.env.SUPABASE_URL!, process.env.SUPABASE_ANON_KEY!, {
+ request,
+ response
+ });
diff --git a/examples/sveltekit/src/app.html b/examples/sveltekit/src/app.html
index d99a9daa..af2f0bd6 100644
--- a/examples/sveltekit/src/app.html
+++ b/examples/sveltekit/src/app.html
@@ -5,8 +5,8 @@
-
-
+
+
%sveltekit.head%
diff --git a/examples/sveltekit/static/bulma.min.css b/examples/sveltekit/static/bulma.min.css
index be16f726..f461ba89 100644
--- a/examples/sveltekit/static/bulma.min.css
+++ b/examples/sveltekit/static/bulma.min.css
@@ -1 +1,10607 @@
-/*! bulma.io v0.9.3 | MIT License | github.com/jgthms/bulma */.button,.file-cta,.file-name,.input,.pagination-ellipsis,.pagination-link,.pagination-next,.pagination-previous,.select select,.textarea{-moz-appearance:none;-webkit-appearance:none;align-items:center;border:1px solid transparent;border-radius:4px;box-shadow:none;display:inline-flex;font-size:1rem;height:2.5em;justify-content:flex-start;line-height:1.5;padding-bottom:calc(.5em - 1px);padding-left:calc(.75em - 1px);padding-right:calc(.75em - 1px);padding-top:calc(.5em - 1px);position:relative;vertical-align:top}.button:active,.button:focus,.file-cta:active,.file-cta:focus,.file-name:active,.file-name:focus,.input:active,.input:focus,.is-active.button,.is-active.file-cta,.is-active.file-name,.is-active.input,.is-active.pagination-ellipsis,.is-active.pagination-link,.is-active.pagination-next,.is-active.pagination-previous,.is-active.textarea,.is-focused.button,.is-focused.file-cta,.is-focused.file-name,.is-focused.input,.is-focused.pagination-ellipsis,.is-focused.pagination-link,.is-focused.pagination-next,.is-focused.pagination-previous,.is-focused.textarea,.pagination-ellipsis:active,.pagination-ellipsis:focus,.pagination-link:active,.pagination-link:focus,.pagination-next:active,.pagination-next:focus,.pagination-previous:active,.pagination-previous:focus,.select select.is-active,.select select.is-focused,.select select:active,.select select:focus,.textarea:active,.textarea:focus{outline:0}.button[disabled],.file-cta[disabled],.file-name[disabled],.input[disabled],.pagination-ellipsis[disabled],.pagination-link[disabled],.pagination-next[disabled],.pagination-previous[disabled],.select fieldset[disabled] select,.select select[disabled],.textarea[disabled],fieldset[disabled] .button,fieldset[disabled] .file-cta,fieldset[disabled] .file-name,fieldset[disabled] .input,fieldset[disabled] .pagination-ellipsis,fieldset[disabled] .pagination-link,fieldset[disabled] .pagination-next,fieldset[disabled] .pagination-previous,fieldset[disabled] .select select,fieldset[disabled] .textarea{cursor:not-allowed}.breadcrumb,.button,.file,.is-unselectable,.pagination-ellipsis,.pagination-link,.pagination-next,.pagination-previous,.tabs{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.navbar-link:not(.is-arrowless)::after,.select:not(.is-multiple):not(.is-loading)::after{border:3px solid transparent;border-radius:2px;border-right:0;border-top:0;content:" ";display:block;height:.625em;margin-top:-.4375em;pointer-events:none;position:absolute;top:50%;transform:rotate(-45deg);transform-origin:center;width:.625em}.block:not(:last-child),.box:not(:last-child),.breadcrumb:not(:last-child),.content:not(:last-child),.level:not(:last-child),.message:not(:last-child),.notification:not(:last-child),.pagination:not(:last-child),.progress:not(:last-child),.subtitle:not(:last-child),.table-container:not(:last-child),.table:not(:last-child),.tabs:not(:last-child),.title:not(:last-child){margin-bottom:1.5rem}.delete,.modal-close{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-moz-appearance:none;-webkit-appearance:none;background-color:rgba(10,10,10,.2);border:none;border-radius:9999px;cursor:pointer;pointer-events:auto;display:inline-block;flex-grow:0;flex-shrink:0;font-size:0;height:20px;max-height:20px;max-width:20px;min-height:20px;min-width:20px;outline:0;position:relative;vertical-align:top;width:20px}.delete::after,.delete::before,.modal-close::after,.modal-close::before{background-color:#fff;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}.delete::before,.modal-close::before{height:2px;width:50%}.delete::after,.modal-close::after{height:50%;width:2px}.delete:focus,.delete:hover,.modal-close:focus,.modal-close:hover{background-color:rgba(10,10,10,.3)}.delete:active,.modal-close:active{background-color:rgba(10,10,10,.4)}.is-small.delete,.is-small.modal-close{height:16px;max-height:16px;max-width:16px;min-height:16px;min-width:16px;width:16px}.is-medium.delete,.is-medium.modal-close{height:24px;max-height:24px;max-width:24px;min-height:24px;min-width:24px;width:24px}.is-large.delete,.is-large.modal-close{height:32px;max-height:32px;max-width:32px;min-height:32px;min-width:32px;width:32px}.button.is-loading::after,.control.is-loading::after,.loader,.select.is-loading::after{-webkit-animation:spinAround .5s infinite linear;animation:spinAround .5s infinite linear;border:2px solid #dbdbdb;border-radius:9999px;border-right-color:transparent;border-top-color:transparent;content:"";display:block;height:1em;position:relative;width:1em}.hero-video,.image.is-16by9 .has-ratio,.image.is-16by9 img,.image.is-1by1 .has-ratio,.image.is-1by1 img,.image.is-1by2 .has-ratio,.image.is-1by2 img,.image.is-1by3 .has-ratio,.image.is-1by3 img,.image.is-2by1 .has-ratio,.image.is-2by1 img,.image.is-2by3 .has-ratio,.image.is-2by3 img,.image.is-3by1 .has-ratio,.image.is-3by1 img,.image.is-3by2 .has-ratio,.image.is-3by2 img,.image.is-3by4 .has-ratio,.image.is-3by4 img,.image.is-3by5 .has-ratio,.image.is-3by5 img,.image.is-4by3 .has-ratio,.image.is-4by3 img,.image.is-4by5 .has-ratio,.image.is-4by5 img,.image.is-5by3 .has-ratio,.image.is-5by3 img,.image.is-5by4 .has-ratio,.image.is-5by4 img,.image.is-9by16 .has-ratio,.image.is-9by16 img,.image.is-square .has-ratio,.image.is-square img,.is-overlay,.modal,.modal-background{bottom:0;left:0;position:absolute;right:0;top:0}.navbar-burger{-moz-appearance:none;-webkit-appearance:none;appearance:none;background:0 0;border:none;color:currentColor;font-family:inherit;font-size:1em;margin:0;padding:0}/*! minireset.css v0.0.6 | MIT License | github.com/jgthms/minireset.css */blockquote,body,dd,dl,dt,fieldset,figure,h1,h2,h3,h4,h5,h6,hr,html,iframe,legend,li,ol,p,pre,textarea,ul{margin:0;padding:0}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:400}ul{list-style:none}button,input,select,textarea{margin:0}html{box-sizing:border-box}*,::after,::before{box-sizing:inherit}img,video{height:auto;max-width:100%}iframe{border:0}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}td:not([align]),th:not([align]){text-align:inherit}html{background-color:#fff;font-size:16px;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;min-width:300px;overflow-x:hidden;overflow-y:scroll;text-rendering:optimizeLegibility;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}article,aside,figure,footer,header,hgroup,section{display:block}body,button,input,optgroup,select,textarea{font-family:BlinkMacSystemFont,-apple-system,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Fira Sans","Droid Sans","Helvetica Neue",Helvetica,Arial,sans-serif}code,pre{-moz-osx-font-smoothing:auto;-webkit-font-smoothing:auto;font-family:monospace}body{color:#4a4a4a;font-size:1em;font-weight:400;line-height:1.5}a{color:#485fc7;cursor:pointer;text-decoration:none}a strong{color:currentColor}a:hover{color:#363636}code{background-color:#f5f5f5;color:#da1039;font-size:.875em;font-weight:400;padding:.25em .5em .25em}hr{background-color:#f5f5f5;border:none;display:block;height:2px;margin:1.5rem 0}img{height:auto;max-width:100%}input[type=checkbox],input[type=radio]{vertical-align:baseline}small{font-size:.875em}span{font-style:inherit;font-weight:inherit}strong{color:#363636;font-weight:700}fieldset{border:none}pre{-webkit-overflow-scrolling:touch;background-color:#f5f5f5;color:#4a4a4a;font-size:.875em;overflow-x:auto;padding:1.25rem 1.5rem;white-space:pre;word-wrap:normal}pre code{background-color:transparent;color:currentColor;font-size:1em;padding:0}table td,table th{vertical-align:top}table td:not([align]),table th:not([align]){text-align:inherit}table th{color:#363636}@-webkit-keyframes spinAround{from{transform:rotate(0)}to{transform:rotate(359deg)}}@keyframes spinAround{from{transform:rotate(0)}to{transform:rotate(359deg)}}.box{background-color:#fff;border-radius:6px;box-shadow:0 .5em 1em -.125em rgba(10,10,10,.1),0 0 0 1px rgba(10,10,10,.02);color:#4a4a4a;display:block;padding:1.25rem}a.box:focus,a.box:hover{box-shadow:0 .5em 1em -.125em rgba(10,10,10,.1),0 0 0 1px #485fc7}a.box:active{box-shadow:inset 0 1px 2px rgba(10,10,10,.2),0 0 0 1px #485fc7}.button{background-color:#fff;border-color:#dbdbdb;border-width:1px;color:#363636;cursor:pointer;justify-content:center;padding-bottom:calc(.5em - 1px);padding-left:1em;padding-right:1em;padding-top:calc(.5em - 1px);text-align:center;white-space:nowrap}.button strong{color:inherit}.button .icon,.button .icon.is-large,.button .icon.is-medium,.button .icon.is-small{height:1.5em;width:1.5em}.button .icon:first-child:not(:last-child){margin-left:calc(-.5em - 1px);margin-right:.25em}.button .icon:last-child:not(:first-child){margin-left:.25em;margin-right:calc(-.5em - 1px)}.button .icon:first-child:last-child{margin-left:calc(-.5em - 1px);margin-right:calc(-.5em - 1px)}.button.is-hovered,.button:hover{border-color:#b5b5b5;color:#363636}.button.is-focused,.button:focus{border-color:#485fc7;color:#363636}.button.is-focused:not(:active),.button:focus:not(:active){box-shadow:0 0 0 .125em rgba(72,95,199,.25)}.button.is-active,.button:active{border-color:#4a4a4a;color:#363636}.button.is-text{background-color:transparent;border-color:transparent;color:#4a4a4a;text-decoration:underline}.button.is-text.is-focused,.button.is-text.is-hovered,.button.is-text:focus,.button.is-text:hover{background-color:#f5f5f5;color:#363636}.button.is-text.is-active,.button.is-text:active{background-color:#e8e8e8;color:#363636}.button.is-text[disabled],fieldset[disabled] .button.is-text{background-color:transparent;border-color:transparent;box-shadow:none}.button.is-ghost{background:0 0;border-color:transparent;color:#485fc7;text-decoration:none}.button.is-ghost.is-hovered,.button.is-ghost:hover{color:#485fc7;text-decoration:underline}.button.is-white{background-color:#fff;border-color:transparent;color:#0a0a0a}.button.is-white.is-hovered,.button.is-white:hover{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}.button.is-white.is-focused,.button.is-white:focus{border-color:transparent;color:#0a0a0a}.button.is-white.is-focused:not(:active),.button.is-white:focus:not(:active){box-shadow:0 0 0 .125em rgba(255,255,255,.25)}.button.is-white.is-active,.button.is-white:active{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}.button.is-white[disabled],fieldset[disabled] .button.is-white{background-color:#fff;border-color:transparent;box-shadow:none}.button.is-white.is-inverted{background-color:#0a0a0a;color:#fff}.button.is-white.is-inverted.is-hovered,.button.is-white.is-inverted:hover{background-color:#000}.button.is-white.is-inverted[disabled],fieldset[disabled] .button.is-white.is-inverted{background-color:#0a0a0a;border-color:transparent;box-shadow:none;color:#fff}.button.is-white.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a!important}.button.is-white.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-white.is-outlined.is-focused,.button.is-white.is-outlined.is-hovered,.button.is-white.is-outlined:focus,.button.is-white.is-outlined:hover{background-color:#fff;border-color:#fff;color:#0a0a0a}.button.is-white.is-outlined.is-loading::after{border-color:transparent transparent #fff #fff!important}.button.is-white.is-outlined.is-loading.is-focused::after,.button.is-white.is-outlined.is-loading.is-hovered::after,.button.is-white.is-outlined.is-loading:focus::after,.button.is-white.is-outlined.is-loading:hover::after{border-color:transparent transparent #0a0a0a #0a0a0a!important}.button.is-white.is-outlined[disabled],fieldset[disabled] .button.is-white.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-white.is-inverted.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}.button.is-white.is-inverted.is-outlined.is-focused,.button.is-white.is-inverted.is-outlined.is-hovered,.button.is-white.is-inverted.is-outlined:focus,.button.is-white.is-inverted.is-outlined:hover{background-color:#0a0a0a;color:#fff}.button.is-white.is-inverted.is-outlined.is-loading.is-focused::after,.button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-white.is-inverted.is-outlined.is-loading:focus::after,.button.is-white.is-inverted.is-outlined.is-loading:hover::after{border-color:transparent transparent #fff #fff!important}.button.is-white.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-white.is-inverted.is-outlined{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}.button.is-black{background-color:#0a0a0a;border-color:transparent;color:#fff}.button.is-black.is-hovered,.button.is-black:hover{background-color:#040404;border-color:transparent;color:#fff}.button.is-black.is-focused,.button.is-black:focus{border-color:transparent;color:#fff}.button.is-black.is-focused:not(:active),.button.is-black:focus:not(:active){box-shadow:0 0 0 .125em rgba(10,10,10,.25)}.button.is-black.is-active,.button.is-black:active{background-color:#000;border-color:transparent;color:#fff}.button.is-black[disabled],fieldset[disabled] .button.is-black{background-color:#0a0a0a;border-color:transparent;box-shadow:none}.button.is-black.is-inverted{background-color:#fff;color:#0a0a0a}.button.is-black.is-inverted.is-hovered,.button.is-black.is-inverted:hover{background-color:#f2f2f2}.button.is-black.is-inverted[disabled],fieldset[disabled] .button.is-black.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#0a0a0a}.button.is-black.is-loading::after{border-color:transparent transparent #fff #fff!important}.button.is-black.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}.button.is-black.is-outlined.is-focused,.button.is-black.is-outlined.is-hovered,.button.is-black.is-outlined:focus,.button.is-black.is-outlined:hover{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}.button.is-black.is-outlined.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a!important}.button.is-black.is-outlined.is-loading.is-focused::after,.button.is-black.is-outlined.is-loading.is-hovered::after,.button.is-black.is-outlined.is-loading:focus::after,.button.is-black.is-outlined.is-loading:hover::after{border-color:transparent transparent #fff #fff!important}.button.is-black.is-outlined[disabled],fieldset[disabled] .button.is-black.is-outlined{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}.button.is-black.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-black.is-inverted.is-outlined.is-focused,.button.is-black.is-inverted.is-outlined.is-hovered,.button.is-black.is-inverted.is-outlined:focus,.button.is-black.is-inverted.is-outlined:hover{background-color:#fff;color:#0a0a0a}.button.is-black.is-inverted.is-outlined.is-loading.is-focused::after,.button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-black.is-inverted.is-outlined.is-loading:focus::after,.button.is-black.is-inverted.is-outlined.is-loading:hover::after{border-color:transparent transparent #0a0a0a #0a0a0a!important}.button.is-black.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-black.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-light{background-color:#f5f5f5;border-color:transparent;color:rgba(0,0,0,.7)}.button.is-light.is-hovered,.button.is-light:hover{background-color:#eee;border-color:transparent;color:rgba(0,0,0,.7)}.button.is-light.is-focused,.button.is-light:focus{border-color:transparent;color:rgba(0,0,0,.7)}.button.is-light.is-focused:not(:active),.button.is-light:focus:not(:active){box-shadow:0 0 0 .125em rgba(245,245,245,.25)}.button.is-light.is-active,.button.is-light:active{background-color:#e8e8e8;border-color:transparent;color:rgba(0,0,0,.7)}.button.is-light[disabled],fieldset[disabled] .button.is-light{background-color:#f5f5f5;border-color:transparent;box-shadow:none}.button.is-light.is-inverted{background-color:rgba(0,0,0,.7);color:#f5f5f5}.button.is-light.is-inverted.is-hovered,.button.is-light.is-inverted:hover{background-color:rgba(0,0,0,.7)}.button.is-light.is-inverted[disabled],fieldset[disabled] .button.is-light.is-inverted{background-color:rgba(0,0,0,.7);border-color:transparent;box-shadow:none;color:#f5f5f5}.button.is-light.is-loading::after{border-color:transparent transparent rgba(0,0,0,.7) rgba(0,0,0,.7)!important}.button.is-light.is-outlined{background-color:transparent;border-color:#f5f5f5;color:#f5f5f5}.button.is-light.is-outlined.is-focused,.button.is-light.is-outlined.is-hovered,.button.is-light.is-outlined:focus,.button.is-light.is-outlined:hover{background-color:#f5f5f5;border-color:#f5f5f5;color:rgba(0,0,0,.7)}.button.is-light.is-outlined.is-loading::after{border-color:transparent transparent #f5f5f5 #f5f5f5!important}.button.is-light.is-outlined.is-loading.is-focused::after,.button.is-light.is-outlined.is-loading.is-hovered::after,.button.is-light.is-outlined.is-loading:focus::after,.button.is-light.is-outlined.is-loading:hover::after{border-color:transparent transparent rgba(0,0,0,.7) rgba(0,0,0,.7)!important}.button.is-light.is-outlined[disabled],fieldset[disabled] .button.is-light.is-outlined{background-color:transparent;border-color:#f5f5f5;box-shadow:none;color:#f5f5f5}.button.is-light.is-inverted.is-outlined{background-color:transparent;border-color:rgba(0,0,0,.7);color:rgba(0,0,0,.7)}.button.is-light.is-inverted.is-outlined.is-focused,.button.is-light.is-inverted.is-outlined.is-hovered,.button.is-light.is-inverted.is-outlined:focus,.button.is-light.is-inverted.is-outlined:hover{background-color:rgba(0,0,0,.7);color:#f5f5f5}.button.is-light.is-inverted.is-outlined.is-loading.is-focused::after,.button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-light.is-inverted.is-outlined.is-loading:focus::after,.button.is-light.is-inverted.is-outlined.is-loading:hover::after{border-color:transparent transparent #f5f5f5 #f5f5f5!important}.button.is-light.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-light.is-inverted.is-outlined{background-color:transparent;border-color:rgba(0,0,0,.7);box-shadow:none;color:rgba(0,0,0,.7)}.button.is-dark{background-color:#363636;border-color:transparent;color:#fff}.button.is-dark.is-hovered,.button.is-dark:hover{background-color:#2f2f2f;border-color:transparent;color:#fff}.button.is-dark.is-focused,.button.is-dark:focus{border-color:transparent;color:#fff}.button.is-dark.is-focused:not(:active),.button.is-dark:focus:not(:active){box-shadow:0 0 0 .125em rgba(54,54,54,.25)}.button.is-dark.is-active,.button.is-dark:active{background-color:#292929;border-color:transparent;color:#fff}.button.is-dark[disabled],fieldset[disabled] .button.is-dark{background-color:#363636;border-color:transparent;box-shadow:none}.button.is-dark.is-inverted{background-color:#fff;color:#363636}.button.is-dark.is-inverted.is-hovered,.button.is-dark.is-inverted:hover{background-color:#f2f2f2}.button.is-dark.is-inverted[disabled],fieldset[disabled] .button.is-dark.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#363636}.button.is-dark.is-loading::after{border-color:transparent transparent #fff #fff!important}.button.is-dark.is-outlined{background-color:transparent;border-color:#363636;color:#363636}.button.is-dark.is-outlined.is-focused,.button.is-dark.is-outlined.is-hovered,.button.is-dark.is-outlined:focus,.button.is-dark.is-outlined:hover{background-color:#363636;border-color:#363636;color:#fff}.button.is-dark.is-outlined.is-loading::after{border-color:transparent transparent #363636 #363636!important}.button.is-dark.is-outlined.is-loading.is-focused::after,.button.is-dark.is-outlined.is-loading.is-hovered::after,.button.is-dark.is-outlined.is-loading:focus::after,.button.is-dark.is-outlined.is-loading:hover::after{border-color:transparent transparent #fff #fff!important}.button.is-dark.is-outlined[disabled],fieldset[disabled] .button.is-dark.is-outlined{background-color:transparent;border-color:#363636;box-shadow:none;color:#363636}.button.is-dark.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-dark.is-inverted.is-outlined.is-focused,.button.is-dark.is-inverted.is-outlined.is-hovered,.button.is-dark.is-inverted.is-outlined:focus,.button.is-dark.is-inverted.is-outlined:hover{background-color:#fff;color:#363636}.button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after,.button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-dark.is-inverted.is-outlined.is-loading:focus::after,.button.is-dark.is-inverted.is-outlined.is-loading:hover::after{border-color:transparent transparent #363636 #363636!important}.button.is-dark.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-dark.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-primary{background-color:#00d1b2;border-color:transparent;color:#fff}.button.is-primary.is-hovered,.button.is-primary:hover{background-color:#00c4a7;border-color:transparent;color:#fff}.button.is-primary.is-focused,.button.is-primary:focus{border-color:transparent;color:#fff}.button.is-primary.is-focused:not(:active),.button.is-primary:focus:not(:active){box-shadow:0 0 0 .125em rgba(0,209,178,.25)}.button.is-primary.is-active,.button.is-primary:active{background-color:#00b89c;border-color:transparent;color:#fff}.button.is-primary[disabled],fieldset[disabled] .button.is-primary{background-color:#00d1b2;border-color:transparent;box-shadow:none}.button.is-primary.is-inverted{background-color:#fff;color:#00d1b2}.button.is-primary.is-inverted.is-hovered,.button.is-primary.is-inverted:hover{background-color:#f2f2f2}.button.is-primary.is-inverted[disabled],fieldset[disabled] .button.is-primary.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#00d1b2}.button.is-primary.is-loading::after{border-color:transparent transparent #fff #fff!important}.button.is-primary.is-outlined{background-color:transparent;border-color:#00d1b2;color:#00d1b2}.button.is-primary.is-outlined.is-focused,.button.is-primary.is-outlined.is-hovered,.button.is-primary.is-outlined:focus,.button.is-primary.is-outlined:hover{background-color:#00d1b2;border-color:#00d1b2;color:#fff}.button.is-primary.is-outlined.is-loading::after{border-color:transparent transparent #00d1b2 #00d1b2!important}.button.is-primary.is-outlined.is-loading.is-focused::after,.button.is-primary.is-outlined.is-loading.is-hovered::after,.button.is-primary.is-outlined.is-loading:focus::after,.button.is-primary.is-outlined.is-loading:hover::after{border-color:transparent transparent #fff #fff!important}.button.is-primary.is-outlined[disabled],fieldset[disabled] .button.is-primary.is-outlined{background-color:transparent;border-color:#00d1b2;box-shadow:none;color:#00d1b2}.button.is-primary.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-primary.is-inverted.is-outlined.is-focused,.button.is-primary.is-inverted.is-outlined.is-hovered,.button.is-primary.is-inverted.is-outlined:focus,.button.is-primary.is-inverted.is-outlined:hover{background-color:#fff;color:#00d1b2}.button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after,.button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-primary.is-inverted.is-outlined.is-loading:focus::after,.button.is-primary.is-inverted.is-outlined.is-loading:hover::after{border-color:transparent transparent #00d1b2 #00d1b2!important}.button.is-primary.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-primary.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-primary.is-light{background-color:#ebfffc;color:#00947e}.button.is-primary.is-light.is-hovered,.button.is-primary.is-light:hover{background-color:#defffa;border-color:transparent;color:#00947e}.button.is-primary.is-light.is-active,.button.is-primary.is-light:active{background-color:#d1fff8;border-color:transparent;color:#00947e}.button.is-link{background-color:#485fc7;border-color:transparent;color:#fff}.button.is-link.is-hovered,.button.is-link:hover{background-color:#3e56c4;border-color:transparent;color:#fff}.button.is-link.is-focused,.button.is-link:focus{border-color:transparent;color:#fff}.button.is-link.is-focused:not(:active),.button.is-link:focus:not(:active){box-shadow:0 0 0 .125em rgba(72,95,199,.25)}.button.is-link.is-active,.button.is-link:active{background-color:#3a51bb;border-color:transparent;color:#fff}.button.is-link[disabled],fieldset[disabled] .button.is-link{background-color:#485fc7;border-color:transparent;box-shadow:none}.button.is-link.is-inverted{background-color:#fff;color:#485fc7}.button.is-link.is-inverted.is-hovered,.button.is-link.is-inverted:hover{background-color:#f2f2f2}.button.is-link.is-inverted[disabled],fieldset[disabled] .button.is-link.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#485fc7}.button.is-link.is-loading::after{border-color:transparent transparent #fff #fff!important}.button.is-link.is-outlined{background-color:transparent;border-color:#485fc7;color:#485fc7}.button.is-link.is-outlined.is-focused,.button.is-link.is-outlined.is-hovered,.button.is-link.is-outlined:focus,.button.is-link.is-outlined:hover{background-color:#485fc7;border-color:#485fc7;color:#fff}.button.is-link.is-outlined.is-loading::after{border-color:transparent transparent #485fc7 #485fc7!important}.button.is-link.is-outlined.is-loading.is-focused::after,.button.is-link.is-outlined.is-loading.is-hovered::after,.button.is-link.is-outlined.is-loading:focus::after,.button.is-link.is-outlined.is-loading:hover::after{border-color:transparent transparent #fff #fff!important}.button.is-link.is-outlined[disabled],fieldset[disabled] .button.is-link.is-outlined{background-color:transparent;border-color:#485fc7;box-shadow:none;color:#485fc7}.button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-link.is-inverted.is-outlined.is-focused,.button.is-link.is-inverted.is-outlined.is-hovered,.button.is-link.is-inverted.is-outlined:focus,.button.is-link.is-inverted.is-outlined:hover{background-color:#fff;color:#485fc7}.button.is-link.is-inverted.is-outlined.is-loading.is-focused::after,.button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-link.is-inverted.is-outlined.is-loading:focus::after,.button.is-link.is-inverted.is-outlined.is-loading:hover::after{border-color:transparent transparent #485fc7 #485fc7!important}.button.is-link.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-link.is-light{background-color:#eff1fa;color:#3850b7}.button.is-link.is-light.is-hovered,.button.is-link.is-light:hover{background-color:#e6e9f7;border-color:transparent;color:#3850b7}.button.is-link.is-light.is-active,.button.is-link.is-light:active{background-color:#dce0f4;border-color:transparent;color:#3850b7}.button.is-info{background-color:#3e8ed0;border-color:transparent;color:#fff}.button.is-info.is-hovered,.button.is-info:hover{background-color:#3488ce;border-color:transparent;color:#fff}.button.is-info.is-focused,.button.is-info:focus{border-color:transparent;color:#fff}.button.is-info.is-focused:not(:active),.button.is-info:focus:not(:active){box-shadow:0 0 0 .125em rgba(62,142,208,.25)}.button.is-info.is-active,.button.is-info:active{background-color:#3082c5;border-color:transparent;color:#fff}.button.is-info[disabled],fieldset[disabled] .button.is-info{background-color:#3e8ed0;border-color:transparent;box-shadow:none}.button.is-info.is-inverted{background-color:#fff;color:#3e8ed0}.button.is-info.is-inverted.is-hovered,.button.is-info.is-inverted:hover{background-color:#f2f2f2}.button.is-info.is-inverted[disabled],fieldset[disabled] .button.is-info.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#3e8ed0}.button.is-info.is-loading::after{border-color:transparent transparent #fff #fff!important}.button.is-info.is-outlined{background-color:transparent;border-color:#3e8ed0;color:#3e8ed0}.button.is-info.is-outlined.is-focused,.button.is-info.is-outlined.is-hovered,.button.is-info.is-outlined:focus,.button.is-info.is-outlined:hover{background-color:#3e8ed0;border-color:#3e8ed0;color:#fff}.button.is-info.is-outlined.is-loading::after{border-color:transparent transparent #3e8ed0 #3e8ed0!important}.button.is-info.is-outlined.is-loading.is-focused::after,.button.is-info.is-outlined.is-loading.is-hovered::after,.button.is-info.is-outlined.is-loading:focus::after,.button.is-info.is-outlined.is-loading:hover::after{border-color:transparent transparent #fff #fff!important}.button.is-info.is-outlined[disabled],fieldset[disabled] .button.is-info.is-outlined{background-color:transparent;border-color:#3e8ed0;box-shadow:none;color:#3e8ed0}.button.is-info.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-info.is-inverted.is-outlined.is-focused,.button.is-info.is-inverted.is-outlined.is-hovered,.button.is-info.is-inverted.is-outlined:focus,.button.is-info.is-inverted.is-outlined:hover{background-color:#fff;color:#3e8ed0}.button.is-info.is-inverted.is-outlined.is-loading.is-focused::after,.button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-info.is-inverted.is-outlined.is-loading:focus::after,.button.is-info.is-inverted.is-outlined.is-loading:hover::after{border-color:transparent transparent #3e8ed0 #3e8ed0!important}.button.is-info.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-info.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-info.is-light{background-color:#eff5fb;color:#296fa8}.button.is-info.is-light.is-hovered,.button.is-info.is-light:hover{background-color:#e4eff9;border-color:transparent;color:#296fa8}.button.is-info.is-light.is-active,.button.is-info.is-light:active{background-color:#dae9f6;border-color:transparent;color:#296fa8}.button.is-success{background-color:#48c78e;border-color:transparent;color:#fff}.button.is-success.is-hovered,.button.is-success:hover{background-color:#3ec487;border-color:transparent;color:#fff}.button.is-success.is-focused,.button.is-success:focus{border-color:transparent;color:#fff}.button.is-success.is-focused:not(:active),.button.is-success:focus:not(:active){box-shadow:0 0 0 .125em rgba(72,199,142,.25)}.button.is-success.is-active,.button.is-success:active{background-color:#3abb81;border-color:transparent;color:#fff}.button.is-success[disabled],fieldset[disabled] .button.is-success{background-color:#48c78e;border-color:transparent;box-shadow:none}.button.is-success.is-inverted{background-color:#fff;color:#48c78e}.button.is-success.is-inverted.is-hovered,.button.is-success.is-inverted:hover{background-color:#f2f2f2}.button.is-success.is-inverted[disabled],fieldset[disabled] .button.is-success.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#48c78e}.button.is-success.is-loading::after{border-color:transparent transparent #fff #fff!important}.button.is-success.is-outlined{background-color:transparent;border-color:#48c78e;color:#48c78e}.button.is-success.is-outlined.is-focused,.button.is-success.is-outlined.is-hovered,.button.is-success.is-outlined:focus,.button.is-success.is-outlined:hover{background-color:#48c78e;border-color:#48c78e;color:#fff}.button.is-success.is-outlined.is-loading::after{border-color:transparent transparent #48c78e #48c78e!important}.button.is-success.is-outlined.is-loading.is-focused::after,.button.is-success.is-outlined.is-loading.is-hovered::after,.button.is-success.is-outlined.is-loading:focus::after,.button.is-success.is-outlined.is-loading:hover::after{border-color:transparent transparent #fff #fff!important}.button.is-success.is-outlined[disabled],fieldset[disabled] .button.is-success.is-outlined{background-color:transparent;border-color:#48c78e;box-shadow:none;color:#48c78e}.button.is-success.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-success.is-inverted.is-outlined.is-focused,.button.is-success.is-inverted.is-outlined.is-hovered,.button.is-success.is-inverted.is-outlined:focus,.button.is-success.is-inverted.is-outlined:hover{background-color:#fff;color:#48c78e}.button.is-success.is-inverted.is-outlined.is-loading.is-focused::after,.button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-success.is-inverted.is-outlined.is-loading:focus::after,.button.is-success.is-inverted.is-outlined.is-loading:hover::after{border-color:transparent transparent #48c78e #48c78e!important}.button.is-success.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-success.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-success.is-light{background-color:#effaf5;color:#257953}.button.is-success.is-light.is-hovered,.button.is-success.is-light:hover{background-color:#e6f7ef;border-color:transparent;color:#257953}.button.is-success.is-light.is-active,.button.is-success.is-light:active{background-color:#dcf4e9;border-color:transparent;color:#257953}.button.is-warning{background-color:#ffe08a;border-color:transparent;color:rgba(0,0,0,.7)}.button.is-warning.is-hovered,.button.is-warning:hover{background-color:#ffdc7d;border-color:transparent;color:rgba(0,0,0,.7)}.button.is-warning.is-focused,.button.is-warning:focus{border-color:transparent;color:rgba(0,0,0,.7)}.button.is-warning.is-focused:not(:active),.button.is-warning:focus:not(:active){box-shadow:0 0 0 .125em rgba(255,224,138,.25)}.button.is-warning.is-active,.button.is-warning:active{background-color:#ffd970;border-color:transparent;color:rgba(0,0,0,.7)}.button.is-warning[disabled],fieldset[disabled] .button.is-warning{background-color:#ffe08a;border-color:transparent;box-shadow:none}.button.is-warning.is-inverted{background-color:rgba(0,0,0,.7);color:#ffe08a}.button.is-warning.is-inverted.is-hovered,.button.is-warning.is-inverted:hover{background-color:rgba(0,0,0,.7)}.button.is-warning.is-inverted[disabled],fieldset[disabled] .button.is-warning.is-inverted{background-color:rgba(0,0,0,.7);border-color:transparent;box-shadow:none;color:#ffe08a}.button.is-warning.is-loading::after{border-color:transparent transparent rgba(0,0,0,.7) rgba(0,0,0,.7)!important}.button.is-warning.is-outlined{background-color:transparent;border-color:#ffe08a;color:#ffe08a}.button.is-warning.is-outlined.is-focused,.button.is-warning.is-outlined.is-hovered,.button.is-warning.is-outlined:focus,.button.is-warning.is-outlined:hover{background-color:#ffe08a;border-color:#ffe08a;color:rgba(0,0,0,.7)}.button.is-warning.is-outlined.is-loading::after{border-color:transparent transparent #ffe08a #ffe08a!important}.button.is-warning.is-outlined.is-loading.is-focused::after,.button.is-warning.is-outlined.is-loading.is-hovered::after,.button.is-warning.is-outlined.is-loading:focus::after,.button.is-warning.is-outlined.is-loading:hover::after{border-color:transparent transparent rgba(0,0,0,.7) rgba(0,0,0,.7)!important}.button.is-warning.is-outlined[disabled],fieldset[disabled] .button.is-warning.is-outlined{background-color:transparent;border-color:#ffe08a;box-shadow:none;color:#ffe08a}.button.is-warning.is-inverted.is-outlined{background-color:transparent;border-color:rgba(0,0,0,.7);color:rgba(0,0,0,.7)}.button.is-warning.is-inverted.is-outlined.is-focused,.button.is-warning.is-inverted.is-outlined.is-hovered,.button.is-warning.is-inverted.is-outlined:focus,.button.is-warning.is-inverted.is-outlined:hover{background-color:rgba(0,0,0,.7);color:#ffe08a}.button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after,.button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-warning.is-inverted.is-outlined.is-loading:focus::after,.button.is-warning.is-inverted.is-outlined.is-loading:hover::after{border-color:transparent transparent #ffe08a #ffe08a!important}.button.is-warning.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-warning.is-inverted.is-outlined{background-color:transparent;border-color:rgba(0,0,0,.7);box-shadow:none;color:rgba(0,0,0,.7)}.button.is-warning.is-light{background-color:#fffaeb;color:#946c00}.button.is-warning.is-light.is-hovered,.button.is-warning.is-light:hover{background-color:#fff6de;border-color:transparent;color:#946c00}.button.is-warning.is-light.is-active,.button.is-warning.is-light:active{background-color:#fff3d1;border-color:transparent;color:#946c00}.button.is-danger{background-color:#f14668;border-color:transparent;color:#fff}.button.is-danger.is-hovered,.button.is-danger:hover{background-color:#f03a5f;border-color:transparent;color:#fff}.button.is-danger.is-focused,.button.is-danger:focus{border-color:transparent;color:#fff}.button.is-danger.is-focused:not(:active),.button.is-danger:focus:not(:active){box-shadow:0 0 0 .125em rgba(241,70,104,.25)}.button.is-danger.is-active,.button.is-danger:active{background-color:#ef2e55;border-color:transparent;color:#fff}.button.is-danger[disabled],fieldset[disabled] .button.is-danger{background-color:#f14668;border-color:transparent;box-shadow:none}.button.is-danger.is-inverted{background-color:#fff;color:#f14668}.button.is-danger.is-inverted.is-hovered,.button.is-danger.is-inverted:hover{background-color:#f2f2f2}.button.is-danger.is-inverted[disabled],fieldset[disabled] .button.is-danger.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#f14668}.button.is-danger.is-loading::after{border-color:transparent transparent #fff #fff!important}.button.is-danger.is-outlined{background-color:transparent;border-color:#f14668;color:#f14668}.button.is-danger.is-outlined.is-focused,.button.is-danger.is-outlined.is-hovered,.button.is-danger.is-outlined:focus,.button.is-danger.is-outlined:hover{background-color:#f14668;border-color:#f14668;color:#fff}.button.is-danger.is-outlined.is-loading::after{border-color:transparent transparent #f14668 #f14668!important}.button.is-danger.is-outlined.is-loading.is-focused::after,.button.is-danger.is-outlined.is-loading.is-hovered::after,.button.is-danger.is-outlined.is-loading:focus::after,.button.is-danger.is-outlined.is-loading:hover::after{border-color:transparent transparent #fff #fff!important}.button.is-danger.is-outlined[disabled],fieldset[disabled] .button.is-danger.is-outlined{background-color:transparent;border-color:#f14668;box-shadow:none;color:#f14668}.button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-danger.is-inverted.is-outlined.is-focused,.button.is-danger.is-inverted.is-outlined.is-hovered,.button.is-danger.is-inverted.is-outlined:focus,.button.is-danger.is-inverted.is-outlined:hover{background-color:#fff;color:#f14668}.button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after,.button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-danger.is-inverted.is-outlined.is-loading:focus::after,.button.is-danger.is-inverted.is-outlined.is-loading:hover::after{border-color:transparent transparent #f14668 #f14668!important}.button.is-danger.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-danger.is-light{background-color:#feecf0;color:#cc0f35}.button.is-danger.is-light.is-hovered,.button.is-danger.is-light:hover{background-color:#fde0e6;border-color:transparent;color:#cc0f35}.button.is-danger.is-light.is-active,.button.is-danger.is-light:active{background-color:#fcd4dc;border-color:transparent;color:#cc0f35}.button.is-small{font-size:.75rem}.button.is-small:not(.is-rounded){border-radius:2px}.button.is-normal{font-size:1rem}.button.is-medium{font-size:1.25rem}.button.is-large{font-size:1.5rem}.button[disabled],fieldset[disabled] .button{background-color:#fff;border-color:#dbdbdb;box-shadow:none;opacity:.5}.button.is-fullwidth{display:flex;width:100%}.button.is-loading{color:transparent!important;pointer-events:none}.button.is-loading::after{position:absolute;left:calc(50% - (1em * .5));top:calc(50% - (1em * .5));position:absolute!important}.button.is-static{background-color:#f5f5f5;border-color:#dbdbdb;color:#7a7a7a;box-shadow:none;pointer-events:none}.button.is-rounded{border-radius:9999px;padding-left:calc(1em + .25em);padding-right:calc(1em + .25em)}.buttons{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}.buttons .button{margin-bottom:.5rem}.buttons .button:not(:last-child):not(.is-fullwidth){margin-right:.5rem}.buttons:last-child{margin-bottom:-.5rem}.buttons:not(:last-child){margin-bottom:1rem}.buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large){font-size:.75rem}.buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large):not(.is-rounded){border-radius:2px}.buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large){font-size:1.25rem}.buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium){font-size:1.5rem}.buttons.has-addons .button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.buttons.has-addons .button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0;margin-right:-1px}.buttons.has-addons .button:last-child{margin-right:0}.buttons.has-addons .button.is-hovered,.buttons.has-addons .button:hover{z-index:2}.buttons.has-addons .button.is-active,.buttons.has-addons .button.is-focused,.buttons.has-addons .button.is-selected,.buttons.has-addons .button:active,.buttons.has-addons .button:focus{z-index:3}.buttons.has-addons .button.is-active:hover,.buttons.has-addons .button.is-focused:hover,.buttons.has-addons .button.is-selected:hover,.buttons.has-addons .button:active:hover,.buttons.has-addons .button:focus:hover{z-index:4}.buttons.has-addons .button.is-expanded{flex-grow:1;flex-shrink:1}.buttons.is-centered{justify-content:center}.buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth){margin-left:.25rem;margin-right:.25rem}.buttons.is-right{justify-content:flex-end}.buttons.is-right:not(.has-addons) .button:not(.is-fullwidth){margin-left:.25rem;margin-right:.25rem}.container{flex-grow:1;margin:0 auto;position:relative;width:auto}.container.is-fluid{max-width:none!important;padding-left:32px;padding-right:32px;width:100%}@media screen and (min-width:1024px){.container{max-width:960px}}@media screen and (max-width:1215px){.container.is-widescreen:not(.is-max-desktop){max-width:1152px}}@media screen and (max-width:1407px){.container.is-fullhd:not(.is-max-desktop):not(.is-max-widescreen){max-width:1344px}}@media screen and (min-width:1216px){.container:not(.is-max-desktop){max-width:1152px}}@media screen and (min-width:1408px){.container:not(.is-max-desktop):not(.is-max-widescreen){max-width:1344px}}.content li+li{margin-top:.25em}.content blockquote:not(:last-child),.content dl:not(:last-child),.content ol:not(:last-child),.content p:not(:last-child),.content pre:not(:last-child),.content table:not(:last-child),.content ul:not(:last-child){margin-bottom:1em}.content h1,.content h2,.content h3,.content h4,.content h5,.content h6{color:#363636;font-weight:600;line-height:1.125}.content h1{font-size:2em;margin-bottom:.5em}.content h1:not(:first-child){margin-top:1em}.content h2{font-size:1.75em;margin-bottom:.5714em}.content h2:not(:first-child){margin-top:1.1428em}.content h3{font-size:1.5em;margin-bottom:.6666em}.content h3:not(:first-child){margin-top:1.3333em}.content h4{font-size:1.25em;margin-bottom:.8em}.content h5{font-size:1.125em;margin-bottom:.8888em}.content h6{font-size:1em;margin-bottom:1em}.content blockquote{background-color:#f5f5f5;border-left:5px solid #dbdbdb;padding:1.25em 1.5em}.content ol{list-style-position:outside;margin-left:2em;margin-top:1em}.content ol:not([type]){list-style-type:decimal}.content ol:not([type]).is-lower-alpha{list-style-type:lower-alpha}.content ol:not([type]).is-lower-roman{list-style-type:lower-roman}.content ol:not([type]).is-upper-alpha{list-style-type:upper-alpha}.content ol:not([type]).is-upper-roman{list-style-type:upper-roman}.content ul{list-style:disc outside;margin-left:2em;margin-top:1em}.content ul ul{list-style-type:circle;margin-top:.5em}.content ul ul ul{list-style-type:square}.content dd{margin-left:2em}.content figure{margin-left:2em;margin-right:2em;text-align:center}.content figure:not(:first-child){margin-top:2em}.content figure:not(:last-child){margin-bottom:2em}.content figure img{display:inline-block}.content figure figcaption{font-style:italic}.content pre{-webkit-overflow-scrolling:touch;overflow-x:auto;padding:1.25em 1.5em;white-space:pre;word-wrap:normal}.content sub,.content sup{font-size:75%}.content table{width:100%}.content table td,.content table th{border:1px solid #dbdbdb;border-width:0 0 1px;padding:.5em .75em;vertical-align:top}.content table th{color:#363636}.content table th:not([align]){text-align:inherit}.content table thead td,.content table thead th{border-width:0 0 2px;color:#363636}.content table tfoot td,.content table tfoot th{border-width:2px 0 0;color:#363636}.content table tbody tr:last-child td,.content table tbody tr:last-child th{border-bottom-width:0}.content .tabs li+li{margin-top:0}.content.is-small{font-size:.75rem}.content.is-normal{font-size:1rem}.content.is-medium{font-size:1.25rem}.content.is-large{font-size:1.5rem}.icon{align-items:center;display:inline-flex;justify-content:center;height:1.5rem;width:1.5rem}.icon.is-small{height:1rem;width:1rem}.icon.is-medium{height:2rem;width:2rem}.icon.is-large{height:3rem;width:3rem}.icon-text{align-items:flex-start;color:inherit;display:inline-flex;flex-wrap:wrap;line-height:1.5rem;vertical-align:top}.icon-text .icon{flex-grow:0;flex-shrink:0}.icon-text .icon:not(:last-child){margin-right:.25em}.icon-text .icon:not(:first-child){margin-left:.25em}div.icon-text{display:flex}.image{display:block;position:relative}.image img{display:block;height:auto;width:100%}.image img.is-rounded{border-radius:9999px}.image.is-fullwidth{width:100%}.image.is-16by9 .has-ratio,.image.is-16by9 img,.image.is-1by1 .has-ratio,.image.is-1by1 img,.image.is-1by2 .has-ratio,.image.is-1by2 img,.image.is-1by3 .has-ratio,.image.is-1by3 img,.image.is-2by1 .has-ratio,.image.is-2by1 img,.image.is-2by3 .has-ratio,.image.is-2by3 img,.image.is-3by1 .has-ratio,.image.is-3by1 img,.image.is-3by2 .has-ratio,.image.is-3by2 img,.image.is-3by4 .has-ratio,.image.is-3by4 img,.image.is-3by5 .has-ratio,.image.is-3by5 img,.image.is-4by3 .has-ratio,.image.is-4by3 img,.image.is-4by5 .has-ratio,.image.is-4by5 img,.image.is-5by3 .has-ratio,.image.is-5by3 img,.image.is-5by4 .has-ratio,.image.is-5by4 img,.image.is-9by16 .has-ratio,.image.is-9by16 img,.image.is-square .has-ratio,.image.is-square img{height:100%;width:100%}.image.is-1by1,.image.is-square{padding-top:100%}.image.is-5by4{padding-top:80%}.image.is-4by3{padding-top:75%}.image.is-3by2{padding-top:66.6666%}.image.is-5by3{padding-top:60%}.image.is-16by9{padding-top:56.25%}.image.is-2by1{padding-top:50%}.image.is-3by1{padding-top:33.3333%}.image.is-4by5{padding-top:125%}.image.is-3by4{padding-top:133.3333%}.image.is-2by3{padding-top:150%}.image.is-3by5{padding-top:166.6666%}.image.is-9by16{padding-top:177.7777%}.image.is-1by2{padding-top:200%}.image.is-1by3{padding-top:300%}.image.is-16x16{height:16px;width:16px}.image.is-24x24{height:24px;width:24px}.image.is-32x32{height:32px;width:32px}.image.is-48x48{height:48px;width:48px}.image.is-64x64{height:64px;width:64px}.image.is-96x96{height:96px;width:96px}.image.is-128x128{height:128px;width:128px}.notification{background-color:#f5f5f5;border-radius:4px;position:relative;padding:1.25rem 2.5rem 1.25rem 1.5rem}.notification a:not(.button):not(.dropdown-item){color:currentColor;text-decoration:underline}.notification strong{color:currentColor}.notification code,.notification pre{background:#fff}.notification pre code{background:0 0}.notification>.delete{right:.5rem;position:absolute;top:.5rem}.notification .content,.notification .subtitle,.notification .title{color:currentColor}.notification.is-white{background-color:#fff;color:#0a0a0a}.notification.is-black{background-color:#0a0a0a;color:#fff}.notification.is-light{background-color:#f5f5f5;color:rgba(0,0,0,.7)}.notification.is-dark{background-color:#363636;color:#fff}.notification.is-primary{background-color:#00d1b2;color:#fff}.notification.is-primary.is-light{background-color:#ebfffc;color:#00947e}.notification.is-link{background-color:#485fc7;color:#fff}.notification.is-link.is-light{background-color:#eff1fa;color:#3850b7}.notification.is-info{background-color:#3e8ed0;color:#fff}.notification.is-info.is-light{background-color:#eff5fb;color:#296fa8}.notification.is-success{background-color:#48c78e;color:#fff}.notification.is-success.is-light{background-color:#effaf5;color:#257953}.notification.is-warning{background-color:#ffe08a;color:rgba(0,0,0,.7)}.notification.is-warning.is-light{background-color:#fffaeb;color:#946c00}.notification.is-danger{background-color:#f14668;color:#fff}.notification.is-danger.is-light{background-color:#feecf0;color:#cc0f35}.progress{-moz-appearance:none;-webkit-appearance:none;border:none;border-radius:9999px;display:block;height:1rem;overflow:hidden;padding:0;width:100%}.progress::-webkit-progress-bar{background-color:#ededed}.progress::-webkit-progress-value{background-color:#4a4a4a}.progress::-moz-progress-bar{background-color:#4a4a4a}.progress::-ms-fill{background-color:#4a4a4a;border:none}.progress.is-white::-webkit-progress-value{background-color:#fff}.progress.is-white::-moz-progress-bar{background-color:#fff}.progress.is-white::-ms-fill{background-color:#fff}.progress.is-white:indeterminate{background-image:linear-gradient(to right,#fff 30%,#ededed 30%)}.progress.is-black::-webkit-progress-value{background-color:#0a0a0a}.progress.is-black::-moz-progress-bar{background-color:#0a0a0a}.progress.is-black::-ms-fill{background-color:#0a0a0a}.progress.is-black:indeterminate{background-image:linear-gradient(to right,#0a0a0a 30%,#ededed 30%)}.progress.is-light::-webkit-progress-value{background-color:#f5f5f5}.progress.is-light::-moz-progress-bar{background-color:#f5f5f5}.progress.is-light::-ms-fill{background-color:#f5f5f5}.progress.is-light:indeterminate{background-image:linear-gradient(to right,#f5f5f5 30%,#ededed 30%)}.progress.is-dark::-webkit-progress-value{background-color:#363636}.progress.is-dark::-moz-progress-bar{background-color:#363636}.progress.is-dark::-ms-fill{background-color:#363636}.progress.is-dark:indeterminate{background-image:linear-gradient(to right,#363636 30%,#ededed 30%)}.progress.is-primary::-webkit-progress-value{background-color:#00d1b2}.progress.is-primary::-moz-progress-bar{background-color:#00d1b2}.progress.is-primary::-ms-fill{background-color:#00d1b2}.progress.is-primary:indeterminate{background-image:linear-gradient(to right,#00d1b2 30%,#ededed 30%)}.progress.is-link::-webkit-progress-value{background-color:#485fc7}.progress.is-link::-moz-progress-bar{background-color:#485fc7}.progress.is-link::-ms-fill{background-color:#485fc7}.progress.is-link:indeterminate{background-image:linear-gradient(to right,#485fc7 30%,#ededed 30%)}.progress.is-info::-webkit-progress-value{background-color:#3e8ed0}.progress.is-info::-moz-progress-bar{background-color:#3e8ed0}.progress.is-info::-ms-fill{background-color:#3e8ed0}.progress.is-info:indeterminate{background-image:linear-gradient(to right,#3e8ed0 30%,#ededed 30%)}.progress.is-success::-webkit-progress-value{background-color:#48c78e}.progress.is-success::-moz-progress-bar{background-color:#48c78e}.progress.is-success::-ms-fill{background-color:#48c78e}.progress.is-success:indeterminate{background-image:linear-gradient(to right,#48c78e 30%,#ededed 30%)}.progress.is-warning::-webkit-progress-value{background-color:#ffe08a}.progress.is-warning::-moz-progress-bar{background-color:#ffe08a}.progress.is-warning::-ms-fill{background-color:#ffe08a}.progress.is-warning:indeterminate{background-image:linear-gradient(to right,#ffe08a 30%,#ededed 30%)}.progress.is-danger::-webkit-progress-value{background-color:#f14668}.progress.is-danger::-moz-progress-bar{background-color:#f14668}.progress.is-danger::-ms-fill{background-color:#f14668}.progress.is-danger:indeterminate{background-image:linear-gradient(to right,#f14668 30%,#ededed 30%)}.progress:indeterminate{-webkit-animation-duration:1.5s;animation-duration:1.5s;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;-webkit-animation-name:moveIndeterminate;animation-name:moveIndeterminate;-webkit-animation-timing-function:linear;animation-timing-function:linear;background-color:#ededed;background-image:linear-gradient(to right,#4a4a4a 30%,#ededed 30%);background-position:top left;background-repeat:no-repeat;background-size:150% 150%}.progress:indeterminate::-webkit-progress-bar{background-color:transparent}.progress:indeterminate::-moz-progress-bar{background-color:transparent}.progress:indeterminate::-ms-fill{animation-name:none}.progress.is-small{height:.75rem}.progress.is-medium{height:1.25rem}.progress.is-large{height:1.5rem}@-webkit-keyframes moveIndeterminate{from{background-position:200% 0}to{background-position:-200% 0}}@keyframes moveIndeterminate{from{background-position:200% 0}to{background-position:-200% 0}}.table{background-color:#fff;color:#363636}.table td,.table th{border:1px solid #dbdbdb;border-width:0 0 1px;padding:.5em .75em;vertical-align:top}.table td.is-white,.table th.is-white{background-color:#fff;border-color:#fff;color:#0a0a0a}.table td.is-black,.table th.is-black{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}.table td.is-light,.table th.is-light{background-color:#f5f5f5;border-color:#f5f5f5;color:rgba(0,0,0,.7)}.table td.is-dark,.table th.is-dark{background-color:#363636;border-color:#363636;color:#fff}.table td.is-primary,.table th.is-primary{background-color:#00d1b2;border-color:#00d1b2;color:#fff}.table td.is-link,.table th.is-link{background-color:#485fc7;border-color:#485fc7;color:#fff}.table td.is-info,.table th.is-info{background-color:#3e8ed0;border-color:#3e8ed0;color:#fff}.table td.is-success,.table th.is-success{background-color:#48c78e;border-color:#48c78e;color:#fff}.table td.is-warning,.table th.is-warning{background-color:#ffe08a;border-color:#ffe08a;color:rgba(0,0,0,.7)}.table td.is-danger,.table th.is-danger{background-color:#f14668;border-color:#f14668;color:#fff}.table td.is-narrow,.table th.is-narrow{white-space:nowrap;width:1%}.table td.is-selected,.table th.is-selected{background-color:#00d1b2;color:#fff}.table td.is-selected a,.table td.is-selected strong,.table th.is-selected a,.table th.is-selected strong{color:currentColor}.table td.is-vcentered,.table th.is-vcentered{vertical-align:middle}.table th{color:#363636}.table th:not([align]){text-align:inherit}.table tr.is-selected{background-color:#00d1b2;color:#fff}.table tr.is-selected a,.table tr.is-selected strong{color:currentColor}.table tr.is-selected td,.table tr.is-selected th{border-color:#fff;color:currentColor}.table thead{background-color:transparent}.table thead td,.table thead th{border-width:0 0 2px;color:#363636}.table tfoot{background-color:transparent}.table tfoot td,.table tfoot th{border-width:2px 0 0;color:#363636}.table tbody{background-color:transparent}.table tbody tr:last-child td,.table tbody tr:last-child th{border-bottom-width:0}.table.is-bordered td,.table.is-bordered th{border-width:1px}.table.is-bordered tr:last-child td,.table.is-bordered tr:last-child th{border-bottom-width:1px}.table.is-fullwidth{width:100%}.table.is-hoverable tbody tr:not(.is-selected):hover{background-color:#fafafa}.table.is-hoverable.is-striped tbody tr:not(.is-selected):hover{background-color:#fafafa}.table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even){background-color:#f5f5f5}.table.is-narrow td,.table.is-narrow th{padding:.25em .5em}.table.is-striped tbody tr:not(.is-selected):nth-child(even){background-color:#fafafa}.table-container{-webkit-overflow-scrolling:touch;overflow:auto;overflow-y:hidden;max-width:100%}.tags{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}.tags .tag{margin-bottom:.5rem}.tags .tag:not(:last-child){margin-right:.5rem}.tags:last-child{margin-bottom:-.5rem}.tags:not(:last-child){margin-bottom:1rem}.tags.are-medium .tag:not(.is-normal):not(.is-large){font-size:1rem}.tags.are-large .tag:not(.is-normal):not(.is-medium){font-size:1.25rem}.tags.is-centered{justify-content:center}.tags.is-centered .tag{margin-right:.25rem;margin-left:.25rem}.tags.is-right{justify-content:flex-end}.tags.is-right .tag:not(:first-child){margin-left:.5rem}.tags.is-right .tag:not(:last-child){margin-right:0}.tags.has-addons .tag{margin-right:0}.tags.has-addons .tag:not(:first-child){margin-left:0;border-top-left-radius:0;border-bottom-left-radius:0}.tags.has-addons .tag:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.tag:not(body){align-items:center;background-color:#f5f5f5;border-radius:4px;color:#4a4a4a;display:inline-flex;font-size:.75rem;height:2em;justify-content:center;line-height:1.5;padding-left:.75em;padding-right:.75em;white-space:nowrap}.tag:not(body) .delete{margin-left:.25rem;margin-right:-.375rem}.tag:not(body).is-white{background-color:#fff;color:#0a0a0a}.tag:not(body).is-black{background-color:#0a0a0a;color:#fff}.tag:not(body).is-light{background-color:#f5f5f5;color:rgba(0,0,0,.7)}.tag:not(body).is-dark{background-color:#363636;color:#fff}.tag:not(body).is-primary{background-color:#00d1b2;color:#fff}.tag:not(body).is-primary.is-light{background-color:#ebfffc;color:#00947e}.tag:not(body).is-link{background-color:#485fc7;color:#fff}.tag:not(body).is-link.is-light{background-color:#eff1fa;color:#3850b7}.tag:not(body).is-info{background-color:#3e8ed0;color:#fff}.tag:not(body).is-info.is-light{background-color:#eff5fb;color:#296fa8}.tag:not(body).is-success{background-color:#48c78e;color:#fff}.tag:not(body).is-success.is-light{background-color:#effaf5;color:#257953}.tag:not(body).is-warning{background-color:#ffe08a;color:rgba(0,0,0,.7)}.tag:not(body).is-warning.is-light{background-color:#fffaeb;color:#946c00}.tag:not(body).is-danger{background-color:#f14668;color:#fff}.tag:not(body).is-danger.is-light{background-color:#feecf0;color:#cc0f35}.tag:not(body).is-normal{font-size:.75rem}.tag:not(body).is-medium{font-size:1rem}.tag:not(body).is-large{font-size:1.25rem}.tag:not(body) .icon:first-child:not(:last-child){margin-left:-.375em;margin-right:.1875em}.tag:not(body) .icon:last-child:not(:first-child){margin-left:.1875em;margin-right:-.375em}.tag:not(body) .icon:first-child:last-child{margin-left:-.375em;margin-right:-.375em}.tag:not(body).is-delete{margin-left:1px;padding:0;position:relative;width:2em}.tag:not(body).is-delete::after,.tag:not(body).is-delete::before{background-color:currentColor;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}.tag:not(body).is-delete::before{height:1px;width:50%}.tag:not(body).is-delete::after{height:50%;width:1px}.tag:not(body).is-delete:focus,.tag:not(body).is-delete:hover{background-color:#e8e8e8}.tag:not(body).is-delete:active{background-color:#dbdbdb}.tag:not(body).is-rounded{border-radius:9999px}a.tag:hover{text-decoration:underline}.subtitle,.title{word-break:break-word}.subtitle em,.subtitle span,.title em,.title span{font-weight:inherit}.subtitle sub,.title sub{font-size:.75em}.subtitle sup,.title sup{font-size:.75em}.subtitle .tag,.title .tag{vertical-align:middle}.title{color:#363636;font-size:2rem;font-weight:600;line-height:1.125}.title strong{color:inherit;font-weight:inherit}.title:not(.is-spaced)+.subtitle{margin-top:-1.25rem}.title.is-1{font-size:3rem}.title.is-2{font-size:2.5rem}.title.is-3{font-size:2rem}.title.is-4{font-size:1.5rem}.title.is-5{font-size:1.25rem}.title.is-6{font-size:1rem}.title.is-7{font-size:.75rem}.subtitle{color:#4a4a4a;font-size:1.25rem;font-weight:400;line-height:1.25}.subtitle strong{color:#363636;font-weight:600}.subtitle:not(.is-spaced)+.title{margin-top:-1.25rem}.subtitle.is-1{font-size:3rem}.subtitle.is-2{font-size:2.5rem}.subtitle.is-3{font-size:2rem}.subtitle.is-4{font-size:1.5rem}.subtitle.is-5{font-size:1.25rem}.subtitle.is-6{font-size:1rem}.subtitle.is-7{font-size:.75rem}.heading{display:block;font-size:11px;letter-spacing:1px;margin-bottom:5px;text-transform:uppercase}.number{align-items:center;background-color:#f5f5f5;border-radius:9999px;display:inline-flex;font-size:1.25rem;height:2em;justify-content:center;margin-right:1.5rem;min-width:2.5em;padding:.25rem .5rem;text-align:center;vertical-align:top}.input,.select select,.textarea{background-color:#fff;border-color:#dbdbdb;border-radius:4px;color:#363636}.input::-moz-placeholder,.select select::-moz-placeholder,.textarea::-moz-placeholder{color:rgba(54,54,54,.3)}.input::-webkit-input-placeholder,.select select::-webkit-input-placeholder,.textarea::-webkit-input-placeholder{color:rgba(54,54,54,.3)}.input:-moz-placeholder,.select select:-moz-placeholder,.textarea:-moz-placeholder{color:rgba(54,54,54,.3)}.input:-ms-input-placeholder,.select select:-ms-input-placeholder,.textarea:-ms-input-placeholder{color:rgba(54,54,54,.3)}.input:hover,.is-hovered.input,.is-hovered.textarea,.select select.is-hovered,.select select:hover,.textarea:hover{border-color:#b5b5b5}.input:active,.input:focus,.is-active.input,.is-active.textarea,.is-focused.input,.is-focused.textarea,.select select.is-active,.select select.is-focused,.select select:active,.select select:focus,.textarea:active,.textarea:focus{border-color:#485fc7;box-shadow:0 0 0 .125em rgba(72,95,199,.25)}.input[disabled],.select fieldset[disabled] select,.select select[disabled],.textarea[disabled],fieldset[disabled] .input,fieldset[disabled] .select select,fieldset[disabled] .textarea{background-color:#f5f5f5;border-color:#f5f5f5;box-shadow:none;color:#7a7a7a}.input[disabled]::-moz-placeholder,.select fieldset[disabled] select::-moz-placeholder,.select select[disabled]::-moz-placeholder,.textarea[disabled]::-moz-placeholder,fieldset[disabled] .input::-moz-placeholder,fieldset[disabled] .select select::-moz-placeholder,fieldset[disabled] .textarea::-moz-placeholder{color:rgba(122,122,122,.3)}.input[disabled]::-webkit-input-placeholder,.select fieldset[disabled] select::-webkit-input-placeholder,.select select[disabled]::-webkit-input-placeholder,.textarea[disabled]::-webkit-input-placeholder,fieldset[disabled] .input::-webkit-input-placeholder,fieldset[disabled] .select select::-webkit-input-placeholder,fieldset[disabled] .textarea::-webkit-input-placeholder{color:rgba(122,122,122,.3)}.input[disabled]:-moz-placeholder,.select fieldset[disabled] select:-moz-placeholder,.select select[disabled]:-moz-placeholder,.textarea[disabled]:-moz-placeholder,fieldset[disabled] .input:-moz-placeholder,fieldset[disabled] .select select:-moz-placeholder,fieldset[disabled] .textarea:-moz-placeholder{color:rgba(122,122,122,.3)}.input[disabled]:-ms-input-placeholder,.select fieldset[disabled] select:-ms-input-placeholder,.select select[disabled]:-ms-input-placeholder,.textarea[disabled]:-ms-input-placeholder,fieldset[disabled] .input:-ms-input-placeholder,fieldset[disabled] .select select:-ms-input-placeholder,fieldset[disabled] .textarea:-ms-input-placeholder{color:rgba(122,122,122,.3)}.input,.textarea{box-shadow:inset 0 .0625em .125em rgba(10,10,10,.05);max-width:100%;width:100%}.input[readonly],.textarea[readonly]{box-shadow:none}.is-white.input,.is-white.textarea{border-color:#fff}.is-white.input:active,.is-white.input:focus,.is-white.is-active.input,.is-white.is-active.textarea,.is-white.is-focused.input,.is-white.is-focused.textarea,.is-white.textarea:active,.is-white.textarea:focus{box-shadow:0 0 0 .125em rgba(255,255,255,.25)}.is-black.input,.is-black.textarea{border-color:#0a0a0a}.is-black.input:active,.is-black.input:focus,.is-black.is-active.input,.is-black.is-active.textarea,.is-black.is-focused.input,.is-black.is-focused.textarea,.is-black.textarea:active,.is-black.textarea:focus{box-shadow:0 0 0 .125em rgba(10,10,10,.25)}.is-light.input,.is-light.textarea{border-color:#f5f5f5}.is-light.input:active,.is-light.input:focus,.is-light.is-active.input,.is-light.is-active.textarea,.is-light.is-focused.input,.is-light.is-focused.textarea,.is-light.textarea:active,.is-light.textarea:focus{box-shadow:0 0 0 .125em rgba(245,245,245,.25)}.is-dark.input,.is-dark.textarea{border-color:#363636}.is-dark.input:active,.is-dark.input:focus,.is-dark.is-active.input,.is-dark.is-active.textarea,.is-dark.is-focused.input,.is-dark.is-focused.textarea,.is-dark.textarea:active,.is-dark.textarea:focus{box-shadow:0 0 0 .125em rgba(54,54,54,.25)}.is-primary.input,.is-primary.textarea{border-color:#00d1b2}.is-primary.input:active,.is-primary.input:focus,.is-primary.is-active.input,.is-primary.is-active.textarea,.is-primary.is-focused.input,.is-primary.is-focused.textarea,.is-primary.textarea:active,.is-primary.textarea:focus{box-shadow:0 0 0 .125em rgba(0,209,178,.25)}.is-link.input,.is-link.textarea{border-color:#485fc7}.is-link.input:active,.is-link.input:focus,.is-link.is-active.input,.is-link.is-active.textarea,.is-link.is-focused.input,.is-link.is-focused.textarea,.is-link.textarea:active,.is-link.textarea:focus{box-shadow:0 0 0 .125em rgba(72,95,199,.25)}.is-info.input,.is-info.textarea{border-color:#3e8ed0}.is-info.input:active,.is-info.input:focus,.is-info.is-active.input,.is-info.is-active.textarea,.is-info.is-focused.input,.is-info.is-focused.textarea,.is-info.textarea:active,.is-info.textarea:focus{box-shadow:0 0 0 .125em rgba(62,142,208,.25)}.is-success.input,.is-success.textarea{border-color:#48c78e}.is-success.input:active,.is-success.input:focus,.is-success.is-active.input,.is-success.is-active.textarea,.is-success.is-focused.input,.is-success.is-focused.textarea,.is-success.textarea:active,.is-success.textarea:focus{box-shadow:0 0 0 .125em rgba(72,199,142,.25)}.is-warning.input,.is-warning.textarea{border-color:#ffe08a}.is-warning.input:active,.is-warning.input:focus,.is-warning.is-active.input,.is-warning.is-active.textarea,.is-warning.is-focused.input,.is-warning.is-focused.textarea,.is-warning.textarea:active,.is-warning.textarea:focus{box-shadow:0 0 0 .125em rgba(255,224,138,.25)}.is-danger.input,.is-danger.textarea{border-color:#f14668}.is-danger.input:active,.is-danger.input:focus,.is-danger.is-active.input,.is-danger.is-active.textarea,.is-danger.is-focused.input,.is-danger.is-focused.textarea,.is-danger.textarea:active,.is-danger.textarea:focus{box-shadow:0 0 0 .125em rgba(241,70,104,.25)}.is-small.input,.is-small.textarea{border-radius:2px;font-size:.75rem}.is-medium.input,.is-medium.textarea{font-size:1.25rem}.is-large.input,.is-large.textarea{font-size:1.5rem}.is-fullwidth.input,.is-fullwidth.textarea{display:block;width:100%}.is-inline.input,.is-inline.textarea{display:inline;width:auto}.input.is-rounded{border-radius:9999px;padding-left:calc(calc(.75em - 1px) + .375em);padding-right:calc(calc(.75em - 1px) + .375em)}.input.is-static{background-color:transparent;border-color:transparent;box-shadow:none;padding-left:0;padding-right:0}.textarea{display:block;max-width:100%;min-width:100%;padding:calc(.75em - 1px);resize:vertical}.textarea:not([rows]){max-height:40em;min-height:8em}.textarea[rows]{height:initial}.textarea.has-fixed-size{resize:none}.checkbox,.radio{cursor:pointer;display:inline-block;line-height:1.25;position:relative}.checkbox input,.radio input{cursor:pointer}.checkbox:hover,.radio:hover{color:#363636}.checkbox input[disabled],.checkbox[disabled],.radio input[disabled],.radio[disabled],fieldset[disabled] .checkbox,fieldset[disabled] .radio{color:#7a7a7a;cursor:not-allowed}.radio+.radio{margin-left:.5em}.select{display:inline-block;max-width:100%;position:relative;vertical-align:top}.select:not(.is-multiple){height:2.5em}.select:not(.is-multiple):not(.is-loading)::after{border-color:#485fc7;right:1.125em;z-index:4}.select.is-rounded select{border-radius:9999px;padding-left:1em}.select select{cursor:pointer;display:block;font-size:1em;max-width:100%;outline:0}.select select::-ms-expand{display:none}.select select[disabled]:hover,fieldset[disabled] .select select:hover{border-color:#f5f5f5}.select select:not([multiple]){padding-right:2.5em}.select select[multiple]{height:auto;padding:0}.select select[multiple] option{padding:.5em 1em}.select:not(.is-multiple):not(.is-loading):hover::after{border-color:#363636}.select.is-white:not(:hover)::after{border-color:#fff}.select.is-white select{border-color:#fff}.select.is-white select.is-hovered,.select.is-white select:hover{border-color:#f2f2f2}.select.is-white select.is-active,.select.is-white select.is-focused,.select.is-white select:active,.select.is-white select:focus{box-shadow:0 0 0 .125em rgba(255,255,255,.25)}.select.is-black:not(:hover)::after{border-color:#0a0a0a}.select.is-black select{border-color:#0a0a0a}.select.is-black select.is-hovered,.select.is-black select:hover{border-color:#000}.select.is-black select.is-active,.select.is-black select.is-focused,.select.is-black select:active,.select.is-black select:focus{box-shadow:0 0 0 .125em rgba(10,10,10,.25)}.select.is-light:not(:hover)::after{border-color:#f5f5f5}.select.is-light select{border-color:#f5f5f5}.select.is-light select.is-hovered,.select.is-light select:hover{border-color:#e8e8e8}.select.is-light select.is-active,.select.is-light select.is-focused,.select.is-light select:active,.select.is-light select:focus{box-shadow:0 0 0 .125em rgba(245,245,245,.25)}.select.is-dark:not(:hover)::after{border-color:#363636}.select.is-dark select{border-color:#363636}.select.is-dark select.is-hovered,.select.is-dark select:hover{border-color:#292929}.select.is-dark select.is-active,.select.is-dark select.is-focused,.select.is-dark select:active,.select.is-dark select:focus{box-shadow:0 0 0 .125em rgba(54,54,54,.25)}.select.is-primary:not(:hover)::after{border-color:#00d1b2}.select.is-primary select{border-color:#00d1b2}.select.is-primary select.is-hovered,.select.is-primary select:hover{border-color:#00b89c}.select.is-primary select.is-active,.select.is-primary select.is-focused,.select.is-primary select:active,.select.is-primary select:focus{box-shadow:0 0 0 .125em rgba(0,209,178,.25)}.select.is-link:not(:hover)::after{border-color:#485fc7}.select.is-link select{border-color:#485fc7}.select.is-link select.is-hovered,.select.is-link select:hover{border-color:#3a51bb}.select.is-link select.is-active,.select.is-link select.is-focused,.select.is-link select:active,.select.is-link select:focus{box-shadow:0 0 0 .125em rgba(72,95,199,.25)}.select.is-info:not(:hover)::after{border-color:#3e8ed0}.select.is-info select{border-color:#3e8ed0}.select.is-info select.is-hovered,.select.is-info select:hover{border-color:#3082c5}.select.is-info select.is-active,.select.is-info select.is-focused,.select.is-info select:active,.select.is-info select:focus{box-shadow:0 0 0 .125em rgba(62,142,208,.25)}.select.is-success:not(:hover)::after{border-color:#48c78e}.select.is-success select{border-color:#48c78e}.select.is-success select.is-hovered,.select.is-success select:hover{border-color:#3abb81}.select.is-success select.is-active,.select.is-success select.is-focused,.select.is-success select:active,.select.is-success select:focus{box-shadow:0 0 0 .125em rgba(72,199,142,.25)}.select.is-warning:not(:hover)::after{border-color:#ffe08a}.select.is-warning select{border-color:#ffe08a}.select.is-warning select.is-hovered,.select.is-warning select:hover{border-color:#ffd970}.select.is-warning select.is-active,.select.is-warning select.is-focused,.select.is-warning select:active,.select.is-warning select:focus{box-shadow:0 0 0 .125em rgba(255,224,138,.25)}.select.is-danger:not(:hover)::after{border-color:#f14668}.select.is-danger select{border-color:#f14668}.select.is-danger select.is-hovered,.select.is-danger select:hover{border-color:#ef2e55}.select.is-danger select.is-active,.select.is-danger select.is-focused,.select.is-danger select:active,.select.is-danger select:focus{box-shadow:0 0 0 .125em rgba(241,70,104,.25)}.select.is-small{border-radius:2px;font-size:.75rem}.select.is-medium{font-size:1.25rem}.select.is-large{font-size:1.5rem}.select.is-disabled::after{border-color:#7a7a7a}.select.is-fullwidth{width:100%}.select.is-fullwidth select{width:100%}.select.is-loading::after{margin-top:0;position:absolute;right:.625em;top:.625em;transform:none}.select.is-loading.is-small:after{font-size:.75rem}.select.is-loading.is-medium:after{font-size:1.25rem}.select.is-loading.is-large:after{font-size:1.5rem}.file{align-items:stretch;display:flex;justify-content:flex-start;position:relative}.file.is-white .file-cta{background-color:#fff;border-color:transparent;color:#0a0a0a}.file.is-white.is-hovered .file-cta,.file.is-white:hover .file-cta{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}.file.is-white.is-focused .file-cta,.file.is-white:focus .file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(255,255,255,.25);color:#0a0a0a}.file.is-white.is-active .file-cta,.file.is-white:active .file-cta{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}.file.is-black .file-cta{background-color:#0a0a0a;border-color:transparent;color:#fff}.file.is-black.is-hovered .file-cta,.file.is-black:hover .file-cta{background-color:#040404;border-color:transparent;color:#fff}.file.is-black.is-focused .file-cta,.file.is-black:focus .file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(10,10,10,.25);color:#fff}.file.is-black.is-active .file-cta,.file.is-black:active .file-cta{background-color:#000;border-color:transparent;color:#fff}.file.is-light .file-cta{background-color:#f5f5f5;border-color:transparent;color:rgba(0,0,0,.7)}.file.is-light.is-hovered .file-cta,.file.is-light:hover .file-cta{background-color:#eee;border-color:transparent;color:rgba(0,0,0,.7)}.file.is-light.is-focused .file-cta,.file.is-light:focus .file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(245,245,245,.25);color:rgba(0,0,0,.7)}.file.is-light.is-active .file-cta,.file.is-light:active .file-cta{background-color:#e8e8e8;border-color:transparent;color:rgba(0,0,0,.7)}.file.is-dark .file-cta{background-color:#363636;border-color:transparent;color:#fff}.file.is-dark.is-hovered .file-cta,.file.is-dark:hover .file-cta{background-color:#2f2f2f;border-color:transparent;color:#fff}.file.is-dark.is-focused .file-cta,.file.is-dark:focus .file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(54,54,54,.25);color:#fff}.file.is-dark.is-active .file-cta,.file.is-dark:active .file-cta{background-color:#292929;border-color:transparent;color:#fff}.file.is-primary .file-cta{background-color:#00d1b2;border-color:transparent;color:#fff}.file.is-primary.is-hovered .file-cta,.file.is-primary:hover .file-cta{background-color:#00c4a7;border-color:transparent;color:#fff}.file.is-primary.is-focused .file-cta,.file.is-primary:focus .file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(0,209,178,.25);color:#fff}.file.is-primary.is-active .file-cta,.file.is-primary:active .file-cta{background-color:#00b89c;border-color:transparent;color:#fff}.file.is-link .file-cta{background-color:#485fc7;border-color:transparent;color:#fff}.file.is-link.is-hovered .file-cta,.file.is-link:hover .file-cta{background-color:#3e56c4;border-color:transparent;color:#fff}.file.is-link.is-focused .file-cta,.file.is-link:focus .file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(72,95,199,.25);color:#fff}.file.is-link.is-active .file-cta,.file.is-link:active .file-cta{background-color:#3a51bb;border-color:transparent;color:#fff}.file.is-info .file-cta{background-color:#3e8ed0;border-color:transparent;color:#fff}.file.is-info.is-hovered .file-cta,.file.is-info:hover .file-cta{background-color:#3488ce;border-color:transparent;color:#fff}.file.is-info.is-focused .file-cta,.file.is-info:focus .file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(62,142,208,.25);color:#fff}.file.is-info.is-active .file-cta,.file.is-info:active .file-cta{background-color:#3082c5;border-color:transparent;color:#fff}.file.is-success .file-cta{background-color:#48c78e;border-color:transparent;color:#fff}.file.is-success.is-hovered .file-cta,.file.is-success:hover .file-cta{background-color:#3ec487;border-color:transparent;color:#fff}.file.is-success.is-focused .file-cta,.file.is-success:focus .file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(72,199,142,.25);color:#fff}.file.is-success.is-active .file-cta,.file.is-success:active .file-cta{background-color:#3abb81;border-color:transparent;color:#fff}.file.is-warning .file-cta{background-color:#ffe08a;border-color:transparent;color:rgba(0,0,0,.7)}.file.is-warning.is-hovered .file-cta,.file.is-warning:hover .file-cta{background-color:#ffdc7d;border-color:transparent;color:rgba(0,0,0,.7)}.file.is-warning.is-focused .file-cta,.file.is-warning:focus .file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(255,224,138,.25);color:rgba(0,0,0,.7)}.file.is-warning.is-active .file-cta,.file.is-warning:active .file-cta{background-color:#ffd970;border-color:transparent;color:rgba(0,0,0,.7)}.file.is-danger .file-cta{background-color:#f14668;border-color:transparent;color:#fff}.file.is-danger.is-hovered .file-cta,.file.is-danger:hover .file-cta{background-color:#f03a5f;border-color:transparent;color:#fff}.file.is-danger.is-focused .file-cta,.file.is-danger:focus .file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(241,70,104,.25);color:#fff}.file.is-danger.is-active .file-cta,.file.is-danger:active .file-cta{background-color:#ef2e55;border-color:transparent;color:#fff}.file.is-small{font-size:.75rem}.file.is-normal{font-size:1rem}.file.is-medium{font-size:1.25rem}.file.is-medium .file-icon .fa{font-size:21px}.file.is-large{font-size:1.5rem}.file.is-large .file-icon .fa{font-size:28px}.file.has-name .file-cta{border-bottom-right-radius:0;border-top-right-radius:0}.file.has-name .file-name{border-bottom-left-radius:0;border-top-left-radius:0}.file.has-name.is-empty .file-cta{border-radius:4px}.file.has-name.is-empty .file-name{display:none}.file.is-boxed .file-label{flex-direction:column}.file.is-boxed .file-cta{flex-direction:column;height:auto;padding:1em 3em}.file.is-boxed .file-name{border-width:0 1px 1px}.file.is-boxed .file-icon{height:1.5em;width:1.5em}.file.is-boxed .file-icon .fa{font-size:21px}.file.is-boxed.is-small .file-icon .fa{font-size:14px}.file.is-boxed.is-medium .file-icon .fa{font-size:28px}.file.is-boxed.is-large .file-icon .fa{font-size:35px}.file.is-boxed.has-name .file-cta{border-radius:4px 4px 0 0}.file.is-boxed.has-name .file-name{border-radius:0 0 4px 4px;border-width:0 1px 1px}.file.is-centered{justify-content:center}.file.is-fullwidth .file-label{width:100%}.file.is-fullwidth .file-name{flex-grow:1;max-width:none}.file.is-right{justify-content:flex-end}.file.is-right .file-cta{border-radius:0 4px 4px 0}.file.is-right .file-name{border-radius:4px 0 0 4px;border-width:1px 0 1px 1px;order:-1}.file-label{align-items:stretch;display:flex;cursor:pointer;justify-content:flex-start;overflow:hidden;position:relative}.file-label:hover .file-cta{background-color:#eee;color:#363636}.file-label:hover .file-name{border-color:#d5d5d5}.file-label:active .file-cta{background-color:#e8e8e8;color:#363636}.file-label:active .file-name{border-color:#cfcfcf}.file-input{height:100%;left:0;opacity:0;outline:0;position:absolute;top:0;width:100%}.file-cta,.file-name{border-color:#dbdbdb;border-radius:4px;font-size:1em;padding-left:1em;padding-right:1em;white-space:nowrap}.file-cta{background-color:#f5f5f5;color:#4a4a4a}.file-name{border-color:#dbdbdb;border-style:solid;border-width:1px 1px 1px 0;display:block;max-width:16em;overflow:hidden;text-align:inherit;text-overflow:ellipsis}.file-icon{align-items:center;display:flex;height:1em;justify-content:center;margin-right:.5em;width:1em}.file-icon .fa{font-size:14px}.label{color:#363636;display:block;font-size:1rem;font-weight:700}.label:not(:last-child){margin-bottom:.5em}.label.is-small{font-size:.75rem}.label.is-medium{font-size:1.25rem}.label.is-large{font-size:1.5rem}.help{display:block;font-size:.75rem;margin-top:.25rem}.help.is-white{color:#fff}.help.is-black{color:#0a0a0a}.help.is-light{color:#f5f5f5}.help.is-dark{color:#363636}.help.is-primary{color:#00d1b2}.help.is-link{color:#485fc7}.help.is-info{color:#3e8ed0}.help.is-success{color:#48c78e}.help.is-warning{color:#ffe08a}.help.is-danger{color:#f14668}.field:not(:last-child){margin-bottom:.75rem}.field.has-addons{display:flex;justify-content:flex-start}.field.has-addons .control:not(:last-child){margin-right:-1px}.field.has-addons .control:not(:first-child):not(:last-child) .button,.field.has-addons .control:not(:first-child):not(:last-child) .input,.field.has-addons .control:not(:first-child):not(:last-child) .select select{border-radius:0}.field.has-addons .control:first-child:not(:only-child) .button,.field.has-addons .control:first-child:not(:only-child) .input,.field.has-addons .control:first-child:not(:only-child) .select select{border-bottom-right-radius:0;border-top-right-radius:0}.field.has-addons .control:last-child:not(:only-child) .button,.field.has-addons .control:last-child:not(:only-child) .input,.field.has-addons .control:last-child:not(:only-child) .select select{border-bottom-left-radius:0;border-top-left-radius:0}.field.has-addons .control .button:not([disabled]).is-hovered,.field.has-addons .control .button:not([disabled]):hover,.field.has-addons .control .input:not([disabled]).is-hovered,.field.has-addons .control .input:not([disabled]):hover,.field.has-addons .control .select select:not([disabled]).is-hovered,.field.has-addons .control .select select:not([disabled]):hover{z-index:2}.field.has-addons .control .button:not([disabled]).is-active,.field.has-addons .control .button:not([disabled]).is-focused,.field.has-addons .control .button:not([disabled]):active,.field.has-addons .control .button:not([disabled]):focus,.field.has-addons .control .input:not([disabled]).is-active,.field.has-addons .control .input:not([disabled]).is-focused,.field.has-addons .control .input:not([disabled]):active,.field.has-addons .control .input:not([disabled]):focus,.field.has-addons .control .select select:not([disabled]).is-active,.field.has-addons .control .select select:not([disabled]).is-focused,.field.has-addons .control .select select:not([disabled]):active,.field.has-addons .control .select select:not([disabled]):focus{z-index:3}.field.has-addons .control .button:not([disabled]).is-active:hover,.field.has-addons .control .button:not([disabled]).is-focused:hover,.field.has-addons .control .button:not([disabled]):active:hover,.field.has-addons .control .button:not([disabled]):focus:hover,.field.has-addons .control .input:not([disabled]).is-active:hover,.field.has-addons .control .input:not([disabled]).is-focused:hover,.field.has-addons .control .input:not([disabled]):active:hover,.field.has-addons .control .input:not([disabled]):focus:hover,.field.has-addons .control .select select:not([disabled]).is-active:hover,.field.has-addons .control .select select:not([disabled]).is-focused:hover,.field.has-addons .control .select select:not([disabled]):active:hover,.field.has-addons .control .select select:not([disabled]):focus:hover{z-index:4}.field.has-addons .control.is-expanded{flex-grow:1;flex-shrink:1}.field.has-addons.has-addons-centered{justify-content:center}.field.has-addons.has-addons-right{justify-content:flex-end}.field.has-addons.has-addons-fullwidth .control{flex-grow:1;flex-shrink:0}.field.is-grouped{display:flex;justify-content:flex-start}.field.is-grouped>.control{flex-shrink:0}.field.is-grouped>.control:not(:last-child){margin-bottom:0;margin-right:.75rem}.field.is-grouped>.control.is-expanded{flex-grow:1;flex-shrink:1}.field.is-grouped.is-grouped-centered{justify-content:center}.field.is-grouped.is-grouped-right{justify-content:flex-end}.field.is-grouped.is-grouped-multiline{flex-wrap:wrap}.field.is-grouped.is-grouped-multiline>.control:last-child,.field.is-grouped.is-grouped-multiline>.control:not(:last-child){margin-bottom:.75rem}.field.is-grouped.is-grouped-multiline:last-child{margin-bottom:-.75rem}.field.is-grouped.is-grouped-multiline:not(:last-child){margin-bottom:0}@media screen and (min-width:769px),print{.field.is-horizontal{display:flex}}.field-label .label{font-size:inherit}@media screen and (max-width:768px){.field-label{margin-bottom:.5rem}}@media screen and (min-width:769px),print{.field-label{flex-basis:0;flex-grow:1;flex-shrink:0;margin-right:1.5rem;text-align:right}.field-label.is-small{font-size:.75rem;padding-top:.375em}.field-label.is-normal{padding-top:.375em}.field-label.is-medium{font-size:1.25rem;padding-top:.375em}.field-label.is-large{font-size:1.5rem;padding-top:.375em}}.field-body .field .field{margin-bottom:0}@media screen and (min-width:769px),print{.field-body{display:flex;flex-basis:0;flex-grow:5;flex-shrink:1}.field-body .field{margin-bottom:0}.field-body>.field{flex-shrink:1}.field-body>.field:not(.is-narrow){flex-grow:1}.field-body>.field:not(:last-child){margin-right:.75rem}}.control{box-sizing:border-box;clear:both;font-size:1rem;position:relative;text-align:inherit}.control.has-icons-left .input:focus~.icon,.control.has-icons-left .select:focus~.icon,.control.has-icons-right .input:focus~.icon,.control.has-icons-right .select:focus~.icon{color:#4a4a4a}.control.has-icons-left .input.is-small~.icon,.control.has-icons-left .select.is-small~.icon,.control.has-icons-right .input.is-small~.icon,.control.has-icons-right .select.is-small~.icon{font-size:.75rem}.control.has-icons-left .input.is-medium~.icon,.control.has-icons-left .select.is-medium~.icon,.control.has-icons-right .input.is-medium~.icon,.control.has-icons-right .select.is-medium~.icon{font-size:1.25rem}.control.has-icons-left .input.is-large~.icon,.control.has-icons-left .select.is-large~.icon,.control.has-icons-right .input.is-large~.icon,.control.has-icons-right .select.is-large~.icon{font-size:1.5rem}.control.has-icons-left .icon,.control.has-icons-right .icon{color:#dbdbdb;height:2.5em;pointer-events:none;position:absolute;top:0;width:2.5em;z-index:4}.control.has-icons-left .input,.control.has-icons-left .select select{padding-left:2.5em}.control.has-icons-left .icon.is-left{left:0}.control.has-icons-right .input,.control.has-icons-right .select select{padding-right:2.5em}.control.has-icons-right .icon.is-right{right:0}.control.is-loading::after{position:absolute!important;right:.625em;top:.625em;z-index:4}.control.is-loading.is-small:after{font-size:.75rem}.control.is-loading.is-medium:after{font-size:1.25rem}.control.is-loading.is-large:after{font-size:1.5rem}.breadcrumb{font-size:1rem;white-space:nowrap}.breadcrumb a{align-items:center;color:#485fc7;display:flex;justify-content:center;padding:0 .75em}.breadcrumb a:hover{color:#363636}.breadcrumb li{align-items:center;display:flex}.breadcrumb li:first-child a{padding-left:0}.breadcrumb li.is-active a{color:#363636;cursor:default;pointer-events:none}.breadcrumb li+li::before{color:#b5b5b5;content:"\0002f"}.breadcrumb ol,.breadcrumb ul{align-items:flex-start;display:flex;flex-wrap:wrap;justify-content:flex-start}.breadcrumb .icon:first-child{margin-right:.5em}.breadcrumb .icon:last-child{margin-left:.5em}.breadcrumb.is-centered ol,.breadcrumb.is-centered ul{justify-content:center}.breadcrumb.is-right ol,.breadcrumb.is-right ul{justify-content:flex-end}.breadcrumb.is-small{font-size:.75rem}.breadcrumb.is-medium{font-size:1.25rem}.breadcrumb.is-large{font-size:1.5rem}.breadcrumb.has-arrow-separator li+li::before{content:"\02192"}.breadcrumb.has-bullet-separator li+li::before{content:"\02022"}.breadcrumb.has-dot-separator li+li::before{content:"\000b7"}.breadcrumb.has-succeeds-separator li+li::before{content:"\0227B"}.card{background-color:#fff;border-radius:.25rem;box-shadow:0 .5em 1em -.125em rgba(10,10,10,.1),0 0 0 1px rgba(10,10,10,.02);color:#4a4a4a;max-width:100%;position:relative}.card-content:first-child,.card-footer:first-child,.card-header:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card-content:last-child,.card-footer:last-child,.card-header:last-child{border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem}.card-header{background-color:transparent;align-items:stretch;box-shadow:0 .125em .25em rgba(10,10,10,.1);display:flex}.card-header-title{align-items:center;color:#363636;display:flex;flex-grow:1;font-weight:700;padding:.75rem 1rem}.card-header-title.is-centered{justify-content:center}.card-header-icon{-moz-appearance:none;-webkit-appearance:none;appearance:none;background:0 0;border:none;color:currentColor;font-family:inherit;font-size:1em;margin:0;padding:0;align-items:center;cursor:pointer;display:flex;justify-content:center;padding:.75rem 1rem}.card-image{display:block;position:relative}.card-image:first-child img{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card-image:last-child img{border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem}.card-content{background-color:transparent;padding:1.5rem}.card-footer{background-color:transparent;border-top:1px solid #ededed;align-items:stretch;display:flex}.card-footer-item{align-items:center;display:flex;flex-basis:0;flex-grow:1;flex-shrink:0;justify-content:center;padding:.75rem}.card-footer-item:not(:last-child){border-right:1px solid #ededed}.card .media:not(:last-child){margin-bottom:1.5rem}.dropdown{display:inline-flex;position:relative;vertical-align:top}.dropdown.is-active .dropdown-menu,.dropdown.is-hoverable:hover .dropdown-menu{display:block}.dropdown.is-right .dropdown-menu{left:auto;right:0}.dropdown.is-up .dropdown-menu{bottom:100%;padding-bottom:4px;padding-top:initial;top:auto}.dropdown-menu{display:none;left:0;min-width:12rem;padding-top:4px;position:absolute;top:100%;z-index:20}.dropdown-content{background-color:#fff;border-radius:4px;box-shadow:0 .5em 1em -.125em rgba(10,10,10,.1),0 0 0 1px rgba(10,10,10,.02);padding-bottom:.5rem;padding-top:.5rem}.dropdown-item{color:#4a4a4a;display:block;font-size:.875rem;line-height:1.5;padding:.375rem 1rem;position:relative}a.dropdown-item,button.dropdown-item{padding-right:3rem;text-align:inherit;white-space:nowrap;width:100%}a.dropdown-item:hover,button.dropdown-item:hover{background-color:#f5f5f5;color:#0a0a0a}a.dropdown-item.is-active,button.dropdown-item.is-active{background-color:#485fc7;color:#fff}.dropdown-divider{background-color:#ededed;border:none;display:block;height:1px;margin:.5rem 0}.level{align-items:center;justify-content:space-between}.level code{border-radius:4px}.level img{display:inline-block;vertical-align:top}.level.is-mobile{display:flex}.level.is-mobile .level-left,.level.is-mobile .level-right{display:flex}.level.is-mobile .level-left+.level-right{margin-top:0}.level.is-mobile .level-item:not(:last-child){margin-bottom:0;margin-right:.75rem}.level.is-mobile .level-item:not(.is-narrow){flex-grow:1}@media screen and (min-width:769px),print{.level{display:flex}.level>.level-item:not(.is-narrow){flex-grow:1}}.level-item{align-items:center;display:flex;flex-basis:auto;flex-grow:0;flex-shrink:0;justify-content:center}.level-item .subtitle,.level-item .title{margin-bottom:0}@media screen and (max-width:768px){.level-item:not(:last-child){margin-bottom:.75rem}}.level-left,.level-right{flex-basis:auto;flex-grow:0;flex-shrink:0}.level-left .level-item.is-flexible,.level-right .level-item.is-flexible{flex-grow:1}@media screen and (min-width:769px),print{.level-left .level-item:not(:last-child),.level-right .level-item:not(:last-child){margin-right:.75rem}}.level-left{align-items:center;justify-content:flex-start}@media screen and (max-width:768px){.level-left+.level-right{margin-top:1.5rem}}@media screen and (min-width:769px),print{.level-left{display:flex}}.level-right{align-items:center;justify-content:flex-end}@media screen and (min-width:769px),print{.level-right{display:flex}}.media{align-items:flex-start;display:flex;text-align:inherit}.media .content:not(:last-child){margin-bottom:.75rem}.media .media{border-top:1px solid rgba(219,219,219,.5);display:flex;padding-top:.75rem}.media .media .content:not(:last-child),.media .media .control:not(:last-child){margin-bottom:.5rem}.media .media .media{padding-top:.5rem}.media .media .media+.media{margin-top:.5rem}.media+.media{border-top:1px solid rgba(219,219,219,.5);margin-top:1rem;padding-top:1rem}.media.is-large+.media{margin-top:1.5rem;padding-top:1.5rem}.media-left,.media-right{flex-basis:auto;flex-grow:0;flex-shrink:0}.media-left{margin-right:1rem}.media-right{margin-left:1rem}.media-content{flex-basis:auto;flex-grow:1;flex-shrink:1;text-align:inherit}@media screen and (max-width:768px){.media-content{overflow-x:auto}}.menu{font-size:1rem}.menu.is-small{font-size:.75rem}.menu.is-medium{font-size:1.25rem}.menu.is-large{font-size:1.5rem}.menu-list{line-height:1.25}.menu-list a{border-radius:2px;color:#4a4a4a;display:block;padding:.5em .75em}.menu-list a:hover{background-color:#f5f5f5;color:#363636}.menu-list a.is-active{background-color:#485fc7;color:#fff}.menu-list li ul{border-left:1px solid #dbdbdb;margin:.75em;padding-left:.75em}.menu-label{color:#7a7a7a;font-size:.75em;letter-spacing:.1em;text-transform:uppercase}.menu-label:not(:first-child){margin-top:1em}.menu-label:not(:last-child){margin-bottom:1em}.message{background-color:#f5f5f5;border-radius:4px;font-size:1rem}.message strong{color:currentColor}.message a:not(.button):not(.tag):not(.dropdown-item){color:currentColor;text-decoration:underline}.message.is-small{font-size:.75rem}.message.is-medium{font-size:1.25rem}.message.is-large{font-size:1.5rem}.message.is-white{background-color:#fff}.message.is-white .message-header{background-color:#fff;color:#0a0a0a}.message.is-white .message-body{border-color:#fff}.message.is-black{background-color:#fafafa}.message.is-black .message-header{background-color:#0a0a0a;color:#fff}.message.is-black .message-body{border-color:#0a0a0a}.message.is-light{background-color:#fafafa}.message.is-light .message-header{background-color:#f5f5f5;color:rgba(0,0,0,.7)}.message.is-light .message-body{border-color:#f5f5f5}.message.is-dark{background-color:#fafafa}.message.is-dark .message-header{background-color:#363636;color:#fff}.message.is-dark .message-body{border-color:#363636}.message.is-primary{background-color:#ebfffc}.message.is-primary .message-header{background-color:#00d1b2;color:#fff}.message.is-primary .message-body{border-color:#00d1b2;color:#00947e}.message.is-link{background-color:#eff1fa}.message.is-link .message-header{background-color:#485fc7;color:#fff}.message.is-link .message-body{border-color:#485fc7;color:#3850b7}.message.is-info{background-color:#eff5fb}.message.is-info .message-header{background-color:#3e8ed0;color:#fff}.message.is-info .message-body{border-color:#3e8ed0;color:#296fa8}.message.is-success{background-color:#effaf5}.message.is-success .message-header{background-color:#48c78e;color:#fff}.message.is-success .message-body{border-color:#48c78e;color:#257953}.message.is-warning{background-color:#fffaeb}.message.is-warning .message-header{background-color:#ffe08a;color:rgba(0,0,0,.7)}.message.is-warning .message-body{border-color:#ffe08a;color:#946c00}.message.is-danger{background-color:#feecf0}.message.is-danger .message-header{background-color:#f14668;color:#fff}.message.is-danger .message-body{border-color:#f14668;color:#cc0f35}.message-header{align-items:center;background-color:#4a4a4a;border-radius:4px 4px 0 0;color:#fff;display:flex;font-weight:700;justify-content:space-between;line-height:1.25;padding:.75em 1em;position:relative}.message-header .delete{flex-grow:0;flex-shrink:0;margin-left:.75em}.message-header+.message-body{border-width:0;border-top-left-radius:0;border-top-right-radius:0}.message-body{border-color:#dbdbdb;border-radius:4px;border-style:solid;border-width:0 0 0 4px;color:#4a4a4a;padding:1.25em 1.5em}.message-body code,.message-body pre{background-color:#fff}.message-body pre code{background-color:transparent}.modal{align-items:center;display:none;flex-direction:column;justify-content:center;overflow:hidden;position:fixed;z-index:40}.modal.is-active{display:flex}.modal-background{background-color:rgba(10,10,10,.86)}.modal-card,.modal-content{margin:0 20px;max-height:calc(100vh - 160px);overflow:auto;position:relative;width:100%}@media screen and (min-width:769px){.modal-card,.modal-content{margin:0 auto;max-height:calc(100vh - 40px);width:640px}}.modal-close{background:0 0;height:40px;position:fixed;right:20px;top:20px;width:40px}.modal-card{display:flex;flex-direction:column;max-height:calc(100vh - 40px);overflow:hidden;-ms-overflow-y:visible}.modal-card-foot,.modal-card-head{align-items:center;background-color:#f5f5f5;display:flex;flex-shrink:0;justify-content:flex-start;padding:20px;position:relative}.modal-card-head{border-bottom:1px solid #dbdbdb;border-top-left-radius:6px;border-top-right-radius:6px}.modal-card-title{color:#363636;flex-grow:1;flex-shrink:0;font-size:1.5rem;line-height:1}.modal-card-foot{border-bottom-left-radius:6px;border-bottom-right-radius:6px;border-top:1px solid #dbdbdb}.modal-card-foot .button:not(:last-child){margin-right:.5em}.modal-card-body{-webkit-overflow-scrolling:touch;background-color:#fff;flex-grow:1;flex-shrink:1;overflow:auto;padding:20px}.navbar{background-color:#fff;min-height:3.25rem;position:relative;z-index:30}.navbar.is-white{background-color:#fff;color:#0a0a0a}.navbar.is-white .navbar-brand .navbar-link,.navbar.is-white .navbar-brand>.navbar-item{color:#0a0a0a}.navbar.is-white .navbar-brand .navbar-link.is-active,.navbar.is-white .navbar-brand .navbar-link:focus,.navbar.is-white .navbar-brand .navbar-link:hover,.navbar.is-white .navbar-brand>a.navbar-item.is-active,.navbar.is-white .navbar-brand>a.navbar-item:focus,.navbar.is-white .navbar-brand>a.navbar-item:hover{background-color:#f2f2f2;color:#0a0a0a}.navbar.is-white .navbar-brand .navbar-link::after{border-color:#0a0a0a}.navbar.is-white .navbar-burger{color:#0a0a0a}@media screen and (min-width:1024px){.navbar.is-white .navbar-end .navbar-link,.navbar.is-white .navbar-end>.navbar-item,.navbar.is-white .navbar-start .navbar-link,.navbar.is-white .navbar-start>.navbar-item{color:#0a0a0a}.navbar.is-white .navbar-end .navbar-link.is-active,.navbar.is-white .navbar-end .navbar-link:focus,.navbar.is-white .navbar-end .navbar-link:hover,.navbar.is-white .navbar-end>a.navbar-item.is-active,.navbar.is-white .navbar-end>a.navbar-item:focus,.navbar.is-white .navbar-end>a.navbar-item:hover,.navbar.is-white .navbar-start .navbar-link.is-active,.navbar.is-white .navbar-start .navbar-link:focus,.navbar.is-white .navbar-start .navbar-link:hover,.navbar.is-white .navbar-start>a.navbar-item.is-active,.navbar.is-white .navbar-start>a.navbar-item:focus,.navbar.is-white .navbar-start>a.navbar-item:hover{background-color:#f2f2f2;color:#0a0a0a}.navbar.is-white .navbar-end .navbar-link::after,.navbar.is-white .navbar-start .navbar-link::after{border-color:#0a0a0a}.navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-white .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-white .navbar-item.has-dropdown:hover .navbar-link{background-color:#f2f2f2;color:#0a0a0a}.navbar.is-white .navbar-dropdown a.navbar-item.is-active{background-color:#fff;color:#0a0a0a}}.navbar.is-black{background-color:#0a0a0a;color:#fff}.navbar.is-black .navbar-brand .navbar-link,.navbar.is-black .navbar-brand>.navbar-item{color:#fff}.navbar.is-black .navbar-brand .navbar-link.is-active,.navbar.is-black .navbar-brand .navbar-link:focus,.navbar.is-black .navbar-brand .navbar-link:hover,.navbar.is-black .navbar-brand>a.navbar-item.is-active,.navbar.is-black .navbar-brand>a.navbar-item:focus,.navbar.is-black .navbar-brand>a.navbar-item:hover{background-color:#000;color:#fff}.navbar.is-black .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-black .navbar-burger{color:#fff}@media screen and (min-width:1024px){.navbar.is-black .navbar-end .navbar-link,.navbar.is-black .navbar-end>.navbar-item,.navbar.is-black .navbar-start .navbar-link,.navbar.is-black .navbar-start>.navbar-item{color:#fff}.navbar.is-black .navbar-end .navbar-link.is-active,.navbar.is-black .navbar-end .navbar-link:focus,.navbar.is-black .navbar-end .navbar-link:hover,.navbar.is-black .navbar-end>a.navbar-item.is-active,.navbar.is-black .navbar-end>a.navbar-item:focus,.navbar.is-black .navbar-end>a.navbar-item:hover,.navbar.is-black .navbar-start .navbar-link.is-active,.navbar.is-black .navbar-start .navbar-link:focus,.navbar.is-black .navbar-start .navbar-link:hover,.navbar.is-black .navbar-start>a.navbar-item.is-active,.navbar.is-black .navbar-start>a.navbar-item:focus,.navbar.is-black .navbar-start>a.navbar-item:hover{background-color:#000;color:#fff}.navbar.is-black .navbar-end .navbar-link::after,.navbar.is-black .navbar-start .navbar-link::after{border-color:#fff}.navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-black .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-black .navbar-item.has-dropdown:hover .navbar-link{background-color:#000;color:#fff}.navbar.is-black .navbar-dropdown a.navbar-item.is-active{background-color:#0a0a0a;color:#fff}}.navbar.is-light{background-color:#f5f5f5;color:rgba(0,0,0,.7)}.navbar.is-light .navbar-brand .navbar-link,.navbar.is-light .navbar-brand>.navbar-item{color:rgba(0,0,0,.7)}.navbar.is-light .navbar-brand .navbar-link.is-active,.navbar.is-light .navbar-brand .navbar-link:focus,.navbar.is-light .navbar-brand .navbar-link:hover,.navbar.is-light .navbar-brand>a.navbar-item.is-active,.navbar.is-light .navbar-brand>a.navbar-item:focus,.navbar.is-light .navbar-brand>a.navbar-item:hover{background-color:#e8e8e8;color:rgba(0,0,0,.7)}.navbar.is-light .navbar-brand .navbar-link::after{border-color:rgba(0,0,0,.7)}.navbar.is-light .navbar-burger{color:rgba(0,0,0,.7)}@media screen and (min-width:1024px){.navbar.is-light .navbar-end .navbar-link,.navbar.is-light .navbar-end>.navbar-item,.navbar.is-light .navbar-start .navbar-link,.navbar.is-light .navbar-start>.navbar-item{color:rgba(0,0,0,.7)}.navbar.is-light .navbar-end .navbar-link.is-active,.navbar.is-light .navbar-end .navbar-link:focus,.navbar.is-light .navbar-end .navbar-link:hover,.navbar.is-light .navbar-end>a.navbar-item.is-active,.navbar.is-light .navbar-end>a.navbar-item:focus,.navbar.is-light .navbar-end>a.navbar-item:hover,.navbar.is-light .navbar-start .navbar-link.is-active,.navbar.is-light .navbar-start .navbar-link:focus,.navbar.is-light .navbar-start .navbar-link:hover,.navbar.is-light .navbar-start>a.navbar-item.is-active,.navbar.is-light .navbar-start>a.navbar-item:focus,.navbar.is-light .navbar-start>a.navbar-item:hover{background-color:#e8e8e8;color:rgba(0,0,0,.7)}.navbar.is-light .navbar-end .navbar-link::after,.navbar.is-light .navbar-start .navbar-link::after{border-color:rgba(0,0,0,.7)}.navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-light .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-light .navbar-item.has-dropdown:hover .navbar-link{background-color:#e8e8e8;color:rgba(0,0,0,.7)}.navbar.is-light .navbar-dropdown a.navbar-item.is-active{background-color:#f5f5f5;color:rgba(0,0,0,.7)}}.navbar.is-dark{background-color:#363636;color:#fff}.navbar.is-dark .navbar-brand .navbar-link,.navbar.is-dark .navbar-brand>.navbar-item{color:#fff}.navbar.is-dark .navbar-brand .navbar-link.is-active,.navbar.is-dark .navbar-brand .navbar-link:focus,.navbar.is-dark .navbar-brand .navbar-link:hover,.navbar.is-dark .navbar-brand>a.navbar-item.is-active,.navbar.is-dark .navbar-brand>a.navbar-item:focus,.navbar.is-dark .navbar-brand>a.navbar-item:hover{background-color:#292929;color:#fff}.navbar.is-dark .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-dark .navbar-burger{color:#fff}@media screen and (min-width:1024px){.navbar.is-dark .navbar-end .navbar-link,.navbar.is-dark .navbar-end>.navbar-item,.navbar.is-dark .navbar-start .navbar-link,.navbar.is-dark .navbar-start>.navbar-item{color:#fff}.navbar.is-dark .navbar-end .navbar-link.is-active,.navbar.is-dark .navbar-end .navbar-link:focus,.navbar.is-dark .navbar-end .navbar-link:hover,.navbar.is-dark .navbar-end>a.navbar-item.is-active,.navbar.is-dark .navbar-end>a.navbar-item:focus,.navbar.is-dark .navbar-end>a.navbar-item:hover,.navbar.is-dark .navbar-start .navbar-link.is-active,.navbar.is-dark .navbar-start .navbar-link:focus,.navbar.is-dark .navbar-start .navbar-link:hover,.navbar.is-dark .navbar-start>a.navbar-item.is-active,.navbar.is-dark .navbar-start>a.navbar-item:focus,.navbar.is-dark .navbar-start>a.navbar-item:hover{background-color:#292929;color:#fff}.navbar.is-dark .navbar-end .navbar-link::after,.navbar.is-dark .navbar-start .navbar-link::after{border-color:#fff}.navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link{background-color:#292929;color:#fff}.navbar.is-dark .navbar-dropdown a.navbar-item.is-active{background-color:#363636;color:#fff}}.navbar.is-primary{background-color:#00d1b2;color:#fff}.navbar.is-primary .navbar-brand .navbar-link,.navbar.is-primary .navbar-brand>.navbar-item{color:#fff}.navbar.is-primary .navbar-brand .navbar-link.is-active,.navbar.is-primary .navbar-brand .navbar-link:focus,.navbar.is-primary .navbar-brand .navbar-link:hover,.navbar.is-primary .navbar-brand>a.navbar-item.is-active,.navbar.is-primary .navbar-brand>a.navbar-item:focus,.navbar.is-primary .navbar-brand>a.navbar-item:hover{background-color:#00b89c;color:#fff}.navbar.is-primary .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-primary .navbar-burger{color:#fff}@media screen and (min-width:1024px){.navbar.is-primary .navbar-end .navbar-link,.navbar.is-primary .navbar-end>.navbar-item,.navbar.is-primary .navbar-start .navbar-link,.navbar.is-primary .navbar-start>.navbar-item{color:#fff}.navbar.is-primary .navbar-end .navbar-link.is-active,.navbar.is-primary .navbar-end .navbar-link:focus,.navbar.is-primary .navbar-end .navbar-link:hover,.navbar.is-primary .navbar-end>a.navbar-item.is-active,.navbar.is-primary .navbar-end>a.navbar-item:focus,.navbar.is-primary .navbar-end>a.navbar-item:hover,.navbar.is-primary .navbar-start .navbar-link.is-active,.navbar.is-primary .navbar-start .navbar-link:focus,.navbar.is-primary .navbar-start .navbar-link:hover,.navbar.is-primary .navbar-start>a.navbar-item.is-active,.navbar.is-primary .navbar-start>a.navbar-item:focus,.navbar.is-primary .navbar-start>a.navbar-item:hover{background-color:#00b89c;color:#fff}.navbar.is-primary .navbar-end .navbar-link::after,.navbar.is-primary .navbar-start .navbar-link::after{border-color:#fff}.navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link{background-color:#00b89c;color:#fff}.navbar.is-primary .navbar-dropdown a.navbar-item.is-active{background-color:#00d1b2;color:#fff}}.navbar.is-link{background-color:#485fc7;color:#fff}.navbar.is-link .navbar-brand .navbar-link,.navbar.is-link .navbar-brand>.navbar-item{color:#fff}.navbar.is-link .navbar-brand .navbar-link.is-active,.navbar.is-link .navbar-brand .navbar-link:focus,.navbar.is-link .navbar-brand .navbar-link:hover,.navbar.is-link .navbar-brand>a.navbar-item.is-active,.navbar.is-link .navbar-brand>a.navbar-item:focus,.navbar.is-link .navbar-brand>a.navbar-item:hover{background-color:#3a51bb;color:#fff}.navbar.is-link .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-link .navbar-burger{color:#fff}@media screen and (min-width:1024px){.navbar.is-link .navbar-end .navbar-link,.navbar.is-link .navbar-end>.navbar-item,.navbar.is-link .navbar-start .navbar-link,.navbar.is-link .navbar-start>.navbar-item{color:#fff}.navbar.is-link .navbar-end .navbar-link.is-active,.navbar.is-link .navbar-end .navbar-link:focus,.navbar.is-link .navbar-end .navbar-link:hover,.navbar.is-link .navbar-end>a.navbar-item.is-active,.navbar.is-link .navbar-end>a.navbar-item:focus,.navbar.is-link .navbar-end>a.navbar-item:hover,.navbar.is-link .navbar-start .navbar-link.is-active,.navbar.is-link .navbar-start .navbar-link:focus,.navbar.is-link .navbar-start .navbar-link:hover,.navbar.is-link .navbar-start>a.navbar-item.is-active,.navbar.is-link .navbar-start>a.navbar-item:focus,.navbar.is-link .navbar-start>a.navbar-item:hover{background-color:#3a51bb;color:#fff}.navbar.is-link .navbar-end .navbar-link::after,.navbar.is-link .navbar-start .navbar-link::after{border-color:#fff}.navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-link .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-link .navbar-item.has-dropdown:hover .navbar-link{background-color:#3a51bb;color:#fff}.navbar.is-link .navbar-dropdown a.navbar-item.is-active{background-color:#485fc7;color:#fff}}.navbar.is-info{background-color:#3e8ed0;color:#fff}.navbar.is-info .navbar-brand .navbar-link,.navbar.is-info .navbar-brand>.navbar-item{color:#fff}.navbar.is-info .navbar-brand .navbar-link.is-active,.navbar.is-info .navbar-brand .navbar-link:focus,.navbar.is-info .navbar-brand .navbar-link:hover,.navbar.is-info .navbar-brand>a.navbar-item.is-active,.navbar.is-info .navbar-brand>a.navbar-item:focus,.navbar.is-info .navbar-brand>a.navbar-item:hover{background-color:#3082c5;color:#fff}.navbar.is-info .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-info .navbar-burger{color:#fff}@media screen and (min-width:1024px){.navbar.is-info .navbar-end .navbar-link,.navbar.is-info .navbar-end>.navbar-item,.navbar.is-info .navbar-start .navbar-link,.navbar.is-info .navbar-start>.navbar-item{color:#fff}.navbar.is-info .navbar-end .navbar-link.is-active,.navbar.is-info .navbar-end .navbar-link:focus,.navbar.is-info .navbar-end .navbar-link:hover,.navbar.is-info .navbar-end>a.navbar-item.is-active,.navbar.is-info .navbar-end>a.navbar-item:focus,.navbar.is-info .navbar-end>a.navbar-item:hover,.navbar.is-info .navbar-start .navbar-link.is-active,.navbar.is-info .navbar-start .navbar-link:focus,.navbar.is-info .navbar-start .navbar-link:hover,.navbar.is-info .navbar-start>a.navbar-item.is-active,.navbar.is-info .navbar-start>a.navbar-item:focus,.navbar.is-info .navbar-start>a.navbar-item:hover{background-color:#3082c5;color:#fff}.navbar.is-info .navbar-end .navbar-link::after,.navbar.is-info .navbar-start .navbar-link::after{border-color:#fff}.navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-info .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-info .navbar-item.has-dropdown:hover .navbar-link{background-color:#3082c5;color:#fff}.navbar.is-info .navbar-dropdown a.navbar-item.is-active{background-color:#3e8ed0;color:#fff}}.navbar.is-success{background-color:#48c78e;color:#fff}.navbar.is-success .navbar-brand .navbar-link,.navbar.is-success .navbar-brand>.navbar-item{color:#fff}.navbar.is-success .navbar-brand .navbar-link.is-active,.navbar.is-success .navbar-brand .navbar-link:focus,.navbar.is-success .navbar-brand .navbar-link:hover,.navbar.is-success .navbar-brand>a.navbar-item.is-active,.navbar.is-success .navbar-brand>a.navbar-item:focus,.navbar.is-success .navbar-brand>a.navbar-item:hover{background-color:#3abb81;color:#fff}.navbar.is-success .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-success .navbar-burger{color:#fff}@media screen and (min-width:1024px){.navbar.is-success .navbar-end .navbar-link,.navbar.is-success .navbar-end>.navbar-item,.navbar.is-success .navbar-start .navbar-link,.navbar.is-success .navbar-start>.navbar-item{color:#fff}.navbar.is-success .navbar-end .navbar-link.is-active,.navbar.is-success .navbar-end .navbar-link:focus,.navbar.is-success .navbar-end .navbar-link:hover,.navbar.is-success .navbar-end>a.navbar-item.is-active,.navbar.is-success .navbar-end>a.navbar-item:focus,.navbar.is-success .navbar-end>a.navbar-item:hover,.navbar.is-success .navbar-start .navbar-link.is-active,.navbar.is-success .navbar-start .navbar-link:focus,.navbar.is-success .navbar-start .navbar-link:hover,.navbar.is-success .navbar-start>a.navbar-item.is-active,.navbar.is-success .navbar-start>a.navbar-item:focus,.navbar.is-success .navbar-start>a.navbar-item:hover{background-color:#3abb81;color:#fff}.navbar.is-success .navbar-end .navbar-link::after,.navbar.is-success .navbar-start .navbar-link::after{border-color:#fff}.navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-success .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-success .navbar-item.has-dropdown:hover .navbar-link{background-color:#3abb81;color:#fff}.navbar.is-success .navbar-dropdown a.navbar-item.is-active{background-color:#48c78e;color:#fff}}.navbar.is-warning{background-color:#ffe08a;color:rgba(0,0,0,.7)}.navbar.is-warning .navbar-brand .navbar-link,.navbar.is-warning .navbar-brand>.navbar-item{color:rgba(0,0,0,.7)}.navbar.is-warning .navbar-brand .navbar-link.is-active,.navbar.is-warning .navbar-brand .navbar-link:focus,.navbar.is-warning .navbar-brand .navbar-link:hover,.navbar.is-warning .navbar-brand>a.navbar-item.is-active,.navbar.is-warning .navbar-brand>a.navbar-item:focus,.navbar.is-warning .navbar-brand>a.navbar-item:hover{background-color:#ffd970;color:rgba(0,0,0,.7)}.navbar.is-warning .navbar-brand .navbar-link::after{border-color:rgba(0,0,0,.7)}.navbar.is-warning .navbar-burger{color:rgba(0,0,0,.7)}@media screen and (min-width:1024px){.navbar.is-warning .navbar-end .navbar-link,.navbar.is-warning .navbar-end>.navbar-item,.navbar.is-warning .navbar-start .navbar-link,.navbar.is-warning .navbar-start>.navbar-item{color:rgba(0,0,0,.7)}.navbar.is-warning .navbar-end .navbar-link.is-active,.navbar.is-warning .navbar-end .navbar-link:focus,.navbar.is-warning .navbar-end .navbar-link:hover,.navbar.is-warning .navbar-end>a.navbar-item.is-active,.navbar.is-warning .navbar-end>a.navbar-item:focus,.navbar.is-warning .navbar-end>a.navbar-item:hover,.navbar.is-warning .navbar-start .navbar-link.is-active,.navbar.is-warning .navbar-start .navbar-link:focus,.navbar.is-warning .navbar-start .navbar-link:hover,.navbar.is-warning .navbar-start>a.navbar-item.is-active,.navbar.is-warning .navbar-start>a.navbar-item:focus,.navbar.is-warning .navbar-start>a.navbar-item:hover{background-color:#ffd970;color:rgba(0,0,0,.7)}.navbar.is-warning .navbar-end .navbar-link::after,.navbar.is-warning .navbar-start .navbar-link::after{border-color:rgba(0,0,0,.7)}.navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link{background-color:#ffd970;color:rgba(0,0,0,.7)}.navbar.is-warning .navbar-dropdown a.navbar-item.is-active{background-color:#ffe08a;color:rgba(0,0,0,.7)}}.navbar.is-danger{background-color:#f14668;color:#fff}.navbar.is-danger .navbar-brand .navbar-link,.navbar.is-danger .navbar-brand>.navbar-item{color:#fff}.navbar.is-danger .navbar-brand .navbar-link.is-active,.navbar.is-danger .navbar-brand .navbar-link:focus,.navbar.is-danger .navbar-brand .navbar-link:hover,.navbar.is-danger .navbar-brand>a.navbar-item.is-active,.navbar.is-danger .navbar-brand>a.navbar-item:focus,.navbar.is-danger .navbar-brand>a.navbar-item:hover{background-color:#ef2e55;color:#fff}.navbar.is-danger .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-danger .navbar-burger{color:#fff}@media screen and (min-width:1024px){.navbar.is-danger .navbar-end .navbar-link,.navbar.is-danger .navbar-end>.navbar-item,.navbar.is-danger .navbar-start .navbar-link,.navbar.is-danger .navbar-start>.navbar-item{color:#fff}.navbar.is-danger .navbar-end .navbar-link.is-active,.navbar.is-danger .navbar-end .navbar-link:focus,.navbar.is-danger .navbar-end .navbar-link:hover,.navbar.is-danger .navbar-end>a.navbar-item.is-active,.navbar.is-danger .navbar-end>a.navbar-item:focus,.navbar.is-danger .navbar-end>a.navbar-item:hover,.navbar.is-danger .navbar-start .navbar-link.is-active,.navbar.is-danger .navbar-start .navbar-link:focus,.navbar.is-danger .navbar-start .navbar-link:hover,.navbar.is-danger .navbar-start>a.navbar-item.is-active,.navbar.is-danger .navbar-start>a.navbar-item:focus,.navbar.is-danger .navbar-start>a.navbar-item:hover{background-color:#ef2e55;color:#fff}.navbar.is-danger .navbar-end .navbar-link::after,.navbar.is-danger .navbar-start .navbar-link::after{border-color:#fff}.navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link{background-color:#ef2e55;color:#fff}.navbar.is-danger .navbar-dropdown a.navbar-item.is-active{background-color:#f14668;color:#fff}}.navbar>.container{align-items:stretch;display:flex;min-height:3.25rem;width:100%}.navbar.has-shadow{box-shadow:0 2px 0 0 #f5f5f5}.navbar.is-fixed-bottom,.navbar.is-fixed-top{left:0;position:fixed;right:0;z-index:30}.navbar.is-fixed-bottom{bottom:0}.navbar.is-fixed-bottom.has-shadow{box-shadow:0 -2px 0 0 #f5f5f5}.navbar.is-fixed-top{top:0}body.has-navbar-fixed-top,html.has-navbar-fixed-top{padding-top:3.25rem}body.has-navbar-fixed-bottom,html.has-navbar-fixed-bottom{padding-bottom:3.25rem}.navbar-brand,.navbar-tabs{align-items:stretch;display:flex;flex-shrink:0;min-height:3.25rem}.navbar-brand a.navbar-item:focus,.navbar-brand a.navbar-item:hover{background-color:transparent}.navbar-tabs{-webkit-overflow-scrolling:touch;max-width:100vw;overflow-x:auto;overflow-y:hidden}.navbar-burger{color:#4a4a4a;cursor:pointer;display:block;height:3.25rem;position:relative;width:3.25rem;margin-left:auto}.navbar-burger span{background-color:currentColor;display:block;height:1px;left:calc(50% - 8px);position:absolute;transform-origin:center;transition-duration:86ms;transition-property:background-color,opacity,transform;transition-timing-function:ease-out;width:16px}.navbar-burger span:nth-child(1){top:calc(50% - 6px)}.navbar-burger span:nth-child(2){top:calc(50% - 1px)}.navbar-burger span:nth-child(3){top:calc(50% + 4px)}.navbar-burger:hover{background-color:rgba(0,0,0,.05)}.navbar-burger.is-active span:nth-child(1){transform:translateY(5px) rotate(45deg)}.navbar-burger.is-active span:nth-child(2){opacity:0}.navbar-burger.is-active span:nth-child(3){transform:translateY(-5px) rotate(-45deg)}.navbar-menu{display:none}.navbar-item,.navbar-link{color:#4a4a4a;display:block;line-height:1.5;padding:.5rem .75rem;position:relative}.navbar-item .icon:only-child,.navbar-link .icon:only-child{margin-left:-.25rem;margin-right:-.25rem}.navbar-link,a.navbar-item{cursor:pointer}.navbar-link.is-active,.navbar-link:focus,.navbar-link:focus-within,.navbar-link:hover,a.navbar-item.is-active,a.navbar-item:focus,a.navbar-item:focus-within,a.navbar-item:hover{background-color:#fafafa;color:#485fc7}.navbar-item{flex-grow:0;flex-shrink:0}.navbar-item img{max-height:1.75rem}.navbar-item.has-dropdown{padding:0}.navbar-item.is-expanded{flex-grow:1;flex-shrink:1}.navbar-item.is-tab{border-bottom:1px solid transparent;min-height:3.25rem;padding-bottom:calc(.5rem - 1px)}.navbar-item.is-tab:focus,.navbar-item.is-tab:hover{background-color:transparent;border-bottom-color:#485fc7}.navbar-item.is-tab.is-active{background-color:transparent;border-bottom-color:#485fc7;border-bottom-style:solid;border-bottom-width:3px;color:#485fc7;padding-bottom:calc(.5rem - 3px)}.navbar-content{flex-grow:1;flex-shrink:1}.navbar-link:not(.is-arrowless){padding-right:2.5em}.navbar-link:not(.is-arrowless)::after{border-color:#485fc7;margin-top:-.375em;right:1.125em}.navbar-dropdown{font-size:.875rem;padding-bottom:.5rem;padding-top:.5rem}.navbar-dropdown .navbar-item{padding-left:1.5rem;padding-right:1.5rem}.navbar-divider{background-color:#f5f5f5;border:none;display:none;height:2px;margin:.5rem 0}@media screen and (max-width:1023px){.navbar>.container{display:block}.navbar-brand .navbar-item,.navbar-tabs .navbar-item{align-items:center;display:flex}.navbar-link::after{display:none}.navbar-menu{background-color:#fff;box-shadow:0 8px 16px rgba(10,10,10,.1);padding:.5rem 0}.navbar-menu.is-active{display:block}.navbar.is-fixed-bottom-touch,.navbar.is-fixed-top-touch{left:0;position:fixed;right:0;z-index:30}.navbar.is-fixed-bottom-touch{bottom:0}.navbar.is-fixed-bottom-touch.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,.1)}.navbar.is-fixed-top-touch{top:0}.navbar.is-fixed-top .navbar-menu,.navbar.is-fixed-top-touch .navbar-menu{-webkit-overflow-scrolling:touch;max-height:calc(100vh - 3.25rem);overflow:auto}body.has-navbar-fixed-top-touch,html.has-navbar-fixed-top-touch{padding-top:3.25rem}body.has-navbar-fixed-bottom-touch,html.has-navbar-fixed-bottom-touch{padding-bottom:3.25rem}}@media screen and (min-width:1024px){.navbar,.navbar-end,.navbar-menu,.navbar-start{align-items:stretch;display:flex}.navbar{min-height:3.25rem}.navbar.is-spaced{padding:1rem 2rem}.navbar.is-spaced .navbar-end,.navbar.is-spaced .navbar-start{align-items:center}.navbar.is-spaced .navbar-link,.navbar.is-spaced a.navbar-item{border-radius:4px}.navbar.is-transparent .navbar-link.is-active,.navbar.is-transparent .navbar-link:focus,.navbar.is-transparent .navbar-link:hover,.navbar.is-transparent a.navbar-item.is-active,.navbar.is-transparent a.navbar-item:focus,.navbar.is-transparent a.navbar-item:hover{background-color:transparent!important}.navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus .navbar-link,.navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus-within .navbar-link,.navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link{background-color:transparent!important}.navbar.is-transparent .navbar-dropdown a.navbar-item:focus,.navbar.is-transparent .navbar-dropdown a.navbar-item:hover{background-color:#f5f5f5;color:#0a0a0a}.navbar.is-transparent .navbar-dropdown a.navbar-item.is-active{background-color:#f5f5f5;color:#485fc7}.navbar-burger{display:none}.navbar-item,.navbar-link{align-items:center;display:flex}.navbar-item.has-dropdown{align-items:stretch}.navbar-item.has-dropdown-up .navbar-link::after{transform:rotate(135deg) translate(.25em,-.25em)}.navbar-item.has-dropdown-up .navbar-dropdown{border-bottom:2px solid #dbdbdb;border-radius:6px 6px 0 0;border-top:none;bottom:100%;box-shadow:0 -8px 8px rgba(10,10,10,.1);top:auto}.navbar-item.is-active .navbar-dropdown,.navbar-item.is-hoverable:focus .navbar-dropdown,.navbar-item.is-hoverable:focus-within .navbar-dropdown,.navbar-item.is-hoverable:hover .navbar-dropdown{display:block}.navbar-item.is-active .navbar-dropdown.is-boxed,.navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed,.navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed,.navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed,.navbar.is-spaced .navbar-item.is-active .navbar-dropdown,.navbar.is-spaced .navbar-item.is-hoverable:focus .navbar-dropdown,.navbar.is-spaced .navbar-item.is-hoverable:focus-within .navbar-dropdown,.navbar.is-spaced .navbar-item.is-hoverable:hover .navbar-dropdown{opacity:1;pointer-events:auto;transform:translateY(0)}.navbar-menu{flex-grow:1;flex-shrink:0}.navbar-start{justify-content:flex-start;margin-right:auto}.navbar-end{justify-content:flex-end;margin-left:auto}.navbar-dropdown{background-color:#fff;border-bottom-left-radius:6px;border-bottom-right-radius:6px;border-top:2px solid #dbdbdb;box-shadow:0 8px 8px rgba(10,10,10,.1);display:none;font-size:.875rem;left:0;min-width:100%;position:absolute;top:100%;z-index:20}.navbar-dropdown .navbar-item{padding:.375rem 1rem;white-space:nowrap}.navbar-dropdown a.navbar-item{padding-right:3rem}.navbar-dropdown a.navbar-item:focus,.navbar-dropdown a.navbar-item:hover{background-color:#f5f5f5;color:#0a0a0a}.navbar-dropdown a.navbar-item.is-active{background-color:#f5f5f5;color:#485fc7}.navbar-dropdown.is-boxed,.navbar.is-spaced .navbar-dropdown{border-radius:6px;border-top:none;box-shadow:0 8px 8px rgba(10,10,10,.1),0 0 0 1px rgba(10,10,10,.1);display:block;opacity:0;pointer-events:none;top:calc(100% + (-4px));transform:translateY(-5px);transition-duration:86ms;transition-property:opacity,transform}.navbar-dropdown.is-right{left:auto;right:0}.navbar-divider{display:block}.container>.navbar .navbar-brand,.navbar>.container .navbar-brand{margin-left:-.75rem}.container>.navbar .navbar-menu,.navbar>.container .navbar-menu{margin-right:-.75rem}.navbar.is-fixed-bottom-desktop,.navbar.is-fixed-top-desktop{left:0;position:fixed;right:0;z-index:30}.navbar.is-fixed-bottom-desktop{bottom:0}.navbar.is-fixed-bottom-desktop.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,.1)}.navbar.is-fixed-top-desktop{top:0}body.has-navbar-fixed-top-desktop,html.has-navbar-fixed-top-desktop{padding-top:3.25rem}body.has-navbar-fixed-bottom-desktop,html.has-navbar-fixed-bottom-desktop{padding-bottom:3.25rem}body.has-spaced-navbar-fixed-top,html.has-spaced-navbar-fixed-top{padding-top:5.25rem}body.has-spaced-navbar-fixed-bottom,html.has-spaced-navbar-fixed-bottom{padding-bottom:5.25rem}.navbar-link.is-active,a.navbar-item.is-active{color:#0a0a0a}.navbar-link.is-active:not(:focus):not(:hover),a.navbar-item.is-active:not(:focus):not(:hover){background-color:transparent}.navbar-item.has-dropdown.is-active .navbar-link,.navbar-item.has-dropdown:focus .navbar-link,.navbar-item.has-dropdown:hover .navbar-link{background-color:#fafafa}}.hero.is-fullheight-with-navbar{min-height:calc(100vh - 3.25rem)}.pagination{font-size:1rem;margin:-.25rem}.pagination.is-small{font-size:.75rem}.pagination.is-medium{font-size:1.25rem}.pagination.is-large{font-size:1.5rem}.pagination.is-rounded .pagination-next,.pagination.is-rounded .pagination-previous{padding-left:1em;padding-right:1em;border-radius:9999px}.pagination.is-rounded .pagination-link{border-radius:9999px}.pagination,.pagination-list{align-items:center;display:flex;justify-content:center;text-align:center}.pagination-ellipsis,.pagination-link,.pagination-next,.pagination-previous{font-size:1em;justify-content:center;margin:.25rem;padding-left:.5em;padding-right:.5em;text-align:center}.pagination-link,.pagination-next,.pagination-previous{border-color:#dbdbdb;color:#363636;min-width:2.5em}.pagination-link:hover,.pagination-next:hover,.pagination-previous:hover{border-color:#b5b5b5;color:#363636}.pagination-link:focus,.pagination-next:focus,.pagination-previous:focus{border-color:#485fc7}.pagination-link:active,.pagination-next:active,.pagination-previous:active{box-shadow:inset 0 1px 2px rgba(10,10,10,.2)}.pagination-link[disabled],.pagination-next[disabled],.pagination-previous[disabled]{background-color:#dbdbdb;border-color:#dbdbdb;box-shadow:none;color:#7a7a7a;opacity:.5}.pagination-next,.pagination-previous{padding-left:.75em;padding-right:.75em;white-space:nowrap}.pagination-link.is-current{background-color:#485fc7;border-color:#485fc7;color:#fff}.pagination-ellipsis{color:#b5b5b5;pointer-events:none}.pagination-list{flex-wrap:wrap}.pagination-list li{list-style:none}@media screen and (max-width:768px){.pagination{flex-wrap:wrap}.pagination-next,.pagination-previous{flex-grow:1;flex-shrink:1}.pagination-list li{flex-grow:1;flex-shrink:1}}@media screen and (min-width:769px),print{.pagination-list{flex-grow:1;flex-shrink:1;justify-content:flex-start;order:1}.pagination-ellipsis,.pagination-link,.pagination-next,.pagination-previous{margin-bottom:0;margin-top:0}.pagination-previous{order:2}.pagination-next{order:3}.pagination{justify-content:space-between;margin-bottom:0;margin-top:0}.pagination.is-centered .pagination-previous{order:1}.pagination.is-centered .pagination-list{justify-content:center;order:2}.pagination.is-centered .pagination-next{order:3}.pagination.is-right .pagination-previous{order:1}.pagination.is-right .pagination-next{order:2}.pagination.is-right .pagination-list{justify-content:flex-end;order:3}}.panel{border-radius:6px;box-shadow:0 .5em 1em -.125em rgba(10,10,10,.1),0 0 0 1px rgba(10,10,10,.02);font-size:1rem}.panel:not(:last-child){margin-bottom:1.5rem}.panel.is-white .panel-heading{background-color:#fff;color:#0a0a0a}.panel.is-white .panel-tabs a.is-active{border-bottom-color:#fff}.panel.is-white .panel-block.is-active .panel-icon{color:#fff}.panel.is-black .panel-heading{background-color:#0a0a0a;color:#fff}.panel.is-black .panel-tabs a.is-active{border-bottom-color:#0a0a0a}.panel.is-black .panel-block.is-active .panel-icon{color:#0a0a0a}.panel.is-light .panel-heading{background-color:#f5f5f5;color:rgba(0,0,0,.7)}.panel.is-light .panel-tabs a.is-active{border-bottom-color:#f5f5f5}.panel.is-light .panel-block.is-active .panel-icon{color:#f5f5f5}.panel.is-dark .panel-heading{background-color:#363636;color:#fff}.panel.is-dark .panel-tabs a.is-active{border-bottom-color:#363636}.panel.is-dark .panel-block.is-active .panel-icon{color:#363636}.panel.is-primary .panel-heading{background-color:#00d1b2;color:#fff}.panel.is-primary .panel-tabs a.is-active{border-bottom-color:#00d1b2}.panel.is-primary .panel-block.is-active .panel-icon{color:#00d1b2}.panel.is-link .panel-heading{background-color:#485fc7;color:#fff}.panel.is-link .panel-tabs a.is-active{border-bottom-color:#485fc7}.panel.is-link .panel-block.is-active .panel-icon{color:#485fc7}.panel.is-info .panel-heading{background-color:#3e8ed0;color:#fff}.panel.is-info .panel-tabs a.is-active{border-bottom-color:#3e8ed0}.panel.is-info .panel-block.is-active .panel-icon{color:#3e8ed0}.panel.is-success .panel-heading{background-color:#48c78e;color:#fff}.panel.is-success .panel-tabs a.is-active{border-bottom-color:#48c78e}.panel.is-success .panel-block.is-active .panel-icon{color:#48c78e}.panel.is-warning .panel-heading{background-color:#ffe08a;color:rgba(0,0,0,.7)}.panel.is-warning .panel-tabs a.is-active{border-bottom-color:#ffe08a}.panel.is-warning .panel-block.is-active .panel-icon{color:#ffe08a}.panel.is-danger .panel-heading{background-color:#f14668;color:#fff}.panel.is-danger .panel-tabs a.is-active{border-bottom-color:#f14668}.panel.is-danger .panel-block.is-active .panel-icon{color:#f14668}.panel-block:not(:last-child),.panel-tabs:not(:last-child){border-bottom:1px solid #ededed}.panel-heading{background-color:#ededed;border-radius:6px 6px 0 0;color:#363636;font-size:1.25em;font-weight:700;line-height:1.25;padding:.75em 1em}.panel-tabs{align-items:flex-end;display:flex;font-size:.875em;justify-content:center}.panel-tabs a{border-bottom:1px solid #dbdbdb;margin-bottom:-1px;padding:.5em}.panel-tabs a.is-active{border-bottom-color:#4a4a4a;color:#363636}.panel-list a{color:#4a4a4a}.panel-list a:hover{color:#485fc7}.panel-block{align-items:center;color:#363636;display:flex;justify-content:flex-start;padding:.5em .75em}.panel-block input[type=checkbox]{margin-right:.75em}.panel-block>.control{flex-grow:1;flex-shrink:1;width:100%}.panel-block.is-wrapped{flex-wrap:wrap}.panel-block.is-active{border-left-color:#485fc7;color:#363636}.panel-block.is-active .panel-icon{color:#485fc7}.panel-block:last-child{border-bottom-left-radius:6px;border-bottom-right-radius:6px}a.panel-block,label.panel-block{cursor:pointer}a.panel-block:hover,label.panel-block:hover{background-color:#f5f5f5}.panel-icon{display:inline-block;font-size:14px;height:1em;line-height:1em;text-align:center;vertical-align:top;width:1em;color:#7a7a7a;margin-right:.75em}.panel-icon .fa{font-size:inherit;line-height:inherit}.tabs{-webkit-overflow-scrolling:touch;align-items:stretch;display:flex;font-size:1rem;justify-content:space-between;overflow:hidden;overflow-x:auto;white-space:nowrap}.tabs a{align-items:center;border-bottom-color:#dbdbdb;border-bottom-style:solid;border-bottom-width:1px;color:#4a4a4a;display:flex;justify-content:center;margin-bottom:-1px;padding:.5em 1em;vertical-align:top}.tabs a:hover{border-bottom-color:#363636;color:#363636}.tabs li{display:block}.tabs li.is-active a{border-bottom-color:#485fc7;color:#485fc7}.tabs ul{align-items:center;border-bottom-color:#dbdbdb;border-bottom-style:solid;border-bottom-width:1px;display:flex;flex-grow:1;flex-shrink:0;justify-content:flex-start}.tabs ul.is-left{padding-right:.75em}.tabs ul.is-center{flex:none;justify-content:center;padding-left:.75em;padding-right:.75em}.tabs ul.is-right{justify-content:flex-end;padding-left:.75em}.tabs .icon:first-child{margin-right:.5em}.tabs .icon:last-child{margin-left:.5em}.tabs.is-centered ul{justify-content:center}.tabs.is-right ul{justify-content:flex-end}.tabs.is-boxed a{border:1px solid transparent;border-radius:4px 4px 0 0}.tabs.is-boxed a:hover{background-color:#f5f5f5;border-bottom-color:#dbdbdb}.tabs.is-boxed li.is-active a{background-color:#fff;border-color:#dbdbdb;border-bottom-color:transparent!important}.tabs.is-fullwidth li{flex-grow:1;flex-shrink:0}.tabs.is-toggle a{border-color:#dbdbdb;border-style:solid;border-width:1px;margin-bottom:0;position:relative}.tabs.is-toggle a:hover{background-color:#f5f5f5;border-color:#b5b5b5;z-index:2}.tabs.is-toggle li+li{margin-left:-1px}.tabs.is-toggle li:first-child a{border-top-left-radius:4px;border-bottom-left-radius:4px}.tabs.is-toggle li:last-child a{border-top-right-radius:4px;border-bottom-right-radius:4px}.tabs.is-toggle li.is-active a{background-color:#485fc7;border-color:#485fc7;color:#fff;z-index:1}.tabs.is-toggle ul{border-bottom:none}.tabs.is-toggle.is-toggle-rounded li:first-child a{border-bottom-left-radius:9999px;border-top-left-radius:9999px;padding-left:1.25em}.tabs.is-toggle.is-toggle-rounded li:last-child a{border-bottom-right-radius:9999px;border-top-right-radius:9999px;padding-right:1.25em}.tabs.is-small{font-size:.75rem}.tabs.is-medium{font-size:1.25rem}.tabs.is-large{font-size:1.5rem}.column{display:block;flex-basis:0;flex-grow:1;flex-shrink:1;padding:.75rem}.columns.is-mobile>.column.is-narrow{flex:none;width:unset}.columns.is-mobile>.column.is-full{flex:none;width:100%}.columns.is-mobile>.column.is-three-quarters{flex:none;width:75%}.columns.is-mobile>.column.is-two-thirds{flex:none;width:66.6666%}.columns.is-mobile>.column.is-half{flex:none;width:50%}.columns.is-mobile>.column.is-one-third{flex:none;width:33.3333%}.columns.is-mobile>.column.is-one-quarter{flex:none;width:25%}.columns.is-mobile>.column.is-one-fifth{flex:none;width:20%}.columns.is-mobile>.column.is-two-fifths{flex:none;width:40%}.columns.is-mobile>.column.is-three-fifths{flex:none;width:60%}.columns.is-mobile>.column.is-four-fifths{flex:none;width:80%}.columns.is-mobile>.column.is-offset-three-quarters{margin-left:75%}.columns.is-mobile>.column.is-offset-two-thirds{margin-left:66.6666%}.columns.is-mobile>.column.is-offset-half{margin-left:50%}.columns.is-mobile>.column.is-offset-one-third{margin-left:33.3333%}.columns.is-mobile>.column.is-offset-one-quarter{margin-left:25%}.columns.is-mobile>.column.is-offset-one-fifth{margin-left:20%}.columns.is-mobile>.column.is-offset-two-fifths{margin-left:40%}.columns.is-mobile>.column.is-offset-three-fifths{margin-left:60%}.columns.is-mobile>.column.is-offset-four-fifths{margin-left:80%}.columns.is-mobile>.column.is-0{flex:none;width:0%}.columns.is-mobile>.column.is-offset-0{margin-left:0}.columns.is-mobile>.column.is-1{flex:none;width:8.33333%}.columns.is-mobile>.column.is-offset-1{margin-left:8.33333%}.columns.is-mobile>.column.is-2{flex:none;width:16.66667%}.columns.is-mobile>.column.is-offset-2{margin-left:16.66667%}.columns.is-mobile>.column.is-3{flex:none;width:25%}.columns.is-mobile>.column.is-offset-3{margin-left:25%}.columns.is-mobile>.column.is-4{flex:none;width:33.33333%}.columns.is-mobile>.column.is-offset-4{margin-left:33.33333%}.columns.is-mobile>.column.is-5{flex:none;width:41.66667%}.columns.is-mobile>.column.is-offset-5{margin-left:41.66667%}.columns.is-mobile>.column.is-6{flex:none;width:50%}.columns.is-mobile>.column.is-offset-6{margin-left:50%}.columns.is-mobile>.column.is-7{flex:none;width:58.33333%}.columns.is-mobile>.column.is-offset-7{margin-left:58.33333%}.columns.is-mobile>.column.is-8{flex:none;width:66.66667%}.columns.is-mobile>.column.is-offset-8{margin-left:66.66667%}.columns.is-mobile>.column.is-9{flex:none;width:75%}.columns.is-mobile>.column.is-offset-9{margin-left:75%}.columns.is-mobile>.column.is-10{flex:none;width:83.33333%}.columns.is-mobile>.column.is-offset-10{margin-left:83.33333%}.columns.is-mobile>.column.is-11{flex:none;width:91.66667%}.columns.is-mobile>.column.is-offset-11{margin-left:91.66667%}.columns.is-mobile>.column.is-12{flex:none;width:100%}.columns.is-mobile>.column.is-offset-12{margin-left:100%}@media screen and (max-width:768px){.column.is-narrow-mobile{flex:none;width:unset}.column.is-full-mobile{flex:none;width:100%}.column.is-three-quarters-mobile{flex:none;width:75%}.column.is-two-thirds-mobile{flex:none;width:66.6666%}.column.is-half-mobile{flex:none;width:50%}.column.is-one-third-mobile{flex:none;width:33.3333%}.column.is-one-quarter-mobile{flex:none;width:25%}.column.is-one-fifth-mobile{flex:none;width:20%}.column.is-two-fifths-mobile{flex:none;width:40%}.column.is-three-fifths-mobile{flex:none;width:60%}.column.is-four-fifths-mobile{flex:none;width:80%}.column.is-offset-three-quarters-mobile{margin-left:75%}.column.is-offset-two-thirds-mobile{margin-left:66.6666%}.column.is-offset-half-mobile{margin-left:50%}.column.is-offset-one-third-mobile{margin-left:33.3333%}.column.is-offset-one-quarter-mobile{margin-left:25%}.column.is-offset-one-fifth-mobile{margin-left:20%}.column.is-offset-two-fifths-mobile{margin-left:40%}.column.is-offset-three-fifths-mobile{margin-left:60%}.column.is-offset-four-fifths-mobile{margin-left:80%}.column.is-0-mobile{flex:none;width:0%}.column.is-offset-0-mobile{margin-left:0}.column.is-1-mobile{flex:none;width:8.33333%}.column.is-offset-1-mobile{margin-left:8.33333%}.column.is-2-mobile{flex:none;width:16.66667%}.column.is-offset-2-mobile{margin-left:16.66667%}.column.is-3-mobile{flex:none;width:25%}.column.is-offset-3-mobile{margin-left:25%}.column.is-4-mobile{flex:none;width:33.33333%}.column.is-offset-4-mobile{margin-left:33.33333%}.column.is-5-mobile{flex:none;width:41.66667%}.column.is-offset-5-mobile{margin-left:41.66667%}.column.is-6-mobile{flex:none;width:50%}.column.is-offset-6-mobile{margin-left:50%}.column.is-7-mobile{flex:none;width:58.33333%}.column.is-offset-7-mobile{margin-left:58.33333%}.column.is-8-mobile{flex:none;width:66.66667%}.column.is-offset-8-mobile{margin-left:66.66667%}.column.is-9-mobile{flex:none;width:75%}.column.is-offset-9-mobile{margin-left:75%}.column.is-10-mobile{flex:none;width:83.33333%}.column.is-offset-10-mobile{margin-left:83.33333%}.column.is-11-mobile{flex:none;width:91.66667%}.column.is-offset-11-mobile{margin-left:91.66667%}.column.is-12-mobile{flex:none;width:100%}.column.is-offset-12-mobile{margin-left:100%}}@media screen and (min-width:769px),print{.column.is-narrow,.column.is-narrow-tablet{flex:none;width:unset}.column.is-full,.column.is-full-tablet{flex:none;width:100%}.column.is-three-quarters,.column.is-three-quarters-tablet{flex:none;width:75%}.column.is-two-thirds,.column.is-two-thirds-tablet{flex:none;width:66.6666%}.column.is-half,.column.is-half-tablet{flex:none;width:50%}.column.is-one-third,.column.is-one-third-tablet{flex:none;width:33.3333%}.column.is-one-quarter,.column.is-one-quarter-tablet{flex:none;width:25%}.column.is-one-fifth,.column.is-one-fifth-tablet{flex:none;width:20%}.column.is-two-fifths,.column.is-two-fifths-tablet{flex:none;width:40%}.column.is-three-fifths,.column.is-three-fifths-tablet{flex:none;width:60%}.column.is-four-fifths,.column.is-four-fifths-tablet{flex:none;width:80%}.column.is-offset-three-quarters,.column.is-offset-three-quarters-tablet{margin-left:75%}.column.is-offset-two-thirds,.column.is-offset-two-thirds-tablet{margin-left:66.6666%}.column.is-offset-half,.column.is-offset-half-tablet{margin-left:50%}.column.is-offset-one-third,.column.is-offset-one-third-tablet{margin-left:33.3333%}.column.is-offset-one-quarter,.column.is-offset-one-quarter-tablet{margin-left:25%}.column.is-offset-one-fifth,.column.is-offset-one-fifth-tablet{margin-left:20%}.column.is-offset-two-fifths,.column.is-offset-two-fifths-tablet{margin-left:40%}.column.is-offset-three-fifths,.column.is-offset-three-fifths-tablet{margin-left:60%}.column.is-offset-four-fifths,.column.is-offset-four-fifths-tablet{margin-left:80%}.column.is-0,.column.is-0-tablet{flex:none;width:0%}.column.is-offset-0,.column.is-offset-0-tablet{margin-left:0}.column.is-1,.column.is-1-tablet{flex:none;width:8.33333%}.column.is-offset-1,.column.is-offset-1-tablet{margin-left:8.33333%}.column.is-2,.column.is-2-tablet{flex:none;width:16.66667%}.column.is-offset-2,.column.is-offset-2-tablet{margin-left:16.66667%}.column.is-3,.column.is-3-tablet{flex:none;width:25%}.column.is-offset-3,.column.is-offset-3-tablet{margin-left:25%}.column.is-4,.column.is-4-tablet{flex:none;width:33.33333%}.column.is-offset-4,.column.is-offset-4-tablet{margin-left:33.33333%}.column.is-5,.column.is-5-tablet{flex:none;width:41.66667%}.column.is-offset-5,.column.is-offset-5-tablet{margin-left:41.66667%}.column.is-6,.column.is-6-tablet{flex:none;width:50%}.column.is-offset-6,.column.is-offset-6-tablet{margin-left:50%}.column.is-7,.column.is-7-tablet{flex:none;width:58.33333%}.column.is-offset-7,.column.is-offset-7-tablet{margin-left:58.33333%}.column.is-8,.column.is-8-tablet{flex:none;width:66.66667%}.column.is-offset-8,.column.is-offset-8-tablet{margin-left:66.66667%}.column.is-9,.column.is-9-tablet{flex:none;width:75%}.column.is-offset-9,.column.is-offset-9-tablet{margin-left:75%}.column.is-10,.column.is-10-tablet{flex:none;width:83.33333%}.column.is-offset-10,.column.is-offset-10-tablet{margin-left:83.33333%}.column.is-11,.column.is-11-tablet{flex:none;width:91.66667%}.column.is-offset-11,.column.is-offset-11-tablet{margin-left:91.66667%}.column.is-12,.column.is-12-tablet{flex:none;width:100%}.column.is-offset-12,.column.is-offset-12-tablet{margin-left:100%}}@media screen and (max-width:1023px){.column.is-narrow-touch{flex:none;width:unset}.column.is-full-touch{flex:none;width:100%}.column.is-three-quarters-touch{flex:none;width:75%}.column.is-two-thirds-touch{flex:none;width:66.6666%}.column.is-half-touch{flex:none;width:50%}.column.is-one-third-touch{flex:none;width:33.3333%}.column.is-one-quarter-touch{flex:none;width:25%}.column.is-one-fifth-touch{flex:none;width:20%}.column.is-two-fifths-touch{flex:none;width:40%}.column.is-three-fifths-touch{flex:none;width:60%}.column.is-four-fifths-touch{flex:none;width:80%}.column.is-offset-three-quarters-touch{margin-left:75%}.column.is-offset-two-thirds-touch{margin-left:66.6666%}.column.is-offset-half-touch{margin-left:50%}.column.is-offset-one-third-touch{margin-left:33.3333%}.column.is-offset-one-quarter-touch{margin-left:25%}.column.is-offset-one-fifth-touch{margin-left:20%}.column.is-offset-two-fifths-touch{margin-left:40%}.column.is-offset-three-fifths-touch{margin-left:60%}.column.is-offset-four-fifths-touch{margin-left:80%}.column.is-0-touch{flex:none;width:0%}.column.is-offset-0-touch{margin-left:0}.column.is-1-touch{flex:none;width:8.33333%}.column.is-offset-1-touch{margin-left:8.33333%}.column.is-2-touch{flex:none;width:16.66667%}.column.is-offset-2-touch{margin-left:16.66667%}.column.is-3-touch{flex:none;width:25%}.column.is-offset-3-touch{margin-left:25%}.column.is-4-touch{flex:none;width:33.33333%}.column.is-offset-4-touch{margin-left:33.33333%}.column.is-5-touch{flex:none;width:41.66667%}.column.is-offset-5-touch{margin-left:41.66667%}.column.is-6-touch{flex:none;width:50%}.column.is-offset-6-touch{margin-left:50%}.column.is-7-touch{flex:none;width:58.33333%}.column.is-offset-7-touch{margin-left:58.33333%}.column.is-8-touch{flex:none;width:66.66667%}.column.is-offset-8-touch{margin-left:66.66667%}.column.is-9-touch{flex:none;width:75%}.column.is-offset-9-touch{margin-left:75%}.column.is-10-touch{flex:none;width:83.33333%}.column.is-offset-10-touch{margin-left:83.33333%}.column.is-11-touch{flex:none;width:91.66667%}.column.is-offset-11-touch{margin-left:91.66667%}.column.is-12-touch{flex:none;width:100%}.column.is-offset-12-touch{margin-left:100%}}@media screen and (min-width:1024px){.column.is-narrow-desktop{flex:none;width:unset}.column.is-full-desktop{flex:none;width:100%}.column.is-three-quarters-desktop{flex:none;width:75%}.column.is-two-thirds-desktop{flex:none;width:66.6666%}.column.is-half-desktop{flex:none;width:50%}.column.is-one-third-desktop{flex:none;width:33.3333%}.column.is-one-quarter-desktop{flex:none;width:25%}.column.is-one-fifth-desktop{flex:none;width:20%}.column.is-two-fifths-desktop{flex:none;width:40%}.column.is-three-fifths-desktop{flex:none;width:60%}.column.is-four-fifths-desktop{flex:none;width:80%}.column.is-offset-three-quarters-desktop{margin-left:75%}.column.is-offset-two-thirds-desktop{margin-left:66.6666%}.column.is-offset-half-desktop{margin-left:50%}.column.is-offset-one-third-desktop{margin-left:33.3333%}.column.is-offset-one-quarter-desktop{margin-left:25%}.column.is-offset-one-fifth-desktop{margin-left:20%}.column.is-offset-two-fifths-desktop{margin-left:40%}.column.is-offset-three-fifths-desktop{margin-left:60%}.column.is-offset-four-fifths-desktop{margin-left:80%}.column.is-0-desktop{flex:none;width:0%}.column.is-offset-0-desktop{margin-left:0}.column.is-1-desktop{flex:none;width:8.33333%}.column.is-offset-1-desktop{margin-left:8.33333%}.column.is-2-desktop{flex:none;width:16.66667%}.column.is-offset-2-desktop{margin-left:16.66667%}.column.is-3-desktop{flex:none;width:25%}.column.is-offset-3-desktop{margin-left:25%}.column.is-4-desktop{flex:none;width:33.33333%}.column.is-offset-4-desktop{margin-left:33.33333%}.column.is-5-desktop{flex:none;width:41.66667%}.column.is-offset-5-desktop{margin-left:41.66667%}.column.is-6-desktop{flex:none;width:50%}.column.is-offset-6-desktop{margin-left:50%}.column.is-7-desktop{flex:none;width:58.33333%}.column.is-offset-7-desktop{margin-left:58.33333%}.column.is-8-desktop{flex:none;width:66.66667%}.column.is-offset-8-desktop{margin-left:66.66667%}.column.is-9-desktop{flex:none;width:75%}.column.is-offset-9-desktop{margin-left:75%}.column.is-10-desktop{flex:none;width:83.33333%}.column.is-offset-10-desktop{margin-left:83.33333%}.column.is-11-desktop{flex:none;width:91.66667%}.column.is-offset-11-desktop{margin-left:91.66667%}.column.is-12-desktop{flex:none;width:100%}.column.is-offset-12-desktop{margin-left:100%}}@media screen and (min-width:1216px){.column.is-narrow-widescreen{flex:none;width:unset}.column.is-full-widescreen{flex:none;width:100%}.column.is-three-quarters-widescreen{flex:none;width:75%}.column.is-two-thirds-widescreen{flex:none;width:66.6666%}.column.is-half-widescreen{flex:none;width:50%}.column.is-one-third-widescreen{flex:none;width:33.3333%}.column.is-one-quarter-widescreen{flex:none;width:25%}.column.is-one-fifth-widescreen{flex:none;width:20%}.column.is-two-fifths-widescreen{flex:none;width:40%}.column.is-three-fifths-widescreen{flex:none;width:60%}.column.is-four-fifths-widescreen{flex:none;width:80%}.column.is-offset-three-quarters-widescreen{margin-left:75%}.column.is-offset-two-thirds-widescreen{margin-left:66.6666%}.column.is-offset-half-widescreen{margin-left:50%}.column.is-offset-one-third-widescreen{margin-left:33.3333%}.column.is-offset-one-quarter-widescreen{margin-left:25%}.column.is-offset-one-fifth-widescreen{margin-left:20%}.column.is-offset-two-fifths-widescreen{margin-left:40%}.column.is-offset-three-fifths-widescreen{margin-left:60%}.column.is-offset-four-fifths-widescreen{margin-left:80%}.column.is-0-widescreen{flex:none;width:0%}.column.is-offset-0-widescreen{margin-left:0}.column.is-1-widescreen{flex:none;width:8.33333%}.column.is-offset-1-widescreen{margin-left:8.33333%}.column.is-2-widescreen{flex:none;width:16.66667%}.column.is-offset-2-widescreen{margin-left:16.66667%}.column.is-3-widescreen{flex:none;width:25%}.column.is-offset-3-widescreen{margin-left:25%}.column.is-4-widescreen{flex:none;width:33.33333%}.column.is-offset-4-widescreen{margin-left:33.33333%}.column.is-5-widescreen{flex:none;width:41.66667%}.column.is-offset-5-widescreen{margin-left:41.66667%}.column.is-6-widescreen{flex:none;width:50%}.column.is-offset-6-widescreen{margin-left:50%}.column.is-7-widescreen{flex:none;width:58.33333%}.column.is-offset-7-widescreen{margin-left:58.33333%}.column.is-8-widescreen{flex:none;width:66.66667%}.column.is-offset-8-widescreen{margin-left:66.66667%}.column.is-9-widescreen{flex:none;width:75%}.column.is-offset-9-widescreen{margin-left:75%}.column.is-10-widescreen{flex:none;width:83.33333%}.column.is-offset-10-widescreen{margin-left:83.33333%}.column.is-11-widescreen{flex:none;width:91.66667%}.column.is-offset-11-widescreen{margin-left:91.66667%}.column.is-12-widescreen{flex:none;width:100%}.column.is-offset-12-widescreen{margin-left:100%}}@media screen and (min-width:1408px){.column.is-narrow-fullhd{flex:none;width:unset}.column.is-full-fullhd{flex:none;width:100%}.column.is-three-quarters-fullhd{flex:none;width:75%}.column.is-two-thirds-fullhd{flex:none;width:66.6666%}.column.is-half-fullhd{flex:none;width:50%}.column.is-one-third-fullhd{flex:none;width:33.3333%}.column.is-one-quarter-fullhd{flex:none;width:25%}.column.is-one-fifth-fullhd{flex:none;width:20%}.column.is-two-fifths-fullhd{flex:none;width:40%}.column.is-three-fifths-fullhd{flex:none;width:60%}.column.is-four-fifths-fullhd{flex:none;width:80%}.column.is-offset-three-quarters-fullhd{margin-left:75%}.column.is-offset-two-thirds-fullhd{margin-left:66.6666%}.column.is-offset-half-fullhd{margin-left:50%}.column.is-offset-one-third-fullhd{margin-left:33.3333%}.column.is-offset-one-quarter-fullhd{margin-left:25%}.column.is-offset-one-fifth-fullhd{margin-left:20%}.column.is-offset-two-fifths-fullhd{margin-left:40%}.column.is-offset-three-fifths-fullhd{margin-left:60%}.column.is-offset-four-fifths-fullhd{margin-left:80%}.column.is-0-fullhd{flex:none;width:0%}.column.is-offset-0-fullhd{margin-left:0}.column.is-1-fullhd{flex:none;width:8.33333%}.column.is-offset-1-fullhd{margin-left:8.33333%}.column.is-2-fullhd{flex:none;width:16.66667%}.column.is-offset-2-fullhd{margin-left:16.66667%}.column.is-3-fullhd{flex:none;width:25%}.column.is-offset-3-fullhd{margin-left:25%}.column.is-4-fullhd{flex:none;width:33.33333%}.column.is-offset-4-fullhd{margin-left:33.33333%}.column.is-5-fullhd{flex:none;width:41.66667%}.column.is-offset-5-fullhd{margin-left:41.66667%}.column.is-6-fullhd{flex:none;width:50%}.column.is-offset-6-fullhd{margin-left:50%}.column.is-7-fullhd{flex:none;width:58.33333%}.column.is-offset-7-fullhd{margin-left:58.33333%}.column.is-8-fullhd{flex:none;width:66.66667%}.column.is-offset-8-fullhd{margin-left:66.66667%}.column.is-9-fullhd{flex:none;width:75%}.column.is-offset-9-fullhd{margin-left:75%}.column.is-10-fullhd{flex:none;width:83.33333%}.column.is-offset-10-fullhd{margin-left:83.33333%}.column.is-11-fullhd{flex:none;width:91.66667%}.column.is-offset-11-fullhd{margin-left:91.66667%}.column.is-12-fullhd{flex:none;width:100%}.column.is-offset-12-fullhd{margin-left:100%}}.columns{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}.columns:last-child{margin-bottom:-.75rem}.columns:not(:last-child){margin-bottom:calc(1.5rem - .75rem)}.columns.is-centered{justify-content:center}.columns.is-gapless{margin-left:0;margin-right:0;margin-top:0}.columns.is-gapless>.column{margin:0;padding:0!important}.columns.is-gapless:not(:last-child){margin-bottom:1.5rem}.columns.is-gapless:last-child{margin-bottom:0}.columns.is-mobile{display:flex}.columns.is-multiline{flex-wrap:wrap}.columns.is-vcentered{align-items:center}@media screen and (min-width:769px),print{.columns:not(.is-desktop){display:flex}}@media screen and (min-width:1024px){.columns.is-desktop{display:flex}}.columns.is-variable{--columnGap:0.75rem;margin-left:calc(-1 * var(--columnGap));margin-right:calc(-1 * var(--columnGap))}.columns.is-variable>.column{padding-left:var(--columnGap);padding-right:var(--columnGap)}.columns.is-variable.is-0{--columnGap:0rem}@media screen and (max-width:768px){.columns.is-variable.is-0-mobile{--columnGap:0rem}}@media screen and (min-width:769px),print{.columns.is-variable.is-0-tablet{--columnGap:0rem}}@media screen and (min-width:769px) and (max-width:1023px){.columns.is-variable.is-0-tablet-only{--columnGap:0rem}}@media screen and (max-width:1023px){.columns.is-variable.is-0-touch{--columnGap:0rem}}@media screen and (min-width:1024px){.columns.is-variable.is-0-desktop{--columnGap:0rem}}@media screen and (min-width:1024px) and (max-width:1215px){.columns.is-variable.is-0-desktop-only{--columnGap:0rem}}@media screen and (min-width:1216px){.columns.is-variable.is-0-widescreen{--columnGap:0rem}}@media screen and (min-width:1216px) and (max-width:1407px){.columns.is-variable.is-0-widescreen-only{--columnGap:0rem}}@media screen and (min-width:1408px){.columns.is-variable.is-0-fullhd{--columnGap:0rem}}.columns.is-variable.is-1{--columnGap:0.25rem}@media screen and (max-width:768px){.columns.is-variable.is-1-mobile{--columnGap:0.25rem}}@media screen and (min-width:769px),print{.columns.is-variable.is-1-tablet{--columnGap:0.25rem}}@media screen and (min-width:769px) and (max-width:1023px){.columns.is-variable.is-1-tablet-only{--columnGap:0.25rem}}@media screen and (max-width:1023px){.columns.is-variable.is-1-touch{--columnGap:0.25rem}}@media screen and (min-width:1024px){.columns.is-variable.is-1-desktop{--columnGap:0.25rem}}@media screen and (min-width:1024px) and (max-width:1215px){.columns.is-variable.is-1-desktop-only{--columnGap:0.25rem}}@media screen and (min-width:1216px){.columns.is-variable.is-1-widescreen{--columnGap:0.25rem}}@media screen and (min-width:1216px) and (max-width:1407px){.columns.is-variable.is-1-widescreen-only{--columnGap:0.25rem}}@media screen and (min-width:1408px){.columns.is-variable.is-1-fullhd{--columnGap:0.25rem}}.columns.is-variable.is-2{--columnGap:0.5rem}@media screen and (max-width:768px){.columns.is-variable.is-2-mobile{--columnGap:0.5rem}}@media screen and (min-width:769px),print{.columns.is-variable.is-2-tablet{--columnGap:0.5rem}}@media screen and (min-width:769px) and (max-width:1023px){.columns.is-variable.is-2-tablet-only{--columnGap:0.5rem}}@media screen and (max-width:1023px){.columns.is-variable.is-2-touch{--columnGap:0.5rem}}@media screen and (min-width:1024px){.columns.is-variable.is-2-desktop{--columnGap:0.5rem}}@media screen and (min-width:1024px) and (max-width:1215px){.columns.is-variable.is-2-desktop-only{--columnGap:0.5rem}}@media screen and (min-width:1216px){.columns.is-variable.is-2-widescreen{--columnGap:0.5rem}}@media screen and (min-width:1216px) and (max-width:1407px){.columns.is-variable.is-2-widescreen-only{--columnGap:0.5rem}}@media screen and (min-width:1408px){.columns.is-variable.is-2-fullhd{--columnGap:0.5rem}}.columns.is-variable.is-3{--columnGap:0.75rem}@media screen and (max-width:768px){.columns.is-variable.is-3-mobile{--columnGap:0.75rem}}@media screen and (min-width:769px),print{.columns.is-variable.is-3-tablet{--columnGap:0.75rem}}@media screen and (min-width:769px) and (max-width:1023px){.columns.is-variable.is-3-tablet-only{--columnGap:0.75rem}}@media screen and (max-width:1023px){.columns.is-variable.is-3-touch{--columnGap:0.75rem}}@media screen and (min-width:1024px){.columns.is-variable.is-3-desktop{--columnGap:0.75rem}}@media screen and (min-width:1024px) and (max-width:1215px){.columns.is-variable.is-3-desktop-only{--columnGap:0.75rem}}@media screen and (min-width:1216px){.columns.is-variable.is-3-widescreen{--columnGap:0.75rem}}@media screen and (min-width:1216px) and (max-width:1407px){.columns.is-variable.is-3-widescreen-only{--columnGap:0.75rem}}@media screen and (min-width:1408px){.columns.is-variable.is-3-fullhd{--columnGap:0.75rem}}.columns.is-variable.is-4{--columnGap:1rem}@media screen and (max-width:768px){.columns.is-variable.is-4-mobile{--columnGap:1rem}}@media screen and (min-width:769px),print{.columns.is-variable.is-4-tablet{--columnGap:1rem}}@media screen and (min-width:769px) and (max-width:1023px){.columns.is-variable.is-4-tablet-only{--columnGap:1rem}}@media screen and (max-width:1023px){.columns.is-variable.is-4-touch{--columnGap:1rem}}@media screen and (min-width:1024px){.columns.is-variable.is-4-desktop{--columnGap:1rem}}@media screen and (min-width:1024px) and (max-width:1215px){.columns.is-variable.is-4-desktop-only{--columnGap:1rem}}@media screen and (min-width:1216px){.columns.is-variable.is-4-widescreen{--columnGap:1rem}}@media screen and (min-width:1216px) and (max-width:1407px){.columns.is-variable.is-4-widescreen-only{--columnGap:1rem}}@media screen and (min-width:1408px){.columns.is-variable.is-4-fullhd{--columnGap:1rem}}.columns.is-variable.is-5{--columnGap:1.25rem}@media screen and (max-width:768px){.columns.is-variable.is-5-mobile{--columnGap:1.25rem}}@media screen and (min-width:769px),print{.columns.is-variable.is-5-tablet{--columnGap:1.25rem}}@media screen and (min-width:769px) and (max-width:1023px){.columns.is-variable.is-5-tablet-only{--columnGap:1.25rem}}@media screen and (max-width:1023px){.columns.is-variable.is-5-touch{--columnGap:1.25rem}}@media screen and (min-width:1024px){.columns.is-variable.is-5-desktop{--columnGap:1.25rem}}@media screen and (min-width:1024px) and (max-width:1215px){.columns.is-variable.is-5-desktop-only{--columnGap:1.25rem}}@media screen and (min-width:1216px){.columns.is-variable.is-5-widescreen{--columnGap:1.25rem}}@media screen and (min-width:1216px) and (max-width:1407px){.columns.is-variable.is-5-widescreen-only{--columnGap:1.25rem}}@media screen and (min-width:1408px){.columns.is-variable.is-5-fullhd{--columnGap:1.25rem}}.columns.is-variable.is-6{--columnGap:1.5rem}@media screen and (max-width:768px){.columns.is-variable.is-6-mobile{--columnGap:1.5rem}}@media screen and (min-width:769px),print{.columns.is-variable.is-6-tablet{--columnGap:1.5rem}}@media screen and (min-width:769px) and (max-width:1023px){.columns.is-variable.is-6-tablet-only{--columnGap:1.5rem}}@media screen and (max-width:1023px){.columns.is-variable.is-6-touch{--columnGap:1.5rem}}@media screen and (min-width:1024px){.columns.is-variable.is-6-desktop{--columnGap:1.5rem}}@media screen and (min-width:1024px) and (max-width:1215px){.columns.is-variable.is-6-desktop-only{--columnGap:1.5rem}}@media screen and (min-width:1216px){.columns.is-variable.is-6-widescreen{--columnGap:1.5rem}}@media screen and (min-width:1216px) and (max-width:1407px){.columns.is-variable.is-6-widescreen-only{--columnGap:1.5rem}}@media screen and (min-width:1408px){.columns.is-variable.is-6-fullhd{--columnGap:1.5rem}}.columns.is-variable.is-7{--columnGap:1.75rem}@media screen and (max-width:768px){.columns.is-variable.is-7-mobile{--columnGap:1.75rem}}@media screen and (min-width:769px),print{.columns.is-variable.is-7-tablet{--columnGap:1.75rem}}@media screen and (min-width:769px) and (max-width:1023px){.columns.is-variable.is-7-tablet-only{--columnGap:1.75rem}}@media screen and (max-width:1023px){.columns.is-variable.is-7-touch{--columnGap:1.75rem}}@media screen and (min-width:1024px){.columns.is-variable.is-7-desktop{--columnGap:1.75rem}}@media screen and (min-width:1024px) and (max-width:1215px){.columns.is-variable.is-7-desktop-only{--columnGap:1.75rem}}@media screen and (min-width:1216px){.columns.is-variable.is-7-widescreen{--columnGap:1.75rem}}@media screen and (min-width:1216px) and (max-width:1407px){.columns.is-variable.is-7-widescreen-only{--columnGap:1.75rem}}@media screen and (min-width:1408px){.columns.is-variable.is-7-fullhd{--columnGap:1.75rem}}.columns.is-variable.is-8{--columnGap:2rem}@media screen and (max-width:768px){.columns.is-variable.is-8-mobile{--columnGap:2rem}}@media screen and (min-width:769px),print{.columns.is-variable.is-8-tablet{--columnGap:2rem}}@media screen and (min-width:769px) and (max-width:1023px){.columns.is-variable.is-8-tablet-only{--columnGap:2rem}}@media screen and (max-width:1023px){.columns.is-variable.is-8-touch{--columnGap:2rem}}@media screen and (min-width:1024px){.columns.is-variable.is-8-desktop{--columnGap:2rem}}@media screen and (min-width:1024px) and (max-width:1215px){.columns.is-variable.is-8-desktop-only{--columnGap:2rem}}@media screen and (min-width:1216px){.columns.is-variable.is-8-widescreen{--columnGap:2rem}}@media screen and (min-width:1216px) and (max-width:1407px){.columns.is-variable.is-8-widescreen-only{--columnGap:2rem}}@media screen and (min-width:1408px){.columns.is-variable.is-8-fullhd{--columnGap:2rem}}.tile{align-items:stretch;display:block;flex-basis:0;flex-grow:1;flex-shrink:1;min-height:-webkit-min-content;min-height:-moz-min-content;min-height:min-content}.tile.is-ancestor{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}.tile.is-ancestor:last-child{margin-bottom:-.75rem}.tile.is-ancestor:not(:last-child){margin-bottom:.75rem}.tile.is-child{margin:0!important}.tile.is-parent{padding:.75rem}.tile.is-vertical{flex-direction:column}.tile.is-vertical>.tile.is-child:not(:last-child){margin-bottom:1.5rem!important}@media screen and (min-width:769px),print{.tile:not(.is-child){display:flex}.tile.is-1{flex:none;width:8.33333%}.tile.is-2{flex:none;width:16.66667%}.tile.is-3{flex:none;width:25%}.tile.is-4{flex:none;width:33.33333%}.tile.is-5{flex:none;width:41.66667%}.tile.is-6{flex:none;width:50%}.tile.is-7{flex:none;width:58.33333%}.tile.is-8{flex:none;width:66.66667%}.tile.is-9{flex:none;width:75%}.tile.is-10{flex:none;width:83.33333%}.tile.is-11{flex:none;width:91.66667%}.tile.is-12{flex:none;width:100%}}.has-text-white{color:#fff!important}a.has-text-white:focus,a.has-text-white:hover{color:#e6e6e6!important}.has-background-white{background-color:#fff!important}.has-text-black{color:#0a0a0a!important}a.has-text-black:focus,a.has-text-black:hover{color:#000!important}.has-background-black{background-color:#0a0a0a!important}.has-text-light{color:#f5f5f5!important}a.has-text-light:focus,a.has-text-light:hover{color:#dbdbdb!important}.has-background-light{background-color:#f5f5f5!important}.has-text-dark{color:#363636!important}a.has-text-dark:focus,a.has-text-dark:hover{color:#1c1c1c!important}.has-background-dark{background-color:#363636!important}.has-text-primary{color:#00d1b2!important}a.has-text-primary:focus,a.has-text-primary:hover{color:#009e86!important}.has-background-primary{background-color:#00d1b2!important}.has-text-primary-light{color:#ebfffc!important}a.has-text-primary-light:focus,a.has-text-primary-light:hover{color:#b8fff4!important}.has-background-primary-light{background-color:#ebfffc!important}.has-text-primary-dark{color:#00947e!important}a.has-text-primary-dark:focus,a.has-text-primary-dark:hover{color:#00c7a9!important}.has-background-primary-dark{background-color:#00947e!important}.has-text-link{color:#485fc7!important}a.has-text-link:focus,a.has-text-link:hover{color:#3449a8!important}.has-background-link{background-color:#485fc7!important}.has-text-link-light{color:#eff1fa!important}a.has-text-link-light:focus,a.has-text-link-light:hover{color:#c8cfee!important}.has-background-link-light{background-color:#eff1fa!important}.has-text-link-dark{color:#3850b7!important}a.has-text-link-dark:focus,a.has-text-link-dark:hover{color:#576dcb!important}.has-background-link-dark{background-color:#3850b7!important}.has-text-info{color:#3e8ed0!important}a.has-text-info:focus,a.has-text-info:hover{color:#2b74b1!important}.has-background-info{background-color:#3e8ed0!important}.has-text-info-light{color:#eff5fb!important}a.has-text-info-light:focus,a.has-text-info-light:hover{color:#c6ddf1!important}.has-background-info-light{background-color:#eff5fb!important}.has-text-info-dark{color:#296fa8!important}a.has-text-info-dark:focus,a.has-text-info-dark:hover{color:#368ace!important}.has-background-info-dark{background-color:#296fa8!important}.has-text-success{color:#48c78e!important}a.has-text-success:focus,a.has-text-success:hover{color:#34a873!important}.has-background-success{background-color:#48c78e!important}.has-text-success-light{color:#effaf5!important}a.has-text-success-light:focus,a.has-text-success-light:hover{color:#c8eedd!important}.has-background-success-light{background-color:#effaf5!important}.has-text-success-dark{color:#257953!important}a.has-text-success-dark:focus,a.has-text-success-dark:hover{color:#31a06e!important}.has-background-success-dark{background-color:#257953!important}.has-text-warning{color:#ffe08a!important}a.has-text-warning:focus,a.has-text-warning:hover{color:#ffd257!important}.has-background-warning{background-color:#ffe08a!important}.has-text-warning-light{color:#fffaeb!important}a.has-text-warning-light:focus,a.has-text-warning-light:hover{color:#ffecb8!important}.has-background-warning-light{background-color:#fffaeb!important}.has-text-warning-dark{color:#946c00!important}a.has-text-warning-dark:focus,a.has-text-warning-dark:hover{color:#c79200!important}.has-background-warning-dark{background-color:#946c00!important}.has-text-danger{color:#f14668!important}a.has-text-danger:focus,a.has-text-danger:hover{color:#ee1742!important}.has-background-danger{background-color:#f14668!important}.has-text-danger-light{color:#feecf0!important}a.has-text-danger-light:focus,a.has-text-danger-light:hover{color:#fabdc9!important}.has-background-danger-light{background-color:#feecf0!important}.has-text-danger-dark{color:#cc0f35!important}a.has-text-danger-dark:focus,a.has-text-danger-dark:hover{color:#ee2049!important}.has-background-danger-dark{background-color:#cc0f35!important}.has-text-black-bis{color:#121212!important}.has-background-black-bis{background-color:#121212!important}.has-text-black-ter{color:#242424!important}.has-background-black-ter{background-color:#242424!important}.has-text-grey-darker{color:#363636!important}.has-background-grey-darker{background-color:#363636!important}.has-text-grey-dark{color:#4a4a4a!important}.has-background-grey-dark{background-color:#4a4a4a!important}.has-text-grey{color:#7a7a7a!important}.has-background-grey{background-color:#7a7a7a!important}.has-text-grey-light{color:#b5b5b5!important}.has-background-grey-light{background-color:#b5b5b5!important}.has-text-grey-lighter{color:#dbdbdb!important}.has-background-grey-lighter{background-color:#dbdbdb!important}.has-text-white-ter{color:#f5f5f5!important}.has-background-white-ter{background-color:#f5f5f5!important}.has-text-white-bis{color:#fafafa!important}.has-background-white-bis{background-color:#fafafa!important}.is-flex-direction-row{flex-direction:row!important}.is-flex-direction-row-reverse{flex-direction:row-reverse!important}.is-flex-direction-column{flex-direction:column!important}.is-flex-direction-column-reverse{flex-direction:column-reverse!important}.is-flex-wrap-nowrap{flex-wrap:nowrap!important}.is-flex-wrap-wrap{flex-wrap:wrap!important}.is-flex-wrap-wrap-reverse{flex-wrap:wrap-reverse!important}.is-justify-content-flex-start{justify-content:flex-start!important}.is-justify-content-flex-end{justify-content:flex-end!important}.is-justify-content-center{justify-content:center!important}.is-justify-content-space-between{justify-content:space-between!important}.is-justify-content-space-around{justify-content:space-around!important}.is-justify-content-space-evenly{justify-content:space-evenly!important}.is-justify-content-start{justify-content:start!important}.is-justify-content-end{justify-content:end!important}.is-justify-content-left{justify-content:left!important}.is-justify-content-right{justify-content:right!important}.is-align-content-flex-start{align-content:flex-start!important}.is-align-content-flex-end{align-content:flex-end!important}.is-align-content-center{align-content:center!important}.is-align-content-space-between{align-content:space-between!important}.is-align-content-space-around{align-content:space-around!important}.is-align-content-space-evenly{align-content:space-evenly!important}.is-align-content-stretch{align-content:stretch!important}.is-align-content-start{align-content:start!important}.is-align-content-end{align-content:end!important}.is-align-content-baseline{align-content:baseline!important}.is-align-items-stretch{align-items:stretch!important}.is-align-items-flex-start{align-items:flex-start!important}.is-align-items-flex-end{align-items:flex-end!important}.is-align-items-center{align-items:center!important}.is-align-items-baseline{align-items:baseline!important}.is-align-items-start{align-items:start!important}.is-align-items-end{align-items:end!important}.is-align-items-self-start{align-items:self-start!important}.is-align-items-self-end{align-items:self-end!important}.is-align-self-auto{align-self:auto!important}.is-align-self-flex-start{align-self:flex-start!important}.is-align-self-flex-end{align-self:flex-end!important}.is-align-self-center{align-self:center!important}.is-align-self-baseline{align-self:baseline!important}.is-align-self-stretch{align-self:stretch!important}.is-flex-grow-0{flex-grow:0!important}.is-flex-grow-1{flex-grow:1!important}.is-flex-grow-2{flex-grow:2!important}.is-flex-grow-3{flex-grow:3!important}.is-flex-grow-4{flex-grow:4!important}.is-flex-grow-5{flex-grow:5!important}.is-flex-shrink-0{flex-shrink:0!important}.is-flex-shrink-1{flex-shrink:1!important}.is-flex-shrink-2{flex-shrink:2!important}.is-flex-shrink-3{flex-shrink:3!important}.is-flex-shrink-4{flex-shrink:4!important}.is-flex-shrink-5{flex-shrink:5!important}.is-clearfix::after{clear:both;content:" ";display:table}.is-pulled-left{float:left!important}.is-pulled-right{float:right!important}.is-radiusless{border-radius:0!important}.is-shadowless{box-shadow:none!important}.is-clickable{cursor:pointer!important;pointer-events:all!important}.is-clipped{overflow:hidden!important}.is-relative{position:relative!important}.is-marginless{margin:0!important}.is-paddingless{padding:0!important}.m-0{margin:0!important}.mt-0{margin-top:0!important}.mr-0{margin-right:0!important}.mb-0{margin-bottom:0!important}.ml-0{margin-left:0!important}.mx-0{margin-left:0!important;margin-right:0!important}.my-0{margin-top:0!important;margin-bottom:0!important}.m-1{margin:.25rem!important}.mt-1{margin-top:.25rem!important}.mr-1{margin-right:.25rem!important}.mb-1{margin-bottom:.25rem!important}.ml-1{margin-left:.25rem!important}.mx-1{margin-left:.25rem!important;margin-right:.25rem!important}.my-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.m-2{margin:.5rem!important}.mt-2{margin-top:.5rem!important}.mr-2{margin-right:.5rem!important}.mb-2{margin-bottom:.5rem!important}.ml-2{margin-left:.5rem!important}.mx-2{margin-left:.5rem!important;margin-right:.5rem!important}.my-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.m-3{margin:.75rem!important}.mt-3{margin-top:.75rem!important}.mr-3{margin-right:.75rem!important}.mb-3{margin-bottom:.75rem!important}.ml-3{margin-left:.75rem!important}.mx-3{margin-left:.75rem!important;margin-right:.75rem!important}.my-3{margin-top:.75rem!important;margin-bottom:.75rem!important}.m-4{margin:1rem!important}.mt-4{margin-top:1rem!important}.mr-4{margin-right:1rem!important}.mb-4{margin-bottom:1rem!important}.ml-4{margin-left:1rem!important}.mx-4{margin-left:1rem!important;margin-right:1rem!important}.my-4{margin-top:1rem!important;margin-bottom:1rem!important}.m-5{margin:1.5rem!important}.mt-5{margin-top:1.5rem!important}.mr-5{margin-right:1.5rem!important}.mb-5{margin-bottom:1.5rem!important}.ml-5{margin-left:1.5rem!important}.mx-5{margin-left:1.5rem!important;margin-right:1.5rem!important}.my-5{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.m-6{margin:3rem!important}.mt-6{margin-top:3rem!important}.mr-6{margin-right:3rem!important}.mb-6{margin-bottom:3rem!important}.ml-6{margin-left:3rem!important}.mx-6{margin-left:3rem!important;margin-right:3rem!important}.my-6{margin-top:3rem!important;margin-bottom:3rem!important}.m-auto{margin:auto!important}.mt-auto{margin-top:auto!important}.mr-auto{margin-right:auto!important}.mb-auto{margin-bottom:auto!important}.ml-auto{margin-left:auto!important}.mx-auto{margin-left:auto!important;margin-right:auto!important}.my-auto{margin-top:auto!important;margin-bottom:auto!important}.p-0{padding:0!important}.pt-0{padding-top:0!important}.pr-0{padding-right:0!important}.pb-0{padding-bottom:0!important}.pl-0{padding-left:0!important}.px-0{padding-left:0!important;padding-right:0!important}.py-0{padding-top:0!important;padding-bottom:0!important}.p-1{padding:.25rem!important}.pt-1{padding-top:.25rem!important}.pr-1{padding-right:.25rem!important}.pb-1{padding-bottom:.25rem!important}.pl-1{padding-left:.25rem!important}.px-1{padding-left:.25rem!important;padding-right:.25rem!important}.py-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.p-2{padding:.5rem!important}.pt-2{padding-top:.5rem!important}.pr-2{padding-right:.5rem!important}.pb-2{padding-bottom:.5rem!important}.pl-2{padding-left:.5rem!important}.px-2{padding-left:.5rem!important;padding-right:.5rem!important}.py-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.p-3{padding:.75rem!important}.pt-3{padding-top:.75rem!important}.pr-3{padding-right:.75rem!important}.pb-3{padding-bottom:.75rem!important}.pl-3{padding-left:.75rem!important}.px-3{padding-left:.75rem!important;padding-right:.75rem!important}.py-3{padding-top:.75rem!important;padding-bottom:.75rem!important}.p-4{padding:1rem!important}.pt-4{padding-top:1rem!important}.pr-4{padding-right:1rem!important}.pb-4{padding-bottom:1rem!important}.pl-4{padding-left:1rem!important}.px-4{padding-left:1rem!important;padding-right:1rem!important}.py-4{padding-top:1rem!important;padding-bottom:1rem!important}.p-5{padding:1.5rem!important}.pt-5{padding-top:1.5rem!important}.pr-5{padding-right:1.5rem!important}.pb-5{padding-bottom:1.5rem!important}.pl-5{padding-left:1.5rem!important}.px-5{padding-left:1.5rem!important;padding-right:1.5rem!important}.py-5{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.p-6{padding:3rem!important}.pt-6{padding-top:3rem!important}.pr-6{padding-right:3rem!important}.pb-6{padding-bottom:3rem!important}.pl-6{padding-left:3rem!important}.px-6{padding-left:3rem!important;padding-right:3rem!important}.py-6{padding-top:3rem!important;padding-bottom:3rem!important}.p-auto{padding:auto!important}.pt-auto{padding-top:auto!important}.pr-auto{padding-right:auto!important}.pb-auto{padding-bottom:auto!important}.pl-auto{padding-left:auto!important}.px-auto{padding-left:auto!important;padding-right:auto!important}.py-auto{padding-top:auto!important;padding-bottom:auto!important}.is-size-1{font-size:3rem!important}.is-size-2{font-size:2.5rem!important}.is-size-3{font-size:2rem!important}.is-size-4{font-size:1.5rem!important}.is-size-5{font-size:1.25rem!important}.is-size-6{font-size:1rem!important}.is-size-7{font-size:.75rem!important}@media screen and (max-width:768px){.is-size-1-mobile{font-size:3rem!important}.is-size-2-mobile{font-size:2.5rem!important}.is-size-3-mobile{font-size:2rem!important}.is-size-4-mobile{font-size:1.5rem!important}.is-size-5-mobile{font-size:1.25rem!important}.is-size-6-mobile{font-size:1rem!important}.is-size-7-mobile{font-size:.75rem!important}}@media screen and (min-width:769px),print{.is-size-1-tablet{font-size:3rem!important}.is-size-2-tablet{font-size:2.5rem!important}.is-size-3-tablet{font-size:2rem!important}.is-size-4-tablet{font-size:1.5rem!important}.is-size-5-tablet{font-size:1.25rem!important}.is-size-6-tablet{font-size:1rem!important}.is-size-7-tablet{font-size:.75rem!important}}@media screen and (max-width:1023px){.is-size-1-touch{font-size:3rem!important}.is-size-2-touch{font-size:2.5rem!important}.is-size-3-touch{font-size:2rem!important}.is-size-4-touch{font-size:1.5rem!important}.is-size-5-touch{font-size:1.25rem!important}.is-size-6-touch{font-size:1rem!important}.is-size-7-touch{font-size:.75rem!important}}@media screen and (min-width:1024px){.is-size-1-desktop{font-size:3rem!important}.is-size-2-desktop{font-size:2.5rem!important}.is-size-3-desktop{font-size:2rem!important}.is-size-4-desktop{font-size:1.5rem!important}.is-size-5-desktop{font-size:1.25rem!important}.is-size-6-desktop{font-size:1rem!important}.is-size-7-desktop{font-size:.75rem!important}}@media screen and (min-width:1216px){.is-size-1-widescreen{font-size:3rem!important}.is-size-2-widescreen{font-size:2.5rem!important}.is-size-3-widescreen{font-size:2rem!important}.is-size-4-widescreen{font-size:1.5rem!important}.is-size-5-widescreen{font-size:1.25rem!important}.is-size-6-widescreen{font-size:1rem!important}.is-size-7-widescreen{font-size:.75rem!important}}@media screen and (min-width:1408px){.is-size-1-fullhd{font-size:3rem!important}.is-size-2-fullhd{font-size:2.5rem!important}.is-size-3-fullhd{font-size:2rem!important}.is-size-4-fullhd{font-size:1.5rem!important}.is-size-5-fullhd{font-size:1.25rem!important}.is-size-6-fullhd{font-size:1rem!important}.is-size-7-fullhd{font-size:.75rem!important}}.has-text-centered{text-align:center!important}.has-text-justified{text-align:justify!important}.has-text-left{text-align:left!important}.has-text-right{text-align:right!important}@media screen and (max-width:768px){.has-text-centered-mobile{text-align:center!important}}@media screen and (min-width:769px),print{.has-text-centered-tablet{text-align:center!important}}@media screen and (min-width:769px) and (max-width:1023px){.has-text-centered-tablet-only{text-align:center!important}}@media screen and (max-width:1023px){.has-text-centered-touch{text-align:center!important}}@media screen and (min-width:1024px){.has-text-centered-desktop{text-align:center!important}}@media screen and (min-width:1024px) and (max-width:1215px){.has-text-centered-desktop-only{text-align:center!important}}@media screen and (min-width:1216px){.has-text-centered-widescreen{text-align:center!important}}@media screen and (min-width:1216px) and (max-width:1407px){.has-text-centered-widescreen-only{text-align:center!important}}@media screen and (min-width:1408px){.has-text-centered-fullhd{text-align:center!important}}@media screen and (max-width:768px){.has-text-justified-mobile{text-align:justify!important}}@media screen and (min-width:769px),print{.has-text-justified-tablet{text-align:justify!important}}@media screen and (min-width:769px) and (max-width:1023px){.has-text-justified-tablet-only{text-align:justify!important}}@media screen and (max-width:1023px){.has-text-justified-touch{text-align:justify!important}}@media screen and (min-width:1024px){.has-text-justified-desktop{text-align:justify!important}}@media screen and (min-width:1024px) and (max-width:1215px){.has-text-justified-desktop-only{text-align:justify!important}}@media screen and (min-width:1216px){.has-text-justified-widescreen{text-align:justify!important}}@media screen and (min-width:1216px) and (max-width:1407px){.has-text-justified-widescreen-only{text-align:justify!important}}@media screen and (min-width:1408px){.has-text-justified-fullhd{text-align:justify!important}}@media screen and (max-width:768px){.has-text-left-mobile{text-align:left!important}}@media screen and (min-width:769px),print{.has-text-left-tablet{text-align:left!important}}@media screen and (min-width:769px) and (max-width:1023px){.has-text-left-tablet-only{text-align:left!important}}@media screen and (max-width:1023px){.has-text-left-touch{text-align:left!important}}@media screen and (min-width:1024px){.has-text-left-desktop{text-align:left!important}}@media screen and (min-width:1024px) and (max-width:1215px){.has-text-left-desktop-only{text-align:left!important}}@media screen and (min-width:1216px){.has-text-left-widescreen{text-align:left!important}}@media screen and (min-width:1216px) and (max-width:1407px){.has-text-left-widescreen-only{text-align:left!important}}@media screen and (min-width:1408px){.has-text-left-fullhd{text-align:left!important}}@media screen and (max-width:768px){.has-text-right-mobile{text-align:right!important}}@media screen and (min-width:769px),print{.has-text-right-tablet{text-align:right!important}}@media screen and (min-width:769px) and (max-width:1023px){.has-text-right-tablet-only{text-align:right!important}}@media screen and (max-width:1023px){.has-text-right-touch{text-align:right!important}}@media screen and (min-width:1024px){.has-text-right-desktop{text-align:right!important}}@media screen and (min-width:1024px) and (max-width:1215px){.has-text-right-desktop-only{text-align:right!important}}@media screen and (min-width:1216px){.has-text-right-widescreen{text-align:right!important}}@media screen and (min-width:1216px) and (max-width:1407px){.has-text-right-widescreen-only{text-align:right!important}}@media screen and (min-width:1408px){.has-text-right-fullhd{text-align:right!important}}.is-capitalized{text-transform:capitalize!important}.is-lowercase{text-transform:lowercase!important}.is-uppercase{text-transform:uppercase!important}.is-italic{font-style:italic!important}.is-underlined{text-decoration:underline!important}.has-text-weight-light{font-weight:300!important}.has-text-weight-normal{font-weight:400!important}.has-text-weight-medium{font-weight:500!important}.has-text-weight-semibold{font-weight:600!important}.has-text-weight-bold{font-weight:700!important}.is-family-primary{font-family:BlinkMacSystemFont,-apple-system,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Fira Sans","Droid Sans","Helvetica Neue",Helvetica,Arial,sans-serif!important}.is-family-secondary{font-family:BlinkMacSystemFont,-apple-system,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Fira Sans","Droid Sans","Helvetica Neue",Helvetica,Arial,sans-serif!important}.is-family-sans-serif{font-family:BlinkMacSystemFont,-apple-system,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Fira Sans","Droid Sans","Helvetica Neue",Helvetica,Arial,sans-serif!important}.is-family-monospace{font-family:monospace!important}.is-family-code{font-family:monospace!important}.is-block{display:block!important}@media screen and (max-width:768px){.is-block-mobile{display:block!important}}@media screen and (min-width:769px),print{.is-block-tablet{display:block!important}}@media screen and (min-width:769px) and (max-width:1023px){.is-block-tablet-only{display:block!important}}@media screen and (max-width:1023px){.is-block-touch{display:block!important}}@media screen and (min-width:1024px){.is-block-desktop{display:block!important}}@media screen and (min-width:1024px) and (max-width:1215px){.is-block-desktop-only{display:block!important}}@media screen and (min-width:1216px){.is-block-widescreen{display:block!important}}@media screen and (min-width:1216px) and (max-width:1407px){.is-block-widescreen-only{display:block!important}}@media screen and (min-width:1408px){.is-block-fullhd{display:block!important}}.is-flex{display:flex!important}@media screen and (max-width:768px){.is-flex-mobile{display:flex!important}}@media screen and (min-width:769px),print{.is-flex-tablet{display:flex!important}}@media screen and (min-width:769px) and (max-width:1023px){.is-flex-tablet-only{display:flex!important}}@media screen and (max-width:1023px){.is-flex-touch{display:flex!important}}@media screen and (min-width:1024px){.is-flex-desktop{display:flex!important}}@media screen and (min-width:1024px) and (max-width:1215px){.is-flex-desktop-only{display:flex!important}}@media screen and (min-width:1216px){.is-flex-widescreen{display:flex!important}}@media screen and (min-width:1216px) and (max-width:1407px){.is-flex-widescreen-only{display:flex!important}}@media screen and (min-width:1408px){.is-flex-fullhd{display:flex!important}}.is-inline{display:inline!important}@media screen and (max-width:768px){.is-inline-mobile{display:inline!important}}@media screen and (min-width:769px),print{.is-inline-tablet{display:inline!important}}@media screen and (min-width:769px) and (max-width:1023px){.is-inline-tablet-only{display:inline!important}}@media screen and (max-width:1023px){.is-inline-touch{display:inline!important}}@media screen and (min-width:1024px){.is-inline-desktop{display:inline!important}}@media screen and (min-width:1024px) and (max-width:1215px){.is-inline-desktop-only{display:inline!important}}@media screen and (min-width:1216px){.is-inline-widescreen{display:inline!important}}@media screen and (min-width:1216px) and (max-width:1407px){.is-inline-widescreen-only{display:inline!important}}@media screen and (min-width:1408px){.is-inline-fullhd{display:inline!important}}.is-inline-block{display:inline-block!important}@media screen and (max-width:768px){.is-inline-block-mobile{display:inline-block!important}}@media screen and (min-width:769px),print{.is-inline-block-tablet{display:inline-block!important}}@media screen and (min-width:769px) and (max-width:1023px){.is-inline-block-tablet-only{display:inline-block!important}}@media screen and (max-width:1023px){.is-inline-block-touch{display:inline-block!important}}@media screen and (min-width:1024px){.is-inline-block-desktop{display:inline-block!important}}@media screen and (min-width:1024px) and (max-width:1215px){.is-inline-block-desktop-only{display:inline-block!important}}@media screen and (min-width:1216px){.is-inline-block-widescreen{display:inline-block!important}}@media screen and (min-width:1216px) and (max-width:1407px){.is-inline-block-widescreen-only{display:inline-block!important}}@media screen and (min-width:1408px){.is-inline-block-fullhd{display:inline-block!important}}.is-inline-flex{display:inline-flex!important}@media screen and (max-width:768px){.is-inline-flex-mobile{display:inline-flex!important}}@media screen and (min-width:769px),print{.is-inline-flex-tablet{display:inline-flex!important}}@media screen and (min-width:769px) and (max-width:1023px){.is-inline-flex-tablet-only{display:inline-flex!important}}@media screen and (max-width:1023px){.is-inline-flex-touch{display:inline-flex!important}}@media screen and (min-width:1024px){.is-inline-flex-desktop{display:inline-flex!important}}@media screen and (min-width:1024px) and (max-width:1215px){.is-inline-flex-desktop-only{display:inline-flex!important}}@media screen and (min-width:1216px){.is-inline-flex-widescreen{display:inline-flex!important}}@media screen and (min-width:1216px) and (max-width:1407px){.is-inline-flex-widescreen-only{display:inline-flex!important}}@media screen and (min-width:1408px){.is-inline-flex-fullhd{display:inline-flex!important}}.is-hidden{display:none!important}.is-sr-only{border:none!important;clip:rect(0,0,0,0)!important;height:.01em!important;overflow:hidden!important;padding:0!important;position:absolute!important;white-space:nowrap!important;width:.01em!important}@media screen and (max-width:768px){.is-hidden-mobile{display:none!important}}@media screen and (min-width:769px),print{.is-hidden-tablet{display:none!important}}@media screen and (min-width:769px) and (max-width:1023px){.is-hidden-tablet-only{display:none!important}}@media screen and (max-width:1023px){.is-hidden-touch{display:none!important}}@media screen and (min-width:1024px){.is-hidden-desktop{display:none!important}}@media screen and (min-width:1024px) and (max-width:1215px){.is-hidden-desktop-only{display:none!important}}@media screen and (min-width:1216px){.is-hidden-widescreen{display:none!important}}@media screen and (min-width:1216px) and (max-width:1407px){.is-hidden-widescreen-only{display:none!important}}@media screen and (min-width:1408px){.is-hidden-fullhd{display:none!important}}.is-invisible{visibility:hidden!important}@media screen and (max-width:768px){.is-invisible-mobile{visibility:hidden!important}}@media screen and (min-width:769px),print{.is-invisible-tablet{visibility:hidden!important}}@media screen and (min-width:769px) and (max-width:1023px){.is-invisible-tablet-only{visibility:hidden!important}}@media screen and (max-width:1023px){.is-invisible-touch{visibility:hidden!important}}@media screen and (min-width:1024px){.is-invisible-desktop{visibility:hidden!important}}@media screen and (min-width:1024px) and (max-width:1215px){.is-invisible-desktop-only{visibility:hidden!important}}@media screen and (min-width:1216px){.is-invisible-widescreen{visibility:hidden!important}}@media screen and (min-width:1216px) and (max-width:1407px){.is-invisible-widescreen-only{visibility:hidden!important}}@media screen and (min-width:1408px){.is-invisible-fullhd{visibility:hidden!important}}.hero{align-items:stretch;display:flex;flex-direction:column;justify-content:space-between}.hero .navbar{background:0 0}.hero .tabs ul{border-bottom:none}.hero.is-white{background-color:#fff;color:#0a0a0a}.hero.is-white a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-white strong{color:inherit}.hero.is-white .title{color:#0a0a0a}.hero.is-white .subtitle{color:rgba(10,10,10,.9)}.hero.is-white .subtitle a:not(.button),.hero.is-white .subtitle strong{color:#0a0a0a}@media screen and (max-width:1023px){.hero.is-white .navbar-menu{background-color:#fff}}.hero.is-white .navbar-item,.hero.is-white .navbar-link{color:rgba(10,10,10,.7)}.hero.is-white .navbar-link.is-active,.hero.is-white .navbar-link:hover,.hero.is-white a.navbar-item.is-active,.hero.is-white a.navbar-item:hover{background-color:#f2f2f2;color:#0a0a0a}.hero.is-white .tabs a{color:#0a0a0a;opacity:.9}.hero.is-white .tabs a:hover{opacity:1}.hero.is-white .tabs li.is-active a{color:#fff!important;opacity:1}.hero.is-white .tabs.is-boxed a,.hero.is-white .tabs.is-toggle a{color:#0a0a0a}.hero.is-white .tabs.is-boxed a:hover,.hero.is-white .tabs.is-toggle a:hover{background-color:rgba(10,10,10,.1)}.hero.is-white .tabs.is-boxed li.is-active a,.hero.is-white .tabs.is-boxed li.is-active a:hover,.hero.is-white .tabs.is-toggle li.is-active a,.hero.is-white .tabs.is-toggle li.is-active a:hover{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}.hero.is-white.is-bold{background-image:linear-gradient(141deg,#e6e6e6 0,#fff 71%,#fff 100%)}@media screen and (max-width:768px){.hero.is-white.is-bold .navbar-menu{background-image:linear-gradient(141deg,#e6e6e6 0,#fff 71%,#fff 100%)}}.hero.is-black{background-color:#0a0a0a;color:#fff}.hero.is-black a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-black strong{color:inherit}.hero.is-black .title{color:#fff}.hero.is-black .subtitle{color:rgba(255,255,255,.9)}.hero.is-black .subtitle a:not(.button),.hero.is-black .subtitle strong{color:#fff}@media screen and (max-width:1023px){.hero.is-black .navbar-menu{background-color:#0a0a0a}}.hero.is-black .navbar-item,.hero.is-black .navbar-link{color:rgba(255,255,255,.7)}.hero.is-black .navbar-link.is-active,.hero.is-black .navbar-link:hover,.hero.is-black a.navbar-item.is-active,.hero.is-black a.navbar-item:hover{background-color:#000;color:#fff}.hero.is-black .tabs a{color:#fff;opacity:.9}.hero.is-black .tabs a:hover{opacity:1}.hero.is-black .tabs li.is-active a{color:#0a0a0a!important;opacity:1}.hero.is-black .tabs.is-boxed a,.hero.is-black .tabs.is-toggle a{color:#fff}.hero.is-black .tabs.is-boxed a:hover,.hero.is-black .tabs.is-toggle a:hover{background-color:rgba(10,10,10,.1)}.hero.is-black .tabs.is-boxed li.is-active a,.hero.is-black .tabs.is-boxed li.is-active a:hover,.hero.is-black .tabs.is-toggle li.is-active a,.hero.is-black .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#0a0a0a}.hero.is-black.is-bold{background-image:linear-gradient(141deg,#000 0,#0a0a0a 71%,#181616 100%)}@media screen and (max-width:768px){.hero.is-black.is-bold .navbar-menu{background-image:linear-gradient(141deg,#000 0,#0a0a0a 71%,#181616 100%)}}.hero.is-light{background-color:#f5f5f5;color:rgba(0,0,0,.7)}.hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-light strong{color:inherit}.hero.is-light .title{color:rgba(0,0,0,.7)}.hero.is-light .subtitle{color:rgba(0,0,0,.9)}.hero.is-light .subtitle a:not(.button),.hero.is-light .subtitle strong{color:rgba(0,0,0,.7)}@media screen and (max-width:1023px){.hero.is-light .navbar-menu{background-color:#f5f5f5}}.hero.is-light .navbar-item,.hero.is-light .navbar-link{color:rgba(0,0,0,.7)}.hero.is-light .navbar-link.is-active,.hero.is-light .navbar-link:hover,.hero.is-light a.navbar-item.is-active,.hero.is-light a.navbar-item:hover{background-color:#e8e8e8;color:rgba(0,0,0,.7)}.hero.is-light .tabs a{color:rgba(0,0,0,.7);opacity:.9}.hero.is-light .tabs a:hover{opacity:1}.hero.is-light .tabs li.is-active a{color:#f5f5f5!important;opacity:1}.hero.is-light .tabs.is-boxed a,.hero.is-light .tabs.is-toggle a{color:rgba(0,0,0,.7)}.hero.is-light .tabs.is-boxed a:hover,.hero.is-light .tabs.is-toggle a:hover{background-color:rgba(10,10,10,.1)}.hero.is-light .tabs.is-boxed li.is-active a,.hero.is-light .tabs.is-boxed li.is-active a:hover,.hero.is-light .tabs.is-toggle li.is-active a,.hero.is-light .tabs.is-toggle li.is-active a:hover{background-color:rgba(0,0,0,.7);border-color:rgba(0,0,0,.7);color:#f5f5f5}.hero.is-light.is-bold{background-image:linear-gradient(141deg,#dfd8d9 0,#f5f5f5 71%,#fff 100%)}@media screen and (max-width:768px){.hero.is-light.is-bold .navbar-menu{background-image:linear-gradient(141deg,#dfd8d9 0,#f5f5f5 71%,#fff 100%)}}.hero.is-dark{background-color:#363636;color:#fff}.hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-dark strong{color:inherit}.hero.is-dark .title{color:#fff}.hero.is-dark .subtitle{color:rgba(255,255,255,.9)}.hero.is-dark .subtitle a:not(.button),.hero.is-dark .subtitle strong{color:#fff}@media screen and (max-width:1023px){.hero.is-dark .navbar-menu{background-color:#363636}}.hero.is-dark .navbar-item,.hero.is-dark .navbar-link{color:rgba(255,255,255,.7)}.hero.is-dark .navbar-link.is-active,.hero.is-dark .navbar-link:hover,.hero.is-dark a.navbar-item.is-active,.hero.is-dark a.navbar-item:hover{background-color:#292929;color:#fff}.hero.is-dark .tabs a{color:#fff;opacity:.9}.hero.is-dark .tabs a:hover{opacity:1}.hero.is-dark .tabs li.is-active a{color:#363636!important;opacity:1}.hero.is-dark .tabs.is-boxed a,.hero.is-dark .tabs.is-toggle a{color:#fff}.hero.is-dark .tabs.is-boxed a:hover,.hero.is-dark .tabs.is-toggle a:hover{background-color:rgba(10,10,10,.1)}.hero.is-dark .tabs.is-boxed li.is-active a,.hero.is-dark .tabs.is-boxed li.is-active a:hover,.hero.is-dark .tabs.is-toggle li.is-active a,.hero.is-dark .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#363636}.hero.is-dark.is-bold{background-image:linear-gradient(141deg,#1f191a 0,#363636 71%,#46403f 100%)}@media screen and (max-width:768px){.hero.is-dark.is-bold .navbar-menu{background-image:linear-gradient(141deg,#1f191a 0,#363636 71%,#46403f 100%)}}.hero.is-primary{background-color:#00d1b2;color:#fff}.hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-primary strong{color:inherit}.hero.is-primary .title{color:#fff}.hero.is-primary .subtitle{color:rgba(255,255,255,.9)}.hero.is-primary .subtitle a:not(.button),.hero.is-primary .subtitle strong{color:#fff}@media screen and (max-width:1023px){.hero.is-primary .navbar-menu{background-color:#00d1b2}}.hero.is-primary .navbar-item,.hero.is-primary .navbar-link{color:rgba(255,255,255,.7)}.hero.is-primary .navbar-link.is-active,.hero.is-primary .navbar-link:hover,.hero.is-primary a.navbar-item.is-active,.hero.is-primary a.navbar-item:hover{background-color:#00b89c;color:#fff}.hero.is-primary .tabs a{color:#fff;opacity:.9}.hero.is-primary .tabs a:hover{opacity:1}.hero.is-primary .tabs li.is-active a{color:#00d1b2!important;opacity:1}.hero.is-primary .tabs.is-boxed a,.hero.is-primary .tabs.is-toggle a{color:#fff}.hero.is-primary .tabs.is-boxed a:hover,.hero.is-primary .tabs.is-toggle a:hover{background-color:rgba(10,10,10,.1)}.hero.is-primary .tabs.is-boxed li.is-active a,.hero.is-primary .tabs.is-boxed li.is-active a:hover,.hero.is-primary .tabs.is-toggle li.is-active a,.hero.is-primary .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#00d1b2}.hero.is-primary.is-bold{background-image:linear-gradient(141deg,#009e6c 0,#00d1b2 71%,#00e7eb 100%)}@media screen and (max-width:768px){.hero.is-primary.is-bold .navbar-menu{background-image:linear-gradient(141deg,#009e6c 0,#00d1b2 71%,#00e7eb 100%)}}.hero.is-link{background-color:#485fc7;color:#fff}.hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-link strong{color:inherit}.hero.is-link .title{color:#fff}.hero.is-link .subtitle{color:rgba(255,255,255,.9)}.hero.is-link .subtitle a:not(.button),.hero.is-link .subtitle strong{color:#fff}@media screen and (max-width:1023px){.hero.is-link .navbar-menu{background-color:#485fc7}}.hero.is-link .navbar-item,.hero.is-link .navbar-link{color:rgba(255,255,255,.7)}.hero.is-link .navbar-link.is-active,.hero.is-link .navbar-link:hover,.hero.is-link a.navbar-item.is-active,.hero.is-link a.navbar-item:hover{background-color:#3a51bb;color:#fff}.hero.is-link .tabs a{color:#fff;opacity:.9}.hero.is-link .tabs a:hover{opacity:1}.hero.is-link .tabs li.is-active a{color:#485fc7!important;opacity:1}.hero.is-link .tabs.is-boxed a,.hero.is-link .tabs.is-toggle a{color:#fff}.hero.is-link .tabs.is-boxed a:hover,.hero.is-link .tabs.is-toggle a:hover{background-color:rgba(10,10,10,.1)}.hero.is-link .tabs.is-boxed li.is-active a,.hero.is-link .tabs.is-boxed li.is-active a:hover,.hero.is-link .tabs.is-toggle li.is-active a,.hero.is-link .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#485fc7}.hero.is-link.is-bold{background-image:linear-gradient(141deg,#2959b3 0,#485fc7 71%,#5658d2 100%)}@media screen and (max-width:768px){.hero.is-link.is-bold .navbar-menu{background-image:linear-gradient(141deg,#2959b3 0,#485fc7 71%,#5658d2 100%)}}.hero.is-info{background-color:#3e8ed0;color:#fff}.hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-info strong{color:inherit}.hero.is-info .title{color:#fff}.hero.is-info .subtitle{color:rgba(255,255,255,.9)}.hero.is-info .subtitle a:not(.button),.hero.is-info .subtitle strong{color:#fff}@media screen and (max-width:1023px){.hero.is-info .navbar-menu{background-color:#3e8ed0}}.hero.is-info .navbar-item,.hero.is-info .navbar-link{color:rgba(255,255,255,.7)}.hero.is-info .navbar-link.is-active,.hero.is-info .navbar-link:hover,.hero.is-info a.navbar-item.is-active,.hero.is-info a.navbar-item:hover{background-color:#3082c5;color:#fff}.hero.is-info .tabs a{color:#fff;opacity:.9}.hero.is-info .tabs a:hover{opacity:1}.hero.is-info .tabs li.is-active a{color:#3e8ed0!important;opacity:1}.hero.is-info .tabs.is-boxed a,.hero.is-info .tabs.is-toggle a{color:#fff}.hero.is-info .tabs.is-boxed a:hover,.hero.is-info .tabs.is-toggle a:hover{background-color:rgba(10,10,10,.1)}.hero.is-info .tabs.is-boxed li.is-active a,.hero.is-info .tabs.is-boxed li.is-active a:hover,.hero.is-info .tabs.is-toggle li.is-active a,.hero.is-info .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#3e8ed0}.hero.is-info.is-bold{background-image:linear-gradient(141deg,#208fbc 0,#3e8ed0 71%,#4d83db 100%)}@media screen and (max-width:768px){.hero.is-info.is-bold .navbar-menu{background-image:linear-gradient(141deg,#208fbc 0,#3e8ed0 71%,#4d83db 100%)}}.hero.is-success{background-color:#48c78e;color:#fff}.hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-success strong{color:inherit}.hero.is-success .title{color:#fff}.hero.is-success .subtitle{color:rgba(255,255,255,.9)}.hero.is-success .subtitle a:not(.button),.hero.is-success .subtitle strong{color:#fff}@media screen and (max-width:1023px){.hero.is-success .navbar-menu{background-color:#48c78e}}.hero.is-success .navbar-item,.hero.is-success .navbar-link{color:rgba(255,255,255,.7)}.hero.is-success .navbar-link.is-active,.hero.is-success .navbar-link:hover,.hero.is-success a.navbar-item.is-active,.hero.is-success a.navbar-item:hover{background-color:#3abb81;color:#fff}.hero.is-success .tabs a{color:#fff;opacity:.9}.hero.is-success .tabs a:hover{opacity:1}.hero.is-success .tabs li.is-active a{color:#48c78e!important;opacity:1}.hero.is-success .tabs.is-boxed a,.hero.is-success .tabs.is-toggle a{color:#fff}.hero.is-success .tabs.is-boxed a:hover,.hero.is-success .tabs.is-toggle a:hover{background-color:rgba(10,10,10,.1)}.hero.is-success .tabs.is-boxed li.is-active a,.hero.is-success .tabs.is-boxed li.is-active a:hover,.hero.is-success .tabs.is-toggle li.is-active a,.hero.is-success .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#48c78e}.hero.is-success.is-bold{background-image:linear-gradient(141deg,#29b35e 0,#48c78e 71%,#56d2af 100%)}@media screen and (max-width:768px){.hero.is-success.is-bold .navbar-menu{background-image:linear-gradient(141deg,#29b35e 0,#48c78e 71%,#56d2af 100%)}}.hero.is-warning{background-color:#ffe08a;color:rgba(0,0,0,.7)}.hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-warning strong{color:inherit}.hero.is-warning .title{color:rgba(0,0,0,.7)}.hero.is-warning .subtitle{color:rgba(0,0,0,.9)}.hero.is-warning .subtitle a:not(.button),.hero.is-warning .subtitle strong{color:rgba(0,0,0,.7)}@media screen and (max-width:1023px){.hero.is-warning .navbar-menu{background-color:#ffe08a}}.hero.is-warning .navbar-item,.hero.is-warning .navbar-link{color:rgba(0,0,0,.7)}.hero.is-warning .navbar-link.is-active,.hero.is-warning .navbar-link:hover,.hero.is-warning a.navbar-item.is-active,.hero.is-warning a.navbar-item:hover{background-color:#ffd970;color:rgba(0,0,0,.7)}.hero.is-warning .tabs a{color:rgba(0,0,0,.7);opacity:.9}.hero.is-warning .tabs a:hover{opacity:1}.hero.is-warning .tabs li.is-active a{color:#ffe08a!important;opacity:1}.hero.is-warning .tabs.is-boxed a,.hero.is-warning .tabs.is-toggle a{color:rgba(0,0,0,.7)}.hero.is-warning .tabs.is-boxed a:hover,.hero.is-warning .tabs.is-toggle a:hover{background-color:rgba(10,10,10,.1)}.hero.is-warning .tabs.is-boxed li.is-active a,.hero.is-warning .tabs.is-boxed li.is-active a:hover,.hero.is-warning .tabs.is-toggle li.is-active a,.hero.is-warning .tabs.is-toggle li.is-active a:hover{background-color:rgba(0,0,0,.7);border-color:rgba(0,0,0,.7);color:#ffe08a}.hero.is-warning.is-bold{background-image:linear-gradient(141deg,#ffb657 0,#ffe08a 71%,#fff6a3 100%)}@media screen and (max-width:768px){.hero.is-warning.is-bold .navbar-menu{background-image:linear-gradient(141deg,#ffb657 0,#ffe08a 71%,#fff6a3 100%)}}.hero.is-danger{background-color:#f14668;color:#fff}.hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-danger strong{color:inherit}.hero.is-danger .title{color:#fff}.hero.is-danger .subtitle{color:rgba(255,255,255,.9)}.hero.is-danger .subtitle a:not(.button),.hero.is-danger .subtitle strong{color:#fff}@media screen and (max-width:1023px){.hero.is-danger .navbar-menu{background-color:#f14668}}.hero.is-danger .navbar-item,.hero.is-danger .navbar-link{color:rgba(255,255,255,.7)}.hero.is-danger .navbar-link.is-active,.hero.is-danger .navbar-link:hover,.hero.is-danger a.navbar-item.is-active,.hero.is-danger a.navbar-item:hover{background-color:#ef2e55;color:#fff}.hero.is-danger .tabs a{color:#fff;opacity:.9}.hero.is-danger .tabs a:hover{opacity:1}.hero.is-danger .tabs li.is-active a{color:#f14668!important;opacity:1}.hero.is-danger .tabs.is-boxed a,.hero.is-danger .tabs.is-toggle a{color:#fff}.hero.is-danger .tabs.is-boxed a:hover,.hero.is-danger .tabs.is-toggle a:hover{background-color:rgba(10,10,10,.1)}.hero.is-danger .tabs.is-boxed li.is-active a,.hero.is-danger .tabs.is-boxed li.is-active a:hover,.hero.is-danger .tabs.is-toggle li.is-active a,.hero.is-danger .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#f14668}.hero.is-danger.is-bold{background-image:linear-gradient(141deg,#fa0a62 0,#f14668 71%,#f7595f 100%)}@media screen and (max-width:768px){.hero.is-danger.is-bold .navbar-menu{background-image:linear-gradient(141deg,#fa0a62 0,#f14668 71%,#f7595f 100%)}}.hero.is-small .hero-body{padding:1.5rem}@media screen and (min-width:769px),print{.hero.is-medium .hero-body{padding:9rem 4.5rem}}@media screen and (min-width:769px),print{.hero.is-large .hero-body{padding:18rem 6rem}}.hero.is-fullheight .hero-body,.hero.is-fullheight-with-navbar .hero-body,.hero.is-halfheight .hero-body{align-items:center;display:flex}.hero.is-fullheight .hero-body>.container,.hero.is-fullheight-with-navbar .hero-body>.container,.hero.is-halfheight .hero-body>.container{flex-grow:1;flex-shrink:1}.hero.is-halfheight{min-height:50vh}.hero.is-fullheight{min-height:100vh}.hero-video{overflow:hidden}.hero-video video{left:50%;min-height:100%;min-width:100%;position:absolute;top:50%;transform:translate3d(-50%,-50%,0)}.hero-video.is-transparent{opacity:.3}@media screen and (max-width:768px){.hero-video{display:none}}.hero-buttons{margin-top:1.5rem}@media screen and (max-width:768px){.hero-buttons .button{display:flex}.hero-buttons .button:not(:last-child){margin-bottom:.75rem}}@media screen and (min-width:769px),print{.hero-buttons{display:flex;justify-content:center}.hero-buttons .button:not(:last-child){margin-right:1.5rem}}.hero-foot,.hero-head{flex-grow:0;flex-shrink:0}.hero-body{flex-grow:1;flex-shrink:0;padding:3rem 1.5rem}@media screen and (min-width:769px),print{.hero-body{padding:3rem 3rem}}.section{padding:3rem 1.5rem}@media screen and (min-width:1024px){.section{padding:3rem 3rem}.section.is-medium{padding:9rem 4.5rem}.section.is-large{padding:18rem 6rem}}.footer{background-color:#fafafa;padding:3rem 1.5rem 6rem}
\ No newline at end of file
+/*! bulma.io v0.9.3 | MIT License | github.com/jgthms/bulma */
+.button,
+.file-cta,
+.file-name,
+.input,
+.pagination-ellipsis,
+.pagination-link,
+.pagination-next,
+.pagination-previous,
+.select select,
+.textarea {
+ -moz-appearance: none;
+ -webkit-appearance: none;
+ align-items: center;
+ border: 1px solid transparent;
+ border-radius: 4px;
+ box-shadow: none;
+ display: inline-flex;
+ font-size: 1rem;
+ height: 2.5em;
+ justify-content: flex-start;
+ line-height: 1.5;
+ padding-bottom: calc(0.5em - 1px);
+ padding-left: calc(0.75em - 1px);
+ padding-right: calc(0.75em - 1px);
+ padding-top: calc(0.5em - 1px);
+ position: relative;
+ vertical-align: top;
+}
+.button:active,
+.button:focus,
+.file-cta:active,
+.file-cta:focus,
+.file-name:active,
+.file-name:focus,
+.input:active,
+.input:focus,
+.is-active.button,
+.is-active.file-cta,
+.is-active.file-name,
+.is-active.input,
+.is-active.pagination-ellipsis,
+.is-active.pagination-link,
+.is-active.pagination-next,
+.is-active.pagination-previous,
+.is-active.textarea,
+.is-focused.button,
+.is-focused.file-cta,
+.is-focused.file-name,
+.is-focused.input,
+.is-focused.pagination-ellipsis,
+.is-focused.pagination-link,
+.is-focused.pagination-next,
+.is-focused.pagination-previous,
+.is-focused.textarea,
+.pagination-ellipsis:active,
+.pagination-ellipsis:focus,
+.pagination-link:active,
+.pagination-link:focus,
+.pagination-next:active,
+.pagination-next:focus,
+.pagination-previous:active,
+.pagination-previous:focus,
+.select select.is-active,
+.select select.is-focused,
+.select select:active,
+.select select:focus,
+.textarea:active,
+.textarea:focus {
+ outline: 0;
+}
+.button[disabled],
+.file-cta[disabled],
+.file-name[disabled],
+.input[disabled],
+.pagination-ellipsis[disabled],
+.pagination-link[disabled],
+.pagination-next[disabled],
+.pagination-previous[disabled],
+.select fieldset[disabled] select,
+.select select[disabled],
+.textarea[disabled],
+fieldset[disabled] .button,
+fieldset[disabled] .file-cta,
+fieldset[disabled] .file-name,
+fieldset[disabled] .input,
+fieldset[disabled] .pagination-ellipsis,
+fieldset[disabled] .pagination-link,
+fieldset[disabled] .pagination-next,
+fieldset[disabled] .pagination-previous,
+fieldset[disabled] .select select,
+fieldset[disabled] .textarea {
+ cursor: not-allowed;
+}
+.breadcrumb,
+.button,
+.file,
+.is-unselectable,
+.pagination-ellipsis,
+.pagination-link,
+.pagination-next,
+.pagination-previous,
+.tabs {
+ -webkit-touch-callout: none;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+}
+.navbar-link:not(.is-arrowless)::after,
+.select:not(.is-multiple):not(.is-loading)::after {
+ border: 3px solid transparent;
+ border-radius: 2px;
+ border-right: 0;
+ border-top: 0;
+ content: ' ';
+ display: block;
+ height: 0.625em;
+ margin-top: -0.4375em;
+ pointer-events: none;
+ position: absolute;
+ top: 50%;
+ transform: rotate(-45deg);
+ transform-origin: center;
+ width: 0.625em;
+}
+.block:not(:last-child),
+.box:not(:last-child),
+.breadcrumb:not(:last-child),
+.content:not(:last-child),
+.level:not(:last-child),
+.message:not(:last-child),
+.notification:not(:last-child),
+.pagination:not(:last-child),
+.progress:not(:last-child),
+.subtitle:not(:last-child),
+.table-container:not(:last-child),
+.table:not(:last-child),
+.tabs:not(:last-child),
+.title:not(:last-child) {
+ margin-bottom: 1.5rem;
+}
+.delete,
+.modal-close {
+ -webkit-touch-callout: none;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ -moz-appearance: none;
+ -webkit-appearance: none;
+ background-color: rgba(10, 10, 10, 0.2);
+ border: none;
+ border-radius: 9999px;
+ cursor: pointer;
+ pointer-events: auto;
+ display: inline-block;
+ flex-grow: 0;
+ flex-shrink: 0;
+ font-size: 0;
+ height: 20px;
+ max-height: 20px;
+ max-width: 20px;
+ min-height: 20px;
+ min-width: 20px;
+ outline: 0;
+ position: relative;
+ vertical-align: top;
+ width: 20px;
+}
+.delete::after,
+.delete::before,
+.modal-close::after,
+.modal-close::before {
+ background-color: #fff;
+ content: '';
+ display: block;
+ left: 50%;
+ position: absolute;
+ top: 50%;
+ transform: translateX(-50%) translateY(-50%) rotate(45deg);
+ transform-origin: center center;
+}
+.delete::before,
+.modal-close::before {
+ height: 2px;
+ width: 50%;
+}
+.delete::after,
+.modal-close::after {
+ height: 50%;
+ width: 2px;
+}
+.delete:focus,
+.delete:hover,
+.modal-close:focus,
+.modal-close:hover {
+ background-color: rgba(10, 10, 10, 0.3);
+}
+.delete:active,
+.modal-close:active {
+ background-color: rgba(10, 10, 10, 0.4);
+}
+.is-small.delete,
+.is-small.modal-close {
+ height: 16px;
+ max-height: 16px;
+ max-width: 16px;
+ min-height: 16px;
+ min-width: 16px;
+ width: 16px;
+}
+.is-medium.delete,
+.is-medium.modal-close {
+ height: 24px;
+ max-height: 24px;
+ max-width: 24px;
+ min-height: 24px;
+ min-width: 24px;
+ width: 24px;
+}
+.is-large.delete,
+.is-large.modal-close {
+ height: 32px;
+ max-height: 32px;
+ max-width: 32px;
+ min-height: 32px;
+ min-width: 32px;
+ width: 32px;
+}
+.button.is-loading::after,
+.control.is-loading::after,
+.loader,
+.select.is-loading::after {
+ -webkit-animation: spinAround 0.5s infinite linear;
+ animation: spinAround 0.5s infinite linear;
+ border: 2px solid #dbdbdb;
+ border-radius: 9999px;
+ border-right-color: transparent;
+ border-top-color: transparent;
+ content: '';
+ display: block;
+ height: 1em;
+ position: relative;
+ width: 1em;
+}
+.hero-video,
+.image.is-16by9 .has-ratio,
+.image.is-16by9 img,
+.image.is-1by1 .has-ratio,
+.image.is-1by1 img,
+.image.is-1by2 .has-ratio,
+.image.is-1by2 img,
+.image.is-1by3 .has-ratio,
+.image.is-1by3 img,
+.image.is-2by1 .has-ratio,
+.image.is-2by1 img,
+.image.is-2by3 .has-ratio,
+.image.is-2by3 img,
+.image.is-3by1 .has-ratio,
+.image.is-3by1 img,
+.image.is-3by2 .has-ratio,
+.image.is-3by2 img,
+.image.is-3by4 .has-ratio,
+.image.is-3by4 img,
+.image.is-3by5 .has-ratio,
+.image.is-3by5 img,
+.image.is-4by3 .has-ratio,
+.image.is-4by3 img,
+.image.is-4by5 .has-ratio,
+.image.is-4by5 img,
+.image.is-5by3 .has-ratio,
+.image.is-5by3 img,
+.image.is-5by4 .has-ratio,
+.image.is-5by4 img,
+.image.is-9by16 .has-ratio,
+.image.is-9by16 img,
+.image.is-square .has-ratio,
+.image.is-square img,
+.is-overlay,
+.modal,
+.modal-background {
+ bottom: 0;
+ left: 0;
+ position: absolute;
+ right: 0;
+ top: 0;
+}
+.navbar-burger {
+ -moz-appearance: none;
+ -webkit-appearance: none;
+ appearance: none;
+ background: 0 0;
+ border: none;
+ color: currentColor;
+ font-family: inherit;
+ font-size: 1em;
+ margin: 0;
+ padding: 0;
+} /*! minireset.css v0.0.6 | MIT License | github.com/jgthms/minireset.css */
+blockquote,
+body,
+dd,
+dl,
+dt,
+fieldset,
+figure,
+h1,
+h2,
+h3,
+h4,
+h5,
+h6,
+hr,
+html,
+iframe,
+legend,
+li,
+ol,
+p,
+pre,
+textarea,
+ul {
+ margin: 0;
+ padding: 0;
+}
+h1,
+h2,
+h3,
+h4,
+h5,
+h6 {
+ font-size: 100%;
+ font-weight: 400;
+}
+ul {
+ list-style: none;
+}
+button,
+input,
+select,
+textarea {
+ margin: 0;
+}
+html {
+ box-sizing: border-box;
+}
+*,
+::after,
+::before {
+ box-sizing: inherit;
+}
+img,
+video {
+ height: auto;
+ max-width: 100%;
+}
+iframe {
+ border: 0;
+}
+table {
+ border-collapse: collapse;
+ border-spacing: 0;
+}
+td,
+th {
+ padding: 0;
+}
+td:not([align]),
+th:not([align]) {
+ text-align: inherit;
+}
+html {
+ background-color: #fff;
+ font-size: 16px;
+ -moz-osx-font-smoothing: grayscale;
+ -webkit-font-smoothing: antialiased;
+ min-width: 300px;
+ overflow-x: hidden;
+ overflow-y: scroll;
+ text-rendering: optimizeLegibility;
+ -webkit-text-size-adjust: 100%;
+ -moz-text-size-adjust: 100%;
+ text-size-adjust: 100%;
+}
+article,
+aside,
+figure,
+footer,
+header,
+hgroup,
+section {
+ display: block;
+}
+body,
+button,
+input,
+optgroup,
+select,
+textarea {
+ font-family: BlinkMacSystemFont, -apple-system, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell,
+ 'Fira Sans', 'Droid Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
+}
+code,
+pre {
+ -moz-osx-font-smoothing: auto;
+ -webkit-font-smoothing: auto;
+ font-family: monospace;
+}
+body {
+ color: #4a4a4a;
+ font-size: 1em;
+ font-weight: 400;
+ line-height: 1.5;
+}
+a {
+ color: #485fc7;
+ cursor: pointer;
+ text-decoration: none;
+}
+a strong {
+ color: currentColor;
+}
+a:hover {
+ color: #363636;
+}
+code {
+ background-color: #f5f5f5;
+ color: #da1039;
+ font-size: 0.875em;
+ font-weight: 400;
+ padding: 0.25em 0.5em 0.25em;
+}
+hr {
+ background-color: #f5f5f5;
+ border: none;
+ display: block;
+ height: 2px;
+ margin: 1.5rem 0;
+}
+img {
+ height: auto;
+ max-width: 100%;
+}
+input[type='checkbox'],
+input[type='radio'] {
+ vertical-align: baseline;
+}
+small {
+ font-size: 0.875em;
+}
+span {
+ font-style: inherit;
+ font-weight: inherit;
+}
+strong {
+ color: #363636;
+ font-weight: 700;
+}
+fieldset {
+ border: none;
+}
+pre {
+ -webkit-overflow-scrolling: touch;
+ background-color: #f5f5f5;
+ color: #4a4a4a;
+ font-size: 0.875em;
+ overflow-x: auto;
+ padding: 1.25rem 1.5rem;
+ white-space: pre;
+ word-wrap: normal;
+}
+pre code {
+ background-color: transparent;
+ color: currentColor;
+ font-size: 1em;
+ padding: 0;
+}
+table td,
+table th {
+ vertical-align: top;
+}
+table td:not([align]),
+table th:not([align]) {
+ text-align: inherit;
+}
+table th {
+ color: #363636;
+}
+@-webkit-keyframes spinAround {
+ from {
+ transform: rotate(0);
+ }
+ to {
+ transform: rotate(359deg);
+ }
+}
+@keyframes spinAround {
+ from {
+ transform: rotate(0);
+ }
+ to {
+ transform: rotate(359deg);
+ }
+}
+.box {
+ background-color: #fff;
+ border-radius: 6px;
+ box-shadow: 0 0.5em 1em -0.125em rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.02);
+ color: #4a4a4a;
+ display: block;
+ padding: 1.25rem;
+}
+a.box:focus,
+a.box:hover {
+ box-shadow: 0 0.5em 1em -0.125em rgba(10, 10, 10, 0.1), 0 0 0 1px #485fc7;
+}
+a.box:active {
+ box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2), 0 0 0 1px #485fc7;
+}
+.button {
+ background-color: #fff;
+ border-color: #dbdbdb;
+ border-width: 1px;
+ color: #363636;
+ cursor: pointer;
+ justify-content: center;
+ padding-bottom: calc(0.5em - 1px);
+ padding-left: 1em;
+ padding-right: 1em;
+ padding-top: calc(0.5em - 1px);
+ text-align: center;
+ white-space: nowrap;
+}
+.button strong {
+ color: inherit;
+}
+.button .icon,
+.button .icon.is-large,
+.button .icon.is-medium,
+.button .icon.is-small {
+ height: 1.5em;
+ width: 1.5em;
+}
+.button .icon:first-child:not(:last-child) {
+ margin-left: calc(-0.5em - 1px);
+ margin-right: 0.25em;
+}
+.button .icon:last-child:not(:first-child) {
+ margin-left: 0.25em;
+ margin-right: calc(-0.5em - 1px);
+}
+.button .icon:first-child:last-child {
+ margin-left: calc(-0.5em - 1px);
+ margin-right: calc(-0.5em - 1px);
+}
+.button.is-hovered,
+.button:hover {
+ border-color: #b5b5b5;
+ color: #363636;
+}
+.button.is-focused,
+.button:focus {
+ border-color: #485fc7;
+ color: #363636;
+}
+.button.is-focused:not(:active),
+.button:focus:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(72, 95, 199, 0.25);
+}
+.button.is-active,
+.button:active {
+ border-color: #4a4a4a;
+ color: #363636;
+}
+.button.is-text {
+ background-color: transparent;
+ border-color: transparent;
+ color: #4a4a4a;
+ text-decoration: underline;
+}
+.button.is-text.is-focused,
+.button.is-text.is-hovered,
+.button.is-text:focus,
+.button.is-text:hover {
+ background-color: #f5f5f5;
+ color: #363636;
+}
+.button.is-text.is-active,
+.button.is-text:active {
+ background-color: #e8e8e8;
+ color: #363636;
+}
+.button.is-text[disabled],
+fieldset[disabled] .button.is-text {
+ background-color: transparent;
+ border-color: transparent;
+ box-shadow: none;
+}
+.button.is-ghost {
+ background: 0 0;
+ border-color: transparent;
+ color: #485fc7;
+ text-decoration: none;
+}
+.button.is-ghost.is-hovered,
+.button.is-ghost:hover {
+ color: #485fc7;
+ text-decoration: underline;
+}
+.button.is-white {
+ background-color: #fff;
+ border-color: transparent;
+ color: #0a0a0a;
+}
+.button.is-white.is-hovered,
+.button.is-white:hover {
+ background-color: #f9f9f9;
+ border-color: transparent;
+ color: #0a0a0a;
+}
+.button.is-white.is-focused,
+.button.is-white:focus {
+ border-color: transparent;
+ color: #0a0a0a;
+}
+.button.is-white.is-focused:not(:active),
+.button.is-white:focus:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25);
+}
+.button.is-white.is-active,
+.button.is-white:active {
+ background-color: #f2f2f2;
+ border-color: transparent;
+ color: #0a0a0a;
+}
+.button.is-white[disabled],
+fieldset[disabled] .button.is-white {
+ background-color: #fff;
+ border-color: transparent;
+ box-shadow: none;
+}
+.button.is-white.is-inverted {
+ background-color: #0a0a0a;
+ color: #fff;
+}
+.button.is-white.is-inverted.is-hovered,
+.button.is-white.is-inverted:hover {
+ background-color: #000;
+}
+.button.is-white.is-inverted[disabled],
+fieldset[disabled] .button.is-white.is-inverted {
+ background-color: #0a0a0a;
+ border-color: transparent;
+ box-shadow: none;
+ color: #fff;
+}
+.button.is-white.is-loading::after {
+ border-color: transparent transparent #0a0a0a #0a0a0a !important;
+}
+.button.is-white.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ color: #fff;
+}
+.button.is-white.is-outlined.is-focused,
+.button.is-white.is-outlined.is-hovered,
+.button.is-white.is-outlined:focus,
+.button.is-white.is-outlined:hover {
+ background-color: #fff;
+ border-color: #fff;
+ color: #0a0a0a;
+}
+.button.is-white.is-outlined.is-loading::after {
+ border-color: transparent transparent #fff #fff !important;
+}
+.button.is-white.is-outlined.is-loading.is-focused::after,
+.button.is-white.is-outlined.is-loading.is-hovered::after,
+.button.is-white.is-outlined.is-loading:focus::after,
+.button.is-white.is-outlined.is-loading:hover::after {
+ border-color: transparent transparent #0a0a0a #0a0a0a !important;
+}
+.button.is-white.is-outlined[disabled],
+fieldset[disabled] .button.is-white.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ box-shadow: none;
+ color: #fff;
+}
+.button.is-white.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #0a0a0a;
+ color: #0a0a0a;
+}
+.button.is-white.is-inverted.is-outlined.is-focused,
+.button.is-white.is-inverted.is-outlined.is-hovered,
+.button.is-white.is-inverted.is-outlined:focus,
+.button.is-white.is-inverted.is-outlined:hover {
+ background-color: #0a0a0a;
+ color: #fff;
+}
+.button.is-white.is-inverted.is-outlined.is-loading.is-focused::after,
+.button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after,
+.button.is-white.is-inverted.is-outlined.is-loading:focus::after,
+.button.is-white.is-inverted.is-outlined.is-loading:hover::after {
+ border-color: transparent transparent #fff #fff !important;
+}
+.button.is-white.is-inverted.is-outlined[disabled],
+fieldset[disabled] .button.is-white.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #0a0a0a;
+ box-shadow: none;
+ color: #0a0a0a;
+}
+.button.is-black {
+ background-color: #0a0a0a;
+ border-color: transparent;
+ color: #fff;
+}
+.button.is-black.is-hovered,
+.button.is-black:hover {
+ background-color: #040404;
+ border-color: transparent;
+ color: #fff;
+}
+.button.is-black.is-focused,
+.button.is-black:focus {
+ border-color: transparent;
+ color: #fff;
+}
+.button.is-black.is-focused:not(:active),
+.button.is-black:focus:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25);
+}
+.button.is-black.is-active,
+.button.is-black:active {
+ background-color: #000;
+ border-color: transparent;
+ color: #fff;
+}
+.button.is-black[disabled],
+fieldset[disabled] .button.is-black {
+ background-color: #0a0a0a;
+ border-color: transparent;
+ box-shadow: none;
+}
+.button.is-black.is-inverted {
+ background-color: #fff;
+ color: #0a0a0a;
+}
+.button.is-black.is-inverted.is-hovered,
+.button.is-black.is-inverted:hover {
+ background-color: #f2f2f2;
+}
+.button.is-black.is-inverted[disabled],
+fieldset[disabled] .button.is-black.is-inverted {
+ background-color: #fff;
+ border-color: transparent;
+ box-shadow: none;
+ color: #0a0a0a;
+}
+.button.is-black.is-loading::after {
+ border-color: transparent transparent #fff #fff !important;
+}
+.button.is-black.is-outlined {
+ background-color: transparent;
+ border-color: #0a0a0a;
+ color: #0a0a0a;
+}
+.button.is-black.is-outlined.is-focused,
+.button.is-black.is-outlined.is-hovered,
+.button.is-black.is-outlined:focus,
+.button.is-black.is-outlined:hover {
+ background-color: #0a0a0a;
+ border-color: #0a0a0a;
+ color: #fff;
+}
+.button.is-black.is-outlined.is-loading::after {
+ border-color: transparent transparent #0a0a0a #0a0a0a !important;
+}
+.button.is-black.is-outlined.is-loading.is-focused::after,
+.button.is-black.is-outlined.is-loading.is-hovered::after,
+.button.is-black.is-outlined.is-loading:focus::after,
+.button.is-black.is-outlined.is-loading:hover::after {
+ border-color: transparent transparent #fff #fff !important;
+}
+.button.is-black.is-outlined[disabled],
+fieldset[disabled] .button.is-black.is-outlined {
+ background-color: transparent;
+ border-color: #0a0a0a;
+ box-shadow: none;
+ color: #0a0a0a;
+}
+.button.is-black.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ color: #fff;
+}
+.button.is-black.is-inverted.is-outlined.is-focused,
+.button.is-black.is-inverted.is-outlined.is-hovered,
+.button.is-black.is-inverted.is-outlined:focus,
+.button.is-black.is-inverted.is-outlined:hover {
+ background-color: #fff;
+ color: #0a0a0a;
+}
+.button.is-black.is-inverted.is-outlined.is-loading.is-focused::after,
+.button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after,
+.button.is-black.is-inverted.is-outlined.is-loading:focus::after,
+.button.is-black.is-inverted.is-outlined.is-loading:hover::after {
+ border-color: transparent transparent #0a0a0a #0a0a0a !important;
+}
+.button.is-black.is-inverted.is-outlined[disabled],
+fieldset[disabled] .button.is-black.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ box-shadow: none;
+ color: #fff;
+}
+.button.is-light {
+ background-color: #f5f5f5;
+ border-color: transparent;
+ color: rgba(0, 0, 0, 0.7);
+}
+.button.is-light.is-hovered,
+.button.is-light:hover {
+ background-color: #eee;
+ border-color: transparent;
+ color: rgba(0, 0, 0, 0.7);
+}
+.button.is-light.is-focused,
+.button.is-light:focus {
+ border-color: transparent;
+ color: rgba(0, 0, 0, 0.7);
+}
+.button.is-light.is-focused:not(:active),
+.button.is-light:focus:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25);
+}
+.button.is-light.is-active,
+.button.is-light:active {
+ background-color: #e8e8e8;
+ border-color: transparent;
+ color: rgba(0, 0, 0, 0.7);
+}
+.button.is-light[disabled],
+fieldset[disabled] .button.is-light {
+ background-color: #f5f5f5;
+ border-color: transparent;
+ box-shadow: none;
+}
+.button.is-light.is-inverted {
+ background-color: rgba(0, 0, 0, 0.7);
+ color: #f5f5f5;
+}
+.button.is-light.is-inverted.is-hovered,
+.button.is-light.is-inverted:hover {
+ background-color: rgba(0, 0, 0, 0.7);
+}
+.button.is-light.is-inverted[disabled],
+fieldset[disabled] .button.is-light.is-inverted {
+ background-color: rgba(0, 0, 0, 0.7);
+ border-color: transparent;
+ box-shadow: none;
+ color: #f5f5f5;
+}
+.button.is-light.is-loading::after {
+ border-color: transparent transparent rgba(0, 0, 0, 0.7) rgba(0, 0, 0, 0.7) !important;
+}
+.button.is-light.is-outlined {
+ background-color: transparent;
+ border-color: #f5f5f5;
+ color: #f5f5f5;
+}
+.button.is-light.is-outlined.is-focused,
+.button.is-light.is-outlined.is-hovered,
+.button.is-light.is-outlined:focus,
+.button.is-light.is-outlined:hover {
+ background-color: #f5f5f5;
+ border-color: #f5f5f5;
+ color: rgba(0, 0, 0, 0.7);
+}
+.button.is-light.is-outlined.is-loading::after {
+ border-color: transparent transparent #f5f5f5 #f5f5f5 !important;
+}
+.button.is-light.is-outlined.is-loading.is-focused::after,
+.button.is-light.is-outlined.is-loading.is-hovered::after,
+.button.is-light.is-outlined.is-loading:focus::after,
+.button.is-light.is-outlined.is-loading:hover::after {
+ border-color: transparent transparent rgba(0, 0, 0, 0.7) rgba(0, 0, 0, 0.7) !important;
+}
+.button.is-light.is-outlined[disabled],
+fieldset[disabled] .button.is-light.is-outlined {
+ background-color: transparent;
+ border-color: #f5f5f5;
+ box-shadow: none;
+ color: #f5f5f5;
+}
+.button.is-light.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: rgba(0, 0, 0, 0.7);
+ color: rgba(0, 0, 0, 0.7);
+}
+.button.is-light.is-inverted.is-outlined.is-focused,
+.button.is-light.is-inverted.is-outlined.is-hovered,
+.button.is-light.is-inverted.is-outlined:focus,
+.button.is-light.is-inverted.is-outlined:hover {
+ background-color: rgba(0, 0, 0, 0.7);
+ color: #f5f5f5;
+}
+.button.is-light.is-inverted.is-outlined.is-loading.is-focused::after,
+.button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after,
+.button.is-light.is-inverted.is-outlined.is-loading:focus::after,
+.button.is-light.is-inverted.is-outlined.is-loading:hover::after {
+ border-color: transparent transparent #f5f5f5 #f5f5f5 !important;
+}
+.button.is-light.is-inverted.is-outlined[disabled],
+fieldset[disabled] .button.is-light.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: rgba(0, 0, 0, 0.7);
+ box-shadow: none;
+ color: rgba(0, 0, 0, 0.7);
+}
+.button.is-dark {
+ background-color: #363636;
+ border-color: transparent;
+ color: #fff;
+}
+.button.is-dark.is-hovered,
+.button.is-dark:hover {
+ background-color: #2f2f2f;
+ border-color: transparent;
+ color: #fff;
+}
+.button.is-dark.is-focused,
+.button.is-dark:focus {
+ border-color: transparent;
+ color: #fff;
+}
+.button.is-dark.is-focused:not(:active),
+.button.is-dark:focus:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25);
+}
+.button.is-dark.is-active,
+.button.is-dark:active {
+ background-color: #292929;
+ border-color: transparent;
+ color: #fff;
+}
+.button.is-dark[disabled],
+fieldset[disabled] .button.is-dark {
+ background-color: #363636;
+ border-color: transparent;
+ box-shadow: none;
+}
+.button.is-dark.is-inverted {
+ background-color: #fff;
+ color: #363636;
+}
+.button.is-dark.is-inverted.is-hovered,
+.button.is-dark.is-inverted:hover {
+ background-color: #f2f2f2;
+}
+.button.is-dark.is-inverted[disabled],
+fieldset[disabled] .button.is-dark.is-inverted {
+ background-color: #fff;
+ border-color: transparent;
+ box-shadow: none;
+ color: #363636;
+}
+.button.is-dark.is-loading::after {
+ border-color: transparent transparent #fff #fff !important;
+}
+.button.is-dark.is-outlined {
+ background-color: transparent;
+ border-color: #363636;
+ color: #363636;
+}
+.button.is-dark.is-outlined.is-focused,
+.button.is-dark.is-outlined.is-hovered,
+.button.is-dark.is-outlined:focus,
+.button.is-dark.is-outlined:hover {
+ background-color: #363636;
+ border-color: #363636;
+ color: #fff;
+}
+.button.is-dark.is-outlined.is-loading::after {
+ border-color: transparent transparent #363636 #363636 !important;
+}
+.button.is-dark.is-outlined.is-loading.is-focused::after,
+.button.is-dark.is-outlined.is-loading.is-hovered::after,
+.button.is-dark.is-outlined.is-loading:focus::after,
+.button.is-dark.is-outlined.is-loading:hover::after {
+ border-color: transparent transparent #fff #fff !important;
+}
+.button.is-dark.is-outlined[disabled],
+fieldset[disabled] .button.is-dark.is-outlined {
+ background-color: transparent;
+ border-color: #363636;
+ box-shadow: none;
+ color: #363636;
+}
+.button.is-dark.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ color: #fff;
+}
+.button.is-dark.is-inverted.is-outlined.is-focused,
+.button.is-dark.is-inverted.is-outlined.is-hovered,
+.button.is-dark.is-inverted.is-outlined:focus,
+.button.is-dark.is-inverted.is-outlined:hover {
+ background-color: #fff;
+ color: #363636;
+}
+.button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after,
+.button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after,
+.button.is-dark.is-inverted.is-outlined.is-loading:focus::after,
+.button.is-dark.is-inverted.is-outlined.is-loading:hover::after {
+ border-color: transparent transparent #363636 #363636 !important;
+}
+.button.is-dark.is-inverted.is-outlined[disabled],
+fieldset[disabled] .button.is-dark.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ box-shadow: none;
+ color: #fff;
+}
+.button.is-primary {
+ background-color: #00d1b2;
+ border-color: transparent;
+ color: #fff;
+}
+.button.is-primary.is-hovered,
+.button.is-primary:hover {
+ background-color: #00c4a7;
+ border-color: transparent;
+ color: #fff;
+}
+.button.is-primary.is-focused,
+.button.is-primary:focus {
+ border-color: transparent;
+ color: #fff;
+}
+.button.is-primary.is-focused:not(:active),
+.button.is-primary:focus:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(0, 209, 178, 0.25);
+}
+.button.is-primary.is-active,
+.button.is-primary:active {
+ background-color: #00b89c;
+ border-color: transparent;
+ color: #fff;
+}
+.button.is-primary[disabled],
+fieldset[disabled] .button.is-primary {
+ background-color: #00d1b2;
+ border-color: transparent;
+ box-shadow: none;
+}
+.button.is-primary.is-inverted {
+ background-color: #fff;
+ color: #00d1b2;
+}
+.button.is-primary.is-inverted.is-hovered,
+.button.is-primary.is-inverted:hover {
+ background-color: #f2f2f2;
+}
+.button.is-primary.is-inverted[disabled],
+fieldset[disabled] .button.is-primary.is-inverted {
+ background-color: #fff;
+ border-color: transparent;
+ box-shadow: none;
+ color: #00d1b2;
+}
+.button.is-primary.is-loading::after {
+ border-color: transparent transparent #fff #fff !important;
+}
+.button.is-primary.is-outlined {
+ background-color: transparent;
+ border-color: #00d1b2;
+ color: #00d1b2;
+}
+.button.is-primary.is-outlined.is-focused,
+.button.is-primary.is-outlined.is-hovered,
+.button.is-primary.is-outlined:focus,
+.button.is-primary.is-outlined:hover {
+ background-color: #00d1b2;
+ border-color: #00d1b2;
+ color: #fff;
+}
+.button.is-primary.is-outlined.is-loading::after {
+ border-color: transparent transparent #00d1b2 #00d1b2 !important;
+}
+.button.is-primary.is-outlined.is-loading.is-focused::after,
+.button.is-primary.is-outlined.is-loading.is-hovered::after,
+.button.is-primary.is-outlined.is-loading:focus::after,
+.button.is-primary.is-outlined.is-loading:hover::after {
+ border-color: transparent transparent #fff #fff !important;
+}
+.button.is-primary.is-outlined[disabled],
+fieldset[disabled] .button.is-primary.is-outlined {
+ background-color: transparent;
+ border-color: #00d1b2;
+ box-shadow: none;
+ color: #00d1b2;
+}
+.button.is-primary.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ color: #fff;
+}
+.button.is-primary.is-inverted.is-outlined.is-focused,
+.button.is-primary.is-inverted.is-outlined.is-hovered,
+.button.is-primary.is-inverted.is-outlined:focus,
+.button.is-primary.is-inverted.is-outlined:hover {
+ background-color: #fff;
+ color: #00d1b2;
+}
+.button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after,
+.button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after,
+.button.is-primary.is-inverted.is-outlined.is-loading:focus::after,
+.button.is-primary.is-inverted.is-outlined.is-loading:hover::after {
+ border-color: transparent transparent #00d1b2 #00d1b2 !important;
+}
+.button.is-primary.is-inverted.is-outlined[disabled],
+fieldset[disabled] .button.is-primary.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ box-shadow: none;
+ color: #fff;
+}
+.button.is-primary.is-light {
+ background-color: #ebfffc;
+ color: #00947e;
+}
+.button.is-primary.is-light.is-hovered,
+.button.is-primary.is-light:hover {
+ background-color: #defffa;
+ border-color: transparent;
+ color: #00947e;
+}
+.button.is-primary.is-light.is-active,
+.button.is-primary.is-light:active {
+ background-color: #d1fff8;
+ border-color: transparent;
+ color: #00947e;
+}
+.button.is-link {
+ background-color: #485fc7;
+ border-color: transparent;
+ color: #fff;
+}
+.button.is-link.is-hovered,
+.button.is-link:hover {
+ background-color: #3e56c4;
+ border-color: transparent;
+ color: #fff;
+}
+.button.is-link.is-focused,
+.button.is-link:focus {
+ border-color: transparent;
+ color: #fff;
+}
+.button.is-link.is-focused:not(:active),
+.button.is-link:focus:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(72, 95, 199, 0.25);
+}
+.button.is-link.is-active,
+.button.is-link:active {
+ background-color: #3a51bb;
+ border-color: transparent;
+ color: #fff;
+}
+.button.is-link[disabled],
+fieldset[disabled] .button.is-link {
+ background-color: #485fc7;
+ border-color: transparent;
+ box-shadow: none;
+}
+.button.is-link.is-inverted {
+ background-color: #fff;
+ color: #485fc7;
+}
+.button.is-link.is-inverted.is-hovered,
+.button.is-link.is-inverted:hover {
+ background-color: #f2f2f2;
+}
+.button.is-link.is-inverted[disabled],
+fieldset[disabled] .button.is-link.is-inverted {
+ background-color: #fff;
+ border-color: transparent;
+ box-shadow: none;
+ color: #485fc7;
+}
+.button.is-link.is-loading::after {
+ border-color: transparent transparent #fff #fff !important;
+}
+.button.is-link.is-outlined {
+ background-color: transparent;
+ border-color: #485fc7;
+ color: #485fc7;
+}
+.button.is-link.is-outlined.is-focused,
+.button.is-link.is-outlined.is-hovered,
+.button.is-link.is-outlined:focus,
+.button.is-link.is-outlined:hover {
+ background-color: #485fc7;
+ border-color: #485fc7;
+ color: #fff;
+}
+.button.is-link.is-outlined.is-loading::after {
+ border-color: transparent transparent #485fc7 #485fc7 !important;
+}
+.button.is-link.is-outlined.is-loading.is-focused::after,
+.button.is-link.is-outlined.is-loading.is-hovered::after,
+.button.is-link.is-outlined.is-loading:focus::after,
+.button.is-link.is-outlined.is-loading:hover::after {
+ border-color: transparent transparent #fff #fff !important;
+}
+.button.is-link.is-outlined[disabled],
+fieldset[disabled] .button.is-link.is-outlined {
+ background-color: transparent;
+ border-color: #485fc7;
+ box-shadow: none;
+ color: #485fc7;
+}
+.button.is-link.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ color: #fff;
+}
+.button.is-link.is-inverted.is-outlined.is-focused,
+.button.is-link.is-inverted.is-outlined.is-hovered,
+.button.is-link.is-inverted.is-outlined:focus,
+.button.is-link.is-inverted.is-outlined:hover {
+ background-color: #fff;
+ color: #485fc7;
+}
+.button.is-link.is-inverted.is-outlined.is-loading.is-focused::after,
+.button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after,
+.button.is-link.is-inverted.is-outlined.is-loading:focus::after,
+.button.is-link.is-inverted.is-outlined.is-loading:hover::after {
+ border-color: transparent transparent #485fc7 #485fc7 !important;
+}
+.button.is-link.is-inverted.is-outlined[disabled],
+fieldset[disabled] .button.is-link.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ box-shadow: none;
+ color: #fff;
+}
+.button.is-link.is-light {
+ background-color: #eff1fa;
+ color: #3850b7;
+}
+.button.is-link.is-light.is-hovered,
+.button.is-link.is-light:hover {
+ background-color: #e6e9f7;
+ border-color: transparent;
+ color: #3850b7;
+}
+.button.is-link.is-light.is-active,
+.button.is-link.is-light:active {
+ background-color: #dce0f4;
+ border-color: transparent;
+ color: #3850b7;
+}
+.button.is-info {
+ background-color: #3e8ed0;
+ border-color: transparent;
+ color: #fff;
+}
+.button.is-info.is-hovered,
+.button.is-info:hover {
+ background-color: #3488ce;
+ border-color: transparent;
+ color: #fff;
+}
+.button.is-info.is-focused,
+.button.is-info:focus {
+ border-color: transparent;
+ color: #fff;
+}
+.button.is-info.is-focused:not(:active),
+.button.is-info:focus:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(62, 142, 208, 0.25);
+}
+.button.is-info.is-active,
+.button.is-info:active {
+ background-color: #3082c5;
+ border-color: transparent;
+ color: #fff;
+}
+.button.is-info[disabled],
+fieldset[disabled] .button.is-info {
+ background-color: #3e8ed0;
+ border-color: transparent;
+ box-shadow: none;
+}
+.button.is-info.is-inverted {
+ background-color: #fff;
+ color: #3e8ed0;
+}
+.button.is-info.is-inverted.is-hovered,
+.button.is-info.is-inverted:hover {
+ background-color: #f2f2f2;
+}
+.button.is-info.is-inverted[disabled],
+fieldset[disabled] .button.is-info.is-inverted {
+ background-color: #fff;
+ border-color: transparent;
+ box-shadow: none;
+ color: #3e8ed0;
+}
+.button.is-info.is-loading::after {
+ border-color: transparent transparent #fff #fff !important;
+}
+.button.is-info.is-outlined {
+ background-color: transparent;
+ border-color: #3e8ed0;
+ color: #3e8ed0;
+}
+.button.is-info.is-outlined.is-focused,
+.button.is-info.is-outlined.is-hovered,
+.button.is-info.is-outlined:focus,
+.button.is-info.is-outlined:hover {
+ background-color: #3e8ed0;
+ border-color: #3e8ed0;
+ color: #fff;
+}
+.button.is-info.is-outlined.is-loading::after {
+ border-color: transparent transparent #3e8ed0 #3e8ed0 !important;
+}
+.button.is-info.is-outlined.is-loading.is-focused::after,
+.button.is-info.is-outlined.is-loading.is-hovered::after,
+.button.is-info.is-outlined.is-loading:focus::after,
+.button.is-info.is-outlined.is-loading:hover::after {
+ border-color: transparent transparent #fff #fff !important;
+}
+.button.is-info.is-outlined[disabled],
+fieldset[disabled] .button.is-info.is-outlined {
+ background-color: transparent;
+ border-color: #3e8ed0;
+ box-shadow: none;
+ color: #3e8ed0;
+}
+.button.is-info.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ color: #fff;
+}
+.button.is-info.is-inverted.is-outlined.is-focused,
+.button.is-info.is-inverted.is-outlined.is-hovered,
+.button.is-info.is-inverted.is-outlined:focus,
+.button.is-info.is-inverted.is-outlined:hover {
+ background-color: #fff;
+ color: #3e8ed0;
+}
+.button.is-info.is-inverted.is-outlined.is-loading.is-focused::after,
+.button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after,
+.button.is-info.is-inverted.is-outlined.is-loading:focus::after,
+.button.is-info.is-inverted.is-outlined.is-loading:hover::after {
+ border-color: transparent transparent #3e8ed0 #3e8ed0 !important;
+}
+.button.is-info.is-inverted.is-outlined[disabled],
+fieldset[disabled] .button.is-info.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ box-shadow: none;
+ color: #fff;
+}
+.button.is-info.is-light {
+ background-color: #eff5fb;
+ color: #296fa8;
+}
+.button.is-info.is-light.is-hovered,
+.button.is-info.is-light:hover {
+ background-color: #e4eff9;
+ border-color: transparent;
+ color: #296fa8;
+}
+.button.is-info.is-light.is-active,
+.button.is-info.is-light:active {
+ background-color: #dae9f6;
+ border-color: transparent;
+ color: #296fa8;
+}
+.button.is-success {
+ background-color: #48c78e;
+ border-color: transparent;
+ color: #fff;
+}
+.button.is-success.is-hovered,
+.button.is-success:hover {
+ background-color: #3ec487;
+ border-color: transparent;
+ color: #fff;
+}
+.button.is-success.is-focused,
+.button.is-success:focus {
+ border-color: transparent;
+ color: #fff;
+}
+.button.is-success.is-focused:not(:active),
+.button.is-success:focus:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(72, 199, 142, 0.25);
+}
+.button.is-success.is-active,
+.button.is-success:active {
+ background-color: #3abb81;
+ border-color: transparent;
+ color: #fff;
+}
+.button.is-success[disabled],
+fieldset[disabled] .button.is-success {
+ background-color: #48c78e;
+ border-color: transparent;
+ box-shadow: none;
+}
+.button.is-success.is-inverted {
+ background-color: #fff;
+ color: #48c78e;
+}
+.button.is-success.is-inverted.is-hovered,
+.button.is-success.is-inverted:hover {
+ background-color: #f2f2f2;
+}
+.button.is-success.is-inverted[disabled],
+fieldset[disabled] .button.is-success.is-inverted {
+ background-color: #fff;
+ border-color: transparent;
+ box-shadow: none;
+ color: #48c78e;
+}
+.button.is-success.is-loading::after {
+ border-color: transparent transparent #fff #fff !important;
+}
+.button.is-success.is-outlined {
+ background-color: transparent;
+ border-color: #48c78e;
+ color: #48c78e;
+}
+.button.is-success.is-outlined.is-focused,
+.button.is-success.is-outlined.is-hovered,
+.button.is-success.is-outlined:focus,
+.button.is-success.is-outlined:hover {
+ background-color: #48c78e;
+ border-color: #48c78e;
+ color: #fff;
+}
+.button.is-success.is-outlined.is-loading::after {
+ border-color: transparent transparent #48c78e #48c78e !important;
+}
+.button.is-success.is-outlined.is-loading.is-focused::after,
+.button.is-success.is-outlined.is-loading.is-hovered::after,
+.button.is-success.is-outlined.is-loading:focus::after,
+.button.is-success.is-outlined.is-loading:hover::after {
+ border-color: transparent transparent #fff #fff !important;
+}
+.button.is-success.is-outlined[disabled],
+fieldset[disabled] .button.is-success.is-outlined {
+ background-color: transparent;
+ border-color: #48c78e;
+ box-shadow: none;
+ color: #48c78e;
+}
+.button.is-success.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ color: #fff;
+}
+.button.is-success.is-inverted.is-outlined.is-focused,
+.button.is-success.is-inverted.is-outlined.is-hovered,
+.button.is-success.is-inverted.is-outlined:focus,
+.button.is-success.is-inverted.is-outlined:hover {
+ background-color: #fff;
+ color: #48c78e;
+}
+.button.is-success.is-inverted.is-outlined.is-loading.is-focused::after,
+.button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after,
+.button.is-success.is-inverted.is-outlined.is-loading:focus::after,
+.button.is-success.is-inverted.is-outlined.is-loading:hover::after {
+ border-color: transparent transparent #48c78e #48c78e !important;
+}
+.button.is-success.is-inverted.is-outlined[disabled],
+fieldset[disabled] .button.is-success.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ box-shadow: none;
+ color: #fff;
+}
+.button.is-success.is-light {
+ background-color: #effaf5;
+ color: #257953;
+}
+.button.is-success.is-light.is-hovered,
+.button.is-success.is-light:hover {
+ background-color: #e6f7ef;
+ border-color: transparent;
+ color: #257953;
+}
+.button.is-success.is-light.is-active,
+.button.is-success.is-light:active {
+ background-color: #dcf4e9;
+ border-color: transparent;
+ color: #257953;
+}
+.button.is-warning {
+ background-color: #ffe08a;
+ border-color: transparent;
+ color: rgba(0, 0, 0, 0.7);
+}
+.button.is-warning.is-hovered,
+.button.is-warning:hover {
+ background-color: #ffdc7d;
+ border-color: transparent;
+ color: rgba(0, 0, 0, 0.7);
+}
+.button.is-warning.is-focused,
+.button.is-warning:focus {
+ border-color: transparent;
+ color: rgba(0, 0, 0, 0.7);
+}
+.button.is-warning.is-focused:not(:active),
+.button.is-warning:focus:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(255, 224, 138, 0.25);
+}
+.button.is-warning.is-active,
+.button.is-warning:active {
+ background-color: #ffd970;
+ border-color: transparent;
+ color: rgba(0, 0, 0, 0.7);
+}
+.button.is-warning[disabled],
+fieldset[disabled] .button.is-warning {
+ background-color: #ffe08a;
+ border-color: transparent;
+ box-shadow: none;
+}
+.button.is-warning.is-inverted {
+ background-color: rgba(0, 0, 0, 0.7);
+ color: #ffe08a;
+}
+.button.is-warning.is-inverted.is-hovered,
+.button.is-warning.is-inverted:hover {
+ background-color: rgba(0, 0, 0, 0.7);
+}
+.button.is-warning.is-inverted[disabled],
+fieldset[disabled] .button.is-warning.is-inverted {
+ background-color: rgba(0, 0, 0, 0.7);
+ border-color: transparent;
+ box-shadow: none;
+ color: #ffe08a;
+}
+.button.is-warning.is-loading::after {
+ border-color: transparent transparent rgba(0, 0, 0, 0.7) rgba(0, 0, 0, 0.7) !important;
+}
+.button.is-warning.is-outlined {
+ background-color: transparent;
+ border-color: #ffe08a;
+ color: #ffe08a;
+}
+.button.is-warning.is-outlined.is-focused,
+.button.is-warning.is-outlined.is-hovered,
+.button.is-warning.is-outlined:focus,
+.button.is-warning.is-outlined:hover {
+ background-color: #ffe08a;
+ border-color: #ffe08a;
+ color: rgba(0, 0, 0, 0.7);
+}
+.button.is-warning.is-outlined.is-loading::after {
+ border-color: transparent transparent #ffe08a #ffe08a !important;
+}
+.button.is-warning.is-outlined.is-loading.is-focused::after,
+.button.is-warning.is-outlined.is-loading.is-hovered::after,
+.button.is-warning.is-outlined.is-loading:focus::after,
+.button.is-warning.is-outlined.is-loading:hover::after {
+ border-color: transparent transparent rgba(0, 0, 0, 0.7) rgba(0, 0, 0, 0.7) !important;
+}
+.button.is-warning.is-outlined[disabled],
+fieldset[disabled] .button.is-warning.is-outlined {
+ background-color: transparent;
+ border-color: #ffe08a;
+ box-shadow: none;
+ color: #ffe08a;
+}
+.button.is-warning.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: rgba(0, 0, 0, 0.7);
+ color: rgba(0, 0, 0, 0.7);
+}
+.button.is-warning.is-inverted.is-outlined.is-focused,
+.button.is-warning.is-inverted.is-outlined.is-hovered,
+.button.is-warning.is-inverted.is-outlined:focus,
+.button.is-warning.is-inverted.is-outlined:hover {
+ background-color: rgba(0, 0, 0, 0.7);
+ color: #ffe08a;
+}
+.button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after,
+.button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after,
+.button.is-warning.is-inverted.is-outlined.is-loading:focus::after,
+.button.is-warning.is-inverted.is-outlined.is-loading:hover::after {
+ border-color: transparent transparent #ffe08a #ffe08a !important;
+}
+.button.is-warning.is-inverted.is-outlined[disabled],
+fieldset[disabled] .button.is-warning.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: rgba(0, 0, 0, 0.7);
+ box-shadow: none;
+ color: rgba(0, 0, 0, 0.7);
+}
+.button.is-warning.is-light {
+ background-color: #fffaeb;
+ color: #946c00;
+}
+.button.is-warning.is-light.is-hovered,
+.button.is-warning.is-light:hover {
+ background-color: #fff6de;
+ border-color: transparent;
+ color: #946c00;
+}
+.button.is-warning.is-light.is-active,
+.button.is-warning.is-light:active {
+ background-color: #fff3d1;
+ border-color: transparent;
+ color: #946c00;
+}
+.button.is-danger {
+ background-color: #f14668;
+ border-color: transparent;
+ color: #fff;
+}
+.button.is-danger.is-hovered,
+.button.is-danger:hover {
+ background-color: #f03a5f;
+ border-color: transparent;
+ color: #fff;
+}
+.button.is-danger.is-focused,
+.button.is-danger:focus {
+ border-color: transparent;
+ color: #fff;
+}
+.button.is-danger.is-focused:not(:active),
+.button.is-danger:focus:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(241, 70, 104, 0.25);
+}
+.button.is-danger.is-active,
+.button.is-danger:active {
+ background-color: #ef2e55;
+ border-color: transparent;
+ color: #fff;
+}
+.button.is-danger[disabled],
+fieldset[disabled] .button.is-danger {
+ background-color: #f14668;
+ border-color: transparent;
+ box-shadow: none;
+}
+.button.is-danger.is-inverted {
+ background-color: #fff;
+ color: #f14668;
+}
+.button.is-danger.is-inverted.is-hovered,
+.button.is-danger.is-inverted:hover {
+ background-color: #f2f2f2;
+}
+.button.is-danger.is-inverted[disabled],
+fieldset[disabled] .button.is-danger.is-inverted {
+ background-color: #fff;
+ border-color: transparent;
+ box-shadow: none;
+ color: #f14668;
+}
+.button.is-danger.is-loading::after {
+ border-color: transparent transparent #fff #fff !important;
+}
+.button.is-danger.is-outlined {
+ background-color: transparent;
+ border-color: #f14668;
+ color: #f14668;
+}
+.button.is-danger.is-outlined.is-focused,
+.button.is-danger.is-outlined.is-hovered,
+.button.is-danger.is-outlined:focus,
+.button.is-danger.is-outlined:hover {
+ background-color: #f14668;
+ border-color: #f14668;
+ color: #fff;
+}
+.button.is-danger.is-outlined.is-loading::after {
+ border-color: transparent transparent #f14668 #f14668 !important;
+}
+.button.is-danger.is-outlined.is-loading.is-focused::after,
+.button.is-danger.is-outlined.is-loading.is-hovered::after,
+.button.is-danger.is-outlined.is-loading:focus::after,
+.button.is-danger.is-outlined.is-loading:hover::after {
+ border-color: transparent transparent #fff #fff !important;
+}
+.button.is-danger.is-outlined[disabled],
+fieldset[disabled] .button.is-danger.is-outlined {
+ background-color: transparent;
+ border-color: #f14668;
+ box-shadow: none;
+ color: #f14668;
+}
+.button.is-danger.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ color: #fff;
+}
+.button.is-danger.is-inverted.is-outlined.is-focused,
+.button.is-danger.is-inverted.is-outlined.is-hovered,
+.button.is-danger.is-inverted.is-outlined:focus,
+.button.is-danger.is-inverted.is-outlined:hover {
+ background-color: #fff;
+ color: #f14668;
+}
+.button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after,
+.button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after,
+.button.is-danger.is-inverted.is-outlined.is-loading:focus::after,
+.button.is-danger.is-inverted.is-outlined.is-loading:hover::after {
+ border-color: transparent transparent #f14668 #f14668 !important;
+}
+.button.is-danger.is-inverted.is-outlined[disabled],
+fieldset[disabled] .button.is-danger.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ box-shadow: none;
+ color: #fff;
+}
+.button.is-danger.is-light {
+ background-color: #feecf0;
+ color: #cc0f35;
+}
+.button.is-danger.is-light.is-hovered,
+.button.is-danger.is-light:hover {
+ background-color: #fde0e6;
+ border-color: transparent;
+ color: #cc0f35;
+}
+.button.is-danger.is-light.is-active,
+.button.is-danger.is-light:active {
+ background-color: #fcd4dc;
+ border-color: transparent;
+ color: #cc0f35;
+}
+.button.is-small {
+ font-size: 0.75rem;
+}
+.button.is-small:not(.is-rounded) {
+ border-radius: 2px;
+}
+.button.is-normal {
+ font-size: 1rem;
+}
+.button.is-medium {
+ font-size: 1.25rem;
+}
+.button.is-large {
+ font-size: 1.5rem;
+}
+.button[disabled],
+fieldset[disabled] .button {
+ background-color: #fff;
+ border-color: #dbdbdb;
+ box-shadow: none;
+ opacity: 0.5;
+}
+.button.is-fullwidth {
+ display: flex;
+ width: 100%;
+}
+.button.is-loading {
+ color: transparent !important;
+ pointer-events: none;
+}
+.button.is-loading::after {
+ position: absolute;
+ left: calc(50% - (1em * 0.5));
+ top: calc(50% - (1em * 0.5));
+ position: absolute !important;
+}
+.button.is-static {
+ background-color: #f5f5f5;
+ border-color: #dbdbdb;
+ color: #7a7a7a;
+ box-shadow: none;
+ pointer-events: none;
+}
+.button.is-rounded {
+ border-radius: 9999px;
+ padding-left: calc(1em + 0.25em);
+ padding-right: calc(1em + 0.25em);
+}
+.buttons {
+ align-items: center;
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: flex-start;
+}
+.buttons .button {
+ margin-bottom: 0.5rem;
+}
+.buttons .button:not(:last-child):not(.is-fullwidth) {
+ margin-right: 0.5rem;
+}
+.buttons:last-child {
+ margin-bottom: -0.5rem;
+}
+.buttons:not(:last-child) {
+ margin-bottom: 1rem;
+}
+.buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large) {
+ font-size: 0.75rem;
+}
+.buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large):not(.is-rounded) {
+ border-radius: 2px;
+}
+.buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large) {
+ font-size: 1.25rem;
+}
+.buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium) {
+ font-size: 1.5rem;
+}
+.buttons.has-addons .button:not(:first-child) {
+ border-bottom-left-radius: 0;
+ border-top-left-radius: 0;
+}
+.buttons.has-addons .button:not(:last-child) {
+ border-bottom-right-radius: 0;
+ border-top-right-radius: 0;
+ margin-right: -1px;
+}
+.buttons.has-addons .button:last-child {
+ margin-right: 0;
+}
+.buttons.has-addons .button.is-hovered,
+.buttons.has-addons .button:hover {
+ z-index: 2;
+}
+.buttons.has-addons .button.is-active,
+.buttons.has-addons .button.is-focused,
+.buttons.has-addons .button.is-selected,
+.buttons.has-addons .button:active,
+.buttons.has-addons .button:focus {
+ z-index: 3;
+}
+.buttons.has-addons .button.is-active:hover,
+.buttons.has-addons .button.is-focused:hover,
+.buttons.has-addons .button.is-selected:hover,
+.buttons.has-addons .button:active:hover,
+.buttons.has-addons .button:focus:hover {
+ z-index: 4;
+}
+.buttons.has-addons .button.is-expanded {
+ flex-grow: 1;
+ flex-shrink: 1;
+}
+.buttons.is-centered {
+ justify-content: center;
+}
+.buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth) {
+ margin-left: 0.25rem;
+ margin-right: 0.25rem;
+}
+.buttons.is-right {
+ justify-content: flex-end;
+}
+.buttons.is-right:not(.has-addons) .button:not(.is-fullwidth) {
+ margin-left: 0.25rem;
+ margin-right: 0.25rem;
+}
+.container {
+ flex-grow: 1;
+ margin: 0 auto;
+ position: relative;
+ width: auto;
+}
+.container.is-fluid {
+ max-width: none !important;
+ padding-left: 32px;
+ padding-right: 32px;
+ width: 100%;
+}
+@media screen and (min-width: 1024px) {
+ .container {
+ max-width: 960px;
+ }
+}
+@media screen and (max-width: 1215px) {
+ .container.is-widescreen:not(.is-max-desktop) {
+ max-width: 1152px;
+ }
+}
+@media screen and (max-width: 1407px) {
+ .container.is-fullhd:not(.is-max-desktop):not(.is-max-widescreen) {
+ max-width: 1344px;
+ }
+}
+@media screen and (min-width: 1216px) {
+ .container:not(.is-max-desktop) {
+ max-width: 1152px;
+ }
+}
+@media screen and (min-width: 1408px) {
+ .container:not(.is-max-desktop):not(.is-max-widescreen) {
+ max-width: 1344px;
+ }
+}
+.content li + li {
+ margin-top: 0.25em;
+}
+.content blockquote:not(:last-child),
+.content dl:not(:last-child),
+.content ol:not(:last-child),
+.content p:not(:last-child),
+.content pre:not(:last-child),
+.content table:not(:last-child),
+.content ul:not(:last-child) {
+ margin-bottom: 1em;
+}
+.content h1,
+.content h2,
+.content h3,
+.content h4,
+.content h5,
+.content h6 {
+ color: #363636;
+ font-weight: 600;
+ line-height: 1.125;
+}
+.content h1 {
+ font-size: 2em;
+ margin-bottom: 0.5em;
+}
+.content h1:not(:first-child) {
+ margin-top: 1em;
+}
+.content h2 {
+ font-size: 1.75em;
+ margin-bottom: 0.5714em;
+}
+.content h2:not(:first-child) {
+ margin-top: 1.1428em;
+}
+.content h3 {
+ font-size: 1.5em;
+ margin-bottom: 0.6666em;
+}
+.content h3:not(:first-child) {
+ margin-top: 1.3333em;
+}
+.content h4 {
+ font-size: 1.25em;
+ margin-bottom: 0.8em;
+}
+.content h5 {
+ font-size: 1.125em;
+ margin-bottom: 0.8888em;
+}
+.content h6 {
+ font-size: 1em;
+ margin-bottom: 1em;
+}
+.content blockquote {
+ background-color: #f5f5f5;
+ border-left: 5px solid #dbdbdb;
+ padding: 1.25em 1.5em;
+}
+.content ol {
+ list-style-position: outside;
+ margin-left: 2em;
+ margin-top: 1em;
+}
+.content ol:not([type]) {
+ list-style-type: decimal;
+}
+.content ol:not([type]).is-lower-alpha {
+ list-style-type: lower-alpha;
+}
+.content ol:not([type]).is-lower-roman {
+ list-style-type: lower-roman;
+}
+.content ol:not([type]).is-upper-alpha {
+ list-style-type: upper-alpha;
+}
+.content ol:not([type]).is-upper-roman {
+ list-style-type: upper-roman;
+}
+.content ul {
+ list-style: disc outside;
+ margin-left: 2em;
+ margin-top: 1em;
+}
+.content ul ul {
+ list-style-type: circle;
+ margin-top: 0.5em;
+}
+.content ul ul ul {
+ list-style-type: square;
+}
+.content dd {
+ margin-left: 2em;
+}
+.content figure {
+ margin-left: 2em;
+ margin-right: 2em;
+ text-align: center;
+}
+.content figure:not(:first-child) {
+ margin-top: 2em;
+}
+.content figure:not(:last-child) {
+ margin-bottom: 2em;
+}
+.content figure img {
+ display: inline-block;
+}
+.content figure figcaption {
+ font-style: italic;
+}
+.content pre {
+ -webkit-overflow-scrolling: touch;
+ overflow-x: auto;
+ padding: 1.25em 1.5em;
+ white-space: pre;
+ word-wrap: normal;
+}
+.content sub,
+.content sup {
+ font-size: 75%;
+}
+.content table {
+ width: 100%;
+}
+.content table td,
+.content table th {
+ border: 1px solid #dbdbdb;
+ border-width: 0 0 1px;
+ padding: 0.5em 0.75em;
+ vertical-align: top;
+}
+.content table th {
+ color: #363636;
+}
+.content table th:not([align]) {
+ text-align: inherit;
+}
+.content table thead td,
+.content table thead th {
+ border-width: 0 0 2px;
+ color: #363636;
+}
+.content table tfoot td,
+.content table tfoot th {
+ border-width: 2px 0 0;
+ color: #363636;
+}
+.content table tbody tr:last-child td,
+.content table tbody tr:last-child th {
+ border-bottom-width: 0;
+}
+.content .tabs li + li {
+ margin-top: 0;
+}
+.content.is-small {
+ font-size: 0.75rem;
+}
+.content.is-normal {
+ font-size: 1rem;
+}
+.content.is-medium {
+ font-size: 1.25rem;
+}
+.content.is-large {
+ font-size: 1.5rem;
+}
+.icon {
+ align-items: center;
+ display: inline-flex;
+ justify-content: center;
+ height: 1.5rem;
+ width: 1.5rem;
+}
+.icon.is-small {
+ height: 1rem;
+ width: 1rem;
+}
+.icon.is-medium {
+ height: 2rem;
+ width: 2rem;
+}
+.icon.is-large {
+ height: 3rem;
+ width: 3rem;
+}
+.icon-text {
+ align-items: flex-start;
+ color: inherit;
+ display: inline-flex;
+ flex-wrap: wrap;
+ line-height: 1.5rem;
+ vertical-align: top;
+}
+.icon-text .icon {
+ flex-grow: 0;
+ flex-shrink: 0;
+}
+.icon-text .icon:not(:last-child) {
+ margin-right: 0.25em;
+}
+.icon-text .icon:not(:first-child) {
+ margin-left: 0.25em;
+}
+div.icon-text {
+ display: flex;
+}
+.image {
+ display: block;
+ position: relative;
+}
+.image img {
+ display: block;
+ height: auto;
+ width: 100%;
+}
+.image img.is-rounded {
+ border-radius: 9999px;
+}
+.image.is-fullwidth {
+ width: 100%;
+}
+.image.is-16by9 .has-ratio,
+.image.is-16by9 img,
+.image.is-1by1 .has-ratio,
+.image.is-1by1 img,
+.image.is-1by2 .has-ratio,
+.image.is-1by2 img,
+.image.is-1by3 .has-ratio,
+.image.is-1by3 img,
+.image.is-2by1 .has-ratio,
+.image.is-2by1 img,
+.image.is-2by3 .has-ratio,
+.image.is-2by3 img,
+.image.is-3by1 .has-ratio,
+.image.is-3by1 img,
+.image.is-3by2 .has-ratio,
+.image.is-3by2 img,
+.image.is-3by4 .has-ratio,
+.image.is-3by4 img,
+.image.is-3by5 .has-ratio,
+.image.is-3by5 img,
+.image.is-4by3 .has-ratio,
+.image.is-4by3 img,
+.image.is-4by5 .has-ratio,
+.image.is-4by5 img,
+.image.is-5by3 .has-ratio,
+.image.is-5by3 img,
+.image.is-5by4 .has-ratio,
+.image.is-5by4 img,
+.image.is-9by16 .has-ratio,
+.image.is-9by16 img,
+.image.is-square .has-ratio,
+.image.is-square img {
+ height: 100%;
+ width: 100%;
+}
+.image.is-1by1,
+.image.is-square {
+ padding-top: 100%;
+}
+.image.is-5by4 {
+ padding-top: 80%;
+}
+.image.is-4by3 {
+ padding-top: 75%;
+}
+.image.is-3by2 {
+ padding-top: 66.6666%;
+}
+.image.is-5by3 {
+ padding-top: 60%;
+}
+.image.is-16by9 {
+ padding-top: 56.25%;
+}
+.image.is-2by1 {
+ padding-top: 50%;
+}
+.image.is-3by1 {
+ padding-top: 33.3333%;
+}
+.image.is-4by5 {
+ padding-top: 125%;
+}
+.image.is-3by4 {
+ padding-top: 133.3333%;
+}
+.image.is-2by3 {
+ padding-top: 150%;
+}
+.image.is-3by5 {
+ padding-top: 166.6666%;
+}
+.image.is-9by16 {
+ padding-top: 177.7777%;
+}
+.image.is-1by2 {
+ padding-top: 200%;
+}
+.image.is-1by3 {
+ padding-top: 300%;
+}
+.image.is-16x16 {
+ height: 16px;
+ width: 16px;
+}
+.image.is-24x24 {
+ height: 24px;
+ width: 24px;
+}
+.image.is-32x32 {
+ height: 32px;
+ width: 32px;
+}
+.image.is-48x48 {
+ height: 48px;
+ width: 48px;
+}
+.image.is-64x64 {
+ height: 64px;
+ width: 64px;
+}
+.image.is-96x96 {
+ height: 96px;
+ width: 96px;
+}
+.image.is-128x128 {
+ height: 128px;
+ width: 128px;
+}
+.notification {
+ background-color: #f5f5f5;
+ border-radius: 4px;
+ position: relative;
+ padding: 1.25rem 2.5rem 1.25rem 1.5rem;
+}
+.notification a:not(.button):not(.dropdown-item) {
+ color: currentColor;
+ text-decoration: underline;
+}
+.notification strong {
+ color: currentColor;
+}
+.notification code,
+.notification pre {
+ background: #fff;
+}
+.notification pre code {
+ background: 0 0;
+}
+.notification > .delete {
+ right: 0.5rem;
+ position: absolute;
+ top: 0.5rem;
+}
+.notification .content,
+.notification .subtitle,
+.notification .title {
+ color: currentColor;
+}
+.notification.is-white {
+ background-color: #fff;
+ color: #0a0a0a;
+}
+.notification.is-black {
+ background-color: #0a0a0a;
+ color: #fff;
+}
+.notification.is-light {
+ background-color: #f5f5f5;
+ color: rgba(0, 0, 0, 0.7);
+}
+.notification.is-dark {
+ background-color: #363636;
+ color: #fff;
+}
+.notification.is-primary {
+ background-color: #00d1b2;
+ color: #fff;
+}
+.notification.is-primary.is-light {
+ background-color: #ebfffc;
+ color: #00947e;
+}
+.notification.is-link {
+ background-color: #485fc7;
+ color: #fff;
+}
+.notification.is-link.is-light {
+ background-color: #eff1fa;
+ color: #3850b7;
+}
+.notification.is-info {
+ background-color: #3e8ed0;
+ color: #fff;
+}
+.notification.is-info.is-light {
+ background-color: #eff5fb;
+ color: #296fa8;
+}
+.notification.is-success {
+ background-color: #48c78e;
+ color: #fff;
+}
+.notification.is-success.is-light {
+ background-color: #effaf5;
+ color: #257953;
+}
+.notification.is-warning {
+ background-color: #ffe08a;
+ color: rgba(0, 0, 0, 0.7);
+}
+.notification.is-warning.is-light {
+ background-color: #fffaeb;
+ color: #946c00;
+}
+.notification.is-danger {
+ background-color: #f14668;
+ color: #fff;
+}
+.notification.is-danger.is-light {
+ background-color: #feecf0;
+ color: #cc0f35;
+}
+.progress {
+ -moz-appearance: none;
+ -webkit-appearance: none;
+ border: none;
+ border-radius: 9999px;
+ display: block;
+ height: 1rem;
+ overflow: hidden;
+ padding: 0;
+ width: 100%;
+}
+.progress::-webkit-progress-bar {
+ background-color: #ededed;
+}
+.progress::-webkit-progress-value {
+ background-color: #4a4a4a;
+}
+.progress::-moz-progress-bar {
+ background-color: #4a4a4a;
+}
+.progress::-ms-fill {
+ background-color: #4a4a4a;
+ border: none;
+}
+.progress.is-white::-webkit-progress-value {
+ background-color: #fff;
+}
+.progress.is-white::-moz-progress-bar {
+ background-color: #fff;
+}
+.progress.is-white::-ms-fill {
+ background-color: #fff;
+}
+.progress.is-white:indeterminate {
+ background-image: linear-gradient(to right, #fff 30%, #ededed 30%);
+}
+.progress.is-black::-webkit-progress-value {
+ background-color: #0a0a0a;
+}
+.progress.is-black::-moz-progress-bar {
+ background-color: #0a0a0a;
+}
+.progress.is-black::-ms-fill {
+ background-color: #0a0a0a;
+}
+.progress.is-black:indeterminate {
+ background-image: linear-gradient(to right, #0a0a0a 30%, #ededed 30%);
+}
+.progress.is-light::-webkit-progress-value {
+ background-color: #f5f5f5;
+}
+.progress.is-light::-moz-progress-bar {
+ background-color: #f5f5f5;
+}
+.progress.is-light::-ms-fill {
+ background-color: #f5f5f5;
+}
+.progress.is-light:indeterminate {
+ background-image: linear-gradient(to right, #f5f5f5 30%, #ededed 30%);
+}
+.progress.is-dark::-webkit-progress-value {
+ background-color: #363636;
+}
+.progress.is-dark::-moz-progress-bar {
+ background-color: #363636;
+}
+.progress.is-dark::-ms-fill {
+ background-color: #363636;
+}
+.progress.is-dark:indeterminate {
+ background-image: linear-gradient(to right, #363636 30%, #ededed 30%);
+}
+.progress.is-primary::-webkit-progress-value {
+ background-color: #00d1b2;
+}
+.progress.is-primary::-moz-progress-bar {
+ background-color: #00d1b2;
+}
+.progress.is-primary::-ms-fill {
+ background-color: #00d1b2;
+}
+.progress.is-primary:indeterminate {
+ background-image: linear-gradient(to right, #00d1b2 30%, #ededed 30%);
+}
+.progress.is-link::-webkit-progress-value {
+ background-color: #485fc7;
+}
+.progress.is-link::-moz-progress-bar {
+ background-color: #485fc7;
+}
+.progress.is-link::-ms-fill {
+ background-color: #485fc7;
+}
+.progress.is-link:indeterminate {
+ background-image: linear-gradient(to right, #485fc7 30%, #ededed 30%);
+}
+.progress.is-info::-webkit-progress-value {
+ background-color: #3e8ed0;
+}
+.progress.is-info::-moz-progress-bar {
+ background-color: #3e8ed0;
+}
+.progress.is-info::-ms-fill {
+ background-color: #3e8ed0;
+}
+.progress.is-info:indeterminate {
+ background-image: linear-gradient(to right, #3e8ed0 30%, #ededed 30%);
+}
+.progress.is-success::-webkit-progress-value {
+ background-color: #48c78e;
+}
+.progress.is-success::-moz-progress-bar {
+ background-color: #48c78e;
+}
+.progress.is-success::-ms-fill {
+ background-color: #48c78e;
+}
+.progress.is-success:indeterminate {
+ background-image: linear-gradient(to right, #48c78e 30%, #ededed 30%);
+}
+.progress.is-warning::-webkit-progress-value {
+ background-color: #ffe08a;
+}
+.progress.is-warning::-moz-progress-bar {
+ background-color: #ffe08a;
+}
+.progress.is-warning::-ms-fill {
+ background-color: #ffe08a;
+}
+.progress.is-warning:indeterminate {
+ background-image: linear-gradient(to right, #ffe08a 30%, #ededed 30%);
+}
+.progress.is-danger::-webkit-progress-value {
+ background-color: #f14668;
+}
+.progress.is-danger::-moz-progress-bar {
+ background-color: #f14668;
+}
+.progress.is-danger::-ms-fill {
+ background-color: #f14668;
+}
+.progress.is-danger:indeterminate {
+ background-image: linear-gradient(to right, #f14668 30%, #ededed 30%);
+}
+.progress:indeterminate {
+ -webkit-animation-duration: 1.5s;
+ animation-duration: 1.5s;
+ -webkit-animation-iteration-count: infinite;
+ animation-iteration-count: infinite;
+ -webkit-animation-name: moveIndeterminate;
+ animation-name: moveIndeterminate;
+ -webkit-animation-timing-function: linear;
+ animation-timing-function: linear;
+ background-color: #ededed;
+ background-image: linear-gradient(to right, #4a4a4a 30%, #ededed 30%);
+ background-position: top left;
+ background-repeat: no-repeat;
+ background-size: 150% 150%;
+}
+.progress:indeterminate::-webkit-progress-bar {
+ background-color: transparent;
+}
+.progress:indeterminate::-moz-progress-bar {
+ background-color: transparent;
+}
+.progress:indeterminate::-ms-fill {
+ animation-name: none;
+}
+.progress.is-small {
+ height: 0.75rem;
+}
+.progress.is-medium {
+ height: 1.25rem;
+}
+.progress.is-large {
+ height: 1.5rem;
+}
+@-webkit-keyframes moveIndeterminate {
+ from {
+ background-position: 200% 0;
+ }
+ to {
+ background-position: -200% 0;
+ }
+}
+@keyframes moveIndeterminate {
+ from {
+ background-position: 200% 0;
+ }
+ to {
+ background-position: -200% 0;
+ }
+}
+.table {
+ background-color: #fff;
+ color: #363636;
+}
+.table td,
+.table th {
+ border: 1px solid #dbdbdb;
+ border-width: 0 0 1px;
+ padding: 0.5em 0.75em;
+ vertical-align: top;
+}
+.table td.is-white,
+.table th.is-white {
+ background-color: #fff;
+ border-color: #fff;
+ color: #0a0a0a;
+}
+.table td.is-black,
+.table th.is-black {
+ background-color: #0a0a0a;
+ border-color: #0a0a0a;
+ color: #fff;
+}
+.table td.is-light,
+.table th.is-light {
+ background-color: #f5f5f5;
+ border-color: #f5f5f5;
+ color: rgba(0, 0, 0, 0.7);
+}
+.table td.is-dark,
+.table th.is-dark {
+ background-color: #363636;
+ border-color: #363636;
+ color: #fff;
+}
+.table td.is-primary,
+.table th.is-primary {
+ background-color: #00d1b2;
+ border-color: #00d1b2;
+ color: #fff;
+}
+.table td.is-link,
+.table th.is-link {
+ background-color: #485fc7;
+ border-color: #485fc7;
+ color: #fff;
+}
+.table td.is-info,
+.table th.is-info {
+ background-color: #3e8ed0;
+ border-color: #3e8ed0;
+ color: #fff;
+}
+.table td.is-success,
+.table th.is-success {
+ background-color: #48c78e;
+ border-color: #48c78e;
+ color: #fff;
+}
+.table td.is-warning,
+.table th.is-warning {
+ background-color: #ffe08a;
+ border-color: #ffe08a;
+ color: rgba(0, 0, 0, 0.7);
+}
+.table td.is-danger,
+.table th.is-danger {
+ background-color: #f14668;
+ border-color: #f14668;
+ color: #fff;
+}
+.table td.is-narrow,
+.table th.is-narrow {
+ white-space: nowrap;
+ width: 1%;
+}
+.table td.is-selected,
+.table th.is-selected {
+ background-color: #00d1b2;
+ color: #fff;
+}
+.table td.is-selected a,
+.table td.is-selected strong,
+.table th.is-selected a,
+.table th.is-selected strong {
+ color: currentColor;
+}
+.table td.is-vcentered,
+.table th.is-vcentered {
+ vertical-align: middle;
+}
+.table th {
+ color: #363636;
+}
+.table th:not([align]) {
+ text-align: inherit;
+}
+.table tr.is-selected {
+ background-color: #00d1b2;
+ color: #fff;
+}
+.table tr.is-selected a,
+.table tr.is-selected strong {
+ color: currentColor;
+}
+.table tr.is-selected td,
+.table tr.is-selected th {
+ border-color: #fff;
+ color: currentColor;
+}
+.table thead {
+ background-color: transparent;
+}
+.table thead td,
+.table thead th {
+ border-width: 0 0 2px;
+ color: #363636;
+}
+.table tfoot {
+ background-color: transparent;
+}
+.table tfoot td,
+.table tfoot th {
+ border-width: 2px 0 0;
+ color: #363636;
+}
+.table tbody {
+ background-color: transparent;
+}
+.table tbody tr:last-child td,
+.table tbody tr:last-child th {
+ border-bottom-width: 0;
+}
+.table.is-bordered td,
+.table.is-bordered th {
+ border-width: 1px;
+}
+.table.is-bordered tr:last-child td,
+.table.is-bordered tr:last-child th {
+ border-bottom-width: 1px;
+}
+.table.is-fullwidth {
+ width: 100%;
+}
+.table.is-hoverable tbody tr:not(.is-selected):hover {
+ background-color: #fafafa;
+}
+.table.is-hoverable.is-striped tbody tr:not(.is-selected):hover {
+ background-color: #fafafa;
+}
+.table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even) {
+ background-color: #f5f5f5;
+}
+.table.is-narrow td,
+.table.is-narrow th {
+ padding: 0.25em 0.5em;
+}
+.table.is-striped tbody tr:not(.is-selected):nth-child(even) {
+ background-color: #fafafa;
+}
+.table-container {
+ -webkit-overflow-scrolling: touch;
+ overflow: auto;
+ overflow-y: hidden;
+ max-width: 100%;
+}
+.tags {
+ align-items: center;
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: flex-start;
+}
+.tags .tag {
+ margin-bottom: 0.5rem;
+}
+.tags .tag:not(:last-child) {
+ margin-right: 0.5rem;
+}
+.tags:last-child {
+ margin-bottom: -0.5rem;
+}
+.tags:not(:last-child) {
+ margin-bottom: 1rem;
+}
+.tags.are-medium .tag:not(.is-normal):not(.is-large) {
+ font-size: 1rem;
+}
+.tags.are-large .tag:not(.is-normal):not(.is-medium) {
+ font-size: 1.25rem;
+}
+.tags.is-centered {
+ justify-content: center;
+}
+.tags.is-centered .tag {
+ margin-right: 0.25rem;
+ margin-left: 0.25rem;
+}
+.tags.is-right {
+ justify-content: flex-end;
+}
+.tags.is-right .tag:not(:first-child) {
+ margin-left: 0.5rem;
+}
+.tags.is-right .tag:not(:last-child) {
+ margin-right: 0;
+}
+.tags.has-addons .tag {
+ margin-right: 0;
+}
+.tags.has-addons .tag:not(:first-child) {
+ margin-left: 0;
+ border-top-left-radius: 0;
+ border-bottom-left-radius: 0;
+}
+.tags.has-addons .tag:not(:last-child) {
+ border-top-right-radius: 0;
+ border-bottom-right-radius: 0;
+}
+.tag:not(body) {
+ align-items: center;
+ background-color: #f5f5f5;
+ border-radius: 4px;
+ color: #4a4a4a;
+ display: inline-flex;
+ font-size: 0.75rem;
+ height: 2em;
+ justify-content: center;
+ line-height: 1.5;
+ padding-left: 0.75em;
+ padding-right: 0.75em;
+ white-space: nowrap;
+}
+.tag:not(body) .delete {
+ margin-left: 0.25rem;
+ margin-right: -0.375rem;
+}
+.tag:not(body).is-white {
+ background-color: #fff;
+ color: #0a0a0a;
+}
+.tag:not(body).is-black {
+ background-color: #0a0a0a;
+ color: #fff;
+}
+.tag:not(body).is-light {
+ background-color: #f5f5f5;
+ color: rgba(0, 0, 0, 0.7);
+}
+.tag:not(body).is-dark {
+ background-color: #363636;
+ color: #fff;
+}
+.tag:not(body).is-primary {
+ background-color: #00d1b2;
+ color: #fff;
+}
+.tag:not(body).is-primary.is-light {
+ background-color: #ebfffc;
+ color: #00947e;
+}
+.tag:not(body).is-link {
+ background-color: #485fc7;
+ color: #fff;
+}
+.tag:not(body).is-link.is-light {
+ background-color: #eff1fa;
+ color: #3850b7;
+}
+.tag:not(body).is-info {
+ background-color: #3e8ed0;
+ color: #fff;
+}
+.tag:not(body).is-info.is-light {
+ background-color: #eff5fb;
+ color: #296fa8;
+}
+.tag:not(body).is-success {
+ background-color: #48c78e;
+ color: #fff;
+}
+.tag:not(body).is-success.is-light {
+ background-color: #effaf5;
+ color: #257953;
+}
+.tag:not(body).is-warning {
+ background-color: #ffe08a;
+ color: rgba(0, 0, 0, 0.7);
+}
+.tag:not(body).is-warning.is-light {
+ background-color: #fffaeb;
+ color: #946c00;
+}
+.tag:not(body).is-danger {
+ background-color: #f14668;
+ color: #fff;
+}
+.tag:not(body).is-danger.is-light {
+ background-color: #feecf0;
+ color: #cc0f35;
+}
+.tag:not(body).is-normal {
+ font-size: 0.75rem;
+}
+.tag:not(body).is-medium {
+ font-size: 1rem;
+}
+.tag:not(body).is-large {
+ font-size: 1.25rem;
+}
+.tag:not(body) .icon:first-child:not(:last-child) {
+ margin-left: -0.375em;
+ margin-right: 0.1875em;
+}
+.tag:not(body) .icon:last-child:not(:first-child) {
+ margin-left: 0.1875em;
+ margin-right: -0.375em;
+}
+.tag:not(body) .icon:first-child:last-child {
+ margin-left: -0.375em;
+ margin-right: -0.375em;
+}
+.tag:not(body).is-delete {
+ margin-left: 1px;
+ padding: 0;
+ position: relative;
+ width: 2em;
+}
+.tag:not(body).is-delete::after,
+.tag:not(body).is-delete::before {
+ background-color: currentColor;
+ content: '';
+ display: block;
+ left: 50%;
+ position: absolute;
+ top: 50%;
+ transform: translateX(-50%) translateY(-50%) rotate(45deg);
+ transform-origin: center center;
+}
+.tag:not(body).is-delete::before {
+ height: 1px;
+ width: 50%;
+}
+.tag:not(body).is-delete::after {
+ height: 50%;
+ width: 1px;
+}
+.tag:not(body).is-delete:focus,
+.tag:not(body).is-delete:hover {
+ background-color: #e8e8e8;
+}
+.tag:not(body).is-delete:active {
+ background-color: #dbdbdb;
+}
+.tag:not(body).is-rounded {
+ border-radius: 9999px;
+}
+a.tag:hover {
+ text-decoration: underline;
+}
+.subtitle,
+.title {
+ word-break: break-word;
+}
+.subtitle em,
+.subtitle span,
+.title em,
+.title span {
+ font-weight: inherit;
+}
+.subtitle sub,
+.title sub {
+ font-size: 0.75em;
+}
+.subtitle sup,
+.title sup {
+ font-size: 0.75em;
+}
+.subtitle .tag,
+.title .tag {
+ vertical-align: middle;
+}
+.title {
+ color: #363636;
+ font-size: 2rem;
+ font-weight: 600;
+ line-height: 1.125;
+}
+.title strong {
+ color: inherit;
+ font-weight: inherit;
+}
+.title:not(.is-spaced) + .subtitle {
+ margin-top: -1.25rem;
+}
+.title.is-1 {
+ font-size: 3rem;
+}
+.title.is-2 {
+ font-size: 2.5rem;
+}
+.title.is-3 {
+ font-size: 2rem;
+}
+.title.is-4 {
+ font-size: 1.5rem;
+}
+.title.is-5 {
+ font-size: 1.25rem;
+}
+.title.is-6 {
+ font-size: 1rem;
+}
+.title.is-7 {
+ font-size: 0.75rem;
+}
+.subtitle {
+ color: #4a4a4a;
+ font-size: 1.25rem;
+ font-weight: 400;
+ line-height: 1.25;
+}
+.subtitle strong {
+ color: #363636;
+ font-weight: 600;
+}
+.subtitle:not(.is-spaced) + .title {
+ margin-top: -1.25rem;
+}
+.subtitle.is-1 {
+ font-size: 3rem;
+}
+.subtitle.is-2 {
+ font-size: 2.5rem;
+}
+.subtitle.is-3 {
+ font-size: 2rem;
+}
+.subtitle.is-4 {
+ font-size: 1.5rem;
+}
+.subtitle.is-5 {
+ font-size: 1.25rem;
+}
+.subtitle.is-6 {
+ font-size: 1rem;
+}
+.subtitle.is-7 {
+ font-size: 0.75rem;
+}
+.heading {
+ display: block;
+ font-size: 11px;
+ letter-spacing: 1px;
+ margin-bottom: 5px;
+ text-transform: uppercase;
+}
+.number {
+ align-items: center;
+ background-color: #f5f5f5;
+ border-radius: 9999px;
+ display: inline-flex;
+ font-size: 1.25rem;
+ height: 2em;
+ justify-content: center;
+ margin-right: 1.5rem;
+ min-width: 2.5em;
+ padding: 0.25rem 0.5rem;
+ text-align: center;
+ vertical-align: top;
+}
+.input,
+.select select,
+.textarea {
+ background-color: #fff;
+ border-color: #dbdbdb;
+ border-radius: 4px;
+ color: #363636;
+}
+.input::-moz-placeholder,
+.select select::-moz-placeholder,
+.textarea::-moz-placeholder {
+ color: rgba(54, 54, 54, 0.3);
+}
+.input::-webkit-input-placeholder,
+.select select::-webkit-input-placeholder,
+.textarea::-webkit-input-placeholder {
+ color: rgba(54, 54, 54, 0.3);
+}
+.input:-moz-placeholder,
+.select select:-moz-placeholder,
+.textarea:-moz-placeholder {
+ color: rgba(54, 54, 54, 0.3);
+}
+.input:-ms-input-placeholder,
+.select select:-ms-input-placeholder,
+.textarea:-ms-input-placeholder {
+ color: rgba(54, 54, 54, 0.3);
+}
+.input:hover,
+.is-hovered.input,
+.is-hovered.textarea,
+.select select.is-hovered,
+.select select:hover,
+.textarea:hover {
+ border-color: #b5b5b5;
+}
+.input:active,
+.input:focus,
+.is-active.input,
+.is-active.textarea,
+.is-focused.input,
+.is-focused.textarea,
+.select select.is-active,
+.select select.is-focused,
+.select select:active,
+.select select:focus,
+.textarea:active,
+.textarea:focus {
+ border-color: #485fc7;
+ box-shadow: 0 0 0 0.125em rgba(72, 95, 199, 0.25);
+}
+.input[disabled],
+.select fieldset[disabled] select,
+.select select[disabled],
+.textarea[disabled],
+fieldset[disabled] .input,
+fieldset[disabled] .select select,
+fieldset[disabled] .textarea {
+ background-color: #f5f5f5;
+ border-color: #f5f5f5;
+ box-shadow: none;
+ color: #7a7a7a;
+}
+.input[disabled]::-moz-placeholder,
+.select fieldset[disabled] select::-moz-placeholder,
+.select select[disabled]::-moz-placeholder,
+.textarea[disabled]::-moz-placeholder,
+fieldset[disabled] .input::-moz-placeholder,
+fieldset[disabled] .select select::-moz-placeholder,
+fieldset[disabled] .textarea::-moz-placeholder {
+ color: rgba(122, 122, 122, 0.3);
+}
+.input[disabled]::-webkit-input-placeholder,
+.select fieldset[disabled] select::-webkit-input-placeholder,
+.select select[disabled]::-webkit-input-placeholder,
+.textarea[disabled]::-webkit-input-placeholder,
+fieldset[disabled] .input::-webkit-input-placeholder,
+fieldset[disabled] .select select::-webkit-input-placeholder,
+fieldset[disabled] .textarea::-webkit-input-placeholder {
+ color: rgba(122, 122, 122, 0.3);
+}
+.input[disabled]:-moz-placeholder,
+.select fieldset[disabled] select:-moz-placeholder,
+.select select[disabled]:-moz-placeholder,
+.textarea[disabled]:-moz-placeholder,
+fieldset[disabled] .input:-moz-placeholder,
+fieldset[disabled] .select select:-moz-placeholder,
+fieldset[disabled] .textarea:-moz-placeholder {
+ color: rgba(122, 122, 122, 0.3);
+}
+.input[disabled]:-ms-input-placeholder,
+.select fieldset[disabled] select:-ms-input-placeholder,
+.select select[disabled]:-ms-input-placeholder,
+.textarea[disabled]:-ms-input-placeholder,
+fieldset[disabled] .input:-ms-input-placeholder,
+fieldset[disabled] .select select:-ms-input-placeholder,
+fieldset[disabled] .textarea:-ms-input-placeholder {
+ color: rgba(122, 122, 122, 0.3);
+}
+.input,
+.textarea {
+ box-shadow: inset 0 0.0625em 0.125em rgba(10, 10, 10, 0.05);
+ max-width: 100%;
+ width: 100%;
+}
+.input[readonly],
+.textarea[readonly] {
+ box-shadow: none;
+}
+.is-white.input,
+.is-white.textarea {
+ border-color: #fff;
+}
+.is-white.input:active,
+.is-white.input:focus,
+.is-white.is-active.input,
+.is-white.is-active.textarea,
+.is-white.is-focused.input,
+.is-white.is-focused.textarea,
+.is-white.textarea:active,
+.is-white.textarea:focus {
+ box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25);
+}
+.is-black.input,
+.is-black.textarea {
+ border-color: #0a0a0a;
+}
+.is-black.input:active,
+.is-black.input:focus,
+.is-black.is-active.input,
+.is-black.is-active.textarea,
+.is-black.is-focused.input,
+.is-black.is-focused.textarea,
+.is-black.textarea:active,
+.is-black.textarea:focus {
+ box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25);
+}
+.is-light.input,
+.is-light.textarea {
+ border-color: #f5f5f5;
+}
+.is-light.input:active,
+.is-light.input:focus,
+.is-light.is-active.input,
+.is-light.is-active.textarea,
+.is-light.is-focused.input,
+.is-light.is-focused.textarea,
+.is-light.textarea:active,
+.is-light.textarea:focus {
+ box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25);
+}
+.is-dark.input,
+.is-dark.textarea {
+ border-color: #363636;
+}
+.is-dark.input:active,
+.is-dark.input:focus,
+.is-dark.is-active.input,
+.is-dark.is-active.textarea,
+.is-dark.is-focused.input,
+.is-dark.is-focused.textarea,
+.is-dark.textarea:active,
+.is-dark.textarea:focus {
+ box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25);
+}
+.is-primary.input,
+.is-primary.textarea {
+ border-color: #00d1b2;
+}
+.is-primary.input:active,
+.is-primary.input:focus,
+.is-primary.is-active.input,
+.is-primary.is-active.textarea,
+.is-primary.is-focused.input,
+.is-primary.is-focused.textarea,
+.is-primary.textarea:active,
+.is-primary.textarea:focus {
+ box-shadow: 0 0 0 0.125em rgba(0, 209, 178, 0.25);
+}
+.is-link.input,
+.is-link.textarea {
+ border-color: #485fc7;
+}
+.is-link.input:active,
+.is-link.input:focus,
+.is-link.is-active.input,
+.is-link.is-active.textarea,
+.is-link.is-focused.input,
+.is-link.is-focused.textarea,
+.is-link.textarea:active,
+.is-link.textarea:focus {
+ box-shadow: 0 0 0 0.125em rgba(72, 95, 199, 0.25);
+}
+.is-info.input,
+.is-info.textarea {
+ border-color: #3e8ed0;
+}
+.is-info.input:active,
+.is-info.input:focus,
+.is-info.is-active.input,
+.is-info.is-active.textarea,
+.is-info.is-focused.input,
+.is-info.is-focused.textarea,
+.is-info.textarea:active,
+.is-info.textarea:focus {
+ box-shadow: 0 0 0 0.125em rgba(62, 142, 208, 0.25);
+}
+.is-success.input,
+.is-success.textarea {
+ border-color: #48c78e;
+}
+.is-success.input:active,
+.is-success.input:focus,
+.is-success.is-active.input,
+.is-success.is-active.textarea,
+.is-success.is-focused.input,
+.is-success.is-focused.textarea,
+.is-success.textarea:active,
+.is-success.textarea:focus {
+ box-shadow: 0 0 0 0.125em rgba(72, 199, 142, 0.25);
+}
+.is-warning.input,
+.is-warning.textarea {
+ border-color: #ffe08a;
+}
+.is-warning.input:active,
+.is-warning.input:focus,
+.is-warning.is-active.input,
+.is-warning.is-active.textarea,
+.is-warning.is-focused.input,
+.is-warning.is-focused.textarea,
+.is-warning.textarea:active,
+.is-warning.textarea:focus {
+ box-shadow: 0 0 0 0.125em rgba(255, 224, 138, 0.25);
+}
+.is-danger.input,
+.is-danger.textarea {
+ border-color: #f14668;
+}
+.is-danger.input:active,
+.is-danger.input:focus,
+.is-danger.is-active.input,
+.is-danger.is-active.textarea,
+.is-danger.is-focused.input,
+.is-danger.is-focused.textarea,
+.is-danger.textarea:active,
+.is-danger.textarea:focus {
+ box-shadow: 0 0 0 0.125em rgba(241, 70, 104, 0.25);
+}
+.is-small.input,
+.is-small.textarea {
+ border-radius: 2px;
+ font-size: 0.75rem;
+}
+.is-medium.input,
+.is-medium.textarea {
+ font-size: 1.25rem;
+}
+.is-large.input,
+.is-large.textarea {
+ font-size: 1.5rem;
+}
+.is-fullwidth.input,
+.is-fullwidth.textarea {
+ display: block;
+ width: 100%;
+}
+.is-inline.input,
+.is-inline.textarea {
+ display: inline;
+ width: auto;
+}
+.input.is-rounded {
+ border-radius: 9999px;
+ padding-left: calc(calc(0.75em - 1px) + 0.375em);
+ padding-right: calc(calc(0.75em - 1px) + 0.375em);
+}
+.input.is-static {
+ background-color: transparent;
+ border-color: transparent;
+ box-shadow: none;
+ padding-left: 0;
+ padding-right: 0;
+}
+.textarea {
+ display: block;
+ max-width: 100%;
+ min-width: 100%;
+ padding: calc(0.75em - 1px);
+ resize: vertical;
+}
+.textarea:not([rows]) {
+ max-height: 40em;
+ min-height: 8em;
+}
+.textarea[rows] {
+ height: initial;
+}
+.textarea.has-fixed-size {
+ resize: none;
+}
+.checkbox,
+.radio {
+ cursor: pointer;
+ display: inline-block;
+ line-height: 1.25;
+ position: relative;
+}
+.checkbox input,
+.radio input {
+ cursor: pointer;
+}
+.checkbox:hover,
+.radio:hover {
+ color: #363636;
+}
+.checkbox input[disabled],
+.checkbox[disabled],
+.radio input[disabled],
+.radio[disabled],
+fieldset[disabled] .checkbox,
+fieldset[disabled] .radio {
+ color: #7a7a7a;
+ cursor: not-allowed;
+}
+.radio + .radio {
+ margin-left: 0.5em;
+}
+.select {
+ display: inline-block;
+ max-width: 100%;
+ position: relative;
+ vertical-align: top;
+}
+.select:not(.is-multiple) {
+ height: 2.5em;
+}
+.select:not(.is-multiple):not(.is-loading)::after {
+ border-color: #485fc7;
+ right: 1.125em;
+ z-index: 4;
+}
+.select.is-rounded select {
+ border-radius: 9999px;
+ padding-left: 1em;
+}
+.select select {
+ cursor: pointer;
+ display: block;
+ font-size: 1em;
+ max-width: 100%;
+ outline: 0;
+}
+.select select::-ms-expand {
+ display: none;
+}
+.select select[disabled]:hover,
+fieldset[disabled] .select select:hover {
+ border-color: #f5f5f5;
+}
+.select select:not([multiple]) {
+ padding-right: 2.5em;
+}
+.select select[multiple] {
+ height: auto;
+ padding: 0;
+}
+.select select[multiple] option {
+ padding: 0.5em 1em;
+}
+.select:not(.is-multiple):not(.is-loading):hover::after {
+ border-color: #363636;
+}
+.select.is-white:not(:hover)::after {
+ border-color: #fff;
+}
+.select.is-white select {
+ border-color: #fff;
+}
+.select.is-white select.is-hovered,
+.select.is-white select:hover {
+ border-color: #f2f2f2;
+}
+.select.is-white select.is-active,
+.select.is-white select.is-focused,
+.select.is-white select:active,
+.select.is-white select:focus {
+ box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25);
+}
+.select.is-black:not(:hover)::after {
+ border-color: #0a0a0a;
+}
+.select.is-black select {
+ border-color: #0a0a0a;
+}
+.select.is-black select.is-hovered,
+.select.is-black select:hover {
+ border-color: #000;
+}
+.select.is-black select.is-active,
+.select.is-black select.is-focused,
+.select.is-black select:active,
+.select.is-black select:focus {
+ box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25);
+}
+.select.is-light:not(:hover)::after {
+ border-color: #f5f5f5;
+}
+.select.is-light select {
+ border-color: #f5f5f5;
+}
+.select.is-light select.is-hovered,
+.select.is-light select:hover {
+ border-color: #e8e8e8;
+}
+.select.is-light select.is-active,
+.select.is-light select.is-focused,
+.select.is-light select:active,
+.select.is-light select:focus {
+ box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25);
+}
+.select.is-dark:not(:hover)::after {
+ border-color: #363636;
+}
+.select.is-dark select {
+ border-color: #363636;
+}
+.select.is-dark select.is-hovered,
+.select.is-dark select:hover {
+ border-color: #292929;
+}
+.select.is-dark select.is-active,
+.select.is-dark select.is-focused,
+.select.is-dark select:active,
+.select.is-dark select:focus {
+ box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25);
+}
+.select.is-primary:not(:hover)::after {
+ border-color: #00d1b2;
+}
+.select.is-primary select {
+ border-color: #00d1b2;
+}
+.select.is-primary select.is-hovered,
+.select.is-primary select:hover {
+ border-color: #00b89c;
+}
+.select.is-primary select.is-active,
+.select.is-primary select.is-focused,
+.select.is-primary select:active,
+.select.is-primary select:focus {
+ box-shadow: 0 0 0 0.125em rgba(0, 209, 178, 0.25);
+}
+.select.is-link:not(:hover)::after {
+ border-color: #485fc7;
+}
+.select.is-link select {
+ border-color: #485fc7;
+}
+.select.is-link select.is-hovered,
+.select.is-link select:hover {
+ border-color: #3a51bb;
+}
+.select.is-link select.is-active,
+.select.is-link select.is-focused,
+.select.is-link select:active,
+.select.is-link select:focus {
+ box-shadow: 0 0 0 0.125em rgba(72, 95, 199, 0.25);
+}
+.select.is-info:not(:hover)::after {
+ border-color: #3e8ed0;
+}
+.select.is-info select {
+ border-color: #3e8ed0;
+}
+.select.is-info select.is-hovered,
+.select.is-info select:hover {
+ border-color: #3082c5;
+}
+.select.is-info select.is-active,
+.select.is-info select.is-focused,
+.select.is-info select:active,
+.select.is-info select:focus {
+ box-shadow: 0 0 0 0.125em rgba(62, 142, 208, 0.25);
+}
+.select.is-success:not(:hover)::after {
+ border-color: #48c78e;
+}
+.select.is-success select {
+ border-color: #48c78e;
+}
+.select.is-success select.is-hovered,
+.select.is-success select:hover {
+ border-color: #3abb81;
+}
+.select.is-success select.is-active,
+.select.is-success select.is-focused,
+.select.is-success select:active,
+.select.is-success select:focus {
+ box-shadow: 0 0 0 0.125em rgba(72, 199, 142, 0.25);
+}
+.select.is-warning:not(:hover)::after {
+ border-color: #ffe08a;
+}
+.select.is-warning select {
+ border-color: #ffe08a;
+}
+.select.is-warning select.is-hovered,
+.select.is-warning select:hover {
+ border-color: #ffd970;
+}
+.select.is-warning select.is-active,
+.select.is-warning select.is-focused,
+.select.is-warning select:active,
+.select.is-warning select:focus {
+ box-shadow: 0 0 0 0.125em rgba(255, 224, 138, 0.25);
+}
+.select.is-danger:not(:hover)::after {
+ border-color: #f14668;
+}
+.select.is-danger select {
+ border-color: #f14668;
+}
+.select.is-danger select.is-hovered,
+.select.is-danger select:hover {
+ border-color: #ef2e55;
+}
+.select.is-danger select.is-active,
+.select.is-danger select.is-focused,
+.select.is-danger select:active,
+.select.is-danger select:focus {
+ box-shadow: 0 0 0 0.125em rgba(241, 70, 104, 0.25);
+}
+.select.is-small {
+ border-radius: 2px;
+ font-size: 0.75rem;
+}
+.select.is-medium {
+ font-size: 1.25rem;
+}
+.select.is-large {
+ font-size: 1.5rem;
+}
+.select.is-disabled::after {
+ border-color: #7a7a7a;
+}
+.select.is-fullwidth {
+ width: 100%;
+}
+.select.is-fullwidth select {
+ width: 100%;
+}
+.select.is-loading::after {
+ margin-top: 0;
+ position: absolute;
+ right: 0.625em;
+ top: 0.625em;
+ transform: none;
+}
+.select.is-loading.is-small:after {
+ font-size: 0.75rem;
+}
+.select.is-loading.is-medium:after {
+ font-size: 1.25rem;
+}
+.select.is-loading.is-large:after {
+ font-size: 1.5rem;
+}
+.file {
+ align-items: stretch;
+ display: flex;
+ justify-content: flex-start;
+ position: relative;
+}
+.file.is-white .file-cta {
+ background-color: #fff;
+ border-color: transparent;
+ color: #0a0a0a;
+}
+.file.is-white.is-hovered .file-cta,
+.file.is-white:hover .file-cta {
+ background-color: #f9f9f9;
+ border-color: transparent;
+ color: #0a0a0a;
+}
+.file.is-white.is-focused .file-cta,
+.file.is-white:focus .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(255, 255, 255, 0.25);
+ color: #0a0a0a;
+}
+.file.is-white.is-active .file-cta,
+.file.is-white:active .file-cta {
+ background-color: #f2f2f2;
+ border-color: transparent;
+ color: #0a0a0a;
+}
+.file.is-black .file-cta {
+ background-color: #0a0a0a;
+ border-color: transparent;
+ color: #fff;
+}
+.file.is-black.is-hovered .file-cta,
+.file.is-black:hover .file-cta {
+ background-color: #040404;
+ border-color: transparent;
+ color: #fff;
+}
+.file.is-black.is-focused .file-cta,
+.file.is-black:focus .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(10, 10, 10, 0.25);
+ color: #fff;
+}
+.file.is-black.is-active .file-cta,
+.file.is-black:active .file-cta {
+ background-color: #000;
+ border-color: transparent;
+ color: #fff;
+}
+.file.is-light .file-cta {
+ background-color: #f5f5f5;
+ border-color: transparent;
+ color: rgba(0, 0, 0, 0.7);
+}
+.file.is-light.is-hovered .file-cta,
+.file.is-light:hover .file-cta {
+ background-color: #eee;
+ border-color: transparent;
+ color: rgba(0, 0, 0, 0.7);
+}
+.file.is-light.is-focused .file-cta,
+.file.is-light:focus .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(245, 245, 245, 0.25);
+ color: rgba(0, 0, 0, 0.7);
+}
+.file.is-light.is-active .file-cta,
+.file.is-light:active .file-cta {
+ background-color: #e8e8e8;
+ border-color: transparent;
+ color: rgba(0, 0, 0, 0.7);
+}
+.file.is-dark .file-cta {
+ background-color: #363636;
+ border-color: transparent;
+ color: #fff;
+}
+.file.is-dark.is-hovered .file-cta,
+.file.is-dark:hover .file-cta {
+ background-color: #2f2f2f;
+ border-color: transparent;
+ color: #fff;
+}
+.file.is-dark.is-focused .file-cta,
+.file.is-dark:focus .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(54, 54, 54, 0.25);
+ color: #fff;
+}
+.file.is-dark.is-active .file-cta,
+.file.is-dark:active .file-cta {
+ background-color: #292929;
+ border-color: transparent;
+ color: #fff;
+}
+.file.is-primary .file-cta {
+ background-color: #00d1b2;
+ border-color: transparent;
+ color: #fff;
+}
+.file.is-primary.is-hovered .file-cta,
+.file.is-primary:hover .file-cta {
+ background-color: #00c4a7;
+ border-color: transparent;
+ color: #fff;
+}
+.file.is-primary.is-focused .file-cta,
+.file.is-primary:focus .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(0, 209, 178, 0.25);
+ color: #fff;
+}
+.file.is-primary.is-active .file-cta,
+.file.is-primary:active .file-cta {
+ background-color: #00b89c;
+ border-color: transparent;
+ color: #fff;
+}
+.file.is-link .file-cta {
+ background-color: #485fc7;
+ border-color: transparent;
+ color: #fff;
+}
+.file.is-link.is-hovered .file-cta,
+.file.is-link:hover .file-cta {
+ background-color: #3e56c4;
+ border-color: transparent;
+ color: #fff;
+}
+.file.is-link.is-focused .file-cta,
+.file.is-link:focus .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(72, 95, 199, 0.25);
+ color: #fff;
+}
+.file.is-link.is-active .file-cta,
+.file.is-link:active .file-cta {
+ background-color: #3a51bb;
+ border-color: transparent;
+ color: #fff;
+}
+.file.is-info .file-cta {
+ background-color: #3e8ed0;
+ border-color: transparent;
+ color: #fff;
+}
+.file.is-info.is-hovered .file-cta,
+.file.is-info:hover .file-cta {
+ background-color: #3488ce;
+ border-color: transparent;
+ color: #fff;
+}
+.file.is-info.is-focused .file-cta,
+.file.is-info:focus .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(62, 142, 208, 0.25);
+ color: #fff;
+}
+.file.is-info.is-active .file-cta,
+.file.is-info:active .file-cta {
+ background-color: #3082c5;
+ border-color: transparent;
+ color: #fff;
+}
+.file.is-success .file-cta {
+ background-color: #48c78e;
+ border-color: transparent;
+ color: #fff;
+}
+.file.is-success.is-hovered .file-cta,
+.file.is-success:hover .file-cta {
+ background-color: #3ec487;
+ border-color: transparent;
+ color: #fff;
+}
+.file.is-success.is-focused .file-cta,
+.file.is-success:focus .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(72, 199, 142, 0.25);
+ color: #fff;
+}
+.file.is-success.is-active .file-cta,
+.file.is-success:active .file-cta {
+ background-color: #3abb81;
+ border-color: transparent;
+ color: #fff;
+}
+.file.is-warning .file-cta {
+ background-color: #ffe08a;
+ border-color: transparent;
+ color: rgba(0, 0, 0, 0.7);
+}
+.file.is-warning.is-hovered .file-cta,
+.file.is-warning:hover .file-cta {
+ background-color: #ffdc7d;
+ border-color: transparent;
+ color: rgba(0, 0, 0, 0.7);
+}
+.file.is-warning.is-focused .file-cta,
+.file.is-warning:focus .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(255, 224, 138, 0.25);
+ color: rgba(0, 0, 0, 0.7);
+}
+.file.is-warning.is-active .file-cta,
+.file.is-warning:active .file-cta {
+ background-color: #ffd970;
+ border-color: transparent;
+ color: rgba(0, 0, 0, 0.7);
+}
+.file.is-danger .file-cta {
+ background-color: #f14668;
+ border-color: transparent;
+ color: #fff;
+}
+.file.is-danger.is-hovered .file-cta,
+.file.is-danger:hover .file-cta {
+ background-color: #f03a5f;
+ border-color: transparent;
+ color: #fff;
+}
+.file.is-danger.is-focused .file-cta,
+.file.is-danger:focus .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(241, 70, 104, 0.25);
+ color: #fff;
+}
+.file.is-danger.is-active .file-cta,
+.file.is-danger:active .file-cta {
+ background-color: #ef2e55;
+ border-color: transparent;
+ color: #fff;
+}
+.file.is-small {
+ font-size: 0.75rem;
+}
+.file.is-normal {
+ font-size: 1rem;
+}
+.file.is-medium {
+ font-size: 1.25rem;
+}
+.file.is-medium .file-icon .fa {
+ font-size: 21px;
+}
+.file.is-large {
+ font-size: 1.5rem;
+}
+.file.is-large .file-icon .fa {
+ font-size: 28px;
+}
+.file.has-name .file-cta {
+ border-bottom-right-radius: 0;
+ border-top-right-radius: 0;
+}
+.file.has-name .file-name {
+ border-bottom-left-radius: 0;
+ border-top-left-radius: 0;
+}
+.file.has-name.is-empty .file-cta {
+ border-radius: 4px;
+}
+.file.has-name.is-empty .file-name {
+ display: none;
+}
+.file.is-boxed .file-label {
+ flex-direction: column;
+}
+.file.is-boxed .file-cta {
+ flex-direction: column;
+ height: auto;
+ padding: 1em 3em;
+}
+.file.is-boxed .file-name {
+ border-width: 0 1px 1px;
+}
+.file.is-boxed .file-icon {
+ height: 1.5em;
+ width: 1.5em;
+}
+.file.is-boxed .file-icon .fa {
+ font-size: 21px;
+}
+.file.is-boxed.is-small .file-icon .fa {
+ font-size: 14px;
+}
+.file.is-boxed.is-medium .file-icon .fa {
+ font-size: 28px;
+}
+.file.is-boxed.is-large .file-icon .fa {
+ font-size: 35px;
+}
+.file.is-boxed.has-name .file-cta {
+ border-radius: 4px 4px 0 0;
+}
+.file.is-boxed.has-name .file-name {
+ border-radius: 0 0 4px 4px;
+ border-width: 0 1px 1px;
+}
+.file.is-centered {
+ justify-content: center;
+}
+.file.is-fullwidth .file-label {
+ width: 100%;
+}
+.file.is-fullwidth .file-name {
+ flex-grow: 1;
+ max-width: none;
+}
+.file.is-right {
+ justify-content: flex-end;
+}
+.file.is-right .file-cta {
+ border-radius: 0 4px 4px 0;
+}
+.file.is-right .file-name {
+ border-radius: 4px 0 0 4px;
+ border-width: 1px 0 1px 1px;
+ order: -1;
+}
+.file-label {
+ align-items: stretch;
+ display: flex;
+ cursor: pointer;
+ justify-content: flex-start;
+ overflow: hidden;
+ position: relative;
+}
+.file-label:hover .file-cta {
+ background-color: #eee;
+ color: #363636;
+}
+.file-label:hover .file-name {
+ border-color: #d5d5d5;
+}
+.file-label:active .file-cta {
+ background-color: #e8e8e8;
+ color: #363636;
+}
+.file-label:active .file-name {
+ border-color: #cfcfcf;
+}
+.file-input {
+ height: 100%;
+ left: 0;
+ opacity: 0;
+ outline: 0;
+ position: absolute;
+ top: 0;
+ width: 100%;
+}
+.file-cta,
+.file-name {
+ border-color: #dbdbdb;
+ border-radius: 4px;
+ font-size: 1em;
+ padding-left: 1em;
+ padding-right: 1em;
+ white-space: nowrap;
+}
+.file-cta {
+ background-color: #f5f5f5;
+ color: #4a4a4a;
+}
+.file-name {
+ border-color: #dbdbdb;
+ border-style: solid;
+ border-width: 1px 1px 1px 0;
+ display: block;
+ max-width: 16em;
+ overflow: hidden;
+ text-align: inherit;
+ text-overflow: ellipsis;
+}
+.file-icon {
+ align-items: center;
+ display: flex;
+ height: 1em;
+ justify-content: center;
+ margin-right: 0.5em;
+ width: 1em;
+}
+.file-icon .fa {
+ font-size: 14px;
+}
+.label {
+ color: #363636;
+ display: block;
+ font-size: 1rem;
+ font-weight: 700;
+}
+.label:not(:last-child) {
+ margin-bottom: 0.5em;
+}
+.label.is-small {
+ font-size: 0.75rem;
+}
+.label.is-medium {
+ font-size: 1.25rem;
+}
+.label.is-large {
+ font-size: 1.5rem;
+}
+.help {
+ display: block;
+ font-size: 0.75rem;
+ margin-top: 0.25rem;
+}
+.help.is-white {
+ color: #fff;
+}
+.help.is-black {
+ color: #0a0a0a;
+}
+.help.is-light {
+ color: #f5f5f5;
+}
+.help.is-dark {
+ color: #363636;
+}
+.help.is-primary {
+ color: #00d1b2;
+}
+.help.is-link {
+ color: #485fc7;
+}
+.help.is-info {
+ color: #3e8ed0;
+}
+.help.is-success {
+ color: #48c78e;
+}
+.help.is-warning {
+ color: #ffe08a;
+}
+.help.is-danger {
+ color: #f14668;
+}
+.field:not(:last-child) {
+ margin-bottom: 0.75rem;
+}
+.field.has-addons {
+ display: flex;
+ justify-content: flex-start;
+}
+.field.has-addons .control:not(:last-child) {
+ margin-right: -1px;
+}
+.field.has-addons .control:not(:first-child):not(:last-child) .button,
+.field.has-addons .control:not(:first-child):not(:last-child) .input,
+.field.has-addons .control:not(:first-child):not(:last-child) .select select {
+ border-radius: 0;
+}
+.field.has-addons .control:first-child:not(:only-child) .button,
+.field.has-addons .control:first-child:not(:only-child) .input,
+.field.has-addons .control:first-child:not(:only-child) .select select {
+ border-bottom-right-radius: 0;
+ border-top-right-radius: 0;
+}
+.field.has-addons .control:last-child:not(:only-child) .button,
+.field.has-addons .control:last-child:not(:only-child) .input,
+.field.has-addons .control:last-child:not(:only-child) .select select {
+ border-bottom-left-radius: 0;
+ border-top-left-radius: 0;
+}
+.field.has-addons .control .button:not([disabled]).is-hovered,
+.field.has-addons .control .button:not([disabled]):hover,
+.field.has-addons .control .input:not([disabled]).is-hovered,
+.field.has-addons .control .input:not([disabled]):hover,
+.field.has-addons .control .select select:not([disabled]).is-hovered,
+.field.has-addons .control .select select:not([disabled]):hover {
+ z-index: 2;
+}
+.field.has-addons .control .button:not([disabled]).is-active,
+.field.has-addons .control .button:not([disabled]).is-focused,
+.field.has-addons .control .button:not([disabled]):active,
+.field.has-addons .control .button:not([disabled]):focus,
+.field.has-addons .control .input:not([disabled]).is-active,
+.field.has-addons .control .input:not([disabled]).is-focused,
+.field.has-addons .control .input:not([disabled]):active,
+.field.has-addons .control .input:not([disabled]):focus,
+.field.has-addons .control .select select:not([disabled]).is-active,
+.field.has-addons .control .select select:not([disabled]).is-focused,
+.field.has-addons .control .select select:not([disabled]):active,
+.field.has-addons .control .select select:not([disabled]):focus {
+ z-index: 3;
+}
+.field.has-addons .control .button:not([disabled]).is-active:hover,
+.field.has-addons .control .button:not([disabled]).is-focused:hover,
+.field.has-addons .control .button:not([disabled]):active:hover,
+.field.has-addons .control .button:not([disabled]):focus:hover,
+.field.has-addons .control .input:not([disabled]).is-active:hover,
+.field.has-addons .control .input:not([disabled]).is-focused:hover,
+.field.has-addons .control .input:not([disabled]):active:hover,
+.field.has-addons .control .input:not([disabled]):focus:hover,
+.field.has-addons .control .select select:not([disabled]).is-active:hover,
+.field.has-addons .control .select select:not([disabled]).is-focused:hover,
+.field.has-addons .control .select select:not([disabled]):active:hover,
+.field.has-addons .control .select select:not([disabled]):focus:hover {
+ z-index: 4;
+}
+.field.has-addons .control.is-expanded {
+ flex-grow: 1;
+ flex-shrink: 1;
+}
+.field.has-addons.has-addons-centered {
+ justify-content: center;
+}
+.field.has-addons.has-addons-right {
+ justify-content: flex-end;
+}
+.field.has-addons.has-addons-fullwidth .control {
+ flex-grow: 1;
+ flex-shrink: 0;
+}
+.field.is-grouped {
+ display: flex;
+ justify-content: flex-start;
+}
+.field.is-grouped > .control {
+ flex-shrink: 0;
+}
+.field.is-grouped > .control:not(:last-child) {
+ margin-bottom: 0;
+ margin-right: 0.75rem;
+}
+.field.is-grouped > .control.is-expanded {
+ flex-grow: 1;
+ flex-shrink: 1;
+}
+.field.is-grouped.is-grouped-centered {
+ justify-content: center;
+}
+.field.is-grouped.is-grouped-right {
+ justify-content: flex-end;
+}
+.field.is-grouped.is-grouped-multiline {
+ flex-wrap: wrap;
+}
+.field.is-grouped.is-grouped-multiline > .control:last-child,
+.field.is-grouped.is-grouped-multiline > .control:not(:last-child) {
+ margin-bottom: 0.75rem;
+}
+.field.is-grouped.is-grouped-multiline:last-child {
+ margin-bottom: -0.75rem;
+}
+.field.is-grouped.is-grouped-multiline:not(:last-child) {
+ margin-bottom: 0;
+}
+@media screen and (min-width: 769px), print {
+ .field.is-horizontal {
+ display: flex;
+ }
+}
+.field-label .label {
+ font-size: inherit;
+}
+@media screen and (max-width: 768px) {
+ .field-label {
+ margin-bottom: 0.5rem;
+ }
+}
+@media screen and (min-width: 769px), print {
+ .field-label {
+ flex-basis: 0;
+ flex-grow: 1;
+ flex-shrink: 0;
+ margin-right: 1.5rem;
+ text-align: right;
+ }
+ .field-label.is-small {
+ font-size: 0.75rem;
+ padding-top: 0.375em;
+ }
+ .field-label.is-normal {
+ padding-top: 0.375em;
+ }
+ .field-label.is-medium {
+ font-size: 1.25rem;
+ padding-top: 0.375em;
+ }
+ .field-label.is-large {
+ font-size: 1.5rem;
+ padding-top: 0.375em;
+ }
+}
+.field-body .field .field {
+ margin-bottom: 0;
+}
+@media screen and (min-width: 769px), print {
+ .field-body {
+ display: flex;
+ flex-basis: 0;
+ flex-grow: 5;
+ flex-shrink: 1;
+ }
+ .field-body .field {
+ margin-bottom: 0;
+ }
+ .field-body > .field {
+ flex-shrink: 1;
+ }
+ .field-body > .field:not(.is-narrow) {
+ flex-grow: 1;
+ }
+ .field-body > .field:not(:last-child) {
+ margin-right: 0.75rem;
+ }
+}
+.control {
+ box-sizing: border-box;
+ clear: both;
+ font-size: 1rem;
+ position: relative;
+ text-align: inherit;
+}
+.control.has-icons-left .input:focus ~ .icon,
+.control.has-icons-left .select:focus ~ .icon,
+.control.has-icons-right .input:focus ~ .icon,
+.control.has-icons-right .select:focus ~ .icon {
+ color: #4a4a4a;
+}
+.control.has-icons-left .input.is-small ~ .icon,
+.control.has-icons-left .select.is-small ~ .icon,
+.control.has-icons-right .input.is-small ~ .icon,
+.control.has-icons-right .select.is-small ~ .icon {
+ font-size: 0.75rem;
+}
+.control.has-icons-left .input.is-medium ~ .icon,
+.control.has-icons-left .select.is-medium ~ .icon,
+.control.has-icons-right .input.is-medium ~ .icon,
+.control.has-icons-right .select.is-medium ~ .icon {
+ font-size: 1.25rem;
+}
+.control.has-icons-left .input.is-large ~ .icon,
+.control.has-icons-left .select.is-large ~ .icon,
+.control.has-icons-right .input.is-large ~ .icon,
+.control.has-icons-right .select.is-large ~ .icon {
+ font-size: 1.5rem;
+}
+.control.has-icons-left .icon,
+.control.has-icons-right .icon {
+ color: #dbdbdb;
+ height: 2.5em;
+ pointer-events: none;
+ position: absolute;
+ top: 0;
+ width: 2.5em;
+ z-index: 4;
+}
+.control.has-icons-left .input,
+.control.has-icons-left .select select {
+ padding-left: 2.5em;
+}
+.control.has-icons-left .icon.is-left {
+ left: 0;
+}
+.control.has-icons-right .input,
+.control.has-icons-right .select select {
+ padding-right: 2.5em;
+}
+.control.has-icons-right .icon.is-right {
+ right: 0;
+}
+.control.is-loading::after {
+ position: absolute !important;
+ right: 0.625em;
+ top: 0.625em;
+ z-index: 4;
+}
+.control.is-loading.is-small:after {
+ font-size: 0.75rem;
+}
+.control.is-loading.is-medium:after {
+ font-size: 1.25rem;
+}
+.control.is-loading.is-large:after {
+ font-size: 1.5rem;
+}
+.breadcrumb {
+ font-size: 1rem;
+ white-space: nowrap;
+}
+.breadcrumb a {
+ align-items: center;
+ color: #485fc7;
+ display: flex;
+ justify-content: center;
+ padding: 0 0.75em;
+}
+.breadcrumb a:hover {
+ color: #363636;
+}
+.breadcrumb li {
+ align-items: center;
+ display: flex;
+}
+.breadcrumb li:first-child a {
+ padding-left: 0;
+}
+.breadcrumb li.is-active a {
+ color: #363636;
+ cursor: default;
+ pointer-events: none;
+}
+.breadcrumb li + li::before {
+ color: #b5b5b5;
+ content: '\0002f';
+}
+.breadcrumb ol,
+.breadcrumb ul {
+ align-items: flex-start;
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: flex-start;
+}
+.breadcrumb .icon:first-child {
+ margin-right: 0.5em;
+}
+.breadcrumb .icon:last-child {
+ margin-left: 0.5em;
+}
+.breadcrumb.is-centered ol,
+.breadcrumb.is-centered ul {
+ justify-content: center;
+}
+.breadcrumb.is-right ol,
+.breadcrumb.is-right ul {
+ justify-content: flex-end;
+}
+.breadcrumb.is-small {
+ font-size: 0.75rem;
+}
+.breadcrumb.is-medium {
+ font-size: 1.25rem;
+}
+.breadcrumb.is-large {
+ font-size: 1.5rem;
+}
+.breadcrumb.has-arrow-separator li + li::before {
+ content: '\02192';
+}
+.breadcrumb.has-bullet-separator li + li::before {
+ content: '\02022';
+}
+.breadcrumb.has-dot-separator li + li::before {
+ content: '\000b7';
+}
+.breadcrumb.has-succeeds-separator li + li::before {
+ content: '\0227B';
+}
+.card {
+ background-color: #fff;
+ border-radius: 0.25rem;
+ box-shadow: 0 0.5em 1em -0.125em rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.02);
+ color: #4a4a4a;
+ max-width: 100%;
+ position: relative;
+}
+.card-content:first-child,
+.card-footer:first-child,
+.card-header:first-child {
+ border-top-left-radius: 0.25rem;
+ border-top-right-radius: 0.25rem;
+}
+.card-content:last-child,
+.card-footer:last-child,
+.card-header:last-child {
+ border-bottom-left-radius: 0.25rem;
+ border-bottom-right-radius: 0.25rem;
+}
+.card-header {
+ background-color: transparent;
+ align-items: stretch;
+ box-shadow: 0 0.125em 0.25em rgba(10, 10, 10, 0.1);
+ display: flex;
+}
+.card-header-title {
+ align-items: center;
+ color: #363636;
+ display: flex;
+ flex-grow: 1;
+ font-weight: 700;
+ padding: 0.75rem 1rem;
+}
+.card-header-title.is-centered {
+ justify-content: center;
+}
+.card-header-icon {
+ -moz-appearance: none;
+ -webkit-appearance: none;
+ appearance: none;
+ background: 0 0;
+ border: none;
+ color: currentColor;
+ font-family: inherit;
+ font-size: 1em;
+ margin: 0;
+ padding: 0;
+ align-items: center;
+ cursor: pointer;
+ display: flex;
+ justify-content: center;
+ padding: 0.75rem 1rem;
+}
+.card-image {
+ display: block;
+ position: relative;
+}
+.card-image:first-child img {
+ border-top-left-radius: 0.25rem;
+ border-top-right-radius: 0.25rem;
+}
+.card-image:last-child img {
+ border-bottom-left-radius: 0.25rem;
+ border-bottom-right-radius: 0.25rem;
+}
+.card-content {
+ background-color: transparent;
+ padding: 1.5rem;
+}
+.card-footer {
+ background-color: transparent;
+ border-top: 1px solid #ededed;
+ align-items: stretch;
+ display: flex;
+}
+.card-footer-item {
+ align-items: center;
+ display: flex;
+ flex-basis: 0;
+ flex-grow: 1;
+ flex-shrink: 0;
+ justify-content: center;
+ padding: 0.75rem;
+}
+.card-footer-item:not(:last-child) {
+ border-right: 1px solid #ededed;
+}
+.card .media:not(:last-child) {
+ margin-bottom: 1.5rem;
+}
+.dropdown {
+ display: inline-flex;
+ position: relative;
+ vertical-align: top;
+}
+.dropdown.is-active .dropdown-menu,
+.dropdown.is-hoverable:hover .dropdown-menu {
+ display: block;
+}
+.dropdown.is-right .dropdown-menu {
+ left: auto;
+ right: 0;
+}
+.dropdown.is-up .dropdown-menu {
+ bottom: 100%;
+ padding-bottom: 4px;
+ padding-top: initial;
+ top: auto;
+}
+.dropdown-menu {
+ display: none;
+ left: 0;
+ min-width: 12rem;
+ padding-top: 4px;
+ position: absolute;
+ top: 100%;
+ z-index: 20;
+}
+.dropdown-content {
+ background-color: #fff;
+ border-radius: 4px;
+ box-shadow: 0 0.5em 1em -0.125em rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.02);
+ padding-bottom: 0.5rem;
+ padding-top: 0.5rem;
+}
+.dropdown-item {
+ color: #4a4a4a;
+ display: block;
+ font-size: 0.875rem;
+ line-height: 1.5;
+ padding: 0.375rem 1rem;
+ position: relative;
+}
+a.dropdown-item,
+button.dropdown-item {
+ padding-right: 3rem;
+ text-align: inherit;
+ white-space: nowrap;
+ width: 100%;
+}
+a.dropdown-item:hover,
+button.dropdown-item:hover {
+ background-color: #f5f5f5;
+ color: #0a0a0a;
+}
+a.dropdown-item.is-active,
+button.dropdown-item.is-active {
+ background-color: #485fc7;
+ color: #fff;
+}
+.dropdown-divider {
+ background-color: #ededed;
+ border: none;
+ display: block;
+ height: 1px;
+ margin: 0.5rem 0;
+}
+.level {
+ align-items: center;
+ justify-content: space-between;
+}
+.level code {
+ border-radius: 4px;
+}
+.level img {
+ display: inline-block;
+ vertical-align: top;
+}
+.level.is-mobile {
+ display: flex;
+}
+.level.is-mobile .level-left,
+.level.is-mobile .level-right {
+ display: flex;
+}
+.level.is-mobile .level-left + .level-right {
+ margin-top: 0;
+}
+.level.is-mobile .level-item:not(:last-child) {
+ margin-bottom: 0;
+ margin-right: 0.75rem;
+}
+.level.is-mobile .level-item:not(.is-narrow) {
+ flex-grow: 1;
+}
+@media screen and (min-width: 769px), print {
+ .level {
+ display: flex;
+ }
+ .level > .level-item:not(.is-narrow) {
+ flex-grow: 1;
+ }
+}
+.level-item {
+ align-items: center;
+ display: flex;
+ flex-basis: auto;
+ flex-grow: 0;
+ flex-shrink: 0;
+ justify-content: center;
+}
+.level-item .subtitle,
+.level-item .title {
+ margin-bottom: 0;
+}
+@media screen and (max-width: 768px) {
+ .level-item:not(:last-child) {
+ margin-bottom: 0.75rem;
+ }
+}
+.level-left,
+.level-right {
+ flex-basis: auto;
+ flex-grow: 0;
+ flex-shrink: 0;
+}
+.level-left .level-item.is-flexible,
+.level-right .level-item.is-flexible {
+ flex-grow: 1;
+}
+@media screen and (min-width: 769px), print {
+ .level-left .level-item:not(:last-child),
+ .level-right .level-item:not(:last-child) {
+ margin-right: 0.75rem;
+ }
+}
+.level-left {
+ align-items: center;
+ justify-content: flex-start;
+}
+@media screen and (max-width: 768px) {
+ .level-left + .level-right {
+ margin-top: 1.5rem;
+ }
+}
+@media screen and (min-width: 769px), print {
+ .level-left {
+ display: flex;
+ }
+}
+.level-right {
+ align-items: center;
+ justify-content: flex-end;
+}
+@media screen and (min-width: 769px), print {
+ .level-right {
+ display: flex;
+ }
+}
+.media {
+ align-items: flex-start;
+ display: flex;
+ text-align: inherit;
+}
+.media .content:not(:last-child) {
+ margin-bottom: 0.75rem;
+}
+.media .media {
+ border-top: 1px solid rgba(219, 219, 219, 0.5);
+ display: flex;
+ padding-top: 0.75rem;
+}
+.media .media .content:not(:last-child),
+.media .media .control:not(:last-child) {
+ margin-bottom: 0.5rem;
+}
+.media .media .media {
+ padding-top: 0.5rem;
+}
+.media .media .media + .media {
+ margin-top: 0.5rem;
+}
+.media + .media {
+ border-top: 1px solid rgba(219, 219, 219, 0.5);
+ margin-top: 1rem;
+ padding-top: 1rem;
+}
+.media.is-large + .media {
+ margin-top: 1.5rem;
+ padding-top: 1.5rem;
+}
+.media-left,
+.media-right {
+ flex-basis: auto;
+ flex-grow: 0;
+ flex-shrink: 0;
+}
+.media-left {
+ margin-right: 1rem;
+}
+.media-right {
+ margin-left: 1rem;
+}
+.media-content {
+ flex-basis: auto;
+ flex-grow: 1;
+ flex-shrink: 1;
+ text-align: inherit;
+}
+@media screen and (max-width: 768px) {
+ .media-content {
+ overflow-x: auto;
+ }
+}
+.menu {
+ font-size: 1rem;
+}
+.menu.is-small {
+ font-size: 0.75rem;
+}
+.menu.is-medium {
+ font-size: 1.25rem;
+}
+.menu.is-large {
+ font-size: 1.5rem;
+}
+.menu-list {
+ line-height: 1.25;
+}
+.menu-list a {
+ border-radius: 2px;
+ color: #4a4a4a;
+ display: block;
+ padding: 0.5em 0.75em;
+}
+.menu-list a:hover {
+ background-color: #f5f5f5;
+ color: #363636;
+}
+.menu-list a.is-active {
+ background-color: #485fc7;
+ color: #fff;
+}
+.menu-list li ul {
+ border-left: 1px solid #dbdbdb;
+ margin: 0.75em;
+ padding-left: 0.75em;
+}
+.menu-label {
+ color: #7a7a7a;
+ font-size: 0.75em;
+ letter-spacing: 0.1em;
+ text-transform: uppercase;
+}
+.menu-label:not(:first-child) {
+ margin-top: 1em;
+}
+.menu-label:not(:last-child) {
+ margin-bottom: 1em;
+}
+.message {
+ background-color: #f5f5f5;
+ border-radius: 4px;
+ font-size: 1rem;
+}
+.message strong {
+ color: currentColor;
+}
+.message a:not(.button):not(.tag):not(.dropdown-item) {
+ color: currentColor;
+ text-decoration: underline;
+}
+.message.is-small {
+ font-size: 0.75rem;
+}
+.message.is-medium {
+ font-size: 1.25rem;
+}
+.message.is-large {
+ font-size: 1.5rem;
+}
+.message.is-white {
+ background-color: #fff;
+}
+.message.is-white .message-header {
+ background-color: #fff;
+ color: #0a0a0a;
+}
+.message.is-white .message-body {
+ border-color: #fff;
+}
+.message.is-black {
+ background-color: #fafafa;
+}
+.message.is-black .message-header {
+ background-color: #0a0a0a;
+ color: #fff;
+}
+.message.is-black .message-body {
+ border-color: #0a0a0a;
+}
+.message.is-light {
+ background-color: #fafafa;
+}
+.message.is-light .message-header {
+ background-color: #f5f5f5;
+ color: rgba(0, 0, 0, 0.7);
+}
+.message.is-light .message-body {
+ border-color: #f5f5f5;
+}
+.message.is-dark {
+ background-color: #fafafa;
+}
+.message.is-dark .message-header {
+ background-color: #363636;
+ color: #fff;
+}
+.message.is-dark .message-body {
+ border-color: #363636;
+}
+.message.is-primary {
+ background-color: #ebfffc;
+}
+.message.is-primary .message-header {
+ background-color: #00d1b2;
+ color: #fff;
+}
+.message.is-primary .message-body {
+ border-color: #00d1b2;
+ color: #00947e;
+}
+.message.is-link {
+ background-color: #eff1fa;
+}
+.message.is-link .message-header {
+ background-color: #485fc7;
+ color: #fff;
+}
+.message.is-link .message-body {
+ border-color: #485fc7;
+ color: #3850b7;
+}
+.message.is-info {
+ background-color: #eff5fb;
+}
+.message.is-info .message-header {
+ background-color: #3e8ed0;
+ color: #fff;
+}
+.message.is-info .message-body {
+ border-color: #3e8ed0;
+ color: #296fa8;
+}
+.message.is-success {
+ background-color: #effaf5;
+}
+.message.is-success .message-header {
+ background-color: #48c78e;
+ color: #fff;
+}
+.message.is-success .message-body {
+ border-color: #48c78e;
+ color: #257953;
+}
+.message.is-warning {
+ background-color: #fffaeb;
+}
+.message.is-warning .message-header {
+ background-color: #ffe08a;
+ color: rgba(0, 0, 0, 0.7);
+}
+.message.is-warning .message-body {
+ border-color: #ffe08a;
+ color: #946c00;
+}
+.message.is-danger {
+ background-color: #feecf0;
+}
+.message.is-danger .message-header {
+ background-color: #f14668;
+ color: #fff;
+}
+.message.is-danger .message-body {
+ border-color: #f14668;
+ color: #cc0f35;
+}
+.message-header {
+ align-items: center;
+ background-color: #4a4a4a;
+ border-radius: 4px 4px 0 0;
+ color: #fff;
+ display: flex;
+ font-weight: 700;
+ justify-content: space-between;
+ line-height: 1.25;
+ padding: 0.75em 1em;
+ position: relative;
+}
+.message-header .delete {
+ flex-grow: 0;
+ flex-shrink: 0;
+ margin-left: 0.75em;
+}
+.message-header + .message-body {
+ border-width: 0;
+ border-top-left-radius: 0;
+ border-top-right-radius: 0;
+}
+.message-body {
+ border-color: #dbdbdb;
+ border-radius: 4px;
+ border-style: solid;
+ border-width: 0 0 0 4px;
+ color: #4a4a4a;
+ padding: 1.25em 1.5em;
+}
+.message-body code,
+.message-body pre {
+ background-color: #fff;
+}
+.message-body pre code {
+ background-color: transparent;
+}
+.modal {
+ align-items: center;
+ display: none;
+ flex-direction: column;
+ justify-content: center;
+ overflow: hidden;
+ position: fixed;
+ z-index: 40;
+}
+.modal.is-active {
+ display: flex;
+}
+.modal-background {
+ background-color: rgba(10, 10, 10, 0.86);
+}
+.modal-card,
+.modal-content {
+ margin: 0 20px;
+ max-height: calc(100vh - 160px);
+ overflow: auto;
+ position: relative;
+ width: 100%;
+}
+@media screen and (min-width: 769px) {
+ .modal-card,
+ .modal-content {
+ margin: 0 auto;
+ max-height: calc(100vh - 40px);
+ width: 640px;
+ }
+}
+.modal-close {
+ background: 0 0;
+ height: 40px;
+ position: fixed;
+ right: 20px;
+ top: 20px;
+ width: 40px;
+}
+.modal-card {
+ display: flex;
+ flex-direction: column;
+ max-height: calc(100vh - 40px);
+ overflow: hidden;
+ -ms-overflow-y: visible;
+}
+.modal-card-foot,
+.modal-card-head {
+ align-items: center;
+ background-color: #f5f5f5;
+ display: flex;
+ flex-shrink: 0;
+ justify-content: flex-start;
+ padding: 20px;
+ position: relative;
+}
+.modal-card-head {
+ border-bottom: 1px solid #dbdbdb;
+ border-top-left-radius: 6px;
+ border-top-right-radius: 6px;
+}
+.modal-card-title {
+ color: #363636;
+ flex-grow: 1;
+ flex-shrink: 0;
+ font-size: 1.5rem;
+ line-height: 1;
+}
+.modal-card-foot {
+ border-bottom-left-radius: 6px;
+ border-bottom-right-radius: 6px;
+ border-top: 1px solid #dbdbdb;
+}
+.modal-card-foot .button:not(:last-child) {
+ margin-right: 0.5em;
+}
+.modal-card-body {
+ -webkit-overflow-scrolling: touch;
+ background-color: #fff;
+ flex-grow: 1;
+ flex-shrink: 1;
+ overflow: auto;
+ padding: 20px;
+}
+.navbar {
+ background-color: #fff;
+ min-height: 3.25rem;
+ position: relative;
+ z-index: 30;
+}
+.navbar.is-white {
+ background-color: #fff;
+ color: #0a0a0a;
+}
+.navbar.is-white .navbar-brand .navbar-link,
+.navbar.is-white .navbar-brand > .navbar-item {
+ color: #0a0a0a;
+}
+.navbar.is-white .navbar-brand .navbar-link.is-active,
+.navbar.is-white .navbar-brand .navbar-link:focus,
+.navbar.is-white .navbar-brand .navbar-link:hover,
+.navbar.is-white .navbar-brand > a.navbar-item.is-active,
+.navbar.is-white .navbar-brand > a.navbar-item:focus,
+.navbar.is-white .navbar-brand > a.navbar-item:hover {
+ background-color: #f2f2f2;
+ color: #0a0a0a;
+}
+.navbar.is-white .navbar-brand .navbar-link::after {
+ border-color: #0a0a0a;
+}
+.navbar.is-white .navbar-burger {
+ color: #0a0a0a;
+}
+@media screen and (min-width: 1024px) {
+ .navbar.is-white .navbar-end .navbar-link,
+ .navbar.is-white .navbar-end > .navbar-item,
+ .navbar.is-white .navbar-start .navbar-link,
+ .navbar.is-white .navbar-start > .navbar-item {
+ color: #0a0a0a;
+ }
+ .navbar.is-white .navbar-end .navbar-link.is-active,
+ .navbar.is-white .navbar-end .navbar-link:focus,
+ .navbar.is-white .navbar-end .navbar-link:hover,
+ .navbar.is-white .navbar-end > a.navbar-item.is-active,
+ .navbar.is-white .navbar-end > a.navbar-item:focus,
+ .navbar.is-white .navbar-end > a.navbar-item:hover,
+ .navbar.is-white .navbar-start .navbar-link.is-active,
+ .navbar.is-white .navbar-start .navbar-link:focus,
+ .navbar.is-white .navbar-start .navbar-link:hover,
+ .navbar.is-white .navbar-start > a.navbar-item.is-active,
+ .navbar.is-white .navbar-start > a.navbar-item:focus,
+ .navbar.is-white .navbar-start > a.navbar-item:hover {
+ background-color: #f2f2f2;
+ color: #0a0a0a;
+ }
+ .navbar.is-white .navbar-end .navbar-link::after,
+ .navbar.is-white .navbar-start .navbar-link::after {
+ border-color: #0a0a0a;
+ }
+ .navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link,
+ .navbar.is-white .navbar-item.has-dropdown:focus .navbar-link,
+ .navbar.is-white .navbar-item.has-dropdown:hover .navbar-link {
+ background-color: #f2f2f2;
+ color: #0a0a0a;
+ }
+ .navbar.is-white .navbar-dropdown a.navbar-item.is-active {
+ background-color: #fff;
+ color: #0a0a0a;
+ }
+}
+.navbar.is-black {
+ background-color: #0a0a0a;
+ color: #fff;
+}
+.navbar.is-black .navbar-brand .navbar-link,
+.navbar.is-black .navbar-brand > .navbar-item {
+ color: #fff;
+}
+.navbar.is-black .navbar-brand .navbar-link.is-active,
+.navbar.is-black .navbar-brand .navbar-link:focus,
+.navbar.is-black .navbar-brand .navbar-link:hover,
+.navbar.is-black .navbar-brand > a.navbar-item.is-active,
+.navbar.is-black .navbar-brand > a.navbar-item:focus,
+.navbar.is-black .navbar-brand > a.navbar-item:hover {
+ background-color: #000;
+ color: #fff;
+}
+.navbar.is-black .navbar-brand .navbar-link::after {
+ border-color: #fff;
+}
+.navbar.is-black .navbar-burger {
+ color: #fff;
+}
+@media screen and (min-width: 1024px) {
+ .navbar.is-black .navbar-end .navbar-link,
+ .navbar.is-black .navbar-end > .navbar-item,
+ .navbar.is-black .navbar-start .navbar-link,
+ .navbar.is-black .navbar-start > .navbar-item {
+ color: #fff;
+ }
+ .navbar.is-black .navbar-end .navbar-link.is-active,
+ .navbar.is-black .navbar-end .navbar-link:focus,
+ .navbar.is-black .navbar-end .navbar-link:hover,
+ .navbar.is-black .navbar-end > a.navbar-item.is-active,
+ .navbar.is-black .navbar-end > a.navbar-item:focus,
+ .navbar.is-black .navbar-end > a.navbar-item:hover,
+ .navbar.is-black .navbar-start .navbar-link.is-active,
+ .navbar.is-black .navbar-start .navbar-link:focus,
+ .navbar.is-black .navbar-start .navbar-link:hover,
+ .navbar.is-black .navbar-start > a.navbar-item.is-active,
+ .navbar.is-black .navbar-start > a.navbar-item:focus,
+ .navbar.is-black .navbar-start > a.navbar-item:hover {
+ background-color: #000;
+ color: #fff;
+ }
+ .navbar.is-black .navbar-end .navbar-link::after,
+ .navbar.is-black .navbar-start .navbar-link::after {
+ border-color: #fff;
+ }
+ .navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link,
+ .navbar.is-black .navbar-item.has-dropdown:focus .navbar-link,
+ .navbar.is-black .navbar-item.has-dropdown:hover .navbar-link {
+ background-color: #000;
+ color: #fff;
+ }
+ .navbar.is-black .navbar-dropdown a.navbar-item.is-active {
+ background-color: #0a0a0a;
+ color: #fff;
+ }
+}
+.navbar.is-light {
+ background-color: #f5f5f5;
+ color: rgba(0, 0, 0, 0.7);
+}
+.navbar.is-light .navbar-brand .navbar-link,
+.navbar.is-light .navbar-brand > .navbar-item {
+ color: rgba(0, 0, 0, 0.7);
+}
+.navbar.is-light .navbar-brand .navbar-link.is-active,
+.navbar.is-light .navbar-brand .navbar-link:focus,
+.navbar.is-light .navbar-brand .navbar-link:hover,
+.navbar.is-light .navbar-brand > a.navbar-item.is-active,
+.navbar.is-light .navbar-brand > a.navbar-item:focus,
+.navbar.is-light .navbar-brand > a.navbar-item:hover {
+ background-color: #e8e8e8;
+ color: rgba(0, 0, 0, 0.7);
+}
+.navbar.is-light .navbar-brand .navbar-link::after {
+ border-color: rgba(0, 0, 0, 0.7);
+}
+.navbar.is-light .navbar-burger {
+ color: rgba(0, 0, 0, 0.7);
+}
+@media screen and (min-width: 1024px) {
+ .navbar.is-light .navbar-end .navbar-link,
+ .navbar.is-light .navbar-end > .navbar-item,
+ .navbar.is-light .navbar-start .navbar-link,
+ .navbar.is-light .navbar-start > .navbar-item {
+ color: rgba(0, 0, 0, 0.7);
+ }
+ .navbar.is-light .navbar-end .navbar-link.is-active,
+ .navbar.is-light .navbar-end .navbar-link:focus,
+ .navbar.is-light .navbar-end .navbar-link:hover,
+ .navbar.is-light .navbar-end > a.navbar-item.is-active,
+ .navbar.is-light .navbar-end > a.navbar-item:focus,
+ .navbar.is-light .navbar-end > a.navbar-item:hover,
+ .navbar.is-light .navbar-start .navbar-link.is-active,
+ .navbar.is-light .navbar-start .navbar-link:focus,
+ .navbar.is-light .navbar-start .navbar-link:hover,
+ .navbar.is-light .navbar-start > a.navbar-item.is-active,
+ .navbar.is-light .navbar-start > a.navbar-item:focus,
+ .navbar.is-light .navbar-start > a.navbar-item:hover {
+ background-color: #e8e8e8;
+ color: rgba(0, 0, 0, 0.7);
+ }
+ .navbar.is-light .navbar-end .navbar-link::after,
+ .navbar.is-light .navbar-start .navbar-link::after {
+ border-color: rgba(0, 0, 0, 0.7);
+ }
+ .navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link,
+ .navbar.is-light .navbar-item.has-dropdown:focus .navbar-link,
+ .navbar.is-light .navbar-item.has-dropdown:hover .navbar-link {
+ background-color: #e8e8e8;
+ color: rgba(0, 0, 0, 0.7);
+ }
+ .navbar.is-light .navbar-dropdown a.navbar-item.is-active {
+ background-color: #f5f5f5;
+ color: rgba(0, 0, 0, 0.7);
+ }
+}
+.navbar.is-dark {
+ background-color: #363636;
+ color: #fff;
+}
+.navbar.is-dark .navbar-brand .navbar-link,
+.navbar.is-dark .navbar-brand > .navbar-item {
+ color: #fff;
+}
+.navbar.is-dark .navbar-brand .navbar-link.is-active,
+.navbar.is-dark .navbar-brand .navbar-link:focus,
+.navbar.is-dark .navbar-brand .navbar-link:hover,
+.navbar.is-dark .navbar-brand > a.navbar-item.is-active,
+.navbar.is-dark .navbar-brand > a.navbar-item:focus,
+.navbar.is-dark .navbar-brand > a.navbar-item:hover {
+ background-color: #292929;
+ color: #fff;
+}
+.navbar.is-dark .navbar-brand .navbar-link::after {
+ border-color: #fff;
+}
+.navbar.is-dark .navbar-burger {
+ color: #fff;
+}
+@media screen and (min-width: 1024px) {
+ .navbar.is-dark .navbar-end .navbar-link,
+ .navbar.is-dark .navbar-end > .navbar-item,
+ .navbar.is-dark .navbar-start .navbar-link,
+ .navbar.is-dark .navbar-start > .navbar-item {
+ color: #fff;
+ }
+ .navbar.is-dark .navbar-end .navbar-link.is-active,
+ .navbar.is-dark .navbar-end .navbar-link:focus,
+ .navbar.is-dark .navbar-end .navbar-link:hover,
+ .navbar.is-dark .navbar-end > a.navbar-item.is-active,
+ .navbar.is-dark .navbar-end > a.navbar-item:focus,
+ .navbar.is-dark .navbar-end > a.navbar-item:hover,
+ .navbar.is-dark .navbar-start .navbar-link.is-active,
+ .navbar.is-dark .navbar-start .navbar-link:focus,
+ .navbar.is-dark .navbar-start .navbar-link:hover,
+ .navbar.is-dark .navbar-start > a.navbar-item.is-active,
+ .navbar.is-dark .navbar-start > a.navbar-item:focus,
+ .navbar.is-dark .navbar-start > a.navbar-item:hover {
+ background-color: #292929;
+ color: #fff;
+ }
+ .navbar.is-dark .navbar-end .navbar-link::after,
+ .navbar.is-dark .navbar-start .navbar-link::after {
+ border-color: #fff;
+ }
+ .navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link,
+ .navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link,
+ .navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link {
+ background-color: #292929;
+ color: #fff;
+ }
+ .navbar.is-dark .navbar-dropdown a.navbar-item.is-active {
+ background-color: #363636;
+ color: #fff;
+ }
+}
+.navbar.is-primary {
+ background-color: #00d1b2;
+ color: #fff;
+}
+.navbar.is-primary .navbar-brand .navbar-link,
+.navbar.is-primary .navbar-brand > .navbar-item {
+ color: #fff;
+}
+.navbar.is-primary .navbar-brand .navbar-link.is-active,
+.navbar.is-primary .navbar-brand .navbar-link:focus,
+.navbar.is-primary .navbar-brand .navbar-link:hover,
+.navbar.is-primary .navbar-brand > a.navbar-item.is-active,
+.navbar.is-primary .navbar-brand > a.navbar-item:focus,
+.navbar.is-primary .navbar-brand > a.navbar-item:hover {
+ background-color: #00b89c;
+ color: #fff;
+}
+.navbar.is-primary .navbar-brand .navbar-link::after {
+ border-color: #fff;
+}
+.navbar.is-primary .navbar-burger {
+ color: #fff;
+}
+@media screen and (min-width: 1024px) {
+ .navbar.is-primary .navbar-end .navbar-link,
+ .navbar.is-primary .navbar-end > .navbar-item,
+ .navbar.is-primary .navbar-start .navbar-link,
+ .navbar.is-primary .navbar-start > .navbar-item {
+ color: #fff;
+ }
+ .navbar.is-primary .navbar-end .navbar-link.is-active,
+ .navbar.is-primary .navbar-end .navbar-link:focus,
+ .navbar.is-primary .navbar-end .navbar-link:hover,
+ .navbar.is-primary .navbar-end > a.navbar-item.is-active,
+ .navbar.is-primary .navbar-end > a.navbar-item:focus,
+ .navbar.is-primary .navbar-end > a.navbar-item:hover,
+ .navbar.is-primary .navbar-start .navbar-link.is-active,
+ .navbar.is-primary .navbar-start .navbar-link:focus,
+ .navbar.is-primary .navbar-start .navbar-link:hover,
+ .navbar.is-primary .navbar-start > a.navbar-item.is-active,
+ .navbar.is-primary .navbar-start > a.navbar-item:focus,
+ .navbar.is-primary .navbar-start > a.navbar-item:hover {
+ background-color: #00b89c;
+ color: #fff;
+ }
+ .navbar.is-primary .navbar-end .navbar-link::after,
+ .navbar.is-primary .navbar-start .navbar-link::after {
+ border-color: #fff;
+ }
+ .navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link,
+ .navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link,
+ .navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link {
+ background-color: #00b89c;
+ color: #fff;
+ }
+ .navbar.is-primary .navbar-dropdown a.navbar-item.is-active {
+ background-color: #00d1b2;
+ color: #fff;
+ }
+}
+.navbar.is-link {
+ background-color: #485fc7;
+ color: #fff;
+}
+.navbar.is-link .navbar-brand .navbar-link,
+.navbar.is-link .navbar-brand > .navbar-item {
+ color: #fff;
+}
+.navbar.is-link .navbar-brand .navbar-link.is-active,
+.navbar.is-link .navbar-brand .navbar-link:focus,
+.navbar.is-link .navbar-brand .navbar-link:hover,
+.navbar.is-link .navbar-brand > a.navbar-item.is-active,
+.navbar.is-link .navbar-brand > a.navbar-item:focus,
+.navbar.is-link .navbar-brand > a.navbar-item:hover {
+ background-color: #3a51bb;
+ color: #fff;
+}
+.navbar.is-link .navbar-brand .navbar-link::after {
+ border-color: #fff;
+}
+.navbar.is-link .navbar-burger {
+ color: #fff;
+}
+@media screen and (min-width: 1024px) {
+ .navbar.is-link .navbar-end .navbar-link,
+ .navbar.is-link .navbar-end > .navbar-item,
+ .navbar.is-link .navbar-start .navbar-link,
+ .navbar.is-link .navbar-start > .navbar-item {
+ color: #fff;
+ }
+ .navbar.is-link .navbar-end .navbar-link.is-active,
+ .navbar.is-link .navbar-end .navbar-link:focus,
+ .navbar.is-link .navbar-end .navbar-link:hover,
+ .navbar.is-link .navbar-end > a.navbar-item.is-active,
+ .navbar.is-link .navbar-end > a.navbar-item:focus,
+ .navbar.is-link .navbar-end > a.navbar-item:hover,
+ .navbar.is-link .navbar-start .navbar-link.is-active,
+ .navbar.is-link .navbar-start .navbar-link:focus,
+ .navbar.is-link .navbar-start .navbar-link:hover,
+ .navbar.is-link .navbar-start > a.navbar-item.is-active,
+ .navbar.is-link .navbar-start > a.navbar-item:focus,
+ .navbar.is-link .navbar-start > a.navbar-item:hover {
+ background-color: #3a51bb;
+ color: #fff;
+ }
+ .navbar.is-link .navbar-end .navbar-link::after,
+ .navbar.is-link .navbar-start .navbar-link::after {
+ border-color: #fff;
+ }
+ .navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link,
+ .navbar.is-link .navbar-item.has-dropdown:focus .navbar-link,
+ .navbar.is-link .navbar-item.has-dropdown:hover .navbar-link {
+ background-color: #3a51bb;
+ color: #fff;
+ }
+ .navbar.is-link .navbar-dropdown a.navbar-item.is-active {
+ background-color: #485fc7;
+ color: #fff;
+ }
+}
+.navbar.is-info {
+ background-color: #3e8ed0;
+ color: #fff;
+}
+.navbar.is-info .navbar-brand .navbar-link,
+.navbar.is-info .navbar-brand > .navbar-item {
+ color: #fff;
+}
+.navbar.is-info .navbar-brand .navbar-link.is-active,
+.navbar.is-info .navbar-brand .navbar-link:focus,
+.navbar.is-info .navbar-brand .navbar-link:hover,
+.navbar.is-info .navbar-brand > a.navbar-item.is-active,
+.navbar.is-info .navbar-brand > a.navbar-item:focus,
+.navbar.is-info .navbar-brand > a.navbar-item:hover {
+ background-color: #3082c5;
+ color: #fff;
+}
+.navbar.is-info .navbar-brand .navbar-link::after {
+ border-color: #fff;
+}
+.navbar.is-info .navbar-burger {
+ color: #fff;
+}
+@media screen and (min-width: 1024px) {
+ .navbar.is-info .navbar-end .navbar-link,
+ .navbar.is-info .navbar-end > .navbar-item,
+ .navbar.is-info .navbar-start .navbar-link,
+ .navbar.is-info .navbar-start > .navbar-item {
+ color: #fff;
+ }
+ .navbar.is-info .navbar-end .navbar-link.is-active,
+ .navbar.is-info .navbar-end .navbar-link:focus,
+ .navbar.is-info .navbar-end .navbar-link:hover,
+ .navbar.is-info .navbar-end > a.navbar-item.is-active,
+ .navbar.is-info .navbar-end > a.navbar-item:focus,
+ .navbar.is-info .navbar-end > a.navbar-item:hover,
+ .navbar.is-info .navbar-start .navbar-link.is-active,
+ .navbar.is-info .navbar-start .navbar-link:focus,
+ .navbar.is-info .navbar-start .navbar-link:hover,
+ .navbar.is-info .navbar-start > a.navbar-item.is-active,
+ .navbar.is-info .navbar-start > a.navbar-item:focus,
+ .navbar.is-info .navbar-start > a.navbar-item:hover {
+ background-color: #3082c5;
+ color: #fff;
+ }
+ .navbar.is-info .navbar-end .navbar-link::after,
+ .navbar.is-info .navbar-start .navbar-link::after {
+ border-color: #fff;
+ }
+ .navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link,
+ .navbar.is-info .navbar-item.has-dropdown:focus .navbar-link,
+ .navbar.is-info .navbar-item.has-dropdown:hover .navbar-link {
+ background-color: #3082c5;
+ color: #fff;
+ }
+ .navbar.is-info .navbar-dropdown a.navbar-item.is-active {
+ background-color: #3e8ed0;
+ color: #fff;
+ }
+}
+.navbar.is-success {
+ background-color: #48c78e;
+ color: #fff;
+}
+.navbar.is-success .navbar-brand .navbar-link,
+.navbar.is-success .navbar-brand > .navbar-item {
+ color: #fff;
+}
+.navbar.is-success .navbar-brand .navbar-link.is-active,
+.navbar.is-success .navbar-brand .navbar-link:focus,
+.navbar.is-success .navbar-brand .navbar-link:hover,
+.navbar.is-success .navbar-brand > a.navbar-item.is-active,
+.navbar.is-success .navbar-brand > a.navbar-item:focus,
+.navbar.is-success .navbar-brand > a.navbar-item:hover {
+ background-color: #3abb81;
+ color: #fff;
+}
+.navbar.is-success .navbar-brand .navbar-link::after {
+ border-color: #fff;
+}
+.navbar.is-success .navbar-burger {
+ color: #fff;
+}
+@media screen and (min-width: 1024px) {
+ .navbar.is-success .navbar-end .navbar-link,
+ .navbar.is-success .navbar-end > .navbar-item,
+ .navbar.is-success .navbar-start .navbar-link,
+ .navbar.is-success .navbar-start > .navbar-item {
+ color: #fff;
+ }
+ .navbar.is-success .navbar-end .navbar-link.is-active,
+ .navbar.is-success .navbar-end .navbar-link:focus,
+ .navbar.is-success .navbar-end .navbar-link:hover,
+ .navbar.is-success .navbar-end > a.navbar-item.is-active,
+ .navbar.is-success .navbar-end > a.navbar-item:focus,
+ .navbar.is-success .navbar-end > a.navbar-item:hover,
+ .navbar.is-success .navbar-start .navbar-link.is-active,
+ .navbar.is-success .navbar-start .navbar-link:focus,
+ .navbar.is-success .navbar-start .navbar-link:hover,
+ .navbar.is-success .navbar-start > a.navbar-item.is-active,
+ .navbar.is-success .navbar-start > a.navbar-item:focus,
+ .navbar.is-success .navbar-start > a.navbar-item:hover {
+ background-color: #3abb81;
+ color: #fff;
+ }
+ .navbar.is-success .navbar-end .navbar-link::after,
+ .navbar.is-success .navbar-start .navbar-link::after {
+ border-color: #fff;
+ }
+ .navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link,
+ .navbar.is-success .navbar-item.has-dropdown:focus .navbar-link,
+ .navbar.is-success .navbar-item.has-dropdown:hover .navbar-link {
+ background-color: #3abb81;
+ color: #fff;
+ }
+ .navbar.is-success .navbar-dropdown a.navbar-item.is-active {
+ background-color: #48c78e;
+ color: #fff;
+ }
+}
+.navbar.is-warning {
+ background-color: #ffe08a;
+ color: rgba(0, 0, 0, 0.7);
+}
+.navbar.is-warning .navbar-brand .navbar-link,
+.navbar.is-warning .navbar-brand > .navbar-item {
+ color: rgba(0, 0, 0, 0.7);
+}
+.navbar.is-warning .navbar-brand .navbar-link.is-active,
+.navbar.is-warning .navbar-brand .navbar-link:focus,
+.navbar.is-warning .navbar-brand .navbar-link:hover,
+.navbar.is-warning .navbar-brand > a.navbar-item.is-active,
+.navbar.is-warning .navbar-brand > a.navbar-item:focus,
+.navbar.is-warning .navbar-brand > a.navbar-item:hover {
+ background-color: #ffd970;
+ color: rgba(0, 0, 0, 0.7);
+}
+.navbar.is-warning .navbar-brand .navbar-link::after {
+ border-color: rgba(0, 0, 0, 0.7);
+}
+.navbar.is-warning .navbar-burger {
+ color: rgba(0, 0, 0, 0.7);
+}
+@media screen and (min-width: 1024px) {
+ .navbar.is-warning .navbar-end .navbar-link,
+ .navbar.is-warning .navbar-end > .navbar-item,
+ .navbar.is-warning .navbar-start .navbar-link,
+ .navbar.is-warning .navbar-start > .navbar-item {
+ color: rgba(0, 0, 0, 0.7);
+ }
+ .navbar.is-warning .navbar-end .navbar-link.is-active,
+ .navbar.is-warning .navbar-end .navbar-link:focus,
+ .navbar.is-warning .navbar-end .navbar-link:hover,
+ .navbar.is-warning .navbar-end > a.navbar-item.is-active,
+ .navbar.is-warning .navbar-end > a.navbar-item:focus,
+ .navbar.is-warning .navbar-end > a.navbar-item:hover,
+ .navbar.is-warning .navbar-start .navbar-link.is-active,
+ .navbar.is-warning .navbar-start .navbar-link:focus,
+ .navbar.is-warning .navbar-start .navbar-link:hover,
+ .navbar.is-warning .navbar-start > a.navbar-item.is-active,
+ .navbar.is-warning .navbar-start > a.navbar-item:focus,
+ .navbar.is-warning .navbar-start > a.navbar-item:hover {
+ background-color: #ffd970;
+ color: rgba(0, 0, 0, 0.7);
+ }
+ .navbar.is-warning .navbar-end .navbar-link::after,
+ .navbar.is-warning .navbar-start .navbar-link::after {
+ border-color: rgba(0, 0, 0, 0.7);
+ }
+ .navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link,
+ .navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link,
+ .navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link {
+ background-color: #ffd970;
+ color: rgba(0, 0, 0, 0.7);
+ }
+ .navbar.is-warning .navbar-dropdown a.navbar-item.is-active {
+ background-color: #ffe08a;
+ color: rgba(0, 0, 0, 0.7);
+ }
+}
+.navbar.is-danger {
+ background-color: #f14668;
+ color: #fff;
+}
+.navbar.is-danger .navbar-brand .navbar-link,
+.navbar.is-danger .navbar-brand > .navbar-item {
+ color: #fff;
+}
+.navbar.is-danger .navbar-brand .navbar-link.is-active,
+.navbar.is-danger .navbar-brand .navbar-link:focus,
+.navbar.is-danger .navbar-brand .navbar-link:hover,
+.navbar.is-danger .navbar-brand > a.navbar-item.is-active,
+.navbar.is-danger .navbar-brand > a.navbar-item:focus,
+.navbar.is-danger .navbar-brand > a.navbar-item:hover {
+ background-color: #ef2e55;
+ color: #fff;
+}
+.navbar.is-danger .navbar-brand .navbar-link::after {
+ border-color: #fff;
+}
+.navbar.is-danger .navbar-burger {
+ color: #fff;
+}
+@media screen and (min-width: 1024px) {
+ .navbar.is-danger .navbar-end .navbar-link,
+ .navbar.is-danger .navbar-end > .navbar-item,
+ .navbar.is-danger .navbar-start .navbar-link,
+ .navbar.is-danger .navbar-start > .navbar-item {
+ color: #fff;
+ }
+ .navbar.is-danger .navbar-end .navbar-link.is-active,
+ .navbar.is-danger .navbar-end .navbar-link:focus,
+ .navbar.is-danger .navbar-end .navbar-link:hover,
+ .navbar.is-danger .navbar-end > a.navbar-item.is-active,
+ .navbar.is-danger .navbar-end > a.navbar-item:focus,
+ .navbar.is-danger .navbar-end > a.navbar-item:hover,
+ .navbar.is-danger .navbar-start .navbar-link.is-active,
+ .navbar.is-danger .navbar-start .navbar-link:focus,
+ .navbar.is-danger .navbar-start .navbar-link:hover,
+ .navbar.is-danger .navbar-start > a.navbar-item.is-active,
+ .navbar.is-danger .navbar-start > a.navbar-item:focus,
+ .navbar.is-danger .navbar-start > a.navbar-item:hover {
+ background-color: #ef2e55;
+ color: #fff;
+ }
+ .navbar.is-danger .navbar-end .navbar-link::after,
+ .navbar.is-danger .navbar-start .navbar-link::after {
+ border-color: #fff;
+ }
+ .navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link,
+ .navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link,
+ .navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link {
+ background-color: #ef2e55;
+ color: #fff;
+ }
+ .navbar.is-danger .navbar-dropdown a.navbar-item.is-active {
+ background-color: #f14668;
+ color: #fff;
+ }
+}
+.navbar > .container {
+ align-items: stretch;
+ display: flex;
+ min-height: 3.25rem;
+ width: 100%;
+}
+.navbar.has-shadow {
+ box-shadow: 0 2px 0 0 #f5f5f5;
+}
+.navbar.is-fixed-bottom,
+.navbar.is-fixed-top {
+ left: 0;
+ position: fixed;
+ right: 0;
+ z-index: 30;
+}
+.navbar.is-fixed-bottom {
+ bottom: 0;
+}
+.navbar.is-fixed-bottom.has-shadow {
+ box-shadow: 0 -2px 0 0 #f5f5f5;
+}
+.navbar.is-fixed-top {
+ top: 0;
+}
+body.has-navbar-fixed-top,
+html.has-navbar-fixed-top {
+ padding-top: 3.25rem;
+}
+body.has-navbar-fixed-bottom,
+html.has-navbar-fixed-bottom {
+ padding-bottom: 3.25rem;
+}
+.navbar-brand,
+.navbar-tabs {
+ align-items: stretch;
+ display: flex;
+ flex-shrink: 0;
+ min-height: 3.25rem;
+}
+.navbar-brand a.navbar-item:focus,
+.navbar-brand a.navbar-item:hover {
+ background-color: transparent;
+}
+.navbar-tabs {
+ -webkit-overflow-scrolling: touch;
+ max-width: 100vw;
+ overflow-x: auto;
+ overflow-y: hidden;
+}
+.navbar-burger {
+ color: #4a4a4a;
+ cursor: pointer;
+ display: block;
+ height: 3.25rem;
+ position: relative;
+ width: 3.25rem;
+ margin-left: auto;
+}
+.navbar-burger span {
+ background-color: currentColor;
+ display: block;
+ height: 1px;
+ left: calc(50% - 8px);
+ position: absolute;
+ transform-origin: center;
+ transition-duration: 86ms;
+ transition-property: background-color, opacity, transform;
+ transition-timing-function: ease-out;
+ width: 16px;
+}
+.navbar-burger span:nth-child(1) {
+ top: calc(50% - 6px);
+}
+.navbar-burger span:nth-child(2) {
+ top: calc(50% - 1px);
+}
+.navbar-burger span:nth-child(3) {
+ top: calc(50% + 4px);
+}
+.navbar-burger:hover {
+ background-color: rgba(0, 0, 0, 0.05);
+}
+.navbar-burger.is-active span:nth-child(1) {
+ transform: translateY(5px) rotate(45deg);
+}
+.navbar-burger.is-active span:nth-child(2) {
+ opacity: 0;
+}
+.navbar-burger.is-active span:nth-child(3) {
+ transform: translateY(-5px) rotate(-45deg);
+}
+.navbar-menu {
+ display: none;
+}
+.navbar-item,
+.navbar-link {
+ color: #4a4a4a;
+ display: block;
+ line-height: 1.5;
+ padding: 0.5rem 0.75rem;
+ position: relative;
+}
+.navbar-item .icon:only-child,
+.navbar-link .icon:only-child {
+ margin-left: -0.25rem;
+ margin-right: -0.25rem;
+}
+.navbar-link,
+a.navbar-item {
+ cursor: pointer;
+}
+.navbar-link.is-active,
+.navbar-link:focus,
+.navbar-link:focus-within,
+.navbar-link:hover,
+a.navbar-item.is-active,
+a.navbar-item:focus,
+a.navbar-item:focus-within,
+a.navbar-item:hover {
+ background-color: #fafafa;
+ color: #485fc7;
+}
+.navbar-item {
+ flex-grow: 0;
+ flex-shrink: 0;
+}
+.navbar-item img {
+ max-height: 1.75rem;
+}
+.navbar-item.has-dropdown {
+ padding: 0;
+}
+.navbar-item.is-expanded {
+ flex-grow: 1;
+ flex-shrink: 1;
+}
+.navbar-item.is-tab {
+ border-bottom: 1px solid transparent;
+ min-height: 3.25rem;
+ padding-bottom: calc(0.5rem - 1px);
+}
+.navbar-item.is-tab:focus,
+.navbar-item.is-tab:hover {
+ background-color: transparent;
+ border-bottom-color: #485fc7;
+}
+.navbar-item.is-tab.is-active {
+ background-color: transparent;
+ border-bottom-color: #485fc7;
+ border-bottom-style: solid;
+ border-bottom-width: 3px;
+ color: #485fc7;
+ padding-bottom: calc(0.5rem - 3px);
+}
+.navbar-content {
+ flex-grow: 1;
+ flex-shrink: 1;
+}
+.navbar-link:not(.is-arrowless) {
+ padding-right: 2.5em;
+}
+.navbar-link:not(.is-arrowless)::after {
+ border-color: #485fc7;
+ margin-top: -0.375em;
+ right: 1.125em;
+}
+.navbar-dropdown {
+ font-size: 0.875rem;
+ padding-bottom: 0.5rem;
+ padding-top: 0.5rem;
+}
+.navbar-dropdown .navbar-item {
+ padding-left: 1.5rem;
+ padding-right: 1.5rem;
+}
+.navbar-divider {
+ background-color: #f5f5f5;
+ border: none;
+ display: none;
+ height: 2px;
+ margin: 0.5rem 0;
+}
+@media screen and (max-width: 1023px) {
+ .navbar > .container {
+ display: block;
+ }
+ .navbar-brand .navbar-item,
+ .navbar-tabs .navbar-item {
+ align-items: center;
+ display: flex;
+ }
+ .navbar-link::after {
+ display: none;
+ }
+ .navbar-menu {
+ background-color: #fff;
+ box-shadow: 0 8px 16px rgba(10, 10, 10, 0.1);
+ padding: 0.5rem 0;
+ }
+ .navbar-menu.is-active {
+ display: block;
+ }
+ .navbar.is-fixed-bottom-touch,
+ .navbar.is-fixed-top-touch {
+ left: 0;
+ position: fixed;
+ right: 0;
+ z-index: 30;
+ }
+ .navbar.is-fixed-bottom-touch {
+ bottom: 0;
+ }
+ .navbar.is-fixed-bottom-touch.has-shadow {
+ box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1);
+ }
+ .navbar.is-fixed-top-touch {
+ top: 0;
+ }
+ .navbar.is-fixed-top .navbar-menu,
+ .navbar.is-fixed-top-touch .navbar-menu {
+ -webkit-overflow-scrolling: touch;
+ max-height: calc(100vh - 3.25rem);
+ overflow: auto;
+ }
+ body.has-navbar-fixed-top-touch,
+ html.has-navbar-fixed-top-touch {
+ padding-top: 3.25rem;
+ }
+ body.has-navbar-fixed-bottom-touch,
+ html.has-navbar-fixed-bottom-touch {
+ padding-bottom: 3.25rem;
+ }
+}
+@media screen and (min-width: 1024px) {
+ .navbar,
+ .navbar-end,
+ .navbar-menu,
+ .navbar-start {
+ align-items: stretch;
+ display: flex;
+ }
+ .navbar {
+ min-height: 3.25rem;
+ }
+ .navbar.is-spaced {
+ padding: 1rem 2rem;
+ }
+ .navbar.is-spaced .navbar-end,
+ .navbar.is-spaced .navbar-start {
+ align-items: center;
+ }
+ .navbar.is-spaced .navbar-link,
+ .navbar.is-spaced a.navbar-item {
+ border-radius: 4px;
+ }
+ .navbar.is-transparent .navbar-link.is-active,
+ .navbar.is-transparent .navbar-link:focus,
+ .navbar.is-transparent .navbar-link:hover,
+ .navbar.is-transparent a.navbar-item.is-active,
+ .navbar.is-transparent a.navbar-item:focus,
+ .navbar.is-transparent a.navbar-item:hover {
+ background-color: transparent !important;
+ }
+ .navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link,
+ .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus .navbar-link,
+ .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus-within .navbar-link,
+ .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link {
+ background-color: transparent !important;
+ }
+ .navbar.is-transparent .navbar-dropdown a.navbar-item:focus,
+ .navbar.is-transparent .navbar-dropdown a.navbar-item:hover {
+ background-color: #f5f5f5;
+ color: #0a0a0a;
+ }
+ .navbar.is-transparent .navbar-dropdown a.navbar-item.is-active {
+ background-color: #f5f5f5;
+ color: #485fc7;
+ }
+ .navbar-burger {
+ display: none;
+ }
+ .navbar-item,
+ .navbar-link {
+ align-items: center;
+ display: flex;
+ }
+ .navbar-item.has-dropdown {
+ align-items: stretch;
+ }
+ .navbar-item.has-dropdown-up .navbar-link::after {
+ transform: rotate(135deg) translate(0.25em, -0.25em);
+ }
+ .navbar-item.has-dropdown-up .navbar-dropdown {
+ border-bottom: 2px solid #dbdbdb;
+ border-radius: 6px 6px 0 0;
+ border-top: none;
+ bottom: 100%;
+ box-shadow: 0 -8px 8px rgba(10, 10, 10, 0.1);
+ top: auto;
+ }
+ .navbar-item.is-active .navbar-dropdown,
+ .navbar-item.is-hoverable:focus .navbar-dropdown,
+ .navbar-item.is-hoverable:focus-within .navbar-dropdown,
+ .navbar-item.is-hoverable:hover .navbar-dropdown {
+ display: block;
+ }
+ .navbar-item.is-active .navbar-dropdown.is-boxed,
+ .navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed,
+ .navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed,
+ .navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed,
+ .navbar.is-spaced .navbar-item.is-active .navbar-dropdown,
+ .navbar.is-spaced .navbar-item.is-hoverable:focus .navbar-dropdown,
+ .navbar.is-spaced .navbar-item.is-hoverable:focus-within .navbar-dropdown,
+ .navbar.is-spaced .navbar-item.is-hoverable:hover .navbar-dropdown {
+ opacity: 1;
+ pointer-events: auto;
+ transform: translateY(0);
+ }
+ .navbar-menu {
+ flex-grow: 1;
+ flex-shrink: 0;
+ }
+ .navbar-start {
+ justify-content: flex-start;
+ margin-right: auto;
+ }
+ .navbar-end {
+ justify-content: flex-end;
+ margin-left: auto;
+ }
+ .navbar-dropdown {
+ background-color: #fff;
+ border-bottom-left-radius: 6px;
+ border-bottom-right-radius: 6px;
+ border-top: 2px solid #dbdbdb;
+ box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1);
+ display: none;
+ font-size: 0.875rem;
+ left: 0;
+ min-width: 100%;
+ position: absolute;
+ top: 100%;
+ z-index: 20;
+ }
+ .navbar-dropdown .navbar-item {
+ padding: 0.375rem 1rem;
+ white-space: nowrap;
+ }
+ .navbar-dropdown a.navbar-item {
+ padding-right: 3rem;
+ }
+ .navbar-dropdown a.navbar-item:focus,
+ .navbar-dropdown a.navbar-item:hover {
+ background-color: #f5f5f5;
+ color: #0a0a0a;
+ }
+ .navbar-dropdown a.navbar-item.is-active {
+ background-color: #f5f5f5;
+ color: #485fc7;
+ }
+ .navbar-dropdown.is-boxed,
+ .navbar.is-spaced .navbar-dropdown {
+ border-radius: 6px;
+ border-top: none;
+ box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1);
+ display: block;
+ opacity: 0;
+ pointer-events: none;
+ top: calc(100% + (-4px));
+ transform: translateY(-5px);
+ transition-duration: 86ms;
+ transition-property: opacity, transform;
+ }
+ .navbar-dropdown.is-right {
+ left: auto;
+ right: 0;
+ }
+ .navbar-divider {
+ display: block;
+ }
+ .container > .navbar .navbar-brand,
+ .navbar > .container .navbar-brand {
+ margin-left: -0.75rem;
+ }
+ .container > .navbar .navbar-menu,
+ .navbar > .container .navbar-menu {
+ margin-right: -0.75rem;
+ }
+ .navbar.is-fixed-bottom-desktop,
+ .navbar.is-fixed-top-desktop {
+ left: 0;
+ position: fixed;
+ right: 0;
+ z-index: 30;
+ }
+ .navbar.is-fixed-bottom-desktop {
+ bottom: 0;
+ }
+ .navbar.is-fixed-bottom-desktop.has-shadow {
+ box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1);
+ }
+ .navbar.is-fixed-top-desktop {
+ top: 0;
+ }
+ body.has-navbar-fixed-top-desktop,
+ html.has-navbar-fixed-top-desktop {
+ padding-top: 3.25rem;
+ }
+ body.has-navbar-fixed-bottom-desktop,
+ html.has-navbar-fixed-bottom-desktop {
+ padding-bottom: 3.25rem;
+ }
+ body.has-spaced-navbar-fixed-top,
+ html.has-spaced-navbar-fixed-top {
+ padding-top: 5.25rem;
+ }
+ body.has-spaced-navbar-fixed-bottom,
+ html.has-spaced-navbar-fixed-bottom {
+ padding-bottom: 5.25rem;
+ }
+ .navbar-link.is-active,
+ a.navbar-item.is-active {
+ color: #0a0a0a;
+ }
+ .navbar-link.is-active:not(:focus):not(:hover),
+ a.navbar-item.is-active:not(:focus):not(:hover) {
+ background-color: transparent;
+ }
+ .navbar-item.has-dropdown.is-active .navbar-link,
+ .navbar-item.has-dropdown:focus .navbar-link,
+ .navbar-item.has-dropdown:hover .navbar-link {
+ background-color: #fafafa;
+ }
+}
+.hero.is-fullheight-with-navbar {
+ min-height: calc(100vh - 3.25rem);
+}
+.pagination {
+ font-size: 1rem;
+ margin: -0.25rem;
+}
+.pagination.is-small {
+ font-size: 0.75rem;
+}
+.pagination.is-medium {
+ font-size: 1.25rem;
+}
+.pagination.is-large {
+ font-size: 1.5rem;
+}
+.pagination.is-rounded .pagination-next,
+.pagination.is-rounded .pagination-previous {
+ padding-left: 1em;
+ padding-right: 1em;
+ border-radius: 9999px;
+}
+.pagination.is-rounded .pagination-link {
+ border-radius: 9999px;
+}
+.pagination,
+.pagination-list {
+ align-items: center;
+ display: flex;
+ justify-content: center;
+ text-align: center;
+}
+.pagination-ellipsis,
+.pagination-link,
+.pagination-next,
+.pagination-previous {
+ font-size: 1em;
+ justify-content: center;
+ margin: 0.25rem;
+ padding-left: 0.5em;
+ padding-right: 0.5em;
+ text-align: center;
+}
+.pagination-link,
+.pagination-next,
+.pagination-previous {
+ border-color: #dbdbdb;
+ color: #363636;
+ min-width: 2.5em;
+}
+.pagination-link:hover,
+.pagination-next:hover,
+.pagination-previous:hover {
+ border-color: #b5b5b5;
+ color: #363636;
+}
+.pagination-link:focus,
+.pagination-next:focus,
+.pagination-previous:focus {
+ border-color: #485fc7;
+}
+.pagination-link:active,
+.pagination-next:active,
+.pagination-previous:active {
+ box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2);
+}
+.pagination-link[disabled],
+.pagination-next[disabled],
+.pagination-previous[disabled] {
+ background-color: #dbdbdb;
+ border-color: #dbdbdb;
+ box-shadow: none;
+ color: #7a7a7a;
+ opacity: 0.5;
+}
+.pagination-next,
+.pagination-previous {
+ padding-left: 0.75em;
+ padding-right: 0.75em;
+ white-space: nowrap;
+}
+.pagination-link.is-current {
+ background-color: #485fc7;
+ border-color: #485fc7;
+ color: #fff;
+}
+.pagination-ellipsis {
+ color: #b5b5b5;
+ pointer-events: none;
+}
+.pagination-list {
+ flex-wrap: wrap;
+}
+.pagination-list li {
+ list-style: none;
+}
+@media screen and (max-width: 768px) {
+ .pagination {
+ flex-wrap: wrap;
+ }
+ .pagination-next,
+ .pagination-previous {
+ flex-grow: 1;
+ flex-shrink: 1;
+ }
+ .pagination-list li {
+ flex-grow: 1;
+ flex-shrink: 1;
+ }
+}
+@media screen and (min-width: 769px), print {
+ .pagination-list {
+ flex-grow: 1;
+ flex-shrink: 1;
+ justify-content: flex-start;
+ order: 1;
+ }
+ .pagination-ellipsis,
+ .pagination-link,
+ .pagination-next,
+ .pagination-previous {
+ margin-bottom: 0;
+ margin-top: 0;
+ }
+ .pagination-previous {
+ order: 2;
+ }
+ .pagination-next {
+ order: 3;
+ }
+ .pagination {
+ justify-content: space-between;
+ margin-bottom: 0;
+ margin-top: 0;
+ }
+ .pagination.is-centered .pagination-previous {
+ order: 1;
+ }
+ .pagination.is-centered .pagination-list {
+ justify-content: center;
+ order: 2;
+ }
+ .pagination.is-centered .pagination-next {
+ order: 3;
+ }
+ .pagination.is-right .pagination-previous {
+ order: 1;
+ }
+ .pagination.is-right .pagination-next {
+ order: 2;
+ }
+ .pagination.is-right .pagination-list {
+ justify-content: flex-end;
+ order: 3;
+ }
+}
+.panel {
+ border-radius: 6px;
+ box-shadow: 0 0.5em 1em -0.125em rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.02);
+ font-size: 1rem;
+}
+.panel:not(:last-child) {
+ margin-bottom: 1.5rem;
+}
+.panel.is-white .panel-heading {
+ background-color: #fff;
+ color: #0a0a0a;
+}
+.panel.is-white .panel-tabs a.is-active {
+ border-bottom-color: #fff;
+}
+.panel.is-white .panel-block.is-active .panel-icon {
+ color: #fff;
+}
+.panel.is-black .panel-heading {
+ background-color: #0a0a0a;
+ color: #fff;
+}
+.panel.is-black .panel-tabs a.is-active {
+ border-bottom-color: #0a0a0a;
+}
+.panel.is-black .panel-block.is-active .panel-icon {
+ color: #0a0a0a;
+}
+.panel.is-light .panel-heading {
+ background-color: #f5f5f5;
+ color: rgba(0, 0, 0, 0.7);
+}
+.panel.is-light .panel-tabs a.is-active {
+ border-bottom-color: #f5f5f5;
+}
+.panel.is-light .panel-block.is-active .panel-icon {
+ color: #f5f5f5;
+}
+.panel.is-dark .panel-heading {
+ background-color: #363636;
+ color: #fff;
+}
+.panel.is-dark .panel-tabs a.is-active {
+ border-bottom-color: #363636;
+}
+.panel.is-dark .panel-block.is-active .panel-icon {
+ color: #363636;
+}
+.panel.is-primary .panel-heading {
+ background-color: #00d1b2;
+ color: #fff;
+}
+.panel.is-primary .panel-tabs a.is-active {
+ border-bottom-color: #00d1b2;
+}
+.panel.is-primary .panel-block.is-active .panel-icon {
+ color: #00d1b2;
+}
+.panel.is-link .panel-heading {
+ background-color: #485fc7;
+ color: #fff;
+}
+.panel.is-link .panel-tabs a.is-active {
+ border-bottom-color: #485fc7;
+}
+.panel.is-link .panel-block.is-active .panel-icon {
+ color: #485fc7;
+}
+.panel.is-info .panel-heading {
+ background-color: #3e8ed0;
+ color: #fff;
+}
+.panel.is-info .panel-tabs a.is-active {
+ border-bottom-color: #3e8ed0;
+}
+.panel.is-info .panel-block.is-active .panel-icon {
+ color: #3e8ed0;
+}
+.panel.is-success .panel-heading {
+ background-color: #48c78e;
+ color: #fff;
+}
+.panel.is-success .panel-tabs a.is-active {
+ border-bottom-color: #48c78e;
+}
+.panel.is-success .panel-block.is-active .panel-icon {
+ color: #48c78e;
+}
+.panel.is-warning .panel-heading {
+ background-color: #ffe08a;
+ color: rgba(0, 0, 0, 0.7);
+}
+.panel.is-warning .panel-tabs a.is-active {
+ border-bottom-color: #ffe08a;
+}
+.panel.is-warning .panel-block.is-active .panel-icon {
+ color: #ffe08a;
+}
+.panel.is-danger .panel-heading {
+ background-color: #f14668;
+ color: #fff;
+}
+.panel.is-danger .panel-tabs a.is-active {
+ border-bottom-color: #f14668;
+}
+.panel.is-danger .panel-block.is-active .panel-icon {
+ color: #f14668;
+}
+.panel-block:not(:last-child),
+.panel-tabs:not(:last-child) {
+ border-bottom: 1px solid #ededed;
+}
+.panel-heading {
+ background-color: #ededed;
+ border-radius: 6px 6px 0 0;
+ color: #363636;
+ font-size: 1.25em;
+ font-weight: 700;
+ line-height: 1.25;
+ padding: 0.75em 1em;
+}
+.panel-tabs {
+ align-items: flex-end;
+ display: flex;
+ font-size: 0.875em;
+ justify-content: center;
+}
+.panel-tabs a {
+ border-bottom: 1px solid #dbdbdb;
+ margin-bottom: -1px;
+ padding: 0.5em;
+}
+.panel-tabs a.is-active {
+ border-bottom-color: #4a4a4a;
+ color: #363636;
+}
+.panel-list a {
+ color: #4a4a4a;
+}
+.panel-list a:hover {
+ color: #485fc7;
+}
+.panel-block {
+ align-items: center;
+ color: #363636;
+ display: flex;
+ justify-content: flex-start;
+ padding: 0.5em 0.75em;
+}
+.panel-block input[type='checkbox'] {
+ margin-right: 0.75em;
+}
+.panel-block > .control {
+ flex-grow: 1;
+ flex-shrink: 1;
+ width: 100%;
+}
+.panel-block.is-wrapped {
+ flex-wrap: wrap;
+}
+.panel-block.is-active {
+ border-left-color: #485fc7;
+ color: #363636;
+}
+.panel-block.is-active .panel-icon {
+ color: #485fc7;
+}
+.panel-block:last-child {
+ border-bottom-left-radius: 6px;
+ border-bottom-right-radius: 6px;
+}
+a.panel-block,
+label.panel-block {
+ cursor: pointer;
+}
+a.panel-block:hover,
+label.panel-block:hover {
+ background-color: #f5f5f5;
+}
+.panel-icon {
+ display: inline-block;
+ font-size: 14px;
+ height: 1em;
+ line-height: 1em;
+ text-align: center;
+ vertical-align: top;
+ width: 1em;
+ color: #7a7a7a;
+ margin-right: 0.75em;
+}
+.panel-icon .fa {
+ font-size: inherit;
+ line-height: inherit;
+}
+.tabs {
+ -webkit-overflow-scrolling: touch;
+ align-items: stretch;
+ display: flex;
+ font-size: 1rem;
+ justify-content: space-between;
+ overflow: hidden;
+ overflow-x: auto;
+ white-space: nowrap;
+}
+.tabs a {
+ align-items: center;
+ border-bottom-color: #dbdbdb;
+ border-bottom-style: solid;
+ border-bottom-width: 1px;
+ color: #4a4a4a;
+ display: flex;
+ justify-content: center;
+ margin-bottom: -1px;
+ padding: 0.5em 1em;
+ vertical-align: top;
+}
+.tabs a:hover {
+ border-bottom-color: #363636;
+ color: #363636;
+}
+.tabs li {
+ display: block;
+}
+.tabs li.is-active a {
+ border-bottom-color: #485fc7;
+ color: #485fc7;
+}
+.tabs ul {
+ align-items: center;
+ border-bottom-color: #dbdbdb;
+ border-bottom-style: solid;
+ border-bottom-width: 1px;
+ display: flex;
+ flex-grow: 1;
+ flex-shrink: 0;
+ justify-content: flex-start;
+}
+.tabs ul.is-left {
+ padding-right: 0.75em;
+}
+.tabs ul.is-center {
+ flex: none;
+ justify-content: center;
+ padding-left: 0.75em;
+ padding-right: 0.75em;
+}
+.tabs ul.is-right {
+ justify-content: flex-end;
+ padding-left: 0.75em;
+}
+.tabs .icon:first-child {
+ margin-right: 0.5em;
+}
+.tabs .icon:last-child {
+ margin-left: 0.5em;
+}
+.tabs.is-centered ul {
+ justify-content: center;
+}
+.tabs.is-right ul {
+ justify-content: flex-end;
+}
+.tabs.is-boxed a {
+ border: 1px solid transparent;
+ border-radius: 4px 4px 0 0;
+}
+.tabs.is-boxed a:hover {
+ background-color: #f5f5f5;
+ border-bottom-color: #dbdbdb;
+}
+.tabs.is-boxed li.is-active a {
+ background-color: #fff;
+ border-color: #dbdbdb;
+ border-bottom-color: transparent !important;
+}
+.tabs.is-fullwidth li {
+ flex-grow: 1;
+ flex-shrink: 0;
+}
+.tabs.is-toggle a {
+ border-color: #dbdbdb;
+ border-style: solid;
+ border-width: 1px;
+ margin-bottom: 0;
+ position: relative;
+}
+.tabs.is-toggle a:hover {
+ background-color: #f5f5f5;
+ border-color: #b5b5b5;
+ z-index: 2;
+}
+.tabs.is-toggle li + li {
+ margin-left: -1px;
+}
+.tabs.is-toggle li:first-child a {
+ border-top-left-radius: 4px;
+ border-bottom-left-radius: 4px;
+}
+.tabs.is-toggle li:last-child a {
+ border-top-right-radius: 4px;
+ border-bottom-right-radius: 4px;
+}
+.tabs.is-toggle li.is-active a {
+ background-color: #485fc7;
+ border-color: #485fc7;
+ color: #fff;
+ z-index: 1;
+}
+.tabs.is-toggle ul {
+ border-bottom: none;
+}
+.tabs.is-toggle.is-toggle-rounded li:first-child a {
+ border-bottom-left-radius: 9999px;
+ border-top-left-radius: 9999px;
+ padding-left: 1.25em;
+}
+.tabs.is-toggle.is-toggle-rounded li:last-child a {
+ border-bottom-right-radius: 9999px;
+ border-top-right-radius: 9999px;
+ padding-right: 1.25em;
+}
+.tabs.is-small {
+ font-size: 0.75rem;
+}
+.tabs.is-medium {
+ font-size: 1.25rem;
+}
+.tabs.is-large {
+ font-size: 1.5rem;
+}
+.column {
+ display: block;
+ flex-basis: 0;
+ flex-grow: 1;
+ flex-shrink: 1;
+ padding: 0.75rem;
+}
+.columns.is-mobile > .column.is-narrow {
+ flex: none;
+ width: unset;
+}
+.columns.is-mobile > .column.is-full {
+ flex: none;
+ width: 100%;
+}
+.columns.is-mobile > .column.is-three-quarters {
+ flex: none;
+ width: 75%;
+}
+.columns.is-mobile > .column.is-two-thirds {
+ flex: none;
+ width: 66.6666%;
+}
+.columns.is-mobile > .column.is-half {
+ flex: none;
+ width: 50%;
+}
+.columns.is-mobile > .column.is-one-third {
+ flex: none;
+ width: 33.3333%;
+}
+.columns.is-mobile > .column.is-one-quarter {
+ flex: none;
+ width: 25%;
+}
+.columns.is-mobile > .column.is-one-fifth {
+ flex: none;
+ width: 20%;
+}
+.columns.is-mobile > .column.is-two-fifths {
+ flex: none;
+ width: 40%;
+}
+.columns.is-mobile > .column.is-three-fifths {
+ flex: none;
+ width: 60%;
+}
+.columns.is-mobile > .column.is-four-fifths {
+ flex: none;
+ width: 80%;
+}
+.columns.is-mobile > .column.is-offset-three-quarters {
+ margin-left: 75%;
+}
+.columns.is-mobile > .column.is-offset-two-thirds {
+ margin-left: 66.6666%;
+}
+.columns.is-mobile > .column.is-offset-half {
+ margin-left: 50%;
+}
+.columns.is-mobile > .column.is-offset-one-third {
+ margin-left: 33.3333%;
+}
+.columns.is-mobile > .column.is-offset-one-quarter {
+ margin-left: 25%;
+}
+.columns.is-mobile > .column.is-offset-one-fifth {
+ margin-left: 20%;
+}
+.columns.is-mobile > .column.is-offset-two-fifths {
+ margin-left: 40%;
+}
+.columns.is-mobile > .column.is-offset-three-fifths {
+ margin-left: 60%;
+}
+.columns.is-mobile > .column.is-offset-four-fifths {
+ margin-left: 80%;
+}
+.columns.is-mobile > .column.is-0 {
+ flex: none;
+ width: 0%;
+}
+.columns.is-mobile > .column.is-offset-0 {
+ margin-left: 0;
+}
+.columns.is-mobile > .column.is-1 {
+ flex: none;
+ width: 8.33333%;
+}
+.columns.is-mobile > .column.is-offset-1 {
+ margin-left: 8.33333%;
+}
+.columns.is-mobile > .column.is-2 {
+ flex: none;
+ width: 16.66667%;
+}
+.columns.is-mobile > .column.is-offset-2 {
+ margin-left: 16.66667%;
+}
+.columns.is-mobile > .column.is-3 {
+ flex: none;
+ width: 25%;
+}
+.columns.is-mobile > .column.is-offset-3 {
+ margin-left: 25%;
+}
+.columns.is-mobile > .column.is-4 {
+ flex: none;
+ width: 33.33333%;
+}
+.columns.is-mobile > .column.is-offset-4 {
+ margin-left: 33.33333%;
+}
+.columns.is-mobile > .column.is-5 {
+ flex: none;
+ width: 41.66667%;
+}
+.columns.is-mobile > .column.is-offset-5 {
+ margin-left: 41.66667%;
+}
+.columns.is-mobile > .column.is-6 {
+ flex: none;
+ width: 50%;
+}
+.columns.is-mobile > .column.is-offset-6 {
+ margin-left: 50%;
+}
+.columns.is-mobile > .column.is-7 {
+ flex: none;
+ width: 58.33333%;
+}
+.columns.is-mobile > .column.is-offset-7 {
+ margin-left: 58.33333%;
+}
+.columns.is-mobile > .column.is-8 {
+ flex: none;
+ width: 66.66667%;
+}
+.columns.is-mobile > .column.is-offset-8 {
+ margin-left: 66.66667%;
+}
+.columns.is-mobile > .column.is-9 {
+ flex: none;
+ width: 75%;
+}
+.columns.is-mobile > .column.is-offset-9 {
+ margin-left: 75%;
+}
+.columns.is-mobile > .column.is-10 {
+ flex: none;
+ width: 83.33333%;
+}
+.columns.is-mobile > .column.is-offset-10 {
+ margin-left: 83.33333%;
+}
+.columns.is-mobile > .column.is-11 {
+ flex: none;
+ width: 91.66667%;
+}
+.columns.is-mobile > .column.is-offset-11 {
+ margin-left: 91.66667%;
+}
+.columns.is-mobile > .column.is-12 {
+ flex: none;
+ width: 100%;
+}
+.columns.is-mobile > .column.is-offset-12 {
+ margin-left: 100%;
+}
+@media screen and (max-width: 768px) {
+ .column.is-narrow-mobile {
+ flex: none;
+ width: unset;
+ }
+ .column.is-full-mobile {
+ flex: none;
+ width: 100%;
+ }
+ .column.is-three-quarters-mobile {
+ flex: none;
+ width: 75%;
+ }
+ .column.is-two-thirds-mobile {
+ flex: none;
+ width: 66.6666%;
+ }
+ .column.is-half-mobile {
+ flex: none;
+ width: 50%;
+ }
+ .column.is-one-third-mobile {
+ flex: none;
+ width: 33.3333%;
+ }
+ .column.is-one-quarter-mobile {
+ flex: none;
+ width: 25%;
+ }
+ .column.is-one-fifth-mobile {
+ flex: none;
+ width: 20%;
+ }
+ .column.is-two-fifths-mobile {
+ flex: none;
+ width: 40%;
+ }
+ .column.is-three-fifths-mobile {
+ flex: none;
+ width: 60%;
+ }
+ .column.is-four-fifths-mobile {
+ flex: none;
+ width: 80%;
+ }
+ .column.is-offset-three-quarters-mobile {
+ margin-left: 75%;
+ }
+ .column.is-offset-two-thirds-mobile {
+ margin-left: 66.6666%;
+ }
+ .column.is-offset-half-mobile {
+ margin-left: 50%;
+ }
+ .column.is-offset-one-third-mobile {
+ margin-left: 33.3333%;
+ }
+ .column.is-offset-one-quarter-mobile {
+ margin-left: 25%;
+ }
+ .column.is-offset-one-fifth-mobile {
+ margin-left: 20%;
+ }
+ .column.is-offset-two-fifths-mobile {
+ margin-left: 40%;
+ }
+ .column.is-offset-three-fifths-mobile {
+ margin-left: 60%;
+ }
+ .column.is-offset-four-fifths-mobile {
+ margin-left: 80%;
+ }
+ .column.is-0-mobile {
+ flex: none;
+ width: 0%;
+ }
+ .column.is-offset-0-mobile {
+ margin-left: 0;
+ }
+ .column.is-1-mobile {
+ flex: none;
+ width: 8.33333%;
+ }
+ .column.is-offset-1-mobile {
+ margin-left: 8.33333%;
+ }
+ .column.is-2-mobile {
+ flex: none;
+ width: 16.66667%;
+ }
+ .column.is-offset-2-mobile {
+ margin-left: 16.66667%;
+ }
+ .column.is-3-mobile {
+ flex: none;
+ width: 25%;
+ }
+ .column.is-offset-3-mobile {
+ margin-left: 25%;
+ }
+ .column.is-4-mobile {
+ flex: none;
+ width: 33.33333%;
+ }
+ .column.is-offset-4-mobile {
+ margin-left: 33.33333%;
+ }
+ .column.is-5-mobile {
+ flex: none;
+ width: 41.66667%;
+ }
+ .column.is-offset-5-mobile {
+ margin-left: 41.66667%;
+ }
+ .column.is-6-mobile {
+ flex: none;
+ width: 50%;
+ }
+ .column.is-offset-6-mobile {
+ margin-left: 50%;
+ }
+ .column.is-7-mobile {
+ flex: none;
+ width: 58.33333%;
+ }
+ .column.is-offset-7-mobile {
+ margin-left: 58.33333%;
+ }
+ .column.is-8-mobile {
+ flex: none;
+ width: 66.66667%;
+ }
+ .column.is-offset-8-mobile {
+ margin-left: 66.66667%;
+ }
+ .column.is-9-mobile {
+ flex: none;
+ width: 75%;
+ }
+ .column.is-offset-9-mobile {
+ margin-left: 75%;
+ }
+ .column.is-10-mobile {
+ flex: none;
+ width: 83.33333%;
+ }
+ .column.is-offset-10-mobile {
+ margin-left: 83.33333%;
+ }
+ .column.is-11-mobile {
+ flex: none;
+ width: 91.66667%;
+ }
+ .column.is-offset-11-mobile {
+ margin-left: 91.66667%;
+ }
+ .column.is-12-mobile {
+ flex: none;
+ width: 100%;
+ }
+ .column.is-offset-12-mobile {
+ margin-left: 100%;
+ }
+}
+@media screen and (min-width: 769px), print {
+ .column.is-narrow,
+ .column.is-narrow-tablet {
+ flex: none;
+ width: unset;
+ }
+ .column.is-full,
+ .column.is-full-tablet {
+ flex: none;
+ width: 100%;
+ }
+ .column.is-three-quarters,
+ .column.is-three-quarters-tablet {
+ flex: none;
+ width: 75%;
+ }
+ .column.is-two-thirds,
+ .column.is-two-thirds-tablet {
+ flex: none;
+ width: 66.6666%;
+ }
+ .column.is-half,
+ .column.is-half-tablet {
+ flex: none;
+ width: 50%;
+ }
+ .column.is-one-third,
+ .column.is-one-third-tablet {
+ flex: none;
+ width: 33.3333%;
+ }
+ .column.is-one-quarter,
+ .column.is-one-quarter-tablet {
+ flex: none;
+ width: 25%;
+ }
+ .column.is-one-fifth,
+ .column.is-one-fifth-tablet {
+ flex: none;
+ width: 20%;
+ }
+ .column.is-two-fifths,
+ .column.is-two-fifths-tablet {
+ flex: none;
+ width: 40%;
+ }
+ .column.is-three-fifths,
+ .column.is-three-fifths-tablet {
+ flex: none;
+ width: 60%;
+ }
+ .column.is-four-fifths,
+ .column.is-four-fifths-tablet {
+ flex: none;
+ width: 80%;
+ }
+ .column.is-offset-three-quarters,
+ .column.is-offset-three-quarters-tablet {
+ margin-left: 75%;
+ }
+ .column.is-offset-two-thirds,
+ .column.is-offset-two-thirds-tablet {
+ margin-left: 66.6666%;
+ }
+ .column.is-offset-half,
+ .column.is-offset-half-tablet {
+ margin-left: 50%;
+ }
+ .column.is-offset-one-third,
+ .column.is-offset-one-third-tablet {
+ margin-left: 33.3333%;
+ }
+ .column.is-offset-one-quarter,
+ .column.is-offset-one-quarter-tablet {
+ margin-left: 25%;
+ }
+ .column.is-offset-one-fifth,
+ .column.is-offset-one-fifth-tablet {
+ margin-left: 20%;
+ }
+ .column.is-offset-two-fifths,
+ .column.is-offset-two-fifths-tablet {
+ margin-left: 40%;
+ }
+ .column.is-offset-three-fifths,
+ .column.is-offset-three-fifths-tablet {
+ margin-left: 60%;
+ }
+ .column.is-offset-four-fifths,
+ .column.is-offset-four-fifths-tablet {
+ margin-left: 80%;
+ }
+ .column.is-0,
+ .column.is-0-tablet {
+ flex: none;
+ width: 0%;
+ }
+ .column.is-offset-0,
+ .column.is-offset-0-tablet {
+ margin-left: 0;
+ }
+ .column.is-1,
+ .column.is-1-tablet {
+ flex: none;
+ width: 8.33333%;
+ }
+ .column.is-offset-1,
+ .column.is-offset-1-tablet {
+ margin-left: 8.33333%;
+ }
+ .column.is-2,
+ .column.is-2-tablet {
+ flex: none;
+ width: 16.66667%;
+ }
+ .column.is-offset-2,
+ .column.is-offset-2-tablet {
+ margin-left: 16.66667%;
+ }
+ .column.is-3,
+ .column.is-3-tablet {
+ flex: none;
+ width: 25%;
+ }
+ .column.is-offset-3,
+ .column.is-offset-3-tablet {
+ margin-left: 25%;
+ }
+ .column.is-4,
+ .column.is-4-tablet {
+ flex: none;
+ width: 33.33333%;
+ }
+ .column.is-offset-4,
+ .column.is-offset-4-tablet {
+ margin-left: 33.33333%;
+ }
+ .column.is-5,
+ .column.is-5-tablet {
+ flex: none;
+ width: 41.66667%;
+ }
+ .column.is-offset-5,
+ .column.is-offset-5-tablet {
+ margin-left: 41.66667%;
+ }
+ .column.is-6,
+ .column.is-6-tablet {
+ flex: none;
+ width: 50%;
+ }
+ .column.is-offset-6,
+ .column.is-offset-6-tablet {
+ margin-left: 50%;
+ }
+ .column.is-7,
+ .column.is-7-tablet {
+ flex: none;
+ width: 58.33333%;
+ }
+ .column.is-offset-7,
+ .column.is-offset-7-tablet {
+ margin-left: 58.33333%;
+ }
+ .column.is-8,
+ .column.is-8-tablet {
+ flex: none;
+ width: 66.66667%;
+ }
+ .column.is-offset-8,
+ .column.is-offset-8-tablet {
+ margin-left: 66.66667%;
+ }
+ .column.is-9,
+ .column.is-9-tablet {
+ flex: none;
+ width: 75%;
+ }
+ .column.is-offset-9,
+ .column.is-offset-9-tablet {
+ margin-left: 75%;
+ }
+ .column.is-10,
+ .column.is-10-tablet {
+ flex: none;
+ width: 83.33333%;
+ }
+ .column.is-offset-10,
+ .column.is-offset-10-tablet {
+ margin-left: 83.33333%;
+ }
+ .column.is-11,
+ .column.is-11-tablet {
+ flex: none;
+ width: 91.66667%;
+ }
+ .column.is-offset-11,
+ .column.is-offset-11-tablet {
+ margin-left: 91.66667%;
+ }
+ .column.is-12,
+ .column.is-12-tablet {
+ flex: none;
+ width: 100%;
+ }
+ .column.is-offset-12,
+ .column.is-offset-12-tablet {
+ margin-left: 100%;
+ }
+}
+@media screen and (max-width: 1023px) {
+ .column.is-narrow-touch {
+ flex: none;
+ width: unset;
+ }
+ .column.is-full-touch {
+ flex: none;
+ width: 100%;
+ }
+ .column.is-three-quarters-touch {
+ flex: none;
+ width: 75%;
+ }
+ .column.is-two-thirds-touch {
+ flex: none;
+ width: 66.6666%;
+ }
+ .column.is-half-touch {
+ flex: none;
+ width: 50%;
+ }
+ .column.is-one-third-touch {
+ flex: none;
+ width: 33.3333%;
+ }
+ .column.is-one-quarter-touch {
+ flex: none;
+ width: 25%;
+ }
+ .column.is-one-fifth-touch {
+ flex: none;
+ width: 20%;
+ }
+ .column.is-two-fifths-touch {
+ flex: none;
+ width: 40%;
+ }
+ .column.is-three-fifths-touch {
+ flex: none;
+ width: 60%;
+ }
+ .column.is-four-fifths-touch {
+ flex: none;
+ width: 80%;
+ }
+ .column.is-offset-three-quarters-touch {
+ margin-left: 75%;
+ }
+ .column.is-offset-two-thirds-touch {
+ margin-left: 66.6666%;
+ }
+ .column.is-offset-half-touch {
+ margin-left: 50%;
+ }
+ .column.is-offset-one-third-touch {
+ margin-left: 33.3333%;
+ }
+ .column.is-offset-one-quarter-touch {
+ margin-left: 25%;
+ }
+ .column.is-offset-one-fifth-touch {
+ margin-left: 20%;
+ }
+ .column.is-offset-two-fifths-touch {
+ margin-left: 40%;
+ }
+ .column.is-offset-three-fifths-touch {
+ margin-left: 60%;
+ }
+ .column.is-offset-four-fifths-touch {
+ margin-left: 80%;
+ }
+ .column.is-0-touch {
+ flex: none;
+ width: 0%;
+ }
+ .column.is-offset-0-touch {
+ margin-left: 0;
+ }
+ .column.is-1-touch {
+ flex: none;
+ width: 8.33333%;
+ }
+ .column.is-offset-1-touch {
+ margin-left: 8.33333%;
+ }
+ .column.is-2-touch {
+ flex: none;
+ width: 16.66667%;
+ }
+ .column.is-offset-2-touch {
+ margin-left: 16.66667%;
+ }
+ .column.is-3-touch {
+ flex: none;
+ width: 25%;
+ }
+ .column.is-offset-3-touch {
+ margin-left: 25%;
+ }
+ .column.is-4-touch {
+ flex: none;
+ width: 33.33333%;
+ }
+ .column.is-offset-4-touch {
+ margin-left: 33.33333%;
+ }
+ .column.is-5-touch {
+ flex: none;
+ width: 41.66667%;
+ }
+ .column.is-offset-5-touch {
+ margin-left: 41.66667%;
+ }
+ .column.is-6-touch {
+ flex: none;
+ width: 50%;
+ }
+ .column.is-offset-6-touch {
+ margin-left: 50%;
+ }
+ .column.is-7-touch {
+ flex: none;
+ width: 58.33333%;
+ }
+ .column.is-offset-7-touch {
+ margin-left: 58.33333%;
+ }
+ .column.is-8-touch {
+ flex: none;
+ width: 66.66667%;
+ }
+ .column.is-offset-8-touch {
+ margin-left: 66.66667%;
+ }
+ .column.is-9-touch {
+ flex: none;
+ width: 75%;
+ }
+ .column.is-offset-9-touch {
+ margin-left: 75%;
+ }
+ .column.is-10-touch {
+ flex: none;
+ width: 83.33333%;
+ }
+ .column.is-offset-10-touch {
+ margin-left: 83.33333%;
+ }
+ .column.is-11-touch {
+ flex: none;
+ width: 91.66667%;
+ }
+ .column.is-offset-11-touch {
+ margin-left: 91.66667%;
+ }
+ .column.is-12-touch {
+ flex: none;
+ width: 100%;
+ }
+ .column.is-offset-12-touch {
+ margin-left: 100%;
+ }
+}
+@media screen and (min-width: 1024px) {
+ .column.is-narrow-desktop {
+ flex: none;
+ width: unset;
+ }
+ .column.is-full-desktop {
+ flex: none;
+ width: 100%;
+ }
+ .column.is-three-quarters-desktop {
+ flex: none;
+ width: 75%;
+ }
+ .column.is-two-thirds-desktop {
+ flex: none;
+ width: 66.6666%;
+ }
+ .column.is-half-desktop {
+ flex: none;
+ width: 50%;
+ }
+ .column.is-one-third-desktop {
+ flex: none;
+ width: 33.3333%;
+ }
+ .column.is-one-quarter-desktop {
+ flex: none;
+ width: 25%;
+ }
+ .column.is-one-fifth-desktop {
+ flex: none;
+ width: 20%;
+ }
+ .column.is-two-fifths-desktop {
+ flex: none;
+ width: 40%;
+ }
+ .column.is-three-fifths-desktop {
+ flex: none;
+ width: 60%;
+ }
+ .column.is-four-fifths-desktop {
+ flex: none;
+ width: 80%;
+ }
+ .column.is-offset-three-quarters-desktop {
+ margin-left: 75%;
+ }
+ .column.is-offset-two-thirds-desktop {
+ margin-left: 66.6666%;
+ }
+ .column.is-offset-half-desktop {
+ margin-left: 50%;
+ }
+ .column.is-offset-one-third-desktop {
+ margin-left: 33.3333%;
+ }
+ .column.is-offset-one-quarter-desktop {
+ margin-left: 25%;
+ }
+ .column.is-offset-one-fifth-desktop {
+ margin-left: 20%;
+ }
+ .column.is-offset-two-fifths-desktop {
+ margin-left: 40%;
+ }
+ .column.is-offset-three-fifths-desktop {
+ margin-left: 60%;
+ }
+ .column.is-offset-four-fifths-desktop {
+ margin-left: 80%;
+ }
+ .column.is-0-desktop {
+ flex: none;
+ width: 0%;
+ }
+ .column.is-offset-0-desktop {
+ margin-left: 0;
+ }
+ .column.is-1-desktop {
+ flex: none;
+ width: 8.33333%;
+ }
+ .column.is-offset-1-desktop {
+ margin-left: 8.33333%;
+ }
+ .column.is-2-desktop {
+ flex: none;
+ width: 16.66667%;
+ }
+ .column.is-offset-2-desktop {
+ margin-left: 16.66667%;
+ }
+ .column.is-3-desktop {
+ flex: none;
+ width: 25%;
+ }
+ .column.is-offset-3-desktop {
+ margin-left: 25%;
+ }
+ .column.is-4-desktop {
+ flex: none;
+ width: 33.33333%;
+ }
+ .column.is-offset-4-desktop {
+ margin-left: 33.33333%;
+ }
+ .column.is-5-desktop {
+ flex: none;
+ width: 41.66667%;
+ }
+ .column.is-offset-5-desktop {
+ margin-left: 41.66667%;
+ }
+ .column.is-6-desktop {
+ flex: none;
+ width: 50%;
+ }
+ .column.is-offset-6-desktop {
+ margin-left: 50%;
+ }
+ .column.is-7-desktop {
+ flex: none;
+ width: 58.33333%;
+ }
+ .column.is-offset-7-desktop {
+ margin-left: 58.33333%;
+ }
+ .column.is-8-desktop {
+ flex: none;
+ width: 66.66667%;
+ }
+ .column.is-offset-8-desktop {
+ margin-left: 66.66667%;
+ }
+ .column.is-9-desktop {
+ flex: none;
+ width: 75%;
+ }
+ .column.is-offset-9-desktop {
+ margin-left: 75%;
+ }
+ .column.is-10-desktop {
+ flex: none;
+ width: 83.33333%;
+ }
+ .column.is-offset-10-desktop {
+ margin-left: 83.33333%;
+ }
+ .column.is-11-desktop {
+ flex: none;
+ width: 91.66667%;
+ }
+ .column.is-offset-11-desktop {
+ margin-left: 91.66667%;
+ }
+ .column.is-12-desktop {
+ flex: none;
+ width: 100%;
+ }
+ .column.is-offset-12-desktop {
+ margin-left: 100%;
+ }
+}
+@media screen and (min-width: 1216px) {
+ .column.is-narrow-widescreen {
+ flex: none;
+ width: unset;
+ }
+ .column.is-full-widescreen {
+ flex: none;
+ width: 100%;
+ }
+ .column.is-three-quarters-widescreen {
+ flex: none;
+ width: 75%;
+ }
+ .column.is-two-thirds-widescreen {
+ flex: none;
+ width: 66.6666%;
+ }
+ .column.is-half-widescreen {
+ flex: none;
+ width: 50%;
+ }
+ .column.is-one-third-widescreen {
+ flex: none;
+ width: 33.3333%;
+ }
+ .column.is-one-quarter-widescreen {
+ flex: none;
+ width: 25%;
+ }
+ .column.is-one-fifth-widescreen {
+ flex: none;
+ width: 20%;
+ }
+ .column.is-two-fifths-widescreen {
+ flex: none;
+ width: 40%;
+ }
+ .column.is-three-fifths-widescreen {
+ flex: none;
+ width: 60%;
+ }
+ .column.is-four-fifths-widescreen {
+ flex: none;
+ width: 80%;
+ }
+ .column.is-offset-three-quarters-widescreen {
+ margin-left: 75%;
+ }
+ .column.is-offset-two-thirds-widescreen {
+ margin-left: 66.6666%;
+ }
+ .column.is-offset-half-widescreen {
+ margin-left: 50%;
+ }
+ .column.is-offset-one-third-widescreen {
+ margin-left: 33.3333%;
+ }
+ .column.is-offset-one-quarter-widescreen {
+ margin-left: 25%;
+ }
+ .column.is-offset-one-fifth-widescreen {
+ margin-left: 20%;
+ }
+ .column.is-offset-two-fifths-widescreen {
+ margin-left: 40%;
+ }
+ .column.is-offset-three-fifths-widescreen {
+ margin-left: 60%;
+ }
+ .column.is-offset-four-fifths-widescreen {
+ margin-left: 80%;
+ }
+ .column.is-0-widescreen {
+ flex: none;
+ width: 0%;
+ }
+ .column.is-offset-0-widescreen {
+ margin-left: 0;
+ }
+ .column.is-1-widescreen {
+ flex: none;
+ width: 8.33333%;
+ }
+ .column.is-offset-1-widescreen {
+ margin-left: 8.33333%;
+ }
+ .column.is-2-widescreen {
+ flex: none;
+ width: 16.66667%;
+ }
+ .column.is-offset-2-widescreen {
+ margin-left: 16.66667%;
+ }
+ .column.is-3-widescreen {
+ flex: none;
+ width: 25%;
+ }
+ .column.is-offset-3-widescreen {
+ margin-left: 25%;
+ }
+ .column.is-4-widescreen {
+ flex: none;
+ width: 33.33333%;
+ }
+ .column.is-offset-4-widescreen {
+ margin-left: 33.33333%;
+ }
+ .column.is-5-widescreen {
+ flex: none;
+ width: 41.66667%;
+ }
+ .column.is-offset-5-widescreen {
+ margin-left: 41.66667%;
+ }
+ .column.is-6-widescreen {
+ flex: none;
+ width: 50%;
+ }
+ .column.is-offset-6-widescreen {
+ margin-left: 50%;
+ }
+ .column.is-7-widescreen {
+ flex: none;
+ width: 58.33333%;
+ }
+ .column.is-offset-7-widescreen {
+ margin-left: 58.33333%;
+ }
+ .column.is-8-widescreen {
+ flex: none;
+ width: 66.66667%;
+ }
+ .column.is-offset-8-widescreen {
+ margin-left: 66.66667%;
+ }
+ .column.is-9-widescreen {
+ flex: none;
+ width: 75%;
+ }
+ .column.is-offset-9-widescreen {
+ margin-left: 75%;
+ }
+ .column.is-10-widescreen {
+ flex: none;
+ width: 83.33333%;
+ }
+ .column.is-offset-10-widescreen {
+ margin-left: 83.33333%;
+ }
+ .column.is-11-widescreen {
+ flex: none;
+ width: 91.66667%;
+ }
+ .column.is-offset-11-widescreen {
+ margin-left: 91.66667%;
+ }
+ .column.is-12-widescreen {
+ flex: none;
+ width: 100%;
+ }
+ .column.is-offset-12-widescreen {
+ margin-left: 100%;
+ }
+}
+@media screen and (min-width: 1408px) {
+ .column.is-narrow-fullhd {
+ flex: none;
+ width: unset;
+ }
+ .column.is-full-fullhd {
+ flex: none;
+ width: 100%;
+ }
+ .column.is-three-quarters-fullhd {
+ flex: none;
+ width: 75%;
+ }
+ .column.is-two-thirds-fullhd {
+ flex: none;
+ width: 66.6666%;
+ }
+ .column.is-half-fullhd {
+ flex: none;
+ width: 50%;
+ }
+ .column.is-one-third-fullhd {
+ flex: none;
+ width: 33.3333%;
+ }
+ .column.is-one-quarter-fullhd {
+ flex: none;
+ width: 25%;
+ }
+ .column.is-one-fifth-fullhd {
+ flex: none;
+ width: 20%;
+ }
+ .column.is-two-fifths-fullhd {
+ flex: none;
+ width: 40%;
+ }
+ .column.is-three-fifths-fullhd {
+ flex: none;
+ width: 60%;
+ }
+ .column.is-four-fifths-fullhd {
+ flex: none;
+ width: 80%;
+ }
+ .column.is-offset-three-quarters-fullhd {
+ margin-left: 75%;
+ }
+ .column.is-offset-two-thirds-fullhd {
+ margin-left: 66.6666%;
+ }
+ .column.is-offset-half-fullhd {
+ margin-left: 50%;
+ }
+ .column.is-offset-one-third-fullhd {
+ margin-left: 33.3333%;
+ }
+ .column.is-offset-one-quarter-fullhd {
+ margin-left: 25%;
+ }
+ .column.is-offset-one-fifth-fullhd {
+ margin-left: 20%;
+ }
+ .column.is-offset-two-fifths-fullhd {
+ margin-left: 40%;
+ }
+ .column.is-offset-three-fifths-fullhd {
+ margin-left: 60%;
+ }
+ .column.is-offset-four-fifths-fullhd {
+ margin-left: 80%;
+ }
+ .column.is-0-fullhd {
+ flex: none;
+ width: 0%;
+ }
+ .column.is-offset-0-fullhd {
+ margin-left: 0;
+ }
+ .column.is-1-fullhd {
+ flex: none;
+ width: 8.33333%;
+ }
+ .column.is-offset-1-fullhd {
+ margin-left: 8.33333%;
+ }
+ .column.is-2-fullhd {
+ flex: none;
+ width: 16.66667%;
+ }
+ .column.is-offset-2-fullhd {
+ margin-left: 16.66667%;
+ }
+ .column.is-3-fullhd {
+ flex: none;
+ width: 25%;
+ }
+ .column.is-offset-3-fullhd {
+ margin-left: 25%;
+ }
+ .column.is-4-fullhd {
+ flex: none;
+ width: 33.33333%;
+ }
+ .column.is-offset-4-fullhd {
+ margin-left: 33.33333%;
+ }
+ .column.is-5-fullhd {
+ flex: none;
+ width: 41.66667%;
+ }
+ .column.is-offset-5-fullhd {
+ margin-left: 41.66667%;
+ }
+ .column.is-6-fullhd {
+ flex: none;
+ width: 50%;
+ }
+ .column.is-offset-6-fullhd {
+ margin-left: 50%;
+ }
+ .column.is-7-fullhd {
+ flex: none;
+ width: 58.33333%;
+ }
+ .column.is-offset-7-fullhd {
+ margin-left: 58.33333%;
+ }
+ .column.is-8-fullhd {
+ flex: none;
+ width: 66.66667%;
+ }
+ .column.is-offset-8-fullhd {
+ margin-left: 66.66667%;
+ }
+ .column.is-9-fullhd {
+ flex: none;
+ width: 75%;
+ }
+ .column.is-offset-9-fullhd {
+ margin-left: 75%;
+ }
+ .column.is-10-fullhd {
+ flex: none;
+ width: 83.33333%;
+ }
+ .column.is-offset-10-fullhd {
+ margin-left: 83.33333%;
+ }
+ .column.is-11-fullhd {
+ flex: none;
+ width: 91.66667%;
+ }
+ .column.is-offset-11-fullhd {
+ margin-left: 91.66667%;
+ }
+ .column.is-12-fullhd {
+ flex: none;
+ width: 100%;
+ }
+ .column.is-offset-12-fullhd {
+ margin-left: 100%;
+ }
+}
+.columns {
+ margin-left: -0.75rem;
+ margin-right: -0.75rem;
+ margin-top: -0.75rem;
+}
+.columns:last-child {
+ margin-bottom: -0.75rem;
+}
+.columns:not(:last-child) {
+ margin-bottom: calc(1.5rem - 0.75rem);
+}
+.columns.is-centered {
+ justify-content: center;
+}
+.columns.is-gapless {
+ margin-left: 0;
+ margin-right: 0;
+ margin-top: 0;
+}
+.columns.is-gapless > .column {
+ margin: 0;
+ padding: 0 !important;
+}
+.columns.is-gapless:not(:last-child) {
+ margin-bottom: 1.5rem;
+}
+.columns.is-gapless:last-child {
+ margin-bottom: 0;
+}
+.columns.is-mobile {
+ display: flex;
+}
+.columns.is-multiline {
+ flex-wrap: wrap;
+}
+.columns.is-vcentered {
+ align-items: center;
+}
+@media screen and (min-width: 769px), print {
+ .columns:not(.is-desktop) {
+ display: flex;
+ }
+}
+@media screen and (min-width: 1024px) {
+ .columns.is-desktop {
+ display: flex;
+ }
+}
+.columns.is-variable {
+ --columnGap: 0.75rem;
+ margin-left: calc(-1 * var(--columnGap));
+ margin-right: calc(-1 * var(--columnGap));
+}
+.columns.is-variable > .column {
+ padding-left: var(--columnGap);
+ padding-right: var(--columnGap);
+}
+.columns.is-variable.is-0 {
+ --columnGap: 0rem;
+}
+@media screen and (max-width: 768px) {
+ .columns.is-variable.is-0-mobile {
+ --columnGap: 0rem;
+ }
+}
+@media screen and (min-width: 769px), print {
+ .columns.is-variable.is-0-tablet {
+ --columnGap: 0rem;
+ }
+}
+@media screen and (min-width: 769px) and (max-width: 1023px) {
+ .columns.is-variable.is-0-tablet-only {
+ --columnGap: 0rem;
+ }
+}
+@media screen and (max-width: 1023px) {
+ .columns.is-variable.is-0-touch {
+ --columnGap: 0rem;
+ }
+}
+@media screen and (min-width: 1024px) {
+ .columns.is-variable.is-0-desktop {
+ --columnGap: 0rem;
+ }
+}
+@media screen and (min-width: 1024px) and (max-width: 1215px) {
+ .columns.is-variable.is-0-desktop-only {
+ --columnGap: 0rem;
+ }
+}
+@media screen and (min-width: 1216px) {
+ .columns.is-variable.is-0-widescreen {
+ --columnGap: 0rem;
+ }
+}
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .columns.is-variable.is-0-widescreen-only {
+ --columnGap: 0rem;
+ }
+}
+@media screen and (min-width: 1408px) {
+ .columns.is-variable.is-0-fullhd {
+ --columnGap: 0rem;
+ }
+}
+.columns.is-variable.is-1 {
+ --columnGap: 0.25rem;
+}
+@media screen and (max-width: 768px) {
+ .columns.is-variable.is-1-mobile {
+ --columnGap: 0.25rem;
+ }
+}
+@media screen and (min-width: 769px), print {
+ .columns.is-variable.is-1-tablet {
+ --columnGap: 0.25rem;
+ }
+}
+@media screen and (min-width: 769px) and (max-width: 1023px) {
+ .columns.is-variable.is-1-tablet-only {
+ --columnGap: 0.25rem;
+ }
+}
+@media screen and (max-width: 1023px) {
+ .columns.is-variable.is-1-touch {
+ --columnGap: 0.25rem;
+ }
+}
+@media screen and (min-width: 1024px) {
+ .columns.is-variable.is-1-desktop {
+ --columnGap: 0.25rem;
+ }
+}
+@media screen and (min-width: 1024px) and (max-width: 1215px) {
+ .columns.is-variable.is-1-desktop-only {
+ --columnGap: 0.25rem;
+ }
+}
+@media screen and (min-width: 1216px) {
+ .columns.is-variable.is-1-widescreen {
+ --columnGap: 0.25rem;
+ }
+}
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .columns.is-variable.is-1-widescreen-only {
+ --columnGap: 0.25rem;
+ }
+}
+@media screen and (min-width: 1408px) {
+ .columns.is-variable.is-1-fullhd {
+ --columnGap: 0.25rem;
+ }
+}
+.columns.is-variable.is-2 {
+ --columnGap: 0.5rem;
+}
+@media screen and (max-width: 768px) {
+ .columns.is-variable.is-2-mobile {
+ --columnGap: 0.5rem;
+ }
+}
+@media screen and (min-width: 769px), print {
+ .columns.is-variable.is-2-tablet {
+ --columnGap: 0.5rem;
+ }
+}
+@media screen and (min-width: 769px) and (max-width: 1023px) {
+ .columns.is-variable.is-2-tablet-only {
+ --columnGap: 0.5rem;
+ }
+}
+@media screen and (max-width: 1023px) {
+ .columns.is-variable.is-2-touch {
+ --columnGap: 0.5rem;
+ }
+}
+@media screen and (min-width: 1024px) {
+ .columns.is-variable.is-2-desktop {
+ --columnGap: 0.5rem;
+ }
+}
+@media screen and (min-width: 1024px) and (max-width: 1215px) {
+ .columns.is-variable.is-2-desktop-only {
+ --columnGap: 0.5rem;
+ }
+}
+@media screen and (min-width: 1216px) {
+ .columns.is-variable.is-2-widescreen {
+ --columnGap: 0.5rem;
+ }
+}
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .columns.is-variable.is-2-widescreen-only {
+ --columnGap: 0.5rem;
+ }
+}
+@media screen and (min-width: 1408px) {
+ .columns.is-variable.is-2-fullhd {
+ --columnGap: 0.5rem;
+ }
+}
+.columns.is-variable.is-3 {
+ --columnGap: 0.75rem;
+}
+@media screen and (max-width: 768px) {
+ .columns.is-variable.is-3-mobile {
+ --columnGap: 0.75rem;
+ }
+}
+@media screen and (min-width: 769px), print {
+ .columns.is-variable.is-3-tablet {
+ --columnGap: 0.75rem;
+ }
+}
+@media screen and (min-width: 769px) and (max-width: 1023px) {
+ .columns.is-variable.is-3-tablet-only {
+ --columnGap: 0.75rem;
+ }
+}
+@media screen and (max-width: 1023px) {
+ .columns.is-variable.is-3-touch {
+ --columnGap: 0.75rem;
+ }
+}
+@media screen and (min-width: 1024px) {
+ .columns.is-variable.is-3-desktop {
+ --columnGap: 0.75rem;
+ }
+}
+@media screen and (min-width: 1024px) and (max-width: 1215px) {
+ .columns.is-variable.is-3-desktop-only {
+ --columnGap: 0.75rem;
+ }
+}
+@media screen and (min-width: 1216px) {
+ .columns.is-variable.is-3-widescreen {
+ --columnGap: 0.75rem;
+ }
+}
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .columns.is-variable.is-3-widescreen-only {
+ --columnGap: 0.75rem;
+ }
+}
+@media screen and (min-width: 1408px) {
+ .columns.is-variable.is-3-fullhd {
+ --columnGap: 0.75rem;
+ }
+}
+.columns.is-variable.is-4 {
+ --columnGap: 1rem;
+}
+@media screen and (max-width: 768px) {
+ .columns.is-variable.is-4-mobile {
+ --columnGap: 1rem;
+ }
+}
+@media screen and (min-width: 769px), print {
+ .columns.is-variable.is-4-tablet {
+ --columnGap: 1rem;
+ }
+}
+@media screen and (min-width: 769px) and (max-width: 1023px) {
+ .columns.is-variable.is-4-tablet-only {
+ --columnGap: 1rem;
+ }
+}
+@media screen and (max-width: 1023px) {
+ .columns.is-variable.is-4-touch {
+ --columnGap: 1rem;
+ }
+}
+@media screen and (min-width: 1024px) {
+ .columns.is-variable.is-4-desktop {
+ --columnGap: 1rem;
+ }
+}
+@media screen and (min-width: 1024px) and (max-width: 1215px) {
+ .columns.is-variable.is-4-desktop-only {
+ --columnGap: 1rem;
+ }
+}
+@media screen and (min-width: 1216px) {
+ .columns.is-variable.is-4-widescreen {
+ --columnGap: 1rem;
+ }
+}
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .columns.is-variable.is-4-widescreen-only {
+ --columnGap: 1rem;
+ }
+}
+@media screen and (min-width: 1408px) {
+ .columns.is-variable.is-4-fullhd {
+ --columnGap: 1rem;
+ }
+}
+.columns.is-variable.is-5 {
+ --columnGap: 1.25rem;
+}
+@media screen and (max-width: 768px) {
+ .columns.is-variable.is-5-mobile {
+ --columnGap: 1.25rem;
+ }
+}
+@media screen and (min-width: 769px), print {
+ .columns.is-variable.is-5-tablet {
+ --columnGap: 1.25rem;
+ }
+}
+@media screen and (min-width: 769px) and (max-width: 1023px) {
+ .columns.is-variable.is-5-tablet-only {
+ --columnGap: 1.25rem;
+ }
+}
+@media screen and (max-width: 1023px) {
+ .columns.is-variable.is-5-touch {
+ --columnGap: 1.25rem;
+ }
+}
+@media screen and (min-width: 1024px) {
+ .columns.is-variable.is-5-desktop {
+ --columnGap: 1.25rem;
+ }
+}
+@media screen and (min-width: 1024px) and (max-width: 1215px) {
+ .columns.is-variable.is-5-desktop-only {
+ --columnGap: 1.25rem;
+ }
+}
+@media screen and (min-width: 1216px) {
+ .columns.is-variable.is-5-widescreen {
+ --columnGap: 1.25rem;
+ }
+}
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .columns.is-variable.is-5-widescreen-only {
+ --columnGap: 1.25rem;
+ }
+}
+@media screen and (min-width: 1408px) {
+ .columns.is-variable.is-5-fullhd {
+ --columnGap: 1.25rem;
+ }
+}
+.columns.is-variable.is-6 {
+ --columnGap: 1.5rem;
+}
+@media screen and (max-width: 768px) {
+ .columns.is-variable.is-6-mobile {
+ --columnGap: 1.5rem;
+ }
+}
+@media screen and (min-width: 769px), print {
+ .columns.is-variable.is-6-tablet {
+ --columnGap: 1.5rem;
+ }
+}
+@media screen and (min-width: 769px) and (max-width: 1023px) {
+ .columns.is-variable.is-6-tablet-only {
+ --columnGap: 1.5rem;
+ }
+}
+@media screen and (max-width: 1023px) {
+ .columns.is-variable.is-6-touch {
+ --columnGap: 1.5rem;
+ }
+}
+@media screen and (min-width: 1024px) {
+ .columns.is-variable.is-6-desktop {
+ --columnGap: 1.5rem;
+ }
+}
+@media screen and (min-width: 1024px) and (max-width: 1215px) {
+ .columns.is-variable.is-6-desktop-only {
+ --columnGap: 1.5rem;
+ }
+}
+@media screen and (min-width: 1216px) {
+ .columns.is-variable.is-6-widescreen {
+ --columnGap: 1.5rem;
+ }
+}
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .columns.is-variable.is-6-widescreen-only {
+ --columnGap: 1.5rem;
+ }
+}
+@media screen and (min-width: 1408px) {
+ .columns.is-variable.is-6-fullhd {
+ --columnGap: 1.5rem;
+ }
+}
+.columns.is-variable.is-7 {
+ --columnGap: 1.75rem;
+}
+@media screen and (max-width: 768px) {
+ .columns.is-variable.is-7-mobile {
+ --columnGap: 1.75rem;
+ }
+}
+@media screen and (min-width: 769px), print {
+ .columns.is-variable.is-7-tablet {
+ --columnGap: 1.75rem;
+ }
+}
+@media screen and (min-width: 769px) and (max-width: 1023px) {
+ .columns.is-variable.is-7-tablet-only {
+ --columnGap: 1.75rem;
+ }
+}
+@media screen and (max-width: 1023px) {
+ .columns.is-variable.is-7-touch {
+ --columnGap: 1.75rem;
+ }
+}
+@media screen and (min-width: 1024px) {
+ .columns.is-variable.is-7-desktop {
+ --columnGap: 1.75rem;
+ }
+}
+@media screen and (min-width: 1024px) and (max-width: 1215px) {
+ .columns.is-variable.is-7-desktop-only {
+ --columnGap: 1.75rem;
+ }
+}
+@media screen and (min-width: 1216px) {
+ .columns.is-variable.is-7-widescreen {
+ --columnGap: 1.75rem;
+ }
+}
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .columns.is-variable.is-7-widescreen-only {
+ --columnGap: 1.75rem;
+ }
+}
+@media screen and (min-width: 1408px) {
+ .columns.is-variable.is-7-fullhd {
+ --columnGap: 1.75rem;
+ }
+}
+.columns.is-variable.is-8 {
+ --columnGap: 2rem;
+}
+@media screen and (max-width: 768px) {
+ .columns.is-variable.is-8-mobile {
+ --columnGap: 2rem;
+ }
+}
+@media screen and (min-width: 769px), print {
+ .columns.is-variable.is-8-tablet {
+ --columnGap: 2rem;
+ }
+}
+@media screen and (min-width: 769px) and (max-width: 1023px) {
+ .columns.is-variable.is-8-tablet-only {
+ --columnGap: 2rem;
+ }
+}
+@media screen and (max-width: 1023px) {
+ .columns.is-variable.is-8-touch {
+ --columnGap: 2rem;
+ }
+}
+@media screen and (min-width: 1024px) {
+ .columns.is-variable.is-8-desktop {
+ --columnGap: 2rem;
+ }
+}
+@media screen and (min-width: 1024px) and (max-width: 1215px) {
+ .columns.is-variable.is-8-desktop-only {
+ --columnGap: 2rem;
+ }
+}
+@media screen and (min-width: 1216px) {
+ .columns.is-variable.is-8-widescreen {
+ --columnGap: 2rem;
+ }
+}
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .columns.is-variable.is-8-widescreen-only {
+ --columnGap: 2rem;
+ }
+}
+@media screen and (min-width: 1408px) {
+ .columns.is-variable.is-8-fullhd {
+ --columnGap: 2rem;
+ }
+}
+.tile {
+ align-items: stretch;
+ display: block;
+ flex-basis: 0;
+ flex-grow: 1;
+ flex-shrink: 1;
+ min-height: -webkit-min-content;
+ min-height: -moz-min-content;
+ min-height: min-content;
+}
+.tile.is-ancestor {
+ margin-left: -0.75rem;
+ margin-right: -0.75rem;
+ margin-top: -0.75rem;
+}
+.tile.is-ancestor:last-child {
+ margin-bottom: -0.75rem;
+}
+.tile.is-ancestor:not(:last-child) {
+ margin-bottom: 0.75rem;
+}
+.tile.is-child {
+ margin: 0 !important;
+}
+.tile.is-parent {
+ padding: 0.75rem;
+}
+.tile.is-vertical {
+ flex-direction: column;
+}
+.tile.is-vertical > .tile.is-child:not(:last-child) {
+ margin-bottom: 1.5rem !important;
+}
+@media screen and (min-width: 769px), print {
+ .tile:not(.is-child) {
+ display: flex;
+ }
+ .tile.is-1 {
+ flex: none;
+ width: 8.33333%;
+ }
+ .tile.is-2 {
+ flex: none;
+ width: 16.66667%;
+ }
+ .tile.is-3 {
+ flex: none;
+ width: 25%;
+ }
+ .tile.is-4 {
+ flex: none;
+ width: 33.33333%;
+ }
+ .tile.is-5 {
+ flex: none;
+ width: 41.66667%;
+ }
+ .tile.is-6 {
+ flex: none;
+ width: 50%;
+ }
+ .tile.is-7 {
+ flex: none;
+ width: 58.33333%;
+ }
+ .tile.is-8 {
+ flex: none;
+ width: 66.66667%;
+ }
+ .tile.is-9 {
+ flex: none;
+ width: 75%;
+ }
+ .tile.is-10 {
+ flex: none;
+ width: 83.33333%;
+ }
+ .tile.is-11 {
+ flex: none;
+ width: 91.66667%;
+ }
+ .tile.is-12 {
+ flex: none;
+ width: 100%;
+ }
+}
+.has-text-white {
+ color: #fff !important;
+}
+a.has-text-white:focus,
+a.has-text-white:hover {
+ color: #e6e6e6 !important;
+}
+.has-background-white {
+ background-color: #fff !important;
+}
+.has-text-black {
+ color: #0a0a0a !important;
+}
+a.has-text-black:focus,
+a.has-text-black:hover {
+ color: #000 !important;
+}
+.has-background-black {
+ background-color: #0a0a0a !important;
+}
+.has-text-light {
+ color: #f5f5f5 !important;
+}
+a.has-text-light:focus,
+a.has-text-light:hover {
+ color: #dbdbdb !important;
+}
+.has-background-light {
+ background-color: #f5f5f5 !important;
+}
+.has-text-dark {
+ color: #363636 !important;
+}
+a.has-text-dark:focus,
+a.has-text-dark:hover {
+ color: #1c1c1c !important;
+}
+.has-background-dark {
+ background-color: #363636 !important;
+}
+.has-text-primary {
+ color: #00d1b2 !important;
+}
+a.has-text-primary:focus,
+a.has-text-primary:hover {
+ color: #009e86 !important;
+}
+.has-background-primary {
+ background-color: #00d1b2 !important;
+}
+.has-text-primary-light {
+ color: #ebfffc !important;
+}
+a.has-text-primary-light:focus,
+a.has-text-primary-light:hover {
+ color: #b8fff4 !important;
+}
+.has-background-primary-light {
+ background-color: #ebfffc !important;
+}
+.has-text-primary-dark {
+ color: #00947e !important;
+}
+a.has-text-primary-dark:focus,
+a.has-text-primary-dark:hover {
+ color: #00c7a9 !important;
+}
+.has-background-primary-dark {
+ background-color: #00947e !important;
+}
+.has-text-link {
+ color: #485fc7 !important;
+}
+a.has-text-link:focus,
+a.has-text-link:hover {
+ color: #3449a8 !important;
+}
+.has-background-link {
+ background-color: #485fc7 !important;
+}
+.has-text-link-light {
+ color: #eff1fa !important;
+}
+a.has-text-link-light:focus,
+a.has-text-link-light:hover {
+ color: #c8cfee !important;
+}
+.has-background-link-light {
+ background-color: #eff1fa !important;
+}
+.has-text-link-dark {
+ color: #3850b7 !important;
+}
+a.has-text-link-dark:focus,
+a.has-text-link-dark:hover {
+ color: #576dcb !important;
+}
+.has-background-link-dark {
+ background-color: #3850b7 !important;
+}
+.has-text-info {
+ color: #3e8ed0 !important;
+}
+a.has-text-info:focus,
+a.has-text-info:hover {
+ color: #2b74b1 !important;
+}
+.has-background-info {
+ background-color: #3e8ed0 !important;
+}
+.has-text-info-light {
+ color: #eff5fb !important;
+}
+a.has-text-info-light:focus,
+a.has-text-info-light:hover {
+ color: #c6ddf1 !important;
+}
+.has-background-info-light {
+ background-color: #eff5fb !important;
+}
+.has-text-info-dark {
+ color: #296fa8 !important;
+}
+a.has-text-info-dark:focus,
+a.has-text-info-dark:hover {
+ color: #368ace !important;
+}
+.has-background-info-dark {
+ background-color: #296fa8 !important;
+}
+.has-text-success {
+ color: #48c78e !important;
+}
+a.has-text-success:focus,
+a.has-text-success:hover {
+ color: #34a873 !important;
+}
+.has-background-success {
+ background-color: #48c78e !important;
+}
+.has-text-success-light {
+ color: #effaf5 !important;
+}
+a.has-text-success-light:focus,
+a.has-text-success-light:hover {
+ color: #c8eedd !important;
+}
+.has-background-success-light {
+ background-color: #effaf5 !important;
+}
+.has-text-success-dark {
+ color: #257953 !important;
+}
+a.has-text-success-dark:focus,
+a.has-text-success-dark:hover {
+ color: #31a06e !important;
+}
+.has-background-success-dark {
+ background-color: #257953 !important;
+}
+.has-text-warning {
+ color: #ffe08a !important;
+}
+a.has-text-warning:focus,
+a.has-text-warning:hover {
+ color: #ffd257 !important;
+}
+.has-background-warning {
+ background-color: #ffe08a !important;
+}
+.has-text-warning-light {
+ color: #fffaeb !important;
+}
+a.has-text-warning-light:focus,
+a.has-text-warning-light:hover {
+ color: #ffecb8 !important;
+}
+.has-background-warning-light {
+ background-color: #fffaeb !important;
+}
+.has-text-warning-dark {
+ color: #946c00 !important;
+}
+a.has-text-warning-dark:focus,
+a.has-text-warning-dark:hover {
+ color: #c79200 !important;
+}
+.has-background-warning-dark {
+ background-color: #946c00 !important;
+}
+.has-text-danger {
+ color: #f14668 !important;
+}
+a.has-text-danger:focus,
+a.has-text-danger:hover {
+ color: #ee1742 !important;
+}
+.has-background-danger {
+ background-color: #f14668 !important;
+}
+.has-text-danger-light {
+ color: #feecf0 !important;
+}
+a.has-text-danger-light:focus,
+a.has-text-danger-light:hover {
+ color: #fabdc9 !important;
+}
+.has-background-danger-light {
+ background-color: #feecf0 !important;
+}
+.has-text-danger-dark {
+ color: #cc0f35 !important;
+}
+a.has-text-danger-dark:focus,
+a.has-text-danger-dark:hover {
+ color: #ee2049 !important;
+}
+.has-background-danger-dark {
+ background-color: #cc0f35 !important;
+}
+.has-text-black-bis {
+ color: #121212 !important;
+}
+.has-background-black-bis {
+ background-color: #121212 !important;
+}
+.has-text-black-ter {
+ color: #242424 !important;
+}
+.has-background-black-ter {
+ background-color: #242424 !important;
+}
+.has-text-grey-darker {
+ color: #363636 !important;
+}
+.has-background-grey-darker {
+ background-color: #363636 !important;
+}
+.has-text-grey-dark {
+ color: #4a4a4a !important;
+}
+.has-background-grey-dark {
+ background-color: #4a4a4a !important;
+}
+.has-text-grey {
+ color: #7a7a7a !important;
+}
+.has-background-grey {
+ background-color: #7a7a7a !important;
+}
+.has-text-grey-light {
+ color: #b5b5b5 !important;
+}
+.has-background-grey-light {
+ background-color: #b5b5b5 !important;
+}
+.has-text-grey-lighter {
+ color: #dbdbdb !important;
+}
+.has-background-grey-lighter {
+ background-color: #dbdbdb !important;
+}
+.has-text-white-ter {
+ color: #f5f5f5 !important;
+}
+.has-background-white-ter {
+ background-color: #f5f5f5 !important;
+}
+.has-text-white-bis {
+ color: #fafafa !important;
+}
+.has-background-white-bis {
+ background-color: #fafafa !important;
+}
+.is-flex-direction-row {
+ flex-direction: row !important;
+}
+.is-flex-direction-row-reverse {
+ flex-direction: row-reverse !important;
+}
+.is-flex-direction-column {
+ flex-direction: column !important;
+}
+.is-flex-direction-column-reverse {
+ flex-direction: column-reverse !important;
+}
+.is-flex-wrap-nowrap {
+ flex-wrap: nowrap !important;
+}
+.is-flex-wrap-wrap {
+ flex-wrap: wrap !important;
+}
+.is-flex-wrap-wrap-reverse {
+ flex-wrap: wrap-reverse !important;
+}
+.is-justify-content-flex-start {
+ justify-content: flex-start !important;
+}
+.is-justify-content-flex-end {
+ justify-content: flex-end !important;
+}
+.is-justify-content-center {
+ justify-content: center !important;
+}
+.is-justify-content-space-between {
+ justify-content: space-between !important;
+}
+.is-justify-content-space-around {
+ justify-content: space-around !important;
+}
+.is-justify-content-space-evenly {
+ justify-content: space-evenly !important;
+}
+.is-justify-content-start {
+ justify-content: start !important;
+}
+.is-justify-content-end {
+ justify-content: end !important;
+}
+.is-justify-content-left {
+ justify-content: left !important;
+}
+.is-justify-content-right {
+ justify-content: right !important;
+}
+.is-align-content-flex-start {
+ align-content: flex-start !important;
+}
+.is-align-content-flex-end {
+ align-content: flex-end !important;
+}
+.is-align-content-center {
+ align-content: center !important;
+}
+.is-align-content-space-between {
+ align-content: space-between !important;
+}
+.is-align-content-space-around {
+ align-content: space-around !important;
+}
+.is-align-content-space-evenly {
+ align-content: space-evenly !important;
+}
+.is-align-content-stretch {
+ align-content: stretch !important;
+}
+.is-align-content-start {
+ align-content: start !important;
+}
+.is-align-content-end {
+ align-content: end !important;
+}
+.is-align-content-baseline {
+ align-content: baseline !important;
+}
+.is-align-items-stretch {
+ align-items: stretch !important;
+}
+.is-align-items-flex-start {
+ align-items: flex-start !important;
+}
+.is-align-items-flex-end {
+ align-items: flex-end !important;
+}
+.is-align-items-center {
+ align-items: center !important;
+}
+.is-align-items-baseline {
+ align-items: baseline !important;
+}
+.is-align-items-start {
+ align-items: start !important;
+}
+.is-align-items-end {
+ align-items: end !important;
+}
+.is-align-items-self-start {
+ align-items: self-start !important;
+}
+.is-align-items-self-end {
+ align-items: self-end !important;
+}
+.is-align-self-auto {
+ align-self: auto !important;
+}
+.is-align-self-flex-start {
+ align-self: flex-start !important;
+}
+.is-align-self-flex-end {
+ align-self: flex-end !important;
+}
+.is-align-self-center {
+ align-self: center !important;
+}
+.is-align-self-baseline {
+ align-self: baseline !important;
+}
+.is-align-self-stretch {
+ align-self: stretch !important;
+}
+.is-flex-grow-0 {
+ flex-grow: 0 !important;
+}
+.is-flex-grow-1 {
+ flex-grow: 1 !important;
+}
+.is-flex-grow-2 {
+ flex-grow: 2 !important;
+}
+.is-flex-grow-3 {
+ flex-grow: 3 !important;
+}
+.is-flex-grow-4 {
+ flex-grow: 4 !important;
+}
+.is-flex-grow-5 {
+ flex-grow: 5 !important;
+}
+.is-flex-shrink-0 {
+ flex-shrink: 0 !important;
+}
+.is-flex-shrink-1 {
+ flex-shrink: 1 !important;
+}
+.is-flex-shrink-2 {
+ flex-shrink: 2 !important;
+}
+.is-flex-shrink-3 {
+ flex-shrink: 3 !important;
+}
+.is-flex-shrink-4 {
+ flex-shrink: 4 !important;
+}
+.is-flex-shrink-5 {
+ flex-shrink: 5 !important;
+}
+.is-clearfix::after {
+ clear: both;
+ content: ' ';
+ display: table;
+}
+.is-pulled-left {
+ float: left !important;
+}
+.is-pulled-right {
+ float: right !important;
+}
+.is-radiusless {
+ border-radius: 0 !important;
+}
+.is-shadowless {
+ box-shadow: none !important;
+}
+.is-clickable {
+ cursor: pointer !important;
+ pointer-events: all !important;
+}
+.is-clipped {
+ overflow: hidden !important;
+}
+.is-relative {
+ position: relative !important;
+}
+.is-marginless {
+ margin: 0 !important;
+}
+.is-paddingless {
+ padding: 0 !important;
+}
+.m-0 {
+ margin: 0 !important;
+}
+.mt-0 {
+ margin-top: 0 !important;
+}
+.mr-0 {
+ margin-right: 0 !important;
+}
+.mb-0 {
+ margin-bottom: 0 !important;
+}
+.ml-0 {
+ margin-left: 0 !important;
+}
+.mx-0 {
+ margin-left: 0 !important;
+ margin-right: 0 !important;
+}
+.my-0 {
+ margin-top: 0 !important;
+ margin-bottom: 0 !important;
+}
+.m-1 {
+ margin: 0.25rem !important;
+}
+.mt-1 {
+ margin-top: 0.25rem !important;
+}
+.mr-1 {
+ margin-right: 0.25rem !important;
+}
+.mb-1 {
+ margin-bottom: 0.25rem !important;
+}
+.ml-1 {
+ margin-left: 0.25rem !important;
+}
+.mx-1 {
+ margin-left: 0.25rem !important;
+ margin-right: 0.25rem !important;
+}
+.my-1 {
+ margin-top: 0.25rem !important;
+ margin-bottom: 0.25rem !important;
+}
+.m-2 {
+ margin: 0.5rem !important;
+}
+.mt-2 {
+ margin-top: 0.5rem !important;
+}
+.mr-2 {
+ margin-right: 0.5rem !important;
+}
+.mb-2 {
+ margin-bottom: 0.5rem !important;
+}
+.ml-2 {
+ margin-left: 0.5rem !important;
+}
+.mx-2 {
+ margin-left: 0.5rem !important;
+ margin-right: 0.5rem !important;
+}
+.my-2 {
+ margin-top: 0.5rem !important;
+ margin-bottom: 0.5rem !important;
+}
+.m-3 {
+ margin: 0.75rem !important;
+}
+.mt-3 {
+ margin-top: 0.75rem !important;
+}
+.mr-3 {
+ margin-right: 0.75rem !important;
+}
+.mb-3 {
+ margin-bottom: 0.75rem !important;
+}
+.ml-3 {
+ margin-left: 0.75rem !important;
+}
+.mx-3 {
+ margin-left: 0.75rem !important;
+ margin-right: 0.75rem !important;
+}
+.my-3 {
+ margin-top: 0.75rem !important;
+ margin-bottom: 0.75rem !important;
+}
+.m-4 {
+ margin: 1rem !important;
+}
+.mt-4 {
+ margin-top: 1rem !important;
+}
+.mr-4 {
+ margin-right: 1rem !important;
+}
+.mb-4 {
+ margin-bottom: 1rem !important;
+}
+.ml-4 {
+ margin-left: 1rem !important;
+}
+.mx-4 {
+ margin-left: 1rem !important;
+ margin-right: 1rem !important;
+}
+.my-4 {
+ margin-top: 1rem !important;
+ margin-bottom: 1rem !important;
+}
+.m-5 {
+ margin: 1.5rem !important;
+}
+.mt-5 {
+ margin-top: 1.5rem !important;
+}
+.mr-5 {
+ margin-right: 1.5rem !important;
+}
+.mb-5 {
+ margin-bottom: 1.5rem !important;
+}
+.ml-5 {
+ margin-left: 1.5rem !important;
+}
+.mx-5 {
+ margin-left: 1.5rem !important;
+ margin-right: 1.5rem !important;
+}
+.my-5 {
+ margin-top: 1.5rem !important;
+ margin-bottom: 1.5rem !important;
+}
+.m-6 {
+ margin: 3rem !important;
+}
+.mt-6 {
+ margin-top: 3rem !important;
+}
+.mr-6 {
+ margin-right: 3rem !important;
+}
+.mb-6 {
+ margin-bottom: 3rem !important;
+}
+.ml-6 {
+ margin-left: 3rem !important;
+}
+.mx-6 {
+ margin-left: 3rem !important;
+ margin-right: 3rem !important;
+}
+.my-6 {
+ margin-top: 3rem !important;
+ margin-bottom: 3rem !important;
+}
+.m-auto {
+ margin: auto !important;
+}
+.mt-auto {
+ margin-top: auto !important;
+}
+.mr-auto {
+ margin-right: auto !important;
+}
+.mb-auto {
+ margin-bottom: auto !important;
+}
+.ml-auto {
+ margin-left: auto !important;
+}
+.mx-auto {
+ margin-left: auto !important;
+ margin-right: auto !important;
+}
+.my-auto {
+ margin-top: auto !important;
+ margin-bottom: auto !important;
+}
+.p-0 {
+ padding: 0 !important;
+}
+.pt-0 {
+ padding-top: 0 !important;
+}
+.pr-0 {
+ padding-right: 0 !important;
+}
+.pb-0 {
+ padding-bottom: 0 !important;
+}
+.pl-0 {
+ padding-left: 0 !important;
+}
+.px-0 {
+ padding-left: 0 !important;
+ padding-right: 0 !important;
+}
+.py-0 {
+ padding-top: 0 !important;
+ padding-bottom: 0 !important;
+}
+.p-1 {
+ padding: 0.25rem !important;
+}
+.pt-1 {
+ padding-top: 0.25rem !important;
+}
+.pr-1 {
+ padding-right: 0.25rem !important;
+}
+.pb-1 {
+ padding-bottom: 0.25rem !important;
+}
+.pl-1 {
+ padding-left: 0.25rem !important;
+}
+.px-1 {
+ padding-left: 0.25rem !important;
+ padding-right: 0.25rem !important;
+}
+.py-1 {
+ padding-top: 0.25rem !important;
+ padding-bottom: 0.25rem !important;
+}
+.p-2 {
+ padding: 0.5rem !important;
+}
+.pt-2 {
+ padding-top: 0.5rem !important;
+}
+.pr-2 {
+ padding-right: 0.5rem !important;
+}
+.pb-2 {
+ padding-bottom: 0.5rem !important;
+}
+.pl-2 {
+ padding-left: 0.5rem !important;
+}
+.px-2 {
+ padding-left: 0.5rem !important;
+ padding-right: 0.5rem !important;
+}
+.py-2 {
+ padding-top: 0.5rem !important;
+ padding-bottom: 0.5rem !important;
+}
+.p-3 {
+ padding: 0.75rem !important;
+}
+.pt-3 {
+ padding-top: 0.75rem !important;
+}
+.pr-3 {
+ padding-right: 0.75rem !important;
+}
+.pb-3 {
+ padding-bottom: 0.75rem !important;
+}
+.pl-3 {
+ padding-left: 0.75rem !important;
+}
+.px-3 {
+ padding-left: 0.75rem !important;
+ padding-right: 0.75rem !important;
+}
+.py-3 {
+ padding-top: 0.75rem !important;
+ padding-bottom: 0.75rem !important;
+}
+.p-4 {
+ padding: 1rem !important;
+}
+.pt-4 {
+ padding-top: 1rem !important;
+}
+.pr-4 {
+ padding-right: 1rem !important;
+}
+.pb-4 {
+ padding-bottom: 1rem !important;
+}
+.pl-4 {
+ padding-left: 1rem !important;
+}
+.px-4 {
+ padding-left: 1rem !important;
+ padding-right: 1rem !important;
+}
+.py-4 {
+ padding-top: 1rem !important;
+ padding-bottom: 1rem !important;
+}
+.p-5 {
+ padding: 1.5rem !important;
+}
+.pt-5 {
+ padding-top: 1.5rem !important;
+}
+.pr-5 {
+ padding-right: 1.5rem !important;
+}
+.pb-5 {
+ padding-bottom: 1.5rem !important;
+}
+.pl-5 {
+ padding-left: 1.5rem !important;
+}
+.px-5 {
+ padding-left: 1.5rem !important;
+ padding-right: 1.5rem !important;
+}
+.py-5 {
+ padding-top: 1.5rem !important;
+ padding-bottom: 1.5rem !important;
+}
+.p-6 {
+ padding: 3rem !important;
+}
+.pt-6 {
+ padding-top: 3rem !important;
+}
+.pr-6 {
+ padding-right: 3rem !important;
+}
+.pb-6 {
+ padding-bottom: 3rem !important;
+}
+.pl-6 {
+ padding-left: 3rem !important;
+}
+.px-6 {
+ padding-left: 3rem !important;
+ padding-right: 3rem !important;
+}
+.py-6 {
+ padding-top: 3rem !important;
+ padding-bottom: 3rem !important;
+}
+.p-auto {
+ padding: auto !important;
+}
+.pt-auto {
+ padding-top: auto !important;
+}
+.pr-auto {
+ padding-right: auto !important;
+}
+.pb-auto {
+ padding-bottom: auto !important;
+}
+.pl-auto {
+ padding-left: auto !important;
+}
+.px-auto {
+ padding-left: auto !important;
+ padding-right: auto !important;
+}
+.py-auto {
+ padding-top: auto !important;
+ padding-bottom: auto !important;
+}
+.is-size-1 {
+ font-size: 3rem !important;
+}
+.is-size-2 {
+ font-size: 2.5rem !important;
+}
+.is-size-3 {
+ font-size: 2rem !important;
+}
+.is-size-4 {
+ font-size: 1.5rem !important;
+}
+.is-size-5 {
+ font-size: 1.25rem !important;
+}
+.is-size-6 {
+ font-size: 1rem !important;
+}
+.is-size-7 {
+ font-size: 0.75rem !important;
+}
+@media screen and (max-width: 768px) {
+ .is-size-1-mobile {
+ font-size: 3rem !important;
+ }
+ .is-size-2-mobile {
+ font-size: 2.5rem !important;
+ }
+ .is-size-3-mobile {
+ font-size: 2rem !important;
+ }
+ .is-size-4-mobile {
+ font-size: 1.5rem !important;
+ }
+ .is-size-5-mobile {
+ font-size: 1.25rem !important;
+ }
+ .is-size-6-mobile {
+ font-size: 1rem !important;
+ }
+ .is-size-7-mobile {
+ font-size: 0.75rem !important;
+ }
+}
+@media screen and (min-width: 769px), print {
+ .is-size-1-tablet {
+ font-size: 3rem !important;
+ }
+ .is-size-2-tablet {
+ font-size: 2.5rem !important;
+ }
+ .is-size-3-tablet {
+ font-size: 2rem !important;
+ }
+ .is-size-4-tablet {
+ font-size: 1.5rem !important;
+ }
+ .is-size-5-tablet {
+ font-size: 1.25rem !important;
+ }
+ .is-size-6-tablet {
+ font-size: 1rem !important;
+ }
+ .is-size-7-tablet {
+ font-size: 0.75rem !important;
+ }
+}
+@media screen and (max-width: 1023px) {
+ .is-size-1-touch {
+ font-size: 3rem !important;
+ }
+ .is-size-2-touch {
+ font-size: 2.5rem !important;
+ }
+ .is-size-3-touch {
+ font-size: 2rem !important;
+ }
+ .is-size-4-touch {
+ font-size: 1.5rem !important;
+ }
+ .is-size-5-touch {
+ font-size: 1.25rem !important;
+ }
+ .is-size-6-touch {
+ font-size: 1rem !important;
+ }
+ .is-size-7-touch {
+ font-size: 0.75rem !important;
+ }
+}
+@media screen and (min-width: 1024px) {
+ .is-size-1-desktop {
+ font-size: 3rem !important;
+ }
+ .is-size-2-desktop {
+ font-size: 2.5rem !important;
+ }
+ .is-size-3-desktop {
+ font-size: 2rem !important;
+ }
+ .is-size-4-desktop {
+ font-size: 1.5rem !important;
+ }
+ .is-size-5-desktop {
+ font-size: 1.25rem !important;
+ }
+ .is-size-6-desktop {
+ font-size: 1rem !important;
+ }
+ .is-size-7-desktop {
+ font-size: 0.75rem !important;
+ }
+}
+@media screen and (min-width: 1216px) {
+ .is-size-1-widescreen {
+ font-size: 3rem !important;
+ }
+ .is-size-2-widescreen {
+ font-size: 2.5rem !important;
+ }
+ .is-size-3-widescreen {
+ font-size: 2rem !important;
+ }
+ .is-size-4-widescreen {
+ font-size: 1.5rem !important;
+ }
+ .is-size-5-widescreen {
+ font-size: 1.25rem !important;
+ }
+ .is-size-6-widescreen {
+ font-size: 1rem !important;
+ }
+ .is-size-7-widescreen {
+ font-size: 0.75rem !important;
+ }
+}
+@media screen and (min-width: 1408px) {
+ .is-size-1-fullhd {
+ font-size: 3rem !important;
+ }
+ .is-size-2-fullhd {
+ font-size: 2.5rem !important;
+ }
+ .is-size-3-fullhd {
+ font-size: 2rem !important;
+ }
+ .is-size-4-fullhd {
+ font-size: 1.5rem !important;
+ }
+ .is-size-5-fullhd {
+ font-size: 1.25rem !important;
+ }
+ .is-size-6-fullhd {
+ font-size: 1rem !important;
+ }
+ .is-size-7-fullhd {
+ font-size: 0.75rem !important;
+ }
+}
+.has-text-centered {
+ text-align: center !important;
+}
+.has-text-justified {
+ text-align: justify !important;
+}
+.has-text-left {
+ text-align: left !important;
+}
+.has-text-right {
+ text-align: right !important;
+}
+@media screen and (max-width: 768px) {
+ .has-text-centered-mobile {
+ text-align: center !important;
+ }
+}
+@media screen and (min-width: 769px), print {
+ .has-text-centered-tablet {
+ text-align: center !important;
+ }
+}
+@media screen and (min-width: 769px) and (max-width: 1023px) {
+ .has-text-centered-tablet-only {
+ text-align: center !important;
+ }
+}
+@media screen and (max-width: 1023px) {
+ .has-text-centered-touch {
+ text-align: center !important;
+ }
+}
+@media screen and (min-width: 1024px) {
+ .has-text-centered-desktop {
+ text-align: center !important;
+ }
+}
+@media screen and (min-width: 1024px) and (max-width: 1215px) {
+ .has-text-centered-desktop-only {
+ text-align: center !important;
+ }
+}
+@media screen and (min-width: 1216px) {
+ .has-text-centered-widescreen {
+ text-align: center !important;
+ }
+}
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .has-text-centered-widescreen-only {
+ text-align: center !important;
+ }
+}
+@media screen and (min-width: 1408px) {
+ .has-text-centered-fullhd {
+ text-align: center !important;
+ }
+}
+@media screen and (max-width: 768px) {
+ .has-text-justified-mobile {
+ text-align: justify !important;
+ }
+}
+@media screen and (min-width: 769px), print {
+ .has-text-justified-tablet {
+ text-align: justify !important;
+ }
+}
+@media screen and (min-width: 769px) and (max-width: 1023px) {
+ .has-text-justified-tablet-only {
+ text-align: justify !important;
+ }
+}
+@media screen and (max-width: 1023px) {
+ .has-text-justified-touch {
+ text-align: justify !important;
+ }
+}
+@media screen and (min-width: 1024px) {
+ .has-text-justified-desktop {
+ text-align: justify !important;
+ }
+}
+@media screen and (min-width: 1024px) and (max-width: 1215px) {
+ .has-text-justified-desktop-only {
+ text-align: justify !important;
+ }
+}
+@media screen and (min-width: 1216px) {
+ .has-text-justified-widescreen {
+ text-align: justify !important;
+ }
+}
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .has-text-justified-widescreen-only {
+ text-align: justify !important;
+ }
+}
+@media screen and (min-width: 1408px) {
+ .has-text-justified-fullhd {
+ text-align: justify !important;
+ }
+}
+@media screen and (max-width: 768px) {
+ .has-text-left-mobile {
+ text-align: left !important;
+ }
+}
+@media screen and (min-width: 769px), print {
+ .has-text-left-tablet {
+ text-align: left !important;
+ }
+}
+@media screen and (min-width: 769px) and (max-width: 1023px) {
+ .has-text-left-tablet-only {
+ text-align: left !important;
+ }
+}
+@media screen and (max-width: 1023px) {
+ .has-text-left-touch {
+ text-align: left !important;
+ }
+}
+@media screen and (min-width: 1024px) {
+ .has-text-left-desktop {
+ text-align: left !important;
+ }
+}
+@media screen and (min-width: 1024px) and (max-width: 1215px) {
+ .has-text-left-desktop-only {
+ text-align: left !important;
+ }
+}
+@media screen and (min-width: 1216px) {
+ .has-text-left-widescreen {
+ text-align: left !important;
+ }
+}
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .has-text-left-widescreen-only {
+ text-align: left !important;
+ }
+}
+@media screen and (min-width: 1408px) {
+ .has-text-left-fullhd {
+ text-align: left !important;
+ }
+}
+@media screen and (max-width: 768px) {
+ .has-text-right-mobile {
+ text-align: right !important;
+ }
+}
+@media screen and (min-width: 769px), print {
+ .has-text-right-tablet {
+ text-align: right !important;
+ }
+}
+@media screen and (min-width: 769px) and (max-width: 1023px) {
+ .has-text-right-tablet-only {
+ text-align: right !important;
+ }
+}
+@media screen and (max-width: 1023px) {
+ .has-text-right-touch {
+ text-align: right !important;
+ }
+}
+@media screen and (min-width: 1024px) {
+ .has-text-right-desktop {
+ text-align: right !important;
+ }
+}
+@media screen and (min-width: 1024px) and (max-width: 1215px) {
+ .has-text-right-desktop-only {
+ text-align: right !important;
+ }
+}
+@media screen and (min-width: 1216px) {
+ .has-text-right-widescreen {
+ text-align: right !important;
+ }
+}
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .has-text-right-widescreen-only {
+ text-align: right !important;
+ }
+}
+@media screen and (min-width: 1408px) {
+ .has-text-right-fullhd {
+ text-align: right !important;
+ }
+}
+.is-capitalized {
+ text-transform: capitalize !important;
+}
+.is-lowercase {
+ text-transform: lowercase !important;
+}
+.is-uppercase {
+ text-transform: uppercase !important;
+}
+.is-italic {
+ font-style: italic !important;
+}
+.is-underlined {
+ text-decoration: underline !important;
+}
+.has-text-weight-light {
+ font-weight: 300 !important;
+}
+.has-text-weight-normal {
+ font-weight: 400 !important;
+}
+.has-text-weight-medium {
+ font-weight: 500 !important;
+}
+.has-text-weight-semibold {
+ font-weight: 600 !important;
+}
+.has-text-weight-bold {
+ font-weight: 700 !important;
+}
+.is-family-primary {
+ font-family: BlinkMacSystemFont, -apple-system, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell,
+ 'Fira Sans', 'Droid Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif !important;
+}
+.is-family-secondary {
+ font-family: BlinkMacSystemFont, -apple-system, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell,
+ 'Fira Sans', 'Droid Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif !important;
+}
+.is-family-sans-serif {
+ font-family: BlinkMacSystemFont, -apple-system, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell,
+ 'Fira Sans', 'Droid Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif !important;
+}
+.is-family-monospace {
+ font-family: monospace !important;
+}
+.is-family-code {
+ font-family: monospace !important;
+}
+.is-block {
+ display: block !important;
+}
+@media screen and (max-width: 768px) {
+ .is-block-mobile {
+ display: block !important;
+ }
+}
+@media screen and (min-width: 769px), print {
+ .is-block-tablet {
+ display: block !important;
+ }
+}
+@media screen and (min-width: 769px) and (max-width: 1023px) {
+ .is-block-tablet-only {
+ display: block !important;
+ }
+}
+@media screen and (max-width: 1023px) {
+ .is-block-touch {
+ display: block !important;
+ }
+}
+@media screen and (min-width: 1024px) {
+ .is-block-desktop {
+ display: block !important;
+ }
+}
+@media screen and (min-width: 1024px) and (max-width: 1215px) {
+ .is-block-desktop-only {
+ display: block !important;
+ }
+}
+@media screen and (min-width: 1216px) {
+ .is-block-widescreen {
+ display: block !important;
+ }
+}
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .is-block-widescreen-only {
+ display: block !important;
+ }
+}
+@media screen and (min-width: 1408px) {
+ .is-block-fullhd {
+ display: block !important;
+ }
+}
+.is-flex {
+ display: flex !important;
+}
+@media screen and (max-width: 768px) {
+ .is-flex-mobile {
+ display: flex !important;
+ }
+}
+@media screen and (min-width: 769px), print {
+ .is-flex-tablet {
+ display: flex !important;
+ }
+}
+@media screen and (min-width: 769px) and (max-width: 1023px) {
+ .is-flex-tablet-only {
+ display: flex !important;
+ }
+}
+@media screen and (max-width: 1023px) {
+ .is-flex-touch {
+ display: flex !important;
+ }
+}
+@media screen and (min-width: 1024px) {
+ .is-flex-desktop {
+ display: flex !important;
+ }
+}
+@media screen and (min-width: 1024px) and (max-width: 1215px) {
+ .is-flex-desktop-only {
+ display: flex !important;
+ }
+}
+@media screen and (min-width: 1216px) {
+ .is-flex-widescreen {
+ display: flex !important;
+ }
+}
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .is-flex-widescreen-only {
+ display: flex !important;
+ }
+}
+@media screen and (min-width: 1408px) {
+ .is-flex-fullhd {
+ display: flex !important;
+ }
+}
+.is-inline {
+ display: inline !important;
+}
+@media screen and (max-width: 768px) {
+ .is-inline-mobile {
+ display: inline !important;
+ }
+}
+@media screen and (min-width: 769px), print {
+ .is-inline-tablet {
+ display: inline !important;
+ }
+}
+@media screen and (min-width: 769px) and (max-width: 1023px) {
+ .is-inline-tablet-only {
+ display: inline !important;
+ }
+}
+@media screen and (max-width: 1023px) {
+ .is-inline-touch {
+ display: inline !important;
+ }
+}
+@media screen and (min-width: 1024px) {
+ .is-inline-desktop {
+ display: inline !important;
+ }
+}
+@media screen and (min-width: 1024px) and (max-width: 1215px) {
+ .is-inline-desktop-only {
+ display: inline !important;
+ }
+}
+@media screen and (min-width: 1216px) {
+ .is-inline-widescreen {
+ display: inline !important;
+ }
+}
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .is-inline-widescreen-only {
+ display: inline !important;
+ }
+}
+@media screen and (min-width: 1408px) {
+ .is-inline-fullhd {
+ display: inline !important;
+ }
+}
+.is-inline-block {
+ display: inline-block !important;
+}
+@media screen and (max-width: 768px) {
+ .is-inline-block-mobile {
+ display: inline-block !important;
+ }
+}
+@media screen and (min-width: 769px), print {
+ .is-inline-block-tablet {
+ display: inline-block !important;
+ }
+}
+@media screen and (min-width: 769px) and (max-width: 1023px) {
+ .is-inline-block-tablet-only {
+ display: inline-block !important;
+ }
+}
+@media screen and (max-width: 1023px) {
+ .is-inline-block-touch {
+ display: inline-block !important;
+ }
+}
+@media screen and (min-width: 1024px) {
+ .is-inline-block-desktop {
+ display: inline-block !important;
+ }
+}
+@media screen and (min-width: 1024px) and (max-width: 1215px) {
+ .is-inline-block-desktop-only {
+ display: inline-block !important;
+ }
+}
+@media screen and (min-width: 1216px) {
+ .is-inline-block-widescreen {
+ display: inline-block !important;
+ }
+}
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .is-inline-block-widescreen-only {
+ display: inline-block !important;
+ }
+}
+@media screen and (min-width: 1408px) {
+ .is-inline-block-fullhd {
+ display: inline-block !important;
+ }
+}
+.is-inline-flex {
+ display: inline-flex !important;
+}
+@media screen and (max-width: 768px) {
+ .is-inline-flex-mobile {
+ display: inline-flex !important;
+ }
+}
+@media screen and (min-width: 769px), print {
+ .is-inline-flex-tablet {
+ display: inline-flex !important;
+ }
+}
+@media screen and (min-width: 769px) and (max-width: 1023px) {
+ .is-inline-flex-tablet-only {
+ display: inline-flex !important;
+ }
+}
+@media screen and (max-width: 1023px) {
+ .is-inline-flex-touch {
+ display: inline-flex !important;
+ }
+}
+@media screen and (min-width: 1024px) {
+ .is-inline-flex-desktop {
+ display: inline-flex !important;
+ }
+}
+@media screen and (min-width: 1024px) and (max-width: 1215px) {
+ .is-inline-flex-desktop-only {
+ display: inline-flex !important;
+ }
+}
+@media screen and (min-width: 1216px) {
+ .is-inline-flex-widescreen {
+ display: inline-flex !important;
+ }
+}
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .is-inline-flex-widescreen-only {
+ display: inline-flex !important;
+ }
+}
+@media screen and (min-width: 1408px) {
+ .is-inline-flex-fullhd {
+ display: inline-flex !important;
+ }
+}
+.is-hidden {
+ display: none !important;
+}
+.is-sr-only {
+ border: none !important;
+ clip: rect(0, 0, 0, 0) !important;
+ height: 0.01em !important;
+ overflow: hidden !important;
+ padding: 0 !important;
+ position: absolute !important;
+ white-space: nowrap !important;
+ width: 0.01em !important;
+}
+@media screen and (max-width: 768px) {
+ .is-hidden-mobile {
+ display: none !important;
+ }
+}
+@media screen and (min-width: 769px), print {
+ .is-hidden-tablet {
+ display: none !important;
+ }
+}
+@media screen and (min-width: 769px) and (max-width: 1023px) {
+ .is-hidden-tablet-only {
+ display: none !important;
+ }
+}
+@media screen and (max-width: 1023px) {
+ .is-hidden-touch {
+ display: none !important;
+ }
+}
+@media screen and (min-width: 1024px) {
+ .is-hidden-desktop {
+ display: none !important;
+ }
+}
+@media screen and (min-width: 1024px) and (max-width: 1215px) {
+ .is-hidden-desktop-only {
+ display: none !important;
+ }
+}
+@media screen and (min-width: 1216px) {
+ .is-hidden-widescreen {
+ display: none !important;
+ }
+}
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .is-hidden-widescreen-only {
+ display: none !important;
+ }
+}
+@media screen and (min-width: 1408px) {
+ .is-hidden-fullhd {
+ display: none !important;
+ }
+}
+.is-invisible {
+ visibility: hidden !important;
+}
+@media screen and (max-width: 768px) {
+ .is-invisible-mobile {
+ visibility: hidden !important;
+ }
+}
+@media screen and (min-width: 769px), print {
+ .is-invisible-tablet {
+ visibility: hidden !important;
+ }
+}
+@media screen and (min-width: 769px) and (max-width: 1023px) {
+ .is-invisible-tablet-only {
+ visibility: hidden !important;
+ }
+}
+@media screen and (max-width: 1023px) {
+ .is-invisible-touch {
+ visibility: hidden !important;
+ }
+}
+@media screen and (min-width: 1024px) {
+ .is-invisible-desktop {
+ visibility: hidden !important;
+ }
+}
+@media screen and (min-width: 1024px) and (max-width: 1215px) {
+ .is-invisible-desktop-only {
+ visibility: hidden !important;
+ }
+}
+@media screen and (min-width: 1216px) {
+ .is-invisible-widescreen {
+ visibility: hidden !important;
+ }
+}
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .is-invisible-widescreen-only {
+ visibility: hidden !important;
+ }
+}
+@media screen and (min-width: 1408px) {
+ .is-invisible-fullhd {
+ visibility: hidden !important;
+ }
+}
+.hero {
+ align-items: stretch;
+ display: flex;
+ flex-direction: column;
+ justify-content: space-between;
+}
+.hero .navbar {
+ background: 0 0;
+}
+.hero .tabs ul {
+ border-bottom: none;
+}
+.hero.is-white {
+ background-color: #fff;
+ color: #0a0a0a;
+}
+.hero.is-white a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+.hero.is-white strong {
+ color: inherit;
+}
+.hero.is-white .title {
+ color: #0a0a0a;
+}
+.hero.is-white .subtitle {
+ color: rgba(10, 10, 10, 0.9);
+}
+.hero.is-white .subtitle a:not(.button),
+.hero.is-white .subtitle strong {
+ color: #0a0a0a;
+}
+@media screen and (max-width: 1023px) {
+ .hero.is-white .navbar-menu {
+ background-color: #fff;
+ }
+}
+.hero.is-white .navbar-item,
+.hero.is-white .navbar-link {
+ color: rgba(10, 10, 10, 0.7);
+}
+.hero.is-white .navbar-link.is-active,
+.hero.is-white .navbar-link:hover,
+.hero.is-white a.navbar-item.is-active,
+.hero.is-white a.navbar-item:hover {
+ background-color: #f2f2f2;
+ color: #0a0a0a;
+}
+.hero.is-white .tabs a {
+ color: #0a0a0a;
+ opacity: 0.9;
+}
+.hero.is-white .tabs a:hover {
+ opacity: 1;
+}
+.hero.is-white .tabs li.is-active a {
+ color: #fff !important;
+ opacity: 1;
+}
+.hero.is-white .tabs.is-boxed a,
+.hero.is-white .tabs.is-toggle a {
+ color: #0a0a0a;
+}
+.hero.is-white .tabs.is-boxed a:hover,
+.hero.is-white .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1);
+}
+.hero.is-white .tabs.is-boxed li.is-active a,
+.hero.is-white .tabs.is-boxed li.is-active a:hover,
+.hero.is-white .tabs.is-toggle li.is-active a,
+.hero.is-white .tabs.is-toggle li.is-active a:hover {
+ background-color: #0a0a0a;
+ border-color: #0a0a0a;
+ color: #fff;
+}
+.hero.is-white.is-bold {
+ background-image: linear-gradient(141deg, #e6e6e6 0, #fff 71%, #fff 100%);
+}
+@media screen and (max-width: 768px) {
+ .hero.is-white.is-bold .navbar-menu {
+ background-image: linear-gradient(141deg, #e6e6e6 0, #fff 71%, #fff 100%);
+ }
+}
+.hero.is-black {
+ background-color: #0a0a0a;
+ color: #fff;
+}
+.hero.is-black a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+.hero.is-black strong {
+ color: inherit;
+}
+.hero.is-black .title {
+ color: #fff;
+}
+.hero.is-black .subtitle {
+ color: rgba(255, 255, 255, 0.9);
+}
+.hero.is-black .subtitle a:not(.button),
+.hero.is-black .subtitle strong {
+ color: #fff;
+}
+@media screen and (max-width: 1023px) {
+ .hero.is-black .navbar-menu {
+ background-color: #0a0a0a;
+ }
+}
+.hero.is-black .navbar-item,
+.hero.is-black .navbar-link {
+ color: rgba(255, 255, 255, 0.7);
+}
+.hero.is-black .navbar-link.is-active,
+.hero.is-black .navbar-link:hover,
+.hero.is-black a.navbar-item.is-active,
+.hero.is-black a.navbar-item:hover {
+ background-color: #000;
+ color: #fff;
+}
+.hero.is-black .tabs a {
+ color: #fff;
+ opacity: 0.9;
+}
+.hero.is-black .tabs a:hover {
+ opacity: 1;
+}
+.hero.is-black .tabs li.is-active a {
+ color: #0a0a0a !important;
+ opacity: 1;
+}
+.hero.is-black .tabs.is-boxed a,
+.hero.is-black .tabs.is-toggle a {
+ color: #fff;
+}
+.hero.is-black .tabs.is-boxed a:hover,
+.hero.is-black .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1);
+}
+.hero.is-black .tabs.is-boxed li.is-active a,
+.hero.is-black .tabs.is-boxed li.is-active a:hover,
+.hero.is-black .tabs.is-toggle li.is-active a,
+.hero.is-black .tabs.is-toggle li.is-active a:hover {
+ background-color: #fff;
+ border-color: #fff;
+ color: #0a0a0a;
+}
+.hero.is-black.is-bold {
+ background-image: linear-gradient(141deg, #000 0, #0a0a0a 71%, #181616 100%);
+}
+@media screen and (max-width: 768px) {
+ .hero.is-black.is-bold .navbar-menu {
+ background-image: linear-gradient(141deg, #000 0, #0a0a0a 71%, #181616 100%);
+ }
+}
+.hero.is-light {
+ background-color: #f5f5f5;
+ color: rgba(0, 0, 0, 0.7);
+}
+.hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+.hero.is-light strong {
+ color: inherit;
+}
+.hero.is-light .title {
+ color: rgba(0, 0, 0, 0.7);
+}
+.hero.is-light .subtitle {
+ color: rgba(0, 0, 0, 0.9);
+}
+.hero.is-light .subtitle a:not(.button),
+.hero.is-light .subtitle strong {
+ color: rgba(0, 0, 0, 0.7);
+}
+@media screen and (max-width: 1023px) {
+ .hero.is-light .navbar-menu {
+ background-color: #f5f5f5;
+ }
+}
+.hero.is-light .navbar-item,
+.hero.is-light .navbar-link {
+ color: rgba(0, 0, 0, 0.7);
+}
+.hero.is-light .navbar-link.is-active,
+.hero.is-light .navbar-link:hover,
+.hero.is-light a.navbar-item.is-active,
+.hero.is-light a.navbar-item:hover {
+ background-color: #e8e8e8;
+ color: rgba(0, 0, 0, 0.7);
+}
+.hero.is-light .tabs a {
+ color: rgba(0, 0, 0, 0.7);
+ opacity: 0.9;
+}
+.hero.is-light .tabs a:hover {
+ opacity: 1;
+}
+.hero.is-light .tabs li.is-active a {
+ color: #f5f5f5 !important;
+ opacity: 1;
+}
+.hero.is-light .tabs.is-boxed a,
+.hero.is-light .tabs.is-toggle a {
+ color: rgba(0, 0, 0, 0.7);
+}
+.hero.is-light .tabs.is-boxed a:hover,
+.hero.is-light .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1);
+}
+.hero.is-light .tabs.is-boxed li.is-active a,
+.hero.is-light .tabs.is-boxed li.is-active a:hover,
+.hero.is-light .tabs.is-toggle li.is-active a,
+.hero.is-light .tabs.is-toggle li.is-active a:hover {
+ background-color: rgba(0, 0, 0, 0.7);
+ border-color: rgba(0, 0, 0, 0.7);
+ color: #f5f5f5;
+}
+.hero.is-light.is-bold {
+ background-image: linear-gradient(141deg, #dfd8d9 0, #f5f5f5 71%, #fff 100%);
+}
+@media screen and (max-width: 768px) {
+ .hero.is-light.is-bold .navbar-menu {
+ background-image: linear-gradient(141deg, #dfd8d9 0, #f5f5f5 71%, #fff 100%);
+ }
+}
+.hero.is-dark {
+ background-color: #363636;
+ color: #fff;
+}
+.hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+.hero.is-dark strong {
+ color: inherit;
+}
+.hero.is-dark .title {
+ color: #fff;
+}
+.hero.is-dark .subtitle {
+ color: rgba(255, 255, 255, 0.9);
+}
+.hero.is-dark .subtitle a:not(.button),
+.hero.is-dark .subtitle strong {
+ color: #fff;
+}
+@media screen and (max-width: 1023px) {
+ .hero.is-dark .navbar-menu {
+ background-color: #363636;
+ }
+}
+.hero.is-dark .navbar-item,
+.hero.is-dark .navbar-link {
+ color: rgba(255, 255, 255, 0.7);
+}
+.hero.is-dark .navbar-link.is-active,
+.hero.is-dark .navbar-link:hover,
+.hero.is-dark a.navbar-item.is-active,
+.hero.is-dark a.navbar-item:hover {
+ background-color: #292929;
+ color: #fff;
+}
+.hero.is-dark .tabs a {
+ color: #fff;
+ opacity: 0.9;
+}
+.hero.is-dark .tabs a:hover {
+ opacity: 1;
+}
+.hero.is-dark .tabs li.is-active a {
+ color: #363636 !important;
+ opacity: 1;
+}
+.hero.is-dark .tabs.is-boxed a,
+.hero.is-dark .tabs.is-toggle a {
+ color: #fff;
+}
+.hero.is-dark .tabs.is-boxed a:hover,
+.hero.is-dark .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1);
+}
+.hero.is-dark .tabs.is-boxed li.is-active a,
+.hero.is-dark .tabs.is-boxed li.is-active a:hover,
+.hero.is-dark .tabs.is-toggle li.is-active a,
+.hero.is-dark .tabs.is-toggle li.is-active a:hover {
+ background-color: #fff;
+ border-color: #fff;
+ color: #363636;
+}
+.hero.is-dark.is-bold {
+ background-image: linear-gradient(141deg, #1f191a 0, #363636 71%, #46403f 100%);
+}
+@media screen and (max-width: 768px) {
+ .hero.is-dark.is-bold .navbar-menu {
+ background-image: linear-gradient(141deg, #1f191a 0, #363636 71%, #46403f 100%);
+ }
+}
+.hero.is-primary {
+ background-color: #00d1b2;
+ color: #fff;
+}
+.hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+.hero.is-primary strong {
+ color: inherit;
+}
+.hero.is-primary .title {
+ color: #fff;
+}
+.hero.is-primary .subtitle {
+ color: rgba(255, 255, 255, 0.9);
+}
+.hero.is-primary .subtitle a:not(.button),
+.hero.is-primary .subtitle strong {
+ color: #fff;
+}
+@media screen and (max-width: 1023px) {
+ .hero.is-primary .navbar-menu {
+ background-color: #00d1b2;
+ }
+}
+.hero.is-primary .navbar-item,
+.hero.is-primary .navbar-link {
+ color: rgba(255, 255, 255, 0.7);
+}
+.hero.is-primary .navbar-link.is-active,
+.hero.is-primary .navbar-link:hover,
+.hero.is-primary a.navbar-item.is-active,
+.hero.is-primary a.navbar-item:hover {
+ background-color: #00b89c;
+ color: #fff;
+}
+.hero.is-primary .tabs a {
+ color: #fff;
+ opacity: 0.9;
+}
+.hero.is-primary .tabs a:hover {
+ opacity: 1;
+}
+.hero.is-primary .tabs li.is-active a {
+ color: #00d1b2 !important;
+ opacity: 1;
+}
+.hero.is-primary .tabs.is-boxed a,
+.hero.is-primary .tabs.is-toggle a {
+ color: #fff;
+}
+.hero.is-primary .tabs.is-boxed a:hover,
+.hero.is-primary .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1);
+}
+.hero.is-primary .tabs.is-boxed li.is-active a,
+.hero.is-primary .tabs.is-boxed li.is-active a:hover,
+.hero.is-primary .tabs.is-toggle li.is-active a,
+.hero.is-primary .tabs.is-toggle li.is-active a:hover {
+ background-color: #fff;
+ border-color: #fff;
+ color: #00d1b2;
+}
+.hero.is-primary.is-bold {
+ background-image: linear-gradient(141deg, #009e6c 0, #00d1b2 71%, #00e7eb 100%);
+}
+@media screen and (max-width: 768px) {
+ .hero.is-primary.is-bold .navbar-menu {
+ background-image: linear-gradient(141deg, #009e6c 0, #00d1b2 71%, #00e7eb 100%);
+ }
+}
+.hero.is-link {
+ background-color: #485fc7;
+ color: #fff;
+}
+.hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+.hero.is-link strong {
+ color: inherit;
+}
+.hero.is-link .title {
+ color: #fff;
+}
+.hero.is-link .subtitle {
+ color: rgba(255, 255, 255, 0.9);
+}
+.hero.is-link .subtitle a:not(.button),
+.hero.is-link .subtitle strong {
+ color: #fff;
+}
+@media screen and (max-width: 1023px) {
+ .hero.is-link .navbar-menu {
+ background-color: #485fc7;
+ }
+}
+.hero.is-link .navbar-item,
+.hero.is-link .navbar-link {
+ color: rgba(255, 255, 255, 0.7);
+}
+.hero.is-link .navbar-link.is-active,
+.hero.is-link .navbar-link:hover,
+.hero.is-link a.navbar-item.is-active,
+.hero.is-link a.navbar-item:hover {
+ background-color: #3a51bb;
+ color: #fff;
+}
+.hero.is-link .tabs a {
+ color: #fff;
+ opacity: 0.9;
+}
+.hero.is-link .tabs a:hover {
+ opacity: 1;
+}
+.hero.is-link .tabs li.is-active a {
+ color: #485fc7 !important;
+ opacity: 1;
+}
+.hero.is-link .tabs.is-boxed a,
+.hero.is-link .tabs.is-toggle a {
+ color: #fff;
+}
+.hero.is-link .tabs.is-boxed a:hover,
+.hero.is-link .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1);
+}
+.hero.is-link .tabs.is-boxed li.is-active a,
+.hero.is-link .tabs.is-boxed li.is-active a:hover,
+.hero.is-link .tabs.is-toggle li.is-active a,
+.hero.is-link .tabs.is-toggle li.is-active a:hover {
+ background-color: #fff;
+ border-color: #fff;
+ color: #485fc7;
+}
+.hero.is-link.is-bold {
+ background-image: linear-gradient(141deg, #2959b3 0, #485fc7 71%, #5658d2 100%);
+}
+@media screen and (max-width: 768px) {
+ .hero.is-link.is-bold .navbar-menu {
+ background-image: linear-gradient(141deg, #2959b3 0, #485fc7 71%, #5658d2 100%);
+ }
+}
+.hero.is-info {
+ background-color: #3e8ed0;
+ color: #fff;
+}
+.hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+.hero.is-info strong {
+ color: inherit;
+}
+.hero.is-info .title {
+ color: #fff;
+}
+.hero.is-info .subtitle {
+ color: rgba(255, 255, 255, 0.9);
+}
+.hero.is-info .subtitle a:not(.button),
+.hero.is-info .subtitle strong {
+ color: #fff;
+}
+@media screen and (max-width: 1023px) {
+ .hero.is-info .navbar-menu {
+ background-color: #3e8ed0;
+ }
+}
+.hero.is-info .navbar-item,
+.hero.is-info .navbar-link {
+ color: rgba(255, 255, 255, 0.7);
+}
+.hero.is-info .navbar-link.is-active,
+.hero.is-info .navbar-link:hover,
+.hero.is-info a.navbar-item.is-active,
+.hero.is-info a.navbar-item:hover {
+ background-color: #3082c5;
+ color: #fff;
+}
+.hero.is-info .tabs a {
+ color: #fff;
+ opacity: 0.9;
+}
+.hero.is-info .tabs a:hover {
+ opacity: 1;
+}
+.hero.is-info .tabs li.is-active a {
+ color: #3e8ed0 !important;
+ opacity: 1;
+}
+.hero.is-info .tabs.is-boxed a,
+.hero.is-info .tabs.is-toggle a {
+ color: #fff;
+}
+.hero.is-info .tabs.is-boxed a:hover,
+.hero.is-info .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1);
+}
+.hero.is-info .tabs.is-boxed li.is-active a,
+.hero.is-info .tabs.is-boxed li.is-active a:hover,
+.hero.is-info .tabs.is-toggle li.is-active a,
+.hero.is-info .tabs.is-toggle li.is-active a:hover {
+ background-color: #fff;
+ border-color: #fff;
+ color: #3e8ed0;
+}
+.hero.is-info.is-bold {
+ background-image: linear-gradient(141deg, #208fbc 0, #3e8ed0 71%, #4d83db 100%);
+}
+@media screen and (max-width: 768px) {
+ .hero.is-info.is-bold .navbar-menu {
+ background-image: linear-gradient(141deg, #208fbc 0, #3e8ed0 71%, #4d83db 100%);
+ }
+}
+.hero.is-success {
+ background-color: #48c78e;
+ color: #fff;
+}
+.hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+.hero.is-success strong {
+ color: inherit;
+}
+.hero.is-success .title {
+ color: #fff;
+}
+.hero.is-success .subtitle {
+ color: rgba(255, 255, 255, 0.9);
+}
+.hero.is-success .subtitle a:not(.button),
+.hero.is-success .subtitle strong {
+ color: #fff;
+}
+@media screen and (max-width: 1023px) {
+ .hero.is-success .navbar-menu {
+ background-color: #48c78e;
+ }
+}
+.hero.is-success .navbar-item,
+.hero.is-success .navbar-link {
+ color: rgba(255, 255, 255, 0.7);
+}
+.hero.is-success .navbar-link.is-active,
+.hero.is-success .navbar-link:hover,
+.hero.is-success a.navbar-item.is-active,
+.hero.is-success a.navbar-item:hover {
+ background-color: #3abb81;
+ color: #fff;
+}
+.hero.is-success .tabs a {
+ color: #fff;
+ opacity: 0.9;
+}
+.hero.is-success .tabs a:hover {
+ opacity: 1;
+}
+.hero.is-success .tabs li.is-active a {
+ color: #48c78e !important;
+ opacity: 1;
+}
+.hero.is-success .tabs.is-boxed a,
+.hero.is-success .tabs.is-toggle a {
+ color: #fff;
+}
+.hero.is-success .tabs.is-boxed a:hover,
+.hero.is-success .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1);
+}
+.hero.is-success .tabs.is-boxed li.is-active a,
+.hero.is-success .tabs.is-boxed li.is-active a:hover,
+.hero.is-success .tabs.is-toggle li.is-active a,
+.hero.is-success .tabs.is-toggle li.is-active a:hover {
+ background-color: #fff;
+ border-color: #fff;
+ color: #48c78e;
+}
+.hero.is-success.is-bold {
+ background-image: linear-gradient(141deg, #29b35e 0, #48c78e 71%, #56d2af 100%);
+}
+@media screen and (max-width: 768px) {
+ .hero.is-success.is-bold .navbar-menu {
+ background-image: linear-gradient(141deg, #29b35e 0, #48c78e 71%, #56d2af 100%);
+ }
+}
+.hero.is-warning {
+ background-color: #ffe08a;
+ color: rgba(0, 0, 0, 0.7);
+}
+.hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+.hero.is-warning strong {
+ color: inherit;
+}
+.hero.is-warning .title {
+ color: rgba(0, 0, 0, 0.7);
+}
+.hero.is-warning .subtitle {
+ color: rgba(0, 0, 0, 0.9);
+}
+.hero.is-warning .subtitle a:not(.button),
+.hero.is-warning .subtitle strong {
+ color: rgba(0, 0, 0, 0.7);
+}
+@media screen and (max-width: 1023px) {
+ .hero.is-warning .navbar-menu {
+ background-color: #ffe08a;
+ }
+}
+.hero.is-warning .navbar-item,
+.hero.is-warning .navbar-link {
+ color: rgba(0, 0, 0, 0.7);
+}
+.hero.is-warning .navbar-link.is-active,
+.hero.is-warning .navbar-link:hover,
+.hero.is-warning a.navbar-item.is-active,
+.hero.is-warning a.navbar-item:hover {
+ background-color: #ffd970;
+ color: rgba(0, 0, 0, 0.7);
+}
+.hero.is-warning .tabs a {
+ color: rgba(0, 0, 0, 0.7);
+ opacity: 0.9;
+}
+.hero.is-warning .tabs a:hover {
+ opacity: 1;
+}
+.hero.is-warning .tabs li.is-active a {
+ color: #ffe08a !important;
+ opacity: 1;
+}
+.hero.is-warning .tabs.is-boxed a,
+.hero.is-warning .tabs.is-toggle a {
+ color: rgba(0, 0, 0, 0.7);
+}
+.hero.is-warning .tabs.is-boxed a:hover,
+.hero.is-warning .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1);
+}
+.hero.is-warning .tabs.is-boxed li.is-active a,
+.hero.is-warning .tabs.is-boxed li.is-active a:hover,
+.hero.is-warning .tabs.is-toggle li.is-active a,
+.hero.is-warning .tabs.is-toggle li.is-active a:hover {
+ background-color: rgba(0, 0, 0, 0.7);
+ border-color: rgba(0, 0, 0, 0.7);
+ color: #ffe08a;
+}
+.hero.is-warning.is-bold {
+ background-image: linear-gradient(141deg, #ffb657 0, #ffe08a 71%, #fff6a3 100%);
+}
+@media screen and (max-width: 768px) {
+ .hero.is-warning.is-bold .navbar-menu {
+ background-image: linear-gradient(141deg, #ffb657 0, #ffe08a 71%, #fff6a3 100%);
+ }
+}
+.hero.is-danger {
+ background-color: #f14668;
+ color: #fff;
+}
+.hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+.hero.is-danger strong {
+ color: inherit;
+}
+.hero.is-danger .title {
+ color: #fff;
+}
+.hero.is-danger .subtitle {
+ color: rgba(255, 255, 255, 0.9);
+}
+.hero.is-danger .subtitle a:not(.button),
+.hero.is-danger .subtitle strong {
+ color: #fff;
+}
+@media screen and (max-width: 1023px) {
+ .hero.is-danger .navbar-menu {
+ background-color: #f14668;
+ }
+}
+.hero.is-danger .navbar-item,
+.hero.is-danger .navbar-link {
+ color: rgba(255, 255, 255, 0.7);
+}
+.hero.is-danger .navbar-link.is-active,
+.hero.is-danger .navbar-link:hover,
+.hero.is-danger a.navbar-item.is-active,
+.hero.is-danger a.navbar-item:hover {
+ background-color: #ef2e55;
+ color: #fff;
+}
+.hero.is-danger .tabs a {
+ color: #fff;
+ opacity: 0.9;
+}
+.hero.is-danger .tabs a:hover {
+ opacity: 1;
+}
+.hero.is-danger .tabs li.is-active a {
+ color: #f14668 !important;
+ opacity: 1;
+}
+.hero.is-danger .tabs.is-boxed a,
+.hero.is-danger .tabs.is-toggle a {
+ color: #fff;
+}
+.hero.is-danger .tabs.is-boxed a:hover,
+.hero.is-danger .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1);
+}
+.hero.is-danger .tabs.is-boxed li.is-active a,
+.hero.is-danger .tabs.is-boxed li.is-active a:hover,
+.hero.is-danger .tabs.is-toggle li.is-active a,
+.hero.is-danger .tabs.is-toggle li.is-active a:hover {
+ background-color: #fff;
+ border-color: #fff;
+ color: #f14668;
+}
+.hero.is-danger.is-bold {
+ background-image: linear-gradient(141deg, #fa0a62 0, #f14668 71%, #f7595f 100%);
+}
+@media screen and (max-width: 768px) {
+ .hero.is-danger.is-bold .navbar-menu {
+ background-image: linear-gradient(141deg, #fa0a62 0, #f14668 71%, #f7595f 100%);
+ }
+}
+.hero.is-small .hero-body {
+ padding: 1.5rem;
+}
+@media screen and (min-width: 769px), print {
+ .hero.is-medium .hero-body {
+ padding: 9rem 4.5rem;
+ }
+}
+@media screen and (min-width: 769px), print {
+ .hero.is-large .hero-body {
+ padding: 18rem 6rem;
+ }
+}
+.hero.is-fullheight .hero-body,
+.hero.is-fullheight-with-navbar .hero-body,
+.hero.is-halfheight .hero-body {
+ align-items: center;
+ display: flex;
+}
+.hero.is-fullheight .hero-body > .container,
+.hero.is-fullheight-with-navbar .hero-body > .container,
+.hero.is-halfheight .hero-body > .container {
+ flex-grow: 1;
+ flex-shrink: 1;
+}
+.hero.is-halfheight {
+ min-height: 50vh;
+}
+.hero.is-fullheight {
+ min-height: 100vh;
+}
+.hero-video {
+ overflow: hidden;
+}
+.hero-video video {
+ left: 50%;
+ min-height: 100%;
+ min-width: 100%;
+ position: absolute;
+ top: 50%;
+ transform: translate3d(-50%, -50%, 0);
+}
+.hero-video.is-transparent {
+ opacity: 0.3;
+}
+@media screen and (max-width: 768px) {
+ .hero-video {
+ display: none;
+ }
+}
+.hero-buttons {
+ margin-top: 1.5rem;
+}
+@media screen and (max-width: 768px) {
+ .hero-buttons .button {
+ display: flex;
+ }
+ .hero-buttons .button:not(:last-child) {
+ margin-bottom: 0.75rem;
+ }
+}
+@media screen and (min-width: 769px), print {
+ .hero-buttons {
+ display: flex;
+ justify-content: center;
+ }
+ .hero-buttons .button:not(:last-child) {
+ margin-right: 1.5rem;
+ }
+}
+.hero-foot,
+.hero-head {
+ flex-grow: 0;
+ flex-shrink: 0;
+}
+.hero-body {
+ flex-grow: 1;
+ flex-shrink: 0;
+ padding: 3rem 1.5rem;
+}
+@media screen and (min-width: 769px), print {
+ .hero-body {
+ padding: 3rem 3rem;
+ }
+}
+.section {
+ padding: 3rem 1.5rem;
+}
+@media screen and (min-width: 1024px) {
+ .section {
+ padding: 3rem 3rem;
+ }
+ .section.is-medium {
+ padding: 9rem 4.5rem;
+ }
+ .section.is-large {
+ padding: 18rem 6rem;
+ }
+}
+.footer {
+ background-color: #fafafa;
+ padding: 3rem 1.5rem 6rem;
+}
diff --git a/examples/sveltekit/static/globals.css b/examples/sveltekit/static/globals.css
index e5e2dcc2..67f28bb4 100644
--- a/examples/sveltekit/static/globals.css
+++ b/examples/sveltekit/static/globals.css
@@ -1,16 +1,16 @@
html,
body {
- padding: 0;
- margin: 0;
- font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen,
- Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, sans-serif;
+ padding: 0;
+ margin: 0;
+ font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen, Ubuntu, Cantarell,
+ Fira Sans, Droid Sans, Helvetica Neue, sans-serif;
}
a {
- color: inherit;
- text-decoration: none;
+ color: inherit;
+ text-decoration: none;
}
* {
- box-sizing: border-box;
+ box-sizing: border-box;
}
diff --git a/package.json b/package.json
index 90f78fd1..ee11d2f2 100644
--- a/package.json
+++ b/package.json
@@ -1,50 +1,58 @@
{
- "name": "@supabase/auth-helpers",
- "version": "0.0.0",
- "private": true,
- "scripts": {
- "build": "turbo run build",
- "build:example": "turbo run build:example",
- "build:example:sveltekit": "turbo run build:example --filter=@example/sveltekit",
- "build:example:nextjs": "turbo run build:example --filter=@example/nextjs",
- "build:sveltekit": "turbo run build --filter=@supabase/auth-helpers-sveltekit",
- "build:sveltekit:watch": "turbo run build:watch --filter=@supabase/auth-helpers-sveltekit",
- "build:nextjs": "turbo run build --filter=@supabase/auth-helpers-nextjs",
- "build:react": "turbo run build --filter=@supabase/auth-helpers-react",
- "build:remix": "turbo run build --filter=@supabase/auth-helpers-remix",
- "build:shared": "turbo run build --filter=@supabase/auth-helpers-shared",
- "dev": "turbo run dev --parallel",
- "lint": "turbo run lint",
- "format": "prettier --write \"**/*.{ts,tsx,md}\" --ignore-path .gitignore",
- "docs": "typedoc",
- "clean:all": "turbo run clean:all",
- "ci:version": "changeset version",
- "ci:release": "changeset publish"
- },
- "devDependencies": {
- "@changesets/cli": "^2.22.0",
- "prettier": "^2.5.1",
- "turbo": "^1.8.3",
- "typedoc": "^0.22.17",
- "typescript": "4.0.x || 4.1.x || 4.2.x || 4.3.x || 4.4.x || 4.5.x || 4.6.x"
- },
- "engines": {
- "npm": ">=7.0.0",
- "node": ">=16.0.0"
- },
- "packageManager": "pnpm@7.1.7",
- "peerDependencies": {
- "typescript": "4.0.x || 4.1.x || 4.2.x || 4.3.x || 4.4.x || 4.5.x || 4.6.x"
- },
- "pnpm": {
- "overrides": {
- "@changesets/assemble-release-plan": "5.2.3"
- },
- "overrides-notes": {
- "@changesets/assemble-release-plan": "patched until https://github.com/changesets/changesets/issues/835 is resolved"
- },
- "patchedDependencies": {
- "@changesets/assemble-release-plan@5.2.3": "patches/@changesets__assemble-release-plan@5.2.3.patch"
- }
- }
+ "name": "@supabase/auth-helpers",
+ "version": "0.0.0",
+ "private": true,
+ "scripts": {
+ "build": "turbo run build",
+ "build:example": "turbo run build:example",
+ "build:example:sveltekit": "turbo run build:example --filter=@example/sveltekit",
+ "build:example:nextjs": "turbo run build:example --filter=@example/nextjs",
+ "build:sveltekit": "turbo run build --filter=@supabase/auth-helpers-sveltekit",
+ "build:sveltekit:watch": "turbo run build:watch --filter=@supabase/auth-helpers-sveltekit",
+ "build:nextjs": "turbo run build --filter=@supabase/auth-helpers-nextjs",
+ "build:react": "turbo run build --filter=@supabase/auth-helpers-react",
+ "build:remix": "turbo run build --filter=@supabase/auth-helpers-remix",
+ "build:shared": "turbo run build --filter=@supabase/auth-helpers-shared",
+ "dev": "turbo run dev --parallel",
+ "lint": "turbo run lint --filter=!@example/*",
+ "check": "prettier --check .",
+ "format": "prettier --write .",
+ "docs": "typedoc",
+ "clean:all": "turbo run clean:all",
+ "ci:version": "changeset version",
+ "ci:release": "changeset publish",
+ "prepare": "husky install"
+ },
+ "devDependencies": {
+ "@changesets/cli": "^2.22.0",
+ "prettier": "^2.5.1",
+ "turbo": "^1.8.3",
+ "typedoc": "^0.22.17",
+ "typescript": "4.0.x || 4.1.x || 4.2.x || 4.3.x || 4.4.x || 4.5.x || 4.6.x",
+ "husky": "^8.0.0"
+ },
+ "engines": {
+ "npm": ">=7.0.0",
+ "node": ">=16.0.0"
+ },
+ "packageManager": "pnpm@7.1.7",
+ "peerDependencies": {
+ "typescript": "4.0.x || 4.1.x || 4.2.x || 4.3.x || 4.4.x || 4.5.x || 4.6.x"
+ },
+ "pnpm": {
+ "overrides": {
+ "@changesets/assemble-release-plan": "5.2.3"
+ },
+ "overrides-notes": {
+ "@changesets/assemble-release-plan": "patched until https://github.com/changesets/changesets/issues/835 is resolved"
+ },
+ "patchedDependencies": {
+ "@changesets/assemble-release-plan@5.2.3": "patches/@changesets__assemble-release-plan@5.2.3.patch"
+ }
+ },
+ "lint-staged": {
+ "**/*.{ts,tsx,md}": [
+ "prettier --check"
+ ]
+ }
}
diff --git a/packages/config/eslint-preset.js b/packages/config/eslint-preset.js
index cedc38df..063d5abd 100644
--- a/packages/config/eslint-preset.js
+++ b/packages/config/eslint-preset.js
@@ -1,12 +1,12 @@
module.exports = {
- extends: ["next", "prettier"],
- settings: {
- next: {
- rootDir: ["apps/*/", "packages/*/"],
- },
- },
- rules: {
- "@next/next/no-html-link-for-pages": "off",
- "react/jsx-key": "off",
- },
+ extends: ['next', 'prettier'],
+ settings: {
+ next: {
+ rootDir: ['apps/*/', 'packages/*/']
+ }
+ },
+ rules: {
+ '@next/next/no-html-link-for-pages': 'off',
+ 'react/jsx-key': 'off'
+ }
};
diff --git a/packages/config/package.json b/packages/config/package.json
index 40010991..d3620e97 100644
--- a/packages/config/package.json
+++ b/packages/config/package.json
@@ -1,33 +1,33 @@
{
- "name": "config",
- "version": "0.1.0",
- "private": true,
- "main": "index.js",
- "license": "MIT",
- "files": [
- "eslint-preset.js"
- ],
- "scripts": {
- "clean:all": "rimraf node_modules"
- },
- "dependencies": {
- "eslint-config-next": "^12.0.8",
- "eslint-config-prettier": "^8.3.0",
- "eslint-plugin-react": "7.28.0"
- },
- "devDependencies": {
- "eslint": ">=7.23.0 <8.0.0 || >=8.0.0-0 <8.0.0 || >=8.0.0 <9.0.0",
- "next": ">=10.2.0",
- "react": ">=17.0.2 <18.0.0 || >=18.0.0-0 <19.0.0",
- "react-dom": "^17.0.2 || ^18.0.0-0",
- "rimraf": "^3.0.2",
- "typescript": ">=3.3.1"
- },
- "peerDependencies": {
- "eslint": ">=7.23.0 <8.0.0 || >=8.0.0-0 <8.0.0 || >=8.0.0 <9.0.0",
- "next": ">=10.2.0",
- "react": ">=17.0.2 <18.0.0 || >=18.0.0-0 <19.0.0",
- "react-dom": "^17.0.2 || ^18.0.0-0",
- "typescript": ">=3.3.1"
- }
+ "name": "config",
+ "version": "0.1.0",
+ "private": true,
+ "main": "index.js",
+ "license": "MIT",
+ "files": [
+ "eslint-preset.js"
+ ],
+ "scripts": {
+ "clean:all": "rimraf node_modules"
+ },
+ "dependencies": {
+ "eslint-config-next": "^12.0.8",
+ "eslint-config-prettier": "^8.3.0",
+ "eslint-plugin-react": "7.28.0"
+ },
+ "devDependencies": {
+ "eslint": ">=7.23.0 <8.0.0 || >=8.0.0-0 <8.0.0 || >=8.0.0 <9.0.0",
+ "next": ">=10.2.0",
+ "react": ">=17.0.2 <18.0.0 || >=18.0.0-0 <19.0.0",
+ "react-dom": "^17.0.2 || ^18.0.0-0",
+ "rimraf": "^3.0.2",
+ "typescript": ">=3.3.1"
+ },
+ "peerDependencies": {
+ "eslint": ">=7.23.0 <8.0.0 || >=8.0.0-0 <8.0.0 || >=8.0.0 <9.0.0",
+ "next": ">=10.2.0",
+ "react": ">=17.0.2 <18.0.0 || >=18.0.0-0 <19.0.0",
+ "react-dom": "^17.0.2 || ^18.0.0-0",
+ "typescript": ">=3.3.1"
+ }
}
diff --git a/packages/nextjs/MIGRATION_GUIDE.md b/packages/nextjs/MIGRATION_GUIDE.md
index 6d591623..d51d37e4 100644
--- a/packages/nextjs/MIGRATION_GUIDE.md
+++ b/packages/nextjs/MIGRATION_GUIDE.md
@@ -41,8 +41,7 @@ const ProtectedRoute: NextApiHandler = async (req, res) => {
if (!session)
return res.status(401).json({
error: 'not_authenticated',
- description:
- 'The user does not have an active session or is not authenticated'
+ description: 'The user does not have an active session or is not authenticated'
});
// Run queries with RLS on the server
@@ -74,10 +73,7 @@ export const getServerSideProps = withPageAuth({ redirectTo: '/' });
```tsx
// pages/profile.js
-import {
- createServerSupabaseClient,
- User
-} from '@supabase/auth-helpers-nextjs';
+import { createServerSupabaseClient, User } from '@supabase/auth-helpers-nextjs';
import { GetServerSidePropsContext } from 'next';
export default function Profile({ user }: { user: User }) {
@@ -188,9 +184,7 @@ export const config = {
```tsx
// client-side
import type { Database } from 'types_db';
-const [supabaseClient] = useState(() =>
- createBrowserSupabaseClient()
-);
+const [supabaseClient] = useState(() => createBrowserSupabaseClient());
// server-side API route
import type { NextApiRequest, NextApiResponse } from 'next';
@@ -219,9 +213,7 @@ export default async (req: NextApiRequest, res: NextApiResponse) => {
// Creating a new supabase client object:
import { Database } from '../db_types';
-const [supabaseClient] = useState(() =>
- createBrowserSupabaseClient()
-);
+const [supabaseClient] = useState(() => createBrowserSupabaseClient());
```
```tsx
diff --git a/packages/nextjs/package.json b/packages/nextjs/package.json
index 303aa8e9..9d737de1 100644
--- a/packages/nextjs/package.json
+++ b/packages/nextjs/package.json
@@ -1,48 +1,49 @@
{
- "name": "@supabase/auth-helpers-nextjs",
- "version": "0.7.0-next.5",
- "description": "A collection of framework specific Auth utilities for working with Supabase.",
- "main": "dist/index.js",
- "types": "dist/index.d.ts",
- "publishConfig": {
- "access": "public"
- },
- "scripts": {
- "build": "tsup",
- "clean:all": "rimraf dist node_modules"
- },
- "repository": {
- "type": "git",
- "url": "git+https://github.com/supabase/auth-helpers.git"
- },
- "keywords": [
- "Supabase",
- "Auth",
- "Nextjs"
- ],
- "author": "Supabase",
- "license": "MIT",
- "bugs": {
- "url": "https://github.com/supabase/auth-helpers/issues"
- },
- "homepage": "https://github.com/supabase/auth-helpers/tree/main/packages/nextjs#readme",
- "devDependencies": {
- "@types/set-cookie-parser": "^2.4.2",
- "@supabase/supabase-js": "2.19.0",
- "config": "workspace:*",
- "next": "^12.2.5",
- "react": "^18.0.0",
- "react-dom": "^18.0.0",
- "rimraf": "^4.1.1",
- "tsconfig": "workspace:*",
- "tslib": "^2.4.1",
- "tsup": "^6.5.0"
- },
- "dependencies": {
- "@supabase/auth-helpers-shared": "workspace:*",
- "set-cookie-parser": "^2.6.0"
- },
- "peerDependencies": {
- "@supabase/supabase-js": "^2.19.0"
- }
+ "name": "@supabase/auth-helpers-nextjs",
+ "version": "0.7.0-next.5",
+ "description": "A collection of framework specific Auth utilities for working with Supabase.",
+ "main": "dist/index.js",
+ "types": "dist/index.d.ts",
+ "publishConfig": {
+ "access": "public"
+ },
+ "scripts": {
+ "lint": "tsc",
+ "build": "tsup",
+ "clean:all": "rimraf dist node_modules"
+ },
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/supabase/auth-helpers.git"
+ },
+ "keywords": [
+ "Supabase",
+ "Auth",
+ "Nextjs"
+ ],
+ "author": "Supabase",
+ "license": "MIT",
+ "bugs": {
+ "url": "https://github.com/supabase/auth-helpers/issues"
+ },
+ "homepage": "https://github.com/supabase/auth-helpers/tree/main/packages/nextjs#readme",
+ "devDependencies": {
+ "@types/set-cookie-parser": "^2.4.2",
+ "@supabase/supabase-js": "2.19.0",
+ "config": "workspace:*",
+ "next": "^12.2.5",
+ "react": "^18.0.0",
+ "react-dom": "^18.0.0",
+ "rimraf": "^4.1.1",
+ "tsconfig": "workspace:*",
+ "tslib": "^2.4.1",
+ "tsup": "^6.5.0"
+ },
+ "dependencies": {
+ "@supabase/auth-helpers-shared": "workspace:*",
+ "set-cookie-parser": "^2.6.0"
+ },
+ "peerDependencies": {
+ "@supabase/supabase-js": "^2.19.0"
+ }
}
diff --git a/packages/nextjs/src/browserClient.ts b/packages/nextjs/src/browserClient.ts
index 0eb0f0cd..e9f0e9da 100644
--- a/packages/nextjs/src/browserClient.ts
+++ b/packages/nextjs/src/browserClient.ts
@@ -1,44 +1,44 @@
import {
- BrowserCookieAuthStorageAdapter,
- CookieOptionsWithName,
- SupabaseClientOptionsWithoutAuth,
- createSupabaseClient
+ BrowserCookieAuthStorageAdapter,
+ CookieOptionsWithName,
+ SupabaseClientOptionsWithoutAuth,
+ createSupabaseClient
} from '@supabase/auth-helpers-shared';
export function createBrowserSupabaseClient<
- Database = any,
- SchemaName extends string & keyof Database = 'public' extends keyof Database
- ? 'public'
- : string & keyof Database
+ Database = any,
+ SchemaName extends string & keyof Database = 'public' extends keyof Database
+ ? 'public'
+ : string & keyof Database
>({
- supabaseUrl = process.env.NEXT_PUBLIC_SUPABASE_URL,
- supabaseKey = process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY,
- options,
- cookieOptions
+ supabaseUrl = process.env.NEXT_PUBLIC_SUPABASE_URL,
+ supabaseKey = process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY,
+ options,
+ cookieOptions
}: {
- supabaseUrl?: string;
- supabaseKey?: string;
- options?: SupabaseClientOptionsWithoutAuth;
- cookieOptions?: CookieOptionsWithName;
+ supabaseUrl?: string;
+ supabaseKey?: string;
+ options?: SupabaseClientOptionsWithoutAuth;
+ cookieOptions?: CookieOptionsWithName;
} = {}) {
- if (!supabaseUrl || !supabaseKey) {
- throw new Error(
- 'either NEXT_PUBLIC_SUPABASE_URL and NEXT_PUBLIC_SUPABASE_ANON_KEY env variables or supabaseUrl and supabaseKey are required!'
- );
- }
+ if (!supabaseUrl || !supabaseKey) {
+ throw new Error(
+ 'either NEXT_PUBLIC_SUPABASE_URL and NEXT_PUBLIC_SUPABASE_ANON_KEY env variables or supabaseUrl and supabaseKey are required!'
+ );
+ }
- return createSupabaseClient(supabaseUrl, supabaseKey, {
- ...options,
- global: {
- ...options?.global,
- headers: {
- ...options?.global?.headers,
- 'X-Client-Info': `${PACKAGE_NAME}@${PACKAGE_VERSION}`
- }
- },
- auth: {
- storageKey: cookieOptions?.name,
- storage: new BrowserCookieAuthStorageAdapter(cookieOptions)
- }
- });
+ return createSupabaseClient(supabaseUrl, supabaseKey, {
+ ...options,
+ global: {
+ ...options?.global,
+ headers: {
+ ...options?.global?.headers,
+ 'X-Client-Info': `${PACKAGE_NAME}@${PACKAGE_VERSION}`
+ }
+ },
+ auth: {
+ storageKey: cookieOptions?.name,
+ storage: new BrowserCookieAuthStorageAdapter(cookieOptions)
+ }
+ });
}
diff --git a/packages/nextjs/src/middlewareClient.ts b/packages/nextjs/src/middlewareClient.ts
index 5ef17eff..3994fd54 100644
--- a/packages/nextjs/src/middlewareClient.ts
+++ b/packages/nextjs/src/middlewareClient.ts
@@ -1,95 +1,95 @@
import {
- CookieAuthStorageAdapter,
- CookieOptions,
- CookieOptionsWithName,
- createSupabaseClient,
- parseCookies,
- serializeCookie,
- SupabaseClientOptionsWithoutAuth
+ CookieAuthStorageAdapter,
+ CookieOptions,
+ CookieOptionsWithName,
+ createSupabaseClient,
+ parseCookies,
+ serializeCookie,
+ SupabaseClientOptionsWithoutAuth
} from '@supabase/auth-helpers-shared';
import { NextRequest, NextResponse } from 'next/server';
import { splitCookiesString } from 'set-cookie-parser';
class NextMiddlewareAuthStorageAdapter extends CookieAuthStorageAdapter {
- constructor(
- private readonly context: { req: NextRequest; res: NextResponse },
- cookieOptions?: CookieOptions
- ) {
- super(cookieOptions);
- }
+ constructor(
+ private readonly context: { req: NextRequest; res: NextResponse },
+ cookieOptions?: CookieOptions
+ ) {
+ super(cookieOptions);
+ }
- protected getCookie(name: string): string | null | undefined {
- const setCookie = splitCookiesString(
- this.context.res.headers.get('set-cookie')?.toString() ?? ''
- )
- .map((c) => parseCookies(c)[name])
- .find((c) => !!c);
+ protected getCookie(name: string): string | null | undefined {
+ const setCookie = splitCookiesString(
+ this.context.res.headers.get('set-cookie')?.toString() ?? ''
+ )
+ .map((c) => parseCookies(c)[name])
+ .find((c) => !!c);
- if (setCookie) {
- return setCookie;
- }
+ if (setCookie) {
+ return setCookie;
+ }
- const cookies = parseCookies(this.context.req.headers.get('cookie') ?? '');
- return cookies[name];
- }
- protected setCookie(name: string, value: string): void {
- this._setCookie(name, value);
- }
- protected deleteCookie(name: string): void {
- this._setCookie(name, '', {
- maxAge: 0
- });
- }
+ const cookies = parseCookies(this.context.req.headers.get('cookie') ?? '');
+ return cookies[name];
+ }
+ protected setCookie(name: string, value: string): void {
+ this._setCookie(name, value);
+ }
+ protected deleteCookie(name: string): void {
+ this._setCookie(name, '', {
+ maxAge: 0
+ });
+ }
- private _setCookie(name: string, value: string, options?: CookieOptions) {
- const newSessionStr = serializeCookie(name, value, {
- ...this.cookieOptions,
- ...options,
- // Allow supabase-js on the client to read the cookie as well
- httpOnly: false
- });
+ private _setCookie(name: string, value: string, options?: CookieOptions) {
+ const newSessionStr = serializeCookie(name, value, {
+ ...this.cookieOptions,
+ ...options,
+ // Allow supabase-js on the client to read the cookie as well
+ httpOnly: false
+ });
- this.context.res.headers.append('set-cookie', newSessionStr);
- }
+ this.context.res.headers.append('set-cookie', newSessionStr);
+ }
}
export function createMiddlewareSupabaseClient<
- Database = any,
- SchemaName extends string & keyof Database = 'public' extends keyof Database
- ? 'public'
- : string & keyof Database
+ Database = any,
+ SchemaName extends string & keyof Database = 'public' extends keyof Database
+ ? 'public'
+ : string & keyof Database
>(
- context: { req: NextRequest; res: NextResponse },
- {
- supabaseUrl = process.env.NEXT_PUBLIC_SUPABASE_URL,
- supabaseKey = process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY,
- options,
- cookieOptions
- }: {
- supabaseUrl?: string;
- supabaseKey?: string;
- options?: SupabaseClientOptionsWithoutAuth;
- cookieOptions?: CookieOptionsWithName;
- } = {}
+ context: { req: NextRequest; res: NextResponse },
+ {
+ supabaseUrl = process.env.NEXT_PUBLIC_SUPABASE_URL,
+ supabaseKey = process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY,
+ options,
+ cookieOptions
+ }: {
+ supabaseUrl?: string;
+ supabaseKey?: string;
+ options?: SupabaseClientOptionsWithoutAuth;
+ cookieOptions?: CookieOptionsWithName;
+ } = {}
) {
- if (!supabaseUrl || !supabaseKey) {
- throw new Error(
- 'either NEXT_PUBLIC_SUPABASE_URL and NEXT_PUBLIC_SUPABASE_ANON_KEY env variables or supabaseUrl and supabaseKey are required!'
- );
- }
+ if (!supabaseUrl || !supabaseKey) {
+ throw new Error(
+ 'either NEXT_PUBLIC_SUPABASE_URL and NEXT_PUBLIC_SUPABASE_ANON_KEY env variables or supabaseUrl and supabaseKey are required!'
+ );
+ }
- return createSupabaseClient(supabaseUrl, supabaseKey, {
- ...options,
- global: {
- ...options?.global,
- headers: {
- ...options?.global?.headers,
- 'X-Client-Info': `${PACKAGE_NAME}@${PACKAGE_VERSION}`
- }
- },
- auth: {
- storageKey: cookieOptions?.name,
- storage: new NextMiddlewareAuthStorageAdapter(context, cookieOptions)
- }
- });
+ return createSupabaseClient(supabaseUrl, supabaseKey, {
+ ...options,
+ global: {
+ ...options?.global,
+ headers: {
+ ...options?.global?.headers,
+ 'X-Client-Info': `${PACKAGE_NAME}@${PACKAGE_VERSION}`
+ }
+ },
+ auth: {
+ storageKey: cookieOptions?.name,
+ storage: new NextMiddlewareAuthStorageAdapter(context, cookieOptions)
+ }
+ });
}
diff --git a/packages/nextjs/src/serverClient.ts b/packages/nextjs/src/serverClient.ts
index 1bc688f0..11581d64 100644
--- a/packages/nextjs/src/serverClient.ts
+++ b/packages/nextjs/src/serverClient.ts
@@ -1,103 +1,95 @@
import {
- CookieAuthStorageAdapter,
- CookieOptions,
- CookieOptionsWithName,
- createSupabaseClient,
- parseCookies,
- serializeCookie,
- SupabaseClientOptionsWithoutAuth
+ CookieAuthStorageAdapter,
+ CookieOptions,
+ CookieOptionsWithName,
+ createSupabaseClient,
+ parseCookies,
+ serializeCookie,
+ SupabaseClientOptionsWithoutAuth
} from '@supabase/auth-helpers-shared';
-import {
- GetServerSidePropsContext,
- NextApiRequest,
- NextApiResponse
-} from 'next';
+import { GetServerSidePropsContext, NextApiRequest, NextApiResponse } from 'next';
import { splitCookiesString } from 'set-cookie-parser';
class NextServerAuthStorageAdapter extends CookieAuthStorageAdapter {
- constructor(
- private readonly context:
- | GetServerSidePropsContext
- | { req: NextApiRequest; res: NextApiResponse },
- cookieOptions?: CookieOptions
- ) {
- super(cookieOptions);
- }
+ constructor(
+ private readonly context:
+ | GetServerSidePropsContext
+ | { req: NextApiRequest; res: NextApiResponse },
+ cookieOptions?: CookieOptions
+ ) {
+ super(cookieOptions);
+ }
- protected getCookie(name: string): string | null | undefined {
- const setCookie = splitCookiesString(
- this.context.res.getHeader('set-cookie')?.toString() ?? ''
- )
- .map((c) => parseCookies(c)[name])
- .find((c) => !!c);
+ protected getCookie(name: string): string | null | undefined {
+ const setCookie = splitCookiesString(this.context.res.getHeader('set-cookie')?.toString() ?? '')
+ .map((c) => parseCookies(c)[name])
+ .find((c) => !!c);
- const value = setCookie ?? this.context.req.cookies[name];
- return value;
- }
- protected setCookie(name: string, value: string): void {
- this._setCookie(name, value);
- }
- protected deleteCookie(name: string): void {
- this._setCookie(name, '', {
- maxAge: 0
- });
- }
+ const value = setCookie ?? this.context.req.cookies[name];
+ return value;
+ }
+ protected setCookie(name: string, value: string): void {
+ this._setCookie(name, value);
+ }
+ protected deleteCookie(name: string): void {
+ this._setCookie(name, '', {
+ maxAge: 0
+ });
+ }
- private _setCookie(name: string, value: string, options?: CookieOptions) {
- const setCookies = splitCookiesString(
- this.context.res.getHeader('set-cookie')?.toString() ?? ''
- ).filter((c) => !(name in parseCookies(c)));
+ private _setCookie(name: string, value: string, options?: CookieOptions) {
+ const setCookies = splitCookiesString(
+ this.context.res.getHeader('set-cookie')?.toString() ?? ''
+ ).filter((c) => !(name in parseCookies(c)));
- const cookieStr = serializeCookie(name, value, {
- ...this.cookieOptions,
- ...options,
- // Allow supabase-js on the client to read the cookie as well
- httpOnly: false
- });
+ const cookieStr = serializeCookie(name, value, {
+ ...this.cookieOptions,
+ ...options,
+ // Allow supabase-js on the client to read the cookie as well
+ httpOnly: false
+ });
- this.context.res.setHeader('set-cookie', [...setCookies, cookieStr]);
- }
+ this.context.res.setHeader('set-cookie', [...setCookies, cookieStr]);
+ }
}
export function createServerSupabaseClient<
- Database = any,
- SchemaName extends string & keyof Database = 'public' extends keyof Database
- ? 'public'
- : string & keyof Database
+ Database = any,
+ SchemaName extends string & keyof Database = 'public' extends keyof Database
+ ? 'public'
+ : string & keyof Database
>(
- context:
- | GetServerSidePropsContext
- | { req: NextApiRequest; res: NextApiResponse },
- {
- supabaseUrl = process.env.NEXT_PUBLIC_SUPABASE_URL,
- supabaseKey = process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY,
- options,
- cookieOptions
- }: {
- supabaseUrl?: string;
- supabaseKey?: string;
- options?: SupabaseClientOptionsWithoutAuth;
- cookieOptions?: CookieOptionsWithName;
- } = {}
+ context: GetServerSidePropsContext | { req: NextApiRequest; res: NextApiResponse },
+ {
+ supabaseUrl = process.env.NEXT_PUBLIC_SUPABASE_URL,
+ supabaseKey = process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY,
+ options,
+ cookieOptions
+ }: {
+ supabaseUrl?: string;
+ supabaseKey?: string;
+ options?: SupabaseClientOptionsWithoutAuth;
+ cookieOptions?: CookieOptionsWithName;
+ } = {}
) {
- if (!supabaseUrl || !supabaseKey) {
- throw new Error(
- 'either NEXT_PUBLIC_SUPABASE_URL and NEXT_PUBLIC_SUPABASE_ANON_KEY env variables or supabaseUrl and supabaseKey are required!'
- );
- }
+ if (!supabaseUrl || !supabaseKey) {
+ throw new Error(
+ 'either NEXT_PUBLIC_SUPABASE_URL and NEXT_PUBLIC_SUPABASE_ANON_KEY env variables or supabaseUrl and supabaseKey are required!'
+ );
+ }
- return createSupabaseClient(supabaseUrl, supabaseKey, {
- ...options,
- global: {
- ...options?.global,
- headers: {
- ...options?.global?.headers,
- 'X-Client-Info': `${PACKAGE_NAME}@${PACKAGE_VERSION}`
- }
- },
- auth: {
- storageKey: cookieOptions?.name,
- storage: new NextServerAuthStorageAdapter(context, cookieOptions)
- }
- });
+ return createSupabaseClient(supabaseUrl, supabaseKey, {
+ ...options,
+ global: {
+ ...options?.global,
+ headers: {
+ ...options?.global?.headers,
+ 'X-Client-Info': `${PACKAGE_NAME}@${PACKAGE_VERSION}`
+ }
+ },
+ auth: {
+ storageKey: cookieOptions?.name,
+ storage: new NextServerAuthStorageAdapter(context, cookieOptions)
+ }
+ });
}
diff --git a/packages/nextjs/src/serverComponentClient.ts b/packages/nextjs/src/serverComponentClient.ts
index bd5ca49d..c0c1e71c 100644
--- a/packages/nextjs/src/serverComponentClient.ts
+++ b/packages/nextjs/src/serverComponentClient.ts
@@ -1,79 +1,78 @@
import {
- CookieAuthStorageAdapter,
- CookieOptions,
- CookieOptionsWithName,
- SupabaseClientOptionsWithoutAuth,
- createSupabaseClient
+ CookieAuthStorageAdapter,
+ CookieOptions,
+ CookieOptionsWithName,
+ SupabaseClientOptionsWithoutAuth,
+ createSupabaseClient
} from '@supabase/auth-helpers-shared';
class NextServerComponentAuthStorageAdapter extends CookieAuthStorageAdapter {
- constructor(
- private readonly context: {
- cookies: () => any; // TODO update this to be ReadonlyHeaders when we upgrade to Next.js 13
- },
- cookieOptions?: CookieOptions
- ) {
- super(cookieOptions);
- }
+ constructor(
+ private readonly context: {
+ cookies: () => any; // TODO update this to be ReadonlyHeaders when we upgrade to Next.js 13
+ },
+ cookieOptions?: CookieOptions
+ ) {
+ super(cookieOptions);
+ }
- protected getCookie(name: string): string | null | undefined {
- const nextCookies = this.context.cookies();
- return nextCookies.get(name)?.value;
- }
- protected setCookie(name: string, value: string): void {
- // Note: The Next.js team at Vercel is working on adding the ability to
- // set cookies in addition to the cookies function.
- // https://beta.nextjs.org/docs/api-reference/cookies
- }
- protected deleteCookie(name: string): void {
- // Note: The Next.js team at Vercel is working on adding the ability to
- // set cookies in addition to the cookies function.
- // https://beta.nextjs.org/docs/api-reference/cookies
- }
+ protected getCookie(name: string): string | null | undefined {
+ const nextCookies = this.context.cookies();
+ return nextCookies.get(name)?.value;
+ }
+ protected setCookie(name: string, value: string): void {
+ // Note: The Next.js team at Vercel is working on adding the ability to
+ // set cookies in addition to the cookies function.
+ // https://beta.nextjs.org/docs/api-reference/cookies
+ }
+ protected deleteCookie(name: string): void {
+ // Note: The Next.js team at Vercel is working on adding the ability to
+ // set cookies in addition to the cookies function.
+ // https://beta.nextjs.org/docs/api-reference/cookies
+ }
}
-export const createRouteHandlerSupabaseClient =
- createServerComponentSupabaseClient;
+export const createRouteHandlerSupabaseClient = createServerComponentSupabaseClient;
export function createServerComponentSupabaseClient<
- Database = any,
- SchemaName extends string & keyof Database = 'public' extends keyof Database
- ? 'public'
- : string & keyof Database
+ Database = any,
+ SchemaName extends string & keyof Database = 'public' extends keyof Database
+ ? 'public'
+ : string & keyof Database
>(
- context: {
- cookies: () => any; // TODO update this to be ReadonlyHeaders when we upgrade to Next.js 13
- },
- {
- supabaseUrl = process.env.NEXT_PUBLIC_SUPABASE_URL,
- supabaseKey = process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY,
- options,
- cookieOptions
- }: {
- supabaseUrl?: string;
- supabaseKey?: string;
- options?: SupabaseClientOptionsWithoutAuth;
- cookieOptions?: CookieOptionsWithName;
- } = {}
+ context: {
+ cookies: () => any; // TODO update this to be ReadonlyHeaders when we upgrade to Next.js 13
+ },
+ {
+ supabaseUrl = process.env.NEXT_PUBLIC_SUPABASE_URL,
+ supabaseKey = process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY,
+ options,
+ cookieOptions
+ }: {
+ supabaseUrl?: string;
+ supabaseKey?: string;
+ options?: SupabaseClientOptionsWithoutAuth;
+ cookieOptions?: CookieOptionsWithName;
+ } = {}
) {
- if (!supabaseUrl || !supabaseKey) {
- throw new Error(
- 'either NEXT_PUBLIC_SUPABASE_URL and NEXT_PUBLIC_SUPABASE_ANON_KEY env variables or supabaseUrl and supabaseKey are required!'
- );
- }
+ if (!supabaseUrl || !supabaseKey) {
+ throw new Error(
+ 'either NEXT_PUBLIC_SUPABASE_URL and NEXT_PUBLIC_SUPABASE_ANON_KEY env variables or supabaseUrl and supabaseKey are required!'
+ );
+ }
- return createSupabaseClient(supabaseUrl, supabaseKey, {
- ...options,
- global: {
- ...options?.global,
- headers: {
- ...options?.global?.headers,
- 'X-Client-Info': `${PACKAGE_NAME}@${PACKAGE_VERSION}`
- }
- },
- auth: {
- storageKey: cookieOptions?.name,
- storage: new NextServerComponentAuthStorageAdapter(context, cookieOptions)
- }
- });
+ return createSupabaseClient(supabaseUrl, supabaseKey, {
+ ...options,
+ global: {
+ ...options?.global,
+ headers: {
+ ...options?.global?.headers,
+ 'X-Client-Info': `${PACKAGE_NAME}@${PACKAGE_VERSION}`
+ }
+ },
+ auth: {
+ storageKey: cookieOptions?.name,
+ storage: new NextServerComponentAuthStorageAdapter(context, cookieOptions)
+ }
+ });
}
diff --git a/packages/nextjs/tsconfig.json b/packages/nextjs/tsconfig.json
index 40a0a01c..204a2adc 100644
--- a/packages/nextjs/tsconfig.json
+++ b/packages/nextjs/tsconfig.json
@@ -1,9 +1,9 @@
{
- "extends": "tsconfig/base.json",
- "compilerOptions": {
- "incremental": false,
- "importHelpers": true
- },
- "include": ["src"],
- "exclude": ["node_modules"]
+ "extends": "tsconfig/base.json",
+ "compilerOptions": {
+ "incremental": false,
+ "importHelpers": true
+ },
+ "include": ["src"],
+ "exclude": ["node_modules"]
}
diff --git a/packages/nextjs/tsup.config.ts b/packages/nextjs/tsup.config.ts
index 32c87baa..f7caad9f 100644
--- a/packages/nextjs/tsup.config.ts
+++ b/packages/nextjs/tsup.config.ts
@@ -2,19 +2,19 @@ import type { Options } from 'tsup';
import pkg from './package.json';
export const tsup: Options = {
- dts: true,
- entryPoints: ['src/index.ts'],
- external: ['next', 'react', /^@supabase\//],
- format: ['cjs'],
- // inject: ['src/react-shim.js'],
- // ! .cjs/.mjs doesn't work with Angular's webpack4 config by default!
- legacyOutput: false,
- sourcemap: true,
- splitting: false,
- bundle: true,
- clean: true,
- define: {
- PACKAGE_NAME: JSON.stringify(pkg.name),
- PACKAGE_VERSION: JSON.stringify(pkg.version)
- }
+ dts: true,
+ entryPoints: ['src/index.ts'],
+ external: ['next', 'react', /^@supabase\//],
+ format: ['cjs'],
+ // inject: ['src/react-shim.js'],
+ // ! .cjs/.mjs doesn't work with Angular's webpack4 config by default!
+ legacyOutput: false,
+ sourcemap: true,
+ splitting: false,
+ bundle: true,
+ clean: true,
+ define: {
+ PACKAGE_NAME: JSON.stringify(pkg.name),
+ PACKAGE_VERSION: JSON.stringify(pkg.version)
+ }
};
diff --git a/packages/react/package.json b/packages/react/package.json
index 292121eb..b338b9de 100644
--- a/packages/react/package.json
+++ b/packages/react/package.json
@@ -1,39 +1,40 @@
{
- "name": "@supabase/auth-helpers-react",
- "version": "0.4.0-next.0",
- "main": "dist/index.js",
- "types": "dist/index.d.ts",
- "publishConfig": {
- "access": "public"
- },
- "scripts": {
- "build": "tsup",
- "clean:all": "rimraf dist node_modules"
- },
- "repository": {
- "type": "git",
- "url": "git+https://github.com/supabase/auth-helpers.git"
- },
- "keywords": [
- "Supabase",
- "Auth",
- "React"
- ],
- "author": "Supabase",
- "license": "MIT",
- "devDependencies": {
- "@supabase/supabase-js": "2.19.0",
- "@types/react": "^17.0.20",
- "@types/react-dom": "^17.0.9",
- "config": "workspace:*",
- "react": "^17.0.2",
- "react-dom": "^17.0.2",
- "rimraf": "^4.1.1",
- "tsconfig": "workspace:*",
- "tsup": "^6.5.0",
- "typescript": "^4.9.4"
- },
- "peerDependencies": {
- "@supabase/supabase-js": "^2.19.0"
- }
+ "name": "@supabase/auth-helpers-react",
+ "version": "0.4.0-next.0",
+ "main": "dist/index.js",
+ "types": "dist/index.d.ts",
+ "publishConfig": {
+ "access": "public"
+ },
+ "scripts": {
+ "lint": "tsc",
+ "build": "tsup",
+ "clean:all": "rimraf dist node_modules"
+ },
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/supabase/auth-helpers.git"
+ },
+ "keywords": [
+ "Supabase",
+ "Auth",
+ "React"
+ ],
+ "author": "Supabase",
+ "license": "MIT",
+ "devDependencies": {
+ "@supabase/supabase-js": "2.19.0",
+ "@types/react": "^17.0.20",
+ "@types/react-dom": "^17.0.9",
+ "config": "workspace:*",
+ "react": "^17.0.2",
+ "react-dom": "^17.0.2",
+ "rimraf": "^4.1.1",
+ "tsconfig": "workspace:*",
+ "tsup": "^6.5.0",
+ "typescript": "^4.9.4"
+ },
+ "peerDependencies": {
+ "@supabase/supabase-js": "^2.19.0"
+ }
}
diff --git a/packages/react/src/components/SessionContext.tsx b/packages/react/src/components/SessionContext.tsx
index b7590b03..76413c20 100644
--- a/packages/react/src/components/SessionContext.tsx
+++ b/packages/react/src/components/SessionContext.tsx
@@ -1,180 +1,174 @@
import { AuthError, Session, SupabaseClient } from '@supabase/supabase-js';
import React, {
- createContext,
- PropsWithChildren,
- useContext,
- useEffect,
- useMemo,
- useState
+ createContext,
+ PropsWithChildren,
+ useContext,
+ useEffect,
+ useMemo,
+ useState
} from 'react';
export type SessionContext =
- | {
- isLoading: true;
- session: null;
- error: null;
- supabaseClient: SupabaseClient;
- }
- | {
- isLoading: false;
- session: Session;
- error: null;
- supabaseClient: SupabaseClient;
- }
- | {
- isLoading: false;
- session: null;
- error: AuthError;
- supabaseClient: SupabaseClient;
- }
- | {
- isLoading: false;
- session: null;
- error: null;
- supabaseClient: SupabaseClient;
- };
+ | {
+ isLoading: true;
+ session: null;
+ error: null;
+ supabaseClient: SupabaseClient;
+ }
+ | {
+ isLoading: false;
+ session: Session;
+ error: null;
+ supabaseClient: SupabaseClient;
+ }
+ | {
+ isLoading: false;
+ session: null;
+ error: AuthError;
+ supabaseClient: SupabaseClient;
+ }
+ | {
+ isLoading: false;
+ session: null;
+ error: null;
+ supabaseClient: SupabaseClient;
+ };
const SessionContext = createContext({
- isLoading: true,
- session: null,
- error: null,
- supabaseClient: {} as any
+ isLoading: true,
+ session: null,
+ error: null,
+ supabaseClient: {} as any
});
export interface SessionContextProviderProps {
- supabaseClient: SupabaseClient;
- initialSession?: Session | null;
+ supabaseClient: SupabaseClient;
+ initialSession?: Session | null;
}
export const SessionContextProvider = ({
- supabaseClient,
- initialSession = null,
- children
+ supabaseClient,
+ initialSession = null,
+ children
}: PropsWithChildren) => {
- const [session, setSession] = useState(initialSession);
- const [isLoading, setIsLoading] = useState(!initialSession);
- const [error, setError] = useState();
-
- useEffect(() => {
- let mounted = true;
-
- async function getSession() {
- const {
- data: { session },
- error
- } = await supabaseClient.auth.getSession();
-
- // only update the react state if the component is still mounted
- if (mounted) {
- if (error) {
- setError(error);
- setIsLoading(false);
- return;
- }
-
- setSession(session);
- setIsLoading(false);
- }
- }
-
- getSession();
-
- return () => {
- mounted = false;
- }
- }, []);
-
- useEffect(() => {
- const {
- data: { subscription }
- } = supabaseClient.auth.onAuthStateChange((event, session) => {
- if (session && (event === 'SIGNED_IN' || event === 'TOKEN_REFRESHED')) {
- setSession(session);
- }
-
- if (event === 'SIGNED_OUT') {
- setSession(null);
- }
- });
-
- return () => {
- subscription.unsubscribe();
- };
- }, []);
-
- const value: SessionContext = useMemo(() => {
- if (isLoading) {
- return {
- isLoading: true,
- session: null,
- error: null,
- supabaseClient
- };
- }
-
- if (error) {
- return {
- isLoading: false,
- session: null,
- error,
- supabaseClient
- };
- }
-
- return {
- isLoading: false,
- session,
- error: null,
- supabaseClient
- };
- }, [isLoading, session, error]);
-
- return (
- {children}
- );
+ const [session, setSession] = useState(initialSession);
+ const [isLoading, setIsLoading] = useState(!initialSession);
+ const [error, setError] = useState();
+
+ useEffect(() => {
+ let mounted = true;
+
+ async function getSession() {
+ const {
+ data: { session },
+ error
+ } = await supabaseClient.auth.getSession();
+
+ // only update the react state if the component is still mounted
+ if (mounted) {
+ if (error) {
+ setError(error);
+ setIsLoading(false);
+ return;
+ }
+
+ setSession(session);
+ setIsLoading(false);
+ }
+ }
+
+ getSession();
+
+ return () => {
+ mounted = false;
+ };
+ }, []);
+
+ useEffect(() => {
+ const {
+ data: { subscription }
+ } = supabaseClient.auth.onAuthStateChange((event, session) => {
+ if (session && (event === 'SIGNED_IN' || event === 'TOKEN_REFRESHED')) {
+ setSession(session);
+ }
+
+ if (event === 'SIGNED_OUT') {
+ setSession(null);
+ }
+ });
+
+ return () => {
+ subscription.unsubscribe();
+ };
+ }, []);
+
+ const value: SessionContext = useMemo(() => {
+ if (isLoading) {
+ return {
+ isLoading: true,
+ session: null,
+ error: null,
+ supabaseClient
+ };
+ }
+
+ if (error) {
+ return {
+ isLoading: false,
+ session: null,
+ error,
+ supabaseClient
+ };
+ }
+
+ return {
+ isLoading: false,
+ session,
+ error: null,
+ supabaseClient
+ };
+ }, [isLoading, session, error]);
+
+ return {children} ;
};
export const useSessionContext = () => {
- const context = useContext(SessionContext);
- if (context === undefined) {
- throw new Error(
- `useSessionContext must be used within a SessionContextProvider.`
- );
- }
-
- return context;
+ const context = useContext(SessionContext);
+ if (context === undefined) {
+ throw new Error(`useSessionContext must be used within a SessionContextProvider.`);
+ }
+
+ return context;
};
export function useSupabaseClient<
- Database = any,
- SchemaName extends string & keyof Database = 'public' extends keyof Database
- ? 'public'
- : string & keyof Database
+ Database = any,
+ SchemaName extends string & keyof Database = 'public' extends keyof Database
+ ? 'public'
+ : string & keyof Database
>() {
- const context = useContext(SessionContext);
- if (context === undefined) {
- throw new Error(
- `useSupabaseClient must be used within a SessionContextProvider.`
- );
- }
-
- return context.supabaseClient as SupabaseClient;
+ const context = useContext(SessionContext);
+ if (context === undefined) {
+ throw new Error(`useSupabaseClient must be used within a SessionContextProvider.`);
+ }
+
+ return context.supabaseClient as SupabaseClient;
}
export const useSession = () => {
- const context = useContext(SessionContext);
- if (context === undefined) {
- throw new Error(`useSession must be used within a SessionContextProvider.`);
- }
+ const context = useContext(SessionContext);
+ if (context === undefined) {
+ throw new Error(`useSession must be used within a SessionContextProvider.`);
+ }
- return context.session;
+ return context.session;
};
export const useUser = () => {
- const context = useContext(SessionContext);
- if (context === undefined) {
- throw new Error(`useUser must be used within a SessionContextProvider.`);
- }
+ const context = useContext(SessionContext);
+ if (context === undefined) {
+ throw new Error(`useUser must be used within a SessionContextProvider.`);
+ }
- return context.session?.user ?? null;
+ return context.session?.user ?? null;
};
diff --git a/packages/react/tsconfig.json b/packages/react/tsconfig.json
index 24442de5..b7d6e5a0 100644
--- a/packages/react/tsconfig.json
+++ b/packages/react/tsconfig.json
@@ -1,9 +1,9 @@
{
- "extends": "tsconfig/react-library.json",
- "compilerOptions": {
- "allowSyntheticDefaultImports": true,
- "allowJs": true
- },
- "include": ["src"],
- "exclude": ["dist", "build", "node_modules"]
+ "extends": "tsconfig/react-library.json",
+ "compilerOptions": {
+ "allowSyntheticDefaultImports": true,
+ "allowJs": true
+ },
+ "include": ["src"],
+ "exclude": ["dist", "build", "node_modules"]
}
diff --git a/packages/react/tsup.config.ts b/packages/react/tsup.config.ts
index 87ff1291..82466034 100644
--- a/packages/react/tsup.config.ts
+++ b/packages/react/tsup.config.ts
@@ -1,15 +1,15 @@
import type { Options } from 'tsup';
export const tsup: Options = {
- dts: true,
- entryPoints: ['src/index.tsx'],
- external: ['react', /^@supabase\//],
- format: ['cjs'],
- // inject: ['src/react-shim.js'],
- // ! .cjs/.mjs doesn't work with Angular's webpack4 config by default!
- legacyOutput: false,
- sourcemap: true,
- splitting: false,
- bundle: true,
- clean: true
+ dts: true,
+ entryPoints: ['src/index.tsx'],
+ external: ['react', /^@supabase\//],
+ format: ['cjs'],
+ // inject: ['src/react-shim.js'],
+ // ! .cjs/.mjs doesn't work with Angular's webpack4 config by default!
+ legacyOutput: false,
+ sourcemap: true,
+ splitting: false,
+ bundle: true,
+ clean: true
};
diff --git a/packages/remix/package.json b/packages/remix/package.json
index a55b5abd..ce032e1b 100644
--- a/packages/remix/package.json
+++ b/packages/remix/package.json
@@ -1,48 +1,49 @@
{
- "name": "@supabase/auth-helpers-remix",
- "version": "0.2.0-next.3",
- "description": "A collection of framework specific Auth utilities for working with Supabase.",
- "main": "dist/index.js",
- "types": "dist/index.d.ts",
- "publishConfig": {
- "access": "public"
- },
- "scripts": {
- "build": "tsup",
- "clean:all": "rimraf dist node_modules"
- },
- "repository": {
- "type": "git",
- "url": "git+https://github.com/supabase/auth-helpers.git"
- },
- "keywords": [
- "Supabase",
- "Auth",
- "Remix"
- ],
- "author": "Supabase",
- "license": "MIT",
- "bugs": {
- "url": "https://github.com/supabase/auth-helpers/issues"
- },
- "homepage": "https://github.com/supabase/auth-helpers/tree/main/packages/remix#readme",
- "devDependencies": {
- "@remix-run/node": "^1.7.3",
- "@remix-run/react": "^1.7.3",
- "@remix-run/serve": "^1.7.3",
- "@supabase/supabase-js": "2.19.0",
- "config": "workspace:*",
- "react": "^18.0.0",
- "react-dom": "^18.0.0",
- "rimraf": "^4.1.1",
- "tsconfig": "workspace:*",
- "tslib": "^2.4.1",
- "tsup": "^6.5.0"
- },
- "dependencies": {
- "@supabase/auth-helpers-shared": "workspace:*"
- },
- "peerDependencies": {
- "@supabase/supabase-js": "^2.19.0"
- }
+ "name": "@supabase/auth-helpers-remix",
+ "version": "0.2.0-next.3",
+ "description": "A collection of framework specific Auth utilities for working with Supabase.",
+ "main": "dist/index.js",
+ "types": "dist/index.d.ts",
+ "publishConfig": {
+ "access": "public"
+ },
+ "scripts": {
+ "lint": "tsc",
+ "build": "tsup",
+ "clean:all": "rimraf dist node_modules"
+ },
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/supabase/auth-helpers.git"
+ },
+ "keywords": [
+ "Supabase",
+ "Auth",
+ "Remix"
+ ],
+ "author": "Supabase",
+ "license": "MIT",
+ "bugs": {
+ "url": "https://github.com/supabase/auth-helpers/issues"
+ },
+ "homepage": "https://github.com/supabase/auth-helpers/tree/main/packages/remix#readme",
+ "devDependencies": {
+ "@remix-run/node": "^1.7.3",
+ "@remix-run/react": "^1.7.3",
+ "@remix-run/serve": "^1.7.3",
+ "@supabase/supabase-js": "2.19.0",
+ "config": "workspace:*",
+ "react": "^18.0.0",
+ "react-dom": "^18.0.0",
+ "rimraf": "^4.1.1",
+ "tsconfig": "workspace:*",
+ "tslib": "^2.4.1",
+ "tsup": "^6.5.0"
+ },
+ "dependencies": {
+ "@supabase/auth-helpers-shared": "workspace:*"
+ },
+ "peerDependencies": {
+ "@supabase/supabase-js": "^2.19.0"
+ }
}
diff --git a/packages/remix/src/createSupabaseClient.ts b/packages/remix/src/createSupabaseClient.ts
index a693f72a..f6c150a4 100644
--- a/packages/remix/src/createSupabaseClient.ts
+++ b/packages/remix/src/createSupabaseClient.ts
@@ -1,12 +1,12 @@
import {
- BrowserCookieAuthStorageAdapter,
- CookieAuthStorageAdapter,
- CookieOptions,
- CookieOptionsWithName,
- createSupabaseClient,
- parseCookies,
- serializeCookie,
- SupabaseClientOptionsWithoutAuth
+ BrowserCookieAuthStorageAdapter,
+ CookieAuthStorageAdapter,
+ CookieOptions,
+ CookieOptionsWithName,
+ createSupabaseClient,
+ parseCookies,
+ serializeCookie,
+ SupabaseClientOptionsWithoutAuth
} from '@supabase/auth-helpers-shared';
import { SupabaseClient } from '@supabase/supabase-js';
@@ -87,122 +87,118 @@ import { SupabaseClient } from '@supabase/supabase-js';
*/
export function createBrowserClient<
- Database = any,
- SchemaName extends string & keyof Database = 'public' extends keyof Database
- ? 'public'
- : string & keyof Database
+ Database = any,
+ SchemaName extends string & keyof Database = 'public' extends keyof Database
+ ? 'public'
+ : string & keyof Database
>(
- supabaseUrl: string,
- supabaseKey: string,
- {
- options,
- cookieOptions
- }: {
- options?: SupabaseClientOptionsWithoutAuth;
- cookieOptions?: CookieOptionsWithName;
- } = {}
+ supabaseUrl: string,
+ supabaseKey: string,
+ {
+ options,
+ cookieOptions
+ }: {
+ options?: SupabaseClientOptionsWithoutAuth;
+ cookieOptions?: CookieOptionsWithName;
+ } = {}
): SupabaseClient {
- if (!supabaseUrl || !supabaseKey) {
- throw new Error(
- 'supabaseUrl and supabaseKey are required to create a Supabase client! Find these under `Settings` > `API` in your Supabase dashboard.'
- );
- }
+ if (!supabaseUrl || !supabaseKey) {
+ throw new Error(
+ 'supabaseUrl and supabaseKey are required to create a Supabase client! Find these under `Settings` > `API` in your Supabase dashboard.'
+ );
+ }
- return createSupabaseClient(supabaseUrl, supabaseKey, {
- ...options,
- global: {
- ...options?.global,
- headers: {
- ...options?.global?.headers,
- 'X-Client-Info': `${PACKAGE_NAME}@${PACKAGE_VERSION}`
- }
- },
- auth: {
- storageKey: cookieOptions?.name,
- storage: new BrowserCookieAuthStorageAdapter(cookieOptions)
- }
- });
+ return createSupabaseClient(supabaseUrl, supabaseKey, {
+ ...options,
+ global: {
+ ...options?.global,
+ headers: {
+ ...options?.global?.headers,
+ 'X-Client-Info': `${PACKAGE_NAME}@${PACKAGE_VERSION}`
+ }
+ },
+ auth: {
+ storageKey: cookieOptions?.name,
+ storage: new BrowserCookieAuthStorageAdapter(cookieOptions)
+ }
+ });
}
class RemixServerAuthStorageAdapter extends CookieAuthStorageAdapter {
- constructor(
- private readonly request: Request,
- private readonly response: Response,
- cookieOptions?: CookieOptions
- ) {
- super(cookieOptions);
- }
+ constructor(
+ private readonly request: Request,
+ private readonly response: Response,
+ cookieOptions?: CookieOptions
+ ) {
+ super(cookieOptions);
+ }
- protected getCookie(name: string): string | null | undefined {
- return parseCookies(this.request?.headers?.get('Cookie') ?? '')[name];
- }
- protected setCookie(name: string, value: string): void {
- const cookieStr = serializeCookie(name, value, {
- ...this.cookieOptions,
- // Allow supabase-js on the client to read the cookie as well
- httpOnly: false
- });
- this.response.headers.append('set-cookie', cookieStr);
- }
- protected deleteCookie(name: string): void {
- const cookieStr = serializeCookie(name, '', {
- ...this.cookieOptions,
- maxAge: 0,
- // Allow supabase-js on the client to read the cookie as well
- httpOnly: false
- });
- this.response.headers.append('set-cookie', cookieStr);
- }
+ protected getCookie(name: string): string | null | undefined {
+ return parseCookies(this.request?.headers?.get('Cookie') ?? '')[name];
+ }
+ protected setCookie(name: string, value: string): void {
+ const cookieStr = serializeCookie(name, value, {
+ ...this.cookieOptions,
+ // Allow supabase-js on the client to read the cookie as well
+ httpOnly: false
+ });
+ this.response.headers.append('set-cookie', cookieStr);
+ }
+ protected deleteCookie(name: string): void {
+ const cookieStr = serializeCookie(name, '', {
+ ...this.cookieOptions,
+ maxAge: 0,
+ // Allow supabase-js on the client to read the cookie as well
+ httpOnly: false
+ });
+ this.response.headers.append('set-cookie', cookieStr);
+ }
}
export function createServerClient<
- Database = any,
- SchemaName extends string & keyof Database = 'public' extends keyof Database
- ? 'public'
- : string & keyof Database
+ Database = any,
+ SchemaName extends string & keyof Database = 'public' extends keyof Database
+ ? 'public'
+ : string & keyof Database
>(
- supabaseUrl: string,
- supabaseKey: string,
- {
- request,
- response,
- options,
- cookieOptions
- }: {
- request: Request;
- response: Response;
- options?: SupabaseClientOptionsWithoutAuth;
- cookieOptions?: CookieOptionsWithName;
- }
+ supabaseUrl: string,
+ supabaseKey: string,
+ {
+ request,
+ response,
+ options,
+ cookieOptions
+ }: {
+ request: Request;
+ response: Response;
+ options?: SupabaseClientOptionsWithoutAuth;
+ cookieOptions?: CookieOptionsWithName;
+ }
): SupabaseClient {
- if (!supabaseUrl || !supabaseKey) {
- throw new Error(
- 'supabaseUrl and supabaseKey are required to create a Supabase client! Find these under `Settings` > `API` in your Supabase dashboard.'
- );
- }
+ if (!supabaseUrl || !supabaseKey) {
+ throw new Error(
+ 'supabaseUrl and supabaseKey are required to create a Supabase client! Find these under `Settings` > `API` in your Supabase dashboard.'
+ );
+ }
- if (!request || !response) {
- throw new Error(
- 'request and response must be passed to createSupabaseClient function, when called from loader or action'
- );
- }
+ if (!request || !response) {
+ throw new Error(
+ 'request and response must be passed to createSupabaseClient function, when called from loader or action'
+ );
+ }
- return createSupabaseClient(supabaseUrl, supabaseKey, {
- ...options,
- global: {
- ...options?.global,
- headers: {
- ...options?.global?.headers,
- 'X-Client-Info': `${PACKAGE_NAME}@${PACKAGE_VERSION}`
- }
- },
- auth: {
- storageKey: cookieOptions?.name,
- storage: new RemixServerAuthStorageAdapter(
- request,
- response,
- cookieOptions
- )
- }
- });
+ return createSupabaseClient(supabaseUrl, supabaseKey, {
+ ...options,
+ global: {
+ ...options?.global,
+ headers: {
+ ...options?.global?.headers,
+ 'X-Client-Info': `${PACKAGE_NAME}@${PACKAGE_VERSION}`
+ }
+ },
+ auth: {
+ storageKey: cookieOptions?.name,
+ storage: new RemixServerAuthStorageAdapter(request, response, cookieOptions)
+ }
+ });
}
diff --git a/packages/remix/src/index.ts b/packages/remix/src/index.ts
index 26e3de06..9a32f101 100644
--- a/packages/remix/src/index.ts
+++ b/packages/remix/src/index.ts
@@ -1,8 +1,5 @@
// Methods
-export {
- createBrowserClient,
- createServerClient
-} from './createSupabaseClient';
+export { createBrowserClient, createServerClient } from './createSupabaseClient';
// Types
export type { Session, User, SupabaseClient } from '@supabase/supabase-js';
diff --git a/packages/remix/tsconfig.json b/packages/remix/tsconfig.json
index 40a0a01c..204a2adc 100644
--- a/packages/remix/tsconfig.json
+++ b/packages/remix/tsconfig.json
@@ -1,9 +1,9 @@
{
- "extends": "tsconfig/base.json",
- "compilerOptions": {
- "incremental": false,
- "importHelpers": true
- },
- "include": ["src"],
- "exclude": ["node_modules"]
+ "extends": "tsconfig/base.json",
+ "compilerOptions": {
+ "incremental": false,
+ "importHelpers": true
+ },
+ "include": ["src"],
+ "exclude": ["node_modules"]
}
diff --git a/packages/remix/tsup.config.ts b/packages/remix/tsup.config.ts
index 195d3edc..d33a29c7 100644
--- a/packages/remix/tsup.config.ts
+++ b/packages/remix/tsup.config.ts
@@ -2,19 +2,19 @@ import type { Options } from 'tsup';
import pkg from './package.json';
export const tsup: Options = {
- dts: true,
- entryPoints: ['src/index.ts'],
- external: ['remix', 'react', /^@supabase\//],
- format: ['cjs'],
- // inject: ['src/react-shim.js'],
- // ! .cjs/.mjs doesn't work with Angular's webpack4 config by default!
- legacyOutput: false,
- sourcemap: true,
- splitting: false,
- bundle: true,
- clean: true,
- define: {
- PACKAGE_NAME: JSON.stringify(pkg.name),
- PACKAGE_VERSION: JSON.stringify(pkg.version)
- }
+ dts: true,
+ entryPoints: ['src/index.ts'],
+ external: ['remix', 'react', /^@supabase\//],
+ format: ['cjs'],
+ // inject: ['src/react-shim.js'],
+ // ! .cjs/.mjs doesn't work with Angular's webpack4 config by default!
+ legacyOutput: false,
+ sourcemap: true,
+ splitting: false,
+ bundle: true,
+ clean: true,
+ define: {
+ PACKAGE_NAME: JSON.stringify(pkg.name),
+ PACKAGE_VERSION: JSON.stringify(pkg.version)
+ }
};
diff --git a/packages/shared/package.json b/packages/shared/package.json
index 4a87b583..76c04baf 100644
--- a/packages/shared/package.json
+++ b/packages/shared/package.json
@@ -1,48 +1,49 @@
{
- "name": "@supabase/auth-helpers-shared",
- "version": "0.4.0-next.3",
- "main": "dist/index.js",
- "module": "dist/index.mjs",
- "types": "dist/index.d.ts",
- "publishConfig": {
- "access": "public"
- },
- "files": [
- "dist"
- ],
- "scripts": {
- "build": "tsup"
- },
- "repository": {
- "type": "git",
- "url": "git+https://github.com/supabase/auth-helpers.git"
- },
- "keywords": [
- "Supabase",
- "Auth",
- "Svelte Kit",
- "Svelte"
- ],
- "author": "Supabase",
- "license": "MIT",
- "bugs": {
- "url": "https://github.com/supabase/auth-helpers/issues"
- },
- "homepage": "https://github.com/supabase/auth-helpers#readme",
- "devDependencies": {
- "@supabase/supabase-js": "2.19.0",
- "@types/cookie": "^0.5.1",
- "cookie": "^0.5.0",
- "next": "^12.1.5",
- "react": ">=17.0.2 <18.0.0 || >=18.0.0-0 <19.0.0",
- "react-dom": "^17.0.2 || ^18.0.0-0",
- "tsconfig": "workspace:*",
- "tsup": "^6.5.0"
- },
- "dependencies": {
- "jose": "^4.14.3"
- },
- "peerDependencies": {
- "@supabase/supabase-js": "^2.19.0"
- }
+ "name": "@supabase/auth-helpers-shared",
+ "version": "0.4.0-next.3",
+ "main": "dist/index.js",
+ "module": "dist/index.mjs",
+ "types": "dist/index.d.ts",
+ "publishConfig": {
+ "access": "public"
+ },
+ "files": [
+ "dist"
+ ],
+ "scripts": {
+ "lint": "tsc",
+ "build": "tsup"
+ },
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/supabase/auth-helpers.git"
+ },
+ "keywords": [
+ "Supabase",
+ "Auth",
+ "Svelte Kit",
+ "Svelte"
+ ],
+ "author": "Supabase",
+ "license": "MIT",
+ "bugs": {
+ "url": "https://github.com/supabase/auth-helpers/issues"
+ },
+ "homepage": "https://github.com/supabase/auth-helpers#readme",
+ "devDependencies": {
+ "@supabase/supabase-js": "2.19.0",
+ "@types/cookie": "^0.5.1",
+ "cookie": "^0.5.0",
+ "next": "^12.1.5",
+ "react": ">=17.0.2 <18.0.0 || >=18.0.0-0 <19.0.0",
+ "react-dom": "^17.0.2 || ^18.0.0-0",
+ "tsconfig": "workspace:*",
+ "tsup": "^6.5.0"
+ },
+ "dependencies": {
+ "jose": "^4.14.3"
+ },
+ "peerDependencies": {
+ "@supabase/supabase-js": "^2.19.0"
+ }
}
diff --git a/packages/shared/src/browserCookieStorage.ts b/packages/shared/src/browserCookieStorage.ts
index 2c9c8276..42ecb47b 100644
--- a/packages/shared/src/browserCookieStorage.ts
+++ b/packages/shared/src/browserCookieStorage.ts
@@ -4,33 +4,33 @@ import { CookieOptions } from './types';
import { isBrowser } from './utils';
export class BrowserCookieAuthStorageAdapter extends CookieAuthStorageAdapter {
- constructor(cookieOptions?: CookieOptions) {
- super(cookieOptions);
- }
+ constructor(cookieOptions?: CookieOptions) {
+ super(cookieOptions);
+ }
- protected getCookie(name: string) {
- if (!isBrowser()) return null;
+ protected getCookie(name: string) {
+ if (!isBrowser()) return null;
- const cookies = parse(document.cookie);
- return cookies[name];
- }
+ const cookies = parse(document.cookie);
+ return cookies[name];
+ }
- protected setCookie(name: string, value: string) {
- if (!isBrowser()) return null;
+ protected setCookie(name: string, value: string) {
+ if (!isBrowser()) return null;
- document.cookie = serialize(name, value, {
- ...this.cookieOptions,
- httpOnly: false
- });
- }
+ document.cookie = serialize(name, value, {
+ ...this.cookieOptions,
+ httpOnly: false
+ });
+ }
- protected deleteCookie(name: string) {
- if (!isBrowser()) return null;
+ protected deleteCookie(name: string) {
+ if (!isBrowser()) return null;
- document.cookie = serialize(name, '', {
- ...this.cookieOptions,
- maxAge: 0,
- httpOnly: false
- });
- }
+ document.cookie = serialize(name, '', {
+ ...this.cookieOptions,
+ maxAge: 0,
+ httpOnly: false
+ });
+ }
}
diff --git a/packages/shared/src/cookieAuthStorageAdapter.ts b/packages/shared/src/cookieAuthStorageAdapter.ts
index 6bc469a3..88c25359 100644
--- a/packages/shared/src/cookieAuthStorageAdapter.ts
+++ b/packages/shared/src/cookieAuthStorageAdapter.ts
@@ -1,55 +1,50 @@
import { GoTrueClientOptions, Session } from '@supabase/supabase-js';
-import {
- DEFAULT_COOKIE_OPTIONS,
- parseSupabaseCookie,
- stringifySupabaseSession
-} from './utils';
+import { DEFAULT_COOKIE_OPTIONS, parseSupabaseCookie, stringifySupabaseSession } from './utils';
import { CookieOptions } from './types';
-export interface StorageAdapter
- extends Exclude {}
+export interface StorageAdapter extends Exclude {}
export abstract class CookieAuthStorageAdapter implements StorageAdapter {
- protected readonly cookieOptions: CookieOptions;
+ protected readonly cookieOptions: CookieOptions;
- constructor(cookieOptions?: CookieOptions) {
- this.cookieOptions = {
- ...DEFAULT_COOKIE_OPTIONS,
- ...cookieOptions
- };
- }
+ constructor(cookieOptions?: CookieOptions) {
+ this.cookieOptions = {
+ ...DEFAULT_COOKIE_OPTIONS,
+ ...cookieOptions
+ };
+ }
- protected abstract getCookie(name: string): string | undefined | null;
- protected abstract setCookie(name: string, value: string): void;
- protected abstract deleteCookie(name: string): void;
+ protected abstract getCookie(name: string): string | undefined | null;
+ protected abstract setCookie(name: string, value: string): void;
+ protected abstract deleteCookie(name: string): void;
- getItem(key: string): string | Promise | null {
- const value = this.getCookie(key);
+ getItem(key: string): string | Promise | null {
+ const value = this.getCookie(key);
- if (!value) return null;
+ if (!value) return null;
- // pkce code verifier
- if (key.endsWith('-code-verifier')) {
- return value;
- }
+ // pkce code verifier
+ if (key.endsWith('-code-verifier')) {
+ return value;
+ }
- return JSON.stringify(parseSupabaseCookie(value));
- }
+ return JSON.stringify(parseSupabaseCookie(value));
+ }
- setItem(key: string, value: string): void | Promise {
- // pkce code verifier
- if (key.endsWith('-code-verifier')) {
- this.setCookie(key, value);
- return;
- }
+ setItem(key: string, value: string): void | Promise {
+ // pkce code verifier
+ if (key.endsWith('-code-verifier')) {
+ this.setCookie(key, value);
+ return;
+ }
- let session: Session = JSON.parse(value);
- const sessionStr = stringifySupabaseSession(session);
+ let session: Session = JSON.parse(value);
+ const sessionStr = stringifySupabaseSession(session);
- this.setCookie(key, sessionStr);
- }
+ this.setCookie(key, sessionStr);
+ }
- removeItem(key: string): void | Promise {
- this.deleteCookie(key);
- }
+ removeItem(key: string): void | Promise {
+ this.deleteCookie(key);
+ }
}
diff --git a/packages/shared/src/createClient.ts b/packages/shared/src/createClient.ts
index a8fae77c..f44ed2a0 100644
--- a/packages/shared/src/createClient.ts
+++ b/packages/shared/src/createClient.ts
@@ -4,37 +4,37 @@ import { isBrowser } from './utils';
import { StorageAdapter } from './cookieAuthStorageAdapter';
export function createSupabaseClient<
- Database = any,
- SchemaName extends string & keyof Database = 'public' extends keyof Database
- ? 'public'
- : string & keyof Database
+ Database = any,
+ SchemaName extends string & keyof Database = 'public' extends keyof Database
+ ? 'public'
+ : string & keyof Database
>(
- supabaseUrl: string,
- supabaseKey: string,
- options: SupabaseClientOptionsWithoutAuth & {
- auth: {
- storage: StorageAdapter;
- storageKey?: string;
- };
- }
+ supabaseUrl: string,
+ supabaseKey: string,
+ options: SupabaseClientOptionsWithoutAuth & {
+ auth: {
+ storage: StorageAdapter;
+ storageKey?: string;
+ };
+ }
) {
- const bowser = isBrowser();
+ const bowser = isBrowser();
- return createClient(supabaseUrl, supabaseKey, {
- ...options,
- auth: {
- flowType: 'pkce',
- autoRefreshToken: bowser,
- detectSessionInUrl: bowser,
- persistSession: true,
- storage: options.auth.storage,
+ return createClient(supabaseUrl, supabaseKey, {
+ ...options,
+ auth: {
+ flowType: 'pkce',
+ autoRefreshToken: bowser,
+ detectSessionInUrl: bowser,
+ persistSession: true,
+ storage: options.auth.storage,
- // fix this in supabase-js
- ...(options.auth?.storageKey
- ? {
- storageKey: options.auth.storageKey
- }
- : {})
- }
- });
+ // fix this in supabase-js
+ ...(options.auth?.storageKey
+ ? {
+ storageKey: options.auth.storageKey
+ }
+ : {})
+ }
+ });
}
diff --git a/packages/shared/src/index.ts b/packages/shared/src/index.ts
index 2c1b1796..6e3ec8cc 100644
--- a/packages/shared/src/index.ts
+++ b/packages/shared/src/index.ts
@@ -4,10 +4,10 @@ export * from './createClient';
export * from './types';
export {
- parseCookies,
- serializeCookie,
- parseSupabaseCookie,
- stringifySupabaseSession,
- isBrowser,
- DEFAULT_COOKIE_OPTIONS
+ parseCookies,
+ serializeCookie,
+ parseSupabaseCookie,
+ stringifySupabaseSession,
+ isBrowser,
+ DEFAULT_COOKIE_OPTIONS
} from './utils';
diff --git a/packages/shared/src/types.ts b/packages/shared/src/types.ts
index ef3f5cda..88c6d931 100644
--- a/packages/shared/src/types.ts
+++ b/packages/shared/src/types.ts
@@ -2,13 +2,13 @@ import type { CookieSerializeOptions } from 'cookie';
import type { SupabaseClientOptions } from '@supabase/supabase-js';
export type CookieOptions = Pick<
- CookieSerializeOptions,
- 'domain' | 'secure' | 'path' | 'sameSite' | 'maxAge'
+ CookieSerializeOptions,
+ 'domain' | 'secure' | 'path' | 'sameSite' | 'maxAge'
>;
export type CookieOptionsWithName = { name?: string } & CookieOptions;
export type SupabaseClientOptionsWithoutAuth = Omit<
- SupabaseClientOptions,
- 'auth'
+ SupabaseClientOptions,
+ 'auth'
>;
diff --git a/packages/shared/src/utils/constants.ts b/packages/shared/src/utils/constants.ts
index 1ff54c77..c6dd4233 100644
--- a/packages/shared/src/utils/constants.ts
+++ b/packages/shared/src/utils/constants.ts
@@ -1,6 +1,6 @@
import { CookieOptions } from '../types';
export const DEFAULT_COOKIE_OPTIONS: CookieOptions = {
- path: '/',
- maxAge: 60 * 60 * 24 * 365 * 1000
+ path: '/',
+ maxAge: 60 * 60 * 24 * 365 * 1000
};
diff --git a/packages/shared/src/utils/cookies.ts b/packages/shared/src/utils/cookies.ts
index d8f7d279..77d0cd80 100644
--- a/packages/shared/src/utils/cookies.ts
+++ b/packages/shared/src/utils/cookies.ts
@@ -8,77 +8,70 @@ export { parse as parseCookies, serialize as serializeCookie };
* Based on the environment and the request we know if a secure cookie can be set.
*/
export function isSecureEnvironment(headerHost?: string | string[]) {
- if (!headerHost) {
- throw new Error('The "host" request header is not available');
- }
+ if (!headerHost) {
+ throw new Error('The "host" request header is not available');
+ }
- const headerHostStr = Array.isArray(headerHost) ? headerHost[0] : headerHost;
+ const headerHostStr = Array.isArray(headerHost) ? headerHost[0] : headerHost;
- const host =
- (headerHostStr.indexOf(':') > -1 && headerHostStr.split(':')[0]) ||
- headerHostStr;
- if (
- ['localhost', '127.0.0.1'].indexOf(host) > -1 ||
- host.endsWith('.local')
- ) {
- return false;
- }
+ const host = (headerHostStr.indexOf(':') > -1 && headerHostStr.split(':')[0]) || headerHostStr;
+ if (['localhost', '127.0.0.1'].indexOf(host) > -1 || host.endsWith('.local')) {
+ return false;
+ }
- return true;
+ return true;
}
-export function parseSupabaseCookie(
- str: string | null | undefined
-): Partial | null {
- if (!str) {
- return null;
- }
+export function parseSupabaseCookie(str: string | null | undefined): Partial | null {
+ if (!str) {
+ return null;
+ }
- try {
- const session = JSON.parse(str);
- if (!session) {
- return null;
- }
- // Support previous cookie which was a stringified session object.
- if (session.constructor.name === 'Object') {
- return session;
- }
- if (session.constructor.name !== 'Array') {
- throw new Error(`Unexpected format: ${session.constructor.name}`);
- }
+ try {
+ const session = JSON.parse(str);
+ if (!session) {
+ return null;
+ }
+ // Support previous cookie which was a stringified session object.
+ if (session.constructor.name === 'Object') {
+ return session;
+ }
+ if (session.constructor.name !== 'Array') {
+ throw new Error(`Unexpected format: ${session.constructor.name}`);
+ }
- const [_header, payloadStr, _signature] = session[0].split('.');
- const payload = base64url.decode(payloadStr);
- const decoder = new TextDecoder();
+ const [_header, payloadStr, _signature] = session[0].split('.');
+ const payload = base64url.decode(payloadStr);
+ const decoder = new TextDecoder();
- const { exp, sub, ...user } = JSON.parse(decoder.decode(payload));
+ const { exp, sub, ...user } = JSON.parse(decoder.decode(payload));
- return {
- expires_at: exp,
- expires_in: exp - Math.round(Date.now() / 1000),
- token_type: 'bearer',
- access_token: session[0],
- refresh_token: session[1],
- provider_token: session[2],
- provider_refresh_token: session[3],
- user: {
- id: sub,
- factors: session[4],
- ...user
- }
- };
- } catch (err) {
- console.warn('Failed to parse cookie string:', err);
- return null;
- }
+ return {
+ expires_at: exp,
+ expires_in: exp - Math.round(Date.now() / 1000),
+ token_type: 'bearer',
+ access_token: session[0],
+ refresh_token: session[1],
+ provider_token: session[2],
+ provider_refresh_token: session[3],
+ user: {
+ id: sub,
+ factors: session[4],
+ ...user
+ }
+ };
+ } catch (err) {
+ console.warn('Failed to parse cookie string:', err);
+ return null;
+ }
}
export function stringifySupabaseSession(session: Session): string {
- return JSON.stringify([
- session.access_token,
- session.refresh_token,
- session.provider_token,
- session.provider_refresh_token,
- session.user?.factors ?? null
- ]);
+ return JSON.stringify([
+ session.access_token,
+ session.refresh_token,
+ session.provider_token,
+ session.provider_refresh_token,
+ session.user?.factors ?? null
+ ]);
}
diff --git a/packages/shared/src/utils/helpers.ts b/packages/shared/src/utils/helpers.ts
index d90aa3e9..b967a5fa 100644
--- a/packages/shared/src/utils/helpers.ts
+++ b/packages/shared/src/utils/helpers.ts
@@ -1,3 +1,3 @@
export function isBrowser() {
- return typeof window !== 'undefined';
+ return typeof window !== 'undefined';
}
diff --git a/packages/shared/tsconfig.json b/packages/shared/tsconfig.json
index f9cbaa8c..49c855a5 100644
--- a/packages/shared/tsconfig.json
+++ b/packages/shared/tsconfig.json
@@ -1,5 +1,5 @@
{
- "extends": "tsconfig/base.json",
- "include": ["src"],
- "exclude": ["node_modules"]
+ "extends": "tsconfig/base.json",
+ "include": ["src"],
+ "exclude": ["node_modules"]
}
diff --git a/packages/shared/tsup.config.ts b/packages/shared/tsup.config.ts
index 6ad29e22..9371da64 100644
--- a/packages/shared/tsup.config.ts
+++ b/packages/shared/tsup.config.ts
@@ -1,15 +1,15 @@
import type { Options } from 'tsup';
export const tsup: Options = {
- dts: true,
- entryPoints: ['src/index.ts'],
- external: ['react', 'next', /^@supabase\//],
- format: ['cjs', 'esm'],
- // inject: ['src/react-shim.js'],
- // ! .cjs/.mjs doesn't work with Angular's webpack4 config by default!
- legacyOutput: false,
- sourcemap: true,
- splitting: false,
- bundle: true,
- clean: true
+ dts: true,
+ entryPoints: ['src/index.ts'],
+ external: ['react', 'next', /^@supabase\//],
+ format: ['cjs', 'esm'],
+ // inject: ['src/react-shim.js'],
+ // ! .cjs/.mjs doesn't work with Angular's webpack4 config by default!
+ legacyOutput: false,
+ sourcemap: true,
+ splitting: false,
+ bundle: true,
+ clean: true
};
diff --git a/packages/sveltekit/README.md b/packages/sveltekit/README.md
index 603c96a2..183c12a0 100644
--- a/packages/sveltekit/README.md
+++ b/packages/sveltekit/README.md
@@ -32,10 +32,7 @@ Create a server supabase client in a handle hook:
```ts
// src/hooks.server.ts
-import {
- PUBLIC_SUPABASE_URL,
- PUBLIC_SUPABASE_ANON_KEY
-} from '$env/static/public';
+import { PUBLIC_SUPABASE_URL, PUBLIC_SUPABASE_ANON_KEY } from '$env/static/public';
import { createSupabaseServerClient } from '@supabase/auth-helpers-sveltekit';
import type { Handle } from '@sveltejs/kit';
@@ -94,10 +91,7 @@ To be able to use Supabase in shared load functions and inside pages you need to
```ts
// src/routes/+layout.ts
-import {
- PUBLIC_SUPABASE_ANON_KEY,
- PUBLIC_SUPABASE_URL
-} from '$env/static/public';
+import { PUBLIC_SUPABASE_ANON_KEY, PUBLIC_SUPABASE_URL } from '$env/static/public';
import { createSupabaseLoadClient } from '@supabase/auth-helpers-sveltekit';
import type { LayoutLoad } from './$types';
import type { Database } from '../DatabaseDefinitions';
@@ -209,8 +203,8 @@ For [row level security](https://supabase.com/docs/guides/auth/row-level-securit
{#if session}
- client-side data fetching with RLS
- {JSON.stringify(loadedData, null, 2)}
+client-side data fetching with RLS
+{JSON.stringify(loadedData, null, 2)}
{/if}
```
@@ -258,9 +252,7 @@ Wrap an API Route to check that the user has a valid session. If they're not log
import type { RequestHandler } from './$types';
import { json, error } from '@sveltejs/kit';
-export const GET: RequestHandler = async ({
- locals: { supabase, getSession }
-}) => {
+export const GET: RequestHandler = async ({ locals: { supabase, getSession } }) => {
const session = await getSession();
if (!session) {
// the user is not signed in
@@ -381,10 +373,7 @@ export const handle: Handle = async ({ event, resolve }) => {
}
// protect POST requests to all routes that start with /protected-posts
- if (
- event.url.pathname.startsWith('/protected-posts') &&
- event.request.method === 'POST'
- ) {
+ if (event.url.pathname.startsWith('/protected-posts') && event.request.method === 'POST') {
const session = await event.locals.getSession();
if (!session) {
// the user is not signed in
diff --git a/packages/sveltekit/package.json b/packages/sveltekit/package.json
index 1714705f..594f7b27 100644
--- a/packages/sveltekit/package.json
+++ b/packages/sveltekit/package.json
@@ -1,57 +1,58 @@
{
- "name": "@supabase/auth-helpers-sveltekit",
- "version": "0.10.0-next.3",
- "description": "A collection of framework specific Auth utilities for working with Supabase.",
- "type": "module",
- "main": "./dist/index.js",
- "module": "./dist/index.js",
- "types": "./dist/index.d.ts",
- "publishConfig": {
- "access": "public"
- },
- "exports": {
- "./package.json": "./package.json",
- ".": "./dist/index.js"
- },
- "files": [
- "dist"
- ],
- "scripts": {
- "build": "tsup",
- "clean:all": "rimraf dist node_modules"
- },
- "repository": {
- "type": "git",
- "url": "git+https://github.com/supabase/auth-helpers.git"
- },
- "keywords": [
- "Supabase",
- "Auth",
- "Svelte Kit",
- "Svelte"
- ],
- "author": "Supabase",
- "license": "MIT",
- "bugs": {
- "url": "https://github.com/supabase/auth-helpers/issues"
- },
- "homepage": "https://github.com/supabase/auth-helpers/tree/main/packages/sveltekit#readme",
- "devDependencies": {
- "@supabase/supabase-js": "2.19.0",
- "@sveltejs/kit": "1.15.4",
- "svelte": "^3.54.0",
- "vite": "^4.0.0",
- "rimraf": "^4.1.1",
- "tslib": "^2.4.0",
- "typescript": "^4.7.4",
- "tsup": "^6.5.0",
- "tsconfig": "workspace:*"
- },
- "dependencies": {
- "@supabase/auth-helpers-shared": "workspace:*"
- },
- "peerDependencies": {
- "@sveltejs/kit": "^1.15.4",
- "@supabase/supabase-js": "^2.19.0"
- }
+ "name": "@supabase/auth-helpers-sveltekit",
+ "version": "0.10.0-next.3",
+ "description": "A collection of framework specific Auth utilities for working with Supabase.",
+ "type": "module",
+ "main": "./dist/index.js",
+ "module": "./dist/index.js",
+ "types": "./dist/index.d.ts",
+ "publishConfig": {
+ "access": "public"
+ },
+ "exports": {
+ "./package.json": "./package.json",
+ ".": "./dist/index.js"
+ },
+ "files": [
+ "dist"
+ ],
+ "scripts": {
+ "lint": "tsc",
+ "build": "tsup",
+ "clean:all": "rimraf dist node_modules"
+ },
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/supabase/auth-helpers.git"
+ },
+ "keywords": [
+ "Supabase",
+ "Auth",
+ "Svelte Kit",
+ "Svelte"
+ ],
+ "author": "Supabase",
+ "license": "MIT",
+ "bugs": {
+ "url": "https://github.com/supabase/auth-helpers/issues"
+ },
+ "homepage": "https://github.com/supabase/auth-helpers/tree/main/packages/sveltekit#readme",
+ "devDependencies": {
+ "@supabase/supabase-js": "2.19.0",
+ "@sveltejs/kit": "1.15.4",
+ "svelte": "^3.54.0",
+ "vite": "^4.0.0",
+ "rimraf": "^4.1.1",
+ "tslib": "^2.4.0",
+ "typescript": "^4.7.4",
+ "tsup": "^6.5.0",
+ "tsconfig": "workspace:*"
+ },
+ "dependencies": {
+ "@supabase/auth-helpers-shared": "workspace:*"
+ },
+ "peerDependencies": {
+ "@sveltejs/kit": "^1.15.4",
+ "@supabase/supabase-js": "^2.19.0"
+ }
}
diff --git a/packages/sveltekit/src/loadStorageAdapter.ts b/packages/sveltekit/src/loadStorageAdapter.ts
index a8fa091a..1746646a 100644
--- a/packages/sveltekit/src/loadStorageAdapter.ts
+++ b/packages/sveltekit/src/loadStorageAdapter.ts
@@ -1,22 +1,22 @@
import {
- BrowserCookieAuthStorageAdapter,
- CookieOptions,
- isBrowser
+ BrowserCookieAuthStorageAdapter,
+ CookieOptions,
+ isBrowser
} from '@supabase/auth-helpers-shared';
import { Session } from '@supabase/supabase-js';
export class SvelteKitLoadAuthStorageAdapter extends BrowserCookieAuthStorageAdapter {
- constructor(
- private readonly serverSession: Session | null = null,
- cookieOptions?: CookieOptions
- ) {
- super(cookieOptions);
- }
+ constructor(
+ private readonly serverSession: Session | null = null,
+ cookieOptions?: CookieOptions
+ ) {
+ super(cookieOptions);
+ }
- getItem(key: string) {
- if (!isBrowser()) {
- return JSON.stringify(this.serverSession);
- }
- return super.getItem(key);
- }
+ getItem(key: string) {
+ if (!isBrowser()) {
+ return JSON.stringify(this.serverSession);
+ }
+ return super.getItem(key);
+ }
}
diff --git a/packages/sveltekit/src/serverStorageAdapter.ts b/packages/sveltekit/src/serverStorageAdapter.ts
index a21ec455..f9328102 100644
--- a/packages/sveltekit/src/serverStorageAdapter.ts
+++ b/packages/sveltekit/src/serverStorageAdapter.ts
@@ -1,65 +1,62 @@
-import {
- CookieAuthStorageAdapter,
- CookieOptions
-} from '@supabase/auth-helpers-shared';
+import { CookieAuthStorageAdapter, CookieOptions } from '@supabase/auth-helpers-shared';
import { Session } from '@supabase/supabase-js';
import { RequestEvent } from '@sveltejs/kit';
export class SvelteKitServerAuthStorageAdapter extends CookieAuthStorageAdapter {
- private isInitialDelete = true;
- private currentSession: Partial | null = null;
-
- constructor(
- private readonly event: Pick,
- cookieOptions?: CookieOptions,
- private readonly expiryMargin: number = 60
- ) {
- super(cookieOptions);
- }
-
- protected getCookie(name: string) {
- return this.event.cookies.get(name);
- }
-
- protected setCookie(name: string, value: string) {
- this.event.cookies.set(name, value, {
- httpOnly: false,
- ...this.cookieOptions
- });
- }
-
- protected deleteCookie(name: string) {
- this.event.cookies.delete(name, {
- httpOnly: false,
- ...this.cookieOptions
- });
- }
-
- async getItem(key: string) {
- const sessionStr = await super.getItem(key);
- if (!sessionStr) {
- this.currentSession = null;
- return null;
- }
-
- const session: Session | null = JSON.parse(sessionStr);
- this.currentSession = session;
-
- if (session?.expires_at) {
- // shorten the session lifetime so it does not expire on the server
- session.expires_at -= this.expiryMargin;
- }
- return JSON.stringify(session);
- }
-
- removeItem(key: string) {
- if (this.isInitialDelete && this.currentSession?.expires_at) {
- const now = Math.round(Date.now() / 1000);
- if (this.currentSession.expires_at < now + 10) {
- this.isInitialDelete = false;
- return;
- }
- }
- super.removeItem(key);
- }
+ private isInitialDelete = true;
+ private currentSession: Partial | null = null;
+
+ constructor(
+ private readonly event: Pick,
+ cookieOptions?: CookieOptions,
+ private readonly expiryMargin: number = 60
+ ) {
+ super(cookieOptions);
+ }
+
+ protected getCookie(name: string) {
+ return this.event.cookies.get(name);
+ }
+
+ protected setCookie(name: string, value: string) {
+ this.event.cookies.set(name, value, {
+ httpOnly: false,
+ ...this.cookieOptions
+ });
+ }
+
+ protected deleteCookie(name: string) {
+ this.event.cookies.delete(name, {
+ httpOnly: false,
+ ...this.cookieOptions
+ });
+ }
+
+ async getItem(key: string) {
+ const sessionStr = await super.getItem(key);
+ if (!sessionStr) {
+ this.currentSession = null;
+ return null;
+ }
+
+ const session: Session | null = JSON.parse(sessionStr);
+ this.currentSession = session;
+
+ if (session?.expires_at) {
+ // shorten the session lifetime so it does not expire on the server
+ session.expires_at -= this.expiryMargin;
+ }
+ return JSON.stringify(session);
+ }
+
+ removeItem(key: string) {
+ if (this.isInitialDelete && this.currentSession?.expires_at) {
+ const now = Math.round(Date.now() / 1000);
+ if (this.currentSession.expires_at < now + 10) {
+ this.isInitialDelete = false;
+ return;
+ }
+ }
+ super.removeItem(key);
+ }
}
diff --git a/packages/sveltekit/src/supabaseLoadClient.ts b/packages/sveltekit/src/supabaseLoadClient.ts
index 29cffa6d..801db79c 100644
--- a/packages/sveltekit/src/supabaseLoadClient.ts
+++ b/packages/sveltekit/src/supabaseLoadClient.ts
@@ -1,8 +1,8 @@
import {
- CookieOptionsWithName,
- createSupabaseClient,
- isBrowser,
- SupabaseClientOptionsWithoutAuth
+ CookieOptionsWithName,
+ createSupabaseClient,
+ isBrowser,
+ SupabaseClientOptionsWithoutAuth
} from '@supabase/auth-helpers-shared';
import { Session, SupabaseClient } from '@supabase/supabase-js';
import { LoadEvent } from '@sveltejs/kit';
@@ -49,62 +49,55 @@ let cachedBrowserClient: SupabaseClient | undefined;
* ```
*/
export function createSupabaseLoadClient<
- Database = any,
- SchemaName extends string & keyof Database = 'public' extends keyof Database
- ? 'public'
- : string & keyof Database
+ Database = any,
+ SchemaName extends string & keyof Database = 'public' extends keyof Database
+ ? 'public'
+ : string & keyof Database
>({
- supabaseUrl,
- supabaseKey,
- event,
- serverSession,
- options,
- cookieOptions
+ supabaseUrl,
+ supabaseKey,
+ event,
+ serverSession,
+ options,
+ cookieOptions
}: {
- supabaseUrl: string;
- /**
- * The supabase key. Make sure you **always** use the ANON_KEY.
- */
- supabaseKey: string;
- event: Pick;
- /**
- * The initial session from the server.
- */
- serverSession: Session | null;
- options?: SupabaseClientOptionsWithoutAuth;
- cookieOptions?: CookieOptionsWithName;
+ supabaseUrl: string;
+ /**
+ * The supabase key. Make sure you **always** use the ANON_KEY.
+ */
+ supabaseKey: string;
+ event: Pick;
+ /**
+ * The initial session from the server.
+ */
+ serverSession: Session | null;
+ options?: SupabaseClientOptionsWithoutAuth;
+ cookieOptions?: CookieOptionsWithName;
}): SupabaseClient {
- const browser = isBrowser();
- if (browser && cachedBrowserClient) {
- return cachedBrowserClient as SupabaseClient;
- }
+ const browser = isBrowser();
+ if (browser && cachedBrowserClient) {
+ return cachedBrowserClient as SupabaseClient;
+ }
- const client = createSupabaseClient(
- supabaseUrl,
- supabaseKey,
- {
- ...options,
- global: {
- fetch: event.fetch,
- ...options?.global,
- headers: {
- ...options?.global?.headers,
- 'X-Client-Info': `${PACKAGE_NAME}@${PACKAGE_VERSION}`
- }
- },
- auth: {
- storageKey: cookieOptions?.name,
- storage: new SvelteKitLoadAuthStorageAdapter(
- serverSession,
- cookieOptions
- )
- }
- }
- );
+ const client = createSupabaseClient(supabaseUrl, supabaseKey, {
+ ...options,
+ global: {
+ fetch: event.fetch,
+ ...options?.global,
+ headers: {
+ ...options?.global?.headers,
+ 'X-Client-Info': `${PACKAGE_NAME}@${PACKAGE_VERSION}`
+ }
+ },
+ auth: {
+ storageKey: cookieOptions?.name,
+ storage: new SvelteKitLoadAuthStorageAdapter(serverSession, cookieOptions)
+ }
+ });
- if (browser) {
- cachedBrowserClient = client;
- }
+ if (browser) {
+ cachedBrowserClient = client;
+ }
- return client;
+ return client;
}
diff --git a/packages/sveltekit/src/supabaseServerClient.ts b/packages/sveltekit/src/supabaseServerClient.ts
index a667a8ea..62887ab9 100644
--- a/packages/sveltekit/src/supabaseServerClient.ts
+++ b/packages/sveltekit/src/supabaseServerClient.ts
@@ -1,7 +1,7 @@
import {
- CookieOptionsWithName,
- SupabaseClientOptionsWithoutAuth,
- createSupabaseClient
+ CookieOptionsWithName,
+ SupabaseClientOptionsWithoutAuth,
+ createSupabaseClient
} from '@supabase/auth-helpers-shared';
import { RequestEvent } from '@sveltejs/kit';
import { SvelteKitServerAuthStorageAdapter } from './serverStorageAdapter';
@@ -58,47 +58,39 @@ import { SvelteKitServerAuthStorageAdapter } from './serverStorageAdapter';
* ```
*/
export function createSupabaseServerClient<
- Database = any,
- SchemaName extends string & keyof Database = 'public' extends keyof Database
- ? 'public'
- : string & keyof Database
+ Database = any,
+ SchemaName extends string & keyof Database = 'public' extends keyof Database
+ ? 'public'
+ : string & keyof Database
>({
- supabaseUrl,
- supabaseKey,
- event,
- options,
- cookieOptions,
- expiryMargin
+ supabaseUrl,
+ supabaseKey,
+ event,
+ options,
+ cookieOptions,
+ expiryMargin
}: {
- supabaseUrl: string;
- supabaseKey: string;
- event: Pick;
- options?: SupabaseClientOptionsWithoutAuth;
- cookieOptions?: CookieOptionsWithName;
- expiryMargin?: number;
+ supabaseUrl: string;
+ supabaseKey: string;
+ event: Pick;
+ options?: SupabaseClientOptionsWithoutAuth;
+ cookieOptions?: CookieOptionsWithName;
+ expiryMargin?: number;
}) {
- const client = createSupabaseClient(
- supabaseUrl,
- supabaseKey,
- {
- ...options,
- global: {
- ...options?.global,
- headers: {
- ...options?.global?.headers,
- 'X-Client-Info': `${PACKAGE_NAME}@${PACKAGE_VERSION}`
- }
- },
- auth: {
- storageKey: cookieOptions?.name,
- storage: new SvelteKitServerAuthStorageAdapter(
- event,
- cookieOptions,
- expiryMargin
- )
- }
- }
- );
+ const client = createSupabaseClient(supabaseUrl, supabaseKey, {
+ ...options,
+ global: {
+ ...options?.global,
+ headers: {
+ ...options?.global?.headers,
+ 'X-Client-Info': `${PACKAGE_NAME}@${PACKAGE_VERSION}`
+ }
+ },
+ auth: {
+ storageKey: cookieOptions?.name,
+ storage: new SvelteKitServerAuthStorageAdapter(event, cookieOptions, expiryMargin)
+ }
+ });
- return client;
+ return client;
}
diff --git a/packages/sveltekit/tsconfig.json b/packages/sveltekit/tsconfig.json
index 40a0a01c..204a2adc 100644
--- a/packages/sveltekit/tsconfig.json
+++ b/packages/sveltekit/tsconfig.json
@@ -1,9 +1,9 @@
{
- "extends": "tsconfig/base.json",
- "compilerOptions": {
- "incremental": false,
- "importHelpers": true
- },
- "include": ["src"],
- "exclude": ["node_modules"]
+ "extends": "tsconfig/base.json",
+ "compilerOptions": {
+ "incremental": false,
+ "importHelpers": true
+ },
+ "include": ["src"],
+ "exclude": ["node_modules"]
}
diff --git a/packages/sveltekit/tsup.config.ts b/packages/sveltekit/tsup.config.ts
index 57123001..324f3ae2 100644
--- a/packages/sveltekit/tsup.config.ts
+++ b/packages/sveltekit/tsup.config.ts
@@ -2,19 +2,19 @@ import type { Options } from 'tsup';
import pkg from './package.json';
export const tsup: Options = {
- dts: true,
- entryPoints: ['src/index.ts'],
- external: ['svelte', '@sveltejs/kit', /^@supabase\//],
- format: ['esm'],
- // inject: ['src/react-shim.js'],
- // ! .cjs/.mjs doesn't work with Angular's webpack4 config by default!
- legacyOutput: false,
- sourcemap: true,
- splitting: false,
- bundle: true,
- clean: true,
- define: {
- PACKAGE_NAME: JSON.stringify(pkg.name),
- PACKAGE_VERSION: JSON.stringify(pkg.version)
- }
+ dts: true,
+ entryPoints: ['src/index.ts'],
+ external: ['svelte', '@sveltejs/kit', /^@supabase\//],
+ format: ['esm'],
+ // inject: ['src/react-shim.js'],
+ // ! .cjs/.mjs doesn't work with Angular's webpack4 config by default!
+ legacyOutput: false,
+ sourcemap: true,
+ splitting: false,
+ bundle: true,
+ clean: true,
+ define: {
+ PACKAGE_NAME: JSON.stringify(pkg.name),
+ PACKAGE_VERSION: JSON.stringify(pkg.version)
+ }
};
diff --git a/packages/tsconfig/base.json b/packages/tsconfig/base.json
index d72a9f3a..95f7eab0 100644
--- a/packages/tsconfig/base.json
+++ b/packages/tsconfig/base.json
@@ -1,20 +1,21 @@
{
- "$schema": "https://json.schemastore.org/tsconfig",
- "display": "Default",
- "compilerOptions": {
- "composite": false,
- "declaration": true,
- "declarationMap": true,
- "esModuleInterop": true,
- "forceConsistentCasingInFileNames": true,
- "inlineSources": false,
- "isolatedModules": true,
- "moduleResolution": "node",
- "noUnusedLocals": false,
- "noUnusedParameters": false,
- "preserveWatchOutput": true,
- "skipLibCheck": true,
- "strict": true
- },
- "exclude": ["node_modules"]
+ "$schema": "https://json.schemastore.org/tsconfig",
+ "display": "Default",
+ "compilerOptions": {
+ "composite": false,
+ "declaration": true,
+ "declarationMap": true,
+ "esModuleInterop": true,
+ "forceConsistentCasingInFileNames": true,
+ "inlineSources": false,
+ "isolatedModules": true,
+ "moduleResolution": "node",
+ "noUnusedLocals": false,
+ "noUnusedParameters": false,
+ "preserveWatchOutput": true,
+ "skipLibCheck": true,
+ "strict": true,
+ "noEmit": true
+ },
+ "exclude": ["node_modules"]
}
diff --git a/packages/tsconfig/nextjs.json b/packages/tsconfig/nextjs.json
index 3b7dfa90..16b2d30c 100644
--- a/packages/tsconfig/nextjs.json
+++ b/packages/tsconfig/nextjs.json
@@ -1,22 +1,22 @@
{
- "$schema": "https://json.schemastore.org/tsconfig",
- "display": "Next.js",
- "extends": "./base.json",
- "compilerOptions": {
- "target": "es5",
- "lib": ["dom", "dom.iterable", "esnext"],
- "allowJs": true,
- "skipLibCheck": true,
- "strict": true,
- "forceConsistentCasingInFileNames": true,
- "noEmit": true,
- "incremental": true,
- "esModuleInterop": true,
- "module": "esnext",
- "resolveJsonModule": true,
- "isolatedModules": true,
- "jsx": "preserve"
- },
- "include": ["src", "next-env.d.ts"],
- "exclude": ["node_modules"]
+ "$schema": "https://json.schemastore.org/tsconfig",
+ "display": "Next.js",
+ "extends": "./base.json",
+ "compilerOptions": {
+ "target": "es5",
+ "lib": ["dom", "dom.iterable", "esnext"],
+ "allowJs": true,
+ "skipLibCheck": true,
+ "strict": true,
+ "forceConsistentCasingInFileNames": true,
+ "noEmit": true,
+ "incremental": true,
+ "esModuleInterop": true,
+ "module": "esnext",
+ "resolveJsonModule": true,
+ "isolatedModules": true,
+ "jsx": "preserve"
+ },
+ "include": ["src", "next-env.d.ts"],
+ "exclude": ["node_modules"]
}
diff --git a/packages/tsconfig/package.json b/packages/tsconfig/package.json
index 97c3d319..e31d0a0c 100644
--- a/packages/tsconfig/package.json
+++ b/packages/tsconfig/package.json
@@ -1,11 +1,11 @@
{
- "name": "tsconfig",
- "version": "0.1.1",
- "private": true,
- "main": "index.js",
- "files": [
- "base.json",
- "nextjs.json",
- "react-library.json"
- ]
+ "name": "tsconfig",
+ "version": "0.1.1",
+ "private": true,
+ "main": "index.js",
+ "files": [
+ "base.json",
+ "nextjs.json",
+ "react-library.json"
+ ]
}
diff --git a/packages/tsconfig/react-library.json b/packages/tsconfig/react-library.json
index 915d438c..925c1722 100644
--- a/packages/tsconfig/react-library.json
+++ b/packages/tsconfig/react-library.json
@@ -1,11 +1,11 @@
{
- "$schema": "https://json.schemastore.org/tsconfig",
- "display": "React Library",
- "extends": "./base.json",
- "compilerOptions": {
- "lib": ["ES6", "DOM"],
- "module": "commonjs",
- "target": "ES6",
- "jsx": "react-jsx"
- }
+ "$schema": "https://json.schemastore.org/tsconfig",
+ "display": "React Library",
+ "extends": "./base.json",
+ "compilerOptions": {
+ "lib": ["ES6", "DOM"],
+ "module": "commonjs",
+ "target": "ES6",
+ "jsx": "react-jsx"
+ }
}
diff --git a/packages/tsconfig/svelte.json b/packages/tsconfig/svelte.json
index 00dc6f35..9c9b5929 100644
--- a/packages/tsconfig/svelte.json
+++ b/packages/tsconfig/svelte.json
@@ -12,4 +12,4 @@
"resolveJsonModule": true,
"sourceMap": true
}
-}
\ No newline at end of file
+}
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 056c0ec0..45f85b5c 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -15,6 +15,9 @@ importers:
'@changesets/cli':
specifier: ^2.22.0
version: 2.25.0
+ husky:
+ specifier: ^8.0.0
+ version: 8.0.0
prettier:
specifier: ^2.5.1
version: 2.7.1
@@ -2411,8 +2414,8 @@ packages:
dependencies:
ajv: 6.12.6
debug: 4.3.4
- espree: 9.4.0
- globals: 13.17.0
+ espree: 9.5.2
+ globals: 13.19.0
ignore: 5.2.0
import-fresh: 3.3.0
js-yaml: 4.1.0
@@ -2427,7 +2430,7 @@ packages:
dependencies:
ajv: 6.12.6
debug: 4.3.4
- espree: 9.4.0
+ espree: 9.5.2
globals: 13.19.0
ignore: 5.2.0
import-fresh: 3.3.0
@@ -3551,7 +3554,7 @@ packages:
/@types/is-ci@3.0.0:
resolution: {integrity: sha512-Q0Op0hdWbYd1iahB+IFNQcWXFq4O0Q5MwQP7uN0souuQ4rPg1vEYcnIOfr1gY+M+6rc8FGoRaBO1mOOvL29sEQ==}
dependencies:
- ci-info: 3.5.0
+ ci-info: 3.8.0
dev: true
/@types/json-schema@7.0.11:
@@ -3942,14 +3945,14 @@ packages:
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dependencies:
'@typescript-eslint/types': 5.41.0
- eslint-visitor-keys: 3.3.0
+ eslint-visitor-keys: 3.4.1
/@typescript-eslint/visitor-keys@5.48.0:
resolution: {integrity: sha512-5motVPz5EgxQ0bHjut3chzBkJ3Z3sheYVcSwS5BpHZpLqSptSmELNtGixmgj65+rIfhvtQTz5i9OP2vtzdDH7Q==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dependencies:
'@typescript-eslint/types': 5.48.0
- eslint-visitor-keys: 3.3.0
+ eslint-visitor-keys: 3.4.1
dev: true
/@web3-storage/multipart-parser@1.0.0:
@@ -4603,8 +4606,9 @@ packages:
engines: {node: '>=10'}
dev: true
- /ci-info@3.5.0:
- resolution: {integrity: sha512-yH4RezKOGlOhxkmhbeNuC4eYZKAUsEaGtBuBzDDP1eFUKiccDWzBABxBfOx31IDwDIXMTxWuwAxUGModvkbuVw==}
+ /ci-info@3.8.0:
+ resolution: {integrity: sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==}
+ engines: {node: '>=8'}
dev: true
/class-utils@0.3.6:
@@ -5975,6 +5979,10 @@ packages:
resolution: {integrity: sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ /eslint-visitor-keys@3.4.1:
+ resolution: {integrity: sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+
/eslint@7.32.0:
resolution: {integrity: sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==}
engines: {node: ^10.12.0 || >=12.0.0}
@@ -6185,7 +6193,15 @@ packages:
dependencies:
acorn: 8.8.1
acorn-jsx: 5.3.2(acorn@8.8.1)
- eslint-visitor-keys: 3.3.0
+ eslint-visitor-keys: 3.4.1
+
+ /espree@9.5.2:
+ resolution: {integrity: sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ dependencies:
+ acorn: 8.8.1
+ acorn-jsx: 5.3.2(acorn@8.8.1)
+ eslint-visitor-keys: 3.4.1
/esprima@4.0.1:
resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==}
@@ -6789,7 +6805,6 @@ packages:
engines: {node: '>=8'}
dependencies:
type-fest: 0.20.2
- dev: true
/globalyzer@0.1.0:
resolution: {integrity: sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==}
@@ -7026,6 +7041,12 @@ packages:
engines: {node: '>=10.17.0'}
dev: true
+ /husky@8.0.0:
+ resolution: {integrity: sha512-4qbE/5dzNDNxFEkX9MNRPKl5+omTXQzdILCUWiqG/lWIAioiM5vln265/l6I2Zx8gpW8l1ukZwGQeCFbBZ6+6w==}
+ engines: {node: '>=14'}
+ hasBin: true
+ dev: true
+
/iconv-lite@0.4.24:
resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==}
engines: {node: '>=0.10.0'}
@@ -7201,7 +7222,7 @@ packages:
resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==}
hasBin: true
dependencies:
- ci-info: 3.5.0
+ ci-info: 3.8.0
dev: true
/is-core-module@2.11.0:
diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml
index 091d6e43..c9494909 100644
--- a/pnpm-workspace.yaml
+++ b/pnpm-workspace.yaml
@@ -1,3 +1,3 @@
packages:
- - "examples/*"
- - "packages/*"
+ - 'examples/*'
+ - 'packages/*'
diff --git a/tsconfig.json b/tsconfig.json
index 9a325dca..7032df91 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -1,9 +1,10 @@
{
- "files": [],
- "references": [
- { "path": "packages/react" },
- { "path": "packages/nextjs" },
- { "path": "packages/shared" },
- { "path": "packages/sveltekit" }
- ]
-}
\ No newline at end of file
+ "files": [],
+ "references": [
+ { "path": "packages/shared" },
+ { "path": "packages/react" },
+ { "path": "packages/nextjs" },
+ { "path": "packages/sveltekit" },
+ { "path": "packages/remix" }
+ ]
+}
diff --git a/turbo.json b/turbo.json
index b957b05c..dcc9624c 100644
--- a/turbo.json
+++ b/turbo.json
@@ -1,30 +1,27 @@
{
- "pipeline": {
- "build": {
- "dependsOn": ["^build"],
- "outputs": ["dist/**", ".next/**", ".svelte-kit/**"]
- },
- "build:example": {
- "dependsOn": ["^build", "^build:example"],
- "outputs": ["dist/**", ".next/**", ".svelte-kit/**"]
- },
- "build:watch": {
- "dependsOn": ["^build:watch"],
- "outputs": ["dist/**", ".next/**", ".svelte-kit/**"]
- },
- "clean:all": {
- "dependsOn": ["^clean:all"],
- "cache": false
- },
- "lint": {
- "outputs": []
- },
- "dev": {
- "cache": false
- }
- },
- "globalDependencies": [
- "tsconfig.json",
- ".env.*"
- ]
+ "pipeline": {
+ "build": {
+ "dependsOn": ["^build"],
+ "outputs": ["dist/**", ".next/**", ".svelte-kit/**"]
+ },
+ "build:example": {
+ "dependsOn": ["^build", "^build:example"],
+ "outputs": ["dist/**", ".next/**", ".svelte-kit/**"]
+ },
+ "build:watch": {
+ "dependsOn": ["^build:watch"],
+ "outputs": ["dist/**", ".next/**", ".svelte-kit/**"]
+ },
+ "clean:all": {
+ "dependsOn": ["^clean:all"],
+ "cache": false
+ },
+ "lint": {
+ "outputs": []
+ },
+ "dev": {
+ "cache": false
+ }
+ },
+ "globalDependencies": ["tsconfig.json", ".env.*"]
}
diff --git a/typedoc.js b/typedoc.js
index f6273018..cd1d8b6b 100644
--- a/typedoc.js
+++ b/typedoc.js
@@ -1,22 +1,22 @@
module.exports = {
- name: '@supabase/auth-helpers',
- out: './docs/',
- entryPoints: [
- './packages/sveltekit/src/index.ts',
- './packages/nextjs/src/index.ts',
- './packages/shared/src/index.ts',
- './packages/react/src/index.tsx'
- ],
- entryPointStrategy: 'expand',
- exclude: [
- 'packages/shared/src/utils/index.ts',
- 'packages/sveltekit/svelte.config.js',
- '**/node_modules/**',
- '**/dist/**',
- '**/packages/**/tsup.config.ts'
- ],
- excludeExternals: true,
- excludePrivate: true,
- hideGenerator: true,
- readme: 'none'
+ name: '@supabase/auth-helpers',
+ out: './docs/',
+ entryPoints: [
+ './packages/sveltekit/src/index.ts',
+ './packages/nextjs/src/index.ts',
+ './packages/shared/src/index.ts',
+ './packages/react/src/index.tsx'
+ ],
+ entryPointStrategy: 'expand',
+ exclude: [
+ 'packages/shared/src/utils/index.ts',
+ 'packages/sveltekit/svelte.config.js',
+ '**/node_modules/**',
+ '**/dist/**',
+ '**/packages/**/tsup.config.ts'
+ ],
+ excludeExternals: true,
+ excludePrivate: true,
+ hideGenerator: true,
+ readme: 'none'
};