From f0c97861641fd5fd9d43a2d5e9d69357f4fd6f9e Mon Sep 17 00:00:00 2001 From: edsea Date: Sat, 11 Oct 2025 00:21:00 +0200 Subject: [PATCH] Init --- .htaccess | 60 + index.php | 6 + robots.txt | 3 + rss/css/main.css | 6792 +++++++++++++++++++++++++++++++++++ rss/css/main.css.map | 1 + rss/css/main.scss | 873 +++++ rss/css/theme.css | 528 +++ rss/css/theme.css.map | 1 + rss/css/theme.scss | 604 ++++ rss/css/variables.css | 3 + rss/css/variables.css.map | 1 + rss/css/variables.scss | 348 ++ rss/js/main.js | 261 ++ rss/json/pages/404.json | 9 + rss/json/pages/index.json | 8 + rss/php/autoload.php | 11 + rss/php/class/Main.php | 15 + rss/php/class/Sys.php | 34 + rss/php/class/Users.php | 178 + rss/php/conf.php | 36 + rss/php/handler.php | 60 + rss/php/includes/footer.php | 11 + rss/php/includes/header.php | 79 + rss/php/pageHandler.php | 43 + rss/php/templates/404.php | 15 + rss/php/templates/index.php | 696 ++++ sitemap.xml | 8 + 27 files changed, 10684 insertions(+) create mode 100644 .htaccess create mode 100644 index.php create mode 100644 robots.txt create mode 100644 rss/css/main.css create mode 100644 rss/css/main.css.map create mode 100644 rss/css/main.scss create mode 100644 rss/css/theme.css create mode 100644 rss/css/theme.css.map create mode 100644 rss/css/theme.scss create mode 100644 rss/css/variables.css create mode 100644 rss/css/variables.css.map create mode 100644 rss/css/variables.scss create mode 100644 rss/js/main.js create mode 100644 rss/json/pages/404.json create mode 100644 rss/json/pages/index.json create mode 100644 rss/php/autoload.php create mode 100644 rss/php/class/Main.php create mode 100644 rss/php/class/Sys.php create mode 100644 rss/php/class/Users.php create mode 100644 rss/php/conf.php create mode 100644 rss/php/handler.php create mode 100644 rss/php/includes/footer.php create mode 100644 rss/php/includes/header.php create mode 100644 rss/php/pageHandler.php create mode 100644 rss/php/templates/404.php create mode 100644 rss/php/templates/index.php create mode 100644 sitemap.xml diff --git a/.htaccess b/.htaccess new file mode 100644 index 0000000..9b0590f --- /dev/null +++ b/.htaccess @@ -0,0 +1,60 @@ +# Enable RewriteEngine +RewriteEngine On +RewriteBase / + + +# Add trailing slash to URLs (except files and directories) +RewriteCond %{REQUEST_FILENAME} !-f +RewriteCond %{REQUEST_FILENAME} !-d +RewriteCond %{REQUEST_URI} !/$ +RewriteRule ^(.+)$ $1/ [L,R=301] + +# Handle 404 errors +ErrorDocument 404 /404 + +# Rewrite pretty URLs to index.php?page= +RewriteCond %{REQUEST_FILENAME} !-f +RewriteCond %{REQUEST_FILENAME} !-d +RewriteRule ^([^/]+)/$ index.php?page=$1 [L,QSA] + +# Enable GZip compression + + AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css + AddOutputFilterByType DEFLATE application/javascript application/json + AddOutputFilterByType DEFLATE application/xml application/xhtml+xml application/rss+xml + AddOutputFilterByType DEFLATE application/font-woff application/font-woff2 + AddOutputFilterByType DEFLATE image/svg+xml image/webp + + +# Enable browser caching for static assets + + ExpiresActive On + ExpiresByType image/jpeg "access plus 1 year" + ExpiresByType image/png "access plus 1 year" + ExpiresByType image/webp "access plus 1 year" + ExpiresByType image/svg+xml "access plus 1 year" + ExpiresByType text/css "access plus 1 month" + ExpiresByType application/javascript "access plus 1 month" + ExpiresByType image/x-icon "access plus 1 year" + ExpiresByType application/font-woff "access plus 1 year" + ExpiresByType application/font-woff2 "access plus 1 year" + + +# Security headers + + Header set X-Content-Type-Options "nosniff" + Header set X-Frame-Options "DENY" + Header set X-XSS-Protection "1; mode=block" + + +# Prevent directory listing +Options -Indexes + +# BEGIN cPanel-generated php ini directives, do not edit + + php_value output_buffering Off + + + php_value output_buffering Off + +# END cPanel-generated php ini directives, do not edit \ No newline at end of file diff --git a/index.php b/index.php new file mode 100644 index 0000000..4336a3f --- /dev/null +++ b/index.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/robots.txt b/robots.txt new file mode 100644 index 0000000..ca0cec7 --- /dev/null +++ b/robots.txt @@ -0,0 +1,3 @@ +User-agent: * +Disallow: /404 +Sitemap: https://DOMAIN.COM/sitemap.xml \ No newline at end of file diff --git a/rss/css/main.css b/rss/css/main.css new file mode 100644 index 0000000..d19ecb4 --- /dev/null +++ b/rss/css/main.css @@ -0,0 +1,6792 @@ +/* ========================================================================== */ +/* Flexbox Maps */ +/* ========================================================================== */ +@import url("https://fonts.googleapis.com/css2?family=Nunito:ital,wght@0,200..1000;1,200..1000&display=swap"); +/* ========================================================================== */ +/* Reset + Base */ +/* ========================================================================== */ +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +html, body { + height: 100%; +} + +body { + font-family: "Nunito", sans-serif; + font-size: 1.1rem; + line-height: 1.3; + color: #212529; + background: #ffffff; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; +} + +a { + color: inherit; + text-decoration: none; +} + +img, svg, video, canvas { + display: block; + max-width: 100%; + height: auto; +} + +/* ========================================================================== */ +/* Typography Utilities */ +/* ========================================================================== */ +.text-xs { + font-size: 0.75rem; +} + +.text-sm { + font-size: 0.875rem; +} + +.text-base { + font-size: 1.1rem; +} + +.text-lg { + font-size: 1.35rem; +} + +.text-xl { + font-size: 1.8rem; +} + +.text-xxl { + font-size: 2.2rem; +} + +.fw-light { + font-weight: 300; +} + +.fw-normal { + font-weight: 400; +} + +.fw-medium { + font-weight: 500; +} + +.fw-semibold { + font-weight: 600; +} + +.fw-bold { + font-weight: 700; +} + +.lh-tight { + line-height: 1; +} + +.lh-normal { + line-height: 1.3; +} + +.lh-heading { + line-height: 1.5; +} + +.text-left { + text-align: left; +} + +.text-center { + text-align: center; +} + +.text-right { + text-align: right; +} + +.text-uppercase { + text-transform: uppercase; +} + +.text-lowercase { + text-transform: lowercase; +} + +.text-capitalize { + text-transform: capitalize; +} + +.text-underline { + text-decoration: underline; +} + +.text-line-through { + text-decoration: line-through; +} + +.text-no-decoration { + text-decoration: none; +} + +/* ========================================================================== */ +/* Color Utilities */ +/* ========================================================================== */ +.text-primary { + color: #aa0b3d !important; +} + +.bg-primary { + background-color: #aa0b3d !important; +} + +.border-primary { + border-color: #aa0b3d !important; +} + +.text-primary-alt { + color: rgba(170, 11, 61, 0.6588235294) !important; +} + +.bg-primary-alt { + background-color: rgba(170, 11, 61, 0.6588235294) !important; +} + +.border-primary-alt { + border-color: rgba(170, 11, 61, 0.6588235294) !important; +} + +.text-alt { + color: rgba(181, 69, 24, 0.5882352941) !important; +} + +.bg-alt { + background-color: rgba(181, 69, 24, 0.5882352941) !important; +} + +.border-alt { + border-color: rgba(181, 69, 24, 0.5882352941) !important; +} + +.text-secondary { + color: #333333 !important; +} + +.bg-secondary { + background-color: #333333 !important; +} + +.border-secondary { + border-color: #333333 !important; +} + +.text-success { + color: #34b97b !important; +} + +.bg-success { + background-color: #34b97b !important; +} + +.border-success { + border-color: #34b97b !important; +} + +.text-warning { + color: #ffc107 !important; +} + +.bg-warning { + background-color: #ffc107 !important; +} + +.border-warning { + border-color: #ffc107 !important; +} + +.text-danger { + color: #dc3545 !important; +} + +.bg-danger { + background-color: #dc3545 !important; +} + +.border-danger { + border-color: #dc3545 !important; +} + +.text-info { + color: #0dcaf0 !important; +} + +.bg-info { + background-color: #0dcaf0 !important; +} + +.border-info { + border-color: #0dcaf0 !important; +} + +.text-light { + color: #e5e5e5 !important; +} + +.bg-light { + background-color: #e5e5e5 !important; +} + +.border-light { + border-color: #e5e5e5 !important; +} + +.text-dark { + color: #212529 !important; +} + +.bg-dark { + background-color: #212529 !important; +} + +.border-dark { + border-color: #212529 !important; +} + +.text-white { + color: #ffffff !important; +} + +.bg-white { + background-color: #ffffff !important; +} + +.border-white { + border-color: #ffffff !important; +} + +.text-black { + color: #000000 !important; +} + +.bg-black { + background-color: #000000 !important; +} + +.border-black { + border-color: #000000 !important; +} + +.text-muted { + color: #c7c7c7 !important; +} + +.bg-muted { + background-color: #c7c7c7 !important; +} + +.border-muted { + border-color: #c7c7c7 !important; +} + +.text-gray { + color: #6c757d !important; +} + +.bg-gray { + background-color: #6c757d !important; +} + +.border-gray { + border-color: #6c757d !important; +} + +.text-accent-white { + color: #f7f7f7 !important; +} + +.bg-accent-white { + background-color: #f7f7f7 !important; +} + +.border-accent-white { + border-color: #f7f7f7 !important; +} + +.text-accent { + color: #08bbbb !important; +} + +.bg-accent { + background-color: #08bbbb !important; +} + +.border-accent { + border-color: #08bbbb !important; +} + +.text-transparent { + color: transparent !important; +} + +.bg-transparent { + background-color: transparent !important; +} + +.border-transparent { + border-color: transparent !important; +} + +/* ========================================================================== */ +/* Spacing Utilities (Margin / Padding) */ +/* ========================================================================== */ +.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; +} + +.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; +} + +.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; +} + +.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; +} + +.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; +} + +.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; +} + +.m-3 { + margin: 1rem !important; +} + +.mt-3 { + margin-top: 1rem !important; +} + +.mr-3 { + margin-right: 1rem !important; +} + +.mb-3 { + margin-bottom: 1rem !important; +} + +.ml-3 { + margin-left: 1rem !important; +} + +.mx-3 { + margin-left: 1rem !important; + margin-right: 1rem !important; +} + +.my-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; +} + +.p-3 { + padding: 1rem !important; +} + +.pt-3 { + padding-top: 1rem !important; +} + +.pr-3 { + padding-right: 1rem !important; +} + +.pb-3 { + padding-bottom: 1rem !important; +} + +.pl-3 { + padding-left: 1rem !important; +} + +.px-3 { + padding-left: 1rem !important; + padding-right: 1rem !important; +} + +.py-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; +} + +.m-4 { + margin: 1.5rem !important; +} + +.mt-4 { + margin-top: 1.5rem !important; +} + +.mr-4 { + margin-right: 1.5rem !important; +} + +.mb-4 { + margin-bottom: 1.5rem !important; +} + +.ml-4 { + margin-left: 1.5rem !important; +} + +.mx-4 { + margin-left: 1.5rem !important; + margin-right: 1.5rem !important; +} + +.my-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; +} + +.p-4 { + padding: 1.5rem !important; +} + +.pt-4 { + padding-top: 1.5rem !important; +} + +.pr-4 { + padding-right: 1.5rem !important; +} + +.pb-4 { + padding-bottom: 1.5rem !important; +} + +.pl-4 { + padding-left: 1.5rem !important; +} + +.px-4 { + padding-left: 1.5rem !important; + padding-right: 1.5rem !important; +} + +.py-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; +} + +.m-5 { + margin: 3rem !important; +} + +.mt-5 { + margin-top: 3rem !important; +} + +.mr-5 { + margin-right: 3rem !important; +} + +.mb-5 { + margin-bottom: 3rem !important; +} + +.ml-5 { + margin-left: 3rem !important; +} + +.mx-5 { + margin-left: 3rem !important; + margin-right: 3rem !important; +} + +.my-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; +} + +.p-5 { + padding: 3rem !important; +} + +.pt-5 { + padding-top: 3rem !important; +} + +.pr-5 { + padding-right: 3rem !important; +} + +.pb-5 { + padding-bottom: 3rem !important; +} + +.pl-5 { + padding-left: 3rem !important; +} + +.px-5 { + padding-left: 3rem !important; + padding-right: 3rem !important; +} + +.py-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; +} + +/* Responsive spacing */ +@media (min-width: 576px) { + .sm-m-0 { + margin: 0 !important; + } + .sm-mt-0 { + margin-top: 0 !important; + } + .sm-mr-0 { + margin-right: 0 !important; + } + .sm-mb-0 { + margin-bottom: 0 !important; + } + .sm-ml-0 { + margin-left: 0 !important; + } + .sm-mx-0 { + margin-left: 0 !important; + margin-right: 0 !important; + } + .sm-my-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .sm-p-0 { + padding: 0 !important; + } + .sm-pt-0 { + padding-top: 0 !important; + } + .sm-pr-0 { + padding-right: 0 !important; + } + .sm-pb-0 { + padding-bottom: 0 !important; + } + .sm-pl-0 { + padding-left: 0 !important; + } + .sm-px-0 { + padding-left: 0 !important; + padding-right: 0 !important; + } + .sm-py-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .sm-m-1 { + margin: 0.25rem !important; + } + .sm-mt-1 { + margin-top: 0.25rem !important; + } + .sm-mr-1 { + margin-right: 0.25rem !important; + } + .sm-mb-1 { + margin-bottom: 0.25rem !important; + } + .sm-ml-1 { + margin-left: 0.25rem !important; + } + .sm-mx-1 { + margin-left: 0.25rem !important; + margin-right: 0.25rem !important; + } + .sm-my-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .sm-p-1 { + padding: 0.25rem !important; + } + .sm-pt-1 { + padding-top: 0.25rem !important; + } + .sm-pr-1 { + padding-right: 0.25rem !important; + } + .sm-pb-1 { + padding-bottom: 0.25rem !important; + } + .sm-pl-1 { + padding-left: 0.25rem !important; + } + .sm-px-1 { + padding-left: 0.25rem !important; + padding-right: 0.25rem !important; + } + .sm-py-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .sm-m-2 { + margin: 0.5rem !important; + } + .sm-mt-2 { + margin-top: 0.5rem !important; + } + .sm-mr-2 { + margin-right: 0.5rem !important; + } + .sm-mb-2 { + margin-bottom: 0.5rem !important; + } + .sm-ml-2 { + margin-left: 0.5rem !important; + } + .sm-mx-2 { + margin-left: 0.5rem !important; + margin-right: 0.5rem !important; + } + .sm-my-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .sm-p-2 { + padding: 0.5rem !important; + } + .sm-pt-2 { + padding-top: 0.5rem !important; + } + .sm-pr-2 { + padding-right: 0.5rem !important; + } + .sm-pb-2 { + padding-bottom: 0.5rem !important; + } + .sm-pl-2 { + padding-left: 0.5rem !important; + } + .sm-px-2 { + padding-left: 0.5rem !important; + padding-right: 0.5rem !important; + } + .sm-py-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .sm-m-3 { + margin: 1rem !important; + } + .sm-mt-3 { + margin-top: 1rem !important; + } + .sm-mr-3 { + margin-right: 1rem !important; + } + .sm-mb-3 { + margin-bottom: 1rem !important; + } + .sm-ml-3 { + margin-left: 1rem !important; + } + .sm-mx-3 { + margin-left: 1rem !important; + margin-right: 1rem !important; + } + .sm-my-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .sm-p-3 { + padding: 1rem !important; + } + .sm-pt-3 { + padding-top: 1rem !important; + } + .sm-pr-3 { + padding-right: 1rem !important; + } + .sm-pb-3 { + padding-bottom: 1rem !important; + } + .sm-pl-3 { + padding-left: 1rem !important; + } + .sm-px-3 { + padding-left: 1rem !important; + padding-right: 1rem !important; + } + .sm-py-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .sm-m-4 { + margin: 1.5rem !important; + } + .sm-mt-4 { + margin-top: 1.5rem !important; + } + .sm-mr-4 { + margin-right: 1.5rem !important; + } + .sm-mb-4 { + margin-bottom: 1.5rem !important; + } + .sm-ml-4 { + margin-left: 1.5rem !important; + } + .sm-mx-4 { + margin-left: 1.5rem !important; + margin-right: 1.5rem !important; + } + .sm-my-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .sm-p-4 { + padding: 1.5rem !important; + } + .sm-pt-4 { + padding-top: 1.5rem !important; + } + .sm-pr-4 { + padding-right: 1.5rem !important; + } + .sm-pb-4 { + padding-bottom: 1.5rem !important; + } + .sm-pl-4 { + padding-left: 1.5rem !important; + } + .sm-px-4 { + padding-left: 1.5rem !important; + padding-right: 1.5rem !important; + } + .sm-py-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .sm-m-5 { + margin: 3rem !important; + } + .sm-mt-5 { + margin-top: 3rem !important; + } + .sm-mr-5 { + margin-right: 3rem !important; + } + .sm-mb-5 { + margin-bottom: 3rem !important; + } + .sm-ml-5 { + margin-left: 3rem !important; + } + .sm-mx-5 { + margin-left: 3rem !important; + margin-right: 3rem !important; + } + .sm-my-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .sm-p-5 { + padding: 3rem !important; + } + .sm-pt-5 { + padding-top: 3rem !important; + } + .sm-pr-5 { + padding-right: 3rem !important; + } + .sm-pb-5 { + padding-bottom: 3rem !important; + } + .sm-pl-5 { + padding-left: 3rem !important; + } + .sm-px-5 { + padding-left: 3rem !important; + padding-right: 3rem !important; + } + .sm-py-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } +} +@media (min-width: 768px) { + .md-m-0 { + margin: 0 !important; + } + .md-mt-0 { + margin-top: 0 !important; + } + .md-mr-0 { + margin-right: 0 !important; + } + .md-mb-0 { + margin-bottom: 0 !important; + } + .md-ml-0 { + margin-left: 0 !important; + } + .md-mx-0 { + margin-left: 0 !important; + margin-right: 0 !important; + } + .md-my-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .md-p-0 { + padding: 0 !important; + } + .md-pt-0 { + padding-top: 0 !important; + } + .md-pr-0 { + padding-right: 0 !important; + } + .md-pb-0 { + padding-bottom: 0 !important; + } + .md-pl-0 { + padding-left: 0 !important; + } + .md-px-0 { + padding-left: 0 !important; + padding-right: 0 !important; + } + .md-py-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .md-m-1 { + margin: 0.25rem !important; + } + .md-mt-1 { + margin-top: 0.25rem !important; + } + .md-mr-1 { + margin-right: 0.25rem !important; + } + .md-mb-1 { + margin-bottom: 0.25rem !important; + } + .md-ml-1 { + margin-left: 0.25rem !important; + } + .md-mx-1 { + margin-left: 0.25rem !important; + margin-right: 0.25rem !important; + } + .md-my-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .md-p-1 { + padding: 0.25rem !important; + } + .md-pt-1 { + padding-top: 0.25rem !important; + } + .md-pr-1 { + padding-right: 0.25rem !important; + } + .md-pb-1 { + padding-bottom: 0.25rem !important; + } + .md-pl-1 { + padding-left: 0.25rem !important; + } + .md-px-1 { + padding-left: 0.25rem !important; + padding-right: 0.25rem !important; + } + .md-py-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .md-m-2 { + margin: 0.5rem !important; + } + .md-mt-2 { + margin-top: 0.5rem !important; + } + .md-mr-2 { + margin-right: 0.5rem !important; + } + .md-mb-2 { + margin-bottom: 0.5rem !important; + } + .md-ml-2 { + margin-left: 0.5rem !important; + } + .md-mx-2 { + margin-left: 0.5rem !important; + margin-right: 0.5rem !important; + } + .md-my-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .md-p-2 { + padding: 0.5rem !important; + } + .md-pt-2 { + padding-top: 0.5rem !important; + } + .md-pr-2 { + padding-right: 0.5rem !important; + } + .md-pb-2 { + padding-bottom: 0.5rem !important; + } + .md-pl-2 { + padding-left: 0.5rem !important; + } + .md-px-2 { + padding-left: 0.5rem !important; + padding-right: 0.5rem !important; + } + .md-py-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .md-m-3 { + margin: 1rem !important; + } + .md-mt-3 { + margin-top: 1rem !important; + } + .md-mr-3 { + margin-right: 1rem !important; + } + .md-mb-3 { + margin-bottom: 1rem !important; + } + .md-ml-3 { + margin-left: 1rem !important; + } + .md-mx-3 { + margin-left: 1rem !important; + margin-right: 1rem !important; + } + .md-my-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .md-p-3 { + padding: 1rem !important; + } + .md-pt-3 { + padding-top: 1rem !important; + } + .md-pr-3 { + padding-right: 1rem !important; + } + .md-pb-3 { + padding-bottom: 1rem !important; + } + .md-pl-3 { + padding-left: 1rem !important; + } + .md-px-3 { + padding-left: 1rem !important; + padding-right: 1rem !important; + } + .md-py-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .md-m-4 { + margin: 1.5rem !important; + } + .md-mt-4 { + margin-top: 1.5rem !important; + } + .md-mr-4 { + margin-right: 1.5rem !important; + } + .md-mb-4 { + margin-bottom: 1.5rem !important; + } + .md-ml-4 { + margin-left: 1.5rem !important; + } + .md-mx-4 { + margin-left: 1.5rem !important; + margin-right: 1.5rem !important; + } + .md-my-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .md-p-4 { + padding: 1.5rem !important; + } + .md-pt-4 { + padding-top: 1.5rem !important; + } + .md-pr-4 { + padding-right: 1.5rem !important; + } + .md-pb-4 { + padding-bottom: 1.5rem !important; + } + .md-pl-4 { + padding-left: 1.5rem !important; + } + .md-px-4 { + padding-left: 1.5rem !important; + padding-right: 1.5rem !important; + } + .md-py-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .md-m-5 { + margin: 3rem !important; + } + .md-mt-5 { + margin-top: 3rem !important; + } + .md-mr-5 { + margin-right: 3rem !important; + } + .md-mb-5 { + margin-bottom: 3rem !important; + } + .md-ml-5 { + margin-left: 3rem !important; + } + .md-mx-5 { + margin-left: 3rem !important; + margin-right: 3rem !important; + } + .md-my-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .md-p-5 { + padding: 3rem !important; + } + .md-pt-5 { + padding-top: 3rem !important; + } + .md-pr-5 { + padding-right: 3rem !important; + } + .md-pb-5 { + padding-bottom: 3rem !important; + } + .md-pl-5 { + padding-left: 3rem !important; + } + .md-px-5 { + padding-left: 3rem !important; + padding-right: 3rem !important; + } + .md-py-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } +} +@media (min-width: 992px) { + .lg-m-0 { + margin: 0 !important; + } + .lg-mt-0 { + margin-top: 0 !important; + } + .lg-mr-0 { + margin-right: 0 !important; + } + .lg-mb-0 { + margin-bottom: 0 !important; + } + .lg-ml-0 { + margin-left: 0 !important; + } + .lg-mx-0 { + margin-left: 0 !important; + margin-right: 0 !important; + } + .lg-my-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .lg-p-0 { + padding: 0 !important; + } + .lg-pt-0 { + padding-top: 0 !important; + } + .lg-pr-0 { + padding-right: 0 !important; + } + .lg-pb-0 { + padding-bottom: 0 !important; + } + .lg-pl-0 { + padding-left: 0 !important; + } + .lg-px-0 { + padding-left: 0 !important; + padding-right: 0 !important; + } + .lg-py-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .lg-m-1 { + margin: 0.25rem !important; + } + .lg-mt-1 { + margin-top: 0.25rem !important; + } + .lg-mr-1 { + margin-right: 0.25rem !important; + } + .lg-mb-1 { + margin-bottom: 0.25rem !important; + } + .lg-ml-1 { + margin-left: 0.25rem !important; + } + .lg-mx-1 { + margin-left: 0.25rem !important; + margin-right: 0.25rem !important; + } + .lg-my-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .lg-p-1 { + padding: 0.25rem !important; + } + .lg-pt-1 { + padding-top: 0.25rem !important; + } + .lg-pr-1 { + padding-right: 0.25rem !important; + } + .lg-pb-1 { + padding-bottom: 0.25rem !important; + } + .lg-pl-1 { + padding-left: 0.25rem !important; + } + .lg-px-1 { + padding-left: 0.25rem !important; + padding-right: 0.25rem !important; + } + .lg-py-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .lg-m-2 { + margin: 0.5rem !important; + } + .lg-mt-2 { + margin-top: 0.5rem !important; + } + .lg-mr-2 { + margin-right: 0.5rem !important; + } + .lg-mb-2 { + margin-bottom: 0.5rem !important; + } + .lg-ml-2 { + margin-left: 0.5rem !important; + } + .lg-mx-2 { + margin-left: 0.5rem !important; + margin-right: 0.5rem !important; + } + .lg-my-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .lg-p-2 { + padding: 0.5rem !important; + } + .lg-pt-2 { + padding-top: 0.5rem !important; + } + .lg-pr-2 { + padding-right: 0.5rem !important; + } + .lg-pb-2 { + padding-bottom: 0.5rem !important; + } + .lg-pl-2 { + padding-left: 0.5rem !important; + } + .lg-px-2 { + padding-left: 0.5rem !important; + padding-right: 0.5rem !important; + } + .lg-py-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .lg-m-3 { + margin: 1rem !important; + } + .lg-mt-3 { + margin-top: 1rem !important; + } + .lg-mr-3 { + margin-right: 1rem !important; + } + .lg-mb-3 { + margin-bottom: 1rem !important; + } + .lg-ml-3 { + margin-left: 1rem !important; + } + .lg-mx-3 { + margin-left: 1rem !important; + margin-right: 1rem !important; + } + .lg-my-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .lg-p-3 { + padding: 1rem !important; + } + .lg-pt-3 { + padding-top: 1rem !important; + } + .lg-pr-3 { + padding-right: 1rem !important; + } + .lg-pb-3 { + padding-bottom: 1rem !important; + } + .lg-pl-3 { + padding-left: 1rem !important; + } + .lg-px-3 { + padding-left: 1rem !important; + padding-right: 1rem !important; + } + .lg-py-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .lg-m-4 { + margin: 1.5rem !important; + } + .lg-mt-4 { + margin-top: 1.5rem !important; + } + .lg-mr-4 { + margin-right: 1.5rem !important; + } + .lg-mb-4 { + margin-bottom: 1.5rem !important; + } + .lg-ml-4 { + margin-left: 1.5rem !important; + } + .lg-mx-4 { + margin-left: 1.5rem !important; + margin-right: 1.5rem !important; + } + .lg-my-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .lg-p-4 { + padding: 1.5rem !important; + } + .lg-pt-4 { + padding-top: 1.5rem !important; + } + .lg-pr-4 { + padding-right: 1.5rem !important; + } + .lg-pb-4 { + padding-bottom: 1.5rem !important; + } + .lg-pl-4 { + padding-left: 1.5rem !important; + } + .lg-px-4 { + padding-left: 1.5rem !important; + padding-right: 1.5rem !important; + } + .lg-py-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .lg-m-5 { + margin: 3rem !important; + } + .lg-mt-5 { + margin-top: 3rem !important; + } + .lg-mr-5 { + margin-right: 3rem !important; + } + .lg-mb-5 { + margin-bottom: 3rem !important; + } + .lg-ml-5 { + margin-left: 3rem !important; + } + .lg-mx-5 { + margin-left: 3rem !important; + margin-right: 3rem !important; + } + .lg-my-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .lg-p-5 { + padding: 3rem !important; + } + .lg-pt-5 { + padding-top: 3rem !important; + } + .lg-pr-5 { + padding-right: 3rem !important; + } + .lg-pb-5 { + padding-bottom: 3rem !important; + } + .lg-pl-5 { + padding-left: 3rem !important; + } + .lg-px-5 { + padding-left: 3rem !important; + padding-right: 3rem !important; + } + .lg-py-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } +} +@media (min-width: 1200px) { + .xl-m-0 { + margin: 0 !important; + } + .xl-mt-0 { + margin-top: 0 !important; + } + .xl-mr-0 { + margin-right: 0 !important; + } + .xl-mb-0 { + margin-bottom: 0 !important; + } + .xl-ml-0 { + margin-left: 0 !important; + } + .xl-mx-0 { + margin-left: 0 !important; + margin-right: 0 !important; + } + .xl-my-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .xl-p-0 { + padding: 0 !important; + } + .xl-pt-0 { + padding-top: 0 !important; + } + .xl-pr-0 { + padding-right: 0 !important; + } + .xl-pb-0 { + padding-bottom: 0 !important; + } + .xl-pl-0 { + padding-left: 0 !important; + } + .xl-px-0 { + padding-left: 0 !important; + padding-right: 0 !important; + } + .xl-py-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .xl-m-1 { + margin: 0.25rem !important; + } + .xl-mt-1 { + margin-top: 0.25rem !important; + } + .xl-mr-1 { + margin-right: 0.25rem !important; + } + .xl-mb-1 { + margin-bottom: 0.25rem !important; + } + .xl-ml-1 { + margin-left: 0.25rem !important; + } + .xl-mx-1 { + margin-left: 0.25rem !important; + margin-right: 0.25rem !important; + } + .xl-my-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .xl-p-1 { + padding: 0.25rem !important; + } + .xl-pt-1 { + padding-top: 0.25rem !important; + } + .xl-pr-1 { + padding-right: 0.25rem !important; + } + .xl-pb-1 { + padding-bottom: 0.25rem !important; + } + .xl-pl-1 { + padding-left: 0.25rem !important; + } + .xl-px-1 { + padding-left: 0.25rem !important; + padding-right: 0.25rem !important; + } + .xl-py-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .xl-m-2 { + margin: 0.5rem !important; + } + .xl-mt-2 { + margin-top: 0.5rem !important; + } + .xl-mr-2 { + margin-right: 0.5rem !important; + } + .xl-mb-2 { + margin-bottom: 0.5rem !important; + } + .xl-ml-2 { + margin-left: 0.5rem !important; + } + .xl-mx-2 { + margin-left: 0.5rem !important; + margin-right: 0.5rem !important; + } + .xl-my-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .xl-p-2 { + padding: 0.5rem !important; + } + .xl-pt-2 { + padding-top: 0.5rem !important; + } + .xl-pr-2 { + padding-right: 0.5rem !important; + } + .xl-pb-2 { + padding-bottom: 0.5rem !important; + } + .xl-pl-2 { + padding-left: 0.5rem !important; + } + .xl-px-2 { + padding-left: 0.5rem !important; + padding-right: 0.5rem !important; + } + .xl-py-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .xl-m-3 { + margin: 1rem !important; + } + .xl-mt-3 { + margin-top: 1rem !important; + } + .xl-mr-3 { + margin-right: 1rem !important; + } + .xl-mb-3 { + margin-bottom: 1rem !important; + } + .xl-ml-3 { + margin-left: 1rem !important; + } + .xl-mx-3 { + margin-left: 1rem !important; + margin-right: 1rem !important; + } + .xl-my-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .xl-p-3 { + padding: 1rem !important; + } + .xl-pt-3 { + padding-top: 1rem !important; + } + .xl-pr-3 { + padding-right: 1rem !important; + } + .xl-pb-3 { + padding-bottom: 1rem !important; + } + .xl-pl-3 { + padding-left: 1rem !important; + } + .xl-px-3 { + padding-left: 1rem !important; + padding-right: 1rem !important; + } + .xl-py-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .xl-m-4 { + margin: 1.5rem !important; + } + .xl-mt-4 { + margin-top: 1.5rem !important; + } + .xl-mr-4 { + margin-right: 1.5rem !important; + } + .xl-mb-4 { + margin-bottom: 1.5rem !important; + } + .xl-ml-4 { + margin-left: 1.5rem !important; + } + .xl-mx-4 { + margin-left: 1.5rem !important; + margin-right: 1.5rem !important; + } + .xl-my-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .xl-p-4 { + padding: 1.5rem !important; + } + .xl-pt-4 { + padding-top: 1.5rem !important; + } + .xl-pr-4 { + padding-right: 1.5rem !important; + } + .xl-pb-4 { + padding-bottom: 1.5rem !important; + } + .xl-pl-4 { + padding-left: 1.5rem !important; + } + .xl-px-4 { + padding-left: 1.5rem !important; + padding-right: 1.5rem !important; + } + .xl-py-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .xl-m-5 { + margin: 3rem !important; + } + .xl-mt-5 { + margin-top: 3rem !important; + } + .xl-mr-5 { + margin-right: 3rem !important; + } + .xl-mb-5 { + margin-bottom: 3rem !important; + } + .xl-ml-5 { + margin-left: 3rem !important; + } + .xl-mx-5 { + margin-left: 3rem !important; + margin-right: 3rem !important; + } + .xl-my-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .xl-p-5 { + padding: 3rem !important; + } + .xl-pt-5 { + padding-top: 3rem !important; + } + .xl-pr-5 { + padding-right: 3rem !important; + } + .xl-pb-5 { + padding-bottom: 3rem !important; + } + .xl-pl-5 { + padding-left: 3rem !important; + } + .xl-px-5 { + padding-left: 3rem !important; + padding-right: 3rem !important; + } + .xl-py-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } +} +@media (min-width: 1400px) { + .xxl-m-0 { + margin: 0 !important; + } + .xxl-mt-0 { + margin-top: 0 !important; + } + .xxl-mr-0 { + margin-right: 0 !important; + } + .xxl-mb-0 { + margin-bottom: 0 !important; + } + .xxl-ml-0 { + margin-left: 0 !important; + } + .xxl-mx-0 { + margin-left: 0 !important; + margin-right: 0 !important; + } + .xxl-my-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .xxl-p-0 { + padding: 0 !important; + } + .xxl-pt-0 { + padding-top: 0 !important; + } + .xxl-pr-0 { + padding-right: 0 !important; + } + .xxl-pb-0 { + padding-bottom: 0 !important; + } + .xxl-pl-0 { + padding-left: 0 !important; + } + .xxl-px-0 { + padding-left: 0 !important; + padding-right: 0 !important; + } + .xxl-py-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .xxl-m-1 { + margin: 0.25rem !important; + } + .xxl-mt-1 { + margin-top: 0.25rem !important; + } + .xxl-mr-1 { + margin-right: 0.25rem !important; + } + .xxl-mb-1 { + margin-bottom: 0.25rem !important; + } + .xxl-ml-1 { + margin-left: 0.25rem !important; + } + .xxl-mx-1 { + margin-left: 0.25rem !important; + margin-right: 0.25rem !important; + } + .xxl-my-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .xxl-p-1 { + padding: 0.25rem !important; + } + .xxl-pt-1 { + padding-top: 0.25rem !important; + } + .xxl-pr-1 { + padding-right: 0.25rem !important; + } + .xxl-pb-1 { + padding-bottom: 0.25rem !important; + } + .xxl-pl-1 { + padding-left: 0.25rem !important; + } + .xxl-px-1 { + padding-left: 0.25rem !important; + padding-right: 0.25rem !important; + } + .xxl-py-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .xxl-m-2 { + margin: 0.5rem !important; + } + .xxl-mt-2 { + margin-top: 0.5rem !important; + } + .xxl-mr-2 { + margin-right: 0.5rem !important; + } + .xxl-mb-2 { + margin-bottom: 0.5rem !important; + } + .xxl-ml-2 { + margin-left: 0.5rem !important; + } + .xxl-mx-2 { + margin-left: 0.5rem !important; + margin-right: 0.5rem !important; + } + .xxl-my-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .xxl-p-2 { + padding: 0.5rem !important; + } + .xxl-pt-2 { + padding-top: 0.5rem !important; + } + .xxl-pr-2 { + padding-right: 0.5rem !important; + } + .xxl-pb-2 { + padding-bottom: 0.5rem !important; + } + .xxl-pl-2 { + padding-left: 0.5rem !important; + } + .xxl-px-2 { + padding-left: 0.5rem !important; + padding-right: 0.5rem !important; + } + .xxl-py-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .xxl-m-3 { + margin: 1rem !important; + } + .xxl-mt-3 { + margin-top: 1rem !important; + } + .xxl-mr-3 { + margin-right: 1rem !important; + } + .xxl-mb-3 { + margin-bottom: 1rem !important; + } + .xxl-ml-3 { + margin-left: 1rem !important; + } + .xxl-mx-3 { + margin-left: 1rem !important; + margin-right: 1rem !important; + } + .xxl-my-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .xxl-p-3 { + padding: 1rem !important; + } + .xxl-pt-3 { + padding-top: 1rem !important; + } + .xxl-pr-3 { + padding-right: 1rem !important; + } + .xxl-pb-3 { + padding-bottom: 1rem !important; + } + .xxl-pl-3 { + padding-left: 1rem !important; + } + .xxl-px-3 { + padding-left: 1rem !important; + padding-right: 1rem !important; + } + .xxl-py-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .xxl-m-4 { + margin: 1.5rem !important; + } + .xxl-mt-4 { + margin-top: 1.5rem !important; + } + .xxl-mr-4 { + margin-right: 1.5rem !important; + } + .xxl-mb-4 { + margin-bottom: 1.5rem !important; + } + .xxl-ml-4 { + margin-left: 1.5rem !important; + } + .xxl-mx-4 { + margin-left: 1.5rem !important; + margin-right: 1.5rem !important; + } + .xxl-my-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .xxl-p-4 { + padding: 1.5rem !important; + } + .xxl-pt-4 { + padding-top: 1.5rem !important; + } + .xxl-pr-4 { + padding-right: 1.5rem !important; + } + .xxl-pb-4 { + padding-bottom: 1.5rem !important; + } + .xxl-pl-4 { + padding-left: 1.5rem !important; + } + .xxl-px-4 { + padding-left: 1.5rem !important; + padding-right: 1.5rem !important; + } + .xxl-py-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .xxl-m-5 { + margin: 3rem !important; + } + .xxl-mt-5 { + margin-top: 3rem !important; + } + .xxl-mr-5 { + margin-right: 3rem !important; + } + .xxl-mb-5 { + margin-bottom: 3rem !important; + } + .xxl-ml-5 { + margin-left: 3rem !important; + } + .xxl-mx-5 { + margin-left: 3rem !important; + margin-right: 3rem !important; + } + .xxl-my-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .xxl-p-5 { + padding: 3rem !important; + } + .xxl-pt-5 { + padding-top: 3rem !important; + } + .xxl-pr-5 { + padding-right: 3rem !important; + } + .xxl-pb-5 { + padding-bottom: 3rem !important; + } + .xxl-pl-5 { + padding-left: 3rem !important; + } + .xxl-px-5 { + padding-left: 3rem !important; + padding-right: 3rem !important; + } + .xxl-py-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } +} +@media (min-width: 1600px) { + .xxxl-m-0 { + margin: 0 !important; + } + .xxxl-mt-0 { + margin-top: 0 !important; + } + .xxxl-mr-0 { + margin-right: 0 !important; + } + .xxxl-mb-0 { + margin-bottom: 0 !important; + } + .xxxl-ml-0 { + margin-left: 0 !important; + } + .xxxl-mx-0 { + margin-left: 0 !important; + margin-right: 0 !important; + } + .xxxl-my-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .xxxl-p-0 { + padding: 0 !important; + } + .xxxl-pt-0 { + padding-top: 0 !important; + } + .xxxl-pr-0 { + padding-right: 0 !important; + } + .xxxl-pb-0 { + padding-bottom: 0 !important; + } + .xxxl-pl-0 { + padding-left: 0 !important; + } + .xxxl-px-0 { + padding-left: 0 !important; + padding-right: 0 !important; + } + .xxxl-py-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .xxxl-m-1 { + margin: 0.25rem !important; + } + .xxxl-mt-1 { + margin-top: 0.25rem !important; + } + .xxxl-mr-1 { + margin-right: 0.25rem !important; + } + .xxxl-mb-1 { + margin-bottom: 0.25rem !important; + } + .xxxl-ml-1 { + margin-left: 0.25rem !important; + } + .xxxl-mx-1 { + margin-left: 0.25rem !important; + margin-right: 0.25rem !important; + } + .xxxl-my-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .xxxl-p-1 { + padding: 0.25rem !important; + } + .xxxl-pt-1 { + padding-top: 0.25rem !important; + } + .xxxl-pr-1 { + padding-right: 0.25rem !important; + } + .xxxl-pb-1 { + padding-bottom: 0.25rem !important; + } + .xxxl-pl-1 { + padding-left: 0.25rem !important; + } + .xxxl-px-1 { + padding-left: 0.25rem !important; + padding-right: 0.25rem !important; + } + .xxxl-py-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .xxxl-m-2 { + margin: 0.5rem !important; + } + .xxxl-mt-2 { + margin-top: 0.5rem !important; + } + .xxxl-mr-2 { + margin-right: 0.5rem !important; + } + .xxxl-mb-2 { + margin-bottom: 0.5rem !important; + } + .xxxl-ml-2 { + margin-left: 0.5rem !important; + } + .xxxl-mx-2 { + margin-left: 0.5rem !important; + margin-right: 0.5rem !important; + } + .xxxl-my-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .xxxl-p-2 { + padding: 0.5rem !important; + } + .xxxl-pt-2 { + padding-top: 0.5rem !important; + } + .xxxl-pr-2 { + padding-right: 0.5rem !important; + } + .xxxl-pb-2 { + padding-bottom: 0.5rem !important; + } + .xxxl-pl-2 { + padding-left: 0.5rem !important; + } + .xxxl-px-2 { + padding-left: 0.5rem !important; + padding-right: 0.5rem !important; + } + .xxxl-py-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .xxxl-m-3 { + margin: 1rem !important; + } + .xxxl-mt-3 { + margin-top: 1rem !important; + } + .xxxl-mr-3 { + margin-right: 1rem !important; + } + .xxxl-mb-3 { + margin-bottom: 1rem !important; + } + .xxxl-ml-3 { + margin-left: 1rem !important; + } + .xxxl-mx-3 { + margin-left: 1rem !important; + margin-right: 1rem !important; + } + .xxxl-my-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .xxxl-p-3 { + padding: 1rem !important; + } + .xxxl-pt-3 { + padding-top: 1rem !important; + } + .xxxl-pr-3 { + padding-right: 1rem !important; + } + .xxxl-pb-3 { + padding-bottom: 1rem !important; + } + .xxxl-pl-3 { + padding-left: 1rem !important; + } + .xxxl-px-3 { + padding-left: 1rem !important; + padding-right: 1rem !important; + } + .xxxl-py-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .xxxl-m-4 { + margin: 1.5rem !important; + } + .xxxl-mt-4 { + margin-top: 1.5rem !important; + } + .xxxl-mr-4 { + margin-right: 1.5rem !important; + } + .xxxl-mb-4 { + margin-bottom: 1.5rem !important; + } + .xxxl-ml-4 { + margin-left: 1.5rem !important; + } + .xxxl-mx-4 { + margin-left: 1.5rem !important; + margin-right: 1.5rem !important; + } + .xxxl-my-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .xxxl-p-4 { + padding: 1.5rem !important; + } + .xxxl-pt-4 { + padding-top: 1.5rem !important; + } + .xxxl-pr-4 { + padding-right: 1.5rem !important; + } + .xxxl-pb-4 { + padding-bottom: 1.5rem !important; + } + .xxxl-pl-4 { + padding-left: 1.5rem !important; + } + .xxxl-px-4 { + padding-left: 1.5rem !important; + padding-right: 1.5rem !important; + } + .xxxl-py-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .xxxl-m-5 { + margin: 3rem !important; + } + .xxxl-mt-5 { + margin-top: 3rem !important; + } + .xxxl-mr-5 { + margin-right: 3rem !important; + } + .xxxl-mb-5 { + margin-bottom: 3rem !important; + } + .xxxl-ml-5 { + margin-left: 3rem !important; + } + .xxxl-mx-5 { + margin-left: 3rem !important; + margin-right: 3rem !important; + } + .xxxl-my-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .xxxl-p-5 { + padding: 3rem !important; + } + .xxxl-pt-5 { + padding-top: 3rem !important; + } + .xxxl-pr-5 { + padding-right: 3rem !important; + } + .xxxl-pb-5 { + padding-bottom: 3rem !important; + } + .xxxl-pl-5 { + padding-left: 3rem !important; + } + .xxxl-px-5 { + padding-left: 3rem !important; + padding-right: 3rem !important; + } + .xxxl-py-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } +} +/* ========================================================================== */ +/* Sizing Utilities (Width / Height) */ +/* ========================================================================== */ +.w-0 { + width: 0%; +} + +.h-0 { + height: 0%; +} + +.w-25 { + width: 25%; +} + +.h-25 { + height: 25%; +} + +.w-33 { + width: 33.3333%; +} + +.h-33 { + height: 33.3333%; +} + +.w-50 { + width: 50%; +} + +.h-50 { + height: 50%; +} + +.w-66 { + width: 66.6667%; +} + +.h-66 { + height: 66.6667%; +} + +.w-75 { + width: 75%; +} + +.h-75 { + height: 75%; +} + +.w-100 { + width: 100%; +} + +.h-100 { + height: 100%; +} + +.wpx-0 { + width: 0px; +} + +.hpx-0 { + height: 0px; +} + +.wpx-1 { + width: 1px; +} + +.hpx-1 { + height: 1px; +} + +.wpx-2 { + width: 2px; +} + +.hpx-2 { + height: 2px; +} + +.wpx-4 { + width: 4px; +} + +.hpx-4 { + height: 4px; +} + +.wpx-8 { + width: 8px; +} + +.hpx-8 { + height: 8px; +} + +.wpx-12 { + width: 12px; +} + +.hpx-12 { + height: 12px; +} + +.wpx-16 { + width: 16px; +} + +.hpx-16 { + height: 16px; +} + +.wpx-20 { + width: 20px; +} + +.hpx-20 { + height: 20px; +} + +.wpx-24 { + width: 24px; +} + +.hpx-24 { + height: 24px; +} + +.wpx-32 { + width: 32px; +} + +.hpx-32 { + height: 32px; +} + +.wpx-40 { + width: 40px; +} + +.hpx-40 { + height: 40px; +} + +.wpx-48 { + width: 48px; +} + +.hpx-48 { + height: 48px; +} + +.wpx-56 { + width: 56px; +} + +.hpx-56 { + height: 56px; +} + +.wpx-64 { + width: 64px; +} + +.hpx-64 { + height: 64px; +} + +.wpx-80 { + width: 80px; +} + +.hpx-80 { + height: 80px; +} + +.wpx-96 { + width: 96px; +} + +.hpx-96 { + height: 96px; +} + +.wpx-112 { + width: 112px; +} + +.hpx-112 { + height: 112px; +} + +.wpx-128 { + width: 128px; +} + +.hpx-128 { + height: 128px; +} + +.wpx-160 { + width: 160px; +} + +.hpx-160 { + height: 160px; +} + +.wpx-192 { + width: 192px; +} + +.hpx-192 { + height: 192px; +} + +.wpx-224 { + width: 224px; +} + +.hpx-224 { + height: 224px; +} + +.wpx-256 { + width: 256px; +} + +.hpx-256 { + height: 256px; +} + +.wpx-320 { + width: 320px; +} + +.hpx-320 { + height: 320px; +} + +.wpx-384 { + width: 384px; +} + +.hpx-384 { + height: 384px; +} + +.wpx-448 { + width: 448px; +} + +.hpx-448 { + height: 448px; +} + +.wpx-512 { + width: 512px; +} + +.hpx-512 { + height: 512px; +} + +.wrem-0 { + width: 0; +} + +.hrem-0 { + height: 0; +} + +.wrem-1 { + width: 0.25rem; +} + +.hrem-1 { + height: 0.25rem; +} + +.wrem-2 { + width: 0.5rem; +} + +.hrem-2 { + height: 0.5rem; +} + +.wrem-3 { + width: 1rem; +} + +.hrem-3 { + height: 1rem; +} + +.wrem-4 { + width: 1.5rem; +} + +.hrem-4 { + height: 1.5rem; +} + +.wrem-5 { + width: 2rem; +} + +.hrem-5 { + height: 2rem; +} + +.wrem-6 { + width: 3rem; +} + +.hrem-6 { + height: 3rem; +} + +.wrem-7 { + width: 4rem; +} + +.hrem-7 { + height: 4rem; +} + +.wrem-8 { + width: 6rem; +} + +.hrem-8 { + height: 6rem; +} + +.wvw-10 { + width: 10vw; +} + +.wvw-20 { + width: 20vw; +} + +.wvw-25 { + width: 25vw; +} + +.wvw-33 { + width: 33vw; +} + +.wvw-40 { + width: 40vw; +} + +.wvw-50 { + width: 50vw; +} + +.wvw-60 { + width: 60vw; +} + +.wvw-66 { + width: 66vw; +} + +.wvw-75 { + width: 75vw; +} + +.wvw-80 { + width: 80vw; +} + +.wvw-90 { + width: 90vw; +} + +.wvw-100 { + width: 100vw; +} + +.hvh-10 { + height: 10vh; +} + +.hvh-20 { + height: 20vh; +} + +.hvh-25 { + height: 25vh; +} + +.hvh-33 { + height: 33vh; +} + +.hvh-40 { + height: 40vh; +} + +.hvh-50 { + height: 50vh; +} + +.hvh-60 { + height: 60vh; +} + +.hvh-66 { + height: 66vh; +} + +.hvh-75 { + height: 75vh; +} + +.hvh-80 { + height: 80vh; +} + +.hvh-90 { + height: 90vh; +} + +.hvh-100 { + height: 100vh; +} + +.hdvh-10 { + height: 10dvh; +} + +.hdvh-20 { + height: 20dvh; +} + +.hdvh-25 { + height: 25dvh; +} + +.hdvh-33 { + height: 33dvh; +} + +.hdvh-40 { + height: 40dvh; +} + +.hdvh-50 { + height: 50dvh; +} + +.hdvh-60 { + height: 60dvh; +} + +.hdvh-66 { + height: 66dvh; +} + +.hdvh-75 { + height: 75dvh; +} + +.hdvh-80 { + height: 80dvh; +} + +.hdvh-90 { + height: 90dvh; +} + +.hdvh-100 { + height: 100dvh; +} + +.hsvh-10 { + height: 10svh; +} + +.hsvh-20 { + height: 20svh; +} + +.hsvh-25 { + height: 25svh; +} + +.hsvh-33 { + height: 33svh; +} + +.hsvh-40 { + height: 40svh; +} + +.hsvh-50 { + height: 50svh; +} + +.hsvh-60 { + height: 60svh; +} + +.hsvh-66 { + height: 66svh; +} + +.hsvh-75 { + height: 75svh; +} + +.hsvh-80 { + height: 80svh; +} + +.hsvh-90 { + height: 90svh; +} + +.hsvh-100 { + height: 100svh; +} + +.hlvh-10 { + height: 10lvh; +} + +.hlvh-20 { + height: 20lvh; +} + +.hlvh-25 { + height: 25lvh; +} + +.hlvh-33 { + height: 33lvh; +} + +.hlvh-40 { + height: 40lvh; +} + +.hlvh-50 { + height: 50lvh; +} + +.hlvh-60 { + height: 60lvh; +} + +.hlvh-66 { + height: 66lvh; +} + +.hlvh-75 { + height: 75lvh; +} + +.hlvh-80 { + height: 80lvh; +} + +.hlvh-90 { + height: 90lvh; +} + +.hlvh-100 { + height: 100lvh; +} + +/* Responsive sizing */ +@media (min-width: 576px) { + .sm-w-0 { + width: 0%; + } + .sm-h-0 { + height: 0%; + } + .sm-w-25 { + width: 25%; + } + .sm-h-25 { + height: 25%; + } + .sm-w-33 { + width: 33.3333%; + } + .sm-h-33 { + height: 33.3333%; + } + .sm-w-50 { + width: 50%; + } + .sm-h-50 { + height: 50%; + } + .sm-w-66 { + width: 66.6667%; + } + .sm-h-66 { + height: 66.6667%; + } + .sm-w-75 { + width: 75%; + } + .sm-h-75 { + height: 75%; + } + .sm-w-100 { + width: 100%; + } + .sm-h-100 { + height: 100%; + } +} +@media (min-width: 768px) { + .md-w-0 { + width: 0%; + } + .md-h-0 { + height: 0%; + } + .md-w-25 { + width: 25%; + } + .md-h-25 { + height: 25%; + } + .md-w-33 { + width: 33.3333%; + } + .md-h-33 { + height: 33.3333%; + } + .md-w-50 { + width: 50%; + } + .md-h-50 { + height: 50%; + } + .md-w-66 { + width: 66.6667%; + } + .md-h-66 { + height: 66.6667%; + } + .md-w-75 { + width: 75%; + } + .md-h-75 { + height: 75%; + } + .md-w-100 { + width: 100%; + } + .md-h-100 { + height: 100%; + } +} +@media (min-width: 992px) { + .lg-w-0 { + width: 0%; + } + .lg-h-0 { + height: 0%; + } + .lg-w-25 { + width: 25%; + } + .lg-h-25 { + height: 25%; + } + .lg-w-33 { + width: 33.3333%; + } + .lg-h-33 { + height: 33.3333%; + } + .lg-w-50 { + width: 50%; + } + .lg-h-50 { + height: 50%; + } + .lg-w-66 { + width: 66.6667%; + } + .lg-h-66 { + height: 66.6667%; + } + .lg-w-75 { + width: 75%; + } + .lg-h-75 { + height: 75%; + } + .lg-w-100 { + width: 100%; + } + .lg-h-100 { + height: 100%; + } +} +@media (min-width: 1200px) { + .xl-w-0 { + width: 0%; + } + .xl-h-0 { + height: 0%; + } + .xl-w-25 { + width: 25%; + } + .xl-h-25 { + height: 25%; + } + .xl-w-33 { + width: 33.3333%; + } + .xl-h-33 { + height: 33.3333%; + } + .xl-w-50 { + width: 50%; + } + .xl-h-50 { + height: 50%; + } + .xl-w-66 { + width: 66.6667%; + } + .xl-h-66 { + height: 66.6667%; + } + .xl-w-75 { + width: 75%; + } + .xl-h-75 { + height: 75%; + } + .xl-w-100 { + width: 100%; + } + .xl-h-100 { + height: 100%; + } +} +@media (min-width: 1400px) { + .xxl-w-0 { + width: 0%; + } + .xxl-h-0 { + height: 0%; + } + .xxl-w-25 { + width: 25%; + } + .xxl-h-25 { + height: 25%; + } + .xxl-w-33 { + width: 33.3333%; + } + .xxl-h-33 { + height: 33.3333%; + } + .xxl-w-50 { + width: 50%; + } + .xxl-h-50 { + height: 50%; + } + .xxl-w-66 { + width: 66.6667%; + } + .xxl-h-66 { + height: 66.6667%; + } + .xxl-w-75 { + width: 75%; + } + .xxl-h-75 { + height: 75%; + } + .xxl-w-100 { + width: 100%; + } + .xxl-h-100 { + height: 100%; + } +} +@media (min-width: 1600px) { + .xxxl-w-0 { + width: 0%; + } + .xxxl-h-0 { + height: 0%; + } + .xxxl-w-25 { + width: 25%; + } + .xxxl-h-25 { + height: 25%; + } + .xxxl-w-33 { + width: 33.3333%; + } + .xxxl-h-33 { + height: 33.3333%; + } + .xxxl-w-50 { + width: 50%; + } + .xxxl-h-50 { + height: 50%; + } + .xxxl-w-66 { + width: 66.6667%; + } + .xxxl-h-66 { + height: 66.6667%; + } + .xxxl-w-75 { + width: 75%; + } + .xxxl-h-75 { + height: 75%; + } + .xxxl-w-100 { + width: 100%; + } + .xxxl-h-100 { + height: 100%; + } +} +/* ========================================================================== */ +/* Display + Layout */ +/* ========================================================================== */ +.d-block { + display: block !important; +} + +.d-flex { + display: flex !important; +} + +.d-inline { + display: inline !important; +} + +.d-inline-block { + display: inline-block !important; +} + +.d-inline-flex { + display: inline-flex !important; +} + +.d-grid { + display: grid !important; +} + +.d-none { + display: none !important; +} + +.container { + width: 100%; + margin-inline: auto; + padding-inline: 1rem; +} +@media (min-width: 576px) { + .container { + max-width: 540px; + } +} +@media (min-width: 768px) { + .container { + max-width: 720px; + } +} +@media (min-width: 992px) { + .container { + max-width: 960px; + } +} +@media (min-width: 1200px) { + .container { + max-width: 1140px; + } +} +@media (min-width: 1400px) { + .container { + max-width: 1320px; + } +} +@media (min-width: 1600px) { + .container { + max-width: 1520px; + } +} + +/* Container variants */ +.container-fluid { + width: 100%; + margin-inline: auto; + padding-inline: 1rem; + max-width: none; +} + +.container-bleed { + width: 100vw; + margin-left: 50%; + transform: translateX(-50%); + padding-inline: 0; +} + +.container-narrow { + width: 100%; + margin-inline: auto; + padding-inline: 1rem; + max-width: clamp(36rem, 70vw, 56rem); +} + +.container-wide { + width: 100%; + margin-inline: auto; + padding-inline: 1rem; + max-width: clamp(72rem, 92vw, 100rem); +} + +.container-fluid { + width: 100%; + margin-inline: auto; + padding-inline: 1rem; + max-width: none; +} + +.container-bleed { + width: 100vw; + margin-left: 50%; + transform: translateX(-50%); + padding-inline: 0; +} + +.container-narrow { + width: 100%; + margin-inline: auto; + padding-inline: 1rem; + max-width: clamp(36rem, 70vw, 56rem); +} + +.container-wide { + width: 100%; + margin-inline: auto; + padding-inline: 1rem; + max-width: clamp(72rem, 92vw, 100rem); +} + +.container-fluid { + width: 100%; + margin-inline: auto; + padding-inline: 1rem; + max-width: none; +} + +.container-bleed { + width: 100vw; + margin-left: 50%; + transform: translateX(-50%); + padding-inline: 0; +} + +.container-narrow { + width: 100%; + margin-inline: auto; + padding-inline: 1rem; + max-width: clamp(36rem, 70vw, 56rem); +} + +.container-wide { + width: 100%; + margin-inline: auto; + padding-inline: 1rem; + max-width: clamp(72rem, 92vw, 100rem); +} + +/* Flex grid */ +.row { + display: flex; + flex-wrap: wrap; + margin-inline: 1rem; + margin-block: 1rem; +} + +.col { + flex: 1 0 0%; + padding-inline: 1rem; + padding-block: 1rem; +} + +.col-auto { + flex: 0 0 auto; + width: auto; + padding-inline: 1rem; + padding-block: 1rem; +} + +.col-1 { + flex: 0 0 8.3333333333%; + max-width: 8.3333333333%; + padding-inline: 1rem; + padding-block: 1rem; +} + +.col-2 { + flex: 0 0 16.6666666667%; + max-width: 16.6666666667%; + padding-inline: 1rem; + padding-block: 1rem; +} + +.col-3 { + flex: 0 0 25%; + max-width: 25%; + padding-inline: 1rem; + padding-block: 1rem; +} + +.col-4 { + flex: 0 0 33.3333333333%; + max-width: 33.3333333333%; + padding-inline: 1rem; + padding-block: 1rem; +} + +.col-5 { + flex: 0 0 41.6666666667%; + max-width: 41.6666666667%; + padding-inline: 1rem; + padding-block: 1rem; +} + +.col-6 { + flex: 0 0 50%; + max-width: 50%; + padding-inline: 1rem; + padding-block: 1rem; +} + +.col-7 { + flex: 0 0 58.3333333333%; + max-width: 58.3333333333%; + padding-inline: 1rem; + padding-block: 1rem; +} + +.col-8 { + flex: 0 0 66.6666666667%; + max-width: 66.6666666667%; + padding-inline: 1rem; + padding-block: 1rem; +} + +.col-9 { + flex: 0 0 75%; + max-width: 75%; + padding-inline: 1rem; + padding-block: 1rem; +} + +.col-10 { + flex: 0 0 83.3333333333%; + max-width: 83.3333333333%; + padding-inline: 1rem; + padding-block: 1rem; +} + +.col-11 { + flex: 0 0 91.6666666667%; + max-width: 91.6666666667%; + padding-inline: 1rem; + padding-block: 1rem; +} + +.col-12 { + flex: 0 0 100%; + max-width: 100%; + padding-inline: 1rem; + padding-block: 1rem; +} + +@media (min-width: 576px) { + .col-sm { + flex: 1 0 0%; + padding-inline: 1rem; + padding-block: 1rem; + } + .col-sm-auto { + flex: 0 0 auto; + width: auto; + padding-inline: 1rem; + padding-block: 1rem; + } + .col-sm-1 { + flex: 0 0 8.3333333333%; + max-width: 8.3333333333%; + padding-inline: 1rem; + padding-block: 1rem; + } + .col-sm-2 { + flex: 0 0 16.6666666667%; + max-width: 16.6666666667%; + padding-inline: 1rem; + padding-block: 1rem; + } + .col-sm-3 { + flex: 0 0 25%; + max-width: 25%; + padding-inline: 1rem; + padding-block: 1rem; + } + .col-sm-4 { + flex: 0 0 33.3333333333%; + max-width: 33.3333333333%; + padding-inline: 1rem; + padding-block: 1rem; + } + .col-sm-5 { + flex: 0 0 41.6666666667%; + max-width: 41.6666666667%; + padding-inline: 1rem; + padding-block: 1rem; + } + .col-sm-6 { + flex: 0 0 50%; + max-width: 50%; + padding-inline: 1rem; + padding-block: 1rem; + } + .col-sm-7 { + flex: 0 0 58.3333333333%; + max-width: 58.3333333333%; + padding-inline: 1rem; + padding-block: 1rem; + } + .col-sm-8 { + flex: 0 0 66.6666666667%; + max-width: 66.6666666667%; + padding-inline: 1rem; + padding-block: 1rem; + } + .col-sm-9 { + flex: 0 0 75%; + max-width: 75%; + padding-inline: 1rem; + padding-block: 1rem; + } + .col-sm-10 { + flex: 0 0 83.3333333333%; + max-width: 83.3333333333%; + padding-inline: 1rem; + padding-block: 1rem; + } + .col-sm-11 { + flex: 0 0 91.6666666667%; + max-width: 91.6666666667%; + padding-inline: 1rem; + padding-block: 1rem; + } + .col-sm-12 { + flex: 0 0 100%; + max-width: 100%; + padding-inline: 1rem; + padding-block: 1rem; + } +} +@media (min-width: 768px) { + .col-md { + flex: 1 0 0%; + padding-inline: 1rem; + padding-block: 1rem; + } + .col-md-auto { + flex: 0 0 auto; + width: auto; + padding-inline: 1rem; + padding-block: 1rem; + } + .col-md-1 { + flex: 0 0 8.3333333333%; + max-width: 8.3333333333%; + padding-inline: 1rem; + padding-block: 1rem; + } + .col-md-2 { + flex: 0 0 16.6666666667%; + max-width: 16.6666666667%; + padding-inline: 1rem; + padding-block: 1rem; + } + .col-md-3 { + flex: 0 0 25%; + max-width: 25%; + padding-inline: 1rem; + padding-block: 1rem; + } + .col-md-4 { + flex: 0 0 33.3333333333%; + max-width: 33.3333333333%; + padding-inline: 1rem; + padding-block: 1rem; + } + .col-md-5 { + flex: 0 0 41.6666666667%; + max-width: 41.6666666667%; + padding-inline: 1rem; + padding-block: 1rem; + } + .col-md-6 { + flex: 0 0 50%; + max-width: 50%; + padding-inline: 1rem; + padding-block: 1rem; + } + .col-md-7 { + flex: 0 0 58.3333333333%; + max-width: 58.3333333333%; + padding-inline: 1rem; + padding-block: 1rem; + } + .col-md-8 { + flex: 0 0 66.6666666667%; + max-width: 66.6666666667%; + padding-inline: 1rem; + padding-block: 1rem; + } + .col-md-9 { + flex: 0 0 75%; + max-width: 75%; + padding-inline: 1rem; + padding-block: 1rem; + } + .col-md-10 { + flex: 0 0 83.3333333333%; + max-width: 83.3333333333%; + padding-inline: 1rem; + padding-block: 1rem; + } + .col-md-11 { + flex: 0 0 91.6666666667%; + max-width: 91.6666666667%; + padding-inline: 1rem; + padding-block: 1rem; + } + .col-md-12 { + flex: 0 0 100%; + max-width: 100%; + padding-inline: 1rem; + padding-block: 1rem; + } +} +@media (min-width: 992px) { + .col-lg { + flex: 1 0 0%; + padding-inline: 1rem; + padding-block: 1rem; + } + .col-lg-auto { + flex: 0 0 auto; + width: auto; + padding-inline: 1rem; + padding-block: 1rem; + } + .col-lg-1 { + flex: 0 0 8.3333333333%; + max-width: 8.3333333333%; + padding-inline: 1rem; + padding-block: 1rem; + } + .col-lg-2 { + flex: 0 0 16.6666666667%; + max-width: 16.6666666667%; + padding-inline: 1rem; + padding-block: 1rem; + } + .col-lg-3 { + flex: 0 0 25%; + max-width: 25%; + padding-inline: 1rem; + padding-block: 1rem; + } + .col-lg-4 { + flex: 0 0 33.3333333333%; + max-width: 33.3333333333%; + padding-inline: 1rem; + padding-block: 1rem; + } + .col-lg-5 { + flex: 0 0 41.6666666667%; + max-width: 41.6666666667%; + padding-inline: 1rem; + padding-block: 1rem; + } + .col-lg-6 { + flex: 0 0 50%; + max-width: 50%; + padding-inline: 1rem; + padding-block: 1rem; + } + .col-lg-7 { + flex: 0 0 58.3333333333%; + max-width: 58.3333333333%; + padding-inline: 1rem; + padding-block: 1rem; + } + .col-lg-8 { + flex: 0 0 66.6666666667%; + max-width: 66.6666666667%; + padding-inline: 1rem; + padding-block: 1rem; + } + .col-lg-9 { + flex: 0 0 75%; + max-width: 75%; + padding-inline: 1rem; + padding-block: 1rem; + } + .col-lg-10 { + flex: 0 0 83.3333333333%; + max-width: 83.3333333333%; + padding-inline: 1rem; + padding-block: 1rem; + } + .col-lg-11 { + flex: 0 0 91.6666666667%; + max-width: 91.6666666667%; + padding-inline: 1rem; + padding-block: 1rem; + } + .col-lg-12 { + flex: 0 0 100%; + max-width: 100%; + padding-inline: 1rem; + padding-block: 1rem; + } +} +@media (min-width: 1200px) { + .col-xl { + flex: 1 0 0%; + padding-inline: 1rem; + padding-block: 1rem; + } + .col-xl-auto { + flex: 0 0 auto; + width: auto; + padding-inline: 1rem; + padding-block: 1rem; + } + .col-xl-1 { + flex: 0 0 8.3333333333%; + max-width: 8.3333333333%; + padding-inline: 1rem; + padding-block: 1rem; + } + .col-xl-2 { + flex: 0 0 16.6666666667%; + max-width: 16.6666666667%; + padding-inline: 1rem; + padding-block: 1rem; + } + .col-xl-3 { + flex: 0 0 25%; + max-width: 25%; + padding-inline: 1rem; + padding-block: 1rem; + } + .col-xl-4 { + flex: 0 0 33.3333333333%; + max-width: 33.3333333333%; + padding-inline: 1rem; + padding-block: 1rem; + } + .col-xl-5 { + flex: 0 0 41.6666666667%; + max-width: 41.6666666667%; + padding-inline: 1rem; + padding-block: 1rem; + } + .col-xl-6 { + flex: 0 0 50%; + max-width: 50%; + padding-inline: 1rem; + padding-block: 1rem; + } + .col-xl-7 { + flex: 0 0 58.3333333333%; + max-width: 58.3333333333%; + padding-inline: 1rem; + padding-block: 1rem; + } + .col-xl-8 { + flex: 0 0 66.6666666667%; + max-width: 66.6666666667%; + padding-inline: 1rem; + padding-block: 1rem; + } + .col-xl-9 { + flex: 0 0 75%; + max-width: 75%; + padding-inline: 1rem; + padding-block: 1rem; + } + .col-xl-10 { + flex: 0 0 83.3333333333%; + max-width: 83.3333333333%; + padding-inline: 1rem; + padding-block: 1rem; + } + .col-xl-11 { + flex: 0 0 91.6666666667%; + max-width: 91.6666666667%; + padding-inline: 1rem; + padding-block: 1rem; + } + .col-xl-12 { + flex: 0 0 100%; + max-width: 100%; + padding-inline: 1rem; + padding-block: 1rem; + } +} +@media (min-width: 1400px) { + .col-xxl { + flex: 1 0 0%; + padding-inline: 1rem; + padding-block: 1rem; + } + .col-xxl-auto { + flex: 0 0 auto; + width: auto; + padding-inline: 1rem; + padding-block: 1rem; + } + .col-xxl-1 { + flex: 0 0 8.3333333333%; + max-width: 8.3333333333%; + padding-inline: 1rem; + padding-block: 1rem; + } + .col-xxl-2 { + flex: 0 0 16.6666666667%; + max-width: 16.6666666667%; + padding-inline: 1rem; + padding-block: 1rem; + } + .col-xxl-3 { + flex: 0 0 25%; + max-width: 25%; + padding-inline: 1rem; + padding-block: 1rem; + } + .col-xxl-4 { + flex: 0 0 33.3333333333%; + max-width: 33.3333333333%; + padding-inline: 1rem; + padding-block: 1rem; + } + .col-xxl-5 { + flex: 0 0 41.6666666667%; + max-width: 41.6666666667%; + padding-inline: 1rem; + padding-block: 1rem; + } + .col-xxl-6 { + flex: 0 0 50%; + max-width: 50%; + padding-inline: 1rem; + padding-block: 1rem; + } + .col-xxl-7 { + flex: 0 0 58.3333333333%; + max-width: 58.3333333333%; + padding-inline: 1rem; + padding-block: 1rem; + } + .col-xxl-8 { + flex: 0 0 66.6666666667%; + max-width: 66.6666666667%; + padding-inline: 1rem; + padding-block: 1rem; + } + .col-xxl-9 { + flex: 0 0 75%; + max-width: 75%; + padding-inline: 1rem; + padding-block: 1rem; + } + .col-xxl-10 { + flex: 0 0 83.3333333333%; + max-width: 83.3333333333%; + padding-inline: 1rem; + padding-block: 1rem; + } + .col-xxl-11 { + flex: 0 0 91.6666666667%; + max-width: 91.6666666667%; + padding-inline: 1rem; + padding-block: 1rem; + } + .col-xxl-12 { + flex: 0 0 100%; + max-width: 100%; + padding-inline: 1rem; + padding-block: 1rem; + } +} +@media (min-width: 1600px) { + .col-xxxl { + flex: 1 0 0%; + padding-inline: 1rem; + padding-block: 1rem; + } + .col-xxxl-auto { + flex: 0 0 auto; + width: auto; + padding-inline: 1rem; + padding-block: 1rem; + } + .col-xxxl-1 { + flex: 0 0 8.3333333333%; + max-width: 8.3333333333%; + padding-inline: 1rem; + padding-block: 1rem; + } + .col-xxxl-2 { + flex: 0 0 16.6666666667%; + max-width: 16.6666666667%; + padding-inline: 1rem; + padding-block: 1rem; + } + .col-xxxl-3 { + flex: 0 0 25%; + max-width: 25%; + padding-inline: 1rem; + padding-block: 1rem; + } + .col-xxxl-4 { + flex: 0 0 33.3333333333%; + max-width: 33.3333333333%; + padding-inline: 1rem; + padding-block: 1rem; + } + .col-xxxl-5 { + flex: 0 0 41.6666666667%; + max-width: 41.6666666667%; + padding-inline: 1rem; + padding-block: 1rem; + } + .col-xxxl-6 { + flex: 0 0 50%; + max-width: 50%; + padding-inline: 1rem; + padding-block: 1rem; + } + .col-xxxl-7 { + flex: 0 0 58.3333333333%; + max-width: 58.3333333333%; + padding-inline: 1rem; + padding-block: 1rem; + } + .col-xxxl-8 { + flex: 0 0 66.6666666667%; + max-width: 66.6666666667%; + padding-inline: 1rem; + padding-block: 1rem; + } + .col-xxxl-9 { + flex: 0 0 75%; + max-width: 75%; + padding-inline: 1rem; + padding-block: 1rem; + } + .col-xxxl-10 { + flex: 0 0 83.3333333333%; + max-width: 83.3333333333%; + padding-inline: 1rem; + padding-block: 1rem; + } + .col-xxxl-11 { + flex: 0 0 91.6666666667%; + max-width: 91.6666666667%; + padding-inline: 1rem; + padding-block: 1rem; + } + .col-xxxl-12 { + flex: 0 0 100%; + max-width: 100%; + padding-inline: 1rem; + padding-block: 1rem; + } +} +/* Flex helpers */ +.flex { + display: flex; +} + +.inline-flex { + display: inline-flex; +} + +.flex-row { + display: flex; + flex-direction: row; +} + +.flex-row-reverse { + display: flex; + flex-direction: row-reverse; +} + +.flex-column { + display: flex; + flex-direction: column; +} + +.flex-column-reverse { + display: flex; + flex-direction: column-reverse; +} + +.justify-start { + display: flex; + justify-content: flex-start; +} + +.justify-end { + display: flex; + justify-content: flex-end; +} + +.justify-center { + display: flex; + justify-content: center; +} + +.justify-between { + display: flex; + justify-content: space-between; +} + +.justify-around { + display: flex; + justify-content: space-around; +} + +.justify-evenly { + display: flex; + justify-content: space-evenly; +} + +.items-start { + display: flex; + align-items: flex-start; +} + +.items-end { + display: flex; + align-items: flex-end; +} + +.items-center { + display: flex; + align-items: center; +} + +.items-baseline { + display: flex; + align-items: baseline; +} + +.items-stretch { + display: flex; + align-items: stretch; +} + +/* Borders + Radius + Shadows */ +.border-0 { + border-width: 0; + border-style: solid; + border-color: currentColor; +} + +.border-1 { + border-width: 1px; + border-style: solid; + border-color: currentColor; +} + +.border-2 { + border-width: 2px; + border-style: solid; + border-color: currentColor; +} + +.border-3 { + border-width: 3px; + border-style: solid; + border-color: currentColor; +} + +.border { + border: 1px solid currentColor; +} + +.border-top { + border-top: 1px solid currentColor; +} + +.border-right { + border-right: 1px solid currentColor; +} + +.border-bottom { + border-bottom: 1px solid currentColor; +} + +.border-left { + border-left: 1px solid currentColor; +} + +.rounded-none { + border-radius: 0; +} + +.rounded-sm { + border-radius: 0.125rem; +} + +.rounded-md { + border-radius: 0.25rem; +} + +.rounded-lg { + border-radius: 0.5rem; +} + +.rounded-xl { + border-radius: 1rem; +} + +.rounded-full { + border-radius: 9999px; +} + +.rounded { + border-radius: 0.25rem; +} + +.rounded-top { + border-top-left-radius: 0.25rem; + border-top-right-radius: 0.25rem; +} + +.rounded-bottom { + border-bottom-left-radius: 0.25rem; + border-bottom-right-radius: 0.25rem; +} + +.rounded-left { + border-top-left-radius: 0.25rem; + border-bottom-left-radius: 0.25rem; +} + +.rounded-right { + border-top-right-radius: 0.25rem; + border-bottom-right-radius: 0.25rem; +} + +.shadow-1 { + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12) !important; +} + +.shadow-2 { + box-shadow: 0 2px 6px rgba(0, 0, 0, 0.16) !important; +} + +.shadow-3 { + box-shadow: 0 4px 10px rgba(0, 0, 0, 0.18) !important; +} + +.shadow-4 { + box-shadow: 0 6px 15px rgba(0, 0, 0, 0.2) !important; +} + +.shadow-5 { + box-shadow: 0 10px 24px rgba(0, 0, 0, 0.22) !important; +} + +.drop-shadow-1 { + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.14) !important; +} + +.drop-shadow-2 { + box-shadow: 0 4px 8px rgba(0, 0, 0, 0.18) !important; +} + +.drop-shadow-3 { + box-shadow: 0 8px 16px rgba(0, 0, 0, 0.2) !important; +} + +.drop-shadow-4 { + box-shadow: 0 12px 24px rgba(0, 0, 0, 0.22) !important; +} + +.drop-shadow-5 { + box-shadow: 0 20px 40px rgba(0, 0, 0, 0.24) !important; +} + +/* Z-Index */ +.z-base { + z-index: 1; +} + +.z-dropdown { + z-index: 1000; +} + +.z-overlay { + z-index: 1100; +} + +.z-modal { + z-index: 1200; +} + +.z-toast { + z-index: 1300; +} + +/* ========================================================================== */ +/* Grid System (CSS Grid Utilities) */ +/* ========================================================================== */ +.grid { + display: grid !important; +} + +.inline-grid { + display: inline-grid !important; +} + +.grid-cols-1 { + grid-template-columns: repeat(1, 1fr) !important; +} + +.grid-cols-2 { + grid-template-columns: repeat(2, 1fr) !important; +} + +.grid-cols-3 { + grid-template-columns: repeat(3, 1fr) !important; +} + +.grid-cols-4 { + grid-template-columns: repeat(4, 1fr) !important; +} + +.grid-cols-5 { + grid-template-columns: repeat(5, 1fr) !important; +} + +.grid-cols-6 { + grid-template-columns: repeat(6, 1fr) !important; +} + +.grid-cols-7 { + grid-template-columns: repeat(7, 1fr) !important; +} + +.grid-cols-8 { + grid-template-columns: repeat(8, 1fr) !important; +} + +.grid-cols-9 { + grid-template-columns: repeat(9, 1fr) !important; +} + +.grid-cols-10 { + grid-template-columns: repeat(10, 1fr) !important; +} + +.grid-cols-11 { + grid-template-columns: repeat(11, 1fr) !important; +} + +.grid-cols-12 { + grid-template-columns: repeat(12, 1fr) !important; +} + +.grid-cols-none { + grid-template-columns: none !important; +} + +@media (min-width: 576px) { + .sm-grid-cols-1 { + grid-template-columns: repeat(1, 1fr) !important; + } + .sm-grid-cols-2 { + grid-template-columns: repeat(2, 1fr) !important; + } + .sm-grid-cols-3 { + grid-template-columns: repeat(3, 1fr) !important; + } + .sm-grid-cols-4 { + grid-template-columns: repeat(4, 1fr) !important; + } + .sm-grid-cols-5 { + grid-template-columns: repeat(5, 1fr) !important; + } + .sm-grid-cols-6 { + grid-template-columns: repeat(6, 1fr) !important; + } + .sm-grid-cols-7 { + grid-template-columns: repeat(7, 1fr) !important; + } + .sm-grid-cols-8 { + grid-template-columns: repeat(8, 1fr) !important; + } + .sm-grid-cols-9 { + grid-template-columns: repeat(9, 1fr) !important; + } + .sm-grid-cols-10 { + grid-template-columns: repeat(10, 1fr) !important; + } + .sm-grid-cols-11 { + grid-template-columns: repeat(11, 1fr) !important; + } + .sm-grid-cols-12 { + grid-template-columns: repeat(12, 1fr) !important; + } +} +@media (min-width: 768px) { + .md-grid-cols-1 { + grid-template-columns: repeat(1, 1fr) !important; + } + .md-grid-cols-2 { + grid-template-columns: repeat(2, 1fr) !important; + } + .md-grid-cols-3 { + grid-template-columns: repeat(3, 1fr) !important; + } + .md-grid-cols-4 { + grid-template-columns: repeat(4, 1fr) !important; + } + .md-grid-cols-5 { + grid-template-columns: repeat(5, 1fr) !important; + } + .md-grid-cols-6 { + grid-template-columns: repeat(6, 1fr) !important; + } + .md-grid-cols-7 { + grid-template-columns: repeat(7, 1fr) !important; + } + .md-grid-cols-8 { + grid-template-columns: repeat(8, 1fr) !important; + } + .md-grid-cols-9 { + grid-template-columns: repeat(9, 1fr) !important; + } + .md-grid-cols-10 { + grid-template-columns: repeat(10, 1fr) !important; + } + .md-grid-cols-11 { + grid-template-columns: repeat(11, 1fr) !important; + } + .md-grid-cols-12 { + grid-template-columns: repeat(12, 1fr) !important; + } +} +@media (min-width: 992px) { + .lg-grid-cols-1 { + grid-template-columns: repeat(1, 1fr) !important; + } + .lg-grid-cols-2 { + grid-template-columns: repeat(2, 1fr) !important; + } + .lg-grid-cols-3 { + grid-template-columns: repeat(3, 1fr) !important; + } + .lg-grid-cols-4 { + grid-template-columns: repeat(4, 1fr) !important; + } + .lg-grid-cols-5 { + grid-template-columns: repeat(5, 1fr) !important; + } + .lg-grid-cols-6 { + grid-template-columns: repeat(6, 1fr) !important; + } + .lg-grid-cols-7 { + grid-template-columns: repeat(7, 1fr) !important; + } + .lg-grid-cols-8 { + grid-template-columns: repeat(8, 1fr) !important; + } + .lg-grid-cols-9 { + grid-template-columns: repeat(9, 1fr) !important; + } + .lg-grid-cols-10 { + grid-template-columns: repeat(10, 1fr) !important; + } + .lg-grid-cols-11 { + grid-template-columns: repeat(11, 1fr) !important; + } + .lg-grid-cols-12 { + grid-template-columns: repeat(12, 1fr) !important; + } +} +@media (min-width: 1200px) { + .xl-grid-cols-1 { + grid-template-columns: repeat(1, 1fr) !important; + } + .xl-grid-cols-2 { + grid-template-columns: repeat(2, 1fr) !important; + } + .xl-grid-cols-3 { + grid-template-columns: repeat(3, 1fr) !important; + } + .xl-grid-cols-4 { + grid-template-columns: repeat(4, 1fr) !important; + } + .xl-grid-cols-5 { + grid-template-columns: repeat(5, 1fr) !important; + } + .xl-grid-cols-6 { + grid-template-columns: repeat(6, 1fr) !important; + } + .xl-grid-cols-7 { + grid-template-columns: repeat(7, 1fr) !important; + } + .xl-grid-cols-8 { + grid-template-columns: repeat(8, 1fr) !important; + } + .xl-grid-cols-9 { + grid-template-columns: repeat(9, 1fr) !important; + } + .xl-grid-cols-10 { + grid-template-columns: repeat(10, 1fr) !important; + } + .xl-grid-cols-11 { + grid-template-columns: repeat(11, 1fr) !important; + } + .xl-grid-cols-12 { + grid-template-columns: repeat(12, 1fr) !important; + } +} +@media (min-width: 1400px) { + .xxl-grid-cols-1 { + grid-template-columns: repeat(1, 1fr) !important; + } + .xxl-grid-cols-2 { + grid-template-columns: repeat(2, 1fr) !important; + } + .xxl-grid-cols-3 { + grid-template-columns: repeat(3, 1fr) !important; + } + .xxl-grid-cols-4 { + grid-template-columns: repeat(4, 1fr) !important; + } + .xxl-grid-cols-5 { + grid-template-columns: repeat(5, 1fr) !important; + } + .xxl-grid-cols-6 { + grid-template-columns: repeat(6, 1fr) !important; + } + .xxl-grid-cols-7 { + grid-template-columns: repeat(7, 1fr) !important; + } + .xxl-grid-cols-8 { + grid-template-columns: repeat(8, 1fr) !important; + } + .xxl-grid-cols-9 { + grid-template-columns: repeat(9, 1fr) !important; + } + .xxl-grid-cols-10 { + grid-template-columns: repeat(10, 1fr) !important; + } + .xxl-grid-cols-11 { + grid-template-columns: repeat(11, 1fr) !important; + } + .xxl-grid-cols-12 { + grid-template-columns: repeat(12, 1fr) !important; + } +} +@media (min-width: 1600px) { + .xxxl-grid-cols-1 { + grid-template-columns: repeat(1, 1fr) !important; + } + .xxxl-grid-cols-2 { + grid-template-columns: repeat(2, 1fr) !important; + } + .xxxl-grid-cols-3 { + grid-template-columns: repeat(3, 1fr) !important; + } + .xxxl-grid-cols-4 { + grid-template-columns: repeat(4, 1fr) !important; + } + .xxxl-grid-cols-5 { + grid-template-columns: repeat(5, 1fr) !important; + } + .xxxl-grid-cols-6 { + grid-template-columns: repeat(6, 1fr) !important; + } + .xxxl-grid-cols-7 { + grid-template-columns: repeat(7, 1fr) !important; + } + .xxxl-grid-cols-8 { + grid-template-columns: repeat(8, 1fr) !important; + } + .xxxl-grid-cols-9 { + grid-template-columns: repeat(9, 1fr) !important; + } + .xxxl-grid-cols-10 { + grid-template-columns: repeat(10, 1fr) !important; + } + .xxxl-grid-cols-11 { + grid-template-columns: repeat(11, 1fr) !important; + } + .xxxl-grid-cols-12 { + grid-template-columns: repeat(12, 1fr) !important; + } +} +.grid-rows-1 { + grid-template-rows: repeat(1, 1fr) !important; +} + +.grid-rows-2 { + grid-template-rows: repeat(2, 1fr) !important; +} + +.grid-rows-3 { + grid-template-rows: repeat(3, 1fr) !important; +} + +.grid-rows-4 { + grid-template-rows: repeat(4, 1fr) !important; +} + +.grid-rows-5 { + grid-template-rows: repeat(5, 1fr) !important; +} + +.grid-rows-6 { + grid-template-rows: repeat(6, 1fr) !important; +} + +.grid-rows-7 { + grid-template-rows: repeat(7, 1fr) !important; +} + +.grid-rows-8 { + grid-template-rows: repeat(8, 1fr) !important; +} + +.grid-rows-9 { + grid-template-rows: repeat(9, 1fr) !important; +} + +.grid-rows-10 { + grid-template-rows: repeat(10, 1fr) !important; +} + +.grid-rows-11 { + grid-template-rows: repeat(11, 1fr) !important; +} + +.grid-rows-12 { + grid-template-rows: repeat(12, 1fr) !important; +} + +.grid-rows-none { + grid-template-rows: none !important; +} + +.grid-auto-fit-sm { + grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr)) !important; +} + +.grid-auto-fit-md { + grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)) !important; +} + +.grid-auto-fit-lg { + grid-template-columns: repeat(auto-fit, minmax(20rem, 1fr)) !important; +} + +.grid-auto-fill-sm { + grid-template-columns: repeat(auto-fill, minmax(10rem, 1fr)) !important; +} + +.grid-auto-fill-md { + grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)) !important; +} + +.grid-auto-fill-lg { + grid-template-columns: repeat(auto-fill, minmax(20rem, 1fr)) !important; +} + +.grid-align-center { + align-items: center !important; + justify-items: center !important; +} + +.grid-align-start { + align-items: start !important; + justify-items: start !important; +} + +.grid-align-end { + align-items: end !important; + justify-items: end !important; +} + +.grid-align-stretch { + align-items: stretch !important; + justify-items: stretch !important; +} + +.place-self-center { + place-self: center !important; +} + +.place-self-start { + place-self: start !important; +} + +.place-self-end { + place-self: end !important; +} + +.place-self-stretch { + place-self: stretch !important; +} + +.grid-flow-row { + grid-auto-flow: row !important; +} + +.grid-flow-col { + grid-auto-flow: column !important; +} + +.grid-flow-row-dense { + grid-auto-flow: row dense !important; +} + +.grid-flow-col-dense { + grid-auto-flow: column dense !important; +} + +/* Auto rows/cols sizing */ +.grid-auto-cols-min { + grid-auto-columns: min-content !important; +} + +.grid-auto-cols-max { + grid-auto-columns: max-content !important; +} + +.grid-auto-cols-fr { + grid-auto-columns: 1fr !important; +} + +.grid-auto-rows-min { + grid-auto-rows: min-content !important; +} + +.grid-auto-rows-max { + grid-auto-rows: max-content !important; +} + +.grid-auto-rows-fr { + grid-auto-rows: 1fr !important; +} + +/* ========================================================================== */ +/* Control Blueprints (shared by inputs/buttons/etc.) */ +/* ========================================================================== */ +/* Inputs */ +.input, select, textarea { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + border-style: solid; + border-width: 1px; + border-color: #c7c7c7; + background-color: #fdfdfd; + color: #333333; + outline: 0; + transition: background-color 0.25s cubic-bezier(0.4, 0, 0.2, 1), color 0.25s cubic-bezier(0.4, 0, 0.2, 1), border-color 0.25s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.25s cubic-bezier(0.4, 0, 0.2, 1), transform 0.15s cubic-bezier(0, 0, 0.2, 1); + width: 100%; +} +.input:focus, select:focus, textarea:focus { + border-color: #aa0b3d; + box-shadow: 0 0 0 3px rgba(170, 11, 61, 0.2); + background-color: #ffffff; +} +.input:disabled, select:disabled, textarea:disabled { + background-color: #e5e5e5; + opacity: 0.6; + cursor: not-allowed; +} +.input::-moz-placeholder, select::-moz-placeholder, textarea::-moz-placeholder { + color: #6c757d; +} +.input::placeholder, select::placeholder, textarea::placeholder { + color: #6c757d; +} + +.input-sm { + font-size: 0.875rem; + line-height: 1.3; + padding: 0.25rem 0.5rem; + border-radius: 0.25rem; +} + +.input-md { + font-size: 1.1rem; + line-height: 1.3; + padding: 0.375rem 0.75rem; + border-radius: 0.25rem; +} + +.input-lg { + font-size: 1.35rem; + line-height: 1.3; + padding: 0.5rem 1rem; + border-radius: 0.5rem; +} + +.input-xl { + font-size: 1.8rem; + line-height: 1.5; + padding: 0.75rem 1.25rem; + border-radius: 0.5rem; +} + +/* Buttons */ +.btn, .modal__close { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + border-style: solid; + border-width: 1px; + border-color: #c7c7c7; + background-color: #fdfdfd; + color: #333333; + outline: 0; + transition: background-color 0.25s cubic-bezier(0.4, 0, 0.2, 1), color 0.25s cubic-bezier(0.4, 0, 0.2, 1), border-color 0.25s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.25s cubic-bezier(0.4, 0, 0.2, 1), transform 0.15s cubic-bezier(0, 0, 0.2, 1); + display: inline-flex; + width: auto; + align-items: center; + justify-content: center; + cursor: pointer; + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12); +} +.btn:focus-visible, .modal__close:focus-visible { + border-color: #aa0b3d; + box-shadow: 0 0 0 3px rgba(170, 11, 61, 0.2), 0 2px 6px rgba(0, 0, 0, 0.16); +} +.btn:active, .modal__close:active { + transform: translateY(1px); + box-shadow: 0 4px 10px rgba(0, 0, 0, 0.18); +} +.btn:disabled, .modal__close:disabled { + opacity: 0.6; + cursor: not-allowed; + pointer-events: none; +} + +.btn-sm, .modal__close { + font-size: 0.875rem; + line-height: 1.3; + padding: 0.25rem 0.5rem; + border-radius: 0.25rem; +} + +.btn-md { + font-size: 1.1rem; + line-height: 1.3; + padding: 0.375rem 0.75rem; + border-radius: 0.25rem; +} + +.btn-lg { + font-size: 1.35rem; + line-height: 1.3; + padding: 0.5rem 1rem; + border-radius: 0.5rem; +} + +.btn-xl { + font-size: 1.8rem; + line-height: 1.5; + padding: 0.75rem 1.25rem; + border-radius: 0.5rem; +} + +.btn-primary { + background-color: #aa0b3d; + color: #ffffff; + border-color: transparent; +} +.btn-primary:hover { + background-color: rgb(131.679558011, 8.520441989, 47.2497237569); + box-shadow: 0 2px 6px rgba(0, 0, 0, 0.16); +} + +.btn-outline-primary { + background-color: transparent; + color: #aa0b3d; + border-color: #aa0b3d; +} +.btn-outline-primary:hover { + background-color: #aa0b3d; + color: #ffffff; +} + +.btn-ghost-primary { + background-color: transparent; + color: #aa0b3d; + border-color: transparent; +} +.btn-ghost-primary:hover { + background-color: rgba(170, 11, 61, 0.12); +} + +.btn-primary-alt { + background-color: rgba(170, 11, 61, 0.6588235294); + color: #ffffff; + border-color: transparent; +} +.btn-primary-alt:hover { + background-color: rgba(131.679558011, 8.520441989, 47.2497237569, 0.6588235294); + box-shadow: 0 2px 6px rgba(0, 0, 0, 0.16); +} + +.btn-outline-primary-alt { + background-color: transparent; + color: rgba(170, 11, 61, 0.6588235294); + border-color: rgba(170, 11, 61, 0.6588235294); +} +.btn-outline-primary-alt:hover { + background-color: rgba(170, 11, 61, 0.6588235294); + color: #ffffff; +} + +.btn-ghost-primary-alt { + background-color: transparent; + color: rgba(170, 11, 61, 0.6588235294); + border-color: transparent; +} +.btn-ghost-primary-alt:hover { + background-color: rgba(170, 11, 61, 0.12); +} + +.btn-alt { + background-color: rgba(181, 69, 24, 0.5882352941); + color: #ffffff; + border-color: transparent; +} +.btn-alt:hover { + background-color: rgba(144.9765853659, 55.2673170732, 19.2234146341, 0.5882352941); + box-shadow: 0 2px 6px rgba(0, 0, 0, 0.16); +} + +.btn-outline-alt { + background-color: transparent; + color: rgba(181, 69, 24, 0.5882352941); + border-color: rgba(181, 69, 24, 0.5882352941); +} +.btn-outline-alt:hover { + background-color: rgba(181, 69, 24, 0.5882352941); + color: #ffffff; +} + +.btn-ghost-alt { + background-color: transparent; + color: rgba(181, 69, 24, 0.5882352941); + border-color: transparent; +} +.btn-ghost-alt:hover { + background-color: rgba(181, 69, 24, 0.12); +} + +.btn-secondary { + background-color: #333333; + color: #ffffff; + border-color: transparent; +} +.btn-secondary:hover { + background-color: rgb(30.6, 30.6, 30.6); + box-shadow: 0 2px 6px rgba(0, 0, 0, 0.16); +} + +.btn-outline-secondary { + background-color: transparent; + color: #333333; + border-color: #333333; +} +.btn-outline-secondary:hover { + background-color: #333333; + color: #ffffff; +} + +.btn-ghost-secondary { + background-color: transparent; + color: #333333; + border-color: transparent; +} +.btn-ghost-secondary:hover { + background-color: rgba(51, 51, 51, 0.12); +} + +.btn-success { + background-color: #34b97b; + color: #ffffff; + border-color: transparent; +} +.btn-success:hover { + background-color: rgb(43.0481012658, 153.1518987342, 101.8253164557); + box-shadow: 0 2px 6px rgba(0, 0, 0, 0.16); +} + +.btn-outline-success { + background-color: transparent; + color: #34b97b; + border-color: #34b97b; +} +.btn-outline-success:hover { + background-color: #34b97b; + color: #ffffff; +} + +.btn-ghost-success { + background-color: transparent; + color: #34b97b; + border-color: transparent; +} +.btn-ghost-success:hover { + background-color: rgba(52, 185, 123, 0.12); +} + +.btn-warning { + background-color: #ffc107; + color: #ffffff; + border-color: transparent; +} +.btn-warning:hover { + background-color: rgb(221.2, 165.9, 0); + box-shadow: 0 2px 6px rgba(0, 0, 0, 0.16); +} + +.btn-outline-warning { + background-color: transparent; + color: #ffc107; + border-color: #ffc107; +} +.btn-outline-warning:hover { + background-color: #ffc107; + color: #ffffff; +} + +.btn-ghost-warning { + background-color: transparent; + color: #ffc107; + border-color: transparent; +} +.btn-ghost-warning:hover { + background-color: rgba(255, 193, 7, 0.12); +} + +.btn-danger { + background-color: #dc3545; + color: #ffffff; + border-color: transparent; +} +.btn-danger:hover { + background-color: rgb(197.9088607595, 34.2911392405, 49.9670886076); + box-shadow: 0 2px 6px rgba(0, 0, 0, 0.16); +} + +.btn-outline-danger { + background-color: transparent; + color: #dc3545; + border-color: #dc3545; +} +.btn-outline-danger:hover { + background-color: #dc3545; + color: #ffffff; +} + +.btn-ghost-danger { + background-color: transparent; + color: #dc3545; + border-color: transparent; +} +.btn-ghost-danger:hover { + background-color: rgba(220, 53, 69, 0.12); +} + +.btn-info { + background-color: #0dcaf0; + color: #ffffff; + border-color: transparent; +} +.btn-info:hover { + background-color: rgb(10.9035573123, 169.4245059289, 201.2964426877); + box-shadow: 0 2px 6px rgba(0, 0, 0, 0.16); +} + +.btn-outline-info { + background-color: transparent; + color: #0dcaf0; + border-color: #0dcaf0; +} +.btn-outline-info:hover { + background-color: #0dcaf0; + color: #ffffff; +} + +.btn-ghost-info { + background-color: transparent; + color: #0dcaf0; + border-color: transparent; +} +.btn-ghost-info:hover { + background-color: rgba(13, 202, 240, 0.12); +} + +.btn-light { + background-color: #e5e5e5; + color: #212529; + border-color: transparent; +} +.btn-light:hover { + background-color: rgb(208.6, 208.6, 208.6); + box-shadow: 0 2px 6px rgba(0, 0, 0, 0.16); +} + +.btn-outline-light { + background-color: transparent; + color: #e5e5e5; + border-color: #e5e5e5; +} +.btn-outline-light:hover { + background-color: #e5e5e5; + color: #212529; +} + +.btn-ghost-light { + background-color: transparent; + color: #e5e5e5; + border-color: transparent; +} +.btn-ghost-light:hover { + background-color: rgba(229, 229, 229, 0.12); +} + +.btn-dark { + background-color: #212529; + color: #ffffff; + border-color: transparent; +} +.btn-dark:hover { + background-color: rgb(14.8054054054, 16.6, 18.3945945946); + box-shadow: 0 2px 6px rgba(0, 0, 0, 0.16); +} + +.btn-outline-dark { + background-color: transparent; + color: #212529; + border-color: #212529; +} +.btn-outline-dark:hover { + background-color: #212529; + color: #ffffff; +} + +.btn-ghost-dark { + background-color: transparent; + color: #212529; + border-color: transparent; +} +.btn-ghost-dark:hover { + background-color: rgba(33, 37, 41, 0.12); +} + +.btn-white { + background-color: #ffffff; + color: #212529; + border-color: transparent; +} +.btn-white:hover { + background-color: rgb(234.6, 234.6, 234.6); + box-shadow: 0 2px 6px rgba(0, 0, 0, 0.16); +} + +.btn-outline-white { + background-color: transparent; + color: #ffffff; + border-color: #ffffff; +} +.btn-outline-white:hover { + background-color: #ffffff; + color: #212529; +} + +.btn-ghost-white { + background-color: transparent; + color: #ffffff; + border-color: transparent; +} +.btn-ghost-white:hover { + background-color: rgba(255, 255, 255, 0.12); +} + +.btn-black { + background-color: #000000; + color: #ffffff; + border-color: transparent; +} +.btn-black:hover { + background-color: black; + box-shadow: 0 2px 6px rgba(0, 0, 0, 0.16); +} + +.btn-outline-black { + background-color: transparent; + color: #000000; + border-color: #000000; +} +.btn-outline-black:hover { + background-color: #000000; + color: #ffffff; +} + +.btn-ghost-black { + background-color: transparent; + color: #000000; + border-color: transparent; +} +.btn-ghost-black:hover { + background-color: rgba(0, 0, 0, 0.12); +} + +.btn-muted { + background-color: #c7c7c7; + color: #212529; + border-color: transparent; +} +.btn-muted:hover { + background-color: rgb(178.6, 178.6, 178.6); + box-shadow: 0 2px 6px rgba(0, 0, 0, 0.16); +} + +.btn-outline-muted { + background-color: transparent; + color: #c7c7c7; + border-color: #c7c7c7; +} +.btn-outline-muted:hover { + background-color: #c7c7c7; + color: #212529; +} + +.btn-ghost-muted { + background-color: transparent; + color: #c7c7c7; + border-color: transparent; +} +.btn-ghost-muted:hover { + background-color: rgba(199, 199, 199, 0.12); +} + +.btn-gray { + background-color: #6c757d; + color: #ffffff; + border-color: transparent; +} +.btn-gray:hover { + background-color: rgb(89.0884120172, 96.5124463519, 103.1115879828); + box-shadow: 0 2px 6px rgba(0, 0, 0, 0.16); +} + +.btn-outline-gray { + background-color: transparent; + color: #6c757d; + border-color: #6c757d; +} +.btn-outline-gray:hover { + background-color: #6c757d; + color: #ffffff; +} + +.btn-ghost-gray { + background-color: transparent; + color: #6c757d; + border-color: transparent; +} +.btn-ghost-gray:hover { + background-color: rgba(108, 117, 125, 0.12); +} + +.btn-accent-white { + background-color: #f7f7f7; + color: #212529; + border-color: transparent; +} +.btn-accent-white:hover { + background-color: rgb(226.6, 226.6, 226.6); + box-shadow: 0 2px 6px rgba(0, 0, 0, 0.16); +} + +.btn-outline-accent-white { + background-color: transparent; + color: #f7f7f7; + border-color: #f7f7f7; +} +.btn-outline-accent-white:hover { + background-color: #f7f7f7; + color: #212529; +} + +.btn-ghost-accent-white { + background-color: transparent; + color: #f7f7f7; + border-color: transparent; +} +.btn-ghost-accent-white:hover { + background-color: rgba(247, 247, 247, 0.12); +} + +.btn-accent { + background-color: #08bbbb; + color: #ffffff; + border-color: transparent; +} +.btn-accent:hover { + background-color: rgb(6.3261538462, 147.8738461538, 147.8738461538); + box-shadow: 0 2px 6px rgba(0, 0, 0, 0.16); +} + +.btn-outline-accent { + background-color: transparent; + color: #08bbbb; + border-color: #08bbbb; +} +.btn-outline-accent:hover { + background-color: #08bbbb; + color: #ffffff; +} + +.btn-ghost-accent { + background-color: transparent; + color: #08bbbb; + border-color: transparent; +} +.btn-ghost-accent:hover { + background-color: rgba(8, 187, 187, 0.12); +} + +.btn-transparent { + background-color: transparent; + color: #ffffff; + border-color: transparent; +} +.btn-transparent:hover { + background-color: rgba(0, 0, 0, 0); + box-shadow: 0 2px 6px rgba(0, 0, 0, 0.16); +} + +.btn-outline-transparent { + background-color: transparent; + color: transparent; + border-color: transparent; +} +.btn-outline-transparent:hover { + background-color: transparent; + color: #ffffff; +} + +.btn-ghost-transparent { + background-color: transparent; + color: transparent; + border-color: transparent; +} +.btn-ghost-transparent:hover { + background-color: rgba(0, 0, 0, 0.12); +} + +/* ========================================================================== */ +/* Alerts */ +/* ========================================================================== */ +.alert { + padding: 0.5rem 1rem; + border-radius: 0.25rem; + border: 1px solid #c7c7c7; + background: #f7f7f7; +} + +.alert-primary { + background: rgb(244.8, 225.72, 231.72); + border-color: #aa0b3d; + color: #212529; +} + +.alert-primary-alt { + background: rgba(249.66367713, 239.6816143498, 242.8206278027, 0.9590588235); + border-color: rgba(170, 11, 61, 0.6588235294); + color: #212529; +} + +.alert-alt { + background: rgba(251.0215053763, 245, 242.5806451613, 0.9505882353); + border-color: rgba(181, 69, 24, 0.5882352941); + color: #212529; +} + +.alert-secondary { + background: rgb(230.52, 230.52, 230.52); + border-color: #333333; + color: #212529; +} + +.alert-success { + background: rgb(230.64, 246.6, 239.16); + border-color: #34b97b; + color: #212529; +} + +.alert-warning { + background: rgb(255, 247.56, 225.24); + border-color: #ffc107; + color: #212529; +} + +.alert-danger { + background: rgb(250.8, 230.76, 232.68); + border-color: #dc3545; + color: #212529; +} + +.alert-info { + background: rgb(225.96, 248.64, 253.2); + border-color: #0dcaf0; + color: #212529; +} + +.alert-light { + background: rgb(251.88, 251.88, 251.88); + border-color: #e5e5e5; + color: #212529; +} + +.alert-dark { + background: rgb(228.36, 228.84, 229.32); + border-color: #212529; + color: #212529; +} + +.alert-white { + background: white; + border-color: #ffffff; + color: #212529; +} + +.alert-black { + background: rgb(224.4, 224.4, 224.4); + border-color: #000000; + color: #212529; +} + +.alert-muted { + background: rgb(248.28, 248.28, 248.28); + border-color: #c7c7c7; + color: #212529; +} + +.alert-gray { + background: rgb(237.36, 238.44, 239.4); + border-color: #6c757d; + color: #212529; +} + +.alert-accent-white { + background: rgb(254.04, 254.04, 254.04); + border-color: #f7f7f7; + color: #212529; +} + +.alert-accent { + background: rgb(225.36, 246.84, 246.84); + border-color: #08bbbb; + color: #212529; +} + +.alert-transparent { + background: rgba(255, 255, 255, 0.88); + border-color: transparent; + color: #212529; +} + +/* ========================================================================== */ +/* Cards (with custom borders and shadows) */ +/* ========================================================================== */ +.card { + background: #ffffff; + border: 1px solid #c7c7c7; + border-radius: 0.5rem; + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12); + transition: box-shadow 0.25s cubic-bezier(0.4, 0, 0.2, 1); +} + +.card-hover:hover { + box-shadow: 0 4px 10px rgba(0, 0, 0, 0.18); +} + +.card-shadow-1 { + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12); +} + +.card-shadow-2 { + box-shadow: 0 2px 6px rgba(0, 0, 0, 0.16); +} + +.card-shadow-3 { + box-shadow: 0 4px 10px rgba(0, 0, 0, 0.18); +} + +.card-shadow-4 { + box-shadow: 0 6px 15px rgba(0, 0, 0, 0.2); +} + +.card-shadow-5 { + box-shadow: 0 10px 24px rgba(0, 0, 0, 0.22); +} + +.card-border-primary { + border-color: #aa0b3d; +} + +.card-bg-primary { + background-color: #aa0b3d; +} + +.card-border-primary-alt { + border-color: rgba(170, 11, 61, 0.6588235294); +} + +.card-bg-primary-alt { + background-color: rgba(170, 11, 61, 0.6588235294); +} + +.card-border-alt { + border-color: rgba(181, 69, 24, 0.5882352941); +} + +.card-bg-alt { + background-color: rgba(181, 69, 24, 0.5882352941); +} + +.card-border-secondary { + border-color: #333333; +} + +.card-bg-secondary { + background-color: #333333; +} + +.card-border-success { + border-color: #34b97b; +} + +.card-bg-success { + background-color: #34b97b; +} + +.card-border-warning { + border-color: #ffc107; +} + +.card-bg-warning { + background-color: #ffc107; +} + +.card-border-danger { + border-color: #dc3545; +} + +.card-bg-danger { + background-color: #dc3545; +} + +.card-border-info { + border-color: #0dcaf0; +} + +.card-bg-info { + background-color: #0dcaf0; +} + +.card-border-light { + border-color: #e5e5e5; +} + +.card-bg-light { + background-color: #e5e5e5; +} + +.card-border-dark { + border-color: #212529; +} + +.card-bg-dark { + background-color: #212529; +} + +.card-border-white { + border-color: #ffffff; +} + +.card-bg-white { + background-color: #ffffff; +} + +.card-border-black { + border-color: #000000; +} + +.card-bg-black { + background-color: #000000; +} + +.card-border-muted { + border-color: #c7c7c7; +} + +.card-bg-muted { + background-color: #c7c7c7; +} + +.card-border-gray { + border-color: #6c757d; +} + +.card-bg-gray { + background-color: #6c757d; +} + +.card-border-accent-white { + border-color: #f7f7f7; +} + +.card-bg-accent-white { + background-color: #f7f7f7; +} + +.card-border-accent { + border-color: #08bbbb; +} + +.card-bg-accent { + background-color: #08bbbb; +} + +.card-border-transparent { + border-color: transparent; +} + +.card-bg-transparent { + background-color: transparent; +} + +/* ========================================================================== */ +/* Modals */ +/* ========================================================================== */ +.modal { + position: fixed; + inset: 0; + display: none; + align-items: center; + justify-content: center; + padding: 1rem; + z-index: 1200; +} + +.modal.open { + display: flex; +} + +.modal__overlay { + position: absolute; + inset: 0; + background: rgba(0, 0, 0, 0.5); +} + +.modal__dialog { + position: relative; + width: min(720px, 100%); + background: #ffffff; + border: 1px solid #c7c7c7; + border-radius: 0.5rem; + box-shadow: 0 10px 24px rgba(0, 0, 0, 0.22); + padding: 1rem; +} + +.modal__header { + display: flex; + align-items: center; + justify-content: space-between; + gap: 0.5rem; + margin-bottom: 0.5rem; +} + +.modal__title { + font-size: 1.35rem; + font-weight: 600; +} + +.modal__close { + background: transparent; + box-shadow: none; +} + +/* ========================================================================== */ +/* Pills */ +/* ========================================================================== */ +.pill, .badge { + display: inline-flex; + align-items: center; + gap: 0.25rem; + padding: 0.25rem 0.5rem; + border-radius: 9999px; + border: 1px solid #c7c7c7; + background: #f7f7f7; + font-size: 0.875rem; + line-height: 1.3; +} + +.pill-primary, .badge-primary { + background: rgb(244.8, 225.72, 231.72); + color: #ffffff; + border-color: #aa0b3d; +} + +.pill-primary-alt, .badge-primary-alt { + background: rgba(249.66367713, 239.6816143498, 242.8206278027, 0.9590588235); + color: #ffffff; + border-color: rgba(170, 11, 61, 0.6588235294); +} + +.pill-alt, .badge-alt { + background: rgba(251.0215053763, 245, 242.5806451613, 0.9505882353); + color: #ffffff; + border-color: rgba(181, 69, 24, 0.5882352941); +} + +.pill-secondary, .badge-secondary { + background: rgb(230.52, 230.52, 230.52); + color: #ffffff; + border-color: #333333; +} + +.pill-success, .badge-success { + background: rgb(230.64, 246.6, 239.16); + color: #ffffff; + border-color: #34b97b; +} + +.pill-warning, .badge-warning { + background: rgb(255, 247.56, 225.24); + color: #ffffff; + border-color: #ffc107; +} + +.pill-danger, .badge-danger { + background: rgb(250.8, 230.76, 232.68); + color: #ffffff; + border-color: #dc3545; +} + +.pill-info, .badge-info { + background: rgb(225.96, 248.64, 253.2); + color: #ffffff; + border-color: #0dcaf0; +} + +.pill-light, .badge-light { + background: rgb(251.88, 251.88, 251.88); + color: #212529; + border-color: #e5e5e5; +} + +.pill-dark, .badge-dark { + background: rgb(228.36, 228.84, 229.32); + color: #ffffff; + border-color: #212529; +} + +.pill-white, .badge-white { + background: white; + color: #212529; + border-color: #ffffff; +} + +.pill-black, .badge-black { + background: rgb(224.4, 224.4, 224.4); + color: #ffffff; + border-color: #000000; +} + +.pill-muted, .badge-muted { + background: rgb(248.28, 248.28, 248.28); + color: #212529; + border-color: #c7c7c7; +} + +.pill-gray, .badge-gray { + background: rgb(237.36, 238.44, 239.4); + color: #ffffff; + border-color: #6c757d; +} + +.pill-accent-white, .badge-accent-white { + background: rgb(254.04, 254.04, 254.04); + color: #212529; + border-color: #f7f7f7; +} + +.pill-accent, .badge-accent { + background: rgb(225.36, 246.84, 246.84); + color: #ffffff; + border-color: #08bbbb; +} + +.pill-transparent, .badge-transparent { + background: rgba(255, 255, 255, 0.88); + color: #ffffff; + border-color: transparent; +} + +/* ========================================================================== */ +/* Accordions */ +/* ========================================================================== */ +.accordion { + border: 1px solid #c7c7c7; + border-radius: 0.5rem; + overflow: hidden; +} + +.accordion__item + .accordion__item { + border-top: 1px solid #c7c7c7; +} + +.accordion__header { + width: 100%; + display: flex; + align-items: center; + justify-content: space-between; + gap: 0.5rem; + padding: 0.5rem 1rem; + cursor: pointer; + background: #f7f7f7; + border: none; +} + +.accordion__title { + font-weight: 500; +} + +.accordion__icon { + transition: transform 0.25s cubic-bezier(0.4, 0, 0.2, 1); +} + +.accordion__panel { + display: grid; + grid-template-rows: 0fr; + transition: grid-template-rows 0.25s cubic-bezier(0.4, 0, 0.2, 1); +} + +.accordion__content { + overflow: hidden; + padding: 0 1rem; +} + +.accordion__item.is-open .accordion__panel { + grid-template-rows: 1fr; +} + +.accordion__item.is-open .accordion__content { + padding: 0.5rem 1rem 1rem; +} + +.accordion__item.is-open .accordion__icon { + transform: rotate(180deg); +} + +/* ========================================================================== */ +/* Stack Utilities */ +/* ========================================================================== */ +.stack > * + * { + margin-top: 1rem; +} + +.stack-0 > * + * { + margin-top: 0; +} + +.stack-1 > * + * { + margin-top: 0.25rem; +} + +.stack-2 > * + * { + margin-top: 0.5rem; +} + +.stack-3 > * + * { + margin-top: 1rem; +} + +.stack-4 > * + * { + margin-top: 1.5rem; +} + +.stack-5 > * + * { + margin-top: 3rem; +} + +/* ========================================================================== */ +/* Transitions & Animations */ +/* ========================================================================== */ +.transition-all { + transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1); +} + +.transition-fast { + transition-duration: 0.15s; +} + +.transition-slow { + transition-duration: 0.4s; +} + +@keyframes fade-in { + from { + opacity: 0; + } + to { + opacity: 1; + } +} +@keyframes slide-up { + from { + transform: translateY(10px); + opacity: 0; + } + to { + transform: translateY(0); + opacity: 1; + } +} +.animate-fade-in { + animation: fade-in 0.3s cubic-bezier(0, 0, 0.2, 1) both; +} + +.animate-slide-up { + animation: slide-up 0.35s cubic-bezier(0, 0, 0.2, 1) both; +} + +/* ========================================================================== */ +/* Tooltips */ +/* ========================================================================== */ +.tooltip { + position: relative; + display: inline-block; + cursor: help; +} + +.tooltip::after { + content: attr(data-tip); + position: absolute; + bottom: calc(100% + 6px); + left: 50%; + transform: translateX(-50%); + background: #212529; + color: #ffffff; + padding: 0.25rem 0.5rem; + font-size: 0.875rem; + border-radius: 0.125rem; + white-space: nowrap; + opacity: 0; + pointer-events: none; + transition: opacity 0.25s cubic-bezier(0.4, 0, 0.2, 1); + z-index: 1000; +} + +.tooltip:hover::after { + opacity: 1; +} + +/* ========================================================================== */ +/* Tabs */ +/* ========================================================================== */ +.tabs { + display: flex; + gap: 0.5rem; + border-bottom: 1px solid #c7c7c7; +} + +.tab { + padding: 0.5rem 1rem; + cursor: pointer; + border-bottom: 2px solid transparent; + transition: border-color 0.25s cubic-bezier(0.4, 0, 0.2, 1), color 0.25s cubic-bezier(0.4, 0, 0.2, 1); +} + +.tab.active { + border-color: #aa0b3d; + color: #aa0b3d; +} + +/* ========================================================================== */ +/* Transform & Scale Utilities */ +/* ========================================================================== */ +.scale-90 { + transform: scale(0.9); +} + +.scale-95 { + transform: scale(0.95); +} + +.scale-100 { + transform: scale(1); +} + +.scale-105 { + transform: scale(1.05); +} + +.scale-110 { + transform: scale(1.1); +} + +.rotate-90 { + transform: rotate(90deg); +} + +.rotate-180 { + transform: rotate(180deg); +} + +.rotate-270 { + transform: rotate(270deg); +} + +.skew-x-6 { + transform: skewX(6deg); +} + +.skew-y-6 { + transform: skewY(6deg); +} + +/* ========================================================================== */ +/* Shadow, Blur, and Glow Utilities */ +/* ========================================================================== */ +.shadow-none { + box-shadow: none !important; +} + +.blur-sm { + filter: blur(2px); +} + +.blur-md { + filter: blur(4px); +} + +.blur-lg { + filter: blur(8px); +} + +.glow { + box-shadow: 0 0 12px rgba(8, 187, 187, 0.5); +} + +/* ========================================================================== */ +/* Dark Mode (opt-in via .theme-dark) */ +/* ========================================================================== */ +.theme-dark { + background: #212529; + color: #e5e5e5; +} + +.theme-dark .card, +.theme-dark .modal__dialog { + background: #333333; + border-color: #c7c7c7; + color: #e5e5e5; +} + +.theme-dark .input, +.theme-dark select, +.theme-dark textarea { + background: #333333; + color: #e5e5e5; + border-color: #c7c7c7; +} + +.theme-dark .tabs { + border-bottom-color: #c7c7c7; +} + +.theme-dark .tab.active { + border-color: #aa0b3d; + color: #aa0b3d; +} + +/* ========================================================================== */ +/* Scroll Utilities */ +/* ========================================================================== */ +.scroll-y { + overflow-y: auto !important; +} + +.scroll-x { + overflow-x: auto !important; +} + +.scroll-hidden { + overflow: hidden !important; +} + +/* ========================================================================== */ +/* Spinner */ +/* ========================================================================== */ +@keyframes ui-spinner { + to { + transform: rotate(360deg); + } +} +.spinner { + display: inline-block; + width: 1rem; + height: 1rem; + border-radius: 50%; + border-style: solid; + border-width: 2px; + border-color: #212529; + border-left-color: transparent !important; + animation: ui-spinner 1s linear infinite; +} + +.spinner-primary { + border-color: #aa0b3d; + border-left-color: transparent !important; +} + +.spinner-primary-alt { + border-color: rgba(170, 11, 61, 0.6588235294); + border-left-color: transparent !important; +} + +.spinner-alt { + border-color: rgba(181, 69, 24, 0.5882352941); + border-left-color: transparent !important; +} + +.spinner-secondary { + border-color: #333333; + border-left-color: transparent !important; +} + +.spinner-success { + border-color: #34b97b; + border-left-color: transparent !important; +} + +.spinner-warning { + border-color: #ffc107; + border-left-color: transparent !important; +} + +.spinner-danger { + border-color: #dc3545; + border-left-color: transparent !important; +} + +.spinner-info { + border-color: #0dcaf0; + border-left-color: transparent !important; +} + +.spinner-light { + border-color: #e5e5e5; + border-left-color: transparent !important; +} + +.spinner-dark { + border-color: #212529; + border-left-color: transparent !important; +} + +.spinner-white { + border-color: #ffffff; + border-left-color: transparent !important; +} + +.spinner-black { + border-color: #000000; + border-left-color: transparent !important; +} + +.spinner-muted { + border-color: #c7c7c7; + border-left-color: transparent !important; +} + +.spinner-gray { + border-color: #6c757d; + border-left-color: transparent !important; +} + +.spinner-accent-white { + border-color: #f7f7f7; + border-left-color: transparent !important; +} + +.spinner-accent { + border-color: #08bbbb; + border-left-color: transparent !important; +} + +.spinner-transparent { + border-color: transparent; + border-left-color: transparent !important; +} + +.spinner-sm { + width: 0.875rem; + height: 0.875rem; + border-width: 2px; +} + +.spinner-md { + width: 1.25rem; + height: 1.25rem; + border-width: 2px; +} + +.spinner-lg { + width: 1.75rem; + height: 1.75rem; + border-width: 3px; +} + +.spinner-xl { + width: 2.25rem; + height: 2.25rem; + border-width: 4px; +} + +/* ========================================================================== */ +/* Visibility + Accessibility */ +/* ========================================================================== */ +.visible { + visibility: visible !important; +} + +.invisible { + visibility: hidden !important; +} + +.sr-only { + position: absolute !important; + width: 1px !important; + height: 1px !important; + padding: 0 !important; + margin: -1px !important; + overflow: hidden !important; + clip: rect(0, 0, 0, 0) !important; + white-space: nowrap !important; + border: 0 !important; +} + +/* ========================================================================== */ +/* Overflow + Text Truncation */ +/* ========================================================================== */ +.overflow-hidden { + overflow: hidden !important; +} + +.overflow-auto { + overflow: auto !important; +} + +.overflow-scroll { + overflow: scroll !important; +} + +.truncate { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +/* ========================================================================== */ +/* Opacity */ +/* ========================================================================== */ +.opacity-0 { + opacity: 0; +} + +.opacity-25 { + opacity: 0.25; +} + +.opacity-50 { + opacity: 0.5; +} + +.opacity-75 { + opacity: 0.75; +} + +.opacity-100 { + opacity: 1; +} + +/* ========================================================================== */ +/* Cursor + Pointer Events */ +/* ========================================================================== */ +.cursor-default { + cursor: default !important; +} + +.cursor-pointer { + cursor: pointer !important; +} + +.cursor-not-allowed { + cursor: not-allowed !important; +} + +.pointer-none { + pointer-events: none !important; +} + +.pointer-auto { + pointer-events: auto !important; +} + +/* ========================================================================== */ +/* Position + Inset */ +/* ========================================================================== */ +.relative { + position: relative !important; +} + +.absolute { + position: absolute !important; +} + +.fixed { + position: fixed !important; +} + +.sticky { + position: sticky !important; +} + +.inset-0 { + inset: 0 !important; +} + +.top-0 { + top: 0 !important; +} + +.right-0 { + right: 0 !important; +} + +.bottom-0 { + bottom: 0 !important; +} + +.left-0 { + left: 0 !important; +} + +/* ========================================================================== */ +/* Flex Wrapping + Gap */ +/* ========================================================================== */ +.wrap { + flex-wrap: wrap !important; +} + +.nowrap { + flex-wrap: nowrap !important; +} + +.wrap-reverse { + flex-wrap: wrap-reverse !important; +} + +.gap-0 { + gap: 0 !important; +} + +.row-gap-0 { + row-gap: 0 !important; +} + +.col-gap-0 { + -moz-column-gap: 0 !important; + column-gap: 0 !important; +} + +.gap-1 { + gap: 0.25rem !important; +} + +.row-gap-1 { + row-gap: 0.25rem !important; +} + +.col-gap-1 { + -moz-column-gap: 0.25rem !important; + column-gap: 0.25rem !important; +} + +.gap-2 { + gap: 0.5rem !important; +} + +.row-gap-2 { + row-gap: 0.5rem !important; +} + +.col-gap-2 { + -moz-column-gap: 0.5rem !important; + column-gap: 0.5rem !important; +} + +.gap-3 { + gap: 1rem !important; +} + +.row-gap-3 { + row-gap: 1rem !important; +} + +.col-gap-3 { + -moz-column-gap: 1rem !important; + column-gap: 1rem !important; +} + +.gap-4 { + gap: 1.5rem !important; +} + +.row-gap-4 { + row-gap: 1.5rem !important; +} + +.col-gap-4 { + -moz-column-gap: 1.5rem !important; + column-gap: 1.5rem !important; +} + +.gap-5 { + gap: 3rem !important; +} + +.row-gap-5 { + row-gap: 3rem !important; +} + +.col-gap-5 { + -moz-column-gap: 3rem !important; + column-gap: 3rem !important; +} + +/* ========================================================================== */ +/* Responsive Reverse (small-down) */ +/* ========================================================================== */ +@media (max-width: 768px) { + .sm-reverse { + display: flex; + flex-direction: column-reverse; + } +} + +/* ========================================================================== */ +/* Aspect Ratios + Object Fit */ +/* ========================================================================== */ +.ratio { + position: relative; + width: 100%; + height: 0; + overflow: hidden; +} + +.ratio > * { + position: absolute; + inset: 0; + width: 100%; + height: 100%; +} + +.ratio-16x9 { + padding-bottom: 56.25%; +} + +.ratio-4x3 { + padding-bottom: 75%; +} + +.ratio-1x1 { + padding-bottom: 100%; +} + +.object-contain { + -o-object-fit: contain !important; + object-fit: contain !important; +} + +.object-cover { + -o-object-fit: cover !important; + object-fit: cover !important; +} + +.object-fill { + -o-object-fit: fill !important; + object-fit: fill !important; +} + +.object-none { + -o-object-fit: none !important; + object-fit: none !important; +} + +.object-scale-down { + -o-object-fit: scale-down !important; + object-fit: scale-down !important; +} + +/* ========================================================================== */ +/* Hover Motion Helpers */ +/* ========================================================================== */ +.hover-raise { + transition: transform 0.25s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.25s cubic-bezier(0.4, 0, 0.2, 1); +} + +.hover-raise:hover { + transform: translateY(-2px); + box-shadow: 0 2px 6px rgba(0, 0, 0, 0.16); +} + +.hover-glow { + transition: box-shadow 0.25s cubic-bezier(0.4, 0, 0.2, 1); +} + +.hover-glow:hover { + box-shadow: 0 0 0 3px rgba(170, 11, 61, 0.2), 0 2px 6px rgba(0, 0, 0, 0.16); +} + +/* ========================================================================== */ +/* Divider Utilities */ +/* ========================================================================== */ +.hr { + width: 100%; + height: 1px; + background: #c7c7c7; + border: 0; +} + +.hr-dashed { + height: 1px; + border-top: 1px dashed #c7c7c7; + background: transparent; +} + +/* ========================================================================== */ +/* Utility Badges (aliases of pills) */ +/* ========================================================================== */ +/* ========================================================================== */ +/* Quick Utility Aliases */ +/* ========================================================================== */ +.rel { + position: relative; +} + +.no-click { + pointer-events: none; +} + +.center { + display: grid; + place-items: center; +} + +.full-height { + height: 100vh; +} + +/* ========================================================================== */ +/* Flex Grid Extensions */ +/* ========================================================================== */ +.row.no-gutter { + margin-inline: 0; + margin-block: 0; +} +.row.no-gutter > .col, +.row.no-gutter > [class^=col-] { + padding-inline: 0; + padding-block: 0; +} + +.row.gx-0 { + margin-right: 0; + margin-left: 0; +} +.row.gx-0 > .col, +.row.gx-0 > [class^=col-] { + padding-right: 0; + padding-left: 0; +} + +.row.gy-0 { + margin-top: 0; + margin-bottom: 0; +} +.row.gy-0 > .col, +.row.gy-0 > [class^=col-] { + padding-top: 0; + padding-bottom: 0; +} + +.row-bleed { + margin-right: calc(1rem * -1); + margin-left: calc(1rem * -1); +} + +@media (min-width: 576px) { + .sm-row-center { + justify-content: center; + } + .sm-row-between { + justify-content: space-between; + } + .sm-row-around { + justify-content: space-around; + } + .sm-row-evenly { + justify-content: space-evenly; + } +} +@media (min-width: 768px) { + .md-row-center { + justify-content: center; + } + .md-row-between { + justify-content: space-between; + } + .md-row-around { + justify-content: space-around; + } + .md-row-evenly { + justify-content: space-evenly; + } +} +@media (min-width: 992px) { + .lg-row-center { + justify-content: center; + } + .lg-row-between { + justify-content: space-between; + } + .lg-row-around { + justify-content: space-around; + } + .lg-row-evenly { + justify-content: space-evenly; + } +} +@media (min-width: 1200px) { + .xl-row-center { + justify-content: center; + } + .xl-row-between { + justify-content: space-between; + } + .xl-row-around { + justify-content: space-around; + } + .xl-row-evenly { + justify-content: space-evenly; + } +} +@media (min-width: 1400px) { + .xxl-row-center { + justify-content: center; + } + .xxl-row-between { + justify-content: space-between; + } + .xxl-row-around { + justify-content: space-around; + } + .xxl-row-evenly { + justify-content: space-evenly; + } +} +@media (min-width: 1600px) { + .xxxl-row-center { + justify-content: center; + } + .xxxl-row-between { + justify-content: space-between; + } + .xxxl-row-around { + justify-content: space-around; + } + .xxxl-row-evenly { + justify-content: space-evenly; + } +} +/* ========================================================================== */ +/* CSS Grid Enhancements */ +/* ========================================================================== */ +.grid-cols-1 { + grid-template-columns: repeat(1, 1fr) !important; +} + +.grid-cols-2 { + grid-template-columns: repeat(2, 1fr) !important; +} + +.grid-cols-3 { + grid-template-columns: repeat(3, 1fr) !important; +} + +.grid-cols-4 { + grid-template-columns: repeat(4, 1fr) !important; +} + +.grid-cols-5 { + grid-template-columns: repeat(5, 1fr) !important; +} + +.grid-cols-6 { + grid-template-columns: repeat(6, 1fr) !important; +} + +.grid-cols-7 { + grid-template-columns: repeat(7, 1fr) !important; +} + +.grid-cols-8 { + grid-template-columns: repeat(8, 1fr) !important; +} + +.grid-cols-9 { + grid-template-columns: repeat(9, 1fr) !important; +} + +.grid-cols-10 { + grid-template-columns: repeat(10, 1fr) !important; +} + +.grid-cols-11 { + grid-template-columns: repeat(11, 1fr) !important; +} + +.grid-cols-12 { + grid-template-columns: repeat(12, 1fr) !important; +} + +.grid-cols-none { + grid-template-columns: none !important; +} + +.grid-rows-1 { + grid-template-rows: repeat(1, 1fr) !important; +} + +.grid-rows-2 { + grid-template-rows: repeat(2, 1fr) !important; +} + +.grid-rows-3 { + grid-template-rows: repeat(3, 1fr) !important; +} + +.grid-rows-4 { + grid-template-rows: repeat(4, 1fr) !important; +} + +.grid-rows-5 { + grid-template-rows: repeat(5, 1fr) !important; +} + +.grid-rows-6 { + grid-template-rows: repeat(6, 1fr) !important; +} + +.grid-rows-7 { + grid-template-rows: repeat(7, 1fr) !important; +} + +.grid-rows-8 { + grid-template-rows: repeat(8, 1fr) !important; +} + +.grid-rows-9 { + grid-template-rows: repeat(9, 1fr) !important; +} + +.grid-rows-10 { + grid-template-rows: repeat(10, 1fr) !important; +} + +.grid-rows-11 { + grid-template-rows: repeat(11, 1fr) !important; +} + +.grid-rows-12 { + grid-template-rows: repeat(12, 1fr) !important; +} + +.grid-rows-none { + grid-template-rows: none !important; +} + +.grid-auto-fit-sm { + grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr)) !important; +} + +.grid-auto-fit-md { + grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)) !important; +} + +.grid-auto-fit-lg { + grid-template-columns: repeat(auto-fit, minmax(20rem, 1fr)) !important; +} + +.grid-auto-fill-sm { + grid-template-columns: repeat(auto-fill, minmax(10rem, 1fr)) !important; +} + +.grid-auto-fill-md { + grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)) !important; +} + +.grid-auto-fill-lg { + grid-template-columns: repeat(auto-fill, minmax(20rem, 1fr)) !important; +} + +.grid-align-center { + align-items: center !important; + justify-items: center !important; +} + +.grid-align-start { + align-items: start !important; + justify-items: start !important; +} + +.grid-align-end { + align-items: end !important; + justify-items: end !important; +} + +.grid-align-stretch { + align-items: stretch !important; + justify-items: stretch !important; +} + +.grid-flow-row { + grid-auto-flow: row !important; +} + +.grid-flow-col { + grid-auto-flow: column !important; +} + +.grid-flow-row-dense { + grid-auto-flow: row dense !important; +} + +.grid-flow-col-dense { + grid-auto-flow: column dense !important; +}/*# sourceMappingURL=main.css.map */ \ No newline at end of file diff --git a/rss/css/main.css.map b/rss/css/main.css.map new file mode 100644 index 0000000..1f8f6e9 --- /dev/null +++ b/rss/css/main.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["variables.scss","main.scss","main.css"],"names":[],"mappings":"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ADzwEwD;EAAW,gBD0JpD;AEmnEf;;AD7wEgC;EAAW,UD0J5B;AEunEf;;ADjxEwD;EAAW,WD0JpD;AE2nEf;;ADrxEgC;EAAW,WD0J5B;AE+nEf;;ADzxEwD;EAAW,YD0JpD;AEmoEf;;AD5xE2B;EAAa,UD4H9B;AEoqEV;;ADhyEqD;EAAa,WD4HxD;AEwqEV;;ADpyE2B;EAAa,UD4H9B;AE4qEV;;ADxyEqD;EAAa,WD4HxD;AEgrEV;;AD5yE2B;EAAa,UD4H9B;AEorEV;;ADhzEqD;EAAa,WD4HxD;AEwrEV;;ADpzE2B;EAAa,UD4H9B;AE4rEV;;ADxzEqD;EAAa,WD4HxD;AEgsEV;;AD5zE2B;EAAa,UD4H9B;AEosEV;;ADh0EqD;EAAa,WD4HxD;AEwsEV;;ADp0E2B;EAAa,WD4H9B;AE4sEV;;ADx0EqD;EAAa,YD4HxD;AEgtEV;;AD50E2B;EAAa,WD4H9B;AEotEV;;ADh1EqD;EAAa,YD4HxD;AEwtEV;;ADp1E2B;EAAa,WD4H9B;AE4tEV;;ADx1EqD;EAAa,YD4HxD;AEguEV;;AD51E2B;EAAa,WD4H9B;AEouEV;;ADh2EqD;EAAa,YD4HxD;AEwuEV;;ADp2E2B;EAAa,WD4H9B;AE4uEV;;ADx2EqD;EAAa,YD4HxD;AEgvEV;;AD52E2B;EAAa,WD4H9B;AEovEV;;ADh3EqD;EAAa,YD4HxD;AEwvEV;;ADp3E2B;EAAa,WD4H9B;AE4vEV;;ADx3EqD;EAAa,YD4HxD;AEgwEV;;AD53E2B;EAAa,WD4H9B;AEowEV;;ADh4EqD;EAAa,YD4HxD;AEwwEV;;ADp4E2B;EAAa,WD4H9B;AE4wEV;;ADx4EqD;EAAa,YD4HxD;AEgxEV;;AD54E2B;EAAa,WD4H9B;AEoxEV;;ADh5EqD;EAAa,YD4HxD;AEwxEV;;ADp5E2B;EAAa,WD4H9B;AE4xEV;;ADx5EqD;EAAa,YD4HxD;AEgyEV;;AD55E2B;EAAa,YD4H9B;AEoyEV;;ADh6EqD;EAAa,aD4HxD;AEwyEV;;ADp6E2B;EAAa,YD4H9B;AE4yEV;;ADx6EqD;EAAa,aD4HxD;AEgzEV;;AD56E2B;EAAa,YD4H9B;AEozEV;;ADh7EqD;EAAa,aD4HxD;AEwzEV;;ADp7E2B;EAAa,YD4H9B;AE4zEV;;ADx7EqD;EAAa,aD4HxD;AEg0EV;;AD57E2B;EAAa,YD4H9B;AEo0EV;;ADh8EqD;EAAa,aD4HxD;AEw0EV;;ADp8E2B;EAAa,YD4H9B;AE40EV;;ADx8EqD;EAAa,aD4HxD;AEg1EV;;AD58E2B;EAAa,YD4H9B;AEo1EV;;ADh9EqD;EAAa,aD4HxD;AEw1EV;;ADp9E2B;EAAa,YD4H9B;AE41EV;;ADx9EqD;EAAa,aD4HxD;AEg2EV;;AD59E2B;EAAa,YD4H9B;AEo2EV;;ADh+EqD;EAAa,aD4HxD;AEw2EV;;ADp+E2B;EAAa,YD4H9B;AE42EV;;ADx+EqD;EAAa,aD4HxD;AEg3EV;;AD3+E4B;EAAc,QDkK/B;AE60EX;;AD/+EuD;EAAc,SDkK1D;AEi1EX;;ADn/E4B;EAAc,cDkK/B;AEq1EX;;ADv/EuD;EAAc,eDkK1D;AEy1EX;;AD3/E4B;EAAc,aDkK/B;AE61EX;;AD//EuD;EAAc,cDkK1D;AEi2EX;;ADngF4B;EAAc,WDkK/B;AEq2EX;;ADvgFuD;EAAc,YDkK1D;AEy2EX;;AD3gF4B;EAAc,aDkK/B;AE62EX;;AD/gFuD;EAAc,cDkK1D;AEi3EX;;ADnhF4B;EAAc,WDkK/B;AEq3EX;;ADvhFuD;EAAc,YDkK1D;AEy3EX;;AD3hF4B;EAAc,WDkK/B;AE63EX;;AD/hFuD;EAAc,YDkK1D;AEi4EX;;ADniF4B;EAAc,WDkK/B;AEq4EX;;ADviFuD;EAAc,YDkK1D;AEy4EX;;AD3iF4B;EAAc,WDkK/B;AE64EX;;AD/iFuD;EAAc,YDkK1D;AEi5EX;;ADljF2B;EAAa,WD6K9B;AEy4EV;;ADtjF2B;EAAa,WD6K9B;AE64EV;;AD1jF2B;EAAa,WD6K9B;AEi5EV;;AD9jF2B;EAAa,WD6K9B;AEq5EV;;ADlkF2B;EAAa,WD6K9B;AEy5EV;;ADtkF2B;EAAa,WD6K9B;AE65EV;;AD1kF2B;EAAa,WD6K9B;AEi6EV;;AD9kF2B;EAAa,WD6K9B;AEq6EV;;ADllF2B;EAAa,WD6K9B;AEy6EV;;ADtlF2B;EAAa,WD6K9B;AE66EV;;AD1lF2B;EAAa,WD6K9B;AEi7EV;;AD9lF2B;EAAa,YD6K9B;AEq7EV;;ADjmF2B;EAAa,YD2L9B;AE06EV;;ADrmF2B;EAAa,YD2L9B;AE86EV;;ADzmF2B;EAAa,YD2L9B;AEk7EV;;AD7mF2B;EAAa,YD2L9B;AEs7EV;;ADjnF2B;EAAa,YD2L9B;AE07EV;;ADrnF2B;EAAa,YD2L9B;AE87EV;;ADznF2B;EAAa,YD2L9B;AEk8EV;;AD7nF2B;EAAa,YD2L9B;AEs8EV;;ADjoF2B;EAAa,YD2L9B;AE08EV;;ADroF2B;EAAa,YD2L9B;AE88EV;;ADzoF2B;EAAa,YD2L9B;AEk9EV;;AD7oF2B;EAAa,aD2L9B;AEs9EV;;ADhpF4B;EAAc,aDyM/B;AE28EX;;ADppF4B;EAAc,aDyM/B;AE+8EX;;ADxpF4B;EAAc,aDyM/B;AEm9EX;;AD5pF4B;EAAc,aDyM/B;AEu9EX;;ADhqF4B;EAAc,aDyM/B;AE29EX;;ADpqF4B;EAAc,aDyM/B;AE+9EX;;ADxqF4B;EAAc,aDyM/B;AEm+EX;;AD5qF4B;EAAc,aDyM/B;AEu+EX;;ADhrF4B;EAAc,aDyM/B;AE2+EX;;ADprF4B;EAAc,aDyM/B;AE++EX;;ADxrF4B;EAAc,aDyM/B;AEm/EX;;AD5rF4B;EAAc,cDyM/B;AEu/EX;;AD/rF4B;EAAc,aDuN/B;AE4+EX;;ADnsF4B;EAAc,aDuN/B;AEg/EX;;ADvsF4B;EAAc,aDuN/B;AEo/EX;;AD3sF4B;EAAc,aDuN/B;AEw/EX;;AD/sF4B;EAAc,aDuN/B;AE4/EX;;ADntF4B;EAAc,aDuN/B;AEggFX;;ADvtF4B;EAAc,aDuN/B;AEogFX;;AD3tF4B;EAAc,aDuN/B;AEwgFX;;AD/tF4B;EAAc,aDuN/B;AE4gFX;;ADnuF4B;EAAc,aDuN/B;AEghFX;;ADvuF4B;EAAc,aDuN/B;AEohFX;;AD3uF4B;EAAc,cDuN/B;AEwhFX;;AD9uF4B;EAAc,aDqO/B;AE6gFX;;ADlvF4B;EAAc,aDqO/B;AEihFX;;ADtvF4B;EAAc,aDqO/B;AEqhFX;;AD1vF4B;EAAc,aDqO/B;AEyhFX;;AD9vF4B;EAAc,aDqO/B;AE6hFX;;ADlwF4B;EAAc,aDqO/B;AEiiFX;;ADtwF4B;EAAc,aDqO/B;AEqiFX;;AD1wF4B;EAAc,aDqO/B;AEyiFX;;AD9wF4B;EAAc,aDqO/B;AE6iFX;;ADlxF4B;EAAc,aDqO/B;AEijFX;;ADtxF4B;EAAc,aDqO/B;AEqjFX;;AD1xF4B;EAAc,cDqO/B;AEyjFX;;AD5xFA,sBAAA;AAEE;EACkC;IAAkB,SD8IvC;EEipFb;ED/xFiE;IAAkB,UD8ItE;EEopFb;EDlyFkC;IAAkB,UD8IvC;EEupFb;EDryFiE;IAAkB,WD8ItE;EE0pFb;EDxyFkC;IAAkB,eD8IvC;EE6pFb;ED3yFiE;IAAkB,gBD8ItE;EEgqFb;ED9yFkC;IAAkB,UD8IvC;EEmqFb;EDjzFiE;IAAkB,WD8ItE;EEsqFb;EDpzFkC;IAAkB,eD8IvC;EEyqFb;EDvzFiE;IAAkB,gBD8ItE;EE4qFb;ED1zFkC;IAAkB,UD8IvC;EE+qFb;ED7zFiE;IAAkB,WD8ItE;EEkrFb;EDh0FkC;IAAkB,WD8IvC;EEqrFb;EDn0FiE;IAAkB,YD8ItE;EEwrFb;AACF;ADx0FE;EACkC;IAAkB,SD8IvC;EE6rFb;ED30FiE;IAAkB,UD8ItE;EEgsFb;ED90FkC;IAAkB,UD8IvC;EEmsFb;EDj1FiE;IAAkB,WD8ItE;EEssFb;EDp1FkC;IAAkB,eD8IvC;EEysFb;EDv1FiE;IAAkB,gBD8ItE;EE4sFb;ED11FkC;IAAkB,UD8IvC;EE+sFb;ED71FiE;IAAkB,WD8ItE;EEktFb;EDh2FkC;IAAkB,eD8IvC;EEqtFb;EDn2FiE;IAAkB,gBD8ItE;EEwtFb;EDt2FkC;IAAkB,UD8IvC;EE2tFb;EDz2FiE;IAAkB,WD8ItE;EE8tFb;ED52FkC;IAAkB,WD8IvC;EEiuFb;ED/2FiE;IAAkB,YD8ItE;EEouFb;AACF;ADp3FE;EACkC;IAAkB,SD8IvC;EEyuFb;EDv3FiE;IAAkB,UD8ItE;EE4uFb;ED13FkC;IAAkB,UD8IvC;EE+uFb;ED73FiE;IAAkB,WD8ItE;EEkvFb;EDh4FkC;IAAkB,eD8IvC;EEqvFb;EDn4FiE;IAAkB,gBD8ItE;EEwvFb;EDt4FkC;IAAkB,UD8IvC;EE2vFb;EDz4FiE;IAAkB,WD8ItE;EE8vFb;ED54FkC;IAAkB,eD8IvC;EEiwFb;ED/4FiE;IAAkB,gBD8ItE;EEowFb;EDl5FkC;IAAkB,UD8IvC;EEuwFb;EDr5FiE;IAAkB,WD8ItE;EE0wFb;EDx5FkC;IAAkB,WD8IvC;EE6wFb;ED35FiE;IAAkB,YD8ItE;EEgxFb;AACF;ADh6FE;EACkC;IAAkB,SD8IvC;EEqxFb;EDn6FiE;IAAkB,UD8ItE;EEwxFb;EDt6FkC;IAAkB,UD8IvC;EE2xFb;EDz6FiE;IAAkB,WD8ItE;EE8xFb;ED56FkC;IAAkB,eD8IvC;EEiyFb;ED/6FiE;IAAkB,gBD8ItE;EEoyFb;EDl7FkC;IAAkB,UD8IvC;EEuyFb;EDr7FiE;IAAkB,WD8ItE;EE0yFb;EDx7FkC;IAAkB,eD8IvC;EE6yFb;ED37FiE;IAAkB,gBD8ItE;EEgzFb;ED97FkC;IAAkB,UD8IvC;EEmzFb;EDj8FiE;IAAkB,WD8ItE;EEszFb;EDp8FkC;IAAkB,WD8IvC;EEyzFb;EDv8FiE;IAAkB,YD8ItE;EE4zFb;AACF;AD58FE;EACkC;IAAkB,SD8IvC;EEi0Fb;ED/8FiE;IAAkB,UD8ItE;EEo0Fb;EDl9FkC;IAAkB,UD8IvC;EEu0Fb;EDr9FiE;IAAkB,WD8ItE;EE00Fb;EDx9FkC;IAAkB,eD8IvC;EE60Fb;ED39FiE;IAAkB,gBD8ItE;EEg1Fb;ED99FkC;IAAkB,UD8IvC;EEm1Fb;EDj+FiE;IAAkB,WD8ItE;EEs1Fb;EDp+FkC;IAAkB,eD8IvC;EEy1Fb;EDv+FiE;IAAkB,gBD8ItE;EE41Fb;ED1+FkC;IAAkB,UD8IvC;EE+1Fb;ED7+FiE;IAAkB,WD8ItE;EEk2Fb;EDh/FkC;IAAkB,WD8IvC;EEq2Fb;EDn/FiE;IAAkB,YD8ItE;EEw2Fb;AACF;ADx/FE;EACkC;IAAkB,SD8IvC;EE62Fb;ED3/FiE;IAAkB,UD8ItE;EEg3Fb;ED9/FkC;IAAkB,UD8IvC;EEm3Fb;EDjgGiE;IAAkB,WD8ItE;EEs3Fb;EDpgGkC;IAAkB,eD8IvC;EEy3Fb;EDvgGiE;IAAkB,gBD8ItE;EE43Fb;ED1gGkC;IAAkB,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AA;AC+pHR;;AD9pHA;EAAe,oBAAA;ACkqHf;;ADjqHmC;EAAc,aAAA;EAAe,mBD5H9C;AEkyHlB;;ADtqHmC;EAAc,aAAA;EAAe,2BD5H9C;AEuyHlB;;AD3qHmC;EAAc,aAAA;EAAe,sBD5H9C;AE4yHlB;;ADhrHmC;EAAc,aAAA;EAAe,8BD5H9C;AEizHlB;;ADprH0C;EAAiB,aAAA;EAAe,2BDtHjD;AE+yHzB;;ADzrH0C;EAAiB,aAAA;EAAe,yBDtHjD;AEozHzB;;AD9rH0C;EAAiB,aAAA;EAAe,uBDtHjD;AEyzHzB;;ADnsH0C;EAAiB,aAAA;EAAe,8BDtHjD;AE8zHzB;;ADxsH0C;EAAiB,aAAA;EAAe,6BDtHjD;AEm0HzB;;AD7sH0C;EAAiB,aAAA;EAAe,6BDtHjD;AEw0HzB;;ADjtHsC;EAAe,aAAA;EAAe,uBD9G/C;AEo0HrB;;ADttHsC;EAAe,aAAA;EAAe,qBD9G/C;AEy0HrB;;AD3tHsC;EAAe,aAAA;EAAe,mBD9G/C;AE80HrB;;ADhuHsC;EAAe,aAAA;EAAe,qBD9G/C;AEm1HrB;;ADruHsC;EAAe,aAAA;EAAe,oBD9G/C;AEw1HrB;;ADxuHA,+BAAA;AACiC;EAAgB,eD5LjC;EC4LmD,mBAAA;EAAqB,0BAAA;AC8uHxF;;AD9uHiC;EAAgB,iBD5LjC;EC4LmD,mBAAA;EAAqB,0BAAA;ACovHxF;;ADpvHiC;EAAgB,iBD5LjC;EC4LmD,mBAAA;EAAqB,0BAAA;AC0vHxF;;AD1vHiC;EAAgB,iBD5LjC;EC4LmD,mBAAA;EAAqB,0BAAA;ACgwHxF;;AD/vHA;EAAU,8BAAA;ACmwHV;;ADlwHA;EAAc,kCAAA;ACswHd;;ADrwHA;EAAgB,oCAAA;ACywHhB;;ADxwHA;EAAiB,qCAAA;AC4wHjB;;AD3wHA;EAAe,mCAAA;AC+wHf;;AD7wHyB;EAAiB,gBD5MlC;AE69HR;;ADjxHyB;EAAiB,uBD5MlC;AEi+HR;;ADrxHyB;EAAiB,sBD5MlC;AEq+HR;;ADzxHyB;EAAiB,qBD5MlC;AEy+HR;;AD7xHyB;EAAiB,mBD5MlC;AE6+HR;;ADjyHyB;EAAiB,qBD5MlC;AEi/HR;;ADpyHA;EAAW,sBAAA;ACwyHX;;ADvyHA;EAAe,+BAAA;EAA6C,gCAAA;AC4yH5D;;AD3yHA;EAAkB,kCAAA;EAAgD,mCAAA;ACgzHlE;;AD/yHA;EAAgB,+BAAA;EAA6C,kCAAA;ACozH7D;;ADnzHA;EAAiB,gCAAA;EAA8C,mCAAA;ACwzH/D;;ADtzH2B;EAAgB,oDAAA;AC0zH3C;;AD1zH2B;EAAgB,oDAAA;AC8zH3C;;AD9zH2B;EAAgB,qDAAA;ACk0H3C;;ADl0H2B;EAAgB,oDAAA;ACs0H3C;;ADt0H2B;EAAgB,sDAAA;AC00H3C;;ADz0HgC;EAAqB,oDAAA;AC60HrD;;AD70HgC;EAAqB,oDAAA;ACi1HrD;;ADj1HgC;EAAqB,oDAAA;ACq1HrD;;ADr1HgC;EAAqB,sDAAA;ACy1HrD;;ADz1HgC;EAAqB,sDAAA;AC61HrD;;AD31HA,YAAA;AACA;EAAU,UAAA;AC+1HV;;AD91HA;EAAc,aAAA;ACk2Hd;;ADj2HA;EAAa,aAAA;ACq2Hb;;ADp2HA;EAAW,aAAA;ACw2HX;;ADv2HA;EAAW,aAAA;AC22HX;;ADz2HA,+EAAA;AACA,+EAAA;AACA,+EAAA;AACA;EAAQ,wBAAA;AC62HR;;AD52HA;EAAe,+BAAA;ACg3Hf;;AD92H4B;EAAmB,gDAAA;ACk3H/C;;ADl3H4B;EAAmB,gDAAA;ACs3H/C;;ADt3H4B;EAAmB,gDAAA;AC03H/C;;AD13H4B;EAAmB,gDAAA;AC83H/C;;AD93H4B;EAAmB,gDAAA;ACk4H/C;;ADl4H4B;EAAmB,gDAAA;ACs4H/C;;ADt4H4B;EAAmB,gDAAA;AC04H/C;;AD14H4B;EAAmB,gDAAA;AC84H/C;;AD94H4B;EAAmB,gDAAA;ACk5H/C;;ADl5H4B;EAAmB,iDAAA;ACs5H/C;;ADt5H4B;EAAmB,iDAAA;AC05H/C;;AD15H4B;EAAmB,iDAAA;AC85H/C;;AD75HA;EAAkB,sCAAA;ACi6HlB;;AD95HE;EAEI;IAA0B,gDAAA;ECi6H9B;EDj6HI;IAA0B,gDAAA;ECo6H9B;EDp6HI;IAA0B,gDAAA;ECu6H9B;EDv6HI;IAA0B,gDAAA;EC06H9B;ED16HI;IAA0B,gDAAA;EC66H9B;ED76HI;IAA0B,gDAAA;ECg7H9B;EDh7HI;IAA0B,gDAAA;ECm7H9B;EDn7HI;IAA0B,gDAAA;ECs7H9B;EDt7HI;IAA0B,gDAAA;ECy7H9B;EDz7HI;IAA0B,iDAAA;EC47H9B;ED57HI;IAA0B,iDAAA;EC+7H9B;ED/7HI;IAA0B,iDAAA;ECk8H9B;AACF;ADr8HE;EAEI;IAA0B,gDAAA;ECu8H9B;EDv8HI;IAA0B,gDAAA;EC08H9B;ED18HI;IAA0B,gDAAA;EC68H9B;ED78HI;IAA0B,gDAAA;ECg9H9B;EDh9HI;IAA0B,gDAAA;ECm9H9B;EDn9HI;IAA0B,gDAAA;ECs9H9B;EDt9HI;IAA0B,gDAAA;ECy9H9B;EDz9HI;IAA0B,gDAAA;EC49H9B;ED59HI;IAA0B,gDAAA;EC+9H9B;ED/9HI;IAA0B,iDAAA;ECk+H9B;EDl+HI;IAA0B,iDAAA;ECq+H9B;EDr+HI;IAA0B,iDAAA;ECw+H9B;AACF;AD3+HE;EAEI;IAA0B,gDAAA;EC6+H9B;ED7+HI;IAA0B,gDAAA;ECg/H9B;EDh/HI;IAA0B,gDAAA;ECm/H9B;EDn/HI;IAA0B,gDAAA;ECs/H9B;EDt/HI;IAA0B,gDAAA;ECy/H9B;EDz/HI;IAA0B,gDAAA;EC4/H9B;ED5/HI;IAA0B,gDAAA;EC+/H9B;ED//HI;IAA0B,gDAAA;ECkgI9B;EDlgII;IAA0B,gDAAA;ECqgI9B;EDrgII;IAA0B,iDAAA;ECwgI9B;EDxgII;IAA0B,iDAAA;EC2gI9B;ED3gII;IAA0B,iDAAA;EC8gI9B;AACF;ADjhIE;EAEI;IAA0B,gDAAA;ECmhI9B;EDnhII;IAA0B,gDAAA;ECshI9B;EDthII;IAA0B,gDAAA;ECyhI9B;EDzhII;IAA0B,gDAAA;EC4hI9B;ED5hII;IAA0B,gDAAA;EC+hI9B;ED/hII;IAA0B,gDAAA;ECkiI9B;EDliII;IAA0B,gDAAA;ECqiI9B;EDriII;IAA0B,gDAAA;ECwiI9B;EDxiII;IAA0B,gDAAA;EC2iI9B;ED3iII;IAA0B,iDAAA;EC8iI9B;ED9iII;IAA0B,iDAAA;ECijI9B;EDjjII;IAA0B,iDAAA;ECojI9B;AACF;ADvjIE;EAEI;IAA0B,gDAAA;ECyjI9B;EDzjII;IAA0B,gDAAA;EC4jI9B;ED5jII;IAA0B,gDAAA;EC+jI9B;ED/jII;IAA0B,gDAAA;ECkkI9B;EDlkII;IAA0B,gDAAA;ECqkI9B;EDrkII;IAA0B,gDAAA;ECwkI9B;EDxkII;IAA0B,gDAAA;EC2kI9B;ED3kII;IAA0B,gDAAA;EC8kI9B;ED9kII;IAA0B,gDAAA;ECilI9B;EDjlII;IAA0B,iDAAA;EColI9B;EDplII;IAA0B,iDAAA;ECulI9B;EDvlII;IAA0B,iDAAA;EC0lI9B;AACF;AD7lIE;EAEI;IAA0B,gDAAA;EC+lI9B;ED/lII;IAA0B,gDAAA;ECkmI9B;EDlmII;IAA0B,gDAAA;ECqmI9B;EDrmII;IAA0B,gDAAA;ECwmI9B;EDxmII;IAA0B,gDAAA;EC2mI9B;ED3mII;IAA0B,gDAAA;EC8mI9B;ED9mII;IAA0B,gDAAA;ECinI9B;EDjnII;IAA0B,gDAAA;EConI9B;EDpnII;IAA0B,gDAAA;ECunI9B;EDvnII;IAA0B,iDAAA;EC0nI9B;ED1nII;IAA0B,iDAAA;EC6nI9B;ED7nII;IAA0B,iDAAA;ECgoI9B;AACF;AD5nI4B;EAAmB,6CAAA;AC+nI/C;;AD/nI4B;EAAmB,6CAAA;ACmoI/C;;ADnoI4B;EAAmB,6CAAA;ACuoI/C;;ADvoI4B;EAAmB,6CAAA;AC2oI/C;;AD3oI4B;EAAmB,6CAAA;AC+oI/C;;AD/oI4B;EAAmB,6CAAA;ACmpI/C;;ADnpI4B;EAAmB,6CAAA;ACupI/C;;ADvpI4B;EAAmB,6CAAA;AC2pI/C;;AD3pI4B;EAAmB,6CAAA;AC+pI/C;;AD/pI4B;EAAmB,8CAAA;ACmqI/C;;ADnqI4B;EAAmB,8CAAA;ACuqI/C;;ADvqI4B;EAAmB,8CAAA;AC2qI/C;;AD1qIA;EAAkB,mCAAA;AC8qIlB;;AD5qIA;EAAoB,sEAAA;ACgrIpB;;AD/qIA;EAAoB,sEAAA;ACmrIpB;;ADlrIA;EAAoB,sEAAA;ACsrIpB;;ADrrIA;EAAqB,uEAAA;ACyrIrB;;ADxrIA;EAAqB,uEAAA;AC4rIrB;;AD3rIA;EAAqB,uEAAA;AC+rIrB;;AD7rIA;EAAqB,8BAAA;EAAgC,gCAAA;ACksIrD;;ADjsIA;EAAoB,6BAAA;EAA+B,+BAAA;ACssInD;;ADrsIA;EAAkB,2BAAA;EAA6B,6BAAA;AC0sI/C;;ADzsIA;EAAsB,+BAAA;EAAiC,iCAAA;AC8sIvD;;AD5sIA;EAAqB,6BAAA;ACgtIrB;;AD/sIA;EAAoB,4BAAA;ACmtIpB;;ADltIA;EAAkB,0BAAA;ACstIlB;;ADrtIA;EAAsB,8BAAA;ACytItB;;ADvtIA;EAAiB,8BAAA;AC2tIjB;;AD1tIA;EAAiB,iCAAA;AC8tIjB;;AD7tIA;EAAuB,oCAAA;ACiuIvB;;ADhuIA;EAAuB,uCAAA;ACouIvB;;ADluIA,0BAAA;AACA;EAAsB,yCAAA;ACsuItB;;ADruIA;EAAsB,yCAAA;ACyuItB;;ADxuIA;EAAsB,iCAAA;AC4uItB;;AD3uIA;EAAsB,sCAAA;AC+uItB;;AD9uIA;EAAsB,sCAAA;ACkvItB;;ADjvIA;EAAsB,8BAAA;ACqvItB;;ADnvIA,+EAAA;AACA,+EAAA;AACA,+EAAA;AAyBA,WAAA;AACA;EAxBE,wBAAA;KAAA,qBAAA;UAAA,gBAAA;EACA,mBAAA;EACA,iBAAA;EACA,qBAAA;EACA,yBAAA;EACA,cAAA;EACA,UAAA;EACA,qPACE;EAkBF,WAAA;ACquIF;ADpuIE;EACE,qBAAA;EACA,4CAAA;EACA,yBAAA;ACsuIJ;ADpuIE;EACE,yBAAA;EACA,YAAA;EACA,mBAAA;ACsuIJ;ADpuIE;EAAiB,cAAA;ACuuInB;ADvuIE;EAAiB,cAAA;ACuuInB;;ADruIwC;EAtBtC,mBAAA;EACA,gBAAA;EACA,uBAAA;EACA,sBAAA;AC+vIF;;AD5uIwC;EAtBtC,iBAAA;EACA,gBAAA;EACA,yBAAA;EACA,sBAAA;ACswIF;;ADnvIwC;EAtBtC,kBAAA;EACA,gBAAA;EACA,oBAAA;EACA,qBAAA;AC6wIF;;AD1vIwC;EAtBtC,iBAAA;EACA,gBAAA;EACA,wBAAA;EACA,qBAAA;ACoxIF;;AD/vIA,YAAA;AACA;EA1CE,wBAAA;KAAA,qBAAA;UAAA,gBAAA;EACA,mBAAA;EACA,iBAAA;EACA,qBAAA;EACA,yBAAA;EACA,cAAA;EACA,UAAA;EACA,qPACE;EAoCF,oBAAA;EACA,WAAA;EACA,mBAAA;EACA,uBAAA;EACA,eAAA;EACA,yBAAA;KAAA,sBAAA;UAAA,iBAAA;EACA,yCAAA;ACywIF;ADxwIE;EACE,qBAAA;EACA,2EAAA;AC0wIJ;ADxwIE;EAAW,0BAAA;EAA4B,0CAAA;AC4wIzC;AD3wIE;EAAa,YAAA;EAAa,mBAAA;EAAqB,oBAAA;ACgxIjD;;AD9wIwC;EAzCtC,mBAAA;EACA,gBAAA;EACA,uBAAA;EACA,sBAAA;AC2zIF;;ADrxIwC;EAzCtC,iBAAA;EACA,gBAAA;EACA,yBAAA;EACA,sBAAA;ACk0IF;;AD5xIwC;EAzCtC,kBAAA;EACA,gBAAA;EACA,oBAAA;EACA,qBAAA;ACy0IF;;ADnyIwC;EAzCtC,iBAAA;EACA,gBAAA;EACA,wBAAA;EACA,qBAAA;ACg1IF;;ADvyIE;EACE,yBD9WK;EC+WL,cAAA;EACA,yBAAA;AC0yIJ;ADzyII;EAAU,gEAAA;EAAsC,yCAAA;AC6yIpD;;AD3yIE;EACE,6BAAA;EACA,cDrXK;ECsXL,qBDtXK;AEoqJT;AD7yII;EAAU,yBDvXL;ECuX+B,cAAA;ACizIxC;;AD/yIE;EACE,6BAAA;EACA,cD3XK;EC4XL,yBAAA;ACkzIJ;ADjzII;EAAU,yCAAA;ACozId;;ADp0IE;EACE,iDD9WK;EC+WL,cAAA;EACA,yBAAA;ACu0IJ;ADt0II;EAAU,+EAAA;EAAsC,yCAAA;AC00IpD;;ADx0IE;EACE,6BAAA;EACA,sCDrXK;ECsXL,6CDtXK;AEisJT;AD10II;EAAU,iDDvXL;ECuX+B,cAAA;AC80IxC;;AD50IE;EACE,6BAAA;EACA,sCD3XK;EC4XL,yBAAA;AC+0IJ;AD90II;EAAU,yCAAA;ACi1Id;;ADj2IE;EACE,iDD9WK;EC+WL,cAAA;EACA,yBAAA;ACo2IJ;ADn2II;EAAU,kFAAA;EAAsC,yCAAA;ACu2IpD;;ADr2IE;EACE,6BAAA;EACA,sCDrXK;ECsXL,6CDtXK;AE8tJT;ADv2II;EAAU,iDDvXL;ECuX+B,cAAA;AC22IxC;;ADz2IE;EACE,6BAAA;EACA,sCD3XK;EC4XL,yBAAA;AC42IJ;AD32II;EAAU,yCAAA;AC82Id;;AD93IE;EACE,yBD9WK;EC+WL,cAAA;EACA,yBAAA;ACi4IJ;ADh4II;EAAU,uCAAA;EAAsC,yCAAA;ACo4IpD;;ADl4IE;EACE,6BAAA;EACA,cDrXK;ECsXL,qBDtXK;AE2vJT;ADp4II;EAAU,yBDvXL;ECuX+B,cAAA;ACw4IxC;;ADt4IE;EACE,6BAAA;EACA,cD3XK;EC4XL,yBAAA;ACy4IJ;ADx4II;EAAU,wCAAA;AC24Id;;AD35IE;EACE,yBD9WK;EC+WL,cAAA;EACA,yBAAA;AC85IJ;AD75II;EAAU,oEAAA;EAAsC,yCAAA;ACi6IpD;;AD/5IE;EACE,6BAAA;EACA,cDrXK;ECsXL,qBDtXK;AEwxJT;ADj6II;EAAU,yBDvXL;ECuX+B,cAAA;ACq6IxC;;ADn6IE;EACE,6BAAA;EACA,cD3XK;EC4XL,yBAAA;ACs6IJ;ADr6II;EAAU,0CAAA;ACw6Id;;ADx7IE;EACE,yBD9WK;EC+WL,cAAA;EACA,yBAAA;AC27IJ;AD17II;EAAU,sCAAA;EAAsC,yCAAA;AC87IpD;;AD57IE;EACE,6BAAA;EACA,cDrXK;ECsXL,qBDtXK;AEqzJT;AD97II;EAAU,yBDvXL;ECuX+B,cAAA;ACk8IxC;;ADh8IE;EACE,6BAAA;EACA,cD3XK;EC4XL,yBAAA;ACm8IJ;ADl8II;EAAU,yCAAA;ACq8Id;;ADr9IE;EACE,yBD9WK;EC+WL,cAAA;EACA,yBAAA;ACw9IJ;ADv9II;EAAU,mEAAA;EAAsC,yCAAA;AC29IpD;;ADz9IE;EACE,6BAAA;EACA,cDrXK;ECsXL,qBDtXK;AEk1JT;AD39II;EAAU,yBDvXL;ECuX+B,cAAA;AC+9IxC;;AD79IE;EACE,6BAAA;EACA,cD3XK;EC4XL,yBAAA;ACg+IJ;AD/9II;EAAU,yCAAA;ACk+Id;;ADl/IE;EACE,yBD9WK;EC+WL,cAAA;EACA,yBAAA;ACq/IJ;ADp/II;EAAU,oEAAA;EAAsC,yCAAA;ACw/IpD;;ADt/IE;EACE,6BAAA;EACA,cDrXK;ECsXL,qBDtXK;AE+2JT;ADx/II;EAAU,yBDvXL;ECuX+B,cAAA;AC4/IxC;;AD1/IE;EACE,6BAAA;EACA,cD3XK;EC4XL,yBAAA;AC6/IJ;AD5/II;EAAU,0CAAA;AC+/Id;;AD/gJE;EACE,yBD9WK;EC+WL,cAAA;EACA,yBAAA;ACkhJJ;ADjhJI;EAAU,0CAAA;EAAsC,yCAAA;ACqhJpD;;ADnhJE;EACE,6BAAA;EACA,cDrXK;ECsXL,qBDtXK;AE44JT;ADrhJI;EAAU,yBDvXL;ECuX+B,cAAA;ACyhJxC;;ADvhJE;EACE,6BAAA;EACA,cD3XK;EC4XL,yBAAA;AC0hJJ;ADzhJI;EAAU,2CAAA;AC4hJd;;AD5iJE;EACE,yBD9WK;EC+WL,cAAA;EACA,yBAAA;AC+iJJ;AD9iJI;EAAU,yDAAA;EAAsC,yCAAA;ACkjJpD;;ADhjJE;EACE,6BAAA;EACA,cDrXK;ECsXL,qBDtXK;AEy6JT;ADljJI;EAAU,yBDvXL;ECuX+B,cAAA;ACsjJxC;;ADpjJE;EACE,6BAAA;EACA,cD3XK;EC4XL,yBAAA;ACujJJ;ADtjJI;EAAU,wCAAA;ACyjJd;;ADzkJE;EACE,yBD9WK;EC+WL,cAAA;EACA,yBAAA;AC4kJJ;AD3kJI;EAAU,0CAAA;EAAsC,yCAAA;AC+kJpD;;AD7kJE;EACE,6BAAA;EACA,cDrXK;ECsXL,qBDtXK;AEs8JT;AD/kJI;EAAU,yBDvXL;ECuX+B,cAAA;ACmlJxC;;ADjlJE;EACE,6BAAA;EACA,cD3XK;EC4XL,yBAAA;AColJJ;ADnlJI;EAAU,2CAAA;ACslJd;;ADtmJE;EACE,yBD9WK;EC+WL,cAAA;EACA,yBAAA;ACymJJ;ADxmJI;EAAU,uBAAA;EAAsC,yCAAA;AC4mJpD;;AD1mJE;EACE,6BAAA;EACA,cDrXK;ECsXL,qBDtXK;AEm+JT;AD5mJI;EAAU,yBDvXL;ECuX+B,cAAA;ACgnJxC;;AD9mJE;EACE,6BAAA;EACA,cD3XK;EC4XL,yBAAA;ACinJJ;ADhnJI;EAAU,qCAAA;ACmnJd;;ADnoJE;EACE,yBD9WK;EC+WL,cAAA;EACA,yBAAA;ACsoJJ;ADroJI;EAAU,0CAAA;EAAsC,yCAAA;ACyoJpD;;ADvoJE;EACE,6BAAA;EACA,cDrXK;ECsXL,qBDtXK;AEggKT;ADzoJI;EAAU,yBDvXL;ECuX+B,cAAA;AC6oJxC;;AD3oJE;EACE,6BAAA;EACA,cD3XK;EC4XL,yBAAA;AC8oJJ;AD7oJI;EAAU,2CAAA;ACgpJd;;ADhqJE;EACE,yBD9WK;EC+WL,cAAA;EACA,yBAAA;ACmqJJ;ADlqJI;EAAU,mEAAA;EAAsC,yCAAA;ACsqJpD;;ADpqJE;EACE,6BAAA;EACA,cDrXK;ECsXL,qBDtXK;AE6hKT;ADtqJI;EAAU,yBDvXL;ECuX+B,cAAA;AC0qJxC;;ADxqJE;EACE,6BAAA;EACA,cD3XK;EC4XL,yBAAA;AC2qJJ;AD1qJI;EAAU,2CAAA;AC6qJd;;AD7rJE;EACE,yBD9WK;EC+WL,cAAA;EACA,yBAAA;ACgsJJ;AD/rJI;EAAU,0CAAA;EAAsC,yCAAA;ACmsJpD;;ADjsJE;EACE,6BAAA;EACA,cDrXK;ECsXL,qBDtXK;AE0jKT;ADnsJI;EAAU,yBDvXL;ECuX+B,cAAA;ACusJxC;;ADrsJE;EACE,6BAAA;EACA,cD3XK;EC4XL,yBAAA;ACwsJJ;ADvsJI;EAAU,2CAAA;AC0sJd;;AD1tJE;EACE,yBD9WK;EC+WL,cAAA;EACA,yBAAA;AC6tJJ;AD5tJI;EAAU,mEAAA;EAAsC,yCAAA;ACguJpD;;AD9tJE;EACE,6BAAA;EACA,cDrXK;ECsXL,qBDtXK;AEulKT;ADhuJI;EAAU,yBDvXL;ECuX+B,cAAA;ACouJxC;;ADluJE;EACE,6BAAA;EACA,cD3XK;EC4XL,yBAAA;ACquJJ;ADpuJI;EAAU,yCAAA;ACuuJd;;ADvvJE;EACE,6BD9WK;EC+WL,cAAA;EACA,yBAAA;AC0vJJ;ADzvJI;EAAU,kCAAA;EAAsC,yCAAA;AC6vJpD;;AD3vJE;EACE,6BAAA;EACA,kBDrXK;ECsXL,yBDtXK;AEonKT;AD7vJI;EAAU,6BDvXL;ECuX+B,cAAA;ACiwJxC;;AD/vJE;EACE,6BAAA;EACA,kBD3XK;EC4XL,yBAAA;ACkwJJ;ADjwJI;EAAU,qCAAA;ACowJd;;ADhwJA,+EAAA;AACA,+EAAA;AACA,+EAAA;AACA;EACE,oBAAA;EACA,sBAAA;EACA,yBAAA;EACA,mBAAA;ACmwJF;;ADhwJE;EACE,sCAAA;EACA,qBD7YK;EC8YL,cAAA;ACmwJJ;;ADtwJE;EACE,4EAAA;EACA,6CD7YK;EC8YL,cAAA;ACywJJ;;AD5wJE;EACE,mEAAA;EACA,6CD7YK;EC8YL,cAAA;AC+wJJ;;ADlxJE;EACE,uCAAA;EACA,qBD7YK;EC8YL,cAAA;ACqxJJ;;ADxxJE;EACE,sCAAA;EACA,qBD7YK;EC8YL,cAAA;AC2xJJ;;AD9xJE;EACE,oCAAA;EACA,qBD7YK;EC8YL,cAAA;ACiyJJ;;ADpyJE;EACE,sCAAA;EACA,qBD7YK;EC8YL,cAAA;ACuyJJ;;AD1yJE;EACE,sCAAA;EACA,qBD7YK;EC8YL,cAAA;AC6yJJ;;ADhzJE;EACE,uCAAA;EACA,qBD7YK;EC8YL,cAAA;ACmzJJ;;ADtzJE;EACE,uCAAA;EACA,qBD7YK;EC8YL,cAAA;ACyzJJ;;AD5zJE;EACE,iBAAA;EACA,qBD7YK;EC8YL,cAAA;AC+zJJ;;ADl0JE;EACE,oCAAA;EACA,qBD7YK;EC8YL,cAAA;ACq0JJ;;ADx0JE;EACE,uCAAA;EACA,qBD7YK;EC8YL,cAAA;AC20JJ;;AD90JE;EACE,sCAAA;EACA,qBD7YK;EC8YL,cAAA;ACi1JJ;;ADp1JE;EACE,uCAAA;EACA,qBD7YK;EC8YL,cAAA;ACu1JJ;;AD11JE;EACE,uCAAA;EACA,qBD7YK;EC8YL,cAAA;AC61JJ;;ADh2JE;EACE,qCAAA;EACA,yBD7YK;EC8YL,cAAA;ACm2JJ;;AD/1JA,+EAAA;AACA,+EAAA;AACA,+EAAA;AACA;EACE,mBAAA;EACA,yBAAA;EACA,qBAAA;EACA,yCAAA;EACA,yDAAA;ACk2JF;;ADh2JA;EAAoB,0CAAA;ACo2JpB;;ADl2J2B;EAAqB,yCDjXtC;AEutKV;;ADt2J2B;EAAqB,yCDjXtC;AE2tKV;;AD12J2B;EAAqB,0CDjXtC;AE+tKV;;AD92J2B;EAAqB,yCDjXtC;AEmuKV;;ADl3J2B;EAAqB,2CDjXtC;AEuuKV;;ADp3JE;EAAwB,qBDhajB;AEwxKT;;ADv3JE;EAAoB,yBDjab;AE4xKT;;AD53JE;EAAwB,6CDhajB;AEgyKT;;AD/3JE;EAAoB,iDDjab;AEoyKT;;ADp4JE;EAAwB,6CDhajB;AEwyKT;;ADv4JE;EAAoB,iDDjab;AE4yKT;;AD54JE;EAAwB,qBDhajB;AEgzKT;;AD/4JE;EAAoB,yBDjab;AEozKT;;ADp5JE;EAAwB,qBDhajB;AEwzKT;;ADv5JE;EAAoB,yBDjab;AE4zKT;;AD55JE;EAAwB,qBDhajB;AEg0KT;;AD/5JE;EAAoB,yBDjab;AEo0KT;;ADp6JE;EAAwB,qBDhajB;AEw0KT;;ADv6JE;EAAoB,yBDjab;AE40KT;;AD56JE;EAAwB,qBDhajB;AEg1KT;;AD/6JE;EAAoB,yBDjab;AEo1KT;;ADp7JE;EAAwB,qBDhajB;AEw1KT;;ADv7JE;EAAoB,yBDjab;AE41KT;;AD57JE;EAAwB,qBDhajB;AEg2KT;;AD/7JE;EAAoB,yBDjab;AEo2KT;;ADp8JE;EAAwB,qBDhajB;AEw2KT;;ADv8JE;EAAoB,yBDjab;AE42KT;;AD58JE;EAAwB,qBDhajB;AEg3KT;;AD/8JE;EAAoB,yBDjab;AEo3KT;;ADp9JE;EAAwB,qBDhajB;AEw3KT;;ADv9JE;EAAoB,yBDjab;AE43KT;;AD59JE;EAAwB,qBDhajB;AEg4KT;;AD/9JE;EAAoB,yBDjab;AEo4KT;;ADp+JE;EAAwB,qBDhajB;AEw4KT;;ADv+JE;EAAoB,yBDjab;AE44KT;;AD5+JE;EAAwB,qBDhajB;AEg5KT;;AD/+JE;EAAoB,yBDjab;AEo5KT;;ADp/JE;EAAwB,yBDhajB;AEw5KT;;ADv/JE;EAAoB,6BDjab;AE45KT;;ADx/JA,+EAAA;AACA,+EAAA;AACA,+EAAA;AACA;EACE,eAAA;EACA,QAAA;EACA,aAAA;EACA,mBAAA;EACA,uBAAA;EACA,aAAA;EACA,aAAA;AC2/JF;;ADz/JA;EAAc,aAAA;AC6/Jd;;AD3/JA;EAAkB,kBAAA;EAAoB,QAAA;EAAU,8BAAA;ACigKhD;;AD//JA;EACE,kBAAA;EACA,uBAA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","file":"main.css"} \ No newline at end of file diff --git a/rss/css/main.scss b/rss/css/main.scss new file mode 100644 index 0000000..4c87112 --- /dev/null +++ b/rss/css/main.scss @@ -0,0 +1,873 @@ +@import 'variables'; +@import url('https://fonts.googleapis.com/css2?family=Nunito:ital,wght@0,200..1000;1,200..1000&display=swap'); + +/* ========================================================================== */ +/* Reset + Base */ +/* ========================================================================== */ +*, +*::before, +*::after { margin: 0; padding: 0; box-sizing: border-box; } + +html, body { height: 100%; } + +body { + font-family: $font-family-base; + font-size: map-get($font-sizes, base); + line-height: map-get($line-heights, normal); + color: map-get($colors, dark); + background: map-get($colors, white); + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; +} + +a { color: inherit; text-decoration: none; } +img, svg, video, canvas { display: block; max-width: 100%; height: auto; } + +/* ========================================================================== */ +/* Typography Utilities */ +/* ========================================================================== */ +@each $k, $v in $font-sizes { .text-#{$k} { font-size: $v; } } +@each $k, $v in $font-weights { .fw-#{$k} { font-weight: $v; } } +@each $k, $v in $line-heights { .lh-#{$k} { line-height: $v; } } + +.text-left { text-align: left; } +.text-center { text-align: center; } +.text-right { text-align: right; } +.text-uppercase { text-transform: uppercase; } +.text-lowercase { text-transform: lowercase; } +.text-capitalize { text-transform: capitalize; } +.text-underline { text-decoration: underline; } +.text-line-through { text-decoration: line-through; } +.text-no-decoration { text-decoration: none; } + +/* ========================================================================== */ +/* Color Utilities */ +/* ========================================================================== */ +@each $name, $color in $colors { + .text-#{$name} { color: $color !important; } + .bg-#{$name} { background-color: $color !important; } + .border-#{$name} { border-color: $color !important; } +} + +/* ========================================================================== */ +/* Spacing Utilities (Margin / Padding) */ +/* ========================================================================== */ +@each $k, $v in $space { + .m-#{$k} { margin: $v !important; } + .mt-#{$k} { margin-top: $v !important; } + .mr-#{$k} { margin-right: $v !important; } + .mb-#{$k} { margin-bottom: $v !important; } + .ml-#{$k} { margin-left: $v !important; } + .mx-#{$k} { margin-left: $v !important; margin-right: $v !important; } + .my-#{$k} { margin-top: $v !important; margin-bottom: $v !important; } + + .p-#{$k} { padding: $v !important; } + .pt-#{$k} { padding-top: $v !important; } + .pr-#{$k} { padding-right: $v !important; } + .pb-#{$k} { padding-bottom: $v !important; } + .pl-#{$k} { padding-left: $v !important; } + .px-#{$k} { padding-left: $v !important; padding-right: $v !important; } + .py-#{$k} { padding-top: $v !important; padding-bottom: $v !important; } +} + +/* Responsive spacing */ +@each $bp, $w in $breakpoints { + @media (min-width: $w) { + @each $k, $v in $space { + .#{$bp}-m-#{$k} { margin: $v !important; } + .#{$bp}-mt-#{$k} { margin-top: $v !important; } + .#{$bp}-mr-#{$k} { margin-right: $v !important; } + .#{$bp}-mb-#{$k} { margin-bottom: $v !important; } + .#{$bp}-ml-#{$k} { margin-left: $v !important; } + .#{$bp}-mx-#{$k} { margin-left: $v !important; margin-right: $v !important; } + .#{$bp}-my-#{$k} { margin-top: $v !important; margin-bottom: $v !important; } + + .#{$bp}-p-#{$k} { padding: $v !important; } + .#{$bp}-pt-#{$k} { padding-top: $v !important; } + .#{$bp}-pr-#{$k} { padding-right: $v !important; } + .#{$bp}-pb-#{$k} { padding-bottom: $v !important; } + .#{$bp}-pl-#{$k} { padding-left: $v !important; } + .#{$bp}-px-#{$k} { padding-left: $v !important; padding-right: $v !important; } + .#{$bp}-py-#{$k} { padding-top: $v !important; padding-bottom: $v !important; } + } + } +} + +/* ========================================================================== */ +/* Sizing Utilities (Width / Height) */ +/* ========================================================================== */ +@each $k, $v in $size-percent { .w-#{$k} { width: $v; } .h-#{$k} { height: $v; } } +@each $k, $v in $size-px { .wpx-#{$k} { width: $v; } .hpx-#{$k} { height: $v; } } +@each $k, $v in $size-rem { .wrem-#{$k} { width: $v; } .hrem-#{$k} { height: $v; } } +@each $k, $v in $size-vw { .wvw-#{$k} { width: $v; } } +@each $k, $v in $size-vh { .hvh-#{$k} { height: $v; } } +@each $k, $v in $size-dvh { .hdvh-#{$k} { height: $v; } } +@each $k, $v in $size-svh { .hsvh-#{$k} { height: $v; } } +@each $k, $v in $size-lvh { .hlvh-#{$k} { height: $v; } } + +/* Responsive sizing */ +@each $bp, $w in $breakpoints { + @media (min-width: $w) { + @each $k, $v in $size-percent { .#{$bp}-w-#{$k} { width: $v; } .#{$bp}-h-#{$k} { height: $v; } } + } +} + +/* ========================================================================== */ +/* Display + Layout */ +/* ========================================================================== */ +@each $t in $display-types { .d-#{$t} { display: $t !important; } } + +.container { + width: 100%; + margin-inline: auto; + padding-inline: $container-padding; + @each $bp, $mw in $container-max-widths { + @media (min-width: map-get($breakpoints, $bp)) { max-width: $mw; } + } +} + +/* Container variants */ +.container-fluid { + width: 100%; + margin-inline: auto; + padding-inline: $container-padding; + max-width: none; +} + +.container-bleed { + width: 100vw; + margin-left: 50%; + transform: translateX(-50%); + padding-inline: 0; +} + +.container-narrow { + width: 100%; + margin-inline: auto; + padding-inline: $container-padding; + max-width: clamp(36rem, 70vw, 56rem); +} + +.container-wide { + width: 100%; + margin-inline: auto; + padding-inline: $container-padding; + max-width: clamp(72rem, 92vw, 100rem); +} +.container-fluid { + width: 100%; + margin-inline: auto; + padding-inline: $container-padding; + max-width: none; +} + +.container-bleed { + width: 100vw; + margin-left: 50%; + transform: translateX(-50%); + padding-inline: 0; +} + +.container-narrow { + width: 100%; + margin-inline: auto; + padding-inline: $container-padding; + max-width: clamp(36rem, 70vw, 56rem); +} + +.container-wide { + width: 100%; + margin-inline: auto; + padding-inline: $container-padding; + max-width: clamp(72rem, 92vw, 100rem); +} +.container-fluid { + width: 100%; + margin-inline: auto; + padding-inline: $container-padding; + max-width: none; +} + +.container-bleed { + width: 100vw; + margin-left: 50%; + transform: translateX(-50%); + padding-inline: 0; +} + +.container-narrow { + width: 100%; + margin-inline: auto; + padding-inline: $container-padding; + max-width: clamp(36rem, 70vw, 56rem); +} + +.container-wide { + width: 100%; + margin-inline: auto; + padding-inline: $container-padding; + max-width: clamp(72rem, 92vw, 100rem); +} + +/* Flex grid */ +.row { + display: flex; + flex-wrap: wrap; + margin-inline: map-get($gutters, 3); + margin-block: map-get($gutters, 3); +} +.col { flex: 1 0 0%; padding-inline: map-get($gutters, 3); padding-block: map-get($gutters, 3); } +.col-auto { flex: 0 0 auto; width: auto; padding-inline: map-get($gutters, 3); padding-block: map-get($gutters, 3); } + +@for $i from 1 through $grid-columns { + .col-#{$i} { + flex: 0 0 percentage($i / $grid-columns); + max-width: percentage($i / $grid-columns); + padding-inline: map-get($gutters, 3); + padding-block: map-get($gutters, 3); + } +} +@each $bp, $w in $breakpoints { + @media (min-width: $w) { + .col-#{$bp} { flex: 1 0 0%; padding-inline: map-get($gutters, 3); padding-block: map-get($gutters, 3); } + .col-#{$bp}-auto { flex: 0 0 auto; width: auto; padding-inline: map-get($gutters, 3); padding-block: map-get($gutters, 3); } + @for $i from 1 through $grid-columns { + .col-#{$bp}-#{$i} { + flex: 0 0 percentage($i / $grid-columns); + max-width: percentage($i / $grid-columns); + padding-inline: map-get($gutters, 3); + padding-block: map-get($gutters, 3); + } + } + } +} + +/* Flex helpers */ +.flex { display: flex; } +.inline-flex { display: inline-flex; } +@each $k, $v in $flex-directions { .flex-#{$k} { display: flex; flex-direction: $v; } } +@each $k, $v in $justify-content-values { .justify-#{$k} { display: flex; justify-content: $v; } } +@each $k, $v in $align-items-values { .items-#{$k} { display: flex; align-items: $v; } } + +/* Borders + Radius + Shadows */ +@each $k, $v in $border-widths { .border-#{$k} { border-width: $v; border-style: solid; border-color: currentColor; } } +.border { border: 1px solid currentColor; } +.border-top { border-top: 1px solid currentColor; } +.border-right { border-right: 1px solid currentColor; } +.border-bottom { border-bottom: 1px solid currentColor; } +.border-left { border-left: 1px solid currentColor; } + +@each $k, $v in $radii { .rounded-#{$k} { border-radius: $v; } } +.rounded { border-radius: map-get($radii, md); } +.rounded-top { border-top-left-radius: map-get($radii, md); border-top-right-radius: map-get($radii, md); } +.rounded-bottom { border-bottom-left-radius: map-get($radii, md); border-bottom-right-radius: map-get($radii, md); } +.rounded-left { border-top-left-radius: map-get($radii, md); border-bottom-left-radius: map-get($radii, md); } +.rounded-right { border-top-right-radius: map-get($radii, md); border-bottom-right-radius: map-get($radii, md); } + +@each $k, $v in $shadows { .shadow-#{$k} { box-shadow: $v !important; } } +@each $k, $v in $drop-shadows { .drop-shadow-#{$k} { box-shadow: $v !important; } } + +/* Z-Index */ +.z-base { z-index: map-get($z, base); } +.z-dropdown { z-index: map-get($z, dropdown); } +.z-overlay { z-index: map-get($z, overlay); } +.z-modal { z-index: map-get($z, modal); } +.z-toast { z-index: map-get($z, toast); } + +/* ========================================================================== */ +/* Grid System (CSS Grid Utilities) */ +/* ========================================================================== */ +.grid { display: grid !important; } +.inline-grid { display: inline-grid !important; } + +@for $i from 1 through 12 { .grid-cols-#{$i} { grid-template-columns: repeat($i, 1fr) !important; } } +.grid-cols-none { grid-template-columns: none !important; } + +@each $bp, $width in $breakpoints { + @media (min-width: $width) { + @for $i from 1 through 12 { + .#{$bp}-grid-cols-#{$i} { grid-template-columns: repeat($i, 1fr) !important; } + } + } +} + +@for $i from 1 through 12 { .grid-rows-#{$i} { grid-template-rows: repeat($i, 1fr) !important; } } +.grid-rows-none { grid-template-rows: none !important; } + +.grid-auto-fit-sm { grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr)) !important; } +.grid-auto-fit-md { grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)) !important; } +.grid-auto-fit-lg { grid-template-columns: repeat(auto-fit, minmax(20rem, 1fr)) !important; } +.grid-auto-fill-sm { grid-template-columns: repeat(auto-fill, minmax(10rem, 1fr)) !important; } +.grid-auto-fill-md { grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)) !important; } +.grid-auto-fill-lg { grid-template-columns: repeat(auto-fill, minmax(20rem, 1fr)) !important; } + +.grid-align-center { align-items: center !important; justify-items: center !important; } +.grid-align-start { align-items: start !important; justify-items: start !important; } +.grid-align-end { align-items: end !important; justify-items: end !important; } +.grid-align-stretch { align-items: stretch !important; justify-items: stretch !important; } + +.place-self-center { place-self: center !important; } +.place-self-start { place-self: start !important; } +.place-self-end { place-self: end !important; } +.place-self-stretch { place-self: stretch !important; } + +.grid-flow-row { grid-auto-flow: row !important; } +.grid-flow-col { grid-auto-flow: column !important; } +.grid-flow-row-dense { grid-auto-flow: row dense !important; } +.grid-flow-col-dense { grid-auto-flow: column dense !important; } + +/* Auto rows/cols sizing */ +.grid-auto-cols-min { grid-auto-columns: min-content !important; } +.grid-auto-cols-max { grid-auto-columns: max-content !important; } +.grid-auto-cols-fr { grid-auto-columns: 1fr !important; } +.grid-auto-rows-min { grid-auto-rows: min-content !important; } +.grid-auto-rows-max { grid-auto-rows: max-content !important; } +.grid-auto-rows-fr { grid-auto-rows: 1fr !important; } + +/* ========================================================================== */ +/* Control Blueprints (shared by inputs/buttons/etc.) */ +/* ========================================================================== */ +@mixin control-base { + appearance: none; + border-style: map-get($control-border, style); + border-width: map-get($control-border, width); + border-color: map-get($control-colors, border); + background-color: map-get($control-colors, bg); + color: map-get($control-colors, fg); + outline: 0; + transition: + background-color map-get($timings, base) map-get($easings, in-out), + color map-get($timings, base) map-get($easings, in-out), + border-color map-get($timings, base) map-get($easings, in-out), + box-shadow map-get($timings, base) map-get($easings, in-out), + transform map-get($timings, fast) map-get($easings, out); +} + +@mixin control-size($size) { + $props: map-get($control-sizes, $size); + font-size: map-get($props, font-size); + line-height: map-get($props, line-height); + padding: map-get($props, py) map-get($props, px); + border-radius: map-get($props, radius); +} + +/* Inputs */ +.input, select, textarea { + @include control-base; + width: 100%; + &:focus { + border-color: map-get($control-colors, focus); + box-shadow: 0 0 0 3px map-get($control-colors, ring); + background-color: map-get($colors, white); + } + &:disabled { + background-color: map-get($control-colors, disabled-bg); + opacity: .6; + cursor: not-allowed; + } + &::placeholder { color: map-get($control-colors, placeholder); } +} +@each $size, $props in $control-sizes { .input-#{$size} { @include control-size($size); } } + +/* Buttons */ +.btn { + @include control-base; + display: inline-flex; + width: auto; + align-items: center; + justify-content: center; + cursor: pointer; + user-select: none; + box-shadow: map-get($shadows, 1); + &:focus-visible { + border-color: map-get($control-colors, focus); + box-shadow: 0 0 0 3px map-get($control-colors, ring), map-get($shadows, 2); + } + &:active { transform: translateY(1px); box-shadow: map-get($shadows, 3); } + &:disabled { opacity: .6; cursor: not-allowed; pointer-events: none; } +} +@each $size, $props in $control-sizes { .btn-#{$size} { @include control-size($size); } } + +@each $name, $color in $colors { + .btn-#{$name} { + background-color: $color; + color: if(lightness($color) > 60%, map-get($colors, dark), map-get($colors, white)); + border-color: transparent; + &:hover { background-color: darken($color, 8%); box-shadow: map-get($shadows, 2); } + } + .btn-outline-#{$name} { + background-color: transparent; + color: $color; + border-color: $color; + &:hover { background-color: $color; color: if(lightness($color) > 60%, map-get($colors, dark), map-get($colors, white)); } + } + .btn-ghost-#{$name} { + background-color: transparent; + color: $color; + border-color: transparent; + &:hover { background-color: rgba($color, .12); } + } +} + +/* ========================================================================== */ +/* Alerts */ +/* ========================================================================== */ +.alert { + padding: map-get($space, 2) map-get($space, 3); + border-radius: map-get($radii, md); + border: 1px solid map-get($control-colors, border); + background: map-get($colors, accent-white); +} +@each $name, $color in $colors { + .alert-#{$name} { + background: mix($color, map-get($colors, white), 12%); + border-color: $color; + color: if(lightness($color) > 60%, map-get($colors, dark), map-get($colors, dark)); + } +} + +/* ========================================================================== */ +/* Cards (with custom borders and shadows) */ +/* ========================================================================== */ +.card { + background: map-get($colors, white); + border: 1px solid map-get($control-colors, border); + border-radius: map-get($radii, lg); + box-shadow: map-get($shadows, 1); + transition: box-shadow map-get($timings, base) map-get($easings, in-out); +} +.card-hover:hover { box-shadow: map-get($shadows, 3); } + +@each $k, $v in $shadows { .card-shadow-#{$k} { box-shadow: $v; } } +@each $name, $color in $colors { + .card-border-#{$name} { border-color: $color; } + .card-bg-#{$name} { background-color: $color; } +} + +/* ========================================================================== */ +/* Modals */ +/* ========================================================================== */ +.modal { + position: fixed; + inset: 0; + display: none; + align-items: center; + justify-content: center; + padding: map-get($space, 3); + z-index: map-get($z, modal); +} +.modal.open { display: flex; } + +.modal__overlay { position: absolute; inset: 0; background: rgba(map-get($colors, black), .5); } + +.modal__dialog { + position: relative; + width: min(720px, 100%); + background: map-get($colors, white); + border: 1px solid map-get($control-colors, border); + border-radius: map-get($radii, lg); + box-shadow: map-get($shadows, 5); + padding: map-get($space, 3); +} + +.modal__header { display: flex; align-items: center; justify-content: space-between; gap: map-get($space, 2); margin-bottom: map-get($space, 2); } +.modal__title { font-size: map-get($font-sizes, lg); font-weight: map-get($font-weights, semibold); } +.modal__close { @extend .btn; @extend .btn-sm; background: transparent; box-shadow: none; } + +/* ========================================================================== */ +/* Pills */ +/* ========================================================================== */ +.pill { + display: inline-flex; + align-items: center; + gap: map-get($space, 1); + padding: map-get($space, 1) map-get($space, 2); + border-radius: map-get($radii, full); + border: 1px solid map-get($control-colors, border); + background: map-get($colors, accent-white); + font-size: map-get($font-sizes, sm); + line-height: map-get($line-heights, normal); +} +@each $name, $color in $colors { + .pill-#{$name} { + background: mix($color, map-get($colors, white), 12%); + color: if(lightness($color) > 60%, map-get($colors, dark), map-get($colors, white)); + border-color: $color; + } +} + +/* ========================================================================== */ +/* Accordions */ +/* ========================================================================== */ +.accordion { border: 1px solid map-get($control-colors, border); border-radius: map-get($radii, lg); overflow: hidden; } +.accordion__item + .accordion__item { border-top: 1px solid map-get($control-colors, border); } + +.accordion__header { + width: 100%; + display: flex; + align-items: center; + justify-content: space-between; + gap: map-get($space, 2); + padding: map-get($space, 2) map-get($space, 3); + cursor: pointer; + background: map-get($colors, accent-white); + border: none; +} +.accordion__title { font-weight: map-get($font-weights, medium); } +.accordion__icon { transition: transform map-get($timings, base) map-get($easings, in-out); } + +.accordion__panel { + display: grid; + grid-template-rows: 0fr; + transition: grid-template-rows map-get($timings, base) map-get($easings, in-out); +} +.accordion__content { overflow: hidden; padding: 0 map-get($space, 3); } + +.accordion__item.is-open .accordion__panel { grid-template-rows: 1fr; } +.accordion__item.is-open .accordion__content { padding: map-get($space, 2) map-get($space, 3) map-get($space, 3); } +.accordion__item.is-open .accordion__icon { transform: rotate(180deg); } + +/* ========================================================================== */ +/* Stack Utilities */ +/* ========================================================================== */ +.stack > * + * { margin-top: map-get($space, 3); } +@each $k, $v in $space { .stack-#{$k} > * + * { margin-top: $v; } } + +/* ========================================================================== */ +/* Transitions & Animations */ +/* ========================================================================== */ +.transition-all { transition: all map-get($timings, base) map-get($easings, in-out); } +.transition-fast { transition-duration: map-get($timings, fast); } +.transition-slow { transition-duration: map-get($timings, slow); } + +@keyframes fade-in { from { opacity: 0; } to { opacity: 1; } } +@keyframes slide-up { from { transform: translateY(10px); opacity: 0; } to { transform: translateY(0); opacity: 1; } } + +.animate-fade-in { animation: fade-in .3s map-get($easings, out) both; } +.animate-slide-up { animation: slide-up .35s map-get($easings, out) both; } + +/* ========================================================================== */ +/* Tooltips */ +/* ========================================================================== */ +.tooltip { position: relative; display: inline-block; cursor: help; } +.tooltip::after { + content: attr(data-tip); + position: absolute; + bottom: calc(100% + 6px); + left: 50%; + transform: translateX(-50%); + background: map-get($colors, dark); + color: map-get($colors, white); + padding: .25rem .5rem; + font-size: map-get($font-sizes, sm); + border-radius: map-get($radii, sm); + white-space: nowrap; + opacity: 0; + pointer-events: none; + transition: opacity map-get($timings, base) map-get($easings, in-out); + z-index: map-get($z, dropdown); +} +.tooltip:hover::after { opacity: 1; } + +/* ========================================================================== */ +/* Tabs */ +/* ========================================================================== */ +.tabs { display: flex; gap: map-get($space, 2); border-bottom: 1px solid map-get($control-colors, border); } +.tab { + padding: map-get($space, 2) map-get($space, 3); + cursor: pointer; + border-bottom: 2px solid transparent; + transition: + border-color map-get($timings, base) map-get($easings, in-out), + color map-get($timings, base) map-get($easings, in-out); +} +.tab.active { border-color: map-get($colors, primary); color: map-get($colors, primary); } + +/* ========================================================================== */ +/* Transform & Scale Utilities */ +/* ========================================================================== */ +.scale-90 { transform: scale(.9); } +.scale-95 { transform: scale(.95); } +.scale-100 { transform: scale(1); } +.scale-105 { transform: scale(1.05); } +.scale-110 { transform: scale(1.1); } + +.rotate-90 { transform: rotate(90deg); } +.rotate-180 { transform: rotate(180deg); } +.rotate-270 { transform: rotate(270deg); } + +.skew-x-6 { transform: skewX(6deg); } +.skew-y-6 { transform: skewY(6deg); } + +/* ========================================================================== */ +/* Shadow, Blur, and Glow Utilities */ +/* ========================================================================== */ +.shadow-none { box-shadow: none !important; } +.blur-sm { filter: blur(2px); } +.blur-md { filter: blur(4px); } +.blur-lg { filter: blur(8px); } +.glow { box-shadow: 0 0 12px rgba(map-get($colors, accent), .5); } + +/* ========================================================================== */ +/* Dark Mode (opt-in via .theme-dark) */ +/* ========================================================================== */ +.theme-dark { background: map-get($colors, dark); color: map-get($colors, light); } +.theme-dark .card, +.theme-dark .modal__dialog { + background: map-get($colors, secondary); + border-color: map-get($colors, muted); + color: map-get($colors, light); +} +.theme-dark .input, +.theme-dark select, +.theme-dark textarea { + background: map-get($colors, secondary); + color: map-get($colors, light); + border-color: map-get($colors, muted); +} +.theme-dark .tabs { border-bottom-color: map-get($colors, muted); } +.theme-dark .tab.active { border-color: map-get($colors, primary); color: map-get($colors, primary); } + +/* ========================================================================== */ +/* Scroll Utilities */ +/* ========================================================================== */ +.scroll-y { overflow-y: auto !important; } +.scroll-x { overflow-x: auto !important; } +.scroll-hidden { overflow: hidden !important; } + +/* ========================================================================== */ +/* Spinner */ +/* ========================================================================== */ +@keyframes ui-spinner { to { transform: rotate(360deg); } } + +.spinner { + display: inline-block; + width: 1rem; + height: 1rem; + border-radius: 50%; + border-style: solid; + border-width: 2px; + border-color: map-get($colors, dark); + border-left-color: transparent !important; + animation: ui-spinner 1s linear infinite; +} +@each $name, $color in $colors { + .spinner-#{$name} { border-color: $color; border-left-color: transparent !important; } +} +.spinner-sm { width: .875rem; height: .875rem; border-width: 2px; } +.spinner-md { width: 1.25rem; height: 1.25rem; border-width: 2px; } +.spinner-lg { width: 1.75rem; height: 1.75rem; border-width: 3px; } +.spinner-xl { width: 2.25rem; height: 2.25rem; border-width: 4px; } + +/* ========================================================================== */ +/* Visibility + Accessibility */ +/* ========================================================================== */ +.visible { visibility: visible !important; } +.invisible { visibility: hidden !important; } + +.sr-only { + position: absolute !important; + width: 1px !important; + height: 1px !important; + padding: 0 !important; + margin: -1px !important; + overflow: hidden !important; + clip: rect(0, 0, 0, 0) !important; + white-space: nowrap !important; + border: 0 !important; +} + +/* ========================================================================== */ +/* Overflow + Text Truncation */ +/* ========================================================================== */ +.overflow-hidden { overflow: hidden !important; } +.overflow-auto { overflow: auto !important; } +.overflow-scroll { overflow: scroll !important; } +.truncate { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } + +/* ========================================================================== */ +/* Opacity */ +/* ========================================================================== */ +.opacity-0 { opacity: 0; } +.opacity-25 { opacity: .25; } +.opacity-50 { opacity: .5; } +.opacity-75 { opacity: .75; } +.opacity-100 { opacity: 1; } + +/* ========================================================================== */ +/* Cursor + Pointer Events */ +/* ========================================================================== */ +.cursor-default { cursor: default !important; } +.cursor-pointer { cursor: pointer !important; } +.cursor-not-allowed { cursor: not-allowed !important; } +.pointer-none { pointer-events: none !important; } +.pointer-auto { pointer-events: auto !important; } + +/* ========================================================================== */ +/* Position + Inset */ +/* ========================================================================== */ +.relative { position: relative !important; } +.absolute { position: absolute !important; } +.fixed { position: fixed !important; } +.sticky { position: sticky !important; } + +.inset-0 { inset: 0 !important; } +.top-0 { top: 0 !important; } +.right-0 { right: 0 !important; } +.bottom-0 { bottom: 0 !important; } +.left-0 { left: 0 !important; } + +/* ========================================================================== */ +/* Flex Wrapping + Gap */ +/* ========================================================================== */ +.wrap { flex-wrap: wrap !important; } +.nowrap { flex-wrap: nowrap !important; } +.wrap-reverse { flex-wrap: wrap-reverse !important; } + +@each $k, $v in $space { + .gap-#{$k} { gap: $v !important; } + .row-gap-#{$k} { row-gap: $v !important; } + .col-gap-#{$k} { column-gap: $v !important; } +} + +/* ========================================================================== */ +/* Responsive Reverse (small-down) */ +/* ========================================================================== */ +.sm-reverse { + @media (max-width: map-get($breakpoints, md)) { + display: flex; + flex-direction: column-reverse; + } +} + +/* ========================================================================== */ +/* Aspect Ratios + Object Fit */ +/* ========================================================================== */ +.ratio { position: relative; width: 100%; height: 0; overflow: hidden; } +.ratio > * { position: absolute; inset: 0; width: 100%; height: 100%; } + +.ratio-16x9 { padding-bottom: 56.25%; } +.ratio-4x3 { padding-bottom: 75%; } +.ratio-1x1 { padding-bottom: 100%; } + +.object-contain { object-fit: contain !important; } +.object-cover { object-fit: cover !important; } +.object-fill { object-fit: fill !important; } +.object-none { object-fit: none !important; } +.object-scale-down { object-fit: scale-down !important; } + +/* ========================================================================== */ +/* Hover Motion Helpers */ +/* ========================================================================== */ +.hover-raise { transition: transform map-get($timings, base) map-get($easings, in-out), box-shadow map-get($timings, base) map-get($easings, in-out); } +.hover-raise:hover { transform: translateY(-2px); box-shadow: map-get($shadows, 2); } + +.hover-glow { transition: box-shadow map-get($timings, base) map-get($easings, in-out); } +.hover-glow:hover { box-shadow: 0 0 0 3px map-get($control-colors, ring), map-get($shadows, 2); } + +/* ========================================================================== */ +/* Divider Utilities */ +/* ========================================================================== */ +.hr { width: 100%; height: 1px; background: map-get($control-colors, border); border: 0; } +.hr-dashed { height: 1px; border-top: 1px dashed map-get($control-colors, border); background: transparent; } + +/* ========================================================================== */ +/* Utility Badges (aliases of pills) */ +/* ========================================================================== */ +.badge { @extend .pill; } +@each $name, $color in $colors { .badge-#{$name} { @extend .pill-#{$name}; } } + +/* ========================================================================== */ +/* Quick Utility Aliases */ +/* ========================================================================== */ +.rel { position: relative; } +.no-click { pointer-events: none; } +.center { display: grid; place-items: center; } +.full-height { height: 100vh; } + + +/* ========================================================================== */ +/* Flex Grid Extensions */ +/* ========================================================================== */ + +.row.no-gutter { + margin-inline: 0; + margin-block: 0; + + > .col, + > [class^="col-"] { + padding-inline: 0; + padding-block: 0; + } +} + +.row.gx-0 { + margin-right: 0; + margin-left: 0; + + > .col, + > [class^="col-"] { + padding-right: 0; + padding-left: 0; + } +} + +.row.gy-0 { + margin-top: 0; + margin-bottom: 0; + + > .col, + > [class^="col-"] { + padding-top: 0; + padding-bottom: 0; + } +} + +.row-bleed { + margin-right: calc(#{$container-padding} * -1); + margin-left: calc(#{$container-padding} * -1); +} + +@each $bp, $width in $breakpoints { + @media (min-width: $width) { + .#{$bp}-row-center { justify-content: center; } + .#{$bp}-row-between { justify-content: space-between; } + .#{$bp}-row-around { justify-content: space-around; } + .#{$bp}-row-evenly { justify-content: space-evenly; } + } +} + + +/* ========================================================================== */ +/* CSS Grid Enhancements */ +/* ========================================================================== */ + +@for $i from 1 through 12 { + .grid-cols-#{$i} { grid-template-columns: repeat($i, 1fr) !important; } +} + +.grid-cols-none { grid-template-columns: none !important; } + +@for $i from 1 through 12 { + .grid-rows-#{$i} { grid-template-rows: repeat($i, 1fr) !important; } +} + +.grid-rows-none { grid-template-rows: none !important; } + +.grid-auto-fit-sm { grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr)) !important; } +.grid-auto-fit-md { grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)) !important; } +.grid-auto-fit-lg { grid-template-columns: repeat(auto-fit, minmax(20rem, 1fr)) !important; } + +.grid-auto-fill-sm { grid-template-columns: repeat(auto-fill, minmax(10rem, 1fr)) !important; } +.grid-auto-fill-md { grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)) !important; } +.grid-auto-fill-lg { grid-template-columns: repeat(auto-fill, minmax(20rem, 1fr)) !important; } + +.grid-align-center { align-items: center !important; justify-items: center !important; } +.grid-align-start { align-items: start !important; justify-items: start !important; } +.grid-align-end { align-items: end !important; justify-items: end !important; } +.grid-align-stretch { align-items: stretch !important; justify-items: stretch !important; } + +.grid-flow-row { grid-auto-flow: row !important; } +.grid-flow-col { grid-auto-flow: column !important; } +.grid-flow-row-dense { grid-auto-flow: row dense !important; } +.grid-flow-col-dense { grid-auto-flow: column dense !important; } diff --git a/rss/css/theme.css b/rss/css/theme.css new file mode 100644 index 0000000..32a76c7 --- /dev/null +++ b/rss/css/theme.css @@ -0,0 +1,528 @@ +/* Grid system */ +/* Breakpoints */ +/* Display types */ +/* Color palette */ +/* Spacing scale */ +/* Shadows (soft shadows) */ +/* Flex utilities */ +/* Button component variables */ +/* Typography */ +header { + display: flex; + justify-content: space-between; + padding: 0.7rem 2rem; + background-color: #ffffff; + align-items: center; + box-shadow: 0px 3px 5px 0px rgba(0, 0, 0, 0.12); + position: relative; + z-index: 999; + font-family: "Nunito", sans-serif; + background-color: #fff; +} +header .logo { + width: 100px; + display: flex; + z-index: 999; + cursor: pointer; + background-color: #fff; +} +header .logo img { + width: 100%; + height: 100%; +} +header nav { + display: flex; + position: relative; + z-index: -1; +} +@media (max-width: 768px) { + header nav { + top: -200%; + display: flex; + flex-direction: column; + position: absolute; + opacity: 0; + transition: all 0.3s; + } + header nav.open { + top: 99%; + left: 0; + width: 100%; + transition: all 0.3s; + background-color: #fff; + height: auto; + z-index: -1; + opacity: 1; + transition: all 0.3s; + box-shadow: 0px 3px 5px 0px rgba(0, 0, 0, 0.12); + } + header nav.open a { + padding: 7px 10px; + font-size: 16px; + } +} +header nav .menu-item { + color: #000000; + font-weight: 500; + margin-right: 15px; + display: inline-block; + position: relative; + transition: color 0.3s; + font-size: 16px; +} +header nav .menu-item.active { + font-weight: bold; +} +header nav .menu-item::after { + content: ""; + position: absolute; + top: 120%; + left: 0; + height: 2px; + width: 100%; + background: #aa0b3d; + transform: scaleX(0); + transform-origin: left; + transition: transform 0.3s; +} +header nav .menu-item:hover { + color: #aa0b3d; + cursor: pointer; +} +header nav .menu-item:hover::after { + transform: scaleX(1); +} +header .mobile-toggler { + background-color: #fff; + border: none; + font-size: 18px; +} +@media (min-width: 769px) { + header .mobile-toggler { + display: none; + } +} + +.home-banner { + height: calc(100vh - 55px); + padding: 50px 0; + display: flex; + background-color: #ffffff; + opacity: 0; + animation: slideUp 1s ease-in-out forwards; +} +.home-banner.no-height { + height: auto !important; +} +@media (max-width: 768px) { + .home-banner { + height: 100vh; + } +} +.home-banner .home-banner-inner { + flex: 1; + display: flex; + align-items: center; + width: 100%; +} +.home-banner .home-banner-inner .container { + height: 100%; +} +.home-banner .home-banner-inner .inner-row { + display: flex; + justify-content: space-between; + align-items: stretch; + height: 100%; +} +@media (max-width: 768px) { + .home-banner .home-banner-inner .inner-row { + flex-direction: column; + } +} +.home-banner .home-banner-inner .image-col { + flex: 0 0 45%; + display: flex; + flex-direction: column; + justify-content: center; +} +.home-banner .home-banner-inner .image-col img { + border-radius: 12px; + box-shadow: 0 4px 10px rgba(0, 0, 0, 0.18); +} +.home-banner .home-banner-inner .text-col { + flex: 0 0 40%; + display: flex; + flex-direction: column; + justify-content: center; + gap: 10px; +} +@media (max-width: 768px) { + .home-banner .home-banner-inner .text-col { + flex: 0 0 100%; + max-width: 100%; + text-align: center; + z-index: 9; + } +} +.home-banner .home-banner-inner .text-col .title { + font-weight: 800; + font-size: 3.7rem; + line-height: 1.2; + font-family: "Nunito", sans-serif; +} +@media (max-width: 768px) { + .home-banner .home-banner-inner .text-col .title { + font-size: 3.2rem; + } +} +.home-banner .home-banner-inner .text-col .lead { + font-size: 1.6rem; + font-weight: 400; +} +@media (max-width: 768px) { + .home-banner .home-banner-inner .text-col .lead { + font-size: 1.3rem; + } +} +.home-banner .home-banner-inner .text-col .cta-btn { + padding: 10px; + font-size: 1.4rem; +} +.home-banner .home-banner-inner .text-col .login-text { + display: inline-flex; + gap: 5px; + font-weight: 400; +} +.home-banner .home-banner-inner .text-col .login-text .login-link { + font-weight: 500; + text-decoration: underline; + cursor: pointer; +} +.home-banner .home-banner-inner .image-wrapper { + flex: 1; + display: flex; + align-items: center; + justify-content: center; + height: 100%; +} +@media (max-width: 768px) { + .home-banner .home-banner-inner .image-wrapper { + position: absolute; + top: 0; + left: 0; + z-index: 999; + height: 100%; + z-index: 1; + opacity: 0.1; + width: 100%; + } +} +.home-banner .home-banner-inner .image-wrapper img { + height: 100%; + width: 100%; + -o-object-fit: cover; + object-fit: cover; + display: block; +} + +.display-banner { + width: 100%; + padding: 120px 0px; +} +.display-banner.wedding-banner { + background-image: linear-gradient(rgba(0, 0, 0, 0.8), rgba(0, 0, 0, 0.8)), url("/rss/img/wedding.jpg"); + padding: 180px 0px; + background-position: center center; + background-size: cover; +} +.display-banner.kissing-banner { + background-image: linear-gradient(rgba(0, 0, 0, 0.8), rgba(0, 0, 0, 0.8)), url("/rss/img/couple-kissing.jpg"); + padding: 180px 0px; + background-position: center center; + background-size: cover; +} +.display-banner.moving-banner { + background-image: linear-gradient(rgba(0, 0, 0, 0.8), rgba(0, 0, 0, 0.8)), url("/rss/img/couple.jpg"); + background-position: center 40%; + background-size: cover; + padding: 180px 0px; +} + +footer { + background-color: #212529; + color: #fff; + display: flex; + padding: 25px 0px; + font-size: 14px; + font-weight: 300; +} +footer .logo { + width: 125px; + cursor: pointer; +} +footer ul { + list-style: none; +} + +.features-section h2 { + font-size: 1.8rem; + color: #212529; +} +.features-section .theme-card { + border-radius: 0.25rem; + overflow: hidden; + transition: transform 0.3s ease, box-shadow 0.3s ease; +} +.features-section .theme-card .card-header { + padding: 0.5rem; + text-align: center; +} +.features-section .theme-card .card-header img { + width: 125px; + height: 125px; + border-radius: 50%; + box-shadow: 0 2px 6px rgba(0, 0, 0, 0.16); + -o-object-fit: cover; + object-fit: cover; + margin: 0 auto; +} +.features-section .theme-card .card-header img.object-left { + -o-object-position: left center; + object-position: left center; +} +.features-section .theme-card .card-header img.object-center { + -o-object-position: center center; + object-position: center center; +} +.features-section .theme-card .card-header img.object-bottom { + -o-object-position: bottom center; + object-position: bottom center; +} +.features-section .theme-card .card-body { + padding: 1rem; + text-align: center; +} + +.styled-title { + font-family: "Nunito", sans-serif; +} +.styled-title.fw-900 { + font-weight: 900; +} +.styled-title.fw-600 { + font-weight: 600; +} + +.filter-section { + padding: 2rem 0; +} + +.filter-card { + background-color: #ffffff; + border-radius: 0.25rem; + box-shadow: 0 2px 6px rgba(0, 0, 0, 0.16); + padding: 1rem; + text-align: center; + transition: transform 0.3s ease, box-shadow 0.3s ease; + height: 100%; + margin: 15px 0px; +} + +.filter-icon { + font-size: 2.5rem; + margin-bottom: 1rem; + color: #aa0b3d; +} + +.filter-title { + font-size: 1.3rem; + font-weight: 500; + margin-bottom: 0.5rem; + color: #212529; +} + +.filter-text { + font-size: 1rem; + line-height: 1.4; +} + +/* Responsive adjustments */ +@media (max-width: 768px) { + .filter-card { + margin-bottom: 1.5rem; + } + .filter-icon { + font-size: 2rem; + } + .filter-title { + font-size: 1.1rem; + } +} +.rounded-col-image { + height: 450px; + width: 450px; + border-radius: 50%; + overflow: hidden; + display: flex; + justify-content: center; + align-items: center; + position: relative; +} +@media (max-width: 1200px) { + .rounded-col-image { + width: 300px; + height: 300px; + } +} +@media (max-width: 920px) { + .rounded-col-image { + width: 225px; + height: 225px; + } +} +.rounded-col-image:before { + content: ""; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + border-radius: 50%; + box-shadow: inset 0px 0px 27px -5px rgb(2, 2, 2); + z-index: 1; + pointer-events: none; +} +.rounded-col-image img { + -o-object-fit: cover; + object-fit: cover; + -o-object-position: right; + object-position: right; + width: 100%; + height: 100%; +} + +section h2 { + font-size: 1.8rem; + font-weight: 500; +} +section h3 { + font-size: 1.6rem; + font-weight: 500; +} +section p { + font-size: 1.2rem; + font-weight: 400; + line-height: 1.4; +} +section .bolder { + font-weight: 600; +} + +.section-animation { + opacity: 0; + transform: translateY(50px); + transition: opacity 0.8s ease-out, transform 0.8s ease-out; +} + +.section-animation.visible { + opacity: 1; + transform: translateY(0); +} + +.user-container { + width: 100%; + height: calc(100vh - 110px); + background-position: center; + background-repeat: no-repeat; + background-size: cover; + display: flex; + justify-content: center; + align-items: center; +} +@media (max-width: 768px) { + .user-container { + height: auto; + padding: 20px 0px; + } +} +@media (max-width: 768px) { + .user-container.alt .user-card { + display: flex; + flex-direction: column-reverse; + } +} +.user-container .user-card { + border-radius: 12px; + background-color: rgba(255, 255, 255, 0.9058823529); + display: flex; + width: 100%; + flex-direction: row; +} +@media (max-width: 768px) { + .user-container .user-card { + flex-direction: column; + height: auto; + } +} +.user-container .user-card .form { + background-color: #FFF; + padding: 20px 0px; + flex: 40%; + max-width: 40%; + display: flex; + align-items: center; + box-shadow: 0 4px 10px rgba(0, 0, 0, 0.18); + border-radius: 12px; +} +@media (max-width: 768px) { + .user-container .user-card .form { + flex: 100%; + max-width: 100%; + border-radius: 12px; + box-shadow: 0 2px 6px rgba(0, 0, 0, 0.16); + } +} +.user-container .user-card .form .user-form { + padding: 10px 15px; + width: 100%; +} +.user-container .user-card .text-col { + flex: 60%; + max-width: 60%; + padding: 30px 20px; +} +@media (max-width: 768px) { + .user-container .user-card .text-col { + flex: 100%; + max-width: 100%; + } +} +.user-container .user-card .text-col .logo { + display: flex; + flex-direction: row; + justify-content: center; +} +.user-container .user-card .text-col .logo img { + width: 180px; +} +.user-container .user-card .text-col .text { + margin-top: 20px; +} + +@media (prefers-reduced-motion: reduce) { + .section-animation { + opacity: 1; + transform: none; + transition: none; + } +} +@keyframes slideUp { + from { + transform: translateY(50px); + opacity: 0; + } + to { + transform: translateY(0); + opacity: 1; + } +}/*# sourceMappingURL=theme.css.map */ \ No newline at end of file diff --git a/rss/css/theme.css.map b/rss/css/theme.css.map new file mode 100644 index 0000000..8506ffd --- /dev/null +++ b/rss/css/theme.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["variables.scss","theme.scss","theme.css"],"names":[],"mappings":"AAAA,gBAAA;AAIA,gBAAA;AAmBA,kBAAA;AAGA,kBAAA;AAoBA,kBAAA;AAGA,2BAAA;AAoBA,mBAAA;AAyBA,+BAAA;AAQA,eAAA;ACpGA;EACE,aAAA;EACA,8BAAA;EACA,oBAAA;EACA,yBAAA;EACA,mBAAA;EACA,+CAAA;EACA,kBAAA;EACA,YAAA;EACA,iCAAA;EACA,sBAAA;ACQF;ADFE;EACE,YAAA;EACA,aAAA;EACA,YAAA;EACA,eAAA;EACA,sBAAA;ACIJ;ADFI;EACE,WAAA;EACA,YAAA;ACIN;ADAE;EACE,aAAA;EACA,kBAAA;EACA,WAAA;ACEJ;ADAI;EALF;IAMI,UAAA;IACA,aAAA;IACA,sBAAA;IACA,kBAAA;IACA,UAAA;IACA,oBAAA;ECGJ;EDDI;IACE,QAAA;IACA,OAAA;IACA,WAAA;IACA,oBAAA;IAEA,sBAAA;IACA,YAAA;IACA,WAAA;IACA,UAAA;IACA,oBAAA;IACA,+CAAA;ECEN;EDAM;IACE,iBAAA;IACA,eAAA;ECER;AACF;ADEI;EACE,cAAA;EACA,gBAAA;EACA,kBAAA;EACA,qBAAA;EACA,kBAAA;EACA,sBAAA;EACA,eAAA;ACAN;ADEM;EACE,iBAAA;ACAR;ADIM;EACE,WAAA;EACA,kBAAA;EACA,SAAA;EACA,OAAA;EACA,WAAA;EACA,WAAA;EACA,mBAAA;EACA,oBAAA;EACA,sBAAA;EACA,0BAAA;ACFR;ADKM;EACE,cAAA;EACA,eAAA;ACHR;ADMM;EACE,oBAAA;ACJR;ADSE;EACE,sBAAA;EACA,YAAA;EACA,eAAA;ACPJ;ADSI;EALF;IAMI,aAAA;ECNJ;AACF;;ADUA;EACE,0BAAA;EACA,eAAA;EACA,aAAA;EACA,yBAAA;EACA,UAAA;EACA,0CAAA;ACPF;ADUE;EACE,uBAAA;ACRJ;ADWE;EAbF;IAcI,aAAA;ECRF;AACF;ADUE;EACE,OAAA;EACA,aAAA;EACA,mBAAA;EACA,WAAA;ACRJ;ADWI;EACE,YAAA;ACTN;ADYI;EACE,aAAA;EACA,8BAAA;EACA,oBAAA;EACA,YAAA;ACVN;ADYM;EANF;IAOI,sBAAA;ECTN;AACF;ADYI;EACE,aAAA;EACA,aAAA;EACA,sBAAA;EACA,uBAAA;ACVN;ADYM;EACE,mBAAA;EACA,0CAAA;ACVR;ADcI;EACE,aAAA;EACA,aAAA;EACA,sBAAA;EACA,uBAAA;EACA,SAAA;ACZN;ADcM;EAPF;IAQI,cAAA;IACA,eAAA;IACA,kBAAA;IACA,UAAA;ECXN;AACF;ADaM;EACE,gBAAA;EACA,iBAAA;EACA,gBAAA;EACA,iCD/EW;AEoEnB;ADaQ;EANF;IAOI,iBAAA;ECVR;AACF;ADaM;EACE,iBAAA;EACA,gBAAA;ACXR;ADaQ;EAJF;IAKI,iBAAA;ECVR;AACF;ADaM;EACE,aAAA;EACA,iBAAA;ACXR;ADcM;EACE,oBAAA;EACA,QAAA;EACA,gBAAA;ACZR;ADcQ;EACE,gBAAA;EACA,0BAAA;EACA,eAAA;ACZV;ADiBI;EACE,OAAA;EACA,aAAA;EACA,mBAAA;EACA,uBAAA;EACA,YAAA;ACfN;ADiBM;EAPF;IAQI,kBAAA;IACA,MAAA;IACA,OAAA;IACA,YAAA;IACA,YAAA;IACA,UAAA;IACA,YAAA;IACA,WAAA;ECdN;AACF;ADgBM;EACE,YAAA;EACA,WAAA;EACA,oBAAA;KAAA,iBAAA;EACA,cAAA;ACdR;;ADuBA;EACE,WAAA;EACA,kBAAA;ACpBF;ADsBE;EACE,sGAAA;EAEA,kBAAA;EACA,kCAAA;EACA,sBAAA;ACrBJ;ADwBE;EACE,6GAAA;EAEA,kBAAA;EACA,kCAAA;EACA,sBAAA;ACvBJ;AD0BE;EACE,qGAAA;EAEA,+BAAA;EACA,sBAAA;EACA,kBAAA;ACzBJ;;AD8BA;EACE,yBAAA;EACA,WAAA;EACA,aAAA;EACA,iBAAA;EACA,eAAA;EACA,gBAAA;AC3BF;AD6BE;EACE,YAAA;EACA,eAAA;AC3BJ;AD8BE;EACE,gBAAA;AC5BJ;;ADkCE;EACE,iBAAA;EACA,cAAA;AC/BJ;ADkCE;EACE,sBAAA;EACA,gBAAA;EACA,qDAAA;AChCJ;ADkCI;EACE,eAAA;EACA,kBAAA;AChCN;ADkCM;EACE,YAAA;EACA,aAAA;EACA,kBAAA;EACA,yCAAA;EACA,oBAAA;KAAA,iBAAA;EACA,cAAA;AChCR;ADkCQ;EACE,+BAAA;KAAA,4BAAA;AChCV;ADmCQ;EACE,iCAAA;KAAA,8BAAA;ACjCV;ADoCQ;EACE,iCAAA;KAAA,8BAAA;AClCV;ADuCI;EACE,aAAA;EACA,kBAAA;ACrCN;;AD4CA;EACE,iCAAA;ACzCF;AD2CE;EACE,gBAAA;ACzCJ;AD4CE;EACE,gBAAA;AC1CJ;;AD+CA;EACE,eAAA;AC5CF;;AD+CA;EACE,yBAAA;EACA,sBAAA;EACA,yCAAA;EACA,aAAA;EACA,kBAAA;EACA,qDAAA;EACA,YAAA;EACA,gBAAA;AC5CF;;AD+CA;EACE,iBAAA;EACA,mBAAA;EACA,cAAA;AC5CF;;AD+CA;EACE,iBAAA;EACA,gBAAA;EACA,qBAAA;EACA,cAAA;AC5CF;;AD+CA;EACE,eAAA;EAEA,gBAAA;AC7CF;;ADgDA,2BAAA;AACA;EACE;IACE,qBAAA;EC7CF;EDgDA;IACE,eAAA;EC9CF;EDiDA;IACE,iBAAA;EC/CF;AACF;AD2DA;EACE,aAAA;EACA,YAAA;EACA,kBAAA;EACA,gBAAA;EACA,aAAA;EACA,uBAAA;EACA,mBAAA;EACA,kBAAA;ACzDF;AD2DE;EAVF;IAWI,YAAA;IACA,aAAA;ECxDF;AACF;AD0DE;EAfF;IAgBI,YAAA;IACA,aAAA;ECvDF;AACF;ADyDE;EACE,WAAA;EACA,kBAAA;EACA,MAAA;EACA,OAAA;EACA,WAAA;EACA,YAAA;EACA,kBAAA;EAGA,gDAAA;EACA,UAAA;EACA,oBAAA;ACvDJ;AD2DE;EACE,oBAAA;KAAA,iBAAA;EACA,yBAAA;KAAA,sBAAA;EACA,WAAA;EACA,YAAA;ACzDJ;;AD8DE;EACE,iBAAA;EACA,gBAAA;AC3DJ;AD8DE;EACE,iBAAA;EACA,gBAAA;AC5DJ;AD+DE;EACE,iBAAA;EACA,gBAAA;EACA,gBAAA;AC7DJ;ADgEE;EACE,gBAAA;AC9DJ;;ADkEA;EACE,UAAA;EACA,2BAAA;EACA,0DAAA;AC/DF;;ADkEA;EACE,UAAA;EACA,wBAAA;AC/DF;;ADkEA;EACE,WAAA;EACA,2BAAA;EAEA,2BAAA;EACA,4BAAA;EACA,sBAAA;EACA,aAAA;EACA,uBAAA;EACA,mBAAA;AChEF;ADkEE;EAXF;IAYI,YAAA;IACA,iBAAA;EC/DF;AACF;ADsEM;EAFF;IAGI,aAAA;IACA,8BAAA;ECnEN;AACF;ADuEE;EACE,mBAAA;EACA,mDAAA;EAEA,aAAA;EAGA,WAAA;EACA,mBAAA;ACxEJ;AD2EI;EAXF;IAYI,sBAAA;IACA,YAAA;ECxEJ;AACF;AD0EI;EACE,sBAAA;EACA,iBAAA;EAEA,SAAA;EACA,cAAA;EACA,aAAA;EACA,mBAAA;EACA,0CAAA;EACA,mBAAA;ACzEN;AD2EM;EAXF;IAYI,UAAA;IACA,eAAA;IACA,mBAAA;IACA,yCAAA;ECxEN;AACF;AD0EM;EACE,kBAAA;EACA,WAAA;ACxER;AD4EI;EACE,SAAA;EACA,cAAA;EACA,kBAAA;AC1EN;AD4EM;EALF;IAMI,UAAA;IACA,eAAA;ECzEN;AACF;AD2EM;EACE,aAAA;EACA,mBAAA;EACA,uBAAA;ACzER;AD2EQ;EACE,YAAA;ACzEV;AD6EM;EACE,gBAAA;AC3ER;;ADiFA;EACE;IACE,UAAA;IACA,eAAA;IACA,gBAAA;EC9EF;AACF;ADiFA;EACE;IACE,2BAAA;IACA,UAAA;EC/EF;EDkFA;IACE,wBAAA;IACA,UAAA;EChFF;AACF","file":"theme.css"} \ No newline at end of file diff --git a/rss/css/theme.scss b/rss/css/theme.scss new file mode 100644 index 0000000..65134f0 --- /dev/null +++ b/rss/css/theme.scss @@ -0,0 +1,604 @@ +@import 'variables'; + +header { + display: flex; + justify-content: space-between; + padding: 0.7rem 2rem; + background-color: #ffffff; + align-items: center; + box-shadow: 0px 3px 5px 0px rgba(0, 0, 0, 0.12); + position: relative; + z-index: 999; + font-family: "Nunito", sans-serif; + background-color: #fff; + + @media(max-width:768px) { + // height: 48px; + } + + .logo { + width: 100px; + display: flex; + z-index: 999; + cursor: pointer; + background-color: #fff; + + img { + width: 100%; + height: 100%; + } + } + + nav { + display: flex; + position: relative; + z-index: -1; + + @media(max-width:768px) { + top: -200%; + display: flex; + flex-direction: column; + position: absolute; + opacity: 0; + transition: all 0.3s; + + &.open { + top: 99%; + left: 0; + width: 100%; + transition: all 0.3s; + // padding: 5px 10px; + background-color: #fff; + height: auto; + z-index: -1; + opacity: 1; + transition: all 0.3s; + box-shadow: 0px 3px 5px 0px rgba(0, 0, 0, 0.12); + + a { + padding: 7px 10px; + font-size: 16px; + } + } + } + + .menu-item { + color: #000000; + font-weight: 500; + margin-right: 15px; + display: inline-block; + position: relative; + transition: color 0.3s; + font-size: 16px; + + &.active { + font-weight: bold; + // color: #your-brand-color; + } + + &::after { + content: ""; + position: absolute; + top: 120%; + left: 0; + height: 2px; + width: 100%; + background: #{map-get($colors, primary)}; + transform: scaleX(0); + transform-origin: left; + transition: transform 0.3s; + } + + &:hover { + color: #{map-get($colors, primary)}; + cursor: pointer; + } + + &:hover::after { + transform: scaleX(1); + } + } + } + + .mobile-toggler { + background-color: #fff; + border: none; + font-size: 18px; + + @media(min-width: 769px) { + display: none; + } + } +} + +.home-banner { + height: calc(100vh - 55px); + padding: 50px 0; + display: flex; + background-color: #{map-get($colors, white)}; + opacity: 0; + animation: slideUp 1s ease-in-out forwards; + // animation-delay: 0.2s; + + &.no-height{ + height: auto !important; + } + + @media(max-width:768px) { + height: 100vh; + } + + .home-banner-inner { + flex: 1; + display: flex; + align-items: center; + width: 100%; + + + .container { + height: 100%; + } + + .inner-row { + display: flex; + justify-content: space-between; + align-items: stretch; + height: 100%; + + @media(max-width:768px) { + flex-direction: column; + } + } + + .image-col { + flex: 0 0 45%; + display: flex; + flex-direction: column; + justify-content: center; + + img { + border-radius: 12px; + box-shadow: #{map-get($shadows, 3)}; + } + } + + .text-col { + flex: 0 0 40%; + display: flex; + flex-direction: column; + justify-content: center; + gap: 10px; + + @media(max-width: 768px) { + flex: 0 0 100%; + max-width: 100%; + text-align: center; + z-index: 9; + } + + .title { + font-weight: 800; + font-size: 3.7rem; + line-height: 1.2; + font-family: $font-family-base; + + @media(max-width:768px) { + font-size: 3.2rem; + } + } + + .lead { + font-size: 1.6rem; + font-weight: 400; + + @media(max-width:768px) { + font-size: 1.3rem; + } + } + + .cta-btn { + padding: 10px; + font-size: 1.4rem; + } + + .login-text { + display: inline-flex; + gap: 5px; + font-weight: 400; + + .login-link { + font-weight: 500; + text-decoration: underline; + cursor: pointer; + } + } + } + + .image-wrapper { + flex: 1; + display: flex; + align-items: center; + justify-content: center; + height: 100%; + + @media(max-width: 768px) { + position: absolute; + top: 0; + left: 0; + z-index: 999; + height: 100%; + z-index: 1; + opacity: 0.1; + width: 100%; + } + + img { + height: 100%; + width: 100%; + object-fit: cover; + display: block; + } + } + } +} + + + +// Banners +.display-banner { + width: 100%; + padding: 120px 0px; + + &.wedding-banner { + background-image: linear-gradient(rgba(0, 0, 0, 0.8), rgba(0, 0, 0, 0.8)), + url('/rss/img/wedding.jpg'); + padding: 180px 0px; + background-position: center center; + background-size: cover; + } + + &.kissing-banner { + background-image: linear-gradient(rgba(0, 0, 0, 0.8), rgba(0, 0, 0, 0.8)), + url('/rss/img/couple-kissing.jpg'); + padding: 180px 0px; + background-position: center center; + background-size: cover; + } + + &.moving-banner { + background-image: linear-gradient(rgba(0, 0, 0, 0.8), rgba(0, 0, 0, 0.8)), + url('/rss/img/couple.jpg'); + background-position: center 40%; + background-size: cover; + padding: 180px 0px; + } +} + +// Footer +footer { + background-color: #{map-get($colors, 'dark')}; + color: #fff; + display: flex; + padding: 25px 0px; + font-size: 14px; + font-weight: 300; + + .logo { + width: 125px; + cursor: pointer; + } + + ul { + list-style: none; + } +} + +.features-section { + + h2 { + font-size: map-get($font-sizes, xl); + color: map-get($colors, dark); + } + + .theme-card { + border-radius: map-get($border-radius-sizes, md); + overflow: hidden; + transition: transform 0.3s ease, box-shadow 0.3s ease; + + .card-header { + padding: #{map-get($spacing, "2")}; + text-align: center; + + img { + width: 125px; + height: 125px; + border-radius: 50%; + box-shadow: map-get($shadows, 2); + object-fit: cover; + margin: 0 auto; + + &.object-left { + object-position: left center; + } + + &.object-center { + object-position: center center; + } + + &.object-bottom { + object-position: bottom center; + } + } + } + + .card-body { + padding: #{map-get($spacing, "3")}; + text-align: center; + } + } +} + +// Fix before release +// Theme fonts +.styled-title { + font-family: "Nunito", sans-serif; + + &.fw-900 { + font-weight: 900; + } + + &.fw-600 { + font-weight: 600; + } +} + + +.filter-section { + padding: 2rem 0; +} + +.filter-card { + background-color: #{map-get($colors, white)}; + border-radius: map-get($border-radius-sizes, md); + box-shadow: map-get($shadows, 2); + padding: #{map-get($spacing, "3")}; + text-align: center; + transition: transform 0.3s ease, box-shadow 0.3s ease; + height: 100%; + margin: 15px 0px; +} + +.filter-icon { + font-size: 2.5rem; + margin-bottom: 1rem; + color: #{map-get($colors, primary)}; +} + +.filter-title { + font-size: 1.3rem; + font-weight: 500; + margin-bottom: 0.5rem; + color: map-get($colors, dark); +} + +.filter-text { + font-size: 1rem; + color: map-get($colors, gray); + line-height: 1.4; +} + +/* Responsive adjustments */ +@media (max-width: 768px) { + .filter-card { + margin-bottom: 1.5rem; + } + + .filter-icon { + font-size: 2rem; + } + + .filter-title { + font-size: 1.1rem; + } +} + + + + + + + +// Images + +// Rounded col images +.rounded-col-image { + height: 450px; + width: 450px; + border-radius: 50%; + overflow: hidden; + display: flex; + justify-content: center; + align-items: center; + position: relative; + + @media(max-width:1200px) { + width: 300px; + height: 300px; + } + + @media(max-width:920px) { + width: 225px; + height: 225px; + } + + &:before { + content: ''; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + border-radius: 50%; + -webkit-box-shadow: inset 0px 0px 27px -5px rgba(2, 2, 2, 1); + -moz-box-shadow: inset 0px 0px 27px -5px rgba(2, 2, 2, 1); + box-shadow: inset 0px 0px 27px -5px rgba(2, 2, 2, 1); + z-index: 1; + pointer-events: none; + + } + + img { + object-fit: cover; + object-position: right; + width: 100%; + height: 100%; + } +} + +section { + h2 { + font-size: 1.8rem; + font-weight: 500; + } + + h3 { + font-size: 1.6rem; + font-weight: 500; + } + + p { + font-size: 1.2rem; + font-weight: 400; + line-height: 1.4; + } + + .bolder { + font-weight: 600; + } +} + +.section-animation { + opacity: 0; + transform: translateY(50px); + transition: opacity 0.8s ease-out, transform 0.8s ease-out; +} + +.section-animation.visible { + opacity: 1; + transform: translateY(0); +} + +.user-container { + width: 100%; + height: calc(100vh - 110px); + // background-image: url('/rss/img/happy-kissing.jpg'); + background-position: center; + background-repeat: no-repeat; + background-size: cover; + display: flex; + justify-content: center; + align-items: center; + + @media(max-width: 768px) { + height: auto; + padding: 20px 0px; + } + + &.alt { + // background-image: url('/rss/img/happy-kissing-2.jpg') !important; + + .user-card { + + @media(max-width: 768px) { + display: flex; + flex-direction: column-reverse; + } + } + } + + .user-card { + border-radius: 12px; + background-color: #ffffffe7; + // box-shadow: #{map-get($shadows, 3)}; + display: flex; + // min-height: 60vh; + // height: 60vh; + width: 100%; + flex-direction: row; + // overflow: hidden; + + @media(max-width: 768px) { + flex-direction: column; + height: auto; + } + + .form { + background-color: #FFF; + padding: 20px 0px; + // height: 100%; + flex: 40%; + max-width: 40%; + display: flex; + align-items: center; + box-shadow: #{map-get($shadows, 3)}; + border-radius: 12px; + + @media(max-width: 768px) { + flex: 100%; + max-width: 100%; + border-radius: 12px; + box-shadow: #{map-get($shadows, 2)}; + } + + .user-form { + padding: 10px 15px; + width: 100%; + } + } + + .text-col { + flex: 60%; + max-width: 60%; + padding: 30px 20px; + + @media(max-width: 768px) { + flex: 100%; + max-width: 100%; + } + + .logo { + display: flex; + flex-direction: row; + justify-content: center; + + img { + width: 180px; + } + } + + .text { + margin-top: 20px; + } + } + } +} + +@media (prefers-reduced-motion: reduce) { + .section-animation { + opacity: 1; + transform: none; + transition: none; + } +} + +@keyframes slideUp { + from { + transform: translateY(50px); + opacity: 0; + } + + to { + transform: translateY(0); + opacity: 1; + } +} \ No newline at end of file diff --git a/rss/css/variables.css b/rss/css/variables.css new file mode 100644 index 0000000..bca6be8 --- /dev/null +++ b/rss/css/variables.css @@ -0,0 +1,3 @@ +/* ========================================================================== */ +/* Flexbox Maps */ +/* ========================================================================== *//*# sourceMappingURL=variables.css.map */ \ No newline at end of file diff --git a/rss/css/variables.css.map b/rss/css/variables.css.map new file mode 100644 index 0000000..f4645e8 --- /dev/null +++ b/rss/css/variables.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["variables.scss"],"names":[],"mappings":"AAwHA,+EAAA;AACA,+EAAA;AACA,+EAAA","file":"variables.css"} \ No newline at end of file diff --git a/rss/css/variables.scss b/rss/css/variables.scss new file mode 100644 index 0000000..a4efc6d --- /dev/null +++ b/rss/css/variables.scss @@ -0,0 +1,348 @@ +$font-family-base: "Nunito", sans-serif; +$font-family-mono: Menlo, Monaco, Consolas, "Courier New", monospace; + +$font-sizes: ( + xs: 0.75rem, + sm: 0.875rem, + base: 1.1rem, + lg: 1.35rem, + xl: 1.8rem, + xxl: 2.2rem +); + +$font-weights: ( + light: 300, + normal: 400, + medium: 500, + semibold: 600, + bold: 700 +); + +$line-heights: ( + tight: 1, + normal: 1.3, + heading: 1.5 +); + +$colors: ( + primary: #aa0b3d, + primary-alt: #aa0b3da8, + alt: #b5451896, + secondary: #333333, + success: #34b97b, + warning: #ffc107, + danger: #dc3545, + info: #0dcaf0, + light: #e5e5e5, + dark: #212529, + white: #ffffff, + black: #000000, + muted: #c7c7c7, + gray: #6c757d, + accent-white: #f7f7f7, + accent: #08bbbb, + transparent: transparent +); + +$space: ( + 0: 0, + 1: 0.25rem, + 2: 0.5rem, + 3: 1rem, + 4: 1.5rem, + 5: 3rem +); + +$radii: ( + none: 0, + sm: 0.125rem, + md: 0.25rem, + lg: 0.5rem, + xl: 1rem, + full: 9999px +); + +$border-widths: ( + 0: 0, + 1: 1px, + 2: 2px, + 3: 3px +); + +$shadows: ( + 1: 0 1px 3px rgba(0, 0, 0, 0.12), + 2: 0 2px 6px rgba(0, 0, 0, 0.16), + 3: 0 4px 10px rgba(0, 0, 0, 0.18), + 4: 0 6px 15px rgba(0, 0, 0, 0.20), + 5: 0 10px 24px rgba(0, 0, 0, 0.22) +); + +$drop-shadows: ( + 1: 0 2px 4px rgba(0, 0, 0, 0.14), + 2: 0 4px 8px rgba(0, 0, 0, 0.18), + 3: 0 8px 16px rgba(0, 0, 0, 0.20), + 4: 0 12px 24px rgba(0, 0, 0, 0.22), + 5: 0 20px 40px rgba(0, 0, 0, 0.24) +); + +$timings: ( + fast: 0.15s, + base: 0.25s, + slow: 0.4s +); + +$easings: ( + in-out: cubic-bezier(.4, 0, .2, 1), + out: cubic-bezier(0, 0, .2, 1), + in: cubic-bezier(.4, 0, 1, 1) +); + +$grid-columns: 12; +$container-padding: 1rem; + +$breakpoints: ( + sm: 576px, + md: 768px, + lg: 992px, + xl: 1200px, + xxl: 1400px, + xxxl: 1600px +); + +$container-max-widths: ( + sm: 540px, + md: 720px, + lg: 960px, + xl: 1140px, + xxl: 1320px, + xxxl: 1520px +); + +/* ========================================================================== */ +/* Flexbox Maps */ +/* ========================================================================== */ +$flex-directions: ( + row: row, + row-reverse: row-reverse, + column: column, + column-reverse: column-reverse +); + +$justify-content-values: ( + start: flex-start, + end: flex-end, + center: center, + between: space-between, + around: space-around, + evenly: space-evenly +); + +$align-items-values: ( + start: flex-start, + end: flex-end, + center: center, + baseline: baseline, + stretch: stretch +); + +$align-content-values: ( + start: flex-start, + end: flex-end, + center: center, + between: space-between, + around: space-around, + stretch: stretch +); + + +$gutters: ( + 0: map-get($space, 0), + 1: map-get($space, 1), + 2: map-get($space, 2), + 3: map-get($space, 3), + 4: map-get($space, 4), + 5: map-get($space, 5) +); + +$display-types: block, flex, inline, inline-block, inline-flex, grid, none; + +$z: ( + base: 1, + dropdown: 1000, + overlay: 1100, + modal: 1200, + toast: 1300 +); + +$control-colors: ( + bg: #fdfdfd, + fg: map-get($colors, secondary), + border: map-get($colors, muted), + border-hover: map-get($colors, secondary), + focus: map-get($colors, primary), + ring: rgba(map-get($colors, primary), 0.2), + placeholder: map-get($colors, gray), + disabled-bg: map-get($colors, light) +); + +$control-sizes: ( + sm: ( + font-size: map-get($font-sizes, sm), + line-height: map-get($line-heights, normal), + px: 0.5rem, + py: 0.25rem, + radius: map-get($radii, md) + ), + md: ( + font-size: map-get($font-sizes, base), + line-height: map-get($line-heights, normal), + px: 0.75rem, + py: 0.375rem, + radius: map-get($radii, md) + ), + lg: ( + font-size: map-get($font-sizes, lg), + line-height: map-get($line-heights, normal), + px: 1rem, + py: 0.5rem, + radius: map-get($radii, lg) + ), + xl: ( + font-size: map-get($font-sizes, xl), + line-height: map-get($line-heights, heading), + px: 1.25rem, + py: 0.75rem, + radius: map-get($radii, lg) + ) +); + +$control-border: ( + width: map-get($border-widths, 1), + style: solid +); + +$size-px: ( + 0: 0px, + 1: 1px, + 2: 2px, + 4: 4px, + 8: 8px, + 12: 12px, + 16: 16px, + 20: 20px, + 24: 24px, + 32: 32px, + 40: 40px, + 48: 48px, + 56: 56px, + 64: 64px, + 80: 80px, + 96: 96px, + 112: 112px, + 128: 128px, + 160: 160px, + 192: 192px, + 224: 224px, + 256: 256px, + 320: 320px, + 384: 384px, + 448: 448px, + 512: 512px +); + +$size-percent: ( + 0: 0%, + 25: 25%, + 33: 33.3333%, + 50: 50%, + 66: 66.6667%, + 75: 75%, + 100: 100% +); + +$size-rem: ( + 0: 0, + 1: 0.25rem, + 2: 0.5rem, + 3: 1rem, + 4: 1.5rem, + 5: 2rem, + 6: 3rem, + 7: 4rem, + 8: 6rem +); + +$size-vw: ( + 10: 10vw, + 20: 20vw, + 25: 25vw, + 33: 33vw, + 40: 40vw, + 50: 50vw, + 60: 60vw, + 66: 66vw, + 75: 75vw, + 80: 80vw, + 90: 90vw, + 100: 100vw +); + +$size-vh: ( + 10: 10vh, + 20: 20vh, + 25: 25vh, + 33: 33vh, + 40: 40vh, + 50: 50vh, + 60: 60vh, + 66: 66vh, + 75: 75vh, + 80: 80vh, + 90: 90vh, + 100: 100vh +); + +$size-dvh: ( + 10: 10dvh, + 20: 20dvh, + 25: 25dvh, + 33: 33dvh, + 40: 40dvh, + 50: 50dvh, + 60: 60dvh, + 66: 66dvh, + 75: 75dvh, + 80: 80dvh, + 90: 90dvh, + 100: 100dvh +); + +$size-svh: ( + 10: 10svh, + 20: 20svh, + 25: 25svh, + 33: 33svh, + 40: 40svh, + 50: 50svh, + 60: 60svh, + 66: 66svh, + 75: 75svh, + 80: 80svh, + 90: 90svh, + 100: 100svh +); + +$size-lvh: ( + 10: 10lvh, + 20: 20lvh, + 25: 25lvh, + 33: 33lvh, + 40: 40lvh, + 50: 50lvh, + 60: 60lvh, + 66: 66lvh, + 75: 75lvh, + 80: 80lvh, + 90: 90lvh, + 100: 100lvh +); diff --git a/rss/js/main.js b/rss/js/main.js new file mode 100644 index 0000000..573ae42 --- /dev/null +++ b/rss/js/main.js @@ -0,0 +1,261 @@ +// ========================================================================== +// HTTP helpers +// ========================================================================== +async function _post(formObj, target, func) { + try { + const body = await createFormData(formObj, target, func); + const res = await fetch('/rss/php/handler.php', { method: 'POST', body }); + + if (!res.ok) throw new Error(`HTTP ${res.status}`); + return await res.json(); + } catch (err) { + console.error('Post failed', err); + return { ok: false, error: String(err?.message || err) }; + } +} + +async function createFormData(data = {}, target, func) { + const fd = new FormData(); + try { + Object.entries(data || {}).forEach(([k, v]) => { + if (Array.isArray(v)) v.forEach((item) => fd.append(`${k}[]`, item)); + else if (v !== undefined && v !== null) fd.append(k, v); + }); + if (target !== undefined) fd.append('target', target); + if (func !== undefined) fd.append('function', func); + } catch (err) { + console.error('Incorrect use of object', err); + } + return fd; +} + +// ========================================================================== +// DOM helpers +// ========================================================================== +function createEl(tag, classArr = null, text = null, dataAttrs = null) { + const el = document.createElement(tag); + if (text !== null && text !== undefined) el.append(document.createTextNode(String(text))); + if (classArr && classArr.length) el.classList.add(...classArr); + if (dataAttrs && Object.keys(dataAttrs).length) { + for (const [k, v] of Object.entries(dataAttrs)) el.dataset[k] = v; + } + return el; +} + +function getRandomID() { + if (crypto?.randomUUID) return crypto.randomUUID(); + return Math.random().toString(36).slice(2); +} + +// ========================================================================== +// Alerts (aligned with .alert + .alert-{name}) +// ========================================================================== +/* + generateAlert('success', 'Saved!') →
Saved!
+ Options: { dismissAfter: ms, withClose: boolean, role: 'status'|'alert' } +*/ +async function generateAlert(type = 'info', text = '', opts = {}) { + const { dismissAfter = 0, withClose = false, role = 'status' } = opts; + const alert = createEl('div', ['alert', `alert-${type}`]); + alert.setAttribute('role', role); // status (polite) or alert (assertive) + alert.setAttribute('aria-live', role === 'alert' ? 'assertive' : 'polite'); + alert.append(document.createTextNode(text)); + + if (withClose) { + const btn = createEl('button', ['btn', 'btn-sm', 'btn-ghost-dark'], '×', { dismiss: 'alert' }); + btn.setAttribute('aria-label', 'Close alert'); + btn.style.marginLeft = '0.5rem'; + btn.addEventListener('click', () => alert.remove()); + alert.append(btn); + } + + if (dismissAfter > 0) setTimeout(() => alert.remove(), dismissAfter); + return alert; +} + +async function removeAlert(scope = document) { + scope.querySelectorAll('.alert').forEach((a) => a.remove()); +} + +// ========================================================================== +// On load +// ========================================================================== +document.addEventListener('DOMContentLoaded', () => { + // Menu toggler (pointerdown → click for better a11y; add ARIA state) + const toggler = document.getElementById('menu-toggler'); + const menu = document.getElementById('mainMenu'); + + if (toggler && menu) { + toggler.setAttribute('aria-expanded', 'false'); + toggler.setAttribute('aria-controls', 'mainMenu'); + + const toggleMenu = () => { + const isOpen = menu.classList.toggle('open'); + toggler.setAttribute('aria-expanded', String(isOpen)); + }; + + toggler.addEventListener('click', toggleMenu); + toggler.addEventListener('keydown', (e) => { + if (e.key === 'Enter' || e.key === ' ') { e.preventDefault(); toggleMenu(); } + }); + } + + // Section reveal + const sections = document.querySelectorAll('section'); + const observer = new IntersectionObserver( + (entries, obs) => { + entries.forEach((entry) => { + if (entry.isIntersecting) { + entry.target.classList.add('visible'); + obs.unobserve(entry.target); + } + }); + }, + { threshold: 0.05, rootMargin: '0px 0px -50px 0px' } + ); + + sections.forEach((section) => { + section.classList.add('section-animation'); + observer.observe(section); + }); + + (() => { + function resolveTarget(el) { + const viaData = el.getAttribute('data-target'); + const viaHref = el.getAttribute('href'); + if (viaData) return document.querySelector(viaData); + if (viaHref && viaHref.startsWith('#')) return document.querySelector(viaHref); + // Fallback: if only one modal exists and no selector provided + const all = document.querySelectorAll('.modal'); + return all.length === 1 ? all[0] : null; + } + + function trapFocus(modal, e) { + const focusables = modal.querySelectorAll('a,button,input,textarea,select,[tabindex]:not([tabindex="-1"])'); + if (!focusables.length) return; + const first = focusables[0], last = focusables[focusables.length - 1]; + if (e.shiftKey && document.activeElement === first) { last.focus(); e.preventDefault(); } + else if (!e.shiftKey && document.activeElement === last) { first.focus(); e.preventDefault(); } + } + + let lastActive = null; + function openModal(modal) { + if (!modal) return; + lastActive = document.activeElement; + modal.classList.add('open'); + modal.setAttribute('aria-hidden', 'false'); + (modal.querySelector('.modal__dialog') || modal).focus({ preventScroll: true }); + modal.addEventListener('keydown', onKeyDown); + } + function closeModal(modal) { + if (!modal) return; + modal.classList.remove('open'); + modal.setAttribute('aria-hidden', 'true'); + modal.removeEventListener('keydown', onKeyDown); + if (lastActive) lastActive.focus({ preventScroll: true }); + } + function onKeyDown(e) { + const modal = e.currentTarget; + if (e.key === 'Escape') closeModal(modal); + if (e.key === 'Tab') trapFocus(modal, e); + } + + // Openers + document.querySelectorAll('.modal-open').forEach(btn => { + btn.addEventListener('click', (e) => { + const modal = resolveTarget(btn); + if (modal) openModal(modal); + e.preventDefault(); + }); + btn.addEventListener('keydown', (e) => { + if (e.key === 'Enter' || e.key === ' ') { e.preventDefault(); btn.click(); } + }); + }); + + // Closers (overlay or close button) + document.addEventListener('click', (e) => { + const overlay = e.target.closest('.modal__overlay'); + const closeBtn = e.target.closest('.modal__close'); + if (!overlay && !closeBtn) return; + const modal = e.target.closest('.modal'); + if (modal) closeModal(modal); + }); +})(); + +(() => { + function getTargetId(tab) { + const href = tab.getAttribute('href'); + if (href && href.startsWith('#')) return href.slice(1); + const aria = tab.getAttribute('aria-controls'); + if (aria) return aria; + return null; + } + + document.querySelectorAll('.tabs').forEach(tabs => { + const tabEls = tabs.querySelectorAll('.tab'); + if (!tabEls.length) return; + + // If panels are used, they should be siblings elsewhere with .tab-panel + function activateTab(tab) { + // Toggle active tab + tabEls.forEach(t => t.classList.toggle('active', t === tab)); + + // Panels (optional) + const targetId = getTargetId(tab); + const panels = document.querySelectorAll('.tab-panel'); + if (panels.length) { + panels.forEach(p => { + const match = p.id && targetId && p.id === targetId; + p.hidden = !match; + }); + } + } + + // Initial state: keep existing .active or default to first + const current = tabs.querySelector('.tab.active') || tabEls[0]; + if (current) activateTab(current); + + tabEls.forEach(tab => { + tab.setAttribute('role', 'tab'); + tab.addEventListener('click', (e) => { + activateTab(tab); + if (tab.hasAttribute('href')) e.preventDefault(); // prevent jump for href="#id" + }); + tab.addEventListener('keydown', (e) => { + if (e.key === 'Enter' || e.key === ' ') { e.preventDefault(); tab.click(); } + // Optional arrow key UX within the same .tabs group + if (e.key === 'ArrowRight' || e.key === 'ArrowLeft') { + e.preventDefault(); + const arr = Array.from(tabEls); + const i = arr.indexOf(tab); + const next = e.key === 'ArrowRight' ? (i + 1) % arr.length : (i - 1 + arr.length) % arr.length; + arr[next].focus(); + } + }); + }); + }); +})(); + +}); + +document.querySelectorAll('.accordion').forEach(acc => { + const single = acc.classList.contains('accordion--single'); + + acc.querySelectorAll('.accordion__header').forEach(btn => { + btn.addEventListener('click', () => { + const item = btn.closest('.accordion__item'); + const isOpen = item.classList.contains('is-open'); + + if (single) { + acc.querySelectorAll('.accordion__item.is-open').forEach(other => { + if (other !== item) other.classList.remove('is-open'); + }); + } + item.classList.toggle('is-open', !isOpen); + }); + + btn.addEventListener('keydown', (e) => { + if (e.key === 'Enter' || e.key === ' ') { e.preventDefault(); btn.click(); } + }); + }); +}); diff --git a/rss/json/pages/404.json b/rss/json/pages/404.json new file mode 100644 index 0000000..123b510 --- /dev/null +++ b/rss/json/pages/404.json @@ -0,0 +1,9 @@ +{ + "title": "TITLE", + "long_desc": "DESC", + "short_desc": "SHORT_DESC", + "template": "404", + "restricted": false, + "redirect_login": false, + "robots": "noindex" +} \ No newline at end of file diff --git a/rss/json/pages/index.json b/rss/json/pages/index.json new file mode 100644 index 0000000..902461f --- /dev/null +++ b/rss/json/pages/index.json @@ -0,0 +1,8 @@ +{ + "title": "Listings", + "long_desc": "Testing the description!", + "short_desc": "Test desc", + "template": "listings", + "restricted": false, + "redirect_login": false +} \ No newline at end of file diff --git a/rss/php/autoload.php b/rss/php/autoload.php new file mode 100644 index 0000000..d2a06c4 --- /dev/null +++ b/rss/php/autoload.php @@ -0,0 +1,11 @@ +conn = $conn; + } + + public function validateVar($val){ + if(isset($val) && !empty($val) && $val){ + return true; + }else{ + return false; + } + } + + protected function createResponse($status, $message = null, $info = null){ + $resp = new stdClass(); + $resp->status = $status; + $resp->message = $message; + $resp->info = $info; + return $resp; + } +} \ No newline at end of file diff --git a/rss/php/class/Users.php b/rss/php/class/Users.php new file mode 100644 index 0000000..aa36580 --- /dev/null +++ b/rss/php/class/Users.php @@ -0,0 +1,178 @@ +conn = $conn; + } + + public function login(){ + if($this->isAuth()){ + return $this->createResponse('success', 'Logged in'); + }else{ + if($this->validateVar($this->email) && $this->validateVar($this->psw)){ + $stmt = $this->conn->prepare('SELECT id, psw FROM users WHERE email = :email'); + $stmt->bindValue(':email', $this->email); + $stmt->execute(); + if($user = $stmt->fetch(PDO::FETCH_ASSOC)){ + if(password_verify($this->psw, $user['psw'])){ + $auth_hash = bin2hex(random_bytes(16)); + $this->id = intval($user['id']); + setcookie("user_hash", $auth_hash, [ + 'expires' => time() + 2678400, + 'path' => '/', + // 'secure' => true, // Enable on publish + 'httponly' => true, + 'samesite' => 'Strict', + 'domain' => $_SERVER['HTTP_HOST'] + ]); + + setcookie("usid", $this->id, [ + 'expires' => time() + 2678400, + 'path' => '/', + // 'secure' => true, // Enable on publish + 'httponly' => false, + 'samesite' => 'Strict', + 'domain' => $_SERVER['HTTP_HOST'] + ]); + + $stmt = $this->conn->prepare('INSERT INTO user_sessions (user_hash, user_id, login_ip) VALUES (:user_hash, :user_id, :login_ip)'); + $stmt->bindValue(':user_hash', $auth_hash); + $stmt->bindValue(':user_id', $user['id']); + $stmt->bindValue(':login_ip', $_SERVER['REMOTE_ADDR']); + $stmt->execute(); + return $this->createResponse('success', 'Logged in'); + }else{ + return $this->createResponse('fail', 'Incorrect details'); + } + }else{ + return $this->createResponse('fail', 'Incorrect details'); + } + }else{ + return $this->createResponse('fail', 'Please fill out all the fields'); + } + } + } + + public function logout(){ + if(!$this->isAuth()){ + return true; + } + + $stmt = $this->conn->prepare('DELETE FROM user_sessions WHERE user_hash = :user_hash AND user_id = :user_id AND login_ip = :login_ip'); + $stmt->bindValue(':user_hash', $_COOKIE['user_hash']); + $stmt->bindValue(':user_id', intval($_COOKIE['usid'])); + $stmt->bindValue(':login_ip', $_SERVER['REMOTE_ADDR']); + $stmt->execute(); + + if(isset($_SERVER['HTTP_COOKIE'])) { + $cookies = explode(';', $_SERVER['HTTP_COOKIE']); + foreach ($cookies as $cookie) { + $parts = explode('=', $cookie); + $name = trim($parts[0]); + setcookie($name, '', time() - 1000); + setcookie($name, '', time() - 1000, '/'); + setcookie($name, '', time() - 1000, '/', $_SERVER['HTTP_HOST']); + } + session_destroy(); + } + } + + public function create_user(){ + // Validate inputs + if(!$this->validateVar($this->fName)){ + return $this->createResponse('fail', 'Please enter your first name'); + } + + if(!$this->validateVar($this->lName)){ + return $this->createResponse('fail', 'Please enter your last name'); + } + + if(!$this->validateVar($this->email)){ + return $this->createResponse('fail', 'Please enter your email'); + } + + if($this->email != $this->cemail){ + return $this->createResponse('fail', 'The email adresses do not match'); + } + + if(!filter_var($this->email, FILTER_VALIDATE_EMAIL)){ + return $this->createResponse('fail', 'Please enter a valid email'); + } + + if($this->psw != $this->cpsw){ + return $this->createResponse('fail', 'Please enter a valid password'); + } + + if(strlen($this->psw) < 6){ + return $this->createResponse('fail', 'Your password needs to be at least 6 characters'); + } + + $stm = $this->conn->prepare('SELECT * FROM users WHERE email = :email'); + $stm->bindValue(':email', $this->email); + $stm->execute(); + + if($stm->rowCount()){ + return $this->createResponse('fail', 'Email already exists'); + } + + $password = password_hash(trim($this->psw), PASSWORD_BCRYPT, array('cost' => 12)); + + $stmt = $this->conn->prepare('INSERT INTO users (fname, lname, email, psw) VALUES (:fname, :lname, :email, :psw)'); + $stmt->bindValue(':fname', trim($this->fName)); + $stmt->bindValue(':lname', trim($this->lName)); + $stmt->bindValue(':email', trim($this->email)); + $stmt->bindValue(':psw', $password); + $stmt->execute(); + + if($stmt->rowCount()){ + return $this->createResponse('success', 'Account has been created'); + }else{ + return $this->createResponse('fail', 'Something went wrong. Please try again or contact support'); + } + } + + public function isAuth(){ + if(isset($_COOKIE['user_hash']) && !empty($_COOKIE['user_hash'])){ + $user_ip = $_SERVER['REMOTE_ADDR']; + $user_hash = $_COOKIE['user_hash']; + $user_id = intval($_COOKIE['usid']); + $stmt = $this->conn->prepare('SELECT * FROM user_sessions WHERE user_hash = :user_hash AND user_id = :user_id AND login_ip = :user_ip'); + $stmt->bindValue(':user_hash', $user_hash); + $stmt->bindValue(':user_id', $user_id); + $stmt->bindValue(':user_ip', $user_ip); + $stmt->execute(); + return $stmt->rowCount(); + }else{ + return false; + } + } + + public function getMyself(){ + if($this->isAuth()){ + $user_id = intval($_COOKIE['usid']); + $stmt = $this->conn->prepare('SELECT * FROM users WHERE id = :id'); + $stmt->bindValue(':id', $user_id); + $stmt->execute(); + $user = $stmt->fetch(PDO::FETCH_ASSOC); + unset($user['psw']); + return $user; + } + } +} \ No newline at end of file diff --git a/rss/php/conf.php b/rss/php/conf.php new file mode 100644 index 0000000..5b31b2d --- /dev/null +++ b/rss/php/conf.php @@ -0,0 +1,36 @@ +setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); + }catch(PDOException $e){ + var_dump($e); + echo json_encode('Connection exception'); + exit(); + } + +?> \ No newline at end of file diff --git a/rss/php/handler.php b/rss/php/handler.php new file mode 100644 index 0000000..d6b007e --- /dev/null +++ b/rss/php/handler.php @@ -0,0 +1,60 @@ + Main::class, + 'Users' => Users::class + ); + + session_start(); + + if(file_exists($_SERVER['DOCUMENT_ROOT'] . '/rss/php/conf.php')){ + require_once($_SERVER['DOCUMENT_ROOT'] . '/rss/php/conf.php'); + } + + if(isset($_POST['function']) && !empty($_POST['function']) && isset($_POST['target']) && !empty($_POST['target'])){ + $t_class = trim($_POST['target']); + $t_func = trim($_POST['function']); + if(array_key_exists($t_class, $classList) && class_exists($classList[$t_class])){ + if(method_exists($classList[$t_class], $t_func)){ + $_class = new $classList[$t_class]; + + if(count($_POST) > 2){ + foreach($_POST as $prop => $val){ + if(property_exists($classList[$t_class], $prop)){ + $_class->$prop = $val; + } + } + } + + if(isset($_FILES) && !empty($_FILES)){ + foreach($_FILES as $prop => $val){ + if(property_exists($classList[$t_class], $prop)){ + $_class->$prop = $val; + } + } + } + + $response = $_class->$t_func(); + if($response){ + $msg = $response; + }else{ + $msg = new stdClass(); + $msg->status = 'fail'; + $msg->message = $response; + } + }else{ + $msg = new stdClass(); + $msg->status = 'fail'; + $msg->message = 'Invalid function'; + } + }else{ + $msg = new stdClass(); + $msg->status = 'fail'; + $msg->message = 'Invalid class'; + } + } + + die(json_encode($msg)); \ No newline at end of file diff --git a/rss/php/includes/footer.php b/rss/php/includes/footer.php new file mode 100644 index 0000000..203e738 --- /dev/null +++ b/rss/php/includes/footer.php @@ -0,0 +1,11 @@ +'; +} +?> + + + + \ No newline at end of file diff --git a/rss/php/includes/header.php b/rss/php/includes/header.php new file mode 100644 index 0000000..ffd69cd --- /dev/null +++ b/rss/php/includes/header.php @@ -0,0 +1,79 @@ + 'SITE', + 'long_desc' => '', + 'robots' => 'index, follow' +]; + +// Set default values +$siteUrl = 'https://DOMAIN.com'; +$pageUrl = $page === 'index' ? $siteUrl . '/' : $siteUrl . '/' . $page . '/'; +$title = $pageData['title'] ?? 'SITE'; +$description = $pageData['long_desc'] ?? ''; +$keywords = ''; +$robots = $pageData['robots'] ?? 'index, follow'; + +$currentPage = $page === 'index' ? 'Home' : ucwords(str_replace('-', ' ', $page)); +?> + + + + + + + WEBSITE | <?php echo htmlspecialchars($pageData['title'], ENT_QUOTES, 'UTF-8'); ?> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
\ No newline at end of file diff --git a/rss/php/pageHandler.php b/rss/php/pageHandler.php new file mode 100644 index 0000000..514c74f --- /dev/null +++ b/rss/php/pageHandler.php @@ -0,0 +1,43 @@ +isAuth(); + + if($pageInfo['restricted'] && !$userAuth){ + header('location:/login/'); + } + + if($pageInfo['redirect_login'] && $userAuth){ + header('location:/account/'); + } + + }else{ + http_response_code(404); + header('location:/404'); + die('Not found'); + } +?> + + \ No newline at end of file diff --git a/rss/php/templates/404.php b/rss/php/templates/404.php new file mode 100644 index 0000000..2ca106f --- /dev/null +++ b/rss/php/templates/404.php @@ -0,0 +1,15 @@ +
+
+
+
+
+
+

Oops! Page Not Found

+

Looks like this page got lost in the search for love. Don’t worry—let’s get you back to finding your perfect match!

+ Back to home +
+
+
+
+
+
\ No newline at end of file diff --git a/rss/php/templates/index.php b/rss/php/templates/index.php new file mode 100644 index 0000000..1bc21bb --- /dev/null +++ b/rss/php/templates/index.php @@ -0,0 +1,696 @@ +
+ + + +
+

Typography

+

Type scale, weight, alignment & transforms — each example followed by its code.

+ + +
+

Type scale

+
+
Heading XXL
+
Heading XL
+
Heading LG
+
Body Base
+
Small muted text
+
Extra small uppercase
+
+
<div class="text-xxl fw-bold lh-heading">Heading XXL</div>
+<div class="text-xl fw-semibold lh-heading">Heading XL</div>
+<div class="text-lg fw-medium lh-heading">Heading LG</div>
+<div class="text-base">Body Base</div>
+<div class="text-sm text-muted">Small muted text</div>
+<div class="text-xs text-uppercase">Extra small uppercase</div>
+
+ + +
+

Alignment

+
+
Left aligned
+
Center aligned
+
Right aligned
+
+
<div class="text-left">Left aligned</div>
+<div class="text-center">Center aligned</div>
+<div class="text-right">Right aligned</div>
+
+ + +
+

Weights & transforms

+
+
Light
+
Normal
+
Semibold
+
Uppercase bold
+
Underline
+
Line-through
+
No decoration
+
+
<div class="fw-light">Light</div>
+<div class="fw-normal">Normal</div>
+<div class="fw-semibold">Semibold</div>
+<div class="fw-bold text-uppercase">Uppercase bold</div>
+<div class="text-underline">Underline</div>
+<div class="text-line-through">Line-through</div>
+<div class="text-no-decoration">No decoration</div>
+
+
+ + + + + +
+

Color Utilities

+

Text, background, border & spinner colors.

+ + +
+

Text

+
+
Primary
+
Success
+
Danger
+
Info
+
Gray
+
Muted
+
+
<div class="text-primary">Primary</div>
+<div class="text-success">Success</div>
+<div class="text-danger">Danger</div>
+<div class="text-info">Info</div>
+<div class="text-gray">Gray</div>
+<div class="text-muted">Muted</div>
+
+ + +
+

Background

+
+
Primary
+
Success
+
Warning
+
Danger
+
+
<div class="p-2 bg-primary text-white rounded-sm">Primary</div>
+<div class="p-2 bg-success text-white rounded-sm">Success</div>
+<div class="p-2 bg-warning rounded-sm">Warning</div>
+<div class="p-2 bg-danger text-white rounded-sm">Danger</div>
+
+ + +
+

Border

+
+
Primary
+
Success
+
Danger
+
+
<div class="p-2 border border-primary rounded-sm">Primary</div>
+<div class="p-2 border border-success rounded-sm">Success</div>
+<div class="p-2 border border-danger rounded-sm">Danger</div>
+
+ + +
+

Spinner

+
+ + + + +
+
<span class="spinner spinner-primary"></span>
+<span class="spinner spinner-success"></span>
+<span class="spinner spinner-danger"></span>
+<span class="spinner spinner-info"></span>
+
+
+ + + + + +
+

Spacing & Sizing

+

Margin/padding utilities and width/height tokens.

+ + +
+

Margin & Padding

+
+
m-1 p-2
+
mx-2 my-1
+
px-4 py-2
+
pt-5 pb-1
+
+
<div class="m-1 p-2">...</div>
+<div class="mx-2 my-1 p-3">...</div>
+<div class="px-4 py-2">...</div>
+<div class="pt-5 pb-1">...</div>
+
+ + +
+

Percentage widths

+
+
w-25
+
w-50
+
w-75
+
w-100
+
+
<div class="w-25">...</div>
+<div class="w-50">...</div>
+<div class="w-75">...</div>
+<div class="w-100">...</div>
+
+ + +
+

Fixed & viewport sizes

+
+
wpx-64
+
wrem-4
+
wvw-25
+
hvh-25
+
+
<div class="wpx-64">...</div>
+<div class="wrem-4">...</div>
+<div class="wvw-25">...</div>
+<div class="hvh-25">...</div>
+
+
+ + + + + +
+

Layout

+

Containers, flex row/cols, and CSS grid helpers.

+ + +
+

Containers

+
+
.container-narrow
+
.container-wide
+
+
<div class="container-narrow">...</div>
+<div class="container-wide">...</div>
+
+ + +
+

Flex grid (.row / .col)

+
+
+
col-4
+
col-4
+
col-4
+
+
+
<div class="row">
+  <div class="col-4">...</div>
+  <div class="col-4">...</div>
+  <div class="col-4">...</div>
+</div>
+
+ + +
+

CSS Grid

+
+
1
+
2
+
3
+
+
<div class="grid grid-cols-3 gap-2">
+  <div>1</div>
+  <div>2</div>
+  <div>3</div>
+</div>
+
+
+ + + + +
+

Flexbox: Alignment & Justify

+

Use .flex-*, .items-*, and .justify-* to control layout.

+ + +
+
Center both axes
+
+
+ .flex .items-center .justify-center +
+
+ +
Space between horizontally, start vertically
+
+
+ ABC +
+
+ +
Column + center
+
+
+ 123 +
+
+
+ + +
<div class="flex items-center justify-center">...</div>
+<div class="flex items-start justify-between">...</div>
+<div class="flex-column items-center">...</div>
+
+ + + + +
+

Grid: Item Placement

+

Span columns/rows and reorder visually when needed.

+ +
+
+
1
+
2 spans 2 cols
+
3
+
4 full row
+
+
+ +
<div class="grid grid-cols-4">
+  <div>1</div>
+  <div style="grid-column: span 2;">2</div>
+  <div>3</div>
+  <div style="grid-column: 1 / -1;">4</div>
+</div>
+
+ + + + + +
+

Flex vs Grid (Quick Patterns)

+

Use flex for 1-dimensional alignment; use grid for true 2-D layouts.

+ +
+
+
Nav bar (Flex)
+
+ Logo +
+ LinkLinkLink +
+
+
<div class="flex items-center justify-between">...</div>
+
+ +
+
Card gallery (Grid)
+
+
Card
+
Card
+
Card
+
+
<div class="grid grid-auto-fit-md gap-2">...</div>
+
+
+
+ + + + + + +
+

Borders, Radius, Shadows

+

Border widths, corner radii, and shadow levels.

+ + +
+

Borders & radius

+
+
.border .rounded-sm
+
.border-2 .rounded-lg
+
.border-3 .rounded-xl
+
+
<div class="border rounded-sm">...</div>
+<div class="border-2 rounded-lg">...</div>
+<div class="border-3 rounded-xl">...</div>
+
+ + +
+

Card shadows

+
+
.card
+
.card .card-shadow-4
+
.card .shadow-none
+
+
<article class="card">...</article>
+<article class="card card-shadow-4">...</article>
+<article class="card shadow-none">...</article>
+
+
+ + + + + +
+

Controls

+

Shared blueprint, sizes, and variants.

+ + +
+

Inputs

+
+ + + + +
+
<input class="input input-sm" placeholder="Small" />
+<input class="input input-md" placeholder="Medium" />
+<input class="input input-lg" placeholder="Large" />
+<input class="input input-xl" placeholder="XL" />
+
+ + +
+

Buttons

+
+ + + + + +
+
<button class="btn btn-sm btn-primary">Primary</button>
+<button class="btn btn-md btn-success">Success</button>
+<button class="btn btn-lg btn-outline-danger">Outline Danger</button>
+<button class="btn btn-xl btn-ghost-info">Ghost Info</button>
+<button class="btn btn-md" disabled>Disabled</button>
+
+
+ + + + + +
+

Alerts

+

Contextual feedback banners.

+ +
+

Variants

+
+
Base alert
+
Primary alert
+
Success alert
+
Warning alert
+
Danger alert
+
Info alert
+
+
<div class="alert">Base alert</div>
+<div class="alert alert-primary">Primary alert</div>
+<div class="alert alert-success">Success alert</div>
+<div class="alert alert-warning">Warning alert</div>
+<div class="alert alert-danger">Danger alert</div>
+<div class="alert alert-info">Info alert</div>
+
+
+ + + + + +
+

Cards

+

Surface container with border/shadow variants.

+ +
+

Examples

+
+
Default card
+
Bordered (primary)
+
Shadow level 4
+
+
<article class="card">...</article>
+<article class="card card-border-primary">...</article>
+<article class="card card-shadow-4">...</article>
+
+
+ + + + + +
+

Tabs (With Panels)

+

+ Each tab points to a content panel by href="#panel-id". + The JS shows the matching panel and hides the others. +

+ + +
+
+ One + Two + Three +
+ +
+
Content for tab one.
+ + +
+
+ + +
<div class="tabs">
+  <a class="tab active" href="#tab-panel-1">One</a>
+  <a class="tab" href="#tab-panel-2">Two</a>
+  <a class="tab" href="#tab-panel-3">Three</a>
+</div>
+
+<div class="stack-2 mt-2">
+  <div class="tab-panel card p-2" id="tab-panel-1">Content for tab one.</div>
+  <div class="tab-panel card p-2" id="tab-panel-2" hidden>Content for tab two.</div>
+  <div class="tab-panel card p-2" id="tab-panel-3" hidden>Content for tab three.</div>
+</div>
+ +
    +
  • Make sure each tab’s href matches a panel’s id.
  • +
  • Only one panel should be visible — the others have hidden.
  • +
  • Keep classes exactly as shown: .tabs, .tab, .tab-panel.
  • +
+
+ + + + +
+

Modal

+

+ Click the button to open a modal. Close it by clicking the overlay or the ✕ button. + Works with the class-based JS you added (looks for .modal-open, .modal__overlay, .modal__close). +

+ + +
+ + + +
+ + +
<button class="btn btn-md btn-primary modal-open" href="#demoModal">Open demo modal</button>
+
+<div class="modal" id="demoModal" aria-hidden="true" role="dialog" aria-modal="true">
+  <div class="modal__overlay"></div>
+  <div class="modal__dialog" role="document">
+    <div class="modal__header">
+      <h3 class="modal__title">Demo modal</h3>
+      <button class="modal__close" aria-label="Close">✕</button>
+    </div>
+    <div>
+      <p>Put your content here.</p>
+      <div class="flex items-center gap-2">
+        <input class="input input-md" placeholder="Your name" />
+        <button class="btn btn-md btn-success">Save</button>
+      </div>
+    </div>
+  </div>
+</div>
+ + +
    +
  • Trigger: .modal-open on a button/link. Use href="#modalId" or data-target="#modalId".
  • +
  • Close: add .modal__close to a button or click the .modal__overlay.
  • +
  • Only change the id and the content — keep the classes the same.
  • +
+
+ + + + + +
+

Utilities

+

Motion, overflow, ratio, cursors & opacity.

+ + +
+

Motion & text

+
+
.hover-raise
+
.hover-glow
+
This is a very long line that will be truncated.
+
+
<div class="hover-raise">...</div>
+<div class="hover-glow">...</div>
+<div class="truncate w-50">Long long text...</div>
+
+ + +
+

Effects, overflow, ratios

+
+
.opacity-50
+
.cursor-not-allowed
+
+ .overflow-scroll
Line 2
Line 3
Line 4 +
+
+
+
.blur-sm
+
+
<div class="opacity-50">...</div>
+<div class="cursor-not-allowed">...</div>
+<div class="overflow-scroll">...</div>
+<div class="ratio ratio-16x9"><img class="object-cover" ... /></div>
+<div class="ratio ratio-1x1"><img class="object-contain" ... /></div>
+<div class="blur-sm">...</div>
+
+
+ + + + + +
+

JavaScript Helpers (Reference)

+

+ Lightweight utilities used across the docs and components. Keep logic simple and colocated. + This card describes the functions and expected usage; copy snippets as needed. +

+ + +
+

HTTP

+

Post JSON-ish data via FormData to the PHP handler.

+ +
+
+
_post(formObj, target, func)
+

Builds a FormData payload and POSTs to /rss/php/handler.php, returning JSON.

+
// Example
+const res = await _post(
+  { name: 'Ada', roles: ['admin','editor'] },
+  'users',
+  'create'
+);
+// res → parsed JSON (or { ok:false, error:"..." } on failure)
+
+ +
+
createFormData(data, target, func)
+

Converts plain objects/arrays into FormData and appends target/function.

+
// Example
+const fd = await createFormData({ tags: ['a','b'], avatar: file }, 'profile', 'update');
+
+
+
+ + + + +
+

DOM

+

Small helpers to create elements and IDs.

+ +
+
+
createEl(tag, classArr?, text?, dataAttrs?)
+

Create an element, add classes, text, and data-* attributes.

+
// Example
+const btn = createEl('button', ['btn','btn-md','btn-primary'], 'Save', { action: 'save' });
+document.body.append(btn);
+
+ +
+
getRandomID()
+

Generates a unique id (uses crypto.randomUUID() if available).

+
// Example
+const id = getRandomID(); // "c1c0f33a-..." or base36 fallback
+
+
+
+ + + + +
+

Alerts

+

Create and remove framework-styled alerts using .alert and .alert-{color}.

+ +
+
generateAlert(type, text, options?) → HTMLElement
+

+ Types align with your color tokens: primary, success, warning, danger, info, etc. +

+
// Create and insert
+const alertEl = await generateAlert('warning', 'Heads up!', { withClose: true, dismissAfter: 4000 });
+document.querySelector('#alertHost').append(alertEl);
+
+// Common types
+await generateAlert('success', 'Saved!');
+await generateAlert('danger', 'Something went wrong', { role: 'alert' });
+ +
removeAlert(scope?)
+

Remove all alerts in scope (default: document).

+
// Example
+removeAlert(); // or removeAlert(document.querySelector('#alertHost'));
+
+
+ diff --git a/sitemap.xml b/sitemap.xml new file mode 100644 index 0000000..a35daa1 --- /dev/null +++ b/sitemap.xml @@ -0,0 +1,8 @@ + + + + https://DOMAIN.com/ + weekly + 1.0 + + \ No newline at end of file