diff --git a/.gitmodules b/.gitmodules
new file mode 100644
index 0000000..5284d27
--- /dev/null
+++ b/.gitmodules
@@ -0,0 +1,3 @@
+[submodule "picocss"]
+ path = public/css/pico
+ url = https://github.com/picocss/pico.git
diff --git a/app/layouts/base.jl.html b/app/layouts/base.jl.html
new file mode 100644
index 0000000..00d2cb2
--- /dev/null
+++ b/app/layouts/base.jl.html
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+ Emacs User Survey
+
+
+
+
+
+ <%
+ @yield
+ %>
+
+
+
+
diff --git a/public/css/_extras.scss b/public/css/_extras.scss
new file mode 100644
index 0000000..f919fc8
--- /dev/null
+++ b/public/css/_extras.scss
@@ -0,0 +1,3 @@
+hr.strong {
+ border: .125rem solid var(--primary);
+}
diff --git a/public/css/pico b/public/css/pico
new file mode 160000
index 0000000..0c33daa
--- /dev/null
+++ b/public/css/pico
@@ -0,0 +1 @@
+Subproject commit 0c33daabf6da0f724315968c05345490faaea53a
diff --git a/public/css/style.css b/public/css/style.css
new file mode 100644
index 0000000..5a9856e
--- /dev/null
+++ b/public/css/style.css
@@ -0,0 +1,1803 @@
+/**
+ * Theme: default
+ */
+:root {
+ --font-family: system-ui, -apple-system, "Segoe UI", "Roboto", "Ubuntu",
+ "Cantarell", "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji",
+ "Segoe UI Symbol", "Noto Color Emoji";
+ --line-height: 1.5;
+ --font-weight: 400;
+ --font-size: 16px;
+ --border-radius: 0.25rem;
+ --border-width: 1px;
+ --outline-width: 3px;
+ --spacing: 1rem;
+ --typography-spacing-vertical: 1.5rem;
+ --block-spacing-vertical: calc(var(--spacing) * 2);
+ --block-spacing-horizontal: var(--spacing);
+ --grid-spacing-vertical: 0;
+ --grid-spacing-horizontal: var(--spacing);
+ --form-element-spacing-vertical: 0.75rem;
+ --form-element-spacing-horizontal: 1rem;
+ --transition: 0.2s ease-in-out; }
+ @media (min-width: 576px) {
+ :root {
+ --font-size: 17px; } }
+ @media (min-width: 768px) {
+ :root {
+ --font-size: 18px; } }
+ @media (min-width: 992px) {
+ :root {
+ --font-size: 19px; } }
+ @media (min-width: 1200px) {
+ :root {
+ --font-size: 20px; } }
+@media (min-width: 576px) {
+ body > header,
+ body > main,
+ body > footer,
+ section {
+ --block-spacing-vertical: calc(var(--spacing) * 2.5); } }
+
+@media (min-width: 768px) {
+ body > header,
+ body > main,
+ body > footer,
+ section {
+ --block-spacing-vertical: calc(var(--spacing) * 3); } }
+
+@media (min-width: 992px) {
+ body > header,
+ body > main,
+ body > footer,
+ section {
+ --block-spacing-vertical: calc(var(--spacing) * 3.5); } }
+
+@media (min-width: 1200px) {
+ body > header,
+ body > main,
+ body > footer,
+ section {
+ --block-spacing-vertical: calc(var(--spacing) * 4); } }
+
+@media (min-width: 576px) {
+ article {
+ --block-spacing-horizontal: calc(var(--spacing) * 1.25); } }
+
+@media (min-width: 768px) {
+ article {
+ --block-spacing-horizontal: calc(var(--spacing) * 1.5); } }
+
+@media (min-width: 992px) {
+ article {
+ --block-spacing-horizontal: calc(var(--spacing) * 1.75); } }
+
+@media (min-width: 1200px) {
+ article {
+ --block-spacing-horizontal: calc(var(--spacing) * 2); } }
+
+a {
+ --text-decoration: none; }
+ a.secondary, a.contrast {
+ --text-decoration: underline; }
+
+small {
+ --font-size: 0.875em; }
+
+h1,
+h2,
+h3,
+h4,
+h5,
+h6 {
+ --font-weight: 700; }
+
+h1 {
+ --font-size: 2rem;
+ --typography-spacing-vertical: 3rem; }
+
+h2 {
+ --font-size: 1.75rem;
+ --typography-spacing-vertical: 2.625rem; }
+
+h3 {
+ --font-size: 1.5rem;
+ --typography-spacing-vertical: 2.25rem; }
+
+h4 {
+ --font-size: 1.25rem;
+ --typography-spacing-vertical: 1.874rem; }
+
+h5 {
+ --font-size: 1.125rem;
+ --typography-spacing-vertical: 1.6875rem; }
+
+[type="checkbox"],
+[type="radio"] {
+ --border-width: 2px; }
+
+[type="checkbox"][role="switch"] {
+ --border-width: 3px; }
+
+thead th,
+thead td {
+ --border-width: 3px; }
+
+:not(thead) > * > td {
+ --font-size: 0.875em; }
+
+pre,
+code,
+kbd,
+samp {
+ --font-family: "Menlo", "Consolas", "Roboto Mono", "Ubuntu Monospace",
+ "Noto Mono", "Oxygen Mono", "Liberation Mono", monospace,
+ "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; }
+
+kbd {
+ --font-weight: bolder; }
+
+[data-theme="light"],
+:root:not([data-theme="dark"]) {
+ color-scheme: light;
+ --background-color: #fff;
+ --color: #415462;
+ --h1-color: #1b2832;
+ --h2-color: #23333e;
+ --h3-color: #2c3d49;
+ --h4-color: #374956;
+ --h5-color: #415462;
+ --h6-color: #4d606d;
+ --muted-color: #73828c;
+ --muted-border-color: #edf0f3;
+ --primary: #622486;
+ --primary-hover: #3E0C5C;
+ --primary-focus: rgba(98, 36, 134, 0.125);
+ --primary-inverse: #fff;
+ --secondary: #596b78;
+ --secondary-hover: #415462;
+ --secondary-focus: rgba(89, 107, 120, 0.125);
+ --secondary-inverse: #fff;
+ --contrast: #1b2832;
+ --contrast-hover: #000;
+ --contrast-focus: rgba(89, 107, 120, 0.125);
+ --contrast-inverse: #fff;
+ --mark-background-color: #fff2ca;
+ --mark-color: #543a25;
+ --ins-color: #388e3c;
+ --del-color: #c62828;
+ --blockquote-border-color: var(--muted-border-color);
+ --blockquote-footer-color: var(--muted-color);
+ --button-box-shadow: 0 0 0 rgba(0, 0, 0, 0);
+ --button-hover-box-shadow: 0 0 0 rgba(0, 0, 0, 0);
+ --form-element-background-color: transparent;
+ --form-element-border-color: #a2afb9;
+ --form-element-color: var(--color);
+ --form-element-placeholder-color: var(--muted-color);
+ --form-element-active-background-color: transparent;
+ --form-element-active-border-color: var(--primary);
+ --form-element-focus-color: var(--primary-focus);
+ --form-element-disabled-background-color: #d5dce2;
+ --form-element-disabled-border-color: #a2afb9;
+ --form-element-disabled-opacity: 0.5;
+ --form-element-invalid-border-color: #c62828;
+ --form-element-invalid-active-border-color: #b71c1c;
+ --form-element-valid-border-color: #388e3c;
+ --form-element-valid-active-border-color: #2e7d32;
+ --switch-background-color: #bbc6ce;
+ --switch-color: var(--primary-inverse);
+ --switch-checked-background-color: var(--primary);
+ --range-border-color: #d5dce2;
+ --range-active-border-color: #bbc6ce;
+ --range-thumb-border-color: var(--background-color);
+ --range-thumb-color: var(--secondary);
+ --range-thumb-hover-color: var(--secondary-hover);
+ --range-thumb-active-color: var(--primary);
+ --table-border-color: var(--muted-border-color);
+ --table-row-stripped-background-color: #f6f8f9;
+ --code-background-color: #edf0f3;
+ --code-color: var(--muted-color);
+ --code-kbd-background-color: var(--contrast);
+ --code-kbd-color: var(--contrast-inverse);
+ --code-tag-color: #b34d80;
+ --code-property-color: #3d888f;
+ --code-value-color: #998866;
+ --code-comment-color: #a2afb9;
+ --accordion-border-color: var(--muted-border-color);
+ --accordion-close-summary-color: var(--color);
+ --accordion-open-summary-color: var(--muted-color);
+ --card-background-color: var(--background-color);
+ --card-border-color: var(--muted-border-color);
+ --card-box-shadow: 0 0.125rem 1rem rgba(27, 40, 50, 0.04),
+ 0 0.125rem 2rem rgba(27, 40, 50, 0.08),
+ 0 0 0 0.0625rem rgba(27, 40, 50, 0.024);
+ --card-sectionning-background-color: #fafbfc;
+ --progress-background-color: #d5dce2;
+ --progress-color: var(--primary);
+ --loading-spinner-opacity: 0.5;
+ --tooltip-background-color: var(--contrast);
+ --tooltip-color: var(--contrast-inverse);
+ --icon-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgba(65, 84, 98, 0.999)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
+ --icon-date: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgba(65, 84, 98, 0.999)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2' ry='2'%3E%3C/rect%3E%3Cline x1='16' y1='2' x2='16' y2='6'%3E%3C/line%3E%3Cline x1='8' y1='2' x2='8' y2='6'%3E%3C/line%3E%3Cline x1='3' y1='10' x2='21' y2='10'%3E%3C/line%3E%3C/svg%3E");
+ --icon-time: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgba(65, 84, 98, 0.999)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cpolyline points='12 6 12 12 16 14'%3E%3C/polyline%3E%3C/svg%3E");
+ --icon-search: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgba(65, 84, 98, 0.999)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'%3E%3C/circle%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'%3E%3C/line%3E%3C/svg%3E");
+ --icon-checkbox: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23FFF' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");
+ --icon-minus: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23FFF' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='5' y1='12' x2='19' y2='12'%3E%3C/line%3E%3C/svg%3E");
+ --icon-valid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgba(56, 142, 60, 0.999)' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");
+ --icon-invalid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgba(198, 40, 40, 0.999)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cline x1='12' y1='8' x2='12' y2='12'%3E%3C/line%3E%3Cline x1='12' y1='16' x2='12.01' y2='16'%3E%3C/line%3E%3C/svg%3E"); }
+
+@media only screen and (prefers-color-scheme: dark) {
+ :root:not([data-theme="light"]) {
+ color-scheme: dark;
+ --background-color: #11191f;
+ --color: #bbc6ce;
+ --h1-color: #edf0f3;
+ --h2-color: #e1e6ea;
+ --h3-color: #d5dce2;
+ --h4-color: #c8d1d8;
+ --h5-color: #bbc6ce;
+ --h6-color: #aebbc3;
+ --muted-color: #73828c;
+ --muted-border-color: #1f2d38;
+ --primary: #622486;
+ --primary-hover: #7F5AB6;
+ --primary-focus: rgba(98, 36, 134, 0.25);
+ --primary-inverse: #fff;
+ --secondary: #596b78;
+ --secondary-hover: #73828c;
+ --secondary-focus: rgba(115, 130, 140, 0.25);
+ --secondary-inverse: #fff;
+ --contrast: #edf0f3;
+ --contrast-hover: #fff;
+ --contrast-focus: rgba(115, 130, 140, 0.25);
+ --contrast-inverse: #000;
+ --mark-background-color: #d0c284;
+ --mark-color: #11191f;
+ --ins-color: #388e3c;
+ --del-color: #c62828;
+ --blockquote-border-color: var(--muted-border-color);
+ --blockquote-footer-color: var(--muted-color);
+ --button-box-shadow: 0 0 0 rgba(0, 0, 0, 0);
+ --button-hover-box-shadow: 0 0 0 rgba(0, 0, 0, 0);
+ --form-element-background-color: #11191f;
+ --form-element-border-color: #374956;
+ --form-element-color: var(--color);
+ --form-element-placeholder-color: var(--muted-color);
+ --form-element-active-background-color: var(--form-element-background-color);
+ --form-element-active-border-color: var(--primary);
+ --form-element-focus-color: var(--primary-focus);
+ --form-element-disabled-background-color: #2c3d49;
+ --form-element-disabled-border-color: #415462;
+ --form-element-disabled-opacity: 0.5;
+ --form-element-invalid-border-color: #b71c1c;
+ --form-element-invalid-active-border-color: #c62828;
+ --form-element-valid-border-color: #2e7d32;
+ --form-element-valid-active-border-color: #388e3c;
+ --switch-background-color: #374956;
+ --switch-color: var(--primary-inverse);
+ --switch-checked-background-color: var(--primary);
+ --range-border-color: #23333e;
+ --range-active-border-color: #2c3d49;
+ --range-thumb-border-color: var(--background-color);
+ --range-thumb-color: var(--secondary);
+ --range-thumb-hover-color: var(--secondary-hover);
+ --range-thumb-active-color: var(--primary);
+ --table-border-color: var(--muted-border-color);
+ --table-row-stripped-background-color: rgba(115, 130, 140, 0.05);
+ --code-background-color: #17232c;
+ --code-color: var(--muted-color);
+ --code-kbd-background-color: var(--contrast);
+ --code-kbd-color: var(--contrast-inverse);
+ --code-tag-color: #a65980;
+ --code-property-color: #599fa6;
+ --code-value-color: #8c8473;
+ --code-comment-color: #4d606d;
+ --accordion-border-color: var(--muted-border-color);
+ --accordion-active-summary-color: var(--primary);
+ --accordion-close-summary-color: var(--color);
+ --accordion-open-summary-color: var(--muted-color);
+ --card-background-color: #141e25;
+ --card-border-color: #11191f;
+ --card-box-shadow: 0 0.125rem 1rem rgba(0, 0, 0, 0.06),
+ 0 0.125rem 2rem rgba(0, 0, 0, 0.12),
+ 0 0 0 0.0625rem rgba(0, 0, 0, 0.036);
+ --card-sectionning-background-color: #17232c;
+ --progress-background-color: #23333e;
+ --progress-color: var(--primary);
+ --loading-spinner-opacity: 0.5;
+ --tooltip-background-color: var(--contrast);
+ --tooltip-color: var(--contrast-inverse);
+ --icon-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgba(162, 175, 185, 0.999)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
+ --icon-date: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgba(162, 175, 185, 0.999)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2' ry='2'%3E%3C/rect%3E%3Cline x1='16' y1='2' x2='16' y2='6'%3E%3C/line%3E%3Cline x1='8' y1='2' x2='8' y2='6'%3E%3C/line%3E%3Cline x1='3' y1='10' x2='21' y2='10'%3E%3C/line%3E%3C/svg%3E");
+ --icon-time: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgba(162, 175, 185, 0.999)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cpolyline points='12 6 12 12 16 14'%3E%3C/polyline%3E%3C/svg%3E");
+ --icon-search: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgba(162, 175, 185, 0.999)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'%3E%3C/circle%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'%3E%3C/line%3E%3C/svg%3E");
+ --icon-checkbox: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23FFF' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");
+ --icon-minus: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23FFF' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='5' y1='12' x2='19' y2='12'%3E%3C/line%3E%3C/svg%3E");
+ --icon-valid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgba(46, 125, 50, 0.999)' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");
+ --icon-invalid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgba(183, 28, 28, 0.999)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cline x1='12' y1='8' x2='12' y2='12'%3E%3C/line%3E%3Cline x1='12' y1='16' x2='12.01' y2='16'%3E%3C/line%3E%3C/svg%3E"); } }
+
+[data-theme="dark"] {
+ color-scheme: dark;
+ --background-color: #11191f;
+ --color: #bbc6ce;
+ --h1-color: #edf0f3;
+ --h2-color: #e1e6ea;
+ --h3-color: #d5dce2;
+ --h4-color: #c8d1d8;
+ --h5-color: #bbc6ce;
+ --h6-color: #aebbc3;
+ --muted-color: #73828c;
+ --muted-border-color: #1f2d38;
+ --primary: #622486;
+ --primary-hover: #7F5AB6;
+ --primary-focus: rgba(98, 36, 134, 0.25);
+ --primary-inverse: #fff;
+ --secondary: #596b78;
+ --secondary-hover: #73828c;
+ --secondary-focus: rgba(115, 130, 140, 0.25);
+ --secondary-inverse: #fff;
+ --contrast: #edf0f3;
+ --contrast-hover: #fff;
+ --contrast-focus: rgba(115, 130, 140, 0.25);
+ --contrast-inverse: #000;
+ --mark-background-color: #d0c284;
+ --mark-color: #11191f;
+ --ins-color: #388e3c;
+ --del-color: #c62828;
+ --blockquote-border-color: var(--muted-border-color);
+ --blockquote-footer-color: var(--muted-color);
+ --button-box-shadow: 0 0 0 rgba(0, 0, 0, 0);
+ --button-hover-box-shadow: 0 0 0 rgba(0, 0, 0, 0);
+ --form-element-background-color: #11191f;
+ --form-element-border-color: #374956;
+ --form-element-color: var(--color);
+ --form-element-placeholder-color: var(--muted-color);
+ --form-element-active-background-color: var(--form-element-background-color);
+ --form-element-active-border-color: var(--primary);
+ --form-element-focus-color: var(--primary-focus);
+ --form-element-disabled-background-color: #2c3d49;
+ --form-element-disabled-border-color: #415462;
+ --form-element-disabled-opacity: 0.5;
+ --form-element-invalid-border-color: #b71c1c;
+ --form-element-invalid-active-border-color: #c62828;
+ --form-element-valid-border-color: #2e7d32;
+ --form-element-valid-active-border-color: #388e3c;
+ --switch-background-color: #374956;
+ --switch-color: var(--primary-inverse);
+ --switch-checked-background-color: var(--primary);
+ --range-border-color: #23333e;
+ --range-active-border-color: #2c3d49;
+ --range-thumb-border-color: var(--background-color);
+ --range-thumb-color: var(--secondary);
+ --range-thumb-hover-color: var(--secondary-hover);
+ --range-thumb-active-color: var(--primary);
+ --table-border-color: var(--muted-border-color);
+ --table-row-stripped-background-color: rgba(115, 130, 140, 0.05);
+ --code-background-color: #17232c;
+ --code-color: var(--muted-color);
+ --code-kbd-background-color: var(--contrast);
+ --code-kbd-color: var(--contrast-inverse);
+ --code-tag-color: #a65980;
+ --code-property-color: #599fa6;
+ --code-value-color: #8c8473;
+ --code-comment-color: #4d606d;
+ --accordion-border-color: var(--muted-border-color);
+ --accordion-active-summary-color: var(--primary);
+ --accordion-close-summary-color: var(--color);
+ --accordion-open-summary-color: var(--muted-color);
+ --card-background-color: #141e25;
+ --card-border-color: #11191f;
+ --card-box-shadow: 0 0.125rem 1rem rgba(0, 0, 0, 0.06),
+ 0 0.125rem 2rem rgba(0, 0, 0, 0.12),
+ 0 0 0 0.0625rem rgba(0, 0, 0, 0.036);
+ --card-sectionning-background-color: #17232c;
+ --progress-background-color: #23333e;
+ --progress-color: var(--primary);
+ --loading-spinner-opacity: 0.5;
+ --tooltip-background-color: var(--contrast);
+ --tooltip-color: var(--contrast-inverse);
+ --icon-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgba(162, 175, 185, 0.999)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
+ --icon-date: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgba(162, 175, 185, 0.999)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2' ry='2'%3E%3C/rect%3E%3Cline x1='16' y1='2' x2='16' y2='6'%3E%3C/line%3E%3Cline x1='8' y1='2' x2='8' y2='6'%3E%3C/line%3E%3Cline x1='3' y1='10' x2='21' y2='10'%3E%3C/line%3E%3C/svg%3E");
+ --icon-time: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgba(162, 175, 185, 0.999)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cpolyline points='12 6 12 12 16 14'%3E%3C/polyline%3E%3C/svg%3E");
+ --icon-search: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgba(162, 175, 185, 0.999)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'%3E%3C/circle%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'%3E%3C/line%3E%3C/svg%3E");
+ --icon-checkbox: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23FFF' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");
+ --icon-minus: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23FFF' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='5' y1='12' x2='19' y2='12'%3E%3C/line%3E%3C/svg%3E");
+ --icon-valid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgba(46, 125, 50, 0.999)' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");
+ --icon-invalid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgba(183, 28, 28, 0.999)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cline x1='12' y1='8' x2='12' y2='12'%3E%3C/line%3E%3Cline x1='12' y1='16' x2='12.01' y2='16'%3E%3C/line%3E%3C/svg%3E"); }
+
+/**
+ * Document
+ * Content-box & Responsive typography
+ */
+*,
+*::before,
+*::after {
+ box-sizing: border-box; }
+
+::before,
+::after {
+ text-decoration: inherit;
+ vertical-align: inherit; }
+
+html {
+ -webkit-text-size-adjust: 100%;
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
+ tab-size: 4;
+ -ms-text-size-adjust: 100%;
+ background-color: var(--background-color);
+ color: var(--color);
+ font-family: var(--font-family);
+ font-size: var(--font-size);
+ font-weight: var(--font-weight);
+ line-height: var(--line-height);
+ text-rendering: optimizeLegibility;
+ cursor: default; }
+
+/**
+ * Sectioning
+ * Container and responsive spacings for header, main, footer
+ */
+main {
+ display: block; }
+
+body {
+ width: 100%;
+ margin: 0; }
+ body > header,
+ body > main,
+ body > footer {
+ width: 100%;
+ margin-right: auto;
+ margin-left: auto;
+ padding: var(--block-spacing-vertical) var(--block-spacing-horizontal); }
+ @media (min-width: 576px) {
+ body > header,
+ body > main,
+ body > footer {
+ max-width: 510px;
+ padding-right: 0;
+ padding-left: 0; } }
+ @media (min-width: 768px) {
+ body > header,
+ body > main,
+ body > footer {
+ max-width: 700px; } }
+ @media (min-width: 992px) {
+ body > header,
+ body > main,
+ body > footer {
+ max-width: 920px; } }
+ @media (min-width: 1200px) {
+ body > header,
+ body > main,
+ body > footer {
+ max-width: 1130px; } }
+/**
+ * Section
+ * Responsive spacings for section
+ */
+section {
+ margin-bottom: var(--block-spacing-vertical); }
+
+/**
+ * Grid
+ * Minimal grid system with auto-layout columns
+ */
+.grid {
+ grid-column-gap: var(--grid-spacing-horizontal);
+ grid-row-gap: var(--grid-spacing-vertical);
+ display: grid;
+ grid-template-columns: 1fr;
+ margin: 0; }
+ @media (min-width: 992px) {
+ .grid {
+ grid-template-columns: repeat(auto-fit, minmax(0%, 1fr)); } }
+ .grid > * {
+ min-width: 0; }
+
+/**
+ * Horizontal scroller (