diff --git a/.gitignore b/.gitignore index b0ff62b..0288301 100644 --- a/.gitignore +++ b/.gitignore @@ -60,9 +60,5 @@ typings/ # Local development config file config.json package-lock.json -**/app.js -**/app.css -**/app.css.map -**/admin.js -**/admin.css -**/admin.css.map +**/public/**/app.js +**/public/**/admin.js diff --git a/nfp_moe/app/admin/admin.js b/nfp_moe/app/admin/admin.js new file mode 100644 index 0000000..c3542f1 --- /dev/null +++ b/nfp_moe/app/admin/admin.js @@ -0,0 +1,12 @@ +const EditPage = require('./editpage') +const AllPages = require('./site_pages') +const AllArticles = require('./site_articles') +const EditArticle = require('./editarticle') +const AllStaff = require('./stafflist') +const EditStaff = require('./editstaff') + +window.adminRoutes = { + pages: [AllPages, EditPage], + articles: [AllArticles, EditArticle], + staff: [AllStaff, EditStaff], +} diff --git a/nfp_moe/public/assets/admin.css b/nfp_moe/public/assets/admin.css new file mode 100644 index 0000000..85efe51 --- /dev/null +++ b/nfp_moe/public/assets/admin.css @@ -0,0 +1,66 @@ +/* + ===================== Variables ===================== +*/ +:root { + --admin-table-border: #01579b; + --admin-table-header-bg: #3D77C7; + --admin-table-header-fg: #fff; +} + +/* + ===================== main ===================== +*/ + +.admin .inside { + padding-bottom: 1rem; +} + +.admin table { + margin: 1rem; +} + +.admin table { + border: solid 1px var(--admin-table-border); + border-collapse: collapse; + border-spacing: 0; + font-size: 0.75em; +} + +.admin table thead th, +.admin table tbody td { + text-align: left; + padding: 0.5rem; +} + +.admin table thead th { + background-color: var(--admin-table-header-bg); + border: solid 1px var(--admin-table-border); + color: var(--admin-table-header-fg); +} +.admin table tbody td { + border: solid 1px var(--admin-table-border); + color: var(--alt-color); +} + +.admin table button { + color: var(--link); + background: transparent; + border-color: transparent; + padding: 0; +} + +.admin table td.right, +.admin table th.right { + text-align: right; +} + +.admin .actions { + margin: 0.5rem 1rem 0; + display: flex; + justify-content: flex-end; + font-size: 0.875rem; +} + +.admin .actions a { + margin-left: 0.5rem; +} diff --git a/nfp_moe/public/assets/app.css b/nfp_moe/public/assets/app.css new file mode 100644 index 0000000..35b787f --- /dev/null +++ b/nfp_moe/public/assets/app.css @@ -0,0 +1,596 @@ +/* + ===================== Variables ===================== +*/ +:root { + --content-max-width: 1280px; + --primary-darker-bg: #002f6c; + --primary-darker-fg: #fff; + --primary-darker-fg-light: #999; + --primary-darker-link: #ffad42; + + --primary-bg: #3d77c7; + --primary-fg: #fff; + --primary-fg-light: #999; + --primary-link: #f57c00; + + --bg: #fff; + --color: #000; + --light: #757575; + --link: #bb4d00; + --title-bg: #f57c00; + --title-fg: #000; + --title-sublink: #27159C; + --seperator: #ccc; + --content-bg: #fff; + --content-border: 0px solid transparent; + + --alt-bg: #ccc; + --alt-inside-bg: #fff; + --alt-inside-border: 1px solid #555; + --alt-color: #555; + + --footer-bg: #ccc; + --footer-color: #000; + --footer-seperator: #fff; + --footer-link: #8F3C00; + + --button-border: 1px solid #f57c00; + --button-bg: #ffad42; + --button-fg: #000; + + --error-bg: red; + --error-fg: white; +} + +/* + ===================== Reset ===================== +*/ + +/* Box sizing rules */ +*, *::before, *::after { box-sizing: border-box; +} + +/* Remove default margin */ +body, h1, h2, h3, h4, p, figure, blockquote, dl, dd { + margin: 0; +} + +@font-face { + font-family: 'Inter var'; + font-weight: 100 900; + font-display: swap; + font-style: oblique 0deg 10deg; + src: url("Inter.var.woff2?v=3.19") format("woff2"); +} + +body { + min-height: 100vh; + text-rendering: optimizeSpeed; + line-height: 1.5; + font-size: 16px; + font-family: 'Inter var', sans-serif; + font-feature-settings: "slnt" 0deg, "case", "frac", "tnum", "ss02", "calt", "ccmp", "kern"; +} + +.italic { font-variation-settings: "slnt" 10deg; } + +a { + text-decoration-skip-ink: auto; +} + +img { + max-width: 100%; + display: block; +} + +input, button, textarea, select { + font: inherit; +} + +@media (prefers-reduced-motion: reduce) { + *, *::before, *::after { + animation-play-state: paused !important; + transition: none !important; + scroll-behavior: auto !important; + } +} + +h1 { + font-size: 2.488rem; +} +h2 { + font-size: 2.074rem; +} +h3 { + font-size: 1.728rem; +} +h4 { + font-size: 1.44rem; +} +h5 { + font-size: 1.0rem; +} + +a, a:visited, button { + text-decoration: none; + border: none; + padding: 0; + margin: 0; + font-weight: bold; + cursor: pointer; +} + +input[type=text], +input[type=password] { + border: 1px solid var(--color); + background: var(--bg); + color: var(--color); + border-radius: 0; + padding: 0.25rem; +} + +label { + font-size: 0.75rem; + font-weight: 500; + margin-top: 1rem; + margin-bottom: 0.25rem; +} + +input[type=text]:hover, +input[type=text]:active, +input[type=password]:hover, +input[type=password]:active { + border-color: var(--link); +} + +button { + background: transparent; +} + +/* + ===================== Common ===================== +*/ + +.inside { + width: 100%; + max-width: var(--content-max-width); + display: flex; + margin: 0 auto; +} + +.inside.vertical { + flex-direction: column; +} + +.container { + margin: 1rem; +} + +.error { + background: var(--error-bg); + color: var(--error-fg); + cursor: pointer; + text-align: center; + padding: 0.5rem; +} + +.wrapper { + background: var(--footer-bg); + color: var(--footer-color); + display: flex; + justify-content: center; + align-items: center; + min-height: calc(100vh - 200px); + padding: 1rem; +} + +.wrapper .inside { + flex-direction: column; + color: var(--alt-color); + background: var(--alt-inside-bg); + border: var(--alt-inside-border); +} + +.wrapper .error { + border: 1px solid var(--error-bg); + color: var(--error-bg); + background: transparent; +} + +@keyframes spinner-loader { + to {transform: rotate(360deg);} +} + +.loading-spinner:after { + content: ''; + box-sizing: border-box; + position: absolute; + top: 50%; + left: 50%; + width: 20px; + height: 20px; + margin-top: -10px; + margin-left: -10px; + border-radius: 50%; + border: 2px solid #ccc; + border-top-color: #333; + animation: spinner-loader .6s linear infinite; + z-index: 1000; +} + +/* + ===================== Header ===================== +*/ + +header { + background: var(--primary-darker-bg); + color: var(--primary-darker-fg); +} + +header a, +header a:visited, +header button { + color: var(--primary-darker-link); +} + +header p { + color: var(--primary-darker-fg-light); +} + +header .logo, +header .logo:visited { + height: 100px; + padding-left: 120px; + display: flex; + align-items: center; + background: 25px center no-repeat; + background-size: auto 91px; + flex: 0 0 auto; +} + +header .logo h1 { + font-weight: 500; + color: var(--primary-darker-fg); +} + +header aside { + flex: 2 1 auto; + display: flex; + flex-direction: column; + align-items: flex-end; + font-size: 0.8rem; + padding: 0.5rem 0.5rem; +} + +header aside .actions a { + margin-left: 1rem; + display: inline-block; +} + +.avifsupport header .logo { + background-image:url("/assets/img/logo.avif") +} +.jpegonly header .logo { + background-image:url("/assets/img/logo_small.jpg") +} + +/* + ===================== Nav ===================== +*/ + +nav { + background: var(--primary-bg); +} + +nav a, nav a:visited, nav .loading-spinner { + flex: 2 0 auto; + text-align: center; + font-weight: 300; + padding: 10px 10px 7px 10px; + border-bottom: 3px solid var(--primary-bg); + color: var(--primary-fg); +} + +nav a.active { + border-bottom-color: var(--primary-link); +} + +nav .loading-spinner { + position: relative; +} + +/* + ===================== main ===================== +*/ + +.page-banner { + background-size: cover; + background-repeat: no-repeat; + background-position: center; + height: 150px; + width: 100%; + display: block; +} + +.page-banner-title { + color: white; + text-align: right; + padding: 0.5rem 1rem; + font-size: 1.6rem; + flex: 2 1 auto; + text-shadow: 0 0 .3em #000; +} + +.page-goback { + padding: 0.5rem 1rem; +} + +main a, +main a:visited { + color: var(--link); +} + +main h5 { + padding: 0 0.5rem 0.5rem; + margin: 0 0 0.75rem; + border-bottom: 1px solid var(--seperator); + font-size: 1rem; +} + +main .loading-spinner { + position: fixed; + left: 50%; + top: 50%; +} + +main h2 { + font-size: 1.4rem; + background: var(--title-bg); + color: var(--title-fg); + text-align: center; + font-weight: 400; + padding: 0.375rem; + line-height: 1.4rem; +} + +main .container { + flex: 2 1 auto; +} + +main .cover picture img { + margin-bottom: 1rem; + width: 100%; +} + +main button, +input[type=submit] { + border: var(--button-border); + background: #ffad42; + color: #000; + align-self: center; + padding: 0.25rem 1rem; +} + +/* ************** aside ************** */ + +main aside { + padding: 0 0.5rem; + margin: 1rem; + font-size: 0.875rem; + flex: 0 1 250px; +} + +main aside a { + display: block; +} + +main aside h5 { + margin: 0 -0.5rem 0.75rem; +} + +main aside ul { + margin: 0 0 0.5rem; + padding-left: 1.5rem; +} + +/* ************** paginator ************** */ + +paginator { + display: flex; + justify-content: center; + width: 100%; +} + +paginator a { + color: var(--link); + cursor: pointer; +} + +paginator a, +paginator div { + display: block; + font-size: 0.8rem; + max-width: 80px; + flex-grow: 2; + text-align: center; + padding: 0.5rem; + margin-top: 1rem; +} + +/* ************** articleslim ************** */ + +articleslim { + display: flex; + margin-bottom: 0.75rem; + padding-right: 0.5rem; +} + +articleslim p.description { + font-size: 0.75rem; +} + +articleslim .cover { + flex: 0 0 124px; + margin-right: 0.75rem; +} + +articleslim .cover picture img { + margin-bottom: 0; +} + +articleslim a.nobg { + height: 70px; + background: var(--seperator); + display: block; +} + +articleslim a.title { + display: block; + margin-bottom: 0.375rem; +} + +/* ************** article ************** */ + + +article .row { + margin: 1rem 0; + display: flex; +} + +article .cover { + flex: 0 0 auto; + margin-right: 1rem; + align-self: flex-start; +} + +article a.title { + flex: 0 0 100%; + margin-bottom: 0.5rem; +} + +article .description { + font-size: 0.875rem; + margin-bottom: 1rem; +} + +article .meta { + font-size: 0.625rem; + line-height: 0.75rem; + color: var(--light); + font-weight: 500; + margin-top: 1.25rem; +} + +article.fullsize .row { + margin: 1rem; + flex-direction: column; +} + +article.fullsize .cover { + margin-right: 0; +} + +/* ************** fileinfo ************** */ + +fileinfo { + padding-left: 0.25rem; + margin-bottom: 0.5rem; + color: var(--light); + line-height: 1rem; + font-size: 0.75rem; + display: block; +} + +fileinfo.slim { + padding: 0; + margin: 0; +} + +fileinfo p span, +fileinfo p a { + margin-right: 0.25rem; +} + +fileinfo p a { + font-weight: 550; + padding-right: 0.25rem; + border-right: 1px solid var(--seperator); + display: inline-block; +} + +fileinfo p span { + font-weight: 700; +} + +fileinfo ul { + margin: 0.5rem 0; + padding-left: 1.5rem; +} + +/* + ===================== login ===================== +*/ + +.login { + align-items: center; + font-size: 1rem; + padding: 1rem 1rem 2rem; + margin: 1rem; + max-width: 400px; +} + +.login .title { + font-size: 1.4rem; + font-weight: 200; + margin-bottom: 2rem; + text-align: center; +} + +.login input, +.login label { + width: 100%; + max-width: 300px; +} + +.login input[type=submit] { + min-width: 150px; + margin-top: 1rem; +} + +/* + ===================== footer ===================== +*/ + +footer { + background: var(--footer-bg); + color: var(--footer-color); + text-align: center; + padding: 1rem; + display: flex; + flex-direction: column; + align-items: center; + font-weight: 500; + font-size: 0.625rem; +} + +footer ul { + margin: 0 0 0.25rem; + padding: 0 0 0.25rem; + border-bottom: 1px solid var(--footer-seperator); + display: flex; + justify-content: center; + flex-wrap: wrap; + min-width: 300px; +} + +footer ul li { + padding: 0 0.25rem; + list-style-position: inside; +} + +footer a { + color: var(--footer-link); + margin: 0 0 0.25rem; +} + + diff --git a/nfp_moe_old/app/admin.js b/nfp_moe_old/app/admin.js new file mode 100644 index 0000000..c6a1cba --- /dev/null +++ b/nfp_moe_old/app/admin.js @@ -0,0 +1,12 @@ +const EditPage = require('./admin/editpage') +const AdminPages = require('./admin/pages') +const AdminArticles = require('./admin/articles') +const EditArticle = require('./admin/editarticle') +const AdminStaffList = require('./admin/stafflist') +const EditStaff = require('./admin/editstaff') + +window.adminRoutes = { + pages: [AdminPages, EditPage], + articles: [AdminArticles, EditArticle], + staff: [AdminStaffList, EditStaff], +} diff --git a/nfp_moe_old/public/assets/admin.css b/nfp_moe_old/public/assets/admin.css new file mode 100644 index 0000000..d0a58d7 --- /dev/null +++ b/nfp_moe_old/public/assets/admin.css @@ -0,0 +1,588 @@ +/* Dark theme */ +.error { + font-size: 0.8em; + color: #bb4d00; + font-weight: bold; + padding-bottom: 20px; +} + +.admin-wrapper table { + width: calc(100% - 20px); + margin: 10px; + border: solid 1px #01579b; + border-collapse: collapse; + border-spacing: 0; + font-size: 0.8em; + position: relative; +} +.admin-wrapper table thead th { + background-color: #3D77C7; + border: solid 1px #01579b; + color: white; + padding: 10px; + text-align: left; +} +.admin-wrapper table tbody td { + text-align: left; + border: solid 1px #01579b; + color: #333; + padding: 10px; +} +.admin-wrapper table a, +.admin-wrapper table a:visited, +.admin-wrapper table a:hover { + text-decoration: none; + color: #bb4d00; + font-weight: bold; +} +.admin-wrapper table button { + color: #bb4d00; + background: transparent; + border: 1px solid #bb4d00; +} +.admin-wrapper table td.right, +.admin-wrapper table th.right { + text-align: right; +} + +.floating-container { + position: fixed; + top: 0; + bottom: 0; + left: 0; + right: 0; + background: rgba(0, 0, 0, 0.6); + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; +} + +.input-row { + display: flex; +} +.input-row > * { + margin-right: 1rem; + flex: 2 1 auto; +} +.input-row > .small { + flex: 0 0 auto; +} +.input-row > *:last-child { + margin-right: 0; +} + +.admin-wrapper .loading-spinner { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: rgba(0, 0, 0, 0.4); + z-index: 1000; +} + +.admin-wrapper { + flex-grow: 2; + display: flex; + flex-direction: column; + background: #01579b; + padding: 0 20px 50px; +} + +.admin-actions { + background: #01579b; + display: flex; + justify-content: center; + min-height: 37px; +} +.admin-actions span { + color: white; + padding: 10px; + font-size: 14px; + font-weight: bold; +} +.admin-actions a { + padding: 10px; + text-decoration: none; + color: #ffad42; + font-size: 14px; + font-weight: bold; +} + +.fr-box, +.fr-toolbar, +.fr-box .second-toolbar { + border-radius: 0 !important; +} + +article.editpage { + text-align: center; + background: white; + padding: 0 0 20px; +} +article.editpage header { + padding: 10px; + background: #f57c00; +} +article.editpage header h1 { + color: black; +} +article.editpage header a { + font-size: 14px; + text-decoration: none; + margin-left: 10px; + color: black; +} +article.editpage fileupload { + margin: 0 0 20px; +} +article.editpage fileupload .inside { + height: 150px; +} +article.editpage fileupload.cover { + align-self: center; + min-width: 178px; +} +article.editpage fileupload.cover .display { + background-size: auto 100%; +} +article.editpage form { + padding: 0 40px 20px; +} +article.editpage form textarea { + height: 300px; +} +article.editpage form .loading-spinner { + height: 300px; + position: relative; +} +article.editpage h5 { + margin-bottom: 20px; +} +article.editpage > .loading-spinner { + width: 240px; + height: 50px; + position: relative; +} + +table span.subpage { + padding: 0 5px; +} + +article.editarticle { + background: white; + padding: 0 0 20px; +} +article.editarticle header { + text-align: center; + padding: 10px; + background: #f57c00; +} +article.editarticle header h1 { + color: black; +} +article.editarticle header a { + font-size: 14px; + text-decoration: none; + margin-left: 10px; + color: black; +} +article.editarticle fileupload { + margin: 0 0 20px; +} +article.editarticle fileupload .inside { + height: 150px; +} +article.editarticle fileupload.cover { + align-self: center; + min-width: 178px; +} +article.editarticle form { + padding: 0 2rem 1rem; +} +article.editarticle form textarea { + height: 300px; +} +article.editarticle form label.slim { + font-size: 0.7em; +} +article.editarticle form input.slim { + font-size: 0.8em; + padding: 2px 5px; +} +article.editarticle form .loading-spinner { + height: 300px; + position: relative; +} +article.editarticle form button.submit { + margin-left: 20px; +} +article.editarticle table tr.rowhidden td { + background: #e6e6e6; +} +article.editarticle table tr.rowfeatured td { + background: hsl(120deg, 60%, 85%); +} +article.editarticle h5 { + margin-bottom: 20px; +} +article.editarticle > .loading-spinner { + width: 240px; + height: 50px; + position: relative; +} +article.editarticle > .loading-spinner.full { + width: 100%; +} +article.editarticle .fileupload { + align-self: flex-start; + padding: 0.5rem; + margin: 0.5rem 0 0.5rem 2rem; + min-width: 150px; + border: none; + border: 1px solid #f57c00; + background: #ffad42; + color: black; + position: relative; + text-align: center; +} +article.editarticle .fileupload input { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + opacity: 0.01; + width: 100%; + cursor: pointer; + text-indent: -9999px; + z-index: 2; +} +article.editarticle files { + align-items: stretch; + width: 100%; + display: flex; + flex-direction: column; + padding: 1rem 2rem 0; + text-align: left; +} +article.editarticle files h4 { + font-size: 1.1em; + font-weight: bold; + padding: 0 5px 5px; + margin-bottom: 10px; + border-bottom: 1px solid #ccc; +} + +table span.subarticle { + padding: 0 5px; +} + +article.editstaff { + text-align: center; + background: white; + padding: 0 0 20px; +} +article.editstaff header { + padding: 10px; + background: #f57c00; +} +article.editstaff header h1 { + color: black; +} +article.editstaff header a { + font-size: 14px; + text-decoration: none; + margin-left: 10px; + color: black; +} +article.editstaff form { + padding: 0 40px 20px; +} +article.editstaff form textarea { + height: 300px; +} +article.editstaff form .loading-spinner { + height: 300px; + position: relative; +} +article.editstaff h5 { + margin-bottom: 20px; +} +article.editstaff > .loading-spinner { + width: 240px; + height: 50px; + position: relative; +} +article.editstaff > .loading-spinner.full { + width: 100%; +} + +.date-selector-wrapper { + width: 200px; + padding: 3px; + background-color: #fff; + box-shadow: 1px 1px 10px 1px #5c5c5c; + position: absolute; + font-size: 12px; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + -o-user-select: none; + z-index: 10; + /* user-select: none; */ +} + +.cal-header, .cal-row { + display: flex; + width: 100%; + height: 30px; + line-height: 30px; + text-align: center; +} + +.cal-cell, .cal-nav { + cursor: pointer; +} + +.cal-day-names { + height: 25px; + line-height: 25px; +} + +.cal-day-names .cal-cell { + cursor: default; + font-weight: bold; +} + +.cal-cell-prev, .cal-cell-next { + color: #777; +} + +.cal-months .cal-row, .cal-years .cal-row { + height: 60px; + line-height: 60px; +} + +.cal-nav-prev, .cal-nav-next { + flex: 0.15; +} + +.cal-nav-current { + flex: 0.75; + font-weight: bold; +} + +.cal-months .cal-cell, .cal-years .cal-cell { + flex: 0.25; +} + +.cal-days .cal-cell { + flex: 0.143; +} + +.cal-value { + color: #fff; + background-color: #286090; +} + +.cal-cell:hover, .cal-nav:hover { + background-color: #eee; +} + +.cal-value:hover { + background-color: #204d74; +} + +/* time footer */ +.cal-time { + display: flex; + justify-content: flex-start; + height: 27px; + line-height: 27px; +} + +.cal-time-label, .cal-time-value { + flex: 0.12; + text-align: center; +} + +.cal-time-slider { + flex: 0.77; + background-image: linear-gradient(to right, #d1d8dd, #d1d8dd); + background-repeat: no-repeat; + background-size: 100% 1px; + background-position: left 50%; + height: 100%; +} + +.cal-time-slider input { + width: 100%; + -webkit-appearance: none; + background: 0 0; + cursor: pointer; + height: 100%; + outline: 0; + user-select: auto; +} + +.ce-block__content, +.ce-toolbar__content { + max-width: calc(100% - 120px) !important; +} + +.cdx-block { + max-width: 100% !important; +} + +.codex-editor { + border: 1px solid var(--input-border); + background: var(--input-bg); + color: var(--input-fg); +} + +.codex-editor:hover, +.codex-editor:active { + border-color: var(--secondary-bg); +} + +fileupload { + position: relative; + display: flex; + align-items: stretch; + flex-direction: column; + justify-content: stretch; +} +fileupload .showicon, +fileupload .showbordericon, +fileupload .display { + flex-grow: 2; +} +fileupload .showbordericon { + border: 3px solid #555; + border-style: dashed; + background-image: url("./img/upload.svg"); + background-position: center; + background-repeat: no-repeat; + background-size: 50px; +} +fileupload .showicon { + position: absolute; + top: 5px; + right: 5px; + width: 50px; + height: 50px; + background-image: url("./img/upload.svg"); + background-position: center; + background-repeat: no-repeat; + background-size: contain; +} +fileupload img { + max-width: 600px; + width: 100%; + align-self: center; + min-height: 100px; +} +fileupload .display { + background-size: cover; + background-repeat: no-repeat; + background-position: center; +} +fileupload .loading-spinner { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: rgba(51, 51, 51, 0.5333333333); + width: 100%; +} +fileupload input { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + opacity: 0.01; + width: 100%; + cursor: pointer; + text-indent: -9999px; + z-index: 2; +} +fileupload .remove { + border: none; + position: absolute; + top: 5px; + right: 60px; + width: 50px; + height: 50px; + background-image: url("./img/delete.svg"); + background-position: center; + background-repeat: no-repeat; + background-color: transparent; + background-size: contain; + z-index: 3; + outline: none; + cursor: pointer; +} + +dialogue { + background: white; + display: flex; + flex-direction: column; + text-align: center; + width: calc(100% - 40px); + max-width: 500px; + color: black; +} +dialogue h2 { + background: #bb4d00; + color: white; + font-size: 1.5em; + padding: 10px; +} +dialogue p { + padding: 10px; +} +dialogue .buttons { + display: flex; + justify-content: space-around; + padding: 10px; +} +dialogue button { + border: 1px solid #bb4d00; + background: transparent; + color: #bb4d00; + padding: 5px 15px; + min-width: 150px; +} +dialogue button.alert { + border-color: red; + color: red; +} +dialogue button.cancel { + border-color: #999; + color: #999; +} + +.codex-editor { + margin-bottom: 0.5rem; +} + +input[type=checkbox] { + display: block; + height: 20px; + margin: 0.5rem 0; + width: 20px; +} + +.darkmodeon .maincontainer .admin-wrapper { + color: black; +} +.darkmodeon .error { + color: #e05e00; +} + +/*# sourceMappingURL=admin.css.map */ diff --git a/nfp_moe_old/public/assets/admin.css.map b/nfp_moe_old/public/assets/admin.css.map new file mode 100644 index 0000000..56b1282 --- /dev/null +++ b/nfp_moe_old/public/assets/admin.css.map @@ -0,0 +1 @@ +{"version":3,"sourceRoot":"","sources":["../../app/_common.scss","../../app/admin.scss","../../app/admin/admin.scss","../../app/admin/pages.scss","../../app/admin/articles.scss","../../app/admin/staff.scss","../../app/widgets/admin.scss"],"names":[],"mappings":"AAiCA;AC/BA;EACE;EACA,ODSkB;ECRlB;EACA;;;AAOF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE,kBDnBe;ECoBf;EACA,ODpBe;ECqBf;EACA;;AAEF;EACE;EACA;EACA,ODhBO;ECiBP;;AAEF;AAAA;AAAA;EAGE;EACA,OD1BgB;EC2BhB;;AAGF;EACE,OD/BgB;ECgChB;EACA;;AAGF;AAAA;EAEE;;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAKF;EACE;;AAEA;EACE;EACA;;AAGF;EACE;;AAGF;EACE;;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AC7FF;EACE;EACA;EACA;EACA,YFJW;EEKX;;;AAGF;EACE,YFTW;EEUX;EACA;EACA;;AAEA;EACE,OFdS;EEeT;EACA;EACA;;AAGF;EACE;EACA;EACA,OFdiB;EEejB;EACA;;;AAIJ;AAAA;AAAA;EAGE;;;ACjCF;EACE;EACA;EACA;;AAEA;EACE;EACA,YHCW;;AGCX;EACE,OHDS;;AGIX;EACE;EACA;EACA;EACA,OHNe;;AGUnB;EACE;;AAEA;EACE;;AAIJ;EACE;EACA;;AAEA;EACE;;AAIJ;EACE;;AAEA;EACE;;AAGF;EACE;EACA;;AAIJ;EACE;;AAGF;EACE;EACA;EACA;;;AAIJ;EACE;;;AC/DF;EACE;EACA;;AAEA;EACE;EACA;EACA,YJCW;;AICX;EACE,OJDS;;AIIX;EACE;EACA;EACA;EACA,OJNe;;AIUnB;EACE;;AAEA;EACE;;AAIJ;EACE;EACA;;AAGF;EACE;;AAEA;EACE;;AAGF;EACE;;AAEF;EACE;EACA;;AAGF;EACE;EACA;;AAGF;EACE;;AAKF;EACE;;AAGF;EACE;;AAIJ;EACE;;AAGF;EACE;EACA;EACA;;AAEA;EACE;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA,YJhFiB;EIiFjB,OJhFiB;EIiFjB;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;;;AAKN;EACE;;;AChIF;EACE;EACA;EACA;;AAEA;EACE;EACA,YLCW;;AKCX;EACE,OLDS;;AKIX;EACE;EACA;EACA;EACA,OLNe;;AKUnB;EACE;;AAEA;EACE;;AAGF;EACE;EACA;;AAIJ;EACE;;AAGF;EACE;EACA;EACA;;AAEA;EACE;;;AHHN;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AACA;;;AAEF;EACE;EACA;EACA;EACA;EACA;;;AAEF;EACE;;;AAEF;EACE;EACA;;;AAEF;EACE;EACA;;;AAEF;EACE;;;AAEF;EACE;EACA;;;AAEF;EACE;;;AAEF;EACE;EACA;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;EACA;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;AACA;EACE;EACA;EACA;EACA;;;AAEF;EACE;EACA;;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;AAAA;EACuB;;;AACvB;EAAa;;;AAEb;EACE;EACA;EACA;;;AAGF;AAAA;EAEE;;;AIlJF;EACE;EACA;EACA;EACA;EACA;;AAEA;AAAA;AAAA;EAGE;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA,ONvEQ;;AMyER;EACE,YNtFgB;EMuFhB,ONtFgB;EMuFhB;EACA;;AAGF;EACE;;AAGF;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA,ONzGgB;EM0GhB;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;;AL9BJ;EACE;;;AAGF;EACE;EACA;EACA;EACA;;;AAIA;EACE,ODxFM;;AC2FR;EACE,ODtEqB","file":"admin.css"} \ No newline at end of file diff --git a/nfp_moe_old/public/assets/app.css b/nfp_moe_old/public/assets/app.css new file mode 100644 index 0000000..e907e4f --- /dev/null +++ b/nfp_moe_old/public/assets/app.css @@ -0,0 +1,1625 @@ +/* Dark theme */ +html { + box-sizing: border-box; + font-size: 16px; + height: 100%; +} + +*, *:before, *:after { + box-sizing: inherit; +} + +body, h1, h2, h3, h4, h5, h6, p { + margin: 0; + padding: 0; + font-weight: normal; +} + +body { + min-height: 100%; + font-family: Arial, Helvetica, sans-serif; +} + +button { + font-family: Arial, Helvetica, sans-serif; +} + +ol, ul { + list-style: none; +} + +img { + max-width: 100%; + height: auto; + display: block; +} + +@keyframes spinner-loader { + to { + transform: rotate(360deg); + } +} +.loading-spinner:before { + content: ""; + box-sizing: border-box; + position: absolute; + top: 50%; + left: 50%; + width: 20px; + height: 20px; + margin-top: -10px; + margin-left: -10px; + border-radius: 50%; + border: 2px solid #ccc; + border-top-color: #333; + animation: spinner-loader 0.6s linear infinite; + z-index: 1000; +} + +.maincontainer { + background: white; + color: black; + width: 100%; + min-height: 100vh; + display: flex; + flex-direction: column; +} + +.container { + width: 100%; + display: flex; + flex-direction: column; +} + +main { + display: flex; + flex-direction: column; + flex-grow: 2; + position: relative; +} + +.error { + font-size: 0.8em; + color: #bb4d00; + font-weight: bold; + padding-bottom: 20px; +} + +.error-wrapper { + flex-grow: 2; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + background: #ccc; + padding: 40px 0; +} +.error-wrapper .error { + border: 2px dashed #bb4d00; + padding: 10px 20px; + font-size: 1em; +} + +[hidden] { + display: none !important; +} + +article { + display: flex; + flex-direction: column; + flex-grow: 2; + padding: 20px; +} +article header { + display: flex; + flex-direction: column; + margin-bottom: 20px; +} +article header h1 { + font-size: 1.4em; + color: #555; + flex-grow: 2; +} +article header span { + font-size: 0.8em; + color: #757575; +} +article .content { + display: flex; + flex-direction: column; +} +article .content h5 { + font-size: 1em; + font-weight: bold; + color: #555; +} + +form { + display: flex; + flex-direction: column; + align-items: stretch; +} +form label { + text-align: left; + font-weight: bold; + font-size: 0.8em; + padding: 5px 0 3px; +} +form input[type=text], +form input[type=password], +form input[type=datetime-local], +form select, +form textarea { + width: 100%; + font-size: 1em; + padding: 0.5em; + margin: 0 0 0.5em; + background: white; + border: 1px solid #333; + color: black; + outline: none; +} +form input[type=text]:hover, form input[type=text]:focus, +form input[type=password]:hover, +form input[type=password]:focus, +form input[type=datetime-local]:hover, +form input[type=datetime-local]:focus, +form select:hover, +form select:focus, +form textarea:hover, +form textarea:focus { + border-color: #f57c00; +} +form input[type=submit], +form button.submit { + align-self: center; + padding: 0.5em; + margin: 0.5em 0; + min-width: 150px; + border: 1px solid #f57c00; + background: #ffad42; + color: black; + height: 31px; +} +form button.submit::-moz-focus-inner { + border: 0; +} + +a, button { + outline: none; +} + +button::-moz-focus-inner, +input[type=button]::-moz-focus-inner, +input[type=submit]::-moz-focus-inner, +input[type=reset]::-moz-focus-inner { + padding: 0 !important; + border: 0 none !important; +} + +.ce-block__content { + word-wrap: break-word; +} +.ce-block__content .clearfix::after { + clear: both; + display: block; + content: ""; + height: 0; +} +.ce-block__content h1, .ce-block__content h2, .ce-block__content h3, .ce-block__content h4, .ce-block__content h5, .ce-block__content h6, .ce-block__content p, .ce-block__content dl, .ce-block__content ol, .ce-block__content ul { + margin: 0 0 1em !important; +} +.ce-block__content blockquote { + border-left: solid 2px black; + margin-left: 0; + padding-left: 5px; + color: black; +} +.ce-block__content .hide-by-clipping { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + border: 0; +} +.ce-block__content img.fr-rounded, +.ce-block__content .fr-img-caption.fr-rounded img { + border-radius: 10px; + -moz-border-radius: 10px; + -webkit-border-radius: 10px; + -moz-background-clip: padding; + -webkit-background-clip: padding-box; + background-clip: padding-box; +} +.ce-block__content img.fr-bordered, +.ce-block__content .fr-img-caption.fr-bordered img { + border: solid 5px #CCC; +} +.ce-block__content img.fr-bordered { + -webkit-box-sizing: content-box; + -moz-box-sizing: content-box; + box-sizing: content-box; +} +.ce-block__content .fr-img-caption.fr-bordered img { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} +.ce-block__content span.fr-emoticon { + font-weight: normal; + font-family: "Apple Color Emoji", "Segoe UI Emoji", "NotoColorEmoji", "Segoe UI Symbol", "Android Emoji", "EmojiSymbols"; + display: inline; + line-height: 0; +} +.ce-block__content img { + position: relative; + max-width: 100%; +} +.ce-block__content img.fr-dib { + margin: 5px auto; + display: block; + float: none; + vertical-align: top; +} +.ce-block__content img.fr-dib.fr-fil { + margin-left: 0; + text-align: left; +} +.ce-block__content img.fr-dib.fr-fir { + margin-right: 0; + text-align: right; +} +.ce-block__content img.fr-dii { + display: inline-block; + float: none; + vertical-align: bottom; + margin-left: 5px; + margin-right: 5px; + max-width: calc(100% - 10px); +} +.ce-block__content img.fr-dii.fr-fil { + float: left; + margin: 5px 5px 5px 0; + max-width: calc(100% - 5px); +} +.ce-block__content img.fr-dii.fr-fir { + float: right; + margin: 5px 0 5px 5px; + max-width: calc(100% - 5px); +} +.ce-block__content span.fr-img-caption { + position: relative; + max-width: 100%; +} +.ce-block__content span.fr-img-caption.fr-dib { + margin: 5px auto; + display: block; + float: none; + vertical-align: top; +} +.ce-block__content span.fr-img-caption.fr-dib.fr-fil { + margin-left: 0; + text-align: left; +} +.ce-block__content span.fr-img-caption.fr-dib.fr-fir { + margin-right: 0; + text-align: right; +} +.ce-block__content span.fr-img-caption.fr-dii { + display: inline-block; + float: none; + vertical-align: bottom; + margin-left: 5px; + margin-right: 5px; + max-width: calc(100% - 10px); +} +.ce-block__content span.fr-img-caption.fr-dii.fr-fil { + float: left; + margin: 5px 5px 5px 0; + max-width: calc(100% - 5px); +} +.ce-block__content span.fr-img-caption.fr-dii.fr-fir { + float: right; + margin: 5px 0 5px 5px; + max-width: calc(100% - 5px); +} +.ce-block__content a.fr-strong { + font-weight: 700; +} +.ce-block__content a.fr-green { + color: green; +} +.ce-block__content .fr-img-caption { + text-align: center; +} +.ce-block__content .fr-img-caption .fr-img-wrap { + padding: 0; + display: inline-block; + margin: auto; + text-align: center; + width: 100%; +} +.ce-block__content .fr-img-caption .fr-img-wrap img { + display: block; + margin: auto; + width: 100%; +} +.ce-block__content .fr-img-caption .fr-img-wrap > span { + margin: auto; + display: block; + padding: 5px 5px 10px; + font-size: 14px; + font-weight: initial; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + -webkit-opacity: 0.9; + -moz-opacity: 0.9; + opacity: 0.9; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; + width: 100%; + text-align: center; +} +.ce-block__content a { + color: #bb4d00; +} +.ce-block__content dt { + font-weight: bold; +} +.ce-block__content ol { + list-style-type: decimal; + padding-left: 40px; +} +.ce-block__content ul { + list-style-type: disc; + padding-left: 40px; +} +.ce-block__content h1 { + font-size: 1.8em; + font-weight: bold; +} +.ce-block__content h2 { + font-size: 1.6em; + font-weight: bold; +} +.ce-block__content h3 { + font-size: 1.4em; + font-weight: bold; +} +.ce-block__content h4 { + font-size: 1.2em; + font-weight: bold; +} +.ce-block__content h5 { + font-size: 1em; + font-weight: bold; +} +.ce-block__content h6 { + font-size: 0.8em; + font-weight: bold; +} +.ce-block__content hr { + width: 100%; +} +.ce-block__content strong { + font-weight: 700; +} + +/* Dark theme */ +#nav { + display: flex; + flex-direction: column; +} +#nav .top { + background: #002f6c; + color: white; + padding: 0 10px 0 0; + min-height: 100px; + display: flex; +} +#nav .top button.dark { + background: transparent; + color: #ffad42; + border: none; + cursor: pointer; + font-weight: bold; +} +#nav .top a.logo { + background: 25px center no-repeat transparent; + background-size: auto 91px; + padding-left: 120px; + display: flex; + color: white; + text-decoration: none; +} +#nav .top h2 { + align-self: center; + font-size: 30px; +} +#nav .top aside { + flex-grow: 2; + display: flex; + flex-direction: column; + align-items: flex-end; + padding: 10px 0; +} +#nav .top aside p { + font-size: 0.8em; + color: #999999; + padding-bottom: 5px; +} +#nav .top aside p a { + margin-left: 5px; +} +#nav .top aside p button { + font-size: 0.8em; +} +#nav .top aside a, #nav .top aside a:visited { + font-weight: bold; + text-align: center; + color: #ffad42; + font-size: 0.8em; + line-height: 1.4em; + text-decoration: none; +} +#nav .top aside .adminlinks { + display: flex; + justify-content: center; + max-width: 200px; + flex-wrap: wrap; +} +#nav .top aside .adminlinks a { + padding: 3px 5px; + min-width: 100px; +} +#nav .top aside .loading-spinner { + position: relative; + width: 200px; +} +#nav nav { + display: flex; + background: #3D77C7; + color: white; +} +#nav nav .hassubmenu { + flex-grow: 2; + flex-basis: 0; + display: flex; +} +#nav nav a, #nav nav a:visited { + flex-grow: 2; + flex-basis: 0; + display: flex; + align-items: center; + justify-content: center; + text-align: center; + color: white; + padding: 10px; + font-size: 0.9em; + text-decoration: none; +} +#nav nav a.active, #nav nav a:visited.active { + border-bottom: 3px solid #f57c00; +} +#nav .loading-spinner { + position: relative; + flex-grow: 2; + flex-basis: 0; +} +#nav .menuerror { + background: #01579b; + text-align: center; + padding: 10px; + color: #FFC7C7; + font-weight: bold; +} + +.avifsupport #nav .top a.logo { + background-image: url("/assets/img/logo.avif"); +} + +.jpegonly #nav .top a.logo { + background-image: url("/assets/img/logo_small.jpg"); +} + +@media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min--moz-device-pixel-ratio: 2), only screen and (-o-min-device-pixel-ratio: 2/1), only screen and (min-device-pixel-ratio: 2), only screen and (min-resolution: 192dpi), only screen and (min-resolution: 2dppx) { + .jpegonly #nav .top a.logo { + background-image: url("/assets/img/logo.jpg"); + } +} +.darkmodeon #nav .top { + background: #002f6c; + color: white; +} +.darkmodeon #nav .top a.logo { + color: white; +} +.darkmodeon #nav .top aside p { + color: #999999; +} +.darkmodeon #nav .top aside a, .darkmodeon #nav .top aside a:visited { + color: #ffad42; +} +.darkmodeon #nav nav { + background: #28518B; + color: white; +} +.darkmodeon #nav nav a, .darkmodeon #nav nav a:visited { + color: white; +} +.darkmodeon #nav nav a.active, .darkmodeon #nav nav a:visited.active { + border-bottom: 3px solid #e05e00; +} +.darkmodeon #nav .menuerror { + background: #013b68; + color: #FFC7C7; +} + +footer { + margin-top: 0px; + border-top: 1px solid #ccc; + display: flex; + padding: 20px; + background: #ccc; + color: black; +} +footer .sitemap { + display: flex; + flex: 2 1 auto; + flex-direction: column; + text-align: center; + align-items: center; + font-size: 11px; + font-weight: bold; + padding: 0 20px; +} +footer .sitemap a { + text-decoration: none; + color: #8f3c00; +} +footer .sitemap a.root { + display: block; + margin: 2px; + padding: 2px 0 0; +} +footer .sitemap ul { + margin: 2px 0 0; + display: flex; + flex-wrap: wrap; + padding: 0 0 10px; + justify-content: center; + border-bottom: 1px solid white; + margin-bottom: 10px; + min-width: 300px; +} +footer .sitemap ul li { + padding: 2px 5px; + list-style-type: disc; + list-style-position: inside; +} +footer .footer-filler { + width: 119px; + flex: 0 0 119px; +} +footer .footer-logo { + background: center no-repeat transparent; + background-size: contain; + align-self: center; + width: 119px; + height: 150px; + flex: 0 0 119px; +} +footer .meta { + flex-grow: 2; + display: flex; + flex-wrap: wrap; + padding-top: 5px; + align-items: flex-end; + text-align: center; + justify-content: center; +} +footer .meta a { + margin: 0 3px; +} + +.darkmodeon footer { + border-top: 1px solid #343536; + background: #343536; + color: #d7dadc; +} +.darkmodeon footer .sitemap a { + color: #fe791b; +} + +.daymode.jpegonly footer .footer-logo { + background-image: url("/assets/img/tsun_small.jpg"); +} + +.darkmodeon.jpegonly footer .footer-logo { + background-image: url("/assets/img/dark_tsun_small.jpg"); +} + +.avifsupport footer .footer-logo { + background-image: url("/assets/img/tsun.avif"); +} + +@media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min--moz-device-pixel-ratio: 2), only screen and (-o-min-device-pixel-ratio: 2/1), only screen and (min-device-pixel-ratio: 2), only screen and (min-resolution: 192dpi), only screen and (min-resolution: 2dppx) { + .daymode.jpegonly .footer-logo { + background-image: url("/assets/img/tsun.jpg"); + } + .darkmodeon.jpegonly .footer-logo { + background-image: url("/assets/img/dark_tsun.jpg"); + } +} +@media (pointer: coarse) { + footer .sitemap a.root, +footer .sitemap a.child { + padding: 10px 10px; + display: inline-block; + } +} +@media screen and (max-width: 900px) { + footer .footer-filler { + display: none; + } +} +@media screen and (max-width: 480px) { + footer { + flex-direction: column; + align-items: center; + } + footer .footer-logo { + margin-top: 20px; + } + footer .sitemap { + padding: 0px; + } + footer .sitemap ul { + align-self: stretch; + } + footer .sitemap a.root, +footer .sitemap a.child { + padding: 9px 10px; + display: inline-block; + } +} +/* Dark theme */ +.login-wrapper { + flex-grow: 2; + display: flex; + flex-direction: column; + justify-content: center; + background: #ccc; + padding: 40px 0; +} +.login-wrapper .login-icon { + background: url("./img/login.png") center no-repeat transparent; + background-size: contain; + width: 106px; + height: 130px; + align-self: center; +} + +article.login { + text-align: center; + flex-grow: 0; + border: 1px solid #555; + background: white; + color: black; + align-self: center; +} +article.login .content { + align-items: center; + align-self: center; + padding: 20px 40px; +} +article.login h5 { + margin-bottom: 20px; +} +article.login .loading-spinner { + width: 240px; + height: 50px; + position: relative; +} +article.login form { + align-self: stretch; + margin-bottom: 20px; +} + +.darkmodeon .login-wrapper { + background: #343536; +} +.darkmodeon article.login { + border: 1px solid #808080; + background: black; + color: #d7dadc; +} + +newsentry { + display: flex; + color: #757575; + font-size: 12px; +} +newsentry .title { + display: flex; + margin-bottom: 10px !important; +} +newsentry .title a { + text-decoration: none; + color: #bb4d00; + font-size: 14px; + font-weight: bold; +} +newsentry a.cover { + flex-shrink: 0; + margin-right: 10px; + width: 124px; + text-align: center; +} +newsentry a.cover img { + max-height: 70px; + width: auto; +} +newsentry a.nobg { + height: 70px; + width: 124px; + background: #ddd; +} +newsentry .entrycontent { + display: flex; + flex-direction: column; + flex: 2 1 auto; + padding: 0 5px 5px; +} +newsentry .entrycontent h3 { + margin-bottom: 0 !important; + font-size: 1.3em; + font-weight: bold; +} +newsentry .entrymeta { + font-size: 10px; + color: #757575; + font-weight: bold; + display: none; +} + +fileinfo { + padding: 0 5px; + margin-bottom: 5px; + display: flex; + flex-direction: column; +} +fileinfo.slim { + padding: 0; + margin: 0; +} +fileinfo .filetitle { + display: block; + line-height: 16px; +} +fileinfo .filetitle .prefix { + font-weight: bold; + margin-right: 5px; +} +fileinfo .filetitle a { + color: #bb4d00; + font-weight: bold; + text-decoration: none; + padding-right: 5px; + border-right: 1px solid #ccc; + margin-right: 5px; + display: inline-block; +} +fileinfo .trimmed { + padding: 3px 0 5px 25px; +} +fileinfo ul { + margin: 10px 0; + padding-left: 0; + list-style-type: disc; + list-style-position: inside; +} +fileinfo ul li { + padding-left: 20px; +} + +@media screen and (max-width: 480px) { + fileinfo, +fileinfo.slim { + padding: 8px 5px; + justify-content: center; + } +} +@media (pointer: coarse) { + fileinfo, +fileinfo.slim { + padding: 8px 5px; + justify-content: center; + } +} +newsitem { + display: flex; + flex-direction: column; + font-size: 15px; + background: transparent; + border: none; +} +newsitem .title { + text-decoration: none; + background: #f57c00; + color: black; + font-size: 1.2em; + font-weight: bold; + text-align: center; + padding: 5px 10px; + margin-bottom: 10px; +} +newsitem .newsitemcontent { + display: flex; +} +newsitem a.cover { + flex-shrink: 0; + margin-right: 10px; + width: 400px; + text-align: center; +} +newsitem a.cover picture { + max-height: 400px; + max-width: 400px; + width: auto; +} +newsitem a.nobg { + height: 225px; + width: 400px; + background: #ddd; +} +newsitem .entrycontent { + display: flex; + flex-direction: column; + flex: 2 1 auto; + padding: 0 5px 5px; +} +newsitem .entrycontent.extrapadding { + padding: 0 15px 5px; +} +newsitem .entrycontent h3 { + margin-bottom: 0 !important; + font-size: 1.3em; + font-weight: bold; +} +newsitem .entrycontent .fr-view { + margin-bottom: 10px; +} +newsitem .entrycontent fileinfo { + font-size: 0.8em; +} +newsitem .entrymeta { + flex-grow: 2; + font-size: 11px; + color: #757575; + font-weight: bold; + padding: 10px 0; +} +newsitem .entrymeta a { + color: #bb4d00; + margin: 0 5px; + text-decoration: none; +} + +pages { + display: flex; + justify-content: center; + width: 100%; +} +pages a, pages div { + display: block; + font-size: 0.9em; + max-width: 80px; + flex-grow: 2; + text-align: center; + padding: 10px !important; + margin-top: 10px; +} +pages a { + color: #bb4d00; + cursor: pointer; +} + +@media screen and (max-width: 1000px) { + newsitem a.cover { + width: 300px; + } + newsitem a.cover picture { + max-width: 300px; + width: auto; + } +} +@media screen and (max-width: 639px) { + newsitem a.cover { + width: 100%; + margin-bottom: 20px; + } + newsitem a.cover picture { + max-height: unset; + max-width: unset; + width: 100%; + } + newsitem .newsitemcontent { + flex-direction: column; + } + newsitem .entrycontent.extrapadding { + padding: 0 5px 5px; + } +} +@media screen and (max-width: 440px) { + newsentry { + flex-direction: column; + align-items: center; + } + newsentry a.cover { + margin: 0 0 15px; + width: 100%; + } + newsentry a.cover img { + max-height: unset; + width: 100%; + } +} +.darkmodeon newsentry { + color: hsl(0deg, 0%, 55%); +} +.darkmodeon newsentry .title a { + color: #e05e00; +} +.darkmodeon newsentry .entrymeta { + color: hsl(0deg, 0%, 55%); +} +.darkmodeon fileinfo .filetitle a { + color: #e05e00; + border-right: 1px solid #343536; +} +.darkmodeon newsitem { + background: #1a1a1b; + border: 1px solid #343536; +} +.darkmodeon newsitem .title { + background: #e05e00; + color: black; +} +.darkmodeon newsitem .entrymeta { + color: hsl(0deg, 0%, 55%); +} +.darkmodeon newsitem .entrymeta a { + color: #e05e00; +} +.darkmodeon pages a { + color: #e05e00; +} + +article.page { + padding-bottom: 0; +} +article.page header { + text-align: center; + margin: 20px 20px 0; + padding: 10px; + background: #f57c00; + width: 100%; + max-width: 1920px; + align-self: center; +} +article.page header h1 { + color: black; +} +article.page .loading-spinner { + position: relative; + flex-grow: 2; + height: 300px; +} +article.page .page-banner { + background-size: cover; + background-repeat: no-repeat; + background-position: center; + height: 150px; + width: 100%; + max-width: 1920px; + align-self: center; + flex: 0 0 150px; +} +article.page .page-cover { + margin: 0 0 20px; +} +article.page .page-cover.single { + margin: 0 20px 20px; + padding: 0 20px; + width: calc(100% - 40px); + max-width: 800px; + flex: 2 0 0; +} +article.page .goback { + width: 100%; + max-width: 1050px; + align-self: center; + padding: 10px 5px 0; + margin-bottom: -10px; +} +article.page .goback a { + font-weight: bold; + text-decoration: none; + color: #bb4d00; +} +article.page .admin-actions { + margin-bottom: 20px; +} +article.page aside.sidebar h4, +article.page aside.news h4 { + font-size: 14px; + font-weight: bold; + margin: 0 0 10px; +} +article.page .container { + flex-direction: column; + align-items: center; + height: auto; + padding: 20px 0; + width: 100%; + max-width: 1050px; + align-self: center; + background: transparent; + border-right: none; + border-left: none; +} +article.page .container.multi { + align-items: flex-start; + flex-direction: row; + flex-grow: 2; +} +article.page aside.sidebar { + width: 250px; + flex: 0 0 250px; + padding: 0 10px; + margin-bottom: 10px; +} +article.page aside.sidebar h4 { + padding: 0 5px 5px; + border-bottom: 1px solid #ccc; +} +article.page aside.sidebar a { + padding: 5px 5px 0px; + display: block; + text-decoration: none; + color: #bb4d00; + font-size: 14px; + font-weight: bold; +} +article.page .fr-view { + margin: 0 20px; + padding: 0 20px; + width: calc(100% - 40px); + max-width: 800px; + flex: 2 0 0; +} +article.page .fr-view .page-cover { + margin: 0 -10px 20px; +} +article.page .fr-view main { + padding: 0 5px; +} + +aside.news { + border-top: 1px solid #ccc; + margin-top: 20px; + padding: 10px 10px; + margin: 0 -10px; + width: 100%; + align-self: center; +} +aside.news .loading-spinner { + position: relative; + height: 133px; +} +aside.news newsentry { + margin: 0 0 10px; +} +aside.news.single { + flex: 2 0 0; + padding: 0 20px 10px; + border-top: none; + margin-top: 0; + align-self: flex-start; + margin: 0; +} +aside.news.single > h4 { + padding: 0 5px 5px; + border-bottom: 1px solid #ccc; +} + +@media screen and (max-width: 800px) { + article.page aside.sidebar { + width: 200px; + flex: 0 0 200px; + } +} +@media screen and (max-width: 639px) { + article.page { + padding: 0; + } + article.page .container { + flex-direction: column !important; + border: none !important; + } + article.page aside.sidebar { + width: calc(100% - 80px); + flex: 0 0 auto; + margin: 0px 30px 30px; + border-bottom: 1px solid #ccc; + padding: 0 0 5px; + } + article.page .news.single .page-cover { + margin: 0 0 20px; + } +} +@media screen and (max-width: 360px) { + article.page .container { + flex-direction: column; + } + article.page aside { + margin: 0px 0px 10px; + } + article.page .fr-view { + margin: 0; + width: 100%; + padding: 0 5px; + } +} +@media screen and (max-width: 480px) { + article.page aside.sidebar a { + padding: 9px 10px; + } +} +@media (pointer: coarse) { + article.page aside.sidebar a { + padding: 9px 10px; + } +} +.darkmodeon article.page header { + background: #e05e00; +} +.darkmodeon article.page header h1 { + color: black; +} +.darkmodeon article.page .container { + background: #1a1a1b; + border-right: 1px solid #343536; + border-left: 1px solid #343536; +} +.darkmodeon article.page aside.sidebar h4 { + border-bottom: 1px solid #343536; +} +.darkmodeon article.page aside.sidebar a { + color: #e05e00; +} +.darkmodeon article.page .goback a { + color: #e05e00; +} +.darkmodeon aside.news.single > h4 { + border-bottom: 1px solid #343536; +} +@media screen and (max-width: 639px) { + .darkmodeon article.page aside.sidebar { + border-bottom: 1px solid #343536; + } +} +.darkmodeon .goback a { + color: #e05e00; +} + +article.article { + padding: 0; +} +article.article header { + text-align: center; + margin: 20px 20px 0; + padding: 10px; + background: #f57c00; + width: 100%; + max-width: 1920px; + align-self: center; +} +article.article header h1 { + color: black; +} +article.article .loading-spinner { + position: relative; + flex-grow: 2; + height: 300px; +} +article.article .cover { + margin: 0 0 20px; +} +article.article .admin-actions { + margin-bottom: 20px; +} +article.article .fr-view { + margin: 0 20px; + padding: 20px 20px 10px; + width: calc(100% - 40px); + max-width: 800px; + flex: 2 0 0; + align-self: center; + background: transparent; + border-right: 1px solid #343536; + border-left: 1px solid #343536; +} +article.article .fr-view a.cover img { + margin-bottom: 30px; +} +article.article .fr-view main { + padding: 0 5px; +} +article.article fileinfo { + font-size: 0.8em; +} +article.article fileinfo ul { + padding-left: 0; +} +article.article .opencomments { + border: none; + align-self: center; + width: calc(100% - 40px); + max-width: 300px; + background: transparent; + font-size: 1.2em; + color: #bb4d00; + cursor: pointer; + height: 50px; + margin: 0 0 30px; +} +article.article .commentcontainer { + align-self: center; + width: calc(100% - 40px); + max-width: 800px; + margin-bottom: 30px; + min-height: 50px; + position: relative; +} +article.article .goback { + width: calc(100% - 40px); + max-width: 800px; + align-self: center; + padding: 30px 5px 0; + margin-bottom: -10px; +} +article.article .goback a { + font-weight: bold; + text-decoration: none; + color: #bb4d00; +} +article.article .entrymeta { + flex-grow: 2; + font-size: 11px; + color: #757575; + font-weight: bold; + margin: 40px 0 0; +} +article.article .entrymeta a { + color: #bb4d00; + margin: 0 4px; + text-decoration: none; +} + +@media screen and (max-width: 639px) { + article.article .fr-view { + margin: 0; + width: 100%; + border: none !important; + } +} +.darkmodeon article.article header { + background: #e05e00; +} +.darkmodeon article.article header h1 { + color: black; +} +.darkmodeon article.article .fr-view { + background: #1a1a1b; +} +.darkmodeon article.article .opencomments { + color: #e05e00; +} +.darkmodeon article.article .goback a { + color: #e05e00; +} +.darkmodeon article.article .entrymeta { + color: hsl(0deg, 0%, 55%); +} +.darkmodeon article.article .entrymeta a { + color: #e05e00; +} + +.frontpage-banner { + background-color: #999999; + background-size: cover; + background-repeat: no-repeat; + background-position: center; + height: 150px; + width: calc(100% - 40px); + max-width: 1920px; + align-self: center; + flex: 0 0 150px; + margin-bottom: 20px; + color: white; + text-shadow: 0 0 0.3em #000000; + text-align: right; + font-size: 1.6em; + padding: 10px 20px; + text-decoration: none; + margin: 20px 0; +} + +frontpage { + display: flex; + align-self: center; + width: calc(100% - 40px); + max-width: 1200px; + flex: 2 0 0; +} +frontpage .frontpage-news { + display: flex; + flex-direction: column; + flex-grow: 2; +} +frontpage aside.sidebar { + width: 250px; + flex: 0 0 250px; + align-self: flex-start; + margin-right: 20px; + display: flex; + flex-direction: column; +} +frontpage aside.sidebar .categories { + padding: 10px 10px 20px; + margin-bottom: 20px; + background: transparent; + border: none; +} +frontpage aside.sidebar h4 { + font-size: 14px; + padding: 0 5px 5px; + font-weight: bold; + margin: 0 0 10px; + border-bottom: 1px solid #ccc; +} +frontpage aside.sidebar ul { + margin: 0; + padding: 0; +} +frontpage aside.sidebar ul li { + padding-left: 10px; + list-style-type: disc; + list-style-position: inside; +} +frontpage aside.sidebar a { + padding: 2px 5px; + display: block; + text-decoration: none; + color: #bb4d00; + font-size: 14px; + font-weight: bold; + display: inline-block; + max-width: 200px; +} +frontpage .loading-spinner { + height: 100px; + position: relative; +} +frontpage newsitem { + margin-bottom: 30px; +} +frontpage .asunaside { + display: block; + width: 200px; + height: 480px; + background-size: contain; + background-repeat: no-repeat; + background-position: top left; + align-self: center; +} + +@media screen and (max-width: 1000px) { + frontpage aside.sidebar { + width: 200px; + flex: 0 0 200px; + } + frontpage aside.sidebar a { + max-width: 150px; + } +} +@media screen and (max-width: 900px) { + frontpage { + flex-direction: column; + } + frontpage aside.sidebar { + width: auto; + flex: 0 0 auto; + align-self: stretch; + margin: 20px 0 30px; + border-bottom: 1px solid #ccc; + order: 2; + } + frontpage aside.sidebar .categories { + display: flex; + flex-direction: column; + align-items: center; + } + frontpage aside.sidebar .categories h4 { + align-self: stretch; + } + frontpage aside.sidebar a { + max-width: unset; + } +} +.daymode.jpegonly frontpage .asunaside { + background-image: url("/assets/img/asuna_frontpage.jpg"); +} + +.daymode.avifsupport frontpage .asunaside { + background-image: url("/assets/img/asuna_frontpage.avif?v=1"); +} + +.darkmodeon.jpegonly frontpage .asunaside { + background-image: url("/assets/img/dark_asuna_frontpage.jpg"); +} + +.darkmodeon.avifsupport frontpage .asunaside { + background-image: url("/assets/img/dark_asuna_frontpage.avif?v=1"); +} + +@media screen and (max-width: 480px) { + .frontpage-banner { + width: 100%; + } + frontpage { + padding: 0 10px; + margin: 0; + width: 100%; + } + frontpage aside.sidebar a { + padding: 9px 10px; + } +} +@media (pointer: coarse) { + frontpage aside.sidebar a { + padding: 9px 10px; + } +} +.darkmodeon .frontpage-banner { + background-color: #999999; +} +.darkmodeon frontpage aside.sidebar .categories { + background: #1a1a1b; + border: 1px solid #343536; +} +.darkmodeon frontpage aside.sidebar h4 { + border-bottom: 1px solid #343536; +} +.darkmodeon frontpage aside.sidebar a { + color: #e05e00; +} + +.darkmodeon .maincontainer { + background: black; + color: #d7dadc; +} +.darkmodeon .error { + color: #e05e00; +} +.darkmodeon .fr-view blockquote { + border-left-color: #d7dadc; + color: #d7dadc; +} +.darkmodeon article.article header span, +.darkmodeon article.login header span, +.darkmodeon article.page header span { + color: hsl(0deg, 0%, 55%); +} +.darkmodeon article.article .content h5, +.darkmodeon article.login .content h5, +.darkmodeon article.page .content h5 { + color: #808080; +} +.darkmodeon .login form input[type=text], +.darkmodeon .login form input[type=password], +.darkmodeon .login form select, +.darkmodeon .login form textarea { + background: #272729; + border: 1px solid #343536; + color: white; +} +.darkmodeon .login form input[type=text]:hover, .darkmodeon .login form input[type=text]:focus, +.darkmodeon .login form input[type=password]:hover, +.darkmodeon .login form input[type=password]:focus, +.darkmodeon .login form select:hover, +.darkmodeon .login form select:focus, +.darkmodeon .login form textarea:hover, +.darkmodeon .login form textarea:focus { + border-color: #e05e00; +} +.darkmodeon .login form input[type=submit] { + border: 1px solid #e05e00; + background: #ffad42; + color: black; +} +.darkmodeon .login form input[type=submit]:hover { + background: #e05e00; + color: white; +} +.darkmodeon .fr-view a { + color: #e05e00; +} + +:root { + --primary-bg: #01579b; + --primary-fg: white; + --primary-fg-url: #FFC7C7; + --primary-light-bg: #3D77C7; + --primary-light-fg: white; + --primary-dark-bg: #002f6c; + --primary-dark-fg: white; + --secondary-bg: #f57c00; + --secondary-fg: black; + --secondary-light-bg: #ffad42; + --secondary-light-fg: black; + --secondary-dark-bg: #bb4d00; + --secondary-dark-fg: white; + --table-fg: #333; + --border: #ccc; + --border-fg: black; + --border-fg-url: #8f3c00; + --title-fg: #555; + --meta-fg: #757575; + --meta-light-fg: #999999; + --main-bg: white; + --main-fg: black; + --input-bg: white; + --input-border: #333; + --input-fg: black; + --newsitem-bg: transparent; + --newsitem-border: none; +} + +.darkmodeon { + --primary-bg: #013b68; + --primary-fg: white; + --primary-fg-url: #FFC7C7; + --primary-light-bg: #28518B; + --primary-light-fg: white; + --primary-dark-bg: #002f6c; + --primary-dark-fg: white; + --secondary-bg: #e05e00; + --secondary-fg: black; + --secondary-light-bg: #ffad42; + --secondary-light-fg: black; + --secondary-dark-bg: #e05e00; + --secondary-dark-fg: white; + --secondary-darker-fg: #fe791b; + --table-fg: #333; + --border: #343536; + --border-fg: #d7dadc; + --border-fg-url: #e05e00; + --title-fg: #808080; + --meta-fg: hsl(0, 0%, 55%); + --meta-light-fg: #999999; + --main-bg: black; + --main-fg: #d7dadc; + --input-bg: #272729; + --input-border: #343536; + --input-fg: white; + --newsitem-bg: #1a1a1b; + --newsitem-border: 1px solid #343536; +} + +/*# sourceMappingURL=app.css.map */ diff --git a/nfp_moe_old/public/assets/app.css.map b/nfp_moe_old/public/assets/app.css.map new file mode 100644 index 0000000..bcee5de --- /dev/null +++ b/nfp_moe_old/public/assets/app.css.map @@ -0,0 +1 @@ +{"version":3,"sourceRoot":"","sources":["../../app/_common.scss","../../app/app.scss","../../app/editor.scss","../../app/menu/menu.scss","../../app/footer/footer.scss","../../app/login/login.scss","../../app/widgets/common.scss","../../app/pages/page.scss","../../app/article/article.scss","../../app/frontpage/frontpage.scss"],"names":[],"mappings":"AAiCA;AC/BA;EACE;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;IAAI;;;AAGN;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE,YDnCQ;ECoCR,ODnCQ;ECoCR;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA,ODrEkB;ECsElB;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA,YD5EO;EC6EP;;AAEA;EACE;EACA;EACA;;;AAIJ;EAAW;;;AAEX;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAEA;EACE;EACA,ODlGK;ECmGL;;AAGF;EACE;EACA,ODvGI;;AC2GR;EACE;EACA;;AAEA;EACE;EACA;EACA,ODnHK;;;ACwHX;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAGF;AAAA;AAAA;AAAA;AAAA;EAKE;EACA;EACA;EACA;EACA,YDvIO;ECwIP;EACA,ODvIO;ECwIP;;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAEE,cD/JS;;ACmKb;AAAA;EAEE;EACA;EACA;EACA;EACA;EACA,YDxKiB;ECyKjB,ODxKiB;ECyKjB;;AAGF;EACE;;;AAIJ;EACE;;;AAGF;AAAA;AAAA;AAAA;EAIE;EACA;;;ACtMF;EACE;;AAEA;EACE;EACA;EACA;EACA;;AAEF;EACE;;AAGF;EACE;EACA;EACA;EACA,OFQM;;AELR;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;AAAA;EAEE;EACA;EACA;EACA;EACA;EACA;;AAGF;AAAA;EAEE;;AAGF;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EAAI,OFrLc;;AEsLlB;EAAK;;AACL;EAAK;EAA0B;;AAC/B;EAAK;EAAuB;;AAC5B;EAAK;EAAkB;;AACvB;EAAK;EAAkB;;AACvB;EAAK;EAAkB;;AACvB;EAAK;EAAkB;;AACvB;EAAK;EAAkB;;AACvB;EAAK;EAAkB;;AACvB;EAAK;;AACL;EAAS;;;AF5KX;AG/BA;EACE;EACA;;AAEA;EACE,YHDc;EGEd,OHDc;EGEd;EACA;EACA;;AAEA;EACE;EACA,OHJe;EGKf;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA,OHnBY;EGoBZ;;AAGF;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA,OHtBQ;EGuBR;;AAEA;EACE;;AAGF;EACE;;AAIJ;EACE;EACA;EACA,OHhDa;EGiDb;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAIJ;EACE;EACA;;AAKN;EACE;EACA,YHlFe;EGmFf,OHlFe;;AGoFf;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA,OHjGa;EGkGb;EACA;EACA;;AAEA;EACE;;AAKN;EACE;EACA;EACA;;AAGF;EACE,YHvHS;EGwHT;EACA;EACA,OHxHa;EGyHb;;;AAIJ;EACE;;;AAGF;EACE;;;AAGF;EAOE;IACE;;;AAMA;EACE,YH/GiB;EGgHjB,OH/GiB;;AGiHjB;EACE,OHlHe;;AGsHf;EACE,OHvGW;;AG0Gb;EACE,OHvHgB;;AG4HtB;EACE,YHpIkB;EGqIlB,OHpIkB;;AGsIlB;EACE,OHvIgB;;AGyIhB;EACE;;AAKN;EACE,YHpJY;EGqJZ,OHnJgB;;;AIpCtB;EACE;EACA;EACA;EACA;EACA,YJWO;EIVP,OJWU;;AITV;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA,OJFU;;AIKZ;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAKN;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EAAI;;;AAKN;EACE;EACA,YJ1BU;EI2BV,OJ1Ba;;AI6BX;EACE,OJlCmB;;;AIwC3B;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EAOE;IACE;;EAGF;IACE;;;AAIJ;EACE;AAAA;IAEE;IACA;;;AAIJ;EACE;IACE;;;AAIJ;EACE;IACE;IACA;;EAEA;IACE;;EAGF;IACE;;EAEA;IACE;;EAKN;AAAA;IAEE;IACA;;;AJvHJ;AK/BA;EACE;EACA;EACA;EACA;EACA,YLUO;EKTP;;AAEA;EACE;EACA;EACA;EACA;EACA;;;AAIJ;EACE;EACA;EACA;EACA,YLCQ;EKAR,OLCQ;EKAR;;AAEA;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;EACA;;AAGF;EACE;EACA;;;AAKF;EACE,YLCU;;AKEZ;EACE;EACA,YLGW;EKFX,OLGW;;;AM3Df;EACE;EACA,ONkBQ;EMjBR;;AAEA;EACE;EACA;;AAEA;EACE;EACA,ONCc;EMAd;EACA;;AAIJ;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAIJ;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAIJ;EACE;EACA,ON9BM;EM+BN;EACA;;;AAIJ;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;EACA;;AAEA;EACE;EACA;;AAGF;EACE,ONjEc;EMkEd;EACA;EACA;EACA;EACA;EACA;;AAIJ;EACE;;AAGF;EACE;EACA;EACA;EACA;;AAEA;EACE;;;AAKN;EACE;AAAA;IAEE;IACA;;;AAIJ;EACE;AAAA;IAEE;IACA;;;AAIJ;EACE;EACA;EACA;EACA,YN9FY;EM+FZ,QN9FgB;;AMgGhB;EACE;EACA,YNxHW;EMyHX,ONxHW;EMyHX;EACA;EACA;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAIJ;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;;AAIJ;EACE;EACA;EACA,ONxKM;EMyKN;EACA;;AAEA;EACE,ONrLc;EMsLd;EACA;;;AAKN;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE,ON5MgB;EM6MhB;;;AAIJ;EACE;IACE;;EAEA;IACE;IACA;;;AAKN;EAEI;IACE;IACA;;EAEA;IACE;IACA;IACA;;EAIJ;IACE;;EAGF;IACE;;;AAKN;EACE;IACE;IACA;;EAEA;IACE;IACA;;EAEA;IACE;IACA;;;AAON;EACE,ON3NW;;AM8NT;EACE,ONxOiB;;AM4OrB;EACE,ONpOS;;AM0OT;EACE,ONpPiB;EMqPjB;;AAKN;EACE,YNzOe;EM0Of,QNzOmB;;AM2OnB;EACE,YNnQc;EMoQd,ONnQc;;AMsQhB;EACE,ON3PS;;AM6PT;EACE,ONvQiB;;AM6QrB;EACE,ON9QmB;;;AO/CzB;EACE;;AAEA;EACE;EACA;EACA;EACA,YPEW;EODX;EACA;EACA;;AAEA;EACE,OPHS;;AOOb;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;;AAEA;EACE;EACA;EACA;EACA;EACA;;AAIJ;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA,OP3Cc;;AO+ClB;EACE;;AAKA;AAAA;EACE;EACA;EACA;;AAaJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EAEA,YP7DU;EO8DV,cP7Dc;EO8Dd,aP9Dc;;AOgEd;EACE;EACA;EACA;;AAIJ;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA,OPxGc;EOyGd;EACA;;AAIJ;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;;;AAKN;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;;AAGF;EAEE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;;AAKN;EACE;IACE;IACA;;;AAIJ;EACE;IACE;;EAEA;IACE;IACA;;EAGF;IACE;IACA;IACA;IACA;IACA;;EAGF;IACE;;;AAKN;EAEI;IACE;;EAGF;IACE;;EAGF;IACE;IACA;IACA;;;AAKN;EACE;IACE;;;AAIJ;EACE;IACE;;;AAMA;EACE,YPjMc;;AOkMd;EACE,OPlMY;;AOsMhB;EACE,YPlLa;EOmLb,cPlLiB;EOmLjB,aPnLiB;;AOuLjB;EACE;;AAGF;EACE,OP/MiB;;AOmNrB;EACE,OPpNmB;;AO0NnB;EACE;;AAKN;EACE;IACE;;;AAIJ;EACE,OPvOqB;;;AQ9CzB;EACE;;AAEA;EACE;EACA;EACA;EACA,YRCW;EQAX;EACA;EACA;;AAEA;EACE,ORJS;;AQQb;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA,YRTU;EQUV;EACA;;AAEA;EACE;;AAGF;EACE;;AAIJ;EACE;;AAEA;EACE;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA,ORtDgB;EQuDhB;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA,OR/Ec;;AQmFlB;EACE;EACA;EACA,OR9EM;EQ+EN;EACA;;AAEA;EACE,OR3Fc;EQ4Fd;EACA;;;AAKN;EAEI;IACE;IACA;IACA;;;AAOF;EACE,YRjFc;;AQmFd;EACE,ORnFY;;AQuFhB;EACE,YRnEa;;AQsEf;EACE,ORzFmB;;AQ4FrB;EACE,OR7FmB;;AQgGrB;EACE,ORxFS;;AQyFT;EACE,ORnGiB;;;AS/CzB;EACE,kBTqBc;ESpBd;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA,YTdQ;ESeR,QTdY;;ASiBd;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;;AAEA;EACE;EACA;EACA;;AAIJ;EACE;EACA;EACA;EACA,OT1Dc;ES2Dd;EACA;EACA;EACA;;AAIJ;EACE;EACA;;AAGF;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAIJ;EACE;IACE;IACA;;EAEA;IACE;;;AAKN;EACE;IACE;;EAEA;IACE;IACA;IACA;IACA;IACA;IACA;;EAEA;IACE;IACA;IACA;;EAEA;IACE;;EAIJ;IACE;;;AAMR;EACE;;;AAEF;EACE;;;AAGF;EACE;;;AAEF;EACE;;;AAGF;EACE;IACE;;EAGF;IACE;IACA;IACA;;EAGF;IACE;;;AAIJ;EACE;IACE;;;AAKF;EACE,kBTxHiB;;AS6Hf;EACE,YTtHW;ESuHX,QTtHe;;ASyHjB;EACE;;AAGF;EACE,OTjJiB;;;ACqKvB;EACE,YD1JW;EC2JX,OD1JW;;AC6Jb;EACE,OD3KqB;;AC8KvB;EACE,mBDlKW;ECmKX,ODnKW;;AC8KT;AAAA;AAAA;EACE,ODnLO;;ACwLT;AAAA;AAAA;EACE,OD1LQ;;ACgMZ;AAAA;AAAA;AAAA;EAIE,YD9LU;EC+LV;EACA,OD9LU;;ACgMV;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAEE,cDtNY;;AC0NhB;EACE;EACA,YD1NoB;EC2NpB,OD1NoB;;AC4NpB;EACE,YD5NiB;EC6NjB,OD5NiB;;ACkOrB;EAAI,ODnOiB;;;ACuOzB;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EAEA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EAEA;EACA","file":"app.css"} \ No newline at end of file