FossilRepo
Bind mount repos dir, add deploy.sh utility, fix docker-compose volume drift
Commit
afe42d07c9479b7cea1c376e22fd18e42c0e0e0321503f1f0449e8390759a5f1
Parent
c5882553139e407…
723 files changed
+279
+279
+1180
+1180
+343
+343
+34
+34
+130
+130
+627
+769
+769
+29
+29
+498
+498
+61
+61
+150
+150
+904
+904
+89
+89
+293
+293
+19
+19
+21
+21
+481
+481
+1
+1
+613
+613
+20
+20
+7
+7
+63
+63
+1
+1
+1
+1
+3
+3
+3
+3
+9
+9
+3
+3
+9
+9
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+110
+110
+3
+3
+34
+34
+19
+19
+3
+3
+3
+3
+116
+116
+311
+311
+204
+204
+408
+408
+252
+252
+33
+33
+239
+239
+29
+29
+16
+16
+38
+38
+184
+184
+30
+30
+359
+359
+8
+8
+79
+79
+15
+15
+43
+43
+15
+15
+51
+51
+29
+29
+169
+169
+20
+20
+10716
+10716
+2
+2
+21
+21
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+6820
+6820
+2
+2
+21
+21
+6126
+6126
+17
+17
+4
+4
+110
+13
+13
+7
+7
+63
+63
+21
+21
+159
+159
+1
+58
+1
-2
+28
+47
+10
-4
+3
-1
+2
-2
+24
-4
+26
+
__pycache__/conftest.cpython-314-pytest-9.0.2.pyc
+
accounts/__pycache__/__init__.cpython-314.pyc
+
accounts/__pycache__/admin.cpython-314.pyc
+
accounts/__pycache__/apps.cpython-314.pyc
+
accounts/__pycache__/forms.cpython-314.pyc
+
accounts/__pycache__/models.cpython-314.pyc
+
accounts/__pycache__/tests.cpython-314-pytest-9.0.2.pyc
+
accounts/__pycache__/urls.cpython-314.pyc
+
accounts/__pycache__/views.cpython-314.pyc
+
accounts/migrations/__pycache__/0001_initial.cpython-314.pyc
+
accounts/migrations/__pycache__/__init__.cpython-314.pyc
+
assets/admin/css/autocomplete.css
+
assets/admin/css/autocomplete.css.gz
+
assets/admin/css/autocomplete.d24f10bdee41.css
+
assets/admin/css/autocomplete.d24f10bdee41.css.gz
+
assets/admin/css/base.96c479cedf7a.css
+
assets/admin/css/base.96c479cedf7a.css.gz
+
assets/admin/css/base.css
+
assets/admin/css/base.css.gz
+
assets/admin/css/changelists.59465e72d1ef.css
+
assets/admin/css/changelists.59465e72d1ef.css.gz
+
assets/admin/css/changelists.css
+
assets/admin/css/changelists.css.gz
+
assets/admin/css/constance.9180b990baa4.css
+
assets/admin/css/constance.9180b990baa4.css.gz
+
assets/admin/css/constance.css
+
assets/admin/css/constance.css.gz
+
assets/admin/css/dark_mode.1215cee25eaa.css
+
assets/admin/css/dark_mode.1215cee25eaa.css.gz
+
assets/admin/css/dark_mode.css
+
assets/admin/css/dark_mode.css.gz
+
assets/admin/css/dark_theme.23ccf3764a60.css
+
assets/admin/css/dark_theme.23ccf3764a60.css.gz
+
assets/admin/css/dark_theme.8634a9d53bdf.css
+
assets/admin/css/dark_theme.8634a9d53bdf.css.gz
+
assets/admin/css/dark_theme.css
+
assets/admin/css/dark_theme.css.gz
+
assets/admin/css/dashboard.css
+
assets/admin/css/dashboard.css.gz
+
assets/admin/css/dashboard.e90f2068217b.css
+
assets/admin/css/dashboard.e90f2068217b.css.gz
+
assets/admin/css/forms.85f39c0927fa.css
+
assets/admin/css/forms.85f39c0927fa.css.gz
+
assets/admin/css/forms.css
+
assets/admin/css/forms.css.gz
+
assets/admin/css/login.a3b47c458e5d.css
+
assets/admin/css/login.a3b47c458e5d.css.gz
+
assets/admin/css/login.css
+
assets/admin/css/login.css.gz
+
assets/admin/css/nav_sidebar.css
+
assets/admin/css/nav_sidebar.css.gz
+
assets/admin/css/nav_sidebar.dd925738f4cc.css
+
assets/admin/css/nav_sidebar.dd925738f4cc.css.gz
+
assets/admin/css/responsive.80b7f3c4f68f.css
+
assets/admin/css/responsive.80b7f3c4f68f.css.gz
+
assets/admin/css/responsive.css
+
assets/admin/css/responsive.css.gz
+
assets/admin/css/responsive_rtl.011e68bec437.css
+
assets/admin/css/responsive_rtl.011e68bec437.css.gz
+
assets/admin/css/responsive_rtl.css
+
assets/admin/css/responsive_rtl.css.gz
+
assets/admin/css/rtl.66af67f66f09.css
+
assets/admin/css/rtl.66af67f66f09.css.gz
+
assets/admin/css/rtl.css
+
assets/admin/css/rtl.css.gz
+
assets/admin/css/unusable_password_field.b433f2a95fba.css
+
assets/admin/css/unusable_password_field.b433f2a95fba.css.gz
+
assets/admin/css/unusable_password_field.css
+
assets/admin/css/unusable_password_field.css.gz
+
assets/admin/css/vendor/select2/LICENSE-SELECT2.f94142512c91.md
+
assets/admin/css/vendor/select2/LICENSE-SELECT2.f94142512c91.md.gz
+
assets/admin/css/vendor/select2/LICENSE-SELECT2.md
+
assets/admin/css/vendor/select2/LICENSE-SELECT2.md.gz
+
assets/admin/css/vendor/select2/select2.a2194c262648.css
+
assets/admin/css/vendor/select2/select2.a2194c262648.css.gz
+
assets/admin/css/vendor/select2/select2.css
+
assets/admin/css/vendor/select2/select2.css.gz
+
assets/admin/css/vendor/select2/select2.min.9f54e6414f87.css
+
assets/admin/css/vendor/select2/select2.min.9f54e6414f87.css.gz
+
assets/admin/css/vendor/select2/select2.min.css
+
assets/admin/css/vendor/select2/select2.min.css.gz
+
assets/admin/css/widgets.22dbdba6917a.css
+
assets/admin/css/widgets.22dbdba6917a.css.gz
+
assets/admin/css/widgets.css
+
assets/admin/css/widgets.css.gz
+
assets/admin/img/LICENSE
+
assets/admin/img/LICENSE.2c54f4e1ca1c
+
assets/admin/img/LICENSE.2c54f4e1ca1c.gz
+
assets/admin/img/LICENSE.gz
+
assets/admin/img/README.9849248c9207.txt
+
assets/admin/img/README.9849248c9207.txt.gz
+
assets/admin/img/README.txt
+
assets/admin/img/README.txt.gz
+
assets/admin/img/calendar-icons.93ab098d1ac1.svg
+
assets/admin/img/calendar-icons.93ab098d1ac1.svg.gz
+
assets/admin/img/calendar-icons.svg
+
assets/admin/img/calendar-icons.svg.gz
+
assets/admin/img/gis/move_vertex_off.7a23bf31ef8a.svg
+
assets/admin/img/gis/move_vertex_off.7a23bf31ef8a.svg.gz
+
assets/admin/img/gis/move_vertex_off.svg
+
assets/admin/img/gis/move_vertex_off.svg.gz
+
assets/admin/img/gis/move_vertex_on.0047eba25b67.svg
+
assets/admin/img/gis/move_vertex_on.0047eba25b67.svg.gz
+
assets/admin/img/gis/move_vertex_on.svg
+
assets/admin/img/gis/move_vertex_on.svg.gz
+
assets/admin/img/icon-addlink.073aeb1feda7.svg
+
assets/admin/img/icon-addlink.073aeb1feda7.svg.gz
+
assets/admin/img/icon-addlink.svg
+
assets/admin/img/icon-addlink.svg.gz
+
assets/admin/img/icon-alert.034cc7d8a67f.svg
+
assets/admin/img/icon-alert.034cc7d8a67f.svg.gz
+
assets/admin/img/icon-alert.svg
+
assets/admin/img/icon-alert.svg.gz
+
assets/admin/img/icon-calendar.ac7aea671bea.svg
+
assets/admin/img/icon-calendar.ac7aea671bea.svg.gz
+
assets/admin/img/icon-calendar.svg
+
assets/admin/img/icon-calendar.svg.gz
+
assets/admin/img/icon-changelink.7eddb320e61f.svg
+
assets/admin/img/icon-changelink.7eddb320e61f.svg.gz
+
assets/admin/img/icon-changelink.svg
+
assets/admin/img/icon-changelink.svg.gz
+
assets/admin/img/icon-clock.e1d4dfac3f2b.svg
+
assets/admin/img/icon-clock.e1d4dfac3f2b.svg.gz
+
assets/admin/img/icon-clock.svg
+
assets/admin/img/icon-clock.svg.gz
+
assets/admin/img/icon-deletelink.564ef9dc3854.svg
+
assets/admin/img/icon-deletelink.564ef9dc3854.svg.gz
+
assets/admin/img/icon-deletelink.svg
+
assets/admin/img/icon-deletelink.svg.gz
+
assets/admin/img/icon-hidelink.8d245a995e18.svg
+
assets/admin/img/icon-hidelink.8d245a995e18.svg.gz
+
assets/admin/img/icon-hidelink.svg
+
assets/admin/img/icon-hidelink.svg.gz
+
assets/admin/img/icon-no.439e821418cd.svg
+
assets/admin/img/icon-no.439e821418cd.svg.gz
+
assets/admin/img/icon-no.svg
+
assets/admin/img/icon-no.svg.gz
+
assets/admin/img/icon-unknown-alt.81536e128bb6.svg
+
assets/admin/img/icon-unknown-alt.81536e128bb6.svg.gz
+
assets/admin/img/icon-unknown-alt.svg
+
assets/admin/img/icon-unknown-alt.svg.gz
+
assets/admin/img/icon-unknown.a18cb4398978.svg
+
assets/admin/img/icon-unknown.a18cb4398978.svg.gz
+
assets/admin/img/icon-unknown.svg
+
assets/admin/img/icon-unknown.svg.gz
+
assets/admin/img/icon-viewlink.41eb31f7826e.svg
+
assets/admin/img/icon-viewlink.41eb31f7826e.svg.gz
+
assets/admin/img/icon-viewlink.svg
+
assets/admin/img/icon-viewlink.svg.gz
+
assets/admin/img/icon-yes.d2f9f035226a.svg
+
assets/admin/img/icon-yes.d2f9f035226a.svg.gz
+
assets/admin/img/icon-yes.svg
+
assets/admin/img/icon-yes.svg.gz
+
assets/admin/img/inline-delete.358e965fe3e7.svg
+
assets/admin/img/inline-delete.358e965fe3e7.svg.gz
+
assets/admin/img/inline-delete.svg
+
assets/admin/img/inline-delete.svg.gz
+
assets/admin/img/logo-dark.360ec0ec2b96.svg
+
assets/admin/img/logo-dark.360ec0ec2b96.svg.gz
+
assets/admin/img/logo-dark.a43683c31db4.png
+
assets/admin/img/logo-dark.png
+
assets/admin/img/logo-dark.svg
+
assets/admin/img/logo-dark.svg.gz
+
assets/admin/img/search.7cf54ff789c6.svg
+
assets/admin/img/search.7cf54ff789c6.svg.gz
+
assets/admin/img/search.svg
+
assets/admin/img/search.svg.gz
+
assets/admin/img/selector-icons.b4555096cea2.svg
+
assets/admin/img/selector-icons.b4555096cea2.svg.gz
+
assets/admin/img/selector-icons.svg
+
assets/admin/img/selector-icons.svg.gz
+
assets/admin/img/sorting-icons.3a097b59f104.svg
+
assets/admin/img/sorting-icons.3a097b59f104.svg.gz
+
assets/admin/img/sorting-icons.svg
+
assets/admin/img/sorting-icons.svg.gz
+
assets/admin/img/tooltag-add.e59d620a9742.svg
+
assets/admin/img/tooltag-add.e59d620a9742.svg.gz
+
assets/admin/img/tooltag-add.svg
+
assets/admin/img/tooltag-add.svg.gz
+
assets/admin/img/tooltag-arrowright.bbfb788a849e.svg
+
assets/admin/img/tooltag-arrowright.bbfb788a849e.svg.gz
+
assets/admin/img/tooltag-arrowright.svg
+
assets/admin/img/tooltag-arrowright.svg.gz
+
assets/admin/js/SelectBox.7d3ce5a98007.js
+
assets/admin/js/SelectBox.7d3ce5a98007.js.gz
+
assets/admin/js/SelectBox.js
+
assets/admin/js/SelectBox.js.gz
+
assets/admin/js/SelectFilter2.58388953117f.js
+
assets/admin/js/SelectFilter2.58388953117f.js.gz
+
assets/admin/js/SelectFilter2.js
+
assets/admin/js/SelectFilter2.js.gz
+
assets/admin/js/actions.f1d5653edb59.js
+
assets/admin/js/actions.f1d5653edb59.js.gz
+
assets/admin/js/actions.js
+
assets/admin/js/actions.js.gz
+
assets/admin/js/admin/DateTimeShortcuts.9f6e209cebca.js
+
assets/admin/js/admin/DateTimeShortcuts.9f6e209cebca.js.gz
+
assets/admin/js/admin/DateTimeShortcuts.js
+
assets/admin/js/admin/DateTimeShortcuts.js.gz
+
assets/admin/js/admin/RelatedObjectLookups.ed6240809a40.js
+
assets/admin/js/admin/RelatedObjectLookups.ed6240809a40.js.gz
+
assets/admin/js/admin/RelatedObjectLookups.js
+
assets/admin/js/admin/RelatedObjectLookups.js.gz
+
assets/admin/js/autocomplete.01591ab27be7.js
+
assets/admin/js/autocomplete.01591ab27be7.js.gz
+
assets/admin/js/autocomplete.js
+
assets/admin/js/autocomplete.js.gz
+
assets/admin/js/calendar.d64496bbf46d.js
+
assets/admin/js/calendar.d64496bbf46d.js.gz
+
assets/admin/js/calendar.js
+
assets/admin/js/calendar.js.gz
+
assets/admin/js/cancel.ecc4c5ca7b32.js
+
assets/admin/js/cancel.ecc4c5ca7b32.js.gz
+
assets/admin/js/cancel.js
+
assets/admin/js/cancel.js.gz
+
assets/admin/js/change_form.9d8ca4f96b75.js
+
assets/admin/js/change_form.9d8ca4f96b75.js.gz
+
assets/admin/js/change_form.js
+
assets/admin/js/change_form.js.gz
+
assets/admin/js/constance.0ef212beff0a.js
+
assets/admin/js/constance.0ef212beff0a.js.gz
+
assets/admin/js/constance.js
+
assets/admin/js/constance.js.gz
+
assets/admin/js/core.7e257fdf56dc.js
+
assets/admin/js/core.7e257fdf56dc.js.gz
+
assets/admin/js/core.js
+
assets/admin/js/core.js.gz
+
assets/admin/js/filters.0e360b7a9f80.js
+
assets/admin/js/filters.0e360b7a9f80.js.gz
+
assets/admin/js/filters.js
+
assets/admin/js/filters.js.gz
+
assets/admin/js/inlines.89b3c627c5dc.js
+
assets/admin/js/inlines.89b3c627c5dc.js.gz
+
assets/admin/js/inlines.js
+
assets/admin/js/inlines.js.gz
+
assets/admin/js/jquery.init.b7781a0897fc.js
+
assets/admin/js/jquery.init.b7781a0897fc.js.gz
+
assets/admin/js/jquery.init.js
+
assets/admin/js/jquery.init.js.gz
+
assets/admin/js/nav_sidebar.3b9190d420b1.js
+
assets/admin/js/nav_sidebar.3b9190d420b1.js.gz
+
assets/admin/js/nav_sidebar.js
+
assets/admin/js/nav_sidebar.js.gz
+
assets/admin/js/popup_response.96190d343c22.js
+
assets/admin/js/popup_response.96190d343c22.js.gz
+
assets/admin/js/popup_response.js
+
assets/admin/js/popup_response.js.gz
+
assets/admin/js/prepopulate.bd2361dfd64d.js
+
assets/admin/js/prepopulate.bd2361dfd64d.js.gz
+
assets/admin/js/prepopulate.js
+
assets/admin/js/prepopulate.js.gz
+
assets/admin/js/prepopulate_init.6cac7f3105b8.js
+
assets/admin/js/prepopulate_init.6cac7f3105b8.js.gz
+
assets/admin/js/prepopulate_init.js
+
assets/admin/js/prepopulate_init.js.gz
+
assets/admin/js/theme.91cf832f559e.js
+
assets/admin/js/theme.91cf832f559e.js.gz
+
assets/admin/js/theme.js
+
assets/admin/js/theme.js.gz
+
assets/admin/js/unusable_password_field.017ea86b6ae4.js
+
assets/admin/js/unusable_password_field.017ea86b6ae4.js.gz
+
assets/admin/js/unusable_password_field.js
+
assets/admin/js/unusable_password_field.js.gz
+
assets/admin/js/urlify.ae970a820212.js
+
assets/admin/js/urlify.ae970a820212.js.gz
+
assets/admin/js/urlify.js
+
assets/admin/js/urlify.js.gz
+
assets/admin/js/vendor/jquery/LICENSE.de877aa6d744.txt
+
assets/admin/js/vendor/jquery/LICENSE.de877aa6d744.txt.gz
+
assets/admin/js/vendor/jquery/LICENSE.txt
+
assets/admin/js/vendor/jquery/LICENSE.txt.gz
+
assets/admin/js/vendor/jquery/jquery.12e87d2f3a4c.js
+
assets/admin/js/vendor/jquery/jquery.12e87d2f3a4c.js.gz
+
assets/admin/js/vendor/jquery/jquery.js
+
assets/admin/js/vendor/jquery/jquery.js.gz
+
assets/admin/js/vendor/jquery/jquery.min.2c872dbe60f4.js
+
assets/admin/js/vendor/jquery/jquery.min.2c872dbe60f4.js.gz
+
assets/admin/js/vendor/jquery/jquery.min.js
+
assets/admin/js/vendor/jquery/jquery.min.js.gz
+
assets/admin/js/vendor/select2/LICENSE.f94142512c91.md
+
assets/admin/js/vendor/select2/LICENSE.f94142512c91.md.gz
+
assets/admin/js/vendor/select2/LICENSE.md
+
assets/admin/js/vendor/select2/LICENSE.md.gz
+
assets/admin/js/vendor/select2/i18n/af.4f6fcd73488c.js
+
assets/admin/js/vendor/select2/i18n/af.4f6fcd73488c.js.gz
+
assets/admin/js/vendor/select2/i18n/af.js
+
assets/admin/js/vendor/select2/i18n/af.js.gz
+
assets/admin/js/vendor/select2/i18n/ar.65aa8e36bf5d.js
+
assets/admin/js/vendor/select2/i18n/ar.65aa8e36bf5d.js.gz
+
assets/admin/js/vendor/select2/i18n/ar.js
+
assets/admin/js/vendor/select2/i18n/ar.js.gz
+
assets/admin/js/vendor/select2/i18n/az.270c257daf81.js
+
assets/admin/js/vendor/select2/i18n/az.270c257daf81.js.gz
+
assets/admin/js/vendor/select2/i18n/az.js
+
assets/admin/js/vendor/select2/i18n/az.js.gz
+
assets/admin/js/vendor/select2/i18n/bg.39b8be30d4f0.js
+
assets/admin/js/vendor/select2/i18n/bg.39b8be30d4f0.js.gz
+
assets/admin/js/vendor/select2/i18n/bg.js
+
assets/admin/js/vendor/select2/i18n/bg.js.gz
+
assets/admin/js/vendor/select2/i18n/bn.6d42b4dd5665.js
+
assets/admin/js/vendor/select2/i18n/bn.6d42b4dd5665.js.gz
+
assets/admin/js/vendor/select2/i18n/bn.js
+
assets/admin/js/vendor/select2/i18n/bn.js.gz
+
assets/admin/js/vendor/select2/i18n/bs.91624382358e.js
+
assets/admin/js/vendor/select2/i18n/bs.91624382358e.js.gz
+
assets/admin/js/vendor/select2/i18n/bs.js
+
assets/admin/js/vendor/select2/i18n/bs.js.gz
+
assets/admin/js/vendor/select2/i18n/ca.a166b745933a.js
+
assets/admin/js/vendor/select2/i18n/ca.a166b745933a.js.gz
+
assets/admin/js/vendor/select2/i18n/ca.js
+
assets/admin/js/vendor/select2/i18n/ca.js.gz
+
assets/admin/js/vendor/select2/i18n/cs.4f43e8e7d33a.js
+
assets/admin/js/vendor/select2/i18n/cs.4f43e8e7d33a.js.gz
+
assets/admin/js/vendor/select2/i18n/cs.js
+
assets/admin/js/vendor/select2/i18n/cs.js.gz
+
assets/admin/js/vendor/select2/i18n/da.766346afe4dd.js
+
assets/admin/js/vendor/select2/i18n/da.766346afe4dd.js.gz
+
assets/admin/js/vendor/select2/i18n/da.js
+
assets/admin/js/vendor/select2/i18n/da.js.gz
+
assets/admin/js/vendor/select2/i18n/de.8a1c222b0204.js
+
assets/admin/js/vendor/select2/i18n/de.8a1c222b0204.js.gz
+
assets/admin/js/vendor/select2/i18n/de.js
+
assets/admin/js/vendor/select2/i18n/de.js.gz
+
assets/admin/js/vendor/select2/i18n/dsb.56372c92d2f1.js
+
assets/admin/js/vendor/select2/i18n/dsb.56372c92d2f1.js.gz
+
assets/admin/js/vendor/select2/i18n/dsb.js
+
assets/admin/js/vendor/select2/i18n/dsb.js.gz
+
assets/admin/js/vendor/select2/i18n/el.27097f071856.js
+
assets/admin/js/vendor/select2/i18n/el.27097f071856.js.gz
+
assets/admin/js/vendor/select2/i18n/el.js
+
assets/admin/js/vendor/select2/i18n/el.js.gz
+
assets/admin/js/vendor/select2/i18n/en.cf932ba09a98.js
+
assets/admin/js/vendor/select2/i18n/en.cf932ba09a98.js.gz
+
assets/admin/js/vendor/select2/i18n/en.js
+
assets/admin/js/vendor/select2/i18n/en.js.gz
+
assets/admin/js/vendor/select2/i18n/es.66dbc2652fb1.js
+
assets/admin/js/vendor/select2/i18n/es.66dbc2652fb1.js.gz
+
assets/admin/js/vendor/select2/i18n/es.js
+
assets/admin/js/vendor/select2/i18n/es.js.gz
+
assets/admin/js/vendor/select2/i18n/et.2b96fd98289d.js
+
assets/admin/js/vendor/select2/i18n/et.2b96fd98289d.js.gz
+
assets/admin/js/vendor/select2/i18n/et.js
+
assets/admin/js/vendor/select2/i18n/et.js.gz
+
assets/admin/js/vendor/select2/i18n/eu.adfe5c97b72c.js
+
assets/admin/js/vendor/select2/i18n/eu.adfe5c97b72c.js.gz
+
assets/admin/js/vendor/select2/i18n/eu.js
+
assets/admin/js/vendor/select2/i18n/eu.js.gz
+
assets/admin/js/vendor/select2/i18n/fa.3b5bd1961cfd.js
+
assets/admin/js/vendor/select2/i18n/fa.3b5bd1961cfd.js.gz
+
assets/admin/js/vendor/select2/i18n/fa.js
+
assets/admin/js/vendor/select2/i18n/fa.js.gz
+
assets/admin/js/vendor/select2/i18n/fi.614ec42aa9ba.js
+
assets/admin/js/vendor/select2/i18n/fi.614ec42aa9ba.js.gz
+
assets/admin/js/vendor/select2/i18n/fi.js
+
assets/admin/js/vendor/select2/i18n/fi.js.gz
+
assets/admin/js/vendor/select2/i18n/fr.05e0542fcfe6.js
+
assets/admin/js/vendor/select2/i18n/fr.05e0542fcfe6.js.gz
+
assets/admin/js/vendor/select2/i18n/fr.js
+
assets/admin/js/vendor/select2/i18n/fr.js.gz
+
assets/admin/js/vendor/select2/i18n/gl.d99b1fedaa86.js
+
assets/admin/js/vendor/select2/i18n/gl.d99b1fedaa86.js.gz
+
assets/admin/js/vendor/select2/i18n/gl.js
+
assets/admin/js/vendor/select2/i18n/gl.js.gz
+
assets/admin/js/vendor/select2/i18n/he.e420ff6cd3ed.js
+
assets/admin/js/vendor/select2/i18n/he.e420ff6cd3ed.js.gz
+
assets/admin/js/vendor/select2/i18n/he.js
+
assets/admin/js/vendor/select2/i18n/he.js.gz
+
assets/admin/js/vendor/select2/i18n/hi.70640d41628f.js
+
assets/admin/js/vendor/select2/i18n/hi.70640d41628f.js.gz
+
assets/admin/js/vendor/select2/i18n/hi.js
+
assets/admin/js/vendor/select2/i18n/hi.js.gz
+
assets/admin/js/vendor/select2/i18n/hr.a2b092cc1147.js
+
assets/admin/js/vendor/select2/i18n/hr.a2b092cc1147.js.gz
+
assets/admin/js/vendor/select2/i18n/hr.js
+
assets/admin/js/vendor/select2/i18n/hr.js.gz
+
assets/admin/js/vendor/select2/i18n/hsb.fa3b55265efe.js
+
assets/admin/js/vendor/select2/i18n/hsb.fa3b55265efe.js.gz
+
assets/admin/js/vendor/select2/i18n/hsb.js
+
assets/admin/js/vendor/select2/i18n/hsb.js.gz
+
assets/admin/js/vendor/select2/i18n/hu.6ec6039cb8a3.js
+
assets/admin/js/vendor/select2/i18n/hu.6ec6039cb8a3.js.gz
+
assets/admin/js/vendor/select2/i18n/hu.js
+
assets/admin/js/vendor/select2/i18n/hu.js.gz
+
assets/admin/js/vendor/select2/i18n/hy.c7babaeef5a6.js
+
assets/admin/js/vendor/select2/i18n/hy.c7babaeef5a6.js.gz
+
assets/admin/js/vendor/select2/i18n/hy.js
+
assets/admin/js/vendor/select2/i18n/hy.js.gz
+
assets/admin/js/vendor/select2/i18n/id.04debded514d.js
+
assets/admin/js/vendor/select2/i18n/id.04debded514d.js.gz
+
assets/admin/js/vendor/select2/i18n/id.js
+
assets/admin/js/vendor/select2/i18n/id.js.gz
+
assets/admin/js/vendor/select2/i18n/is.3ddd9a6a97e9.js
+
assets/admin/js/vendor/select2/i18n/is.3ddd9a6a97e9.js.gz
+
assets/admin/js/vendor/select2/i18n/is.js
+
assets/admin/js/vendor/select2/i18n/is.js.gz
+
assets/admin/js/vendor/select2/i18n/it.be4fe8d365b5.js
+
assets/admin/js/vendor/select2/i18n/it.be4fe8d365b5.js.gz
+
assets/admin/js/vendor/select2/i18n/it.js
+
assets/admin/js/vendor/select2/i18n/it.js.gz
+
assets/admin/js/vendor/select2/i18n/ja.170ae885d74f.js
+
assets/admin/js/vendor/select2/i18n/ja.170ae885d74f.js.gz
+
assets/admin/js/vendor/select2/i18n/ja.js
+
assets/admin/js/vendor/select2/i18n/ja.js.gz
+
assets/admin/js/vendor/select2/i18n/ka.2083264a54f0.js
+
assets/admin/js/vendor/select2/i18n/ka.2083264a54f0.js.gz
+
assets/admin/js/vendor/select2/i18n/ka.js
+
assets/admin/js/vendor/select2/i18n/ka.js.gz
+
assets/admin/js/vendor/select2/i18n/km.c23089cb06ca.js
+
assets/admin/js/vendor/select2/i18n/km.c23089cb06ca.js.gz
+
assets/admin/js/vendor/select2/i18n/km.js
+
assets/admin/js/vendor/select2/i18n/km.js.gz
+
assets/admin/js/vendor/select2/i18n/ko.e7be6c20e673.js
+
assets/admin/js/vendor/select2/i18n/ko.e7be6c20e673.js.gz
+
assets/admin/js/vendor/select2/i18n/ko.js
+
assets/admin/js/vendor/select2/i18n/ko.js.gz
+
assets/admin/js/vendor/select2/i18n/lt.23c7ce903300.js
+
assets/admin/js/vendor/select2/i18n/lt.23c7ce903300.js.gz
+
assets/admin/js/vendor/select2/i18n/lt.js
+
assets/admin/js/vendor/select2/i18n/lt.js.gz
+
assets/admin/js/vendor/select2/i18n/lv.08e62128eac1.js
+
assets/admin/js/vendor/select2/i18n/lv.08e62128eac1.js.gz
+
assets/admin/js/vendor/select2/i18n/lv.js
+
assets/admin/js/vendor/select2/i18n/lv.js.gz
+
assets/admin/js/vendor/select2/i18n/mk.dabbb9087130.js
+
assets/admin/js/vendor/select2/i18n/mk.dabbb9087130.js.gz
+
assets/admin/js/vendor/select2/i18n/mk.js
+
assets/admin/js/vendor/select2/i18n/mk.js.gz
+
assets/admin/js/vendor/select2/i18n/ms.4ba82c9a51ce.js
+
assets/admin/js/vendor/select2/i18n/ms.4ba82c9a51ce.js.gz
+
assets/admin/js/vendor/select2/i18n/ms.js
+
assets/admin/js/vendor/select2/i18n/ms.js.gz
+
assets/admin/js/vendor/select2/i18n/nb.da2fce143f27.js
+
assets/admin/js/vendor/select2/i18n/nb.da2fce143f27.js.gz
+
assets/admin/js/vendor/select2/i18n/nb.js
+
assets/admin/js/vendor/select2/i18n/nb.js.gz
+
assets/admin/js/vendor/select2/i18n/ne.3d79fd3f08db.js
+
assets/admin/js/vendor/select2/i18n/ne.3d79fd3f08db.js.gz
+
assets/admin/js/vendor/select2/i18n/ne.js
+
assets/admin/js/vendor/select2/i18n/ne.js.gz
+
assets/admin/js/vendor/select2/i18n/nl.997868a37ed8.js
+
assets/admin/js/vendor/select2/i18n/nl.997868a37ed8.js.gz
+
assets/admin/js/vendor/select2/i18n/nl.js
+
assets/admin/js/vendor/select2/i18n/nl.js.gz
+
assets/admin/js/vendor/select2/i18n/pl.6031b4f16452.js
+
assets/admin/js/vendor/select2/i18n/pl.6031b4f16452.js.gz
+
assets/admin/js/vendor/select2/i18n/pl.js
+
assets/admin/js/vendor/select2/i18n/pl.js.gz
+
assets/admin/js/vendor/select2/i18n/ps.38dfa47af9e0.js
+
assets/admin/js/vendor/select2/i18n/ps.38dfa47af9e0.js.gz
+
assets/admin/js/vendor/select2/i18n/ps.js
+
assets/admin/js/vendor/select2/i18n/ps.js.gz
+
assets/admin/js/vendor/select2/i18n/pt-BR.e1b294433e7f.js
+
assets/admin/js/vendor/select2/i18n/pt-BR.e1b294433e7f.js.gz
+
assets/admin/js/vendor/select2/i18n/pt-BR.js
+
assets/admin/js/vendor/select2/i18n/pt-BR.js.gz
+
assets/admin/js/vendor/select2/i18n/pt.33b4a3b44d43.js
+
assets/admin/js/vendor/select2/i18n/pt.33b4a3b44d43.js.gz
+
assets/admin/js/vendor/select2/i18n/pt.js
+
assets/admin/js/vendor/select2/i18n/pt.js.gz
+
assets/admin/js/vendor/select2/i18n/ro.f75cb460ec3b.js
+
assets/admin/js/vendor/select2/i18n/ro.f75cb460ec3b.js.gz
+
assets/admin/js/vendor/select2/i18n/ro.js
+
assets/admin/js/vendor/select2/i18n/ro.js.gz
+
assets/admin/js/vendor/select2/i18n/ru.934aa95f5b5f.js
+
assets/admin/js/vendor/select2/i18n/ru.934aa95f5b5f.js.gz
+
assets/admin/js/vendor/select2/i18n/ru.js
+
assets/admin/js/vendor/select2/i18n/ru.js.gz
+
assets/admin/js/vendor/select2/i18n/sk.33d02cef8d11.js
+
assets/admin/js/vendor/select2/i18n/sk.33d02cef8d11.js.gz
+
assets/admin/js/vendor/select2/i18n/sk.js
+
assets/admin/js/vendor/select2/i18n/sk.js.gz
+
assets/admin/js/vendor/select2/i18n/sl.131a78bc0752.js
+
assets/admin/js/vendor/select2/i18n/sl.131a78bc0752.js.gz
+
assets/admin/js/vendor/select2/i18n/sl.js
+
assets/admin/js/vendor/select2/i18n/sl.js.gz
+
assets/admin/js/vendor/select2/i18n/sq.5636b60d29c9.js
+
assets/admin/js/vendor/select2/i18n/sq.5636b60d29c9.js.gz
+
assets/admin/js/vendor/select2/i18n/sq.js
+
assets/admin/js/vendor/select2/i18n/sq.js.gz
+
assets/admin/js/vendor/select2/i18n/sr-Cyrl.f254bb8c4c7c.js
+
assets/admin/js/vendor/select2/i18n/sr-Cyrl.f254bb8c4c7c.js.gz
+
assets/admin/js/vendor/select2/i18n/sr-Cyrl.js
+
assets/admin/js/vendor/select2/i18n/sr-Cyrl.js.gz
+
assets/admin/js/vendor/select2/i18n/sr.5ed85a48f483.js
+
assets/admin/js/vendor/select2/i18n/sr.5ed85a48f483.js.gz
+
assets/admin/js/vendor/select2/i18n/sr.js
+
assets/admin/js/vendor/select2/i18n/sr.js.gz
+
assets/admin/js/vendor/select2/i18n/sv.7a9c2f71e777.js
+
assets/admin/js/vendor/select2/i18n/sv.7a9c2f71e777.js.gz
+
assets/admin/js/vendor/select2/i18n/sv.js
+
assets/admin/js/vendor/select2/i18n/sv.js.gz
+
assets/admin/js/vendor/select2/i18n/th.f38c20b0221b.js
+
assets/admin/js/vendor/select2/i18n/th.f38c20b0221b.js.gz
+
assets/admin/js/vendor/select2/i18n/th.js
+
assets/admin/js/vendor/select2/i18n/th.js.gz
+
assets/admin/js/vendor/select2/i18n/tk.7c572a68c78f.js
+
assets/admin/js/vendor/select2/i18n/tk.7c572a68c78f.js.gz
+
assets/admin/js/vendor/select2/i18n/tk.js
+
assets/admin/js/vendor/select2/i18n/tk.js.gz
+
assets/admin/js/vendor/select2/i18n/tr.b5a0643d1545.js
+
assets/admin/js/vendor/select2/i18n/tr.b5a0643d1545.js.gz
+
assets/admin/js/vendor/select2/i18n/tr.js
+
assets/admin/js/vendor/select2/i18n/tr.js.gz
+
assets/admin/js/vendor/select2/i18n/uk.8cede7f4803c.js
+
assets/admin/js/vendor/select2/i18n/uk.8cede7f4803c.js.gz
+
assets/admin/js/vendor/select2/i18n/uk.js
+
assets/admin/js/vendor/select2/i18n/uk.js.gz
+
assets/admin/js/vendor/select2/i18n/vi.097a5b75b3e1.js
+
assets/admin/js/vendor/select2/i18n/vi.097a5b75b3e1.js.gz
+
assets/admin/js/vendor/select2/i18n/vi.js
+
assets/admin/js/vendor/select2/i18n/vi.js.gz
+
assets/admin/js/vendor/select2/i18n/zh-CN.2cff662ec5f9.js
+
assets/admin/js/vendor/select2/i18n/zh-CN.2cff662ec5f9.js.gz
+
assets/admin/js/vendor/select2/i18n/zh-CN.js
+
assets/admin/js/vendor/select2/i18n/zh-CN.js.gz
+
assets/admin/js/vendor/select2/i18n/zh-TW.04554a227c2b.js
+
assets/admin/js/vendor/select2/i18n/zh-TW.04554a227c2b.js.gz
+
assets/admin/js/vendor/select2/i18n/zh-TW.js
+
assets/admin/js/vendor/select2/i18n/zh-TW.js.gz
+
assets/admin/js/vendor/select2/select2.full.c2afdeda3058.js
+
assets/admin/js/vendor/select2/select2.full.c2afdeda3058.js.gz
+
assets/admin/js/vendor/select2/select2.full.js
+
assets/admin/js/vendor/select2/select2.full.js.gz
+
assets/admin/js/vendor/select2/select2.full.min.fcd7500d8e13.js
+
assets/admin/js/vendor/select2/select2.full.min.fcd7500d8e13.js.gz
+
assets/admin/js/vendor/select2/select2.full.min.js
+
assets/admin/js/vendor/select2/select2.full.min.js.gz
+
assets/admin/js/vendor/xregexp/LICENSE.b6fd2ceea8d3.txt
+
assets/admin/js/vendor/xregexp/LICENSE.b6fd2ceea8d3.txt.gz
+
assets/admin/js/vendor/xregexp/LICENSE.txt
+
assets/admin/js/vendor/xregexp/LICENSE.txt.gz
+
assets/admin/js/vendor/xregexp/xregexp.a7e08b0ce686.js
+
assets/admin/js/vendor/xregexp/xregexp.a7e08b0ce686.js.gz
+
assets/admin/js/vendor/xregexp/xregexp.js
+
assets/admin/js/vendor/xregexp/xregexp.js.gz
+
assets/admin/js/vendor/xregexp/xregexp.min.f1ae4617847c.js
+
assets/admin/js/vendor/xregexp/xregexp.min.f1ae4617847c.js.gz
+
assets/admin/js/vendor/xregexp/xregexp.min.js
+
assets/admin/js/vendor/xregexp/xregexp.min.js.gz
+
assets/css/input.4bc92896c322.css
+
assets/css/input.4bc92896c322.css.gz
+
assets/css/input.css
+
assets/css/input.css.gz
+
assets/img/fossilrepo-logo-dark.360ec0ec2b96.svg
+
assets/img/fossilrepo-logo-dark.360ec0ec2b96.svg.gz
+
assets/img/fossilrepo-logo-dark.a43683c31db4.png
+
assets/img/fossilrepo-logo-dark.bbee1e6bbdef.png
+
assets/img/fossilrepo-logo-dark.f71f0d181200.svg
+
assets/img/fossilrepo-logo-dark.f71f0d181200.svg.gz
+
assets/img/fossilrepo-logo-dark.png
+
assets/img/fossilrepo-logo-dark.svg
+
assets/img/fossilrepo-logo-dark.svg.gz
+
assets/import_export/export.48d7162c89e2.css
+
assets/import_export/export.48d7162c89e2.css.gz
+
assets/import_export/export.css
+
assets/import_export/export.css.gz
+
assets/import_export/export_selectable_fields.a08e5265f672.js
+
assets/import_export/export_selectable_fields.a08e5265f672.js.gz
+
assets/import_export/export_selectable_fields.js
+
assets/import_export/export_selectable_fields.js.gz
+
assets/import_export/guess_format.1e929842623e.js
+
assets/import_export/guess_format.1e929842623e.js.gz
+
assets/import_export/guess_format.js
+
assets/import_export/guess_format.js.gz
+
assets/import_export/import.css
+
assets/import_export/import.css.gz
+
assets/import_export/import.f3b70b0d21bb.css
+
assets/import_export/import.f3b70b0d21bb.css.gz
+
assets/staticfiles.json
+
config/__pycache__/__init__.cpython-314.pyc
+
config/__pycache__/settings.cpython-314.pyc
+
config/__pycache__/urls.cpython-314.pyc
+
config/__pycache__/wsgi.cpython-314.pyc
+
core/__pycache__/__init__.cpython-314.pyc
+
core/__pycache__/admin.cpython-314.pyc
+
core/__pycache__/apps.cpython-314.pyc
+
core/__pycache__/context_processors.cpython-314.pyc
+
core/__pycache__/fields.cpython-314.pyc
+
core/__pycache__/models.cpython-314.pyc
+
core/__pycache__/pagination.cpython-314.pyc
+
core/__pycache__/permissions.cpython-314.pyc
+
core/__pycache__/sanitize.cpython-314.pyc
+
core/__pycache__/tests.cpython-314-pytest-9.0.2.pyc
+
core/__pycache__/urls.cpython-314.pyc
+
core/__pycache__/views.cpython-314.pyc
+
core/management/__pycache__/__init__.cpython-314.pyc
+
core/middleware/__pycache__/__init__.cpython-314.pyc
+
core/middleware/__pycache__/current_user.cpython-314.pyc
+
core/migrations/__pycache__/__init__.cpython-314.pyc
+
core/templatetags/__pycache__/__init__.cpython-314.pyc
+
core/templatetags/__pycache__/permissions_tags.cpython-314.pyc
+
ctl/__pycache__/__init__.cpython-314.pyc
+
ctl/__pycache__/main.cpython-314.pyc
+
deploy.sh
~
docker-compose.yaml
+
fossil/__pycache__/__init__.cpython-314.pyc
+
fossil/__pycache__/admin.cpython-314.pyc
+
fossil/__pycache__/agent_claims.cpython-314.pyc
+
fossil/__pycache__/api_auth.cpython-314.pyc
+
fossil/__pycache__/api_tokens.cpython-314.pyc
+
fossil/__pycache__/api_views.cpython-314.pyc
+
fossil/__pycache__/apps.cpython-314.pyc
+
fossil/__pycache__/branch_protection.cpython-314.pyc
+
fossil/__pycache__/chat.cpython-314.pyc
+
fossil/__pycache__/ci.cpython-314.pyc
+
fossil/__pycache__/cli.cpython-314.pyc
+
fossil/__pycache__/code_reviews.cpython-314.pyc
+
fossil/__pycache__/forum.cpython-314.pyc
+
fossil/__pycache__/models.cpython-314.pyc
+
fossil/__pycache__/notifications.cpython-314.pyc
+
fossil/__pycache__/oauth.cpython-314.pyc
+
fossil/__pycache__/reader.cpython-314.pyc
+
fossil/__pycache__/releases.cpython-314.pyc
+
fossil/__pycache__/signals.cpython-314.pyc
+
fossil/__pycache__/sync_models.cpython-314.pyc
+
fossil/__pycache__/tasks.cpython-314.pyc
+
fossil/__pycache__/tests.cpython-314-pytest-9.0.2.pyc
+
fossil/__pycache__/ticket_fields.cpython-314.pyc
+
fossil/__pycache__/ticket_reports.cpython-314.pyc
+
fossil/__pycache__/urls.cpython-314.pyc
+
fossil/__pycache__/user_keys.cpython-314.pyc
+
fossil/__pycache__/views.cpython-314.pyc
+
fossil/__pycache__/webhooks.cpython-314.pyc
+
fossil/__pycache__/workspaces.cpython-314.pyc
~
fossil/cli.py
+
fossil/migrations/__pycache__/0001_initial.cpython-314.pyc
+
fossil/migrations/__pycache__/0002_fossilrepository_last_sync_at_and_more.cpython-314.pyc
+
fossil/migrations/__pycache__/0003_gitmirror_historicalgitmirror_historicalsshkey_and_more.cpython-314.pyc
+
fossil/migrations/__pycache__/0004_historicalprojectwatch_notification_projectwatch.cpython-314.pyc
+
fossil/migrations/__pycache__/0005_alter_gitmirror_auth_credential_and_more.cpython-314.pyc
+
fossil/migrations/__pycache__/0006_historicalrelease_release_historicalreleaseasset_and_more.cpython-314.pyc
+
fossil/migrations/__pycache__/0007_forumpost_historicalforumpost_historicalwebhook_and_more.cpython-314.pyc
+
fossil/migrations/__pycache__/0008_apitoken_historicalapitoken_and_more.cpython-314.pyc
+
fossil/migrations/__pycache__/0009_historicalticketfielddefinition_and_more.cpython-314.pyc
+
fossil/migrations/__pycache__/0010_historicalagentworkspace_agentworkspace.cpython-314.pyc
+
fossil/migrations/__pycache__/0011_codereview_historicalcodereview_and_more.cpython-314.pyc
+
fossil/migrations/__pycache__/0012_alter_ticketclaim_unique_together.cpython-314.pyc
+
fossil/migrations/__pycache__/__init__.cpython-314.pyc
~
fossil/views.py
+
mcp_server/__pycache__/__init__.cpython-314.pyc
+
mcp_server/__pycache__/__main__.cpython-314.pyc
+
mcp_server/__pycache__/server.cpython-314.pyc
+
mcp_server/__pycache__/tools.cpython-314.pyc
+
organization/__pycache__/__init__.cpython-314.pyc
+
organization/__pycache__/admin.cpython-314.pyc
+
organization/__pycache__/apps.cpython-314.pyc
+
organization/__pycache__/forms.cpython-314.pyc
+
organization/__pycache__/models.cpython-314.pyc
+
organization/__pycache__/tests.cpython-314-pytest-9.0.2.pyc
+
organization/__pycache__/urls.cpython-314.pyc
+
organization/__pycache__/views.cpython-314.pyc
+
organization/management/__pycache__/__init__.cpython-314.pyc
+
organization/management/commands/__pycache__/__init__.cpython-314.pyc
+
organization/management/commands/__pycache__/seed_roles.cpython-314.pyc
+
organization/migrations/__pycache__/0001_initial.cpython-314.pyc
+
organization/migrations/__pycache__/0002_historicalteam_team.cpython-314.pyc
+
organization/migrations/__pycache__/0003_historicalorgrole_orgrole_and_more.cpython-314.pyc
+
organization/migrations/__pycache__/__init__.cpython-314.pyc
+
pages/__pycache__/__init__.cpython-314.pyc
+
pages/__pycache__/admin.cpython-314.pyc
+
pages/__pycache__/apps.cpython-314.pyc
+
pages/__pycache__/forms.cpython-314.pyc
+
pages/__pycache__/models.cpython-314.pyc
+
pages/__pycache__/tests.cpython-314-pytest-9.0.2.pyc
+
pages/__pycache__/urls.cpython-314.pyc
+
pages/__pycache__/views.cpython-314.pyc
+
pages/migrations/__pycache__/0001_initial.cpython-314.pyc
+
pages/migrations/__pycache__/__init__.cpython-314.pyc
+
projects/__pycache__/__init__.cpython-314.pyc
+
projects/__pycache__/access.cpython-314.pyc
+
projects/__pycache__/admin.cpython-314.pyc
+
projects/__pycache__/apps.cpython-314.pyc
+
projects/__pycache__/forms.cpython-314.pyc
+
projects/__pycache__/models.cpython-314.pyc
+
projects/__pycache__/tests.cpython-314-pytest-9.0.2.pyc
+
projects/__pycache__/urls.cpython-314.pyc
+
projects/__pycache__/views.cpython-314.pyc
+
projects/migrations/__pycache__/0001_initial.cpython-314.pyc
+
projects/migrations/__pycache__/0002_historicalprojectgroup_projectgroup_and_more.cpython-314.pyc
+
projects/migrations/__pycache__/0003_add_projectstar.cpython-314.pyc
+
projects/migrations/__pycache__/__init__.cpython-314.pyc
~
templates/accounts/profile.html
~
templates/base.html
~
templates/fossil/branch_protection_list.html
~
templates/fossil/sync.html
+
templates/includes/nav_public.html
+
testdata/__pycache__/__init__.cpython-314.pyc
+
testdata/__pycache__/apps.cpython-314.pyc
+
testdata/management/__pycache__/__init__.cpython-314.pyc
+
testdata/management/commands/__pycache__/__init__.cpython-314.pyc
+
testdata/management/commands/__pycache__/seed.cpython-314.pyc
+
testdata/migrations/__pycache__/__init__.cpython-314.pyc
+
tests/__pycache__/__init__.cpython-314.pyc
+
tests/__pycache__/test_agent_coordination.cpython-314-pytest-9.0.2.pyc
+
tests/__pycache__/test_anonymous_access.cpython-314-pytest-9.0.2.pyc
+
tests/__pycache__/test_api_tokens.cpython-314-pytest-9.0.2.pyc
+
tests/__pycache__/test_audit_log.cpython-314-pytest-9.0.2.pyc
+
tests/__pycache__/test_branch_protection.cpython-314-pytest-9.0.2.pyc
+
tests/__pycache__/test_branch_protection_enforcement.cpython-314-pytest-9.0.2.pyc
+
tests/__pycache__/test_bundle_cli.cpython-314-pytest-9.0.2.pyc
+
tests/__pycache__/test_ci_status.cpython-314-pytest-9.0.2.pyc
+
tests/__pycache__/test_dashboard_heatmap.cpython-314-pytest-9.0.2.pyc
+
tests/__pycache__/test_email_templates.cpython-314-pytest-9.0.2.pyc
+
tests/__pycache__/test_explorer.cpython-314-pytest-9.0.2.pyc
+
tests/__pycache__/test_forum.cpython-314-pytest-9.0.2.pyc
+
tests/__pycache__/test_git_mirrors.cpython-314-pytest-9.0.2.pyc
+
tests/__pycache__/test_json_api.cpython-314-pytest-9.0.2.pyc
+
tests/__pycache__/test_mcp_server.cpython-314-pytest-9.0.2.pyc
+
tests/__pycache__/test_notification_prefs.cpython-314-pytest-9.0.2.pyc
+
tests/__pycache__/test_project_groups.cpython-314-pytest-9.0.2.pyc
+
tests/__pycache__/test_releases.cpython-314-pytest-9.0.2.pyc
+
tests/__pycache__/test_repo_lifecycle.cpython-314-pytest-9.0.2.pyc
+
tests/__pycache__/test_roles.cpython-314-pytest-9.0.2.pyc
+
tests/__pycache__/test_security.cpython-314-pytest-9.0.2.pyc
+
tests/__pycache__/test_shunning.cpython-314-pytest-9.0.2.pyc
+
tests/__pycache__/test_split_diff.cpython-314-pytest-9.0.2.pyc
+
tests/__pycache__/test_starring.cpython-314-pytest-9.0.2.pyc
+
tests/__pycache__/test_technotes.cpython-314-pytest-9.0.2.pyc
+
tests/__pycache__/test_ticket_fields.cpython-314-pytest-9.0.2.pyc
+
tests/__pycache__/test_ticket_reports.cpython-314-pytest-9.0.2.pyc
+
tests/__pycache__/test_unversioned.cpython-314-pytest-9.0.2.pyc
+
tests/__pycache__/test_user_management.cpython-314-pytest-9.0.2.pyc
+
tests/__pycache__/test_webhooks.cpython-314-pytest-9.0.2.pyc
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
| --- a/assets/admin/css/autocomplete.css | ||
| +++ b/assets/admin/css/autocomplete.css | ||
| @@ -0,0 +1,279 @@ | ||
| 1 | +select.admin-autocomplete { | |
| 2 | + width: 20em; | |
| 3 | +} | |
| 4 | + | |
| 5 | +.select2-container--admin-autocomplete.select2-container { | |
| 6 | + min-height: 30px; | |
| 7 | +} | |
| 8 | + | |
| 9 | +.select2-container--admin-autocomplete .select2-selection--single, | |
| 10 | +.select2-container--admin-autocomplete .select2-selection--multiple { | |
| 11 | + min-height: 30px; | |
| 12 | + padding: 0; | |
| 13 | +} | |
| 14 | + | |
| 15 | +.select2-container--admin-autocomplete.select2-container--focus .select2-selection, | |
| 16 | +.select2-container--admin-autocomplete.select2-container--open .select2-selection { | |
| 17 | + border-color: var(--body-quiet-color); | |
| 18 | + min-height: 30px; | |
| 19 | +} | |
| 20 | + | |
| 21 | +.select2-container--admin-autocomplete.select2-container--focus .select2-selection.select2-selection--single, | |
| 22 | +.select2-container--admin-autocomplete.select2-container--open .select2-selection.select2-selection--single { | |
| 23 | + padding: 0; | |
| 24 | +} | |
| 25 | + | |
| 26 | +.select2-container--admin-autocomplete.select2-container--focus .select2-selection.select2-selection--multiple, | |
| 27 | +.select2-container--admin-autocomplete.select2-container--open .select2-selection.select2-selection--multiple { | |
| 28 | + padding: 0; | |
| 29 | +} | |
| 30 | + | |
| 31 | +.select2-container--admin-autocomplete .select2-selection--single { | |
| 32 | + background-color: var(--body-bg); | |
| 33 | + border: 1px solid var(--border-color); | |
| 34 | + border-radius: 4px; | |
| 35 | +} | |
| 36 | + | |
| 37 | +.select2-container--admin-autocomplete .select2-selection--single .select2-selection__rendered { | |
| 38 | + color: var(--body-fg); | |
| 39 | + line-height: 30px; | |
| 40 | +} | |
| 41 | + | |
| 42 | +.select2-container--admin-autocomplete .select2-selection--single .select2-selection__clear { | |
| 43 | + cursor: pointer; | |
| 44 | + float: right; | |
| 45 | + font-weight: bold; | |
| 46 | +} | |
| 47 | + | |
| 48 | +.select2-container--admin-autocomplete .select2-selection--single .select2-selection__placeholder { | |
| 49 | + color: var(--body-quiet-color); | |
| 50 | +} | |
| 51 | + | |
| 52 | +.select2-container--admin-autocomplete .select2-selection--single .select2-selection__arrow { | |
| 53 | + height: 26px; | |
| 54 | + position: absolute; | |
| 55 | + top: 1px; | |
| 56 | + right: 1px; | |
| 57 | + width: 20px; | |
| 58 | +} | |
| 59 | + | |
| 60 | +.select2-container--admin-autocomplete .select2-selection--single .select2-selection__arrow b { | |
| 61 | + border-color: #888 transparent transparent transparent; | |
| 62 | + border-style: solid; | |
| 63 | + border-width: 5px 4px 0 4px; | |
| 64 | + height: 0; | |
| 65 | + left: 50%; | |
| 66 | + margin-left: -4px; | |
| 67 | + margin-top: -2px; | |
| 68 | + position: absolute; | |
| 69 | + top: 50%; | |
| 70 | + width: 0; | |
| 71 | +} | |
| 72 | + | |
| 73 | +.select2-container--admin-autocomplete[dir="rtl"] .select2-selection--single .select2-selection__clear { | |
| 74 | + float: left; | |
| 75 | +} | |
| 76 | + | |
| 77 | +.select2-container--admin-autocomplete[dir="rtl"] .select2-selection--single .select2-selection__arrow { | |
| 78 | + left: 1px; | |
| 79 | + right: auto; | |
| 80 | +} | |
| 81 | + | |
| 82 | +.select2-container--admin-autocomplete.select2-container--disabled .select2-selection--single { | |
| 83 | + background-color: var(--darkened-bg); | |
| 84 | + cursor: default; | |
| 85 | +} | |
| 86 | + | |
| 87 | +.select2-container--admin-autocomplete.select2-container--disabled .select2-selection--single .select2-selection__clear { | |
| 88 | + display: none; | |
| 89 | +} | |
| 90 | + | |
| 91 | +.select2-container--admin-autocomplete.select2-container--open .select2-selection--single .select2-selection__arrow b { | |
| 92 | + border-color: transparent transparent #888 transparent; | |
| 93 | + border-width: 0 4px 5px 4px; | |
| 94 | +} | |
| 95 | + | |
| 96 | +.select2-container--admin-autocomplete .select2-selection--multiple { | |
| 97 | + background-color: var(--body-bg); | |
| 98 | + border: 1px solid var(--border-color); | |
| 99 | + border-radius: 4px; | |
| 100 | + cursor: text; | |
| 101 | +} | |
| 102 | + | |
| 103 | +.select2-container--admin-autocomplete .select2-selection--multiple .select2-selection__rendered { | |
| 104 | + box-sizing: border-box; | |
| 105 | + list-style: none; | |
| 106 | + margin: 0; | |
| 107 | + padding: 0 10px 5px 5px; | |
| 108 | + width: 100%; | |
| 109 | + display: flex; | |
| 110 | + flex-wrap: wrap; | |
| 111 | +} | |
| 112 | + | |
| 113 | +.select2-container--admin-autocomplete .select2-selection--multiple .select2-selection__rendered li { | |
| 114 | + list-style: none; | |
| 115 | +} | |
| 116 | + | |
| 117 | +.select2-container--admin-autocomplete .select2-selection--multiple .select2-selection__placeholder { | |
| 118 | + color: var(--body-quiet-color); | |
| 119 | + margin-top: 5px; | |
| 120 | + float: left; | |
| 121 | +} | |
| 122 | + | |
| 123 | +.select2-container--admin-autocomplete .select2-selection--multiple .select2-selection__clear { | |
| 124 | + cursor: pointer; | |
| 125 | + float: right; | |
| 126 | + font-weight: bold; | |
| 127 | + margin: 5px; | |
| 128 | + position: absolute; | |
| 129 | + right: 0; | |
| 130 | +} | |
| 131 | + | |
| 132 | +.select2-container--admin-autocomplete .select2-selection--multiple .select2-selection__choice { | |
| 133 | + background-color: var(--darkened-bg); | |
| 134 | + border: 1px solid var(--border-color); | |
| 135 | + border-radius: 4px; | |
| 136 | + cursor: default; | |
| 137 | + float: left; | |
| 138 | + margin-right: 5px; | |
| 139 | + margin-top: 5px; | |
| 140 | + padding: 0 5px; | |
| 141 | +} | |
| 142 | + | |
| 143 | +.select2-container--admin-autocomplete .select2-selection--multiple .select2-selection__choice__remove { | |
| 144 | + color: var(--body-quiet-color); | |
| 145 | + cursor: pointer; | |
| 146 | + display: inline-block; | |
| 147 | + font-weight: bold; | |
| 148 | + margin-right: 2px; | |
| 149 | +} | |
| 150 | + | |
| 151 | +.select2-container--admin-autocomplete .select2-selection--multiple .select2-selection__choice__remove:hover { | |
| 152 | + color: var(--body-fg); | |
| 153 | +} | |
| 154 | + | |
| 155 | +.select2-container--admin-autocomplete[dir="rtl"] .select2-selection--multiple .select2-selection__choice, .select2-container--admin-autocomplete[dir="rtl"] .select2-selection--multiple .select2-selection__placeholder, .select2-container--admin-autocomplete[dir="rtl"] .select2-selection--multiple .select2-search--inline { | |
| 156 | + float: right; | |
| 157 | +} | |
| 158 | + | |
| 159 | +.select2-container--admin-autocomplete[dir="rtl"] .select2-selection--multiple .select2-selection__choice { | |
| 160 | + margin-left: 5px; | |
| 161 | + margin-right: auto; | |
| 162 | +} | |
| 163 | + | |
| 164 | +.select2-container--admin-autocomplete[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove { | |
| 165 | + margin-left: 2px; | |
| 166 | + margin-right: auto; | |
| 167 | +} | |
| 168 | + | |
| 169 | +.select2-container--admin-autocomplete.select2-container--focus .select2-selection--multiple { | |
| 170 | + border: solid var(--body-quiet-color) 1px; | |
| 171 | + outline: 0; | |
| 172 | +} | |
| 173 | + | |
| 174 | +.select2-container--admin-autocomplete.select2-container--disabled .select2-selection--multiple { | |
| 175 | + background-color: var(--darkened-bg); | |
| 176 | + cursor: default; | |
| 177 | +} | |
| 178 | + | |
| 179 | +.select2-container--admin-autocomplete.select2-container--disabled .select2-selection__choice__remove { | |
| 180 | + display: none; | |
| 181 | +} | |
| 182 | + | |
| 183 | +.select2-container--admin-autocomplete.select2-container--open.select2-container--above .select2-selection--single, .select2-container--admin-autocomplete.select2-container--open.select2-container--above .select2-selection--multiple { | |
| 184 | + border-top-left-radius: 0; | |
| 185 | + border-top-right-radius: 0; | |
| 186 | +} | |
| 187 | + | |
| 188 | +.select2-container--admin-autocomplete.select2-container--open.select2-container--below .select2-selection--single, .select2-container--admin-autocomplete.select2-container--open.select2-container--below .select2-selection--multiple { | |
| 189 | + border-bottom-left-radius: 0; | |
| 190 | + border-bottom-right-radius: 0; | |
| 191 | +} | |
| 192 | + | |
| 193 | +.select2-container--admin-autocomplete .select2-search--dropdown { | |
| 194 | + background: var(--darkened-bg); | |
| 195 | +} | |
| 196 | + | |
| 197 | +.select2-container--admin-autocomplete .select2-search--dropdown .select2-search__field { | |
| 198 | + background: var(--body-bg); | |
| 199 | + color: var(--body-fg); | |
| 200 | + border: 1px solid var(--border-color); | |
| 201 | + border-radius: 4px; | |
| 202 | +} | |
| 203 | + | |
| 204 | +.select2-container--admin-autocomplete .select2-search--inline .select2-search__field { | |
| 205 | + background: transparent; | |
| 206 | + color: var(--body-fg); | |
| 207 | + border: none; | |
| 208 | + outline: 0; | |
| 209 | + box-shadow: none; | |
| 210 | + -webkit-appearance: textfield; | |
| 211 | +} | |
| 212 | + | |
| 213 | +.select2-container--admin-autocomplete .select2-results > .select2-results__options { | |
| 214 | + max-height: 200px; | |
| 215 | + overflow-y: auto; | |
| 216 | + color: var(--body-fg); | |
| 217 | + background: var(--body-bg); | |
| 218 | +} | |
| 219 | + | |
| 220 | +.select2-container--admin-autocomplete .select2-results__option[role=group] { | |
| 221 | + padding: 0; | |
| 222 | +} | |
| 223 | + | |
| 224 | +.select2-container--admin-autocomplete .select2-results__option[aria-disabled=true] { | |
| 225 | + color: var(--body-quiet-color); | |
| 226 | +} | |
| 227 | + | |
| 228 | +.select2-container--admin-autocomplete .select2-results__option[aria-selected=true] { | |
| 229 | + background-color: var(--selected-bg); | |
| 230 | + color: var(--body-fg); | |
| 231 | +} | |
| 232 | + | |
| 233 | +.select2-container--admin-autocomplete .select2-results__option .select2-results__option { | |
| 234 | + padding-left: 1em; | |
| 235 | +} | |
| 236 | + | |
| 237 | +.select2-container--admin-autocomplete .select2-results__option .select2-results__option .select2-results__group { | |
| 238 | + padding-left: 0; | |
| 239 | +} | |
| 240 | + | |
| 241 | +.select2-container--admin-autocomplete .select2-results__option .select2-results__option .select2-results__option { | |
| 242 | + margin-left: -1em; | |
| 243 | + padding-left: 2em; | |
| 244 | +} | |
| 245 | + | |
| 246 | +.select2-container--admin-autocomplete .select2-results__option .select2-results__option .select2-results__option .select2-results__option { | |
| 247 | + margin-left: -2em; | |
| 248 | + padding-left: 3em; | |
| 249 | +} | |
| 250 | + | |
| 251 | +.select2-container--admin-autocomplete .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option { | |
| 252 | + margin-left: -3em; | |
| 253 | + padding-left: 4em; | |
| 254 | +} | |
| 255 | + | |
| 256 | +.select2-container--admin-autocomplete .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option { | |
| 257 | + margin-left: -4em; | |
| 258 | + padding-left: 5em; | |
| 259 | +} | |
| 260 | + | |
| 261 | +.select2-container--admin-autocomplete .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option { | |
| 262 | + margin-left: -5em; | |
| 263 | + padding-left: 6em; | |
| 264 | +} | |
| 265 | + | |
| 266 | +.select2-container--admin-autocomplete .select2-results__option--highlighted[aria-selected] { | |
| 267 | + background-color: var(--primary); | |
| 268 | + color: var(--primary-fg); | |
| 269 | +} | |
| 270 | + | |
| 271 | +.select2-container--admin-autocomplete .select2-results__group { | |
| 272 | + cursor: default; | |
| 273 | + display: block; | |
| 274 | + padding: 6px; | |
| 275 | +} | |
| 276 | + | |
| 277 | +.errors .select2-selection { | |
| 278 | + border: 1px solid var(--error-fg); | |
| 279 | +} |
| --- a/assets/admin/css/autocomplete.css | |
| +++ b/assets/admin/css/autocomplete.css | |
| @@ -0,0 +1,279 @@ | |
| --- a/assets/admin/css/autocomplete.css | |
| +++ b/assets/admin/css/autocomplete.css | |
| @@ -0,0 +1,279 @@ | |
| 1 | select.admin-autocomplete { |
| 2 | width: 20em; |
| 3 | } |
| 4 | |
| 5 | .select2-container--admin-autocomplete.select2-container { |
| 6 | min-height: 30px; |
| 7 | } |
| 8 | |
| 9 | .select2-container--admin-autocomplete .select2-selection--single, |
| 10 | .select2-container--admin-autocomplete .select2-selection--multiple { |
| 11 | min-height: 30px; |
| 12 | padding: 0; |
| 13 | } |
| 14 | |
| 15 | .select2-container--admin-autocomplete.select2-container--focus .select2-selection, |
| 16 | .select2-container--admin-autocomplete.select2-container--open .select2-selection { |
| 17 | border-color: var(--body-quiet-color); |
| 18 | min-height: 30px; |
| 19 | } |
| 20 | |
| 21 | .select2-container--admin-autocomplete.select2-container--focus .select2-selection.select2-selection--single, |
| 22 | .select2-container--admin-autocomplete.select2-container--open .select2-selection.select2-selection--single { |
| 23 | padding: 0; |
| 24 | } |
| 25 | |
| 26 | .select2-container--admin-autocomplete.select2-container--focus .select2-selection.select2-selection--multiple, |
| 27 | .select2-container--admin-autocomplete.select2-container--open .select2-selection.select2-selection--multiple { |
| 28 | padding: 0; |
| 29 | } |
| 30 | |
| 31 | .select2-container--admin-autocomplete .select2-selection--single { |
| 32 | background-color: var(--body-bg); |
| 33 | border: 1px solid var(--border-color); |
| 34 | border-radius: 4px; |
| 35 | } |
| 36 | |
| 37 | .select2-container--admin-autocomplete .select2-selection--single .select2-selection__rendered { |
| 38 | color: var(--body-fg); |
| 39 | line-height: 30px; |
| 40 | } |
| 41 | |
| 42 | .select2-container--admin-autocomplete .select2-selection--single .select2-selection__clear { |
| 43 | cursor: pointer; |
| 44 | float: right; |
| 45 | font-weight: bold; |
| 46 | } |
| 47 | |
| 48 | .select2-container--admin-autocomplete .select2-selection--single .select2-selection__placeholder { |
| 49 | color: var(--body-quiet-color); |
| 50 | } |
| 51 | |
| 52 | .select2-container--admin-autocomplete .select2-selection--single .select2-selection__arrow { |
| 53 | height: 26px; |
| 54 | position: absolute; |
| 55 | top: 1px; |
| 56 | right: 1px; |
| 57 | width: 20px; |
| 58 | } |
| 59 | |
| 60 | .select2-container--admin-autocomplete .select2-selection--single .select2-selection__arrow b { |
| 61 | border-color: #888 transparent transparent transparent; |
| 62 | border-style: solid; |
| 63 | border-width: 5px 4px 0 4px; |
| 64 | height: 0; |
| 65 | left: 50%; |
| 66 | margin-left: -4px; |
| 67 | margin-top: -2px; |
| 68 | position: absolute; |
| 69 | top: 50%; |
| 70 | width: 0; |
| 71 | } |
| 72 | |
| 73 | .select2-container--admin-autocomplete[dir="rtl"] .select2-selection--single .select2-selection__clear { |
| 74 | float: left; |
| 75 | } |
| 76 | |
| 77 | .select2-container--admin-autocomplete[dir="rtl"] .select2-selection--single .select2-selection__arrow { |
| 78 | left: 1px; |
| 79 | right: auto; |
| 80 | } |
| 81 | |
| 82 | .select2-container--admin-autocomplete.select2-container--disabled .select2-selection--single { |
| 83 | background-color: var(--darkened-bg); |
| 84 | cursor: default; |
| 85 | } |
| 86 | |
| 87 | .select2-container--admin-autocomplete.select2-container--disabled .select2-selection--single .select2-selection__clear { |
| 88 | display: none; |
| 89 | } |
| 90 | |
| 91 | .select2-container--admin-autocomplete.select2-container--open .select2-selection--single .select2-selection__arrow b { |
| 92 | border-color: transparent transparent #888 transparent; |
| 93 | border-width: 0 4px 5px 4px; |
| 94 | } |
| 95 | |
| 96 | .select2-container--admin-autocomplete .select2-selection--multiple { |
| 97 | background-color: var(--body-bg); |
| 98 | border: 1px solid var(--border-color); |
| 99 | border-radius: 4px; |
| 100 | cursor: text; |
| 101 | } |
| 102 | |
| 103 | .select2-container--admin-autocomplete .select2-selection--multiple .select2-selection__rendered { |
| 104 | box-sizing: border-box; |
| 105 | list-style: none; |
| 106 | margin: 0; |
| 107 | padding: 0 10px 5px 5px; |
| 108 | width: 100%; |
| 109 | display: flex; |
| 110 | flex-wrap: wrap; |
| 111 | } |
| 112 | |
| 113 | .select2-container--admin-autocomplete .select2-selection--multiple .select2-selection__rendered li { |
| 114 | list-style: none; |
| 115 | } |
| 116 | |
| 117 | .select2-container--admin-autocomplete .select2-selection--multiple .select2-selection__placeholder { |
| 118 | color: var(--body-quiet-color); |
| 119 | margin-top: 5px; |
| 120 | float: left; |
| 121 | } |
| 122 | |
| 123 | .select2-container--admin-autocomplete .select2-selection--multiple .select2-selection__clear { |
| 124 | cursor: pointer; |
| 125 | float: right; |
| 126 | font-weight: bold; |
| 127 | margin: 5px; |
| 128 | position: absolute; |
| 129 | right: 0; |
| 130 | } |
| 131 | |
| 132 | .select2-container--admin-autocomplete .select2-selection--multiple .select2-selection__choice { |
| 133 | background-color: var(--darkened-bg); |
| 134 | border: 1px solid var(--border-color); |
| 135 | border-radius: 4px; |
| 136 | cursor: default; |
| 137 | float: left; |
| 138 | margin-right: 5px; |
| 139 | margin-top: 5px; |
| 140 | padding: 0 5px; |
| 141 | } |
| 142 | |
| 143 | .select2-container--admin-autocomplete .select2-selection--multiple .select2-selection__choice__remove { |
| 144 | color: var(--body-quiet-color); |
| 145 | cursor: pointer; |
| 146 | display: inline-block; |
| 147 | font-weight: bold; |
| 148 | margin-right: 2px; |
| 149 | } |
| 150 | |
| 151 | .select2-container--admin-autocomplete .select2-selection--multiple .select2-selection__choice__remove:hover { |
| 152 | color: var(--body-fg); |
| 153 | } |
| 154 | |
| 155 | .select2-container--admin-autocomplete[dir="rtl"] .select2-selection--multiple .select2-selection__choice, .select2-container--admin-autocomplete[dir="rtl"] .select2-selection--multiple .select2-selection__placeholder, .select2-container--admin-autocomplete[dir="rtl"] .select2-selection--multiple .select2-search--inline { |
| 156 | float: right; |
| 157 | } |
| 158 | |
| 159 | .select2-container--admin-autocomplete[dir="rtl"] .select2-selection--multiple .select2-selection__choice { |
| 160 | margin-left: 5px; |
| 161 | margin-right: auto; |
| 162 | } |
| 163 | |
| 164 | .select2-container--admin-autocomplete[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove { |
| 165 | margin-left: 2px; |
| 166 | margin-right: auto; |
| 167 | } |
| 168 | |
| 169 | .select2-container--admin-autocomplete.select2-container--focus .select2-selection--multiple { |
| 170 | border: solid var(--body-quiet-color) 1px; |
| 171 | outline: 0; |
| 172 | } |
| 173 | |
| 174 | .select2-container--admin-autocomplete.select2-container--disabled .select2-selection--multiple { |
| 175 | background-color: var(--darkened-bg); |
| 176 | cursor: default; |
| 177 | } |
| 178 | |
| 179 | .select2-container--admin-autocomplete.select2-container--disabled .select2-selection__choice__remove { |
| 180 | display: none; |
| 181 | } |
| 182 | |
| 183 | .select2-container--admin-autocomplete.select2-container--open.select2-container--above .select2-selection--single, .select2-container--admin-autocomplete.select2-container--open.select2-container--above .select2-selection--multiple { |
| 184 | border-top-left-radius: 0; |
| 185 | border-top-right-radius: 0; |
| 186 | } |
| 187 | |
| 188 | .select2-container--admin-autocomplete.select2-container--open.select2-container--below .select2-selection--single, .select2-container--admin-autocomplete.select2-container--open.select2-container--below .select2-selection--multiple { |
| 189 | border-bottom-left-radius: 0; |
| 190 | border-bottom-right-radius: 0; |
| 191 | } |
| 192 | |
| 193 | .select2-container--admin-autocomplete .select2-search--dropdown { |
| 194 | background: var(--darkened-bg); |
| 195 | } |
| 196 | |
| 197 | .select2-container--admin-autocomplete .select2-search--dropdown .select2-search__field { |
| 198 | background: var(--body-bg); |
| 199 | color: var(--body-fg); |
| 200 | border: 1px solid var(--border-color); |
| 201 | border-radius: 4px; |
| 202 | } |
| 203 | |
| 204 | .select2-container--admin-autocomplete .select2-search--inline .select2-search__field { |
| 205 | background: transparent; |
| 206 | color: var(--body-fg); |
| 207 | border: none; |
| 208 | outline: 0; |
| 209 | box-shadow: none; |
| 210 | -webkit-appearance: textfield; |
| 211 | } |
| 212 | |
| 213 | .select2-container--admin-autocomplete .select2-results > .select2-results__options { |
| 214 | max-height: 200px; |
| 215 | overflow-y: auto; |
| 216 | color: var(--body-fg); |
| 217 | background: var(--body-bg); |
| 218 | } |
| 219 | |
| 220 | .select2-container--admin-autocomplete .select2-results__option[role=group] { |
| 221 | padding: 0; |
| 222 | } |
| 223 | |
| 224 | .select2-container--admin-autocomplete .select2-results__option[aria-disabled=true] { |
| 225 | color: var(--body-quiet-color); |
| 226 | } |
| 227 | |
| 228 | .select2-container--admin-autocomplete .select2-results__option[aria-selected=true] { |
| 229 | background-color: var(--selected-bg); |
| 230 | color: var(--body-fg); |
| 231 | } |
| 232 | |
| 233 | .select2-container--admin-autocomplete .select2-results__option .select2-results__option { |
| 234 | padding-left: 1em; |
| 235 | } |
| 236 | |
| 237 | .select2-container--admin-autocomplete .select2-results__option .select2-results__option .select2-results__group { |
| 238 | padding-left: 0; |
| 239 | } |
| 240 | |
| 241 | .select2-container--admin-autocomplete .select2-results__option .select2-results__option .select2-results__option { |
| 242 | margin-left: -1em; |
| 243 | padding-left: 2em; |
| 244 | } |
| 245 | |
| 246 | .select2-container--admin-autocomplete .select2-results__option .select2-results__option .select2-results__option .select2-results__option { |
| 247 | margin-left: -2em; |
| 248 | padding-left: 3em; |
| 249 | } |
| 250 | |
| 251 | .select2-container--admin-autocomplete .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option { |
| 252 | margin-left: -3em; |
| 253 | padding-left: 4em; |
| 254 | } |
| 255 | |
| 256 | .select2-container--admin-autocomplete .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option { |
| 257 | margin-left: -4em; |
| 258 | padding-left: 5em; |
| 259 | } |
| 260 | |
| 261 | .select2-container--admin-autocomplete .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option { |
| 262 | margin-left: -5em; |
| 263 | padding-left: 6em; |
| 264 | } |
| 265 | |
| 266 | .select2-container--admin-autocomplete .select2-results__option--highlighted[aria-selected] { |
| 267 | background-color: var(--primary); |
| 268 | color: var(--primary-fg); |
| 269 | } |
| 270 | |
| 271 | .select2-container--admin-autocomplete .select2-results__group { |
| 272 | cursor: default; |
| 273 | display: block; |
| 274 | padding: 6px; |
| 275 | } |
| 276 | |
| 277 | .errors .select2-selection { |
| 278 | border: 1px solid var(--error-fg); |
| 279 | } |
Binary file
| --- a/assets/admin/css/autocomplete.d24f10bdee41.css | ||
| +++ b/assets/admin/css/autocomplete.d24f10bdee41.css | ||
| @@ -0,0 +1,279 @@ | ||
| 1 | +select.admin-autocomplete { | |
| 2 | + width: 20em; | |
| 3 | +} | |
| 4 | + | |
| 5 | +.select2-container--admin-autocomplete.select2-container { | |
| 6 | + min-height: 30px; | |
| 7 | +} | |
| 8 | + | |
| 9 | +.select2-container--admin-autocomplete .select2-selection--single, | |
| 10 | +.select2-container--admin-autocomplete .select2-selection--multiple { | |
| 11 | + min-height: 30px; | |
| 12 | + padding: 0; | |
| 13 | +} | |
| 14 | + | |
| 15 | +.select2-container--admin-autocomplete.select2-container--focus .select2-selection, | |
| 16 | +.select2-container--admin-autocomplete.select2-container--open .select2-selection { | |
| 17 | + border-color: var(--body-quiet-color); | |
| 18 | + min-height: 30px; | |
| 19 | +} | |
| 20 | + | |
| 21 | +.select2-container--admin-autocomplete.select2-container--focus .select2-selection.select2-selection--single, | |
| 22 | +.select2-container--admin-autocomplete.select2-container--open .select2-selection.select2-selection--single { | |
| 23 | + padding: 0; | |
| 24 | +} | |
| 25 | + | |
| 26 | +.select2-container--admin-autocomplete.select2-container--focus .select2-selection.select2-selection--multiple, | |
| 27 | +.select2-container--admin-autocomplete.select2-container--open .select2-selection.select2-selection--multiple { | |
| 28 | + padding: 0; | |
| 29 | +} | |
| 30 | + | |
| 31 | +.select2-container--admin-autocomplete .select2-selection--single { | |
| 32 | + background-color: var(--body-bg); | |
| 33 | + border: 1px solid var(--border-color); | |
| 34 | + border-radius: 4px; | |
| 35 | +} | |
| 36 | + | |
| 37 | +.select2-container--admin-autocomplete .select2-selection--single .select2-selection__rendered { | |
| 38 | + color: var(--body-fg); | |
| 39 | + line-height: 30px; | |
| 40 | +} | |
| 41 | + | |
| 42 | +.select2-container--admin-autocomplete .select2-selection--single .select2-selection__clear { | |
| 43 | + cursor: pointer; | |
| 44 | + float: right; | |
| 45 | + font-weight: bold; | |
| 46 | +} | |
| 47 | + | |
| 48 | +.select2-container--admin-autocomplete .select2-selection--single .select2-selection__placeholder { | |
| 49 | + color: var(--body-quiet-color); | |
| 50 | +} | |
| 51 | + | |
| 52 | +.select2-container--admin-autocomplete .select2-selection--single .select2-selection__arrow { | |
| 53 | + height: 26px; | |
| 54 | + position: absolute; | |
| 55 | + top: 1px; | |
| 56 | + right: 1px; | |
| 57 | + width: 20px; | |
| 58 | +} | |
| 59 | + | |
| 60 | +.select2-container--admin-autocomplete .select2-selection--single .select2-selection__arrow b { | |
| 61 | + border-color: #888 transparent transparent transparent; | |
| 62 | + border-style: solid; | |
| 63 | + border-width: 5px 4px 0 4px; | |
| 64 | + height: 0; | |
| 65 | + left: 50%; | |
| 66 | + margin-left: -4px; | |
| 67 | + margin-top: -2px; | |
| 68 | + position: absolute; | |
| 69 | + top: 50%; | |
| 70 | + width: 0; | |
| 71 | +} | |
| 72 | + | |
| 73 | +.select2-container--admin-autocomplete[dir="rtl"] .select2-selection--single .select2-selection__clear { | |
| 74 | + float: left; | |
| 75 | +} | |
| 76 | + | |
| 77 | +.select2-container--admin-autocomplete[dir="rtl"] .select2-selection--single .select2-selection__arrow { | |
| 78 | + left: 1px; | |
| 79 | + right: auto; | |
| 80 | +} | |
| 81 | + | |
| 82 | +.select2-container--admin-autocomplete.select2-container--disabled .select2-selection--single { | |
| 83 | + background-color: var(--darkened-bg); | |
| 84 | + cursor: default; | |
| 85 | +} | |
| 86 | + | |
| 87 | +.select2-container--admin-autocomplete.select2-container--disabled .select2-selection--single .select2-selection__clear { | |
| 88 | + display: none; | |
| 89 | +} | |
| 90 | + | |
| 91 | +.select2-container--admin-autocomplete.select2-container--open .select2-selection--single .select2-selection__arrow b { | |
| 92 | + border-color: transparent transparent #888 transparent; | |
| 93 | + border-width: 0 4px 5px 4px; | |
| 94 | +} | |
| 95 | + | |
| 96 | +.select2-container--admin-autocomplete .select2-selection--multiple { | |
| 97 | + background-color: var(--body-bg); | |
| 98 | + border: 1px solid var(--border-color); | |
| 99 | + border-radius: 4px; | |
| 100 | + cursor: text; | |
| 101 | +} | |
| 102 | + | |
| 103 | +.select2-container--admin-autocomplete .select2-selection--multiple .select2-selection__rendered { | |
| 104 | + box-sizing: border-box; | |
| 105 | + list-style: none; | |
| 106 | + margin: 0; | |
| 107 | + padding: 0 10px 5px 5px; | |
| 108 | + width: 100%; | |
| 109 | + display: flex; | |
| 110 | + flex-wrap: wrap; | |
| 111 | +} | |
| 112 | + | |
| 113 | +.select2-container--admin-autocomplete .select2-selection--multiple .select2-selection__rendered li { | |
| 114 | + list-style: none; | |
| 115 | +} | |
| 116 | + | |
| 117 | +.select2-container--admin-autocomplete .select2-selection--multiple .select2-selection__placeholder { | |
| 118 | + color: var(--body-quiet-color); | |
| 119 | + margin-top: 5px; | |
| 120 | + float: left; | |
| 121 | +} | |
| 122 | + | |
| 123 | +.select2-container--admin-autocomplete .select2-selection--multiple .select2-selection__clear { | |
| 124 | + cursor: pointer; | |
| 125 | + float: right; | |
| 126 | + font-weight: bold; | |
| 127 | + margin: 5px; | |
| 128 | + position: absolute; | |
| 129 | + right: 0; | |
| 130 | +} | |
| 131 | + | |
| 132 | +.select2-container--admin-autocomplete .select2-selection--multiple .select2-selection__choice { | |
| 133 | + background-color: var(--darkened-bg); | |
| 134 | + border: 1px solid var(--border-color); | |
| 135 | + border-radius: 4px; | |
| 136 | + cursor: default; | |
| 137 | + float: left; | |
| 138 | + margin-right: 5px; | |
| 139 | + margin-top: 5px; | |
| 140 | + padding: 0 5px; | |
| 141 | +} | |
| 142 | + | |
| 143 | +.select2-container--admin-autocomplete .select2-selection--multiple .select2-selection__choice__remove { | |
| 144 | + color: var(--body-quiet-color); | |
| 145 | + cursor: pointer; | |
| 146 | + display: inline-block; | |
| 147 | + font-weight: bold; | |
| 148 | + margin-right: 2px; | |
| 149 | +} | |
| 150 | + | |
| 151 | +.select2-container--admin-autocomplete .select2-selection--multiple .select2-selection__choice__remove:hover { | |
| 152 | + color: var(--body-fg); | |
| 153 | +} | |
| 154 | + | |
| 155 | +.select2-container--admin-autocomplete[dir="rtl"] .select2-selection--multiple .select2-selection__choice, .select2-container--admin-autocomplete[dir="rtl"] .select2-selection--multiple .select2-selection__placeholder, .select2-container--admin-autocomplete[dir="rtl"] .select2-selection--multiple .select2-search--inline { | |
| 156 | + float: right; | |
| 157 | +} | |
| 158 | + | |
| 159 | +.select2-container--admin-autocomplete[dir="rtl"] .select2-selection--multiple .select2-selection__choice { | |
| 160 | + margin-left: 5px; | |
| 161 | + margin-right: auto; | |
| 162 | +} | |
| 163 | + | |
| 164 | +.select2-container--admin-autocomplete[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove { | |
| 165 | + margin-left: 2px; | |
| 166 | + margin-right: auto; | |
| 167 | +} | |
| 168 | + | |
| 169 | +.select2-container--admin-autocomplete.select2-container--focus .select2-selection--multiple { | |
| 170 | + border: solid var(--body-quiet-color) 1px; | |
| 171 | + outline: 0; | |
| 172 | +} | |
| 173 | + | |
| 174 | +.select2-container--admin-autocomplete.select2-container--disabled .select2-selection--multiple { | |
| 175 | + background-color: var(--darkened-bg); | |
| 176 | + cursor: default; | |
| 177 | +} | |
| 178 | + | |
| 179 | +.select2-container--admin-autocomplete.select2-container--disabled .select2-selection__choice__remove { | |
| 180 | + display: none; | |
| 181 | +} | |
| 182 | + | |
| 183 | +.select2-container--admin-autocomplete.select2-container--open.select2-container--above .select2-selection--single, .select2-container--admin-autocomplete.select2-container--open.select2-container--above .select2-selection--multiple { | |
| 184 | + border-top-left-radius: 0; | |
| 185 | + border-top-right-radius: 0; | |
| 186 | +} | |
| 187 | + | |
| 188 | +.select2-container--admin-autocomplete.select2-container--open.select2-container--below .select2-selection--single, .select2-container--admin-autocomplete.select2-container--open.select2-container--below .select2-selection--multiple { | |
| 189 | + border-bottom-left-radius: 0; | |
| 190 | + border-bottom-right-radius: 0; | |
| 191 | +} | |
| 192 | + | |
| 193 | +.select2-container--admin-autocomplete .select2-search--dropdown { | |
| 194 | + background: var(--darkened-bg); | |
| 195 | +} | |
| 196 | + | |
| 197 | +.select2-container--admin-autocomplete .select2-search--dropdown .select2-search__field { | |
| 198 | + background: var(--body-bg); | |
| 199 | + color: var(--body-fg); | |
| 200 | + border: 1px solid var(--border-color); | |
| 201 | + border-radius: 4px; | |
| 202 | +} | |
| 203 | + | |
| 204 | +.select2-container--admin-autocomplete .select2-search--inline .select2-search__field { | |
| 205 | + background: transparent; | |
| 206 | + color: var(--body-fg); | |
| 207 | + border: none; | |
| 208 | + outline: 0; | |
| 209 | + box-shadow: none; | |
| 210 | + -webkit-appearance: textfield; | |
| 211 | +} | |
| 212 | + | |
| 213 | +.select2-container--admin-autocomplete .select2-results > .select2-results__options { | |
| 214 | + max-height: 200px; | |
| 215 | + overflow-y: auto; | |
| 216 | + color: var(--body-fg); | |
| 217 | + background: var(--body-bg); | |
| 218 | +} | |
| 219 | + | |
| 220 | +.select2-container--admin-autocomplete .select2-results__option[role=group] { | |
| 221 | + padding: 0; | |
| 222 | +} | |
| 223 | + | |
| 224 | +.select2-container--admin-autocomplete .select2-results__option[aria-disabled=true] { | |
| 225 | + color: var(--body-quiet-color); | |
| 226 | +} | |
| 227 | + | |
| 228 | +.select2-container--admin-autocomplete .select2-results__option[aria-selected=true] { | |
| 229 | + background-color: var(--selected-bg); | |
| 230 | + color: var(--body-fg); | |
| 231 | +} | |
| 232 | + | |
| 233 | +.select2-container--admin-autocomplete .select2-results__option .select2-results__option { | |
| 234 | + padding-left: 1em; | |
| 235 | +} | |
| 236 | + | |
| 237 | +.select2-container--admin-autocomplete .select2-results__option .select2-results__option .select2-results__group { | |
| 238 | + padding-left: 0; | |
| 239 | +} | |
| 240 | + | |
| 241 | +.select2-container--admin-autocomplete .select2-results__option .select2-results__option .select2-results__option { | |
| 242 | + margin-left: -1em; | |
| 243 | + padding-left: 2em; | |
| 244 | +} | |
| 245 | + | |
| 246 | +.select2-container--admin-autocomplete .select2-results__option .select2-results__option .select2-results__option .select2-results__option { | |
| 247 | + margin-left: -2em; | |
| 248 | + padding-left: 3em; | |
| 249 | +} | |
| 250 | + | |
| 251 | +.select2-container--admin-autocomplete .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option { | |
| 252 | + margin-left: -3em; | |
| 253 | + padding-left: 4em; | |
| 254 | +} | |
| 255 | + | |
| 256 | +.select2-container--admin-autocomplete .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option { | |
| 257 | + margin-left: -4em; | |
| 258 | + padding-left: 5em; | |
| 259 | +} | |
| 260 | + | |
| 261 | +.select2-container--admin-autocomplete .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option { | |
| 262 | + margin-left: -5em; | |
| 263 | + padding-left: 6em; | |
| 264 | +} | |
| 265 | + | |
| 266 | +.select2-container--admin-autocomplete .select2-results__option--highlighted[aria-selected] { | |
| 267 | + background-color: var(--primary); | |
| 268 | + color: var(--primary-fg); | |
| 269 | +} | |
| 270 | + | |
| 271 | +.select2-container--admin-autocomplete .select2-results__group { | |
| 272 | + cursor: default; | |
| 273 | + display: block; | |
| 274 | + padding: 6px; | |
| 275 | +} | |
| 276 | + | |
| 277 | +.errors .select2-selection { | |
| 278 | + border: 1px solid var(--error-fg); | |
| 279 | +} |
| --- a/assets/admin/css/autocomplete.d24f10bdee41.css | |
| +++ b/assets/admin/css/autocomplete.d24f10bdee41.css | |
| @@ -0,0 +1,279 @@ | |
| --- a/assets/admin/css/autocomplete.d24f10bdee41.css | |
| +++ b/assets/admin/css/autocomplete.d24f10bdee41.css | |
| @@ -0,0 +1,279 @@ | |
| 1 | select.admin-autocomplete { |
| 2 | width: 20em; |
| 3 | } |
| 4 | |
| 5 | .select2-container--admin-autocomplete.select2-container { |
| 6 | min-height: 30px; |
| 7 | } |
| 8 | |
| 9 | .select2-container--admin-autocomplete .select2-selection--single, |
| 10 | .select2-container--admin-autocomplete .select2-selection--multiple { |
| 11 | min-height: 30px; |
| 12 | padding: 0; |
| 13 | } |
| 14 | |
| 15 | .select2-container--admin-autocomplete.select2-container--focus .select2-selection, |
| 16 | .select2-container--admin-autocomplete.select2-container--open .select2-selection { |
| 17 | border-color: var(--body-quiet-color); |
| 18 | min-height: 30px; |
| 19 | } |
| 20 | |
| 21 | .select2-container--admin-autocomplete.select2-container--focus .select2-selection.select2-selection--single, |
| 22 | .select2-container--admin-autocomplete.select2-container--open .select2-selection.select2-selection--single { |
| 23 | padding: 0; |
| 24 | } |
| 25 | |
| 26 | .select2-container--admin-autocomplete.select2-container--focus .select2-selection.select2-selection--multiple, |
| 27 | .select2-container--admin-autocomplete.select2-container--open .select2-selection.select2-selection--multiple { |
| 28 | padding: 0; |
| 29 | } |
| 30 | |
| 31 | .select2-container--admin-autocomplete .select2-selection--single { |
| 32 | background-color: var(--body-bg); |
| 33 | border: 1px solid var(--border-color); |
| 34 | border-radius: 4px; |
| 35 | } |
| 36 | |
| 37 | .select2-container--admin-autocomplete .select2-selection--single .select2-selection__rendered { |
| 38 | color: var(--body-fg); |
| 39 | line-height: 30px; |
| 40 | } |
| 41 | |
| 42 | .select2-container--admin-autocomplete .select2-selection--single .select2-selection__clear { |
| 43 | cursor: pointer; |
| 44 | float: right; |
| 45 | font-weight: bold; |
| 46 | } |
| 47 | |
| 48 | .select2-container--admin-autocomplete .select2-selection--single .select2-selection__placeholder { |
| 49 | color: var(--body-quiet-color); |
| 50 | } |
| 51 | |
| 52 | .select2-container--admin-autocomplete .select2-selection--single .select2-selection__arrow { |
| 53 | height: 26px; |
| 54 | position: absolute; |
| 55 | top: 1px; |
| 56 | right: 1px; |
| 57 | width: 20px; |
| 58 | } |
| 59 | |
| 60 | .select2-container--admin-autocomplete .select2-selection--single .select2-selection__arrow b { |
| 61 | border-color: #888 transparent transparent transparent; |
| 62 | border-style: solid; |
| 63 | border-width: 5px 4px 0 4px; |
| 64 | height: 0; |
| 65 | left: 50%; |
| 66 | margin-left: -4px; |
| 67 | margin-top: -2px; |
| 68 | position: absolute; |
| 69 | top: 50%; |
| 70 | width: 0; |
| 71 | } |
| 72 | |
| 73 | .select2-container--admin-autocomplete[dir="rtl"] .select2-selection--single .select2-selection__clear { |
| 74 | float: left; |
| 75 | } |
| 76 | |
| 77 | .select2-container--admin-autocomplete[dir="rtl"] .select2-selection--single .select2-selection__arrow { |
| 78 | left: 1px; |
| 79 | right: auto; |
| 80 | } |
| 81 | |
| 82 | .select2-container--admin-autocomplete.select2-container--disabled .select2-selection--single { |
| 83 | background-color: var(--darkened-bg); |
| 84 | cursor: default; |
| 85 | } |
| 86 | |
| 87 | .select2-container--admin-autocomplete.select2-container--disabled .select2-selection--single .select2-selection__clear { |
| 88 | display: none; |
| 89 | } |
| 90 | |
| 91 | .select2-container--admin-autocomplete.select2-container--open .select2-selection--single .select2-selection__arrow b { |
| 92 | border-color: transparent transparent #888 transparent; |
| 93 | border-width: 0 4px 5px 4px; |
| 94 | } |
| 95 | |
| 96 | .select2-container--admin-autocomplete .select2-selection--multiple { |
| 97 | background-color: var(--body-bg); |
| 98 | border: 1px solid var(--border-color); |
| 99 | border-radius: 4px; |
| 100 | cursor: text; |
| 101 | } |
| 102 | |
| 103 | .select2-container--admin-autocomplete .select2-selection--multiple .select2-selection__rendered { |
| 104 | box-sizing: border-box; |
| 105 | list-style: none; |
| 106 | margin: 0; |
| 107 | padding: 0 10px 5px 5px; |
| 108 | width: 100%; |
| 109 | display: flex; |
| 110 | flex-wrap: wrap; |
| 111 | } |
| 112 | |
| 113 | .select2-container--admin-autocomplete .select2-selection--multiple .select2-selection__rendered li { |
| 114 | list-style: none; |
| 115 | } |
| 116 | |
| 117 | .select2-container--admin-autocomplete .select2-selection--multiple .select2-selection__placeholder { |
| 118 | color: var(--body-quiet-color); |
| 119 | margin-top: 5px; |
| 120 | float: left; |
| 121 | } |
| 122 | |
| 123 | .select2-container--admin-autocomplete .select2-selection--multiple .select2-selection__clear { |
| 124 | cursor: pointer; |
| 125 | float: right; |
| 126 | font-weight: bold; |
| 127 | margin: 5px; |
| 128 | position: absolute; |
| 129 | right: 0; |
| 130 | } |
| 131 | |
| 132 | .select2-container--admin-autocomplete .select2-selection--multiple .select2-selection__choice { |
| 133 | background-color: var(--darkened-bg); |
| 134 | border: 1px solid var(--border-color); |
| 135 | border-radius: 4px; |
| 136 | cursor: default; |
| 137 | float: left; |
| 138 | margin-right: 5px; |
| 139 | margin-top: 5px; |
| 140 | padding: 0 5px; |
| 141 | } |
| 142 | |
| 143 | .select2-container--admin-autocomplete .select2-selection--multiple .select2-selection__choice__remove { |
| 144 | color: var(--body-quiet-color); |
| 145 | cursor: pointer; |
| 146 | display: inline-block; |
| 147 | font-weight: bold; |
| 148 | margin-right: 2px; |
| 149 | } |
| 150 | |
| 151 | .select2-container--admin-autocomplete .select2-selection--multiple .select2-selection__choice__remove:hover { |
| 152 | color: var(--body-fg); |
| 153 | } |
| 154 | |
| 155 | .select2-container--admin-autocomplete[dir="rtl"] .select2-selection--multiple .select2-selection__choice, .select2-container--admin-autocomplete[dir="rtl"] .select2-selection--multiple .select2-selection__placeholder, .select2-container--admin-autocomplete[dir="rtl"] .select2-selection--multiple .select2-search--inline { |
| 156 | float: right; |
| 157 | } |
| 158 | |
| 159 | .select2-container--admin-autocomplete[dir="rtl"] .select2-selection--multiple .select2-selection__choice { |
| 160 | margin-left: 5px; |
| 161 | margin-right: auto; |
| 162 | } |
| 163 | |
| 164 | .select2-container--admin-autocomplete[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove { |
| 165 | margin-left: 2px; |
| 166 | margin-right: auto; |
| 167 | } |
| 168 | |
| 169 | .select2-container--admin-autocomplete.select2-container--focus .select2-selection--multiple { |
| 170 | border: solid var(--body-quiet-color) 1px; |
| 171 | outline: 0; |
| 172 | } |
| 173 | |
| 174 | .select2-container--admin-autocomplete.select2-container--disabled .select2-selection--multiple { |
| 175 | background-color: var(--darkened-bg); |
| 176 | cursor: default; |
| 177 | } |
| 178 | |
| 179 | .select2-container--admin-autocomplete.select2-container--disabled .select2-selection__choice__remove { |
| 180 | display: none; |
| 181 | } |
| 182 | |
| 183 | .select2-container--admin-autocomplete.select2-container--open.select2-container--above .select2-selection--single, .select2-container--admin-autocomplete.select2-container--open.select2-container--above .select2-selection--multiple { |
| 184 | border-top-left-radius: 0; |
| 185 | border-top-right-radius: 0; |
| 186 | } |
| 187 | |
| 188 | .select2-container--admin-autocomplete.select2-container--open.select2-container--below .select2-selection--single, .select2-container--admin-autocomplete.select2-container--open.select2-container--below .select2-selection--multiple { |
| 189 | border-bottom-left-radius: 0; |
| 190 | border-bottom-right-radius: 0; |
| 191 | } |
| 192 | |
| 193 | .select2-container--admin-autocomplete .select2-search--dropdown { |
| 194 | background: var(--darkened-bg); |
| 195 | } |
| 196 | |
| 197 | .select2-container--admin-autocomplete .select2-search--dropdown .select2-search__field { |
| 198 | background: var(--body-bg); |
| 199 | color: var(--body-fg); |
| 200 | border: 1px solid var(--border-color); |
| 201 | border-radius: 4px; |
| 202 | } |
| 203 | |
| 204 | .select2-container--admin-autocomplete .select2-search--inline .select2-search__field { |
| 205 | background: transparent; |
| 206 | color: var(--body-fg); |
| 207 | border: none; |
| 208 | outline: 0; |
| 209 | box-shadow: none; |
| 210 | -webkit-appearance: textfield; |
| 211 | } |
| 212 | |
| 213 | .select2-container--admin-autocomplete .select2-results > .select2-results__options { |
| 214 | max-height: 200px; |
| 215 | overflow-y: auto; |
| 216 | color: var(--body-fg); |
| 217 | background: var(--body-bg); |
| 218 | } |
| 219 | |
| 220 | .select2-container--admin-autocomplete .select2-results__option[role=group] { |
| 221 | padding: 0; |
| 222 | } |
| 223 | |
| 224 | .select2-container--admin-autocomplete .select2-results__option[aria-disabled=true] { |
| 225 | color: var(--body-quiet-color); |
| 226 | } |
| 227 | |
| 228 | .select2-container--admin-autocomplete .select2-results__option[aria-selected=true] { |
| 229 | background-color: var(--selected-bg); |
| 230 | color: var(--body-fg); |
| 231 | } |
| 232 | |
| 233 | .select2-container--admin-autocomplete .select2-results__option .select2-results__option { |
| 234 | padding-left: 1em; |
| 235 | } |
| 236 | |
| 237 | .select2-container--admin-autocomplete .select2-results__option .select2-results__option .select2-results__group { |
| 238 | padding-left: 0; |
| 239 | } |
| 240 | |
| 241 | .select2-container--admin-autocomplete .select2-results__option .select2-results__option .select2-results__option { |
| 242 | margin-left: -1em; |
| 243 | padding-left: 2em; |
| 244 | } |
| 245 | |
| 246 | .select2-container--admin-autocomplete .select2-results__option .select2-results__option .select2-results__option .select2-results__option { |
| 247 | margin-left: -2em; |
| 248 | padding-left: 3em; |
| 249 | } |
| 250 | |
| 251 | .select2-container--admin-autocomplete .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option { |
| 252 | margin-left: -3em; |
| 253 | padding-left: 4em; |
| 254 | } |
| 255 | |
| 256 | .select2-container--admin-autocomplete .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option { |
| 257 | margin-left: -4em; |
| 258 | padding-left: 5em; |
| 259 | } |
| 260 | |
| 261 | .select2-container--admin-autocomplete .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option { |
| 262 | margin-left: -5em; |
| 263 | padding-left: 6em; |
| 264 | } |
| 265 | |
| 266 | .select2-container--admin-autocomplete .select2-results__option--highlighted[aria-selected] { |
| 267 | background-color: var(--primary); |
| 268 | color: var(--primary-fg); |
| 269 | } |
| 270 | |
| 271 | .select2-container--admin-autocomplete .select2-results__group { |
| 272 | cursor: default; |
| 273 | display: block; |
| 274 | padding: 6px; |
| 275 | } |
| 276 | |
| 277 | .errors .select2-selection { |
| 278 | border: 1px solid var(--error-fg); |
| 279 | } |
Binary file
| --- a/assets/admin/css/base.96c479cedf7a.css | ||
| +++ b/assets/admin/css/base.96c479cedf7a.css | ||
| @@ -0,0 +1,1180 @@ | ||
| 1 | +/* | |
| 2 | + DJANGO Admin styles | |
| 3 | +*/ | |
| 4 | + | |
| 5 | +/* VARIABLE DEFINITIONS */ | |
| 6 | +html[data-theme="light"], | |
| 7 | +:root { | |
| 8 | + --primary: #79aec8; | |
| 9 | + --secondary: #417690; | |
| 10 | + --accent: #f5dd5d; | |
| 11 | + --primary-fg: #fff; | |
| 12 | + | |
| 13 | + --body-fg: #333; | |
| 14 | + --body-bg: #fff; | |
| 15 | + --body-quiet-color: #666; | |
| 16 | + --body-medium-color: #444; | |
| 17 | + --body-loud-color: #000; | |
| 18 | + | |
| 19 | + --header-color: #ffc; | |
| 20 | + --header-branding-color: var(--accent); | |
| 21 | + --header-bg: var(--secondary); | |
| 22 | + --header-link-color: var(--primary-fg); | |
| 23 | + | |
| 24 | + --breadcrumbs-fg: #c4dce8; | |
| 25 | + --breadcrumbs-link-fg: var(--body-bg); | |
| 26 | + --breadcrumbs-bg: #264b5d; | |
| 27 | + | |
| 28 | + --link-fg: #417893; | |
| 29 | + --link-hover-color: #036; | |
| 30 | + --link-selected-fg: var(--secondary); | |
| 31 | + | |
| 32 | + --hairline-color: #e8e8e8; | |
| 33 | + --border-color: #ccc; | |
| 34 | + | |
| 35 | + --error-fg: #ba2121; | |
| 36 | + | |
| 37 | + --message-success-bg: #dfd; | |
| 38 | + --message-warning-bg: #ffc; | |
| 39 | + --message-error-bg: #ffefef; | |
| 40 | + | |
| 41 | + --darkened-bg: #f8f8f8; /* A bit darker than --body-bg */ | |
| 42 | + --selected-bg: #e4e4e4; /* E.g. selected table cells */ | |
| 43 | + --selected-row: #ffc; | |
| 44 | + | |
| 45 | + --button-fg: #fff; | |
| 46 | + --button-bg: var(--secondary); | |
| 47 | + --button-hover-bg: #205067; | |
| 48 | + --default-button-bg: #205067; | |
| 49 | + --default-button-hover-bg: var(--secondary); | |
| 50 | + --close-button-bg: #747474; | |
| 51 | + --close-button-hover-bg: #333; | |
| 52 | + --delete-button-bg: #ba2121; | |
| 53 | + --delete-button-hover-bg: #a41515; | |
| 54 | + | |
| 55 | + --object-tools-fg: var(--button-fg); | |
| 56 | + --object-tools-bg: var(--close-button-bg); | |
| 57 | + --object-tools-hover-bg: var(--close-button-hover-bg); | |
| 58 | + | |
| 59 | + --font-family-primary: | |
| 60 | + "Segoe UI", | |
| 61 | + system-ui, | |
| 62 | + Roboto, | |
| 63 | + "Helvetica Neue", | |
| 64 | + Arial, | |
| 65 | + sans-serif, | |
| 66 | + "Apple Color Emoji", | |
| 67 | + "Segoe UI Emoji", | |
| 68 | + "Segoe UI Symbol", | |
| 69 | + "Noto Color Emoji"; | |
| 70 | + --font-family-monospace: | |
| 71 | + ui-monospace, | |
| 72 | + Menlo, | |
| 73 | + Monaco, | |
| 74 | + "Cascadia Mono", | |
| 75 | + "Segoe UI Mono", | |
| 76 | + "Roboto Mono", | |
| 77 | + "Oxygen Mono", | |
| 78 | + "Ubuntu Monospace", | |
| 79 | + "Source Code Pro", | |
| 80 | + "Fira Mono", | |
| 81 | + "Droid Sans Mono", | |
| 82 | + "Courier New", | |
| 83 | + monospace, | |
| 84 | + "Apple Color Emoji", | |
| 85 | + "Segoe UI Emoji", | |
| 86 | + "Segoe UI Symbol", | |
| 87 | + "Noto Color Emoji"; | |
| 88 | + | |
| 89 | + color-scheme: light; | |
| 90 | +} | |
| 91 | + | |
| 92 | +html, body { | |
| 93 | + height: 100%; | |
| 94 | +} | |
| 95 | + | |
| 96 | +body { | |
| 97 | + margin: 0; | |
| 98 | + padding: 0; | |
| 99 | + font-size: 0.875rem; | |
| 100 | + font-family: var(--font-family-primary); | |
| 101 | + color: var(--body-fg); | |
| 102 | + background: var(--body-bg); | |
| 103 | +} | |
| 104 | + | |
| 105 | +/* LINKS */ | |
| 106 | + | |
| 107 | +a:link, a:visited { | |
| 108 | + color: var(--link-fg); | |
| 109 | + text-decoration: none; | |
| 110 | + transition: color 0.15s, background 0.15s; | |
| 111 | +} | |
| 112 | + | |
| 113 | +a:focus, a:hover { | |
| 114 | + color: var(--link-hover-color); | |
| 115 | +} | |
| 116 | + | |
| 117 | +a:focus { | |
| 118 | + text-decoration: underline; | |
| 119 | +} | |
| 120 | + | |
| 121 | +a img { | |
| 122 | + border: none; | |
| 123 | +} | |
| 124 | + | |
| 125 | +a.section:link, a.section:visited { | |
| 126 | + color: var(--header-link-color); | |
| 127 | + text-decoration: none; | |
| 128 | +} | |
| 129 | + | |
| 130 | +a.section:focus, a.section:hover { | |
| 131 | + text-decoration: underline; | |
| 132 | +} | |
| 133 | + | |
| 134 | +/* GLOBAL DEFAULTS */ | |
| 135 | + | |
| 136 | +p, ol, ul, dl { | |
| 137 | + margin: .2em 0 .8em 0; | |
| 138 | +} | |
| 139 | + | |
| 140 | +p { | |
| 141 | + padding: 0; | |
| 142 | + line-height: 140%; | |
| 143 | +} | |
| 144 | + | |
| 145 | +h1,h2,h3,h4,h5 { | |
| 146 | + font-weight: bold; | |
| 147 | +} | |
| 148 | + | |
| 149 | +h1 { | |
| 150 | + margin: 0 0 20px; | |
| 151 | + font-weight: 300; | |
| 152 | + font-size: 1.25rem; | |
| 153 | +} | |
| 154 | + | |
| 155 | +h2 { | |
| 156 | + font-size: 1rem; | |
| 157 | + margin: 1em 0 .5em 0; | |
| 158 | +} | |
| 159 | + | |
| 160 | +h2.subhead { | |
| 161 | + font-weight: normal; | |
| 162 | + margin-top: 0; | |
| 163 | +} | |
| 164 | + | |
| 165 | +h3 { | |
| 166 | + font-size: 0.875rem; | |
| 167 | + margin: .8em 0 .3em 0; | |
| 168 | + color: var(--body-medium-color); | |
| 169 | + font-weight: bold; | |
| 170 | +} | |
| 171 | + | |
| 172 | +h4 { | |
| 173 | + font-size: 0.75rem; | |
| 174 | + margin: 1em 0 .8em 0; | |
| 175 | + padding-bottom: 3px; | |
| 176 | + color: var(--body-medium-color); | |
| 177 | +} | |
| 178 | + | |
| 179 | +h5 { | |
| 180 | + font-size: 0.625rem; | |
| 181 | + margin: 1.5em 0 .5em 0; | |
| 182 | + color: var(--body-quiet-color); | |
| 183 | + text-transform: uppercase; | |
| 184 | + letter-spacing: 1px; | |
| 185 | +} | |
| 186 | + | |
| 187 | +ul > li { | |
| 188 | + list-style-type: square; | |
| 189 | + padding: 1px 0; | |
| 190 | +} | |
| 191 | + | |
| 192 | +li ul { | |
| 193 | + margin-bottom: 0; | |
| 194 | +} | |
| 195 | + | |
| 196 | +li, dt, dd { | |
| 197 | + font-size: 0.8125rem; | |
| 198 | + line-height: 1.25rem; | |
| 199 | +} | |
| 200 | + | |
| 201 | +dt { | |
| 202 | + font-weight: bold; | |
| 203 | + margin-top: 4px; | |
| 204 | +} | |
| 205 | + | |
| 206 | +dd { | |
| 207 | + margin-left: 0; | |
| 208 | +} | |
| 209 | + | |
| 210 | +form { | |
| 211 | + margin: 0; | |
| 212 | + padding: 0; | |
| 213 | +} | |
| 214 | + | |
| 215 | +fieldset { | |
| 216 | + margin: 0; | |
| 217 | + min-width: 0; | |
| 218 | + padding: 0; | |
| 219 | + border: none; | |
| 220 | + border-top: 1px solid var(--hairline-color); | |
| 221 | +} | |
| 222 | + | |
| 223 | +details summary { | |
| 224 | + cursor: pointer; | |
| 225 | +} | |
| 226 | + | |
| 227 | +blockquote { | |
| 228 | + font-size: 0.6875rem; | |
| 229 | + color: #777; | |
| 230 | + margin-left: 2px; | |
| 231 | + padding-left: 10px; | |
| 232 | + border-left: 5px solid #ddd; | |
| 233 | +} | |
| 234 | + | |
| 235 | +code, pre { | |
| 236 | + font-family: var(--font-family-monospace); | |
| 237 | + color: var(--body-quiet-color); | |
| 238 | + font-size: 0.75rem; | |
| 239 | + overflow-x: auto; | |
| 240 | +} | |
| 241 | + | |
| 242 | +pre.literal-block { | |
| 243 | + margin: 10px; | |
| 244 | + background: var(--darkened-bg); | |
| 245 | + padding: 6px 8px; | |
| 246 | +} | |
| 247 | + | |
| 248 | +code strong { | |
| 249 | + color: #930; | |
| 250 | +} | |
| 251 | + | |
| 252 | +hr { | |
| 253 | + clear: both; | |
| 254 | + color: var(--hairline-color); | |
| 255 | + background-color: var(--hairline-color); | |
| 256 | + height: 1px; | |
| 257 | + border: none; | |
| 258 | + margin: 0; | |
| 259 | + padding: 0; | |
| 260 | + line-height: 1px; | |
| 261 | +} | |
| 262 | + | |
| 263 | +/* TEXT STYLES & MODIFIERS */ | |
| 264 | + | |
| 265 | +.small { | |
| 266 | + font-size: 0.6875rem; | |
| 267 | +} | |
| 268 | + | |
| 269 | +.mini { | |
| 270 | + font-size: 0.625rem; | |
| 271 | +} | |
| 272 | + | |
| 273 | +.help, p.help, form p.help, div.help, form div.help, div.help li { | |
| 274 | + font-size: 0.6875rem; | |
| 275 | + color: var(--body-quiet-color); | |
| 276 | +} | |
| 277 | + | |
| 278 | +div.help ul { | |
| 279 | + margin-bottom: 0; | |
| 280 | +} | |
| 281 | + | |
| 282 | +.help-tooltip { | |
| 283 | + cursor: help; | |
| 284 | +} | |
| 285 | + | |
| 286 | +p img, h1 img, h2 img, h3 img, h4 img, td img { | |
| 287 | + vertical-align: middle; | |
| 288 | +} | |
| 289 | + | |
| 290 | +.quiet, a.quiet:link, a.quiet:visited { | |
| 291 | + color: var(--body-quiet-color); | |
| 292 | + font-weight: normal; | |
| 293 | +} | |
| 294 | + | |
| 295 | +.clear { | |
| 296 | + clear: both; | |
| 297 | +} | |
| 298 | + | |
| 299 | +.nowrap { | |
| 300 | + white-space: nowrap; | |
| 301 | +} | |
| 302 | + | |
| 303 | +.hidden { | |
| 304 | + display: none !important; | |
| 305 | +} | |
| 306 | + | |
| 307 | +/* TABLES */ | |
| 308 | + | |
| 309 | +table { | |
| 310 | + border-collapse: collapse; | |
| 311 | + border-color: var(--border-color); | |
| 312 | +} | |
| 313 | + | |
| 314 | +td, th { | |
| 315 | + font-size: 0.8125rem; | |
| 316 | + line-height: 1rem; | |
| 317 | + border-bottom: 1px solid var(--hairline-color); | |
| 318 | + vertical-align: top; | |
| 319 | + padding: 8px; | |
| 320 | +} | |
| 321 | + | |
| 322 | +th { | |
| 323 | + font-weight: 500; | |
| 324 | + text-align: left; | |
| 325 | +} | |
| 326 | + | |
| 327 | +thead th, | |
| 328 | +tfoot td { | |
| 329 | + color: var(--body-quiet-color); | |
| 330 | + padding: 5px 10px; | |
| 331 | + font-size: 0.6875rem; | |
| 332 | + background: var(--body-bg); | |
| 333 | + border: none; | |
| 334 | + border-top: 1px solid var(--hairline-color); | |
| 335 | + border-bottom: 1px solid var(--hairline-color); | |
| 336 | +} | |
| 337 | + | |
| 338 | +tfoot td { | |
| 339 | + border-bottom: none; | |
| 340 | + border-top: 1px solid var(--hairline-color); | |
| 341 | +} | |
| 342 | + | |
| 343 | +thead th.required { | |
| 344 | + font-weight: bold; | |
| 345 | +} | |
| 346 | + | |
| 347 | +tr.alt { | |
| 348 | + background: var(--darkened-bg); | |
| 349 | +} | |
| 350 | + | |
| 351 | +tr:nth-child(odd), .row-form-errors { | |
| 352 | + background: var(--body-bg); | |
| 353 | +} | |
| 354 | + | |
| 355 | +tr:nth-child(even), | |
| 356 | +tr:nth-child(even) .errorlist, | |
| 357 | +tr:nth-child(odd) + .row-form-errors, | |
| 358 | +tr:nth-child(odd) + .row-form-errors .errorlist { | |
| 359 | + background: var(--darkened-bg); | |
| 360 | +} | |
| 361 | + | |
| 362 | +/* SORTABLE TABLES */ | |
| 363 | + | |
| 364 | +thead th { | |
| 365 | + padding: 5px 10px; | |
| 366 | + line-height: normal; | |
| 367 | + text-transform: uppercase; | |
| 368 | + background: var(--darkened-bg); | |
| 369 | +} | |
| 370 | + | |
| 371 | +thead th a:link, thead th a:visited { | |
| 372 | + color: var(--body-quiet-color); | |
| 373 | +} | |
| 374 | + | |
| 375 | +thead th.sorted { | |
| 376 | + background: var(--selected-bg); | |
| 377 | +} | |
| 378 | + | |
| 379 | +thead th.sorted .text { | |
| 380 | + padding-right: 42px; | |
| 381 | +} | |
| 382 | + | |
| 383 | +table thead th .text span { | |
| 384 | + padding: 8px 10px; | |
| 385 | + display: block; | |
| 386 | +} | |
| 387 | + | |
| 388 | +table thead th .text a { | |
| 389 | + display: block; | |
| 390 | + cursor: pointer; | |
| 391 | + padding: 8px 10px; | |
| 392 | +} | |
| 393 | + | |
| 394 | +table thead th .text a:focus, table thead th .text a:hover { | |
| 395 | + background: var(--selected-bg); | |
| 396 | +} | |
| 397 | + | |
| 398 | +thead th.sorted a.sortremove { | |
| 399 | + visibility: hidden; | |
| 400 | +} | |
| 401 | + | |
| 402 | +table thead th.sorted:hover a.sortremove { | |
| 403 | + visibility: visible; | |
| 404 | +} | |
| 405 | + | |
| 406 | +table thead th.sorted .sortoptions { | |
| 407 | + display: block; | |
| 408 | + padding: 9px 5px 0 5px; | |
| 409 | + float: right; | |
| 410 | + text-align: right; | |
| 411 | +} | |
| 412 | + | |
| 413 | +table thead th.sorted .sortpriority { | |
| 414 | + font-size: .8em; | |
| 415 | + min-width: 12px; | |
| 416 | + text-align: center; | |
| 417 | + vertical-align: 3px; | |
| 418 | + margin-left: 2px; | |
| 419 | + margin-right: 2px; | |
| 420 | +} | |
| 421 | + | |
| 422 | +table thead th.sorted .sortoptions a { | |
| 423 | + position: relative; | |
| 424 | + width: 14px; | |
| 425 | + height: 14px; | |
| 426 | + display: inline-block; | |
| 427 | + background: url("../img/sorting-icons.3a097b59f104.svg") 0 0 no-repeat; | |
| 428 | + background-size: 14px auto; | |
| 429 | +} | |
| 430 | + | |
| 431 | +table thead th.sorted .sortoptions a.sortremove { | |
| 432 | + background-position: 0 0; | |
| 433 | +} | |
| 434 | + | |
| 435 | +table thead th.sorted .sortoptions a.sortremove:after { | |
| 436 | + content: '\\'; | |
| 437 | + position: absolute; | |
| 438 | + top: -6px; | |
| 439 | + left: 3px; | |
| 440 | + font-weight: 200; | |
| 441 | + font-size: 1.125rem; | |
| 442 | + color: var(--body-quiet-color); | |
| 443 | +} | |
| 444 | + | |
| 445 | +table thead th.sorted .sortoptions a.sortremove:focus:after, | |
| 446 | +table thead th.sorted .sortoptions a.sortremove:hover:after { | |
| 447 | + color: var(--link-fg); | |
| 448 | +} | |
| 449 | + | |
| 450 | +table thead th.sorted .sortoptions a.sortremove:focus, | |
| 451 | +table thead th.sorted .sortoptions a.sortremove:hover { | |
| 452 | + background-position: 0 -14px; | |
| 453 | +} | |
| 454 | + | |
| 455 | +table thead th.sorted .sortoptions a.ascending { | |
| 456 | + background-position: 0 -28px; | |
| 457 | +} | |
| 458 | + | |
| 459 | +table thead th.sorted .sortoptions a.ascending:focus, | |
| 460 | +table thead th.sorted .sortoptions a.ascending:hover { | |
| 461 | + background-position: 0 -42px; | |
| 462 | +} | |
| 463 | + | |
| 464 | +table thead th.sorted .sortoptions a.descending { | |
| 465 | + top: 1px; | |
| 466 | + background-position: 0 -56px; | |
| 467 | +} | |
| 468 | + | |
| 469 | +table thead th.sorted .sortoptions a.descending:focus, | |
| 470 | +table thead th.sorted .sortoptions a.descending:hover { | |
| 471 | + background-position: 0 -70px; | |
| 472 | +} | |
| 473 | + | |
| 474 | +/* FORM DEFAULTS */ | |
| 475 | + | |
| 476 | +input, textarea, select, .form-row p, form .button { | |
| 477 | + margin: 2px 0; | |
| 478 | + padding: 2px 3px; | |
| 479 | + vertical-align: middle; | |
| 480 | + font-family: var(--font-family-primary); | |
| 481 | + font-weight: normal; | |
| 482 | + font-size: 0.8125rem; | |
| 483 | +} | |
| 484 | +.form-row div.help { | |
| 485 | + padding: 2px 3px; | |
| 486 | +} | |
| 487 | + | |
| 488 | +textarea { | |
| 489 | + vertical-align: top; | |
| 490 | +} | |
| 491 | + | |
| 492 | +/* | |
| 493 | +Minifiers remove the default (text) "type" attribute from "input" HTML tags. | |
| 494 | +Add input:not([type]) to make the CSS stylesheet work the same. | |
| 495 | +*/ | |
| 496 | +input:not([type]), input[type=text], input[type=password], input[type=email], | |
| 497 | +input[type=url], input[type=number], input[type=tel], textarea, select, | |
| 498 | +.vTextField { | |
| 499 | + border: 1px solid var(--border-color); | |
| 500 | + border-radius: 4px; | |
| 501 | + padding: 5px 6px; | |
| 502 | + margin-top: 0; | |
| 503 | + color: var(--body-fg); | |
| 504 | + background-color: var(--body-bg); | |
| 505 | +} | |
| 506 | + | |
| 507 | +/* | |
| 508 | +Minifiers remove the default (text) "type" attribute from "input" HTML tags. | |
| 509 | +Add input:not([type]) to make the CSS stylesheet work the same. | |
| 510 | +*/ | |
| 511 | +input:not([type]):focus, input[type=text]:focus, input[type=password]:focus, | |
| 512 | +input[type=email]:focus, input[type=url]:focus, input[type=number]:focus, | |
| 513 | +input[type=tel]:focus, textarea:focus, select:focus, .vTextField:focus { | |
| 514 | + border-color: var(--body-quiet-color); | |
| 515 | +} | |
| 516 | + | |
| 517 | +select { | |
| 518 | + height: 1.875rem; | |
| 519 | +} | |
| 520 | + | |
| 521 | +select[multiple] { | |
| 522 | + /* Allow HTML size attribute to override the height in the rule above. */ | |
| 523 | + height: auto; | |
| 524 | + min-height: 150px; | |
| 525 | +} | |
| 526 | + | |
| 527 | +/* FORM BUTTONS */ | |
| 528 | + | |
| 529 | +.button, input[type=submit], input[type=button], .submit-row input, a.button { | |
| 530 | + background: var(--button-bg); | |
| 531 | + padding: 10px 15px; | |
| 532 | + border: none; | |
| 533 | + border-radius: 4px; | |
| 534 | + color: var(--button-fg); | |
| 535 | + cursor: pointer; | |
| 536 | + transition: background 0.15s; | |
| 537 | +} | |
| 538 | + | |
| 539 | +a.button { | |
| 540 | + padding: 4px 5px; | |
| 541 | +} | |
| 542 | + | |
| 543 | +.button:active, input[type=submit]:active, input[type=button]:active, | |
| 544 | +.button:focus, input[type=submit]:focus, input[type=button]:focus, | |
| 545 | +.button:hover, input[type=submit]:hover, input[type=button]:hover { | |
| 546 | + background: var(--button-hover-bg); | |
| 547 | +} | |
| 548 | + | |
| 549 | +.button[disabled], input[type=submit][disabled], input[type=button][disabled] { | |
| 550 | + opacity: 0.4; | |
| 551 | +} | |
| 552 | + | |
| 553 | +.button.default, input[type=submit].default, .submit-row input.default { | |
| 554 | + border: none; | |
| 555 | + font-weight: 400; | |
| 556 | + background: var(--default-button-bg); | |
| 557 | +} | |
| 558 | + | |
| 559 | +.button.default:active, input[type=submit].default:active, | |
| 560 | +.button.default:focus, input[type=submit].default:focus, | |
| 561 | +.button.default:hover, input[type=submit].default:hover { | |
| 562 | + background: var(--default-button-hover-bg); | |
| 563 | +} | |
| 564 | + | |
| 565 | +.button[disabled].default, | |
| 566 | +input[type=submit][disabled].default, | |
| 567 | +input[type=button][disabled].default { | |
| 568 | + opacity: 0.4; | |
| 569 | +} | |
| 570 | + | |
| 571 | + | |
| 572 | +/* MODULES */ | |
| 573 | + | |
| 574 | +.module { | |
| 575 | + border: none; | |
| 576 | + margin-bottom: 30px; | |
| 577 | + background: var(--body-bg); | |
| 578 | +} | |
| 579 | + | |
| 580 | +.module p, .module ul, .module h3, .module h4, .module dl, .module pre { | |
| 581 | + padding-left: 10px; | |
| 582 | + padding-right: 10px; | |
| 583 | +} | |
| 584 | + | |
| 585 | +.module blockquote { | |
| 586 | + margin-left: 12px; | |
| 587 | +} | |
| 588 | + | |
| 589 | +.module ul, .module ol { | |
| 590 | + margin-left: 1.5em; | |
| 591 | +} | |
| 592 | + | |
| 593 | +.module h3 { | |
| 594 | + margin-top: .6em; | |
| 595 | +} | |
| 596 | + | |
| 597 | +.module h2, .module caption, .inline-group h2 { | |
| 598 | + margin: 0; | |
| 599 | + padding: 8px; | |
| 600 | + font-weight: 400; | |
| 601 | + font-size: 0.8125rem; | |
| 602 | + text-align: left; | |
| 603 | + background: var(--header-bg); | |
| 604 | + color: var(--header-link-color); | |
| 605 | +} | |
| 606 | + | |
| 607 | +.module caption, | |
| 608 | +.inline-group h2 { | |
| 609 | + font-size: 0.75rem; | |
| 610 | + letter-spacing: 0.5px; | |
| 611 | + text-transform: uppercase; | |
| 612 | +} | |
| 613 | + | |
| 614 | +.module table { | |
| 615 | + border-collapse: collapse; | |
| 616 | +} | |
| 617 | + | |
| 618 | +/* MESSAGES & ERRORS */ | |
| 619 | + | |
| 620 | +ul.messagelist { | |
| 621 | + padding: 0; | |
| 622 | + margin: 0; | |
| 623 | +} | |
| 624 | + | |
| 625 | +ul.messagelist li { | |
| 626 | + display: block; | |
| 627 | + font-weight: 400; | |
| 628 | + font-size: 0.8125rem; | |
| 629 | + padding: 10px 10px 10px 65px; | |
| 630 | + margin: 0 0 10px 0; | |
| 631 | + background: var(--message-success-bg) url("../img/icon-yes.d2f9f035226a.svg") 40px 12px no-repeat; | |
| 632 | + background-size: 16px auto; | |
| 633 | + color: var(--body-fg); | |
| 634 | + word-break: break-word; | |
| 635 | +} | |
| 636 | + | |
| 637 | +ul.messagelist li.warning { | |
| 638 | + background: var(--message-warning-bg) url("../img/icon-alert.034cc7d8a67f.svg") 40px 14px no-repeat; | |
| 639 | + background-size: 14px auto; | |
| 640 | +} | |
| 641 | + | |
| 642 | +ul.messagelist li.error { | |
| 643 | + background: var(--message-error-bg) url("../img/icon-no.439e821418cd.svg") 40px 12px no-repeat; | |
| 644 | + background-size: 16px auto; | |
| 645 | +} | |
| 646 | + | |
| 647 | +.errornote { | |
| 648 | + font-size: 0.875rem; | |
| 649 | + font-weight: 700; | |
| 650 | + display: block; | |
| 651 | + padding: 10px 12px; | |
| 652 | + margin: 0 0 10px 0; | |
| 653 | + color: var(--error-fg); | |
| 654 | + border: 1px solid var(--error-fg); | |
| 655 | + border-radius: 4px; | |
| 656 | + background-color: var(--body-bg); | |
| 657 | + background-position: 5px 12px; | |
| 658 | + overflow-wrap: break-word; | |
| 659 | +} | |
| 660 | + | |
| 661 | +ul.errorlist { | |
| 662 | + margin: 0 0 4px; | |
| 663 | + padding: 0; | |
| 664 | + color: var(--error-fg); | |
| 665 | + background: var(--body-bg); | |
| 666 | +} | |
| 667 | + | |
| 668 | +ul.errorlist li { | |
| 669 | + font-size: 0.8125rem; | |
| 670 | + display: block; | |
| 671 | + margin-bottom: 4px; | |
| 672 | + overflow-wrap: break-word; | |
| 673 | +} | |
| 674 | + | |
| 675 | +ul.errorlist li:first-child { | |
| 676 | + margin-top: 0; | |
| 677 | +} | |
| 678 | + | |
| 679 | +ul.errorlist li a { | |
| 680 | + color: inherit; | |
| 681 | + text-decoration: underline; | |
| 682 | +} | |
| 683 | + | |
| 684 | +td ul.errorlist { | |
| 685 | + margin: 0; | |
| 686 | + padding: 0; | |
| 687 | +} | |
| 688 | + | |
| 689 | +td ul.errorlist li { | |
| 690 | + margin: 0; | |
| 691 | +} | |
| 692 | + | |
| 693 | +.form-row.errors { | |
| 694 | + margin: 0; | |
| 695 | + border: none; | |
| 696 | + border-bottom: 1px solid var(--hairline-color); | |
| 697 | + background: none; | |
| 698 | +} | |
| 699 | + | |
| 700 | +.form-row.errors ul.errorlist li { | |
| 701 | + padding-left: 0; | |
| 702 | +} | |
| 703 | + | |
| 704 | +.errors input, .errors select, .errors textarea, | |
| 705 | +td ul.errorlist + input, td ul.errorlist + select, td ul.errorlist + textarea { | |
| 706 | + border: 1px solid var(--error-fg); | |
| 707 | +} | |
| 708 | + | |
| 709 | +.description { | |
| 710 | + font-size: 0.75rem; | |
| 711 | + padding: 5px 0 0 12px; | |
| 712 | +} | |
| 713 | + | |
| 714 | +/* BREADCRUMBS */ | |
| 715 | + | |
| 716 | +div.breadcrumbs { | |
| 717 | + background: var(--breadcrumbs-bg); | |
| 718 | + padding: 10px 40px; | |
| 719 | + border: none; | |
| 720 | + color: var(--breadcrumbs-fg); | |
| 721 | + text-align: left; | |
| 722 | +} | |
| 723 | + | |
| 724 | +div.breadcrumbs a { | |
| 725 | + color: var(--breadcrumbs-link-fg); | |
| 726 | +} | |
| 727 | + | |
| 728 | +div.breadcrumbs a:focus, div.breadcrumbs a:hover { | |
| 729 | + color: var(--breadcrumbs-fg); | |
| 730 | +} | |
| 731 | + | |
| 732 | +/* ACTION ICONS */ | |
| 733 | + | |
| 734 | +.viewlink, .inlineviewlink { | |
| 735 | + padding-left: 16px; | |
| 736 | + background: url("../img/icon-viewlink.41eb31f7826e.svg") 0 1px no-repeat; | |
| 737 | +} | |
| 738 | + | |
| 739 | +.hidelink { | |
| 740 | + padding-left: 16px; | |
| 741 | + background: url("../img/icon-hidelink.8d245a995e18.svg") 0 1px no-repeat; | |
| 742 | +} | |
| 743 | + | |
| 744 | +.addlink { | |
| 745 | + padding-left: 16px; | |
| 746 | + background: url("../img/icon-addlink.073aeb1feda7.svg") 0 1px no-repeat; | |
| 747 | +} | |
| 748 | + | |
| 749 | +.changelink, .inlinechangelink { | |
| 750 | + padding-left: 16px; | |
| 751 | + background: url("../img/icon-changelink.7eddb320e61f.svg") 0 1px no-repeat; | |
| 752 | +} | |
| 753 | + | |
| 754 | +.deletelink { | |
| 755 | + padding-left: 16px; | |
| 756 | + background: url("../img/icon-deletelink.564ef9dc3854.svg") 0 1px no-repeat; | |
| 757 | +} | |
| 758 | + | |
| 759 | +a.deletelink:link, a.deletelink:visited { | |
| 760 | + color: #CC3434; /* XXX Probably unused? */ | |
| 761 | +} | |
| 762 | + | |
| 763 | +a.deletelink:focus, a.deletelink:hover { | |
| 764 | + color: #993333; /* XXX Probably unused? */ | |
| 765 | + text-decoration: none; | |
| 766 | +} | |
| 767 | + | |
| 768 | +/* OBJECT TOOLS */ | |
| 769 | + | |
| 770 | +.object-tools { | |
| 771 | + font-size: 0.625rem; | |
| 772 | + font-weight: bold; | |
| 773 | + padding-left: 0; | |
| 774 | + float: right; | |
| 775 | + position: relative; | |
| 776 | + margin-top: -48px; | |
| 777 | +} | |
| 778 | + | |
| 779 | +.object-tools li { | |
| 780 | + display: block; | |
| 781 | + float: left; | |
| 782 | + margin-left: 5px; | |
| 783 | + height: 1rem; | |
| 784 | +} | |
| 785 | + | |
| 786 | +.object-tools a { | |
| 787 | + border-radius: 15px; | |
| 788 | +} | |
| 789 | + | |
| 790 | +.object-tools a:link, .object-tools a:visited { | |
| 791 | + display: block; | |
| 792 | + float: left; | |
| 793 | + padding: 3px 12px; | |
| 794 | + background: var(--object-tools-bg); | |
| 795 | + color: var(--object-tools-fg); | |
| 796 | + font-weight: 400; | |
| 797 | + font-size: 0.6875rem; | |
| 798 | + text-transform: uppercase; | |
| 799 | + letter-spacing: 0.5px; | |
| 800 | +} | |
| 801 | + | |
| 802 | +.object-tools a:focus, .object-tools a:hover { | |
| 803 | + background-color: var(--object-tools-hover-bg); | |
| 804 | +} | |
| 805 | + | |
| 806 | +.object-tools a:focus{ | |
| 807 | + text-decoration: none; | |
| 808 | +} | |
| 809 | + | |
| 810 | +.object-tools a.viewsitelink, .object-tools a.addlink { | |
| 811 | + background-repeat: no-repeat; | |
| 812 | + background-position: right 7px center; | |
| 813 | + padding-right: 26px; | |
| 814 | +} | |
| 815 | + | |
| 816 | +.object-tools a.viewsitelink { | |
| 817 | + background-image: url("../img/tooltag-arrowright.bbfb788a849e.svg"); | |
| 818 | +} | |
| 819 | + | |
| 820 | +.object-tools a.addlink { | |
| 821 | + background-image: url("../img/tooltag-add.e59d620a9742.svg"); | |
| 822 | +} | |
| 823 | + | |
| 824 | +/* OBJECT HISTORY */ | |
| 825 | + | |
| 826 | +#change-history table { | |
| 827 | + width: 100%; | |
| 828 | +} | |
| 829 | + | |
| 830 | +#change-history table tbody th { | |
| 831 | + width: 16em; | |
| 832 | +} | |
| 833 | + | |
| 834 | +#change-history .paginator { | |
| 835 | + color: var(--body-quiet-color); | |
| 836 | + border-bottom: 1px solid var(--hairline-color); | |
| 837 | + background: var(--body-bg); | |
| 838 | + overflow: hidden; | |
| 839 | +} | |
| 840 | + | |
| 841 | +/* PAGE STRUCTURE */ | |
| 842 | + | |
| 843 | +#container { | |
| 844 | + position: relative; | |
| 845 | + width: 100%; | |
| 846 | + min-width: 980px; | |
| 847 | + padding: 0; | |
| 848 | + display: flex; | |
| 849 | + flex-direction: column; | |
| 850 | + height: 100%; | |
| 851 | +} | |
| 852 | + | |
| 853 | +#container > .main { | |
| 854 | + display: flex; | |
| 855 | + flex: 1 0 auto; | |
| 856 | +} | |
| 857 | + | |
| 858 | +.main > .content { | |
| 859 | + flex: 1 0; | |
| 860 | + max-width: 100%; | |
| 861 | +} | |
| 862 | + | |
| 863 | +.skip-to-content-link { | |
| 864 | + position: absolute; | |
| 865 | + top: -999px; | |
| 866 | + margin: 5px; | |
| 867 | + padding: 5px; | |
| 868 | + background: var(--body-bg); | |
| 869 | + z-index: 1; | |
| 870 | +} | |
| 871 | + | |
| 872 | +.skip-to-content-link:focus { | |
| 873 | + left: 0px; | |
| 874 | + top: 0px; | |
| 875 | +} | |
| 876 | + | |
| 877 | +#content { | |
| 878 | + padding: 20px 40px; | |
| 879 | +} | |
| 880 | + | |
| 881 | +.dashboard #content { | |
| 882 | + width: 600px; | |
| 883 | +} | |
| 884 | + | |
| 885 | +#content-main { | |
| 886 | + float: left; | |
| 887 | + width: 100%; | |
| 888 | +} | |
| 889 | + | |
| 890 | +#content-related { | |
| 891 | + float: right; | |
| 892 | + width: 260px; | |
| 893 | + position: relative; | |
| 894 | + margin-right: -300px; | |
| 895 | +} | |
| 896 | + | |
| 897 | +@media (forced-colors: active) { | |
| 898 | + #content-related { | |
| 899 | + border: 1px solid; | |
| 900 | + } | |
| 901 | +} | |
| 902 | + | |
| 903 | +/* COLUMN TYPES */ | |
| 904 | + | |
| 905 | +.colMS { | |
| 906 | + margin-right: 300px; | |
| 907 | +} | |
| 908 | + | |
| 909 | +.colSM { | |
| 910 | + margin-left: 300px; | |
| 911 | +} | |
| 912 | + | |
| 913 | +.colSM #content-related { | |
| 914 | + float: left; | |
| 915 | + margin-right: 0; | |
| 916 | + margin-left: -300px; | |
| 917 | +} | |
| 918 | + | |
| 919 | +.colSM #content-main { | |
| 920 | + float: right; | |
| 921 | +} | |
| 922 | + | |
| 923 | +.popup .colM { | |
| 924 | + width: auto; | |
| 925 | +} | |
| 926 | + | |
| 927 | +/* HEADER */ | |
| 928 | + | |
| 929 | +#header { | |
| 930 | + width: auto; | |
| 931 | + height: auto; | |
| 932 | + display: flex; | |
| 933 | + justify-content: space-between; | |
| 934 | + align-items: center; | |
| 935 | + padding: 10px 40px; | |
| 936 | + background: var(--header-bg); | |
| 937 | + color: var(--header-color); | |
| 938 | +} | |
| 939 | + | |
| 940 | +#header a:link, #header a:visited, #logout-form button { | |
| 941 | + color: var(--header-link-color); | |
| 942 | +} | |
| 943 | + | |
| 944 | +#header a:focus , #header a:hover { | |
| 945 | + text-decoration: underline; | |
| 946 | +} | |
| 947 | + | |
| 948 | +@media (forced-colors: active) { | |
| 949 | + #header { | |
| 950 | + border-bottom: 1px solid; | |
| 951 | + } | |
| 952 | +} | |
| 953 | + | |
| 954 | +#branding { | |
| 955 | + display: flex; | |
| 956 | +} | |
| 957 | + | |
| 958 | +#site-name { | |
| 959 | + padding: 0; | |
| 960 | + margin: 0; | |
| 961 | + margin-inline-end: 20px; | |
| 962 | + font-weight: 300; | |
| 963 | + font-size: 1.5rem; | |
| 964 | + color: var(--header-branding-color); | |
| 965 | +} | |
| 966 | + | |
| 967 | +#site-name a:link, #site-name a:visited { | |
| 968 | + color: var(--accent); | |
| 969 | +} | |
| 970 | + | |
| 971 | +#branding h2 { | |
| 972 | + padding: 0 10px; | |
| 973 | + font-size: 0.875rem; | |
| 974 | + margin: -8px 0 8px 0; | |
| 975 | + font-weight: normal; | |
| 976 | + color: var(--header-color); | |
| 977 | +} | |
| 978 | + | |
| 979 | +#branding a:hover { | |
| 980 | + text-decoration: none; | |
| 981 | +} | |
| 982 | + | |
| 983 | +#logout-form { | |
| 984 | + display: inline; | |
| 985 | +} | |
| 986 | + | |
| 987 | +#logout-form button { | |
| 988 | + background: none; | |
| 989 | + border: 0; | |
| 990 | + cursor: pointer; | |
| 991 | + font-family: var(--font-family-primary); | |
| 992 | +} | |
| 993 | + | |
| 994 | +#user-tools { | |
| 995 | + float: right; | |
| 996 | + margin: 0 0 0 20px; | |
| 997 | + text-align: right; | |
| 998 | +} | |
| 999 | + | |
| 1000 | +#user-tools, #logout-form button{ | |
| 1001 | + padding: 0; | |
| 1002 | + font-weight: 300; | |
| 1003 | + font-size: 0.6875rem; | |
| 1004 | + letter-spacing: 0.5px; | |
| 1005 | + text-transform: uppercase; | |
| 1006 | +} | |
| 1007 | + | |
| 1008 | +#user-tools a, #logout-form button { | |
| 1009 | + border-bottom: 1px solid rgba(255, 255, 255, 0.25); | |
| 1010 | +} | |
| 1011 | + | |
| 1012 | +#user-tools a:focus, #user-tools a:hover, | |
| 1013 | +#logout-form button:active, #logout-form button:hover { | |
| 1014 | + text-decoration: none; | |
| 1015 | + border-bottom: 0; | |
| 1016 | +} | |
| 1017 | + | |
| 1018 | +#logout-form button:active, #logout-form button:hover { | |
| 1019 | + margin-bottom: 1px; | |
| 1020 | +} | |
| 1021 | + | |
| 1022 | +/* SIDEBAR */ | |
| 1023 | + | |
| 1024 | +#content-related { | |
| 1025 | + background: var(--darkened-bg); | |
| 1026 | +} | |
| 1027 | + | |
| 1028 | +#content-related .module { | |
| 1029 | + background: none; | |
| 1030 | +} | |
| 1031 | + | |
| 1032 | +#content-related h3 { | |
| 1033 | + color: var(--body-quiet-color); | |
| 1034 | + padding: 0 16px; | |
| 1035 | + margin: 0 0 16px; | |
| 1036 | +} | |
| 1037 | + | |
| 1038 | +#content-related h4 { | |
| 1039 | + font-size: 0.8125rem; | |
| 1040 | +} | |
| 1041 | + | |
| 1042 | +#content-related p { | |
| 1043 | + padding-left: 16px; | |
| 1044 | + padding-right: 16px; | |
| 1045 | +} | |
| 1046 | + | |
| 1047 | +#content-related .actionlist { | |
| 1048 | + padding: 0; | |
| 1049 | + margin: 16px; | |
| 1050 | +} | |
| 1051 | + | |
| 1052 | +#content-related .actionlist li { | |
| 1053 | + line-height: 1.2; | |
| 1054 | + margin-bottom: 10px; | |
| 1055 | + padding-left: 18px; | |
| 1056 | +} | |
| 1057 | + | |
| 1058 | +#content-related .module h2 { | |
| 1059 | + background: none; | |
| 1060 | + padding: 16px; | |
| 1061 | + margin-bottom: 16px; | |
| 1062 | + border-bottom: 1px solid var(--hairline-color); | |
| 1063 | + font-size: 1.125rem; | |
| 1064 | + color: var(--body-fg); | |
| 1065 | +} | |
| 1066 | + | |
| 1067 | +.delete-confirmation form input[type="submit"] { | |
| 1068 | + background: var(--delete-button-bg); | |
| 1069 | + border-radius: 4px; | |
| 1070 | + padding: 10px 15px; | |
| 1071 | + color: var(--button-fg); | |
| 1072 | +} | |
| 1073 | + | |
| 1074 | +.delete-confirmation form input[type="submit"]:active, | |
| 1075 | +.delete-confirmation form input[type="submit"]:focus, | |
| 1076 | +.delete-confirmation form input[type="submit"]:hover { | |
| 1077 | + background: var(--delete-button-hover-bg); | |
| 1078 | +} | |
| 1079 | + | |
| 1080 | +.delete-confirmation form .cancel-link { | |
| 1081 | + display: inline-block; | |
| 1082 | + vertical-align: middle; | |
| 1083 | + height: 0.9375rem; | |
| 1084 | + line-height: 0.9375rem; | |
| 1085 | + border-radius: 4px; | |
| 1086 | + padding: 10px 15px; | |
| 1087 | + color: var(--button-fg); | |
| 1088 | + background: var(--close-button-bg); | |
| 1089 | + margin: 0 0 0 10px; | |
| 1090 | +} | |
| 1091 | + | |
| 1092 | +.delete-confirmation form .cancel-link:active, | |
| 1093 | +.delete-confirmation form .cancel-link:focus, | |
| 1094 | +.delete-confirmation form .cancel-link:hover { | |
| 1095 | + background: var(--close-button-hover-bg); | |
| 1096 | +} | |
| 1097 | + | |
| 1098 | +/* POPUP */ | |
| 1099 | +.popup #content { | |
| 1100 | + padding: 20px; | |
| 1101 | +} | |
| 1102 | + | |
| 1103 | +.popup #container { | |
| 1104 | + min-width: 0; | |
| 1105 | +} | |
| 1106 | + | |
| 1107 | +.popup #header { | |
| 1108 | + padding: 10px 20px; | |
| 1109 | +} | |
| 1110 | + | |
| 1111 | +/* PAGINATOR */ | |
| 1112 | + | |
| 1113 | +.paginator { | |
| 1114 | + display: flex; | |
| 1115 | + align-items: center; | |
| 1116 | + gap: 4px; | |
| 1117 | + font-size: 0.8125rem; | |
| 1118 | + padding-top: 10px; | |
| 1119 | + padding-bottom: 10px; | |
| 1120 | + line-height: 22px; | |
| 1121 | + margin: 0; | |
| 1122 | + border-top: 1px solid var(--hairline-color); | |
| 1123 | + width: 100%; | |
| 1124 | + box-sizing: border-box; | |
| 1125 | +} | |
| 1126 | + | |
| 1127 | +.paginator a:link, .paginator a:visited { | |
| 1128 | + padding: 2px 6px; | |
| 1129 | + background: var(--button-bg); | |
| 1130 | + text-decoration: none; | |
| 1131 | + color: var(--button-fg); | |
| 1132 | +} | |
| 1133 | + | |
| 1134 | +.paginator a.showall { | |
| 1135 | + border: none; | |
| 1136 | + background: none; | |
| 1137 | + color: var(--link-fg); | |
| 1138 | +} | |
| 1139 | + | |
| 1140 | +.paginator a.showall:focus, .paginator a.showall:hover { | |
| 1141 | + background: none; | |
| 1142 | + color: var(--link-hover-color); | |
| 1143 | +} | |
| 1144 | + | |
| 1145 | +.paginator .end { | |
| 1146 | + margin-right: 6px; | |
| 1147 | +} | |
| 1148 | + | |
| 1149 | +.paginator .this-page { | |
| 1150 | + padding: 2px 6px; | |
| 1151 | + font-weight: bold; | |
| 1152 | + font-size: 0.8125rem; | |
| 1153 | + vertical-align: top; | |
| 1154 | +} | |
| 1155 | + | |
| 1156 | +.paginator a:focus, .paginator a:hover { | |
| 1157 | + color: white; | |
| 1158 | + background: var(--link-hover-color); | |
| 1159 | +} | |
| 1160 | + | |
| 1161 | +.paginator input { | |
| 1162 | + margin-left: auto; | |
| 1163 | +} | |
| 1164 | + | |
| 1165 | +.base-svgs { | |
| 1166 | + display: none; | |
| 1167 | +} | |
| 1168 | + | |
| 1169 | +.visually-hidden { | |
| 1170 | + position: absolute; | |
| 1171 | + width: 1px; | |
| 1172 | + height: 1px; | |
| 1173 | + padding: 0; | |
| 1174 | + overflow: hidden; | |
| 1175 | + clip: rect(0,0,0,0); | |
| 1176 | + white-space: nowrap; | |
| 1177 | + border: 0; | |
| 1178 | + color: var(--body-fg); | |
| 1179 | + background-color: var(--body-bg); | |
| 1180 | +} |
| --- a/assets/admin/css/base.96c479cedf7a.css | |
| +++ b/assets/admin/css/base.96c479cedf7a.css | |
| @@ -0,0 +1,1180 @@ | |
| --- a/assets/admin/css/base.96c479cedf7a.css | |
| +++ b/assets/admin/css/base.96c479cedf7a.css | |
| @@ -0,0 +1,1180 @@ | |
| 1 | /* |
| 2 | DJANGO Admin styles |
| 3 | */ |
| 4 | |
| 5 | /* VARIABLE DEFINITIONS */ |
| 6 | html[data-theme="light"], |
| 7 | :root { |
| 8 | --primary: #79aec8; |
| 9 | --secondary: #417690; |
| 10 | --accent: #f5dd5d; |
| 11 | --primary-fg: #fff; |
| 12 | |
| 13 | --body-fg: #333; |
| 14 | --body-bg: #fff; |
| 15 | --body-quiet-color: #666; |
| 16 | --body-medium-color: #444; |
| 17 | --body-loud-color: #000; |
| 18 | |
| 19 | --header-color: #ffc; |
| 20 | --header-branding-color: var(--accent); |
| 21 | --header-bg: var(--secondary); |
| 22 | --header-link-color: var(--primary-fg); |
| 23 | |
| 24 | --breadcrumbs-fg: #c4dce8; |
| 25 | --breadcrumbs-link-fg: var(--body-bg); |
| 26 | --breadcrumbs-bg: #264b5d; |
| 27 | |
| 28 | --link-fg: #417893; |
| 29 | --link-hover-color: #036; |
| 30 | --link-selected-fg: var(--secondary); |
| 31 | |
| 32 | --hairline-color: #e8e8e8; |
| 33 | --border-color: #ccc; |
| 34 | |
| 35 | --error-fg: #ba2121; |
| 36 | |
| 37 | --message-success-bg: #dfd; |
| 38 | --message-warning-bg: #ffc; |
| 39 | --message-error-bg: #ffefef; |
| 40 | |
| 41 | --darkened-bg: #f8f8f8; /* A bit darker than --body-bg */ |
| 42 | --selected-bg: #e4e4e4; /* E.g. selected table cells */ |
| 43 | --selected-row: #ffc; |
| 44 | |
| 45 | --button-fg: #fff; |
| 46 | --button-bg: var(--secondary); |
| 47 | --button-hover-bg: #205067; |
| 48 | --default-button-bg: #205067; |
| 49 | --default-button-hover-bg: var(--secondary); |
| 50 | --close-button-bg: #747474; |
| 51 | --close-button-hover-bg: #333; |
| 52 | --delete-button-bg: #ba2121; |
| 53 | --delete-button-hover-bg: #a41515; |
| 54 | |
| 55 | --object-tools-fg: var(--button-fg); |
| 56 | --object-tools-bg: var(--close-button-bg); |
| 57 | --object-tools-hover-bg: var(--close-button-hover-bg); |
| 58 | |
| 59 | --font-family-primary: |
| 60 | "Segoe UI", |
| 61 | system-ui, |
| 62 | Roboto, |
| 63 | "Helvetica Neue", |
| 64 | Arial, |
| 65 | sans-serif, |
| 66 | "Apple Color Emoji", |
| 67 | "Segoe UI Emoji", |
| 68 | "Segoe UI Symbol", |
| 69 | "Noto Color Emoji"; |
| 70 | --font-family-monospace: |
| 71 | ui-monospace, |
| 72 | Menlo, |
| 73 | Monaco, |
| 74 | "Cascadia Mono", |
| 75 | "Segoe UI Mono", |
| 76 | "Roboto Mono", |
| 77 | "Oxygen Mono", |
| 78 | "Ubuntu Monospace", |
| 79 | "Source Code Pro", |
| 80 | "Fira Mono", |
| 81 | "Droid Sans Mono", |
| 82 | "Courier New", |
| 83 | monospace, |
| 84 | "Apple Color Emoji", |
| 85 | "Segoe UI Emoji", |
| 86 | "Segoe UI Symbol", |
| 87 | "Noto Color Emoji"; |
| 88 | |
| 89 | color-scheme: light; |
| 90 | } |
| 91 | |
| 92 | html, body { |
| 93 | height: 100%; |
| 94 | } |
| 95 | |
| 96 | body { |
| 97 | margin: 0; |
| 98 | padding: 0; |
| 99 | font-size: 0.875rem; |
| 100 | font-family: var(--font-family-primary); |
| 101 | color: var(--body-fg); |
| 102 | background: var(--body-bg); |
| 103 | } |
| 104 | |
| 105 | /* LINKS */ |
| 106 | |
| 107 | a:link, a:visited { |
| 108 | color: var(--link-fg); |
| 109 | text-decoration: none; |
| 110 | transition: color 0.15s, background 0.15s; |
| 111 | } |
| 112 | |
| 113 | a:focus, a:hover { |
| 114 | color: var(--link-hover-color); |
| 115 | } |
| 116 | |
| 117 | a:focus { |
| 118 | text-decoration: underline; |
| 119 | } |
| 120 | |
| 121 | a img { |
| 122 | border: none; |
| 123 | } |
| 124 | |
| 125 | a.section:link, a.section:visited { |
| 126 | color: var(--header-link-color); |
| 127 | text-decoration: none; |
| 128 | } |
| 129 | |
| 130 | a.section:focus, a.section:hover { |
| 131 | text-decoration: underline; |
| 132 | } |
| 133 | |
| 134 | /* GLOBAL DEFAULTS */ |
| 135 | |
| 136 | p, ol, ul, dl { |
| 137 | margin: .2em 0 .8em 0; |
| 138 | } |
| 139 | |
| 140 | p { |
| 141 | padding: 0; |
| 142 | line-height: 140%; |
| 143 | } |
| 144 | |
| 145 | h1,h2,h3,h4,h5 { |
| 146 | font-weight: bold; |
| 147 | } |
| 148 | |
| 149 | h1 { |
| 150 | margin: 0 0 20px; |
| 151 | font-weight: 300; |
| 152 | font-size: 1.25rem; |
| 153 | } |
| 154 | |
| 155 | h2 { |
| 156 | font-size: 1rem; |
| 157 | margin: 1em 0 .5em 0; |
| 158 | } |
| 159 | |
| 160 | h2.subhead { |
| 161 | font-weight: normal; |
| 162 | margin-top: 0; |
| 163 | } |
| 164 | |
| 165 | h3 { |
| 166 | font-size: 0.875rem; |
| 167 | margin: .8em 0 .3em 0; |
| 168 | color: var(--body-medium-color); |
| 169 | font-weight: bold; |
| 170 | } |
| 171 | |
| 172 | h4 { |
| 173 | font-size: 0.75rem; |
| 174 | margin: 1em 0 .8em 0; |
| 175 | padding-bottom: 3px; |
| 176 | color: var(--body-medium-color); |
| 177 | } |
| 178 | |
| 179 | h5 { |
| 180 | font-size: 0.625rem; |
| 181 | margin: 1.5em 0 .5em 0; |
| 182 | color: var(--body-quiet-color); |
| 183 | text-transform: uppercase; |
| 184 | letter-spacing: 1px; |
| 185 | } |
| 186 | |
| 187 | ul > li { |
| 188 | list-style-type: square; |
| 189 | padding: 1px 0; |
| 190 | } |
| 191 | |
| 192 | li ul { |
| 193 | margin-bottom: 0; |
| 194 | } |
| 195 | |
| 196 | li, dt, dd { |
| 197 | font-size: 0.8125rem; |
| 198 | line-height: 1.25rem; |
| 199 | } |
| 200 | |
| 201 | dt { |
| 202 | font-weight: bold; |
| 203 | margin-top: 4px; |
| 204 | } |
| 205 | |
| 206 | dd { |
| 207 | margin-left: 0; |
| 208 | } |
| 209 | |
| 210 | form { |
| 211 | margin: 0; |
| 212 | padding: 0; |
| 213 | } |
| 214 | |
| 215 | fieldset { |
| 216 | margin: 0; |
| 217 | min-width: 0; |
| 218 | padding: 0; |
| 219 | border: none; |
| 220 | border-top: 1px solid var(--hairline-color); |
| 221 | } |
| 222 | |
| 223 | details summary { |
| 224 | cursor: pointer; |
| 225 | } |
| 226 | |
| 227 | blockquote { |
| 228 | font-size: 0.6875rem; |
| 229 | color: #777; |
| 230 | margin-left: 2px; |
| 231 | padding-left: 10px; |
| 232 | border-left: 5px solid #ddd; |
| 233 | } |
| 234 | |
| 235 | code, pre { |
| 236 | font-family: var(--font-family-monospace); |
| 237 | color: var(--body-quiet-color); |
| 238 | font-size: 0.75rem; |
| 239 | overflow-x: auto; |
| 240 | } |
| 241 | |
| 242 | pre.literal-block { |
| 243 | margin: 10px; |
| 244 | background: var(--darkened-bg); |
| 245 | padding: 6px 8px; |
| 246 | } |
| 247 | |
| 248 | code strong { |
| 249 | color: #930; |
| 250 | } |
| 251 | |
| 252 | hr { |
| 253 | clear: both; |
| 254 | color: var(--hairline-color); |
| 255 | background-color: var(--hairline-color); |
| 256 | height: 1px; |
| 257 | border: none; |
| 258 | margin: 0; |
| 259 | padding: 0; |
| 260 | line-height: 1px; |
| 261 | } |
| 262 | |
| 263 | /* TEXT STYLES & MODIFIERS */ |
| 264 | |
| 265 | .small { |
| 266 | font-size: 0.6875rem; |
| 267 | } |
| 268 | |
| 269 | .mini { |
| 270 | font-size: 0.625rem; |
| 271 | } |
| 272 | |
| 273 | .help, p.help, form p.help, div.help, form div.help, div.help li { |
| 274 | font-size: 0.6875rem; |
| 275 | color: var(--body-quiet-color); |
| 276 | } |
| 277 | |
| 278 | div.help ul { |
| 279 | margin-bottom: 0; |
| 280 | } |
| 281 | |
| 282 | .help-tooltip { |
| 283 | cursor: help; |
| 284 | } |
| 285 | |
| 286 | p img, h1 img, h2 img, h3 img, h4 img, td img { |
| 287 | vertical-align: middle; |
| 288 | } |
| 289 | |
| 290 | .quiet, a.quiet:link, a.quiet:visited { |
| 291 | color: var(--body-quiet-color); |
| 292 | font-weight: normal; |
| 293 | } |
| 294 | |
| 295 | .clear { |
| 296 | clear: both; |
| 297 | } |
| 298 | |
| 299 | .nowrap { |
| 300 | white-space: nowrap; |
| 301 | } |
| 302 | |
| 303 | .hidden { |
| 304 | display: none !important; |
| 305 | } |
| 306 | |
| 307 | /* TABLES */ |
| 308 | |
| 309 | table { |
| 310 | border-collapse: collapse; |
| 311 | border-color: var(--border-color); |
| 312 | } |
| 313 | |
| 314 | td, th { |
| 315 | font-size: 0.8125rem; |
| 316 | line-height: 1rem; |
| 317 | border-bottom: 1px solid var(--hairline-color); |
| 318 | vertical-align: top; |
| 319 | padding: 8px; |
| 320 | } |
| 321 | |
| 322 | th { |
| 323 | font-weight: 500; |
| 324 | text-align: left; |
| 325 | } |
| 326 | |
| 327 | thead th, |
| 328 | tfoot td { |
| 329 | color: var(--body-quiet-color); |
| 330 | padding: 5px 10px; |
| 331 | font-size: 0.6875rem; |
| 332 | background: var(--body-bg); |
| 333 | border: none; |
| 334 | border-top: 1px solid var(--hairline-color); |
| 335 | border-bottom: 1px solid var(--hairline-color); |
| 336 | } |
| 337 | |
| 338 | tfoot td { |
| 339 | border-bottom: none; |
| 340 | border-top: 1px solid var(--hairline-color); |
| 341 | } |
| 342 | |
| 343 | thead th.required { |
| 344 | font-weight: bold; |
| 345 | } |
| 346 | |
| 347 | tr.alt { |
| 348 | background: var(--darkened-bg); |
| 349 | } |
| 350 | |
| 351 | tr:nth-child(odd), .row-form-errors { |
| 352 | background: var(--body-bg); |
| 353 | } |
| 354 | |
| 355 | tr:nth-child(even), |
| 356 | tr:nth-child(even) .errorlist, |
| 357 | tr:nth-child(odd) + .row-form-errors, |
| 358 | tr:nth-child(odd) + .row-form-errors .errorlist { |
| 359 | background: var(--darkened-bg); |
| 360 | } |
| 361 | |
| 362 | /* SORTABLE TABLES */ |
| 363 | |
| 364 | thead th { |
| 365 | padding: 5px 10px; |
| 366 | line-height: normal; |
| 367 | text-transform: uppercase; |
| 368 | background: var(--darkened-bg); |
| 369 | } |
| 370 | |
| 371 | thead th a:link, thead th a:visited { |
| 372 | color: var(--body-quiet-color); |
| 373 | } |
| 374 | |
| 375 | thead th.sorted { |
| 376 | background: var(--selected-bg); |
| 377 | } |
| 378 | |
| 379 | thead th.sorted .text { |
| 380 | padding-right: 42px; |
| 381 | } |
| 382 | |
| 383 | table thead th .text span { |
| 384 | padding: 8px 10px; |
| 385 | display: block; |
| 386 | } |
| 387 | |
| 388 | table thead th .text a { |
| 389 | display: block; |
| 390 | cursor: pointer; |
| 391 | padding: 8px 10px; |
| 392 | } |
| 393 | |
| 394 | table thead th .text a:focus, table thead th .text a:hover { |
| 395 | background: var(--selected-bg); |
| 396 | } |
| 397 | |
| 398 | thead th.sorted a.sortremove { |
| 399 | visibility: hidden; |
| 400 | } |
| 401 | |
| 402 | table thead th.sorted:hover a.sortremove { |
| 403 | visibility: visible; |
| 404 | } |
| 405 | |
| 406 | table thead th.sorted .sortoptions { |
| 407 | display: block; |
| 408 | padding: 9px 5px 0 5px; |
| 409 | float: right; |
| 410 | text-align: right; |
| 411 | } |
| 412 | |
| 413 | table thead th.sorted .sortpriority { |
| 414 | font-size: .8em; |
| 415 | min-width: 12px; |
| 416 | text-align: center; |
| 417 | vertical-align: 3px; |
| 418 | margin-left: 2px; |
| 419 | margin-right: 2px; |
| 420 | } |
| 421 | |
| 422 | table thead th.sorted .sortoptions a { |
| 423 | position: relative; |
| 424 | width: 14px; |
| 425 | height: 14px; |
| 426 | display: inline-block; |
| 427 | background: url("../img/sorting-icons.3a097b59f104.svg") 0 0 no-repeat; |
| 428 | background-size: 14px auto; |
| 429 | } |
| 430 | |
| 431 | table thead th.sorted .sortoptions a.sortremove { |
| 432 | background-position: 0 0; |
| 433 | } |
| 434 | |
| 435 | table thead th.sorted .sortoptions a.sortremove:after { |
| 436 | content: '\\'; |
| 437 | position: absolute; |
| 438 | top: -6px; |
| 439 | left: 3px; |
| 440 | font-weight: 200; |
| 441 | font-size: 1.125rem; |
| 442 | color: var(--body-quiet-color); |
| 443 | } |
| 444 | |
| 445 | table thead th.sorted .sortoptions a.sortremove:focus:after, |
| 446 | table thead th.sorted .sortoptions a.sortremove:hover:after { |
| 447 | color: var(--link-fg); |
| 448 | } |
| 449 | |
| 450 | table thead th.sorted .sortoptions a.sortremove:focus, |
| 451 | table thead th.sorted .sortoptions a.sortremove:hover { |
| 452 | background-position: 0 -14px; |
| 453 | } |
| 454 | |
| 455 | table thead th.sorted .sortoptions a.ascending { |
| 456 | background-position: 0 -28px; |
| 457 | } |
| 458 | |
| 459 | table thead th.sorted .sortoptions a.ascending:focus, |
| 460 | table thead th.sorted .sortoptions a.ascending:hover { |
| 461 | background-position: 0 -42px; |
| 462 | } |
| 463 | |
| 464 | table thead th.sorted .sortoptions a.descending { |
| 465 | top: 1px; |
| 466 | background-position: 0 -56px; |
| 467 | } |
| 468 | |
| 469 | table thead th.sorted .sortoptions a.descending:focus, |
| 470 | table thead th.sorted .sortoptions a.descending:hover { |
| 471 | background-position: 0 -70px; |
| 472 | } |
| 473 | |
| 474 | /* FORM DEFAULTS */ |
| 475 | |
| 476 | input, textarea, select, .form-row p, form .button { |
| 477 | margin: 2px 0; |
| 478 | padding: 2px 3px; |
| 479 | vertical-align: middle; |
| 480 | font-family: var(--font-family-primary); |
| 481 | font-weight: normal; |
| 482 | font-size: 0.8125rem; |
| 483 | } |
| 484 | .form-row div.help { |
| 485 | padding: 2px 3px; |
| 486 | } |
| 487 | |
| 488 | textarea { |
| 489 | vertical-align: top; |
| 490 | } |
| 491 | |
| 492 | /* |
| 493 | Minifiers remove the default (text) "type" attribute from "input" HTML tags. |
| 494 | Add input:not([type]) to make the CSS stylesheet work the same. |
| 495 | */ |
| 496 | input:not([type]), input[type=text], input[type=password], input[type=email], |
| 497 | input[type=url], input[type=number], input[type=tel], textarea, select, |
| 498 | .vTextField { |
| 499 | border: 1px solid var(--border-color); |
| 500 | border-radius: 4px; |
| 501 | padding: 5px 6px; |
| 502 | margin-top: 0; |
| 503 | color: var(--body-fg); |
| 504 | background-color: var(--body-bg); |
| 505 | } |
| 506 | |
| 507 | /* |
| 508 | Minifiers remove the default (text) "type" attribute from "input" HTML tags. |
| 509 | Add input:not([type]) to make the CSS stylesheet work the same. |
| 510 | */ |
| 511 | input:not([type]):focus, input[type=text]:focus, input[type=password]:focus, |
| 512 | input[type=email]:focus, input[type=url]:focus, input[type=number]:focus, |
| 513 | input[type=tel]:focus, textarea:focus, select:focus, .vTextField:focus { |
| 514 | border-color: var(--body-quiet-color); |
| 515 | } |
| 516 | |
| 517 | select { |
| 518 | height: 1.875rem; |
| 519 | } |
| 520 | |
| 521 | select[multiple] { |
| 522 | /* Allow HTML size attribute to override the height in the rule above. */ |
| 523 | height: auto; |
| 524 | min-height: 150px; |
| 525 | } |
| 526 | |
| 527 | /* FORM BUTTONS */ |
| 528 | |
| 529 | .button, input[type=submit], input[type=button], .submit-row input, a.button { |
| 530 | background: var(--button-bg); |
| 531 | padding: 10px 15px; |
| 532 | border: none; |
| 533 | border-radius: 4px; |
| 534 | color: var(--button-fg); |
| 535 | cursor: pointer; |
| 536 | transition: background 0.15s; |
| 537 | } |
| 538 | |
| 539 | a.button { |
| 540 | padding: 4px 5px; |
| 541 | } |
| 542 | |
| 543 | .button:active, input[type=submit]:active, input[type=button]:active, |
| 544 | .button:focus, input[type=submit]:focus, input[type=button]:focus, |
| 545 | .button:hover, input[type=submit]:hover, input[type=button]:hover { |
| 546 | background: var(--button-hover-bg); |
| 547 | } |
| 548 | |
| 549 | .button[disabled], input[type=submit][disabled], input[type=button][disabled] { |
| 550 | opacity: 0.4; |
| 551 | } |
| 552 | |
| 553 | .button.default, input[type=submit].default, .submit-row input.default { |
| 554 | border: none; |
| 555 | font-weight: 400; |
| 556 | background: var(--default-button-bg); |
| 557 | } |
| 558 | |
| 559 | .button.default:active, input[type=submit].default:active, |
| 560 | .button.default:focus, input[type=submit].default:focus, |
| 561 | .button.default:hover, input[type=submit].default:hover { |
| 562 | background: var(--default-button-hover-bg); |
| 563 | } |
| 564 | |
| 565 | .button[disabled].default, |
| 566 | input[type=submit][disabled].default, |
| 567 | input[type=button][disabled].default { |
| 568 | opacity: 0.4; |
| 569 | } |
| 570 | |
| 571 | |
| 572 | /* MODULES */ |
| 573 | |
| 574 | .module { |
| 575 | border: none; |
| 576 | margin-bottom: 30px; |
| 577 | background: var(--body-bg); |
| 578 | } |
| 579 | |
| 580 | .module p, .module ul, .module h3, .module h4, .module dl, .module pre { |
| 581 | padding-left: 10px; |
| 582 | padding-right: 10px; |
| 583 | } |
| 584 | |
| 585 | .module blockquote { |
| 586 | margin-left: 12px; |
| 587 | } |
| 588 | |
| 589 | .module ul, .module ol { |
| 590 | margin-left: 1.5em; |
| 591 | } |
| 592 | |
| 593 | .module h3 { |
| 594 | margin-top: .6em; |
| 595 | } |
| 596 | |
| 597 | .module h2, .module caption, .inline-group h2 { |
| 598 | margin: 0; |
| 599 | padding: 8px; |
| 600 | font-weight: 400; |
| 601 | font-size: 0.8125rem; |
| 602 | text-align: left; |
| 603 | background: var(--header-bg); |
| 604 | color: var(--header-link-color); |
| 605 | } |
| 606 | |
| 607 | .module caption, |
| 608 | .inline-group h2 { |
| 609 | font-size: 0.75rem; |
| 610 | letter-spacing: 0.5px; |
| 611 | text-transform: uppercase; |
| 612 | } |
| 613 | |
| 614 | .module table { |
| 615 | border-collapse: collapse; |
| 616 | } |
| 617 | |
| 618 | /* MESSAGES & ERRORS */ |
| 619 | |
| 620 | ul.messagelist { |
| 621 | padding: 0; |
| 622 | margin: 0; |
| 623 | } |
| 624 | |
| 625 | ul.messagelist li { |
| 626 | display: block; |
| 627 | font-weight: 400; |
| 628 | font-size: 0.8125rem; |
| 629 | padding: 10px 10px 10px 65px; |
| 630 | margin: 0 0 10px 0; |
| 631 | background: var(--message-success-bg) url("../img/icon-yes.d2f9f035226a.svg") 40px 12px no-repeat; |
| 632 | background-size: 16px auto; |
| 633 | color: var(--body-fg); |
| 634 | word-break: break-word; |
| 635 | } |
| 636 | |
| 637 | ul.messagelist li.warning { |
| 638 | background: var(--message-warning-bg) url("../img/icon-alert.034cc7d8a67f.svg") 40px 14px no-repeat; |
| 639 | background-size: 14px auto; |
| 640 | } |
| 641 | |
| 642 | ul.messagelist li.error { |
| 643 | background: var(--message-error-bg) url("../img/icon-no.439e821418cd.svg") 40px 12px no-repeat; |
| 644 | background-size: 16px auto; |
| 645 | } |
| 646 | |
| 647 | .errornote { |
| 648 | font-size: 0.875rem; |
| 649 | font-weight: 700; |
| 650 | display: block; |
| 651 | padding: 10px 12px; |
| 652 | margin: 0 0 10px 0; |
| 653 | color: var(--error-fg); |
| 654 | border: 1px solid var(--error-fg); |
| 655 | border-radius: 4px; |
| 656 | background-color: var(--body-bg); |
| 657 | background-position: 5px 12px; |
| 658 | overflow-wrap: break-word; |
| 659 | } |
| 660 | |
| 661 | ul.errorlist { |
| 662 | margin: 0 0 4px; |
| 663 | padding: 0; |
| 664 | color: var(--error-fg); |
| 665 | background: var(--body-bg); |
| 666 | } |
| 667 | |
| 668 | ul.errorlist li { |
| 669 | font-size: 0.8125rem; |
| 670 | display: block; |
| 671 | margin-bottom: 4px; |
| 672 | overflow-wrap: break-word; |
| 673 | } |
| 674 | |
| 675 | ul.errorlist li:first-child { |
| 676 | margin-top: 0; |
| 677 | } |
| 678 | |
| 679 | ul.errorlist li a { |
| 680 | color: inherit; |
| 681 | text-decoration: underline; |
| 682 | } |
| 683 | |
| 684 | td ul.errorlist { |
| 685 | margin: 0; |
| 686 | padding: 0; |
| 687 | } |
| 688 | |
| 689 | td ul.errorlist li { |
| 690 | margin: 0; |
| 691 | } |
| 692 | |
| 693 | .form-row.errors { |
| 694 | margin: 0; |
| 695 | border: none; |
| 696 | border-bottom: 1px solid var(--hairline-color); |
| 697 | background: none; |
| 698 | } |
| 699 | |
| 700 | .form-row.errors ul.errorlist li { |
| 701 | padding-left: 0; |
| 702 | } |
| 703 | |
| 704 | .errors input, .errors select, .errors textarea, |
| 705 | td ul.errorlist + input, td ul.errorlist + select, td ul.errorlist + textarea { |
| 706 | border: 1px solid var(--error-fg); |
| 707 | } |
| 708 | |
| 709 | .description { |
| 710 | font-size: 0.75rem; |
| 711 | padding: 5px 0 0 12px; |
| 712 | } |
| 713 | |
| 714 | /* BREADCRUMBS */ |
| 715 | |
| 716 | div.breadcrumbs { |
| 717 | background: var(--breadcrumbs-bg); |
| 718 | padding: 10px 40px; |
| 719 | border: none; |
| 720 | color: var(--breadcrumbs-fg); |
| 721 | text-align: left; |
| 722 | } |
| 723 | |
| 724 | div.breadcrumbs a { |
| 725 | color: var(--breadcrumbs-link-fg); |
| 726 | } |
| 727 | |
| 728 | div.breadcrumbs a:focus, div.breadcrumbs a:hover { |
| 729 | color: var(--breadcrumbs-fg); |
| 730 | } |
| 731 | |
| 732 | /* ACTION ICONS */ |
| 733 | |
| 734 | .viewlink, .inlineviewlink { |
| 735 | padding-left: 16px; |
| 736 | background: url("../img/icon-viewlink.41eb31f7826e.svg") 0 1px no-repeat; |
| 737 | } |
| 738 | |
| 739 | .hidelink { |
| 740 | padding-left: 16px; |
| 741 | background: url("../img/icon-hidelink.8d245a995e18.svg") 0 1px no-repeat; |
| 742 | } |
| 743 | |
| 744 | .addlink { |
| 745 | padding-left: 16px; |
| 746 | background: url("../img/icon-addlink.073aeb1feda7.svg") 0 1px no-repeat; |
| 747 | } |
| 748 | |
| 749 | .changelink, .inlinechangelink { |
| 750 | padding-left: 16px; |
| 751 | background: url("../img/icon-changelink.7eddb320e61f.svg") 0 1px no-repeat; |
| 752 | } |
| 753 | |
| 754 | .deletelink { |
| 755 | padding-left: 16px; |
| 756 | background: url("../img/icon-deletelink.564ef9dc3854.svg") 0 1px no-repeat; |
| 757 | } |
| 758 | |
| 759 | a.deletelink:link, a.deletelink:visited { |
| 760 | color: #CC3434; /* XXX Probably unused? */ |
| 761 | } |
| 762 | |
| 763 | a.deletelink:focus, a.deletelink:hover { |
| 764 | color: #993333; /* XXX Probably unused? */ |
| 765 | text-decoration: none; |
| 766 | } |
| 767 | |
| 768 | /* OBJECT TOOLS */ |
| 769 | |
| 770 | .object-tools { |
| 771 | font-size: 0.625rem; |
| 772 | font-weight: bold; |
| 773 | padding-left: 0; |
| 774 | float: right; |
| 775 | position: relative; |
| 776 | margin-top: -48px; |
| 777 | } |
| 778 | |
| 779 | .object-tools li { |
| 780 | display: block; |
| 781 | float: left; |
| 782 | margin-left: 5px; |
| 783 | height: 1rem; |
| 784 | } |
| 785 | |
| 786 | .object-tools a { |
| 787 | border-radius: 15px; |
| 788 | } |
| 789 | |
| 790 | .object-tools a:link, .object-tools a:visited { |
| 791 | display: block; |
| 792 | float: left; |
| 793 | padding: 3px 12px; |
| 794 | background: var(--object-tools-bg); |
| 795 | color: var(--object-tools-fg); |
| 796 | font-weight: 400; |
| 797 | font-size: 0.6875rem; |
| 798 | text-transform: uppercase; |
| 799 | letter-spacing: 0.5px; |
| 800 | } |
| 801 | |
| 802 | .object-tools a:focus, .object-tools a:hover { |
| 803 | background-color: var(--object-tools-hover-bg); |
| 804 | } |
| 805 | |
| 806 | .object-tools a:focus{ |
| 807 | text-decoration: none; |
| 808 | } |
| 809 | |
| 810 | .object-tools a.viewsitelink, .object-tools a.addlink { |
| 811 | background-repeat: no-repeat; |
| 812 | background-position: right 7px center; |
| 813 | padding-right: 26px; |
| 814 | } |
| 815 | |
| 816 | .object-tools a.viewsitelink { |
| 817 | background-image: url("../img/tooltag-arrowright.bbfb788a849e.svg"); |
| 818 | } |
| 819 | |
| 820 | .object-tools a.addlink { |
| 821 | background-image: url("../img/tooltag-add.e59d620a9742.svg"); |
| 822 | } |
| 823 | |
| 824 | /* OBJECT HISTORY */ |
| 825 | |
| 826 | #change-history table { |
| 827 | width: 100%; |
| 828 | } |
| 829 | |
| 830 | #change-history table tbody th { |
| 831 | width: 16em; |
| 832 | } |
| 833 | |
| 834 | #change-history .paginator { |
| 835 | color: var(--body-quiet-color); |
| 836 | border-bottom: 1px solid var(--hairline-color); |
| 837 | background: var(--body-bg); |
| 838 | overflow: hidden; |
| 839 | } |
| 840 | |
| 841 | /* PAGE STRUCTURE */ |
| 842 | |
| 843 | #container { |
| 844 | position: relative; |
| 845 | width: 100%; |
| 846 | min-width: 980px; |
| 847 | padding: 0; |
| 848 | display: flex; |
| 849 | flex-direction: column; |
| 850 | height: 100%; |
| 851 | } |
| 852 | |
| 853 | #container > .main { |
| 854 | display: flex; |
| 855 | flex: 1 0 auto; |
| 856 | } |
| 857 | |
| 858 | .main > .content { |
| 859 | flex: 1 0; |
| 860 | max-width: 100%; |
| 861 | } |
| 862 | |
| 863 | .skip-to-content-link { |
| 864 | position: absolute; |
| 865 | top: -999px; |
| 866 | margin: 5px; |
| 867 | padding: 5px; |
| 868 | background: var(--body-bg); |
| 869 | z-index: 1; |
| 870 | } |
| 871 | |
| 872 | .skip-to-content-link:focus { |
| 873 | left: 0px; |
| 874 | top: 0px; |
| 875 | } |
| 876 | |
| 877 | #content { |
| 878 | padding: 20px 40px; |
| 879 | } |
| 880 | |
| 881 | .dashboard #content { |
| 882 | width: 600px; |
| 883 | } |
| 884 | |
| 885 | #content-main { |
| 886 | float: left; |
| 887 | width: 100%; |
| 888 | } |
| 889 | |
| 890 | #content-related { |
| 891 | float: right; |
| 892 | width: 260px; |
| 893 | position: relative; |
| 894 | margin-right: -300px; |
| 895 | } |
| 896 | |
| 897 | @media (forced-colors: active) { |
| 898 | #content-related { |
| 899 | border: 1px solid; |
| 900 | } |
| 901 | } |
| 902 | |
| 903 | /* COLUMN TYPES */ |
| 904 | |
| 905 | .colMS { |
| 906 | margin-right: 300px; |
| 907 | } |
| 908 | |
| 909 | .colSM { |
| 910 | margin-left: 300px; |
| 911 | } |
| 912 | |
| 913 | .colSM #content-related { |
| 914 | float: left; |
| 915 | margin-right: 0; |
| 916 | margin-left: -300px; |
| 917 | } |
| 918 | |
| 919 | .colSM #content-main { |
| 920 | float: right; |
| 921 | } |
| 922 | |
| 923 | .popup .colM { |
| 924 | width: auto; |
| 925 | } |
| 926 | |
| 927 | /* HEADER */ |
| 928 | |
| 929 | #header { |
| 930 | width: auto; |
| 931 | height: auto; |
| 932 | display: flex; |
| 933 | justify-content: space-between; |
| 934 | align-items: center; |
| 935 | padding: 10px 40px; |
| 936 | background: var(--header-bg); |
| 937 | color: var(--header-color); |
| 938 | } |
| 939 | |
| 940 | #header a:link, #header a:visited, #logout-form button { |
| 941 | color: var(--header-link-color); |
| 942 | } |
| 943 | |
| 944 | #header a:focus , #header a:hover { |
| 945 | text-decoration: underline; |
| 946 | } |
| 947 | |
| 948 | @media (forced-colors: active) { |
| 949 | #header { |
| 950 | border-bottom: 1px solid; |
| 951 | } |
| 952 | } |
| 953 | |
| 954 | #branding { |
| 955 | display: flex; |
| 956 | } |
| 957 | |
| 958 | #site-name { |
| 959 | padding: 0; |
| 960 | margin: 0; |
| 961 | margin-inline-end: 20px; |
| 962 | font-weight: 300; |
| 963 | font-size: 1.5rem; |
| 964 | color: var(--header-branding-color); |
| 965 | } |
| 966 | |
| 967 | #site-name a:link, #site-name a:visited { |
| 968 | color: var(--accent); |
| 969 | } |
| 970 | |
| 971 | #branding h2 { |
| 972 | padding: 0 10px; |
| 973 | font-size: 0.875rem; |
| 974 | margin: -8px 0 8px 0; |
| 975 | font-weight: normal; |
| 976 | color: var(--header-color); |
| 977 | } |
| 978 | |
| 979 | #branding a:hover { |
| 980 | text-decoration: none; |
| 981 | } |
| 982 | |
| 983 | #logout-form { |
| 984 | display: inline; |
| 985 | } |
| 986 | |
| 987 | #logout-form button { |
| 988 | background: none; |
| 989 | border: 0; |
| 990 | cursor: pointer; |
| 991 | font-family: var(--font-family-primary); |
| 992 | } |
| 993 | |
| 994 | #user-tools { |
| 995 | float: right; |
| 996 | margin: 0 0 0 20px; |
| 997 | text-align: right; |
| 998 | } |
| 999 | |
| 1000 | #user-tools, #logout-form button{ |
| 1001 | padding: 0; |
| 1002 | font-weight: 300; |
| 1003 | font-size: 0.6875rem; |
| 1004 | letter-spacing: 0.5px; |
| 1005 | text-transform: uppercase; |
| 1006 | } |
| 1007 | |
| 1008 | #user-tools a, #logout-form button { |
| 1009 | border-bottom: 1px solid rgba(255, 255, 255, 0.25); |
| 1010 | } |
| 1011 | |
| 1012 | #user-tools a:focus, #user-tools a:hover, |
| 1013 | #logout-form button:active, #logout-form button:hover { |
| 1014 | text-decoration: none; |
| 1015 | border-bottom: 0; |
| 1016 | } |
| 1017 | |
| 1018 | #logout-form button:active, #logout-form button:hover { |
| 1019 | margin-bottom: 1px; |
| 1020 | } |
| 1021 | |
| 1022 | /* SIDEBAR */ |
| 1023 | |
| 1024 | #content-related { |
| 1025 | background: var(--darkened-bg); |
| 1026 | } |
| 1027 | |
| 1028 | #content-related .module { |
| 1029 | background: none; |
| 1030 | } |
| 1031 | |
| 1032 | #content-related h3 { |
| 1033 | color: var(--body-quiet-color); |
| 1034 | padding: 0 16px; |
| 1035 | margin: 0 0 16px; |
| 1036 | } |
| 1037 | |
| 1038 | #content-related h4 { |
| 1039 | font-size: 0.8125rem; |
| 1040 | } |
| 1041 | |
| 1042 | #content-related p { |
| 1043 | padding-left: 16px; |
| 1044 | padding-right: 16px; |
| 1045 | } |
| 1046 | |
| 1047 | #content-related .actionlist { |
| 1048 | padding: 0; |
| 1049 | margin: 16px; |
| 1050 | } |
| 1051 | |
| 1052 | #content-related .actionlist li { |
| 1053 | line-height: 1.2; |
| 1054 | margin-bottom: 10px; |
| 1055 | padding-left: 18px; |
| 1056 | } |
| 1057 | |
| 1058 | #content-related .module h2 { |
| 1059 | background: none; |
| 1060 | padding: 16px; |
| 1061 | margin-bottom: 16px; |
| 1062 | border-bottom: 1px solid var(--hairline-color); |
| 1063 | font-size: 1.125rem; |
| 1064 | color: var(--body-fg); |
| 1065 | } |
| 1066 | |
| 1067 | .delete-confirmation form input[type="submit"] { |
| 1068 | background: var(--delete-button-bg); |
| 1069 | border-radius: 4px; |
| 1070 | padding: 10px 15px; |
| 1071 | color: var(--button-fg); |
| 1072 | } |
| 1073 | |
| 1074 | .delete-confirmation form input[type="submit"]:active, |
| 1075 | .delete-confirmation form input[type="submit"]:focus, |
| 1076 | .delete-confirmation form input[type="submit"]:hover { |
| 1077 | background: var(--delete-button-hover-bg); |
| 1078 | } |
| 1079 | |
| 1080 | .delete-confirmation form .cancel-link { |
| 1081 | display: inline-block; |
| 1082 | vertical-align: middle; |
| 1083 | height: 0.9375rem; |
| 1084 | line-height: 0.9375rem; |
| 1085 | border-radius: 4px; |
| 1086 | padding: 10px 15px; |
| 1087 | color: var(--button-fg); |
| 1088 | background: var(--close-button-bg); |
| 1089 | margin: 0 0 0 10px; |
| 1090 | } |
| 1091 | |
| 1092 | .delete-confirmation form .cancel-link:active, |
| 1093 | .delete-confirmation form .cancel-link:focus, |
| 1094 | .delete-confirmation form .cancel-link:hover { |
| 1095 | background: var(--close-button-hover-bg); |
| 1096 | } |
| 1097 | |
| 1098 | /* POPUP */ |
| 1099 | .popup #content { |
| 1100 | padding: 20px; |
| 1101 | } |
| 1102 | |
| 1103 | .popup #container { |
| 1104 | min-width: 0; |
| 1105 | } |
| 1106 | |
| 1107 | .popup #header { |
| 1108 | padding: 10px 20px; |
| 1109 | } |
| 1110 | |
| 1111 | /* PAGINATOR */ |
| 1112 | |
| 1113 | .paginator { |
| 1114 | display: flex; |
| 1115 | align-items: center; |
| 1116 | gap: 4px; |
| 1117 | font-size: 0.8125rem; |
| 1118 | padding-top: 10px; |
| 1119 | padding-bottom: 10px; |
| 1120 | line-height: 22px; |
| 1121 | margin: 0; |
| 1122 | border-top: 1px solid var(--hairline-color); |
| 1123 | width: 100%; |
| 1124 | box-sizing: border-box; |
| 1125 | } |
| 1126 | |
| 1127 | .paginator a:link, .paginator a:visited { |
| 1128 | padding: 2px 6px; |
| 1129 | background: var(--button-bg); |
| 1130 | text-decoration: none; |
| 1131 | color: var(--button-fg); |
| 1132 | } |
| 1133 | |
| 1134 | .paginator a.showall { |
| 1135 | border: none; |
| 1136 | background: none; |
| 1137 | color: var(--link-fg); |
| 1138 | } |
| 1139 | |
| 1140 | .paginator a.showall:focus, .paginator a.showall:hover { |
| 1141 | background: none; |
| 1142 | color: var(--link-hover-color); |
| 1143 | } |
| 1144 | |
| 1145 | .paginator .end { |
| 1146 | margin-right: 6px; |
| 1147 | } |
| 1148 | |
| 1149 | .paginator .this-page { |
| 1150 | padding: 2px 6px; |
| 1151 | font-weight: bold; |
| 1152 | font-size: 0.8125rem; |
| 1153 | vertical-align: top; |
| 1154 | } |
| 1155 | |
| 1156 | .paginator a:focus, .paginator a:hover { |
| 1157 | color: white; |
| 1158 | background: var(--link-hover-color); |
| 1159 | } |
| 1160 | |
| 1161 | .paginator input { |
| 1162 | margin-left: auto; |
| 1163 | } |
| 1164 | |
| 1165 | .base-svgs { |
| 1166 | display: none; |
| 1167 | } |
| 1168 | |
| 1169 | .visually-hidden { |
| 1170 | position: absolute; |
| 1171 | width: 1px; |
| 1172 | height: 1px; |
| 1173 | padding: 0; |
| 1174 | overflow: hidden; |
| 1175 | clip: rect(0,0,0,0); |
| 1176 | white-space: nowrap; |
| 1177 | border: 0; |
| 1178 | color: var(--body-fg); |
| 1179 | background-color: var(--body-bg); |
| 1180 | } |
Binary file
+1180
| --- a/assets/admin/css/base.css | ||
| +++ b/assets/admin/css/base.css | ||
| @@ -0,0 +1,1180 @@ | ||
| 1 | +/* | |
| 2 | + DJANGO Admin styles | |
| 3 | +*/ | |
| 4 | + | |
| 5 | +/* VARIABLE DEFINITIONS */ | |
| 6 | +html[data-theme="light"], | |
| 7 | +:root { | |
| 8 | + --primary: #79aec8; | |
| 9 | + --secondary: #417690; | |
| 10 | + --accent: #f5dd5d; | |
| 11 | + --primary-fg: #fff; | |
| 12 | + | |
| 13 | + --body-fg: #333; | |
| 14 | + --body-bg: #fff; | |
| 15 | + --body-quiet-color: #666; | |
| 16 | + --body-medium-color: #444; | |
| 17 | + --body-loud-color: #000; | |
| 18 | + | |
| 19 | + --header-color: #ffc; | |
| 20 | + --header-branding-color: var(--accent); | |
| 21 | + --header-bg: var(--secondary); | |
| 22 | + --header-link-color: var(--primary-fg); | |
| 23 | + | |
| 24 | + --breadcrumbs-fg: #c4dce8; | |
| 25 | + --breadcrumbs-link-fg: var(--body-bg); | |
| 26 | + --breadcrumbs-bg: #264b5d; | |
| 27 | + | |
| 28 | + --link-fg: #417893; | |
| 29 | + --link-hover-color: #036; | |
| 30 | + --link-selected-fg: var(--secondary); | |
| 31 | + | |
| 32 | + --hairline-color: #e8e8e8; | |
| 33 | + --border-color: #ccc; | |
| 34 | + | |
| 35 | + --error-fg: #ba2121; | |
| 36 | + | |
| 37 | + --message-success-bg: #dfd; | |
| 38 | + --message-warning-bg: #ffc; | |
| 39 | + --message-error-bg: #ffefef; | |
| 40 | + | |
| 41 | + --darkened-bg: #f8f8f8; /* A bit darker than --body-bg */ | |
| 42 | + --selected-bg: #e4e4e4; /* E.g. selected table cells */ | |
| 43 | + --selected-row: #ffc; | |
| 44 | + | |
| 45 | + --button-fg: #fff; | |
| 46 | + --button-bg: var(--secondary); | |
| 47 | + --button-hover-bg: #205067; | |
| 48 | + --default-button-bg: #205067; | |
| 49 | + --default-button-hover-bg: var(--secondary); | |
| 50 | + --close-button-bg: #747474; | |
| 51 | + --close-button-hover-bg: #333; | |
| 52 | + --delete-button-bg: #ba2121; | |
| 53 | + --delete-button-hover-bg: #a41515; | |
| 54 | + | |
| 55 | + --object-tools-fg: var(--button-fg); | |
| 56 | + --object-tools-bg: var(--close-button-bg); | |
| 57 | + --object-tools-hover-bg: var(--close-button-hover-bg); | |
| 58 | + | |
| 59 | + --font-family-primary: | |
| 60 | + "Segoe UI", | |
| 61 | + system-ui, | |
| 62 | + Roboto, | |
| 63 | + "Helvetica Neue", | |
| 64 | + Arial, | |
| 65 | + sans-serif, | |
| 66 | + "Apple Color Emoji", | |
| 67 | + "Segoe UI Emoji", | |
| 68 | + "Segoe UI Symbol", | |
| 69 | + "Noto Color Emoji"; | |
| 70 | + --font-family-monospace: | |
| 71 | + ui-monospace, | |
| 72 | + Menlo, | |
| 73 | + Monaco, | |
| 74 | + "Cascadia Mono", | |
| 75 | + "Segoe UI Mono", | |
| 76 | + "Roboto Mono", | |
| 77 | + "Oxygen Mono", | |
| 78 | + "Ubuntu Monospace", | |
| 79 | + "Source Code Pro", | |
| 80 | + "Fira Mono", | |
| 81 | + "Droid Sans Mono", | |
| 82 | + "Courier New", | |
| 83 | + monospace, | |
| 84 | + "Apple Color Emoji", | |
| 85 | + "Segoe UI Emoji", | |
| 86 | + "Segoe UI Symbol", | |
| 87 | + "Noto Color Emoji"; | |
| 88 | + | |
| 89 | + color-scheme: light; | |
| 90 | +} | |
| 91 | + | |
| 92 | +html, body { | |
| 93 | + height: 100%; | |
| 94 | +} | |
| 95 | + | |
| 96 | +body { | |
| 97 | + margin: 0; | |
| 98 | + padding: 0; | |
| 99 | + font-size: 0.875rem; | |
| 100 | + font-family: var(--font-family-primary); | |
| 101 | + color: var(--body-fg); | |
| 102 | + background: var(--body-bg); | |
| 103 | +} | |
| 104 | + | |
| 105 | +/* LINKS */ | |
| 106 | + | |
| 107 | +a:link, a:visited { | |
| 108 | + color: var(--link-fg); | |
| 109 | + text-decoration: none; | |
| 110 | + transition: color 0.15s, background 0.15s; | |
| 111 | +} | |
| 112 | + | |
| 113 | +a:focus, a:hover { | |
| 114 | + color: var(--link-hover-color); | |
| 115 | +} | |
| 116 | + | |
| 117 | +a:focus { | |
| 118 | + text-decoration: underline; | |
| 119 | +} | |
| 120 | + | |
| 121 | +a img { | |
| 122 | + border: none; | |
| 123 | +} | |
| 124 | + | |
| 125 | +a.section:link, a.section:visited { | |
| 126 | + color: var(--header-link-color); | |
| 127 | + text-decoration: none; | |
| 128 | +} | |
| 129 | + | |
| 130 | +a.section:focus, a.section:hover { | |
| 131 | + text-decoration: underline; | |
| 132 | +} | |
| 133 | + | |
| 134 | +/* GLOBAL DEFAULTS */ | |
| 135 | + | |
| 136 | +p, ol, ul, dl { | |
| 137 | + margin: .2em 0 .8em 0; | |
| 138 | +} | |
| 139 | + | |
| 140 | +p { | |
| 141 | + padding: 0; | |
| 142 | + line-height: 140%; | |
| 143 | +} | |
| 144 | + | |
| 145 | +h1,h2,h3,h4,h5 { | |
| 146 | + font-weight: bold; | |
| 147 | +} | |
| 148 | + | |
| 149 | +h1 { | |
| 150 | + margin: 0 0 20px; | |
| 151 | + font-weight: 300; | |
| 152 | + font-size: 1.25rem; | |
| 153 | +} | |
| 154 | + | |
| 155 | +h2 { | |
| 156 | + font-size: 1rem; | |
| 157 | + margin: 1em 0 .5em 0; | |
| 158 | +} | |
| 159 | + | |
| 160 | +h2.subhead { | |
| 161 | + font-weight: normal; | |
| 162 | + margin-top: 0; | |
| 163 | +} | |
| 164 | + | |
| 165 | +h3 { | |
| 166 | + font-size: 0.875rem; | |
| 167 | + margin: .8em 0 .3em 0; | |
| 168 | + color: var(--body-medium-color); | |
| 169 | + font-weight: bold; | |
| 170 | +} | |
| 171 | + | |
| 172 | +h4 { | |
| 173 | + font-size: 0.75rem; | |
| 174 | + margin: 1em 0 .8em 0; | |
| 175 | + padding-bottom: 3px; | |
| 176 | + color: var(--body-medium-color); | |
| 177 | +} | |
| 178 | + | |
| 179 | +h5 { | |
| 180 | + font-size: 0.625rem; | |
| 181 | + margin: 1.5em 0 .5em 0; | |
| 182 | + color: var(--body-quiet-color); | |
| 183 | + text-transform: uppercase; | |
| 184 | + letter-spacing: 1px; | |
| 185 | +} | |
| 186 | + | |
| 187 | +ul > li { | |
| 188 | + list-style-type: square; | |
| 189 | + padding: 1px 0; | |
| 190 | +} | |
| 191 | + | |
| 192 | +li ul { | |
| 193 | + margin-bottom: 0; | |
| 194 | +} | |
| 195 | + | |
| 196 | +li, dt, dd { | |
| 197 | + font-size: 0.8125rem; | |
| 198 | + line-height: 1.25rem; | |
| 199 | +} | |
| 200 | + | |
| 201 | +dt { | |
| 202 | + font-weight: bold; | |
| 203 | + margin-top: 4px; | |
| 204 | +} | |
| 205 | + | |
| 206 | +dd { | |
| 207 | + margin-left: 0; | |
| 208 | +} | |
| 209 | + | |
| 210 | +form { | |
| 211 | + margin: 0; | |
| 212 | + padding: 0; | |
| 213 | +} | |
| 214 | + | |
| 215 | +fieldset { | |
| 216 | + margin: 0; | |
| 217 | + min-width: 0; | |
| 218 | + padding: 0; | |
| 219 | + border: none; | |
| 220 | + border-top: 1px solid var(--hairline-color); | |
| 221 | +} | |
| 222 | + | |
| 223 | +details summary { | |
| 224 | + cursor: pointer; | |
| 225 | +} | |
| 226 | + | |
| 227 | +blockquote { | |
| 228 | + font-size: 0.6875rem; | |
| 229 | + color: #777; | |
| 230 | + margin-left: 2px; | |
| 231 | + padding-left: 10px; | |
| 232 | + border-left: 5px solid #ddd; | |
| 233 | +} | |
| 234 | + | |
| 235 | +code, pre { | |
| 236 | + font-family: var(--font-family-monospace); | |
| 237 | + color: var(--body-quiet-color); | |
| 238 | + font-size: 0.75rem; | |
| 239 | + overflow-x: auto; | |
| 240 | +} | |
| 241 | + | |
| 242 | +pre.literal-block { | |
| 243 | + margin: 10px; | |
| 244 | + background: var(--darkened-bg); | |
| 245 | + padding: 6px 8px; | |
| 246 | +} | |
| 247 | + | |
| 248 | +code strong { | |
| 249 | + color: #930; | |
| 250 | +} | |
| 251 | + | |
| 252 | +hr { | |
| 253 | + clear: both; | |
| 254 | + color: var(--hairline-color); | |
| 255 | + background-color: var(--hairline-color); | |
| 256 | + height: 1px; | |
| 257 | + border: none; | |
| 258 | + margin: 0; | |
| 259 | + padding: 0; | |
| 260 | + line-height: 1px; | |
| 261 | +} | |
| 262 | + | |
| 263 | +/* TEXT STYLES & MODIFIERS */ | |
| 264 | + | |
| 265 | +.small { | |
| 266 | + font-size: 0.6875rem; | |
| 267 | +} | |
| 268 | + | |
| 269 | +.mini { | |
| 270 | + font-size: 0.625rem; | |
| 271 | +} | |
| 272 | + | |
| 273 | +.help, p.help, form p.help, div.help, form div.help, div.help li { | |
| 274 | + font-size: 0.6875rem; | |
| 275 | + color: var(--body-quiet-color); | |
| 276 | +} | |
| 277 | + | |
| 278 | +div.help ul { | |
| 279 | + margin-bottom: 0; | |
| 280 | +} | |
| 281 | + | |
| 282 | +.help-tooltip { | |
| 283 | + cursor: help; | |
| 284 | +} | |
| 285 | + | |
| 286 | +p img, h1 img, h2 img, h3 img, h4 img, td img { | |
| 287 | + vertical-align: middle; | |
| 288 | +} | |
| 289 | + | |
| 290 | +.quiet, a.quiet:link, a.quiet:visited { | |
| 291 | + color: var(--body-quiet-color); | |
| 292 | + font-weight: normal; | |
| 293 | +} | |
| 294 | + | |
| 295 | +.clear { | |
| 296 | + clear: both; | |
| 297 | +} | |
| 298 | + | |
| 299 | +.nowrap { | |
| 300 | + white-space: nowrap; | |
| 301 | +} | |
| 302 | + | |
| 303 | +.hidden { | |
| 304 | + display: none !important; | |
| 305 | +} | |
| 306 | + | |
| 307 | +/* TABLES */ | |
| 308 | + | |
| 309 | +table { | |
| 310 | + border-collapse: collapse; | |
| 311 | + border-color: var(--border-color); | |
| 312 | +} | |
| 313 | + | |
| 314 | +td, th { | |
| 315 | + font-size: 0.8125rem; | |
| 316 | + line-height: 1rem; | |
| 317 | + border-bottom: 1px solid var(--hairline-color); | |
| 318 | + vertical-align: top; | |
| 319 | + padding: 8px; | |
| 320 | +} | |
| 321 | + | |
| 322 | +th { | |
| 323 | + font-weight: 500; | |
| 324 | + text-align: left; | |
| 325 | +} | |
| 326 | + | |
| 327 | +thead th, | |
| 328 | +tfoot td { | |
| 329 | + color: var(--body-quiet-color); | |
| 330 | + padding: 5px 10px; | |
| 331 | + font-size: 0.6875rem; | |
| 332 | + background: var(--body-bg); | |
| 333 | + border: none; | |
| 334 | + border-top: 1px solid var(--hairline-color); | |
| 335 | + border-bottom: 1px solid var(--hairline-color); | |
| 336 | +} | |
| 337 | + | |
| 338 | +tfoot td { | |
| 339 | + border-bottom: none; | |
| 340 | + border-top: 1px solid var(--hairline-color); | |
| 341 | +} | |
| 342 | + | |
| 343 | +thead th.required { | |
| 344 | + font-weight: bold; | |
| 345 | +} | |
| 346 | + | |
| 347 | +tr.alt { | |
| 348 | + background: var(--darkened-bg); | |
| 349 | +} | |
| 350 | + | |
| 351 | +tr:nth-child(odd), .row-form-errors { | |
| 352 | + background: var(--body-bg); | |
| 353 | +} | |
| 354 | + | |
| 355 | +tr:nth-child(even), | |
| 356 | +tr:nth-child(even) .errorlist, | |
| 357 | +tr:nth-child(odd) + .row-form-errors, | |
| 358 | +tr:nth-child(odd) + .row-form-errors .errorlist { | |
| 359 | + background: var(--darkened-bg); | |
| 360 | +} | |
| 361 | + | |
| 362 | +/* SORTABLE TABLES */ | |
| 363 | + | |
| 364 | +thead th { | |
| 365 | + padding: 5px 10px; | |
| 366 | + line-height: normal; | |
| 367 | + text-transform: uppercase; | |
| 368 | + background: var(--darkened-bg); | |
| 369 | +} | |
| 370 | + | |
| 371 | +thead th a:link, thead th a:visited { | |
| 372 | + color: var(--body-quiet-color); | |
| 373 | +} | |
| 374 | + | |
| 375 | +thead th.sorted { | |
| 376 | + background: var(--selected-bg); | |
| 377 | +} | |
| 378 | + | |
| 379 | +thead th.sorted .text { | |
| 380 | + padding-right: 42px; | |
| 381 | +} | |
| 382 | + | |
| 383 | +table thead th .text span { | |
| 384 | + padding: 8px 10px; | |
| 385 | + display: block; | |
| 386 | +} | |
| 387 | + | |
| 388 | +table thead th .text a { | |
| 389 | + display: block; | |
| 390 | + cursor: pointer; | |
| 391 | + padding: 8px 10px; | |
| 392 | +} | |
| 393 | + | |
| 394 | +table thead th .text a:focus, table thead th .text a:hover { | |
| 395 | + background: var(--selected-bg); | |
| 396 | +} | |
| 397 | + | |
| 398 | +thead th.sorted a.sortremove { | |
| 399 | + visibility: hidden; | |
| 400 | +} | |
| 401 | + | |
| 402 | +table thead th.sorted:hover a.sortremove { | |
| 403 | + visibility: visible; | |
| 404 | +} | |
| 405 | + | |
| 406 | +table thead th.sorted .sortoptions { | |
| 407 | + display: block; | |
| 408 | + padding: 9px 5px 0 5px; | |
| 409 | + float: right; | |
| 410 | + text-align: right; | |
| 411 | +} | |
| 412 | + | |
| 413 | +table thead th.sorted .sortpriority { | |
| 414 | + font-size: .8em; | |
| 415 | + min-width: 12px; | |
| 416 | + text-align: center; | |
| 417 | + vertical-align: 3px; | |
| 418 | + margin-left: 2px; | |
| 419 | + margin-right: 2px; | |
| 420 | +} | |
| 421 | + | |
| 422 | +table thead th.sorted .sortoptions a { | |
| 423 | + position: relative; | |
| 424 | + width: 14px; | |
| 425 | + height: 14px; | |
| 426 | + display: inline-block; | |
| 427 | + background: url(../img/sorting-icons.svg) 0 0 no-repeat; | |
| 428 | + background-size: 14px auto; | |
| 429 | +} | |
| 430 | + | |
| 431 | +table thead th.sorted .sortoptions a.sortremove { | |
| 432 | + background-position: 0 0; | |
| 433 | +} | |
| 434 | + | |
| 435 | +table thead th.sorted .sortoptions a.sortremove:after { | |
| 436 | + content: '\\'; | |
| 437 | + position: absolute; | |
| 438 | + top: -6px; | |
| 439 | + left: 3px; | |
| 440 | + font-weight: 200; | |
| 441 | + font-size: 1.125rem; | |
| 442 | + color: var(--body-quiet-color); | |
| 443 | +} | |
| 444 | + | |
| 445 | +table thead th.sorted .sortoptions a.sortremove:focus:after, | |
| 446 | +table thead th.sorted .sortoptions a.sortremove:hover:after { | |
| 447 | + color: var(--link-fg); | |
| 448 | +} | |
| 449 | + | |
| 450 | +table thead th.sorted .sortoptions a.sortremove:focus, | |
| 451 | +table thead th.sorted .sortoptions a.sortremove:hover { | |
| 452 | + background-position: 0 -14px; | |
| 453 | +} | |
| 454 | + | |
| 455 | +table thead th.sorted .sortoptions a.ascending { | |
| 456 | + background-position: 0 -28px; | |
| 457 | +} | |
| 458 | + | |
| 459 | +table thead th.sorted .sortoptions a.ascending:focus, | |
| 460 | +table thead th.sorted .sortoptions a.ascending:hover { | |
| 461 | + background-position: 0 -42px; | |
| 462 | +} | |
| 463 | + | |
| 464 | +table thead th.sorted .sortoptions a.descending { | |
| 465 | + top: 1px; | |
| 466 | + background-position: 0 -56px; | |
| 467 | +} | |
| 468 | + | |
| 469 | +table thead th.sorted .sortoptions a.descending:focus, | |
| 470 | +table thead th.sorted .sortoptions a.descending:hover { | |
| 471 | + background-position: 0 -70px; | |
| 472 | +} | |
| 473 | + | |
| 474 | +/* FORM DEFAULTS */ | |
| 475 | + | |
| 476 | +input, textarea, select, .form-row p, form .button { | |
| 477 | + margin: 2px 0; | |
| 478 | + padding: 2px 3px; | |
| 479 | + vertical-align: middle; | |
| 480 | + font-family: var(--font-family-primary); | |
| 481 | + font-weight: normal; | |
| 482 | + font-size: 0.8125rem; | |
| 483 | +} | |
| 484 | +.form-row div.help { | |
| 485 | + padding: 2px 3px; | |
| 486 | +} | |
| 487 | + | |
| 488 | +textarea { | |
| 489 | + vertical-align: top; | |
| 490 | +} | |
| 491 | + | |
| 492 | +/* | |
| 493 | +Minifiers remove the default (text) "type" attribute from "input" HTML tags. | |
| 494 | +Add input:not([type]) to make the CSS stylesheet work the same. | |
| 495 | +*/ | |
| 496 | +input:not([type]), input[type=text], input[type=password], input[type=email], | |
| 497 | +input[type=url], input[type=number], input[type=tel], textarea, select, | |
| 498 | +.vTextField { | |
| 499 | + border: 1px solid var(--border-color); | |
| 500 | + border-radius: 4px; | |
| 501 | + padding: 5px 6px; | |
| 502 | + margin-top: 0; | |
| 503 | + color: var(--body-fg); | |
| 504 | + background-color: var(--body-bg); | |
| 505 | +} | |
| 506 | + | |
| 507 | +/* | |
| 508 | +Minifiers remove the default (text) "type" attribute from "input" HTML tags. | |
| 509 | +Add input:not([type]) to make the CSS stylesheet work the same. | |
| 510 | +*/ | |
| 511 | +input:not([type]):focus, input[type=text]:focus, input[type=password]:focus, | |
| 512 | +input[type=email]:focus, input[type=url]:focus, input[type=number]:focus, | |
| 513 | +input[type=tel]:focus, textarea:focus, select:focus, .vTextField:focus { | |
| 514 | + border-color: var(--body-quiet-color); | |
| 515 | +} | |
| 516 | + | |
| 517 | +select { | |
| 518 | + height: 1.875rem; | |
| 519 | +} | |
| 520 | + | |
| 521 | +select[multiple] { | |
| 522 | + /* Allow HTML size attribute to override the height in the rule above. */ | |
| 523 | + height: auto; | |
| 524 | + min-height: 150px; | |
| 525 | +} | |
| 526 | + | |
| 527 | +/* FORM BUTTONS */ | |
| 528 | + | |
| 529 | +.button, input[type=submit], input[type=button], .submit-row input, a.button { | |
| 530 | + background: var(--button-bg); | |
| 531 | + padding: 10px 15px; | |
| 532 | + border: none; | |
| 533 | + border-radius: 4px; | |
| 534 | + color: var(--button-fg); | |
| 535 | + cursor: pointer; | |
| 536 | + transition: background 0.15s; | |
| 537 | +} | |
| 538 | + | |
| 539 | +a.button { | |
| 540 | + padding: 4px 5px; | |
| 541 | +} | |
| 542 | + | |
| 543 | +.button:active, input[type=submit]:active, input[type=button]:active, | |
| 544 | +.button:focus, input[type=submit]:focus, input[type=button]:focus, | |
| 545 | +.button:hover, input[type=submit]:hover, input[type=button]:hover { | |
| 546 | + background: var(--button-hover-bg); | |
| 547 | +} | |
| 548 | + | |
| 549 | +.button[disabled], input[type=submit][disabled], input[type=button][disabled] { | |
| 550 | + opacity: 0.4; | |
| 551 | +} | |
| 552 | + | |
| 553 | +.button.default, input[type=submit].default, .submit-row input.default { | |
| 554 | + border: none; | |
| 555 | + font-weight: 400; | |
| 556 | + background: var(--default-button-bg); | |
| 557 | +} | |
| 558 | + | |
| 559 | +.button.default:active, input[type=submit].default:active, | |
| 560 | +.button.default:focus, input[type=submit].default:focus, | |
| 561 | +.button.default:hover, input[type=submit].default:hover { | |
| 562 | + background: var(--default-button-hover-bg); | |
| 563 | +} | |
| 564 | + | |
| 565 | +.button[disabled].default, | |
| 566 | +input[type=submit][disabled].default, | |
| 567 | +input[type=button][disabled].default { | |
| 568 | + opacity: 0.4; | |
| 569 | +} | |
| 570 | + | |
| 571 | + | |
| 572 | +/* MODULES */ | |
| 573 | + | |
| 574 | +.module { | |
| 575 | + border: none; | |
| 576 | + margin-bottom: 30px; | |
| 577 | + background: var(--body-bg); | |
| 578 | +} | |
| 579 | + | |
| 580 | +.module p, .module ul, .module h3, .module h4, .module dl, .module pre { | |
| 581 | + padding-left: 10px; | |
| 582 | + padding-right: 10px; | |
| 583 | +} | |
| 584 | + | |
| 585 | +.module blockquote { | |
| 586 | + margin-left: 12px; | |
| 587 | +} | |
| 588 | + | |
| 589 | +.module ul, .module ol { | |
| 590 | + margin-left: 1.5em; | |
| 591 | +} | |
| 592 | + | |
| 593 | +.module h3 { | |
| 594 | + margin-top: .6em; | |
| 595 | +} | |
| 596 | + | |
| 597 | +.module h2, .module caption, .inline-group h2 { | |
| 598 | + margin: 0; | |
| 599 | + padding: 8px; | |
| 600 | + font-weight: 400; | |
| 601 | + font-size: 0.8125rem; | |
| 602 | + text-align: left; | |
| 603 | + background: var(--header-bg); | |
| 604 | + color: var(--header-link-color); | |
| 605 | +} | |
| 606 | + | |
| 607 | +.module caption, | |
| 608 | +.inline-group h2 { | |
| 609 | + font-size: 0.75rem; | |
| 610 | + letter-spacing: 0.5px; | |
| 611 | + text-transform: uppercase; | |
| 612 | +} | |
| 613 | + | |
| 614 | +.module table { | |
| 615 | + border-collapse: collapse; | |
| 616 | +} | |
| 617 | + | |
| 618 | +/* MESSAGES & ERRORS */ | |
| 619 | + | |
| 620 | +ul.messagelist { | |
| 621 | + padding: 0; | |
| 622 | + margin: 0; | |
| 623 | +} | |
| 624 | + | |
| 625 | +ul.messagelist li { | |
| 626 | + display: block; | |
| 627 | + font-weight: 400; | |
| 628 | + font-size: 0.8125rem; | |
| 629 | + padding: 10px 10px 10px 65px; | |
| 630 | + margin: 0 0 10px 0; | |
| 631 | + background: var(--message-success-bg) url(../img/icon-yes.svg) 40px 12px no-repeat; | |
| 632 | + background-size: 16px auto; | |
| 633 | + color: var(--body-fg); | |
| 634 | + word-break: break-word; | |
| 635 | +} | |
| 636 | + | |
| 637 | +ul.messagelist li.warning { | |
| 638 | + background: var(--message-warning-bg) url(../img/icon-alert.svg) 40px 14px no-repeat; | |
| 639 | + background-size: 14px auto; | |
| 640 | +} | |
| 641 | + | |
| 642 | +ul.messagelist li.error { | |
| 643 | + background: var(--message-error-bg) url(../img/icon-no.svg) 40px 12px no-repeat; | |
| 644 | + background-size: 16px auto; | |
| 645 | +} | |
| 646 | + | |
| 647 | +.errornote { | |
| 648 | + font-size: 0.875rem; | |
| 649 | + font-weight: 700; | |
| 650 | + display: block; | |
| 651 | + padding: 10px 12px; | |
| 652 | + margin: 0 0 10px 0; | |
| 653 | + color: var(--error-fg); | |
| 654 | + border: 1px solid var(--error-fg); | |
| 655 | + border-radius: 4px; | |
| 656 | + background-color: var(--body-bg); | |
| 657 | + background-position: 5px 12px; | |
| 658 | + overflow-wrap: break-word; | |
| 659 | +} | |
| 660 | + | |
| 661 | +ul.errorlist { | |
| 662 | + margin: 0 0 4px; | |
| 663 | + padding: 0; | |
| 664 | + color: var(--error-fg); | |
| 665 | + background: var(--body-bg); | |
| 666 | +} | |
| 667 | + | |
| 668 | +ul.errorlist li { | |
| 669 | + font-size: 0.8125rem; | |
| 670 | + display: block; | |
| 671 | + margin-bottom: 4px; | |
| 672 | + overflow-wrap: break-word; | |
| 673 | +} | |
| 674 | + | |
| 675 | +ul.errorlist li:first-child { | |
| 676 | + margin-top: 0; | |
| 677 | +} | |
| 678 | + | |
| 679 | +ul.errorlist li a { | |
| 680 | + color: inherit; | |
| 681 | + text-decoration: underline; | |
| 682 | +} | |
| 683 | + | |
| 684 | +td ul.errorlist { | |
| 685 | + margin: 0; | |
| 686 | + padding: 0; | |
| 687 | +} | |
| 688 | + | |
| 689 | +td ul.errorlist li { | |
| 690 | + margin: 0; | |
| 691 | +} | |
| 692 | + | |
| 693 | +.form-row.errors { | |
| 694 | + margin: 0; | |
| 695 | + border: none; | |
| 696 | + border-bottom: 1px solid var(--hairline-color); | |
| 697 | + background: none; | |
| 698 | +} | |
| 699 | + | |
| 700 | +.form-row.errors ul.errorlist li { | |
| 701 | + padding-left: 0; | |
| 702 | +} | |
| 703 | + | |
| 704 | +.errors input, .errors select, .errors textarea, | |
| 705 | +td ul.errorlist + input, td ul.errorlist + select, td ul.errorlist + textarea { | |
| 706 | + border: 1px solid var(--error-fg); | |
| 707 | +} | |
| 708 | + | |
| 709 | +.description { | |
| 710 | + font-size: 0.75rem; | |
| 711 | + padding: 5px 0 0 12px; | |
| 712 | +} | |
| 713 | + | |
| 714 | +/* BREADCRUMBS */ | |
| 715 | + | |
| 716 | +div.breadcrumbs { | |
| 717 | + background: var(--breadcrumbs-bg); | |
| 718 | + padding: 10px 40px; | |
| 719 | + border: none; | |
| 720 | + color: var(--breadcrumbs-fg); | |
| 721 | + text-align: left; | |
| 722 | +} | |
| 723 | + | |
| 724 | +div.breadcrumbs a { | |
| 725 | + color: var(--breadcrumbs-link-fg); | |
| 726 | +} | |
| 727 | + | |
| 728 | +div.breadcrumbs a:focus, div.breadcrumbs a:hover { | |
| 729 | + color: var(--breadcrumbs-fg); | |
| 730 | +} | |
| 731 | + | |
| 732 | +/* ACTION ICONS */ | |
| 733 | + | |
| 734 | +.viewlink, .inlineviewlink { | |
| 735 | + padding-left: 16px; | |
| 736 | + background: url(../img/icon-viewlink.svg) 0 1px no-repeat; | |
| 737 | +} | |
| 738 | + | |
| 739 | +.hidelink { | |
| 740 | + padding-left: 16px; | |
| 741 | + background: url(../img/icon-hidelink.svg) 0 1px no-repeat; | |
| 742 | +} | |
| 743 | + | |
| 744 | +.addlink { | |
| 745 | + padding-left: 16px; | |
| 746 | + background: url(../img/icon-addlink.svg) 0 1px no-repeat; | |
| 747 | +} | |
| 748 | + | |
| 749 | +.changelink, .inlinechangelink { | |
| 750 | + padding-left: 16px; | |
| 751 | + background: url(../img/icon-changelink.svg) 0 1px no-repeat; | |
| 752 | +} | |
| 753 | + | |
| 754 | +.deletelink { | |
| 755 | + padding-left: 16px; | |
| 756 | + background: url(../img/icon-deletelink.svg) 0 1px no-repeat; | |
| 757 | +} | |
| 758 | + | |
| 759 | +a.deletelink:link, a.deletelink:visited { | |
| 760 | + color: #CC3434; /* XXX Probably unused? */ | |
| 761 | +} | |
| 762 | + | |
| 763 | +a.deletelink:focus, a.deletelink:hover { | |
| 764 | + color: #993333; /* XXX Probably unused? */ | |
| 765 | + text-decoration: none; | |
| 766 | +} | |
| 767 | + | |
| 768 | +/* OBJECT TOOLS */ | |
| 769 | + | |
| 770 | +.object-tools { | |
| 771 | + font-size: 0.625rem; | |
| 772 | + font-weight: bold; | |
| 773 | + padding-left: 0; | |
| 774 | + float: right; | |
| 775 | + position: relative; | |
| 776 | + margin-top: -48px; | |
| 777 | +} | |
| 778 | + | |
| 779 | +.object-tools li { | |
| 780 | + display: block; | |
| 781 | + float: left; | |
| 782 | + margin-left: 5px; | |
| 783 | + height: 1rem; | |
| 784 | +} | |
| 785 | + | |
| 786 | +.object-tools a { | |
| 787 | + border-radius: 15px; | |
| 788 | +} | |
| 789 | + | |
| 790 | +.object-tools a:link, .object-tools a:visited { | |
| 791 | + display: block; | |
| 792 | + float: left; | |
| 793 | + padding: 3px 12px; | |
| 794 | + background: var(--object-tools-bg); | |
| 795 | + color: var(--object-tools-fg); | |
| 796 | + font-weight: 400; | |
| 797 | + font-size: 0.6875rem; | |
| 798 | + text-transform: uppercase; | |
| 799 | + letter-spacing: 0.5px; | |
| 800 | +} | |
| 801 | + | |
| 802 | +.object-tools a:focus, .object-tools a:hover { | |
| 803 | + background-color: var(--object-tools-hover-bg); | |
| 804 | +} | |
| 805 | + | |
| 806 | +.object-tools a:focus{ | |
| 807 | + text-decoration: none; | |
| 808 | +} | |
| 809 | + | |
| 810 | +.object-tools a.viewsitelink, .object-tools a.addlink { | |
| 811 | + background-repeat: no-repeat; | |
| 812 | + background-position: right 7px center; | |
| 813 | + padding-right: 26px; | |
| 814 | +} | |
| 815 | + | |
| 816 | +.object-tools a.viewsitelink { | |
| 817 | + background-image: url(../img/tooltag-arrowright.svg); | |
| 818 | +} | |
| 819 | + | |
| 820 | +.object-tools a.addlink { | |
| 821 | + background-image: url(../img/tooltag-add.svg); | |
| 822 | +} | |
| 823 | + | |
| 824 | +/* OBJECT HISTORY */ | |
| 825 | + | |
| 826 | +#change-history table { | |
| 827 | + width: 100%; | |
| 828 | +} | |
| 829 | + | |
| 830 | +#change-history table tbody th { | |
| 831 | + width: 16em; | |
| 832 | +} | |
| 833 | + | |
| 834 | +#change-history .paginator { | |
| 835 | + color: var(--body-quiet-color); | |
| 836 | + border-bottom: 1px solid var(--hairline-color); | |
| 837 | + background: var(--body-bg); | |
| 838 | + overflow: hidden; | |
| 839 | +} | |
| 840 | + | |
| 841 | +/* PAGE STRUCTURE */ | |
| 842 | + | |
| 843 | +#container { | |
| 844 | + position: relative; | |
| 845 | + width: 100%; | |
| 846 | + min-width: 980px; | |
| 847 | + padding: 0; | |
| 848 | + display: flex; | |
| 849 | + flex-direction: column; | |
| 850 | + height: 100%; | |
| 851 | +} | |
| 852 | + | |
| 853 | +#container > .main { | |
| 854 | + display: flex; | |
| 855 | + flex: 1 0 auto; | |
| 856 | +} | |
| 857 | + | |
| 858 | +.main > .content { | |
| 859 | + flex: 1 0; | |
| 860 | + max-width: 100%; | |
| 861 | +} | |
| 862 | + | |
| 863 | +.skip-to-content-link { | |
| 864 | + position: absolute; | |
| 865 | + top: -999px; | |
| 866 | + margin: 5px; | |
| 867 | + padding: 5px; | |
| 868 | + background: var(--body-bg); | |
| 869 | + z-index: 1; | |
| 870 | +} | |
| 871 | + | |
| 872 | +.skip-to-content-link:focus { | |
| 873 | + left: 0px; | |
| 874 | + top: 0px; | |
| 875 | +} | |
| 876 | + | |
| 877 | +#content { | |
| 878 | + padding: 20px 40px; | |
| 879 | +} | |
| 880 | + | |
| 881 | +.dashboard #content { | |
| 882 | + width: 600px; | |
| 883 | +} | |
| 884 | + | |
| 885 | +#content-main { | |
| 886 | + float: left; | |
| 887 | + width: 100%; | |
| 888 | +} | |
| 889 | + | |
| 890 | +#content-related { | |
| 891 | + float: right; | |
| 892 | + width: 260px; | |
| 893 | + position: relative; | |
| 894 | + margin-right: -300px; | |
| 895 | +} | |
| 896 | + | |
| 897 | +@media (forced-colors: active) { | |
| 898 | + #content-related { | |
| 899 | + border: 1px solid; | |
| 900 | + } | |
| 901 | +} | |
| 902 | + | |
| 903 | +/* COLUMN TYPES */ | |
| 904 | + | |
| 905 | +.colMS { | |
| 906 | + margin-right: 300px; | |
| 907 | +} | |
| 908 | + | |
| 909 | +.colSM { | |
| 910 | + margin-left: 300px; | |
| 911 | +} | |
| 912 | + | |
| 913 | +.colSM #content-related { | |
| 914 | + float: left; | |
| 915 | + margin-right: 0; | |
| 916 | + margin-left: -300px; | |
| 917 | +} | |
| 918 | + | |
| 919 | +.colSM #content-main { | |
| 920 | + float: right; | |
| 921 | +} | |
| 922 | + | |
| 923 | +.popup .colM { | |
| 924 | + width: auto; | |
| 925 | +} | |
| 926 | + | |
| 927 | +/* HEADER */ | |
| 928 | + | |
| 929 | +#header { | |
| 930 | + width: auto; | |
| 931 | + height: auto; | |
| 932 | + display: flex; | |
| 933 | + justify-content: space-between; | |
| 934 | + align-items: center; | |
| 935 | + padding: 10px 40px; | |
| 936 | + background: var(--header-bg); | |
| 937 | + color: var(--header-color); | |
| 938 | +} | |
| 939 | + | |
| 940 | +#header a:link, #header a:visited, #logout-form button { | |
| 941 | + color: var(--header-link-color); | |
| 942 | +} | |
| 943 | + | |
| 944 | +#header a:focus , #header a:hover { | |
| 945 | + text-decoration: underline; | |
| 946 | +} | |
| 947 | + | |
| 948 | +@media (forced-colors: active) { | |
| 949 | + #header { | |
| 950 | + border-bottom: 1px solid; | |
| 951 | + } | |
| 952 | +} | |
| 953 | + | |
| 954 | +#branding { | |
| 955 | + display: flex; | |
| 956 | +} | |
| 957 | + | |
| 958 | +#site-name { | |
| 959 | + padding: 0; | |
| 960 | + margin: 0; | |
| 961 | + margin-inline-end: 20px; | |
| 962 | + font-weight: 300; | |
| 963 | + font-size: 1.5rem; | |
| 964 | + color: var(--header-branding-color); | |
| 965 | +} | |
| 966 | + | |
| 967 | +#site-name a:link, #site-name a:visited { | |
| 968 | + color: var(--accent); | |
| 969 | +} | |
| 970 | + | |
| 971 | +#branding h2 { | |
| 972 | + padding: 0 10px; | |
| 973 | + font-size: 0.875rem; | |
| 974 | + margin: -8px 0 8px 0; | |
| 975 | + font-weight: normal; | |
| 976 | + color: var(--header-color); | |
| 977 | +} | |
| 978 | + | |
| 979 | +#branding a:hover { | |
| 980 | + text-decoration: none; | |
| 981 | +} | |
| 982 | + | |
| 983 | +#logout-form { | |
| 984 | + display: inline; | |
| 985 | +} | |
| 986 | + | |
| 987 | +#logout-form button { | |
| 988 | + background: none; | |
| 989 | + border: 0; | |
| 990 | + cursor: pointer; | |
| 991 | + font-family: var(--font-family-primary); | |
| 992 | +} | |
| 993 | + | |
| 994 | +#user-tools { | |
| 995 | + float: right; | |
| 996 | + margin: 0 0 0 20px; | |
| 997 | + text-align: right; | |
| 998 | +} | |
| 999 | + | |
| 1000 | +#user-tools, #logout-form button{ | |
| 1001 | + padding: 0; | |
| 1002 | + font-weight: 300; | |
| 1003 | + font-size: 0.6875rem; | |
| 1004 | + letter-spacing: 0.5px; | |
| 1005 | + text-transform: uppercase; | |
| 1006 | +} | |
| 1007 | + | |
| 1008 | +#user-tools a, #logout-form button { | |
| 1009 | + border-bottom: 1px solid rgba(255, 255, 255, 0.25); | |
| 1010 | +} | |
| 1011 | + | |
| 1012 | +#user-tools a:focus, #user-tools a:hover, | |
| 1013 | +#logout-form button:active, #logout-form button:hover { | |
| 1014 | + text-decoration: none; | |
| 1015 | + border-bottom: 0; | |
| 1016 | +} | |
| 1017 | + | |
| 1018 | +#logout-form button:active, #logout-form button:hover { | |
| 1019 | + margin-bottom: 1px; | |
| 1020 | +} | |
| 1021 | + | |
| 1022 | +/* SIDEBAR */ | |
| 1023 | + | |
| 1024 | +#content-related { | |
| 1025 | + background: var(--darkened-bg); | |
| 1026 | +} | |
| 1027 | + | |
| 1028 | +#content-related .module { | |
| 1029 | + background: none; | |
| 1030 | +} | |
| 1031 | + | |
| 1032 | +#content-related h3 { | |
| 1033 | + color: var(--body-quiet-color); | |
| 1034 | + padding: 0 16px; | |
| 1035 | + margin: 0 0 16px; | |
| 1036 | +} | |
| 1037 | + | |
| 1038 | +#content-related h4 { | |
| 1039 | + font-size: 0.8125rem; | |
| 1040 | +} | |
| 1041 | + | |
| 1042 | +#content-related p { | |
| 1043 | + padding-left: 16px; | |
| 1044 | + padding-right: 16px; | |
| 1045 | +} | |
| 1046 | + | |
| 1047 | +#content-related .actionlist { | |
| 1048 | + padding: 0; | |
| 1049 | + margin: 16px; | |
| 1050 | +} | |
| 1051 | + | |
| 1052 | +#content-related .actionlist li { | |
| 1053 | + line-height: 1.2; | |
| 1054 | + margin-bottom: 10px; | |
| 1055 | + padding-left: 18px; | |
| 1056 | +} | |
| 1057 | + | |
| 1058 | +#content-related .module h2 { | |
| 1059 | + background: none; | |
| 1060 | + padding: 16px; | |
| 1061 | + margin-bottom: 16px; | |
| 1062 | + border-bottom: 1px solid var(--hairline-color); | |
| 1063 | + font-size: 1.125rem; | |
| 1064 | + color: var(--body-fg); | |
| 1065 | +} | |
| 1066 | + | |
| 1067 | +.delete-confirmation form input[type="submit"] { | |
| 1068 | + background: var(--delete-button-bg); | |
| 1069 | + border-radius: 4px; | |
| 1070 | + padding: 10px 15px; | |
| 1071 | + color: var(--button-fg); | |
| 1072 | +} | |
| 1073 | + | |
| 1074 | +.delete-confirmation form input[type="submit"]:active, | |
| 1075 | +.delete-confirmation form input[type="submit"]:focus, | |
| 1076 | +.delete-confirmation form input[type="submit"]:hover { | |
| 1077 | + background: var(--delete-button-hover-bg); | |
| 1078 | +} | |
| 1079 | + | |
| 1080 | +.delete-confirmation form .cancel-link { | |
| 1081 | + display: inline-block; | |
| 1082 | + vertical-align: middle; | |
| 1083 | + height: 0.9375rem; | |
| 1084 | + line-height: 0.9375rem; | |
| 1085 | + border-radius: 4px; | |
| 1086 | + padding: 10px 15px; | |
| 1087 | + color: var(--button-fg); | |
| 1088 | + background: var(--close-button-bg); | |
| 1089 | + margin: 0 0 0 10px; | |
| 1090 | +} | |
| 1091 | + | |
| 1092 | +.delete-confirmation form .cancel-link:active, | |
| 1093 | +.delete-confirmation form .cancel-link:focus, | |
| 1094 | +.delete-confirmation form .cancel-link:hover { | |
| 1095 | + background: var(--close-button-hover-bg); | |
| 1096 | +} | |
| 1097 | + | |
| 1098 | +/* POPUP */ | |
| 1099 | +.popup #content { | |
| 1100 | + padding: 20px; | |
| 1101 | +} | |
| 1102 | + | |
| 1103 | +.popup #container { | |
| 1104 | + min-width: 0; | |
| 1105 | +} | |
| 1106 | + | |
| 1107 | +.popup #header { | |
| 1108 | + padding: 10px 20px; | |
| 1109 | +} | |
| 1110 | + | |
| 1111 | +/* PAGINATOR */ | |
| 1112 | + | |
| 1113 | +.paginator { | |
| 1114 | + display: flex; | |
| 1115 | + align-items: center; | |
| 1116 | + gap: 4px; | |
| 1117 | + font-size: 0.8125rem; | |
| 1118 | + padding-top: 10px; | |
| 1119 | + padding-bottom: 10px; | |
| 1120 | + line-height: 22px; | |
| 1121 | + margin: 0; | |
| 1122 | + border-top: 1px solid var(--hairline-color); | |
| 1123 | + width: 100%; | |
| 1124 | + box-sizing: border-box; | |
| 1125 | +} | |
| 1126 | + | |
| 1127 | +.paginator a:link, .paginator a:visited { | |
| 1128 | + padding: 2px 6px; | |
| 1129 | + background: var(--button-bg); | |
| 1130 | + text-decoration: none; | |
| 1131 | + color: var(--button-fg); | |
| 1132 | +} | |
| 1133 | + | |
| 1134 | +.paginator a.showall { | |
| 1135 | + border: none; | |
| 1136 | + background: none; | |
| 1137 | + color: var(--link-fg); | |
| 1138 | +} | |
| 1139 | + | |
| 1140 | +.paginator a.showall:focus, .paginator a.showall:hover { | |
| 1141 | + background: none; | |
| 1142 | + color: var(--link-hover-color); | |
| 1143 | +} | |
| 1144 | + | |
| 1145 | +.paginator .end { | |
| 1146 | + margin-right: 6px; | |
| 1147 | +} | |
| 1148 | + | |
| 1149 | +.paginator .this-page { | |
| 1150 | + padding: 2px 6px; | |
| 1151 | + font-weight: bold; | |
| 1152 | + font-size: 0.8125rem; | |
| 1153 | + vertical-align: top; | |
| 1154 | +} | |
| 1155 | + | |
| 1156 | +.paginator a:focus, .paginator a:hover { | |
| 1157 | + color: white; | |
| 1158 | + background: var(--link-hover-color); | |
| 1159 | +} | |
| 1160 | + | |
| 1161 | +.paginator input { | |
| 1162 | + margin-left: auto; | |
| 1163 | +} | |
| 1164 | + | |
| 1165 | +.base-svgs { | |
| 1166 | + display: none; | |
| 1167 | +} | |
| 1168 | + | |
| 1169 | +.visually-hidden { | |
| 1170 | + position: absolute; | |
| 1171 | + width: 1px; | |
| 1172 | + height: 1px; | |
| 1173 | + padding: 0; | |
| 1174 | + overflow: hidden; | |
| 1175 | + clip: rect(0,0,0,0); | |
| 1176 | + white-space: nowrap; | |
| 1177 | + border: 0; | |
| 1178 | + color: var(--body-fg); | |
| 1179 | + background-color: var(--body-bg); | |
| 1180 | +} |
| --- a/assets/admin/css/base.css | |
| +++ b/assets/admin/css/base.css | |
| @@ -0,0 +1,1180 @@ | |
| --- a/assets/admin/css/base.css | |
| +++ b/assets/admin/css/base.css | |
| @@ -0,0 +1,1180 @@ | |
| 1 | /* |
| 2 | DJANGO Admin styles |
| 3 | */ |
| 4 | |
| 5 | /* VARIABLE DEFINITIONS */ |
| 6 | html[data-theme="light"], |
| 7 | :root { |
| 8 | --primary: #79aec8; |
| 9 | --secondary: #417690; |
| 10 | --accent: #f5dd5d; |
| 11 | --primary-fg: #fff; |
| 12 | |
| 13 | --body-fg: #333; |
| 14 | --body-bg: #fff; |
| 15 | --body-quiet-color: #666; |
| 16 | --body-medium-color: #444; |
| 17 | --body-loud-color: #000; |
| 18 | |
| 19 | --header-color: #ffc; |
| 20 | --header-branding-color: var(--accent); |
| 21 | --header-bg: var(--secondary); |
| 22 | --header-link-color: var(--primary-fg); |
| 23 | |
| 24 | --breadcrumbs-fg: #c4dce8; |
| 25 | --breadcrumbs-link-fg: var(--body-bg); |
| 26 | --breadcrumbs-bg: #264b5d; |
| 27 | |
| 28 | --link-fg: #417893; |
| 29 | --link-hover-color: #036; |
| 30 | --link-selected-fg: var(--secondary); |
| 31 | |
| 32 | --hairline-color: #e8e8e8; |
| 33 | --border-color: #ccc; |
| 34 | |
| 35 | --error-fg: #ba2121; |
| 36 | |
| 37 | --message-success-bg: #dfd; |
| 38 | --message-warning-bg: #ffc; |
| 39 | --message-error-bg: #ffefef; |
| 40 | |
| 41 | --darkened-bg: #f8f8f8; /* A bit darker than --body-bg */ |
| 42 | --selected-bg: #e4e4e4; /* E.g. selected table cells */ |
| 43 | --selected-row: #ffc; |
| 44 | |
| 45 | --button-fg: #fff; |
| 46 | --button-bg: var(--secondary); |
| 47 | --button-hover-bg: #205067; |
| 48 | --default-button-bg: #205067; |
| 49 | --default-button-hover-bg: var(--secondary); |
| 50 | --close-button-bg: #747474; |
| 51 | --close-button-hover-bg: #333; |
| 52 | --delete-button-bg: #ba2121; |
| 53 | --delete-button-hover-bg: #a41515; |
| 54 | |
| 55 | --object-tools-fg: var(--button-fg); |
| 56 | --object-tools-bg: var(--close-button-bg); |
| 57 | --object-tools-hover-bg: var(--close-button-hover-bg); |
| 58 | |
| 59 | --font-family-primary: |
| 60 | "Segoe UI", |
| 61 | system-ui, |
| 62 | Roboto, |
| 63 | "Helvetica Neue", |
| 64 | Arial, |
| 65 | sans-serif, |
| 66 | "Apple Color Emoji", |
| 67 | "Segoe UI Emoji", |
| 68 | "Segoe UI Symbol", |
| 69 | "Noto Color Emoji"; |
| 70 | --font-family-monospace: |
| 71 | ui-monospace, |
| 72 | Menlo, |
| 73 | Monaco, |
| 74 | "Cascadia Mono", |
| 75 | "Segoe UI Mono", |
| 76 | "Roboto Mono", |
| 77 | "Oxygen Mono", |
| 78 | "Ubuntu Monospace", |
| 79 | "Source Code Pro", |
| 80 | "Fira Mono", |
| 81 | "Droid Sans Mono", |
| 82 | "Courier New", |
| 83 | monospace, |
| 84 | "Apple Color Emoji", |
| 85 | "Segoe UI Emoji", |
| 86 | "Segoe UI Symbol", |
| 87 | "Noto Color Emoji"; |
| 88 | |
| 89 | color-scheme: light; |
| 90 | } |
| 91 | |
| 92 | html, body { |
| 93 | height: 100%; |
| 94 | } |
| 95 | |
| 96 | body { |
| 97 | margin: 0; |
| 98 | padding: 0; |
| 99 | font-size: 0.875rem; |
| 100 | font-family: var(--font-family-primary); |
| 101 | color: var(--body-fg); |
| 102 | background: var(--body-bg); |
| 103 | } |
| 104 | |
| 105 | /* LINKS */ |
| 106 | |
| 107 | a:link, a:visited { |
| 108 | color: var(--link-fg); |
| 109 | text-decoration: none; |
| 110 | transition: color 0.15s, background 0.15s; |
| 111 | } |
| 112 | |
| 113 | a:focus, a:hover { |
| 114 | color: var(--link-hover-color); |
| 115 | } |
| 116 | |
| 117 | a:focus { |
| 118 | text-decoration: underline; |
| 119 | } |
| 120 | |
| 121 | a img { |
| 122 | border: none; |
| 123 | } |
| 124 | |
| 125 | a.section:link, a.section:visited { |
| 126 | color: var(--header-link-color); |
| 127 | text-decoration: none; |
| 128 | } |
| 129 | |
| 130 | a.section:focus, a.section:hover { |
| 131 | text-decoration: underline; |
| 132 | } |
| 133 | |
| 134 | /* GLOBAL DEFAULTS */ |
| 135 | |
| 136 | p, ol, ul, dl { |
| 137 | margin: .2em 0 .8em 0; |
| 138 | } |
| 139 | |
| 140 | p { |
| 141 | padding: 0; |
| 142 | line-height: 140%; |
| 143 | } |
| 144 | |
| 145 | h1,h2,h3,h4,h5 { |
| 146 | font-weight: bold; |
| 147 | } |
| 148 | |
| 149 | h1 { |
| 150 | margin: 0 0 20px; |
| 151 | font-weight: 300; |
| 152 | font-size: 1.25rem; |
| 153 | } |
| 154 | |
| 155 | h2 { |
| 156 | font-size: 1rem; |
| 157 | margin: 1em 0 .5em 0; |
| 158 | } |
| 159 | |
| 160 | h2.subhead { |
| 161 | font-weight: normal; |
| 162 | margin-top: 0; |
| 163 | } |
| 164 | |
| 165 | h3 { |
| 166 | font-size: 0.875rem; |
| 167 | margin: .8em 0 .3em 0; |
| 168 | color: var(--body-medium-color); |
| 169 | font-weight: bold; |
| 170 | } |
| 171 | |
| 172 | h4 { |
| 173 | font-size: 0.75rem; |
| 174 | margin: 1em 0 .8em 0; |
| 175 | padding-bottom: 3px; |
| 176 | color: var(--body-medium-color); |
| 177 | } |
| 178 | |
| 179 | h5 { |
| 180 | font-size: 0.625rem; |
| 181 | margin: 1.5em 0 .5em 0; |
| 182 | color: var(--body-quiet-color); |
| 183 | text-transform: uppercase; |
| 184 | letter-spacing: 1px; |
| 185 | } |
| 186 | |
| 187 | ul > li { |
| 188 | list-style-type: square; |
| 189 | padding: 1px 0; |
| 190 | } |
| 191 | |
| 192 | li ul { |
| 193 | margin-bottom: 0; |
| 194 | } |
| 195 | |
| 196 | li, dt, dd { |
| 197 | font-size: 0.8125rem; |
| 198 | line-height: 1.25rem; |
| 199 | } |
| 200 | |
| 201 | dt { |
| 202 | font-weight: bold; |
| 203 | margin-top: 4px; |
| 204 | } |
| 205 | |
| 206 | dd { |
| 207 | margin-left: 0; |
| 208 | } |
| 209 | |
| 210 | form { |
| 211 | margin: 0; |
| 212 | padding: 0; |
| 213 | } |
| 214 | |
| 215 | fieldset { |
| 216 | margin: 0; |
| 217 | min-width: 0; |
| 218 | padding: 0; |
| 219 | border: none; |
| 220 | border-top: 1px solid var(--hairline-color); |
| 221 | } |
| 222 | |
| 223 | details summary { |
| 224 | cursor: pointer; |
| 225 | } |
| 226 | |
| 227 | blockquote { |
| 228 | font-size: 0.6875rem; |
| 229 | color: #777; |
| 230 | margin-left: 2px; |
| 231 | padding-left: 10px; |
| 232 | border-left: 5px solid #ddd; |
| 233 | } |
| 234 | |
| 235 | code, pre { |
| 236 | font-family: var(--font-family-monospace); |
| 237 | color: var(--body-quiet-color); |
| 238 | font-size: 0.75rem; |
| 239 | overflow-x: auto; |
| 240 | } |
| 241 | |
| 242 | pre.literal-block { |
| 243 | margin: 10px; |
| 244 | background: var(--darkened-bg); |
| 245 | padding: 6px 8px; |
| 246 | } |
| 247 | |
| 248 | code strong { |
| 249 | color: #930; |
| 250 | } |
| 251 | |
| 252 | hr { |
| 253 | clear: both; |
| 254 | color: var(--hairline-color); |
| 255 | background-color: var(--hairline-color); |
| 256 | height: 1px; |
| 257 | border: none; |
| 258 | margin: 0; |
| 259 | padding: 0; |
| 260 | line-height: 1px; |
| 261 | } |
| 262 | |
| 263 | /* TEXT STYLES & MODIFIERS */ |
| 264 | |
| 265 | .small { |
| 266 | font-size: 0.6875rem; |
| 267 | } |
| 268 | |
| 269 | .mini { |
| 270 | font-size: 0.625rem; |
| 271 | } |
| 272 | |
| 273 | .help, p.help, form p.help, div.help, form div.help, div.help li { |
| 274 | font-size: 0.6875rem; |
| 275 | color: var(--body-quiet-color); |
| 276 | } |
| 277 | |
| 278 | div.help ul { |
| 279 | margin-bottom: 0; |
| 280 | } |
| 281 | |
| 282 | .help-tooltip { |
| 283 | cursor: help; |
| 284 | } |
| 285 | |
| 286 | p img, h1 img, h2 img, h3 img, h4 img, td img { |
| 287 | vertical-align: middle; |
| 288 | } |
| 289 | |
| 290 | .quiet, a.quiet:link, a.quiet:visited { |
| 291 | color: var(--body-quiet-color); |
| 292 | font-weight: normal; |
| 293 | } |
| 294 | |
| 295 | .clear { |
| 296 | clear: both; |
| 297 | } |
| 298 | |
| 299 | .nowrap { |
| 300 | white-space: nowrap; |
| 301 | } |
| 302 | |
| 303 | .hidden { |
| 304 | display: none !important; |
| 305 | } |
| 306 | |
| 307 | /* TABLES */ |
| 308 | |
| 309 | table { |
| 310 | border-collapse: collapse; |
| 311 | border-color: var(--border-color); |
| 312 | } |
| 313 | |
| 314 | td, th { |
| 315 | font-size: 0.8125rem; |
| 316 | line-height: 1rem; |
| 317 | border-bottom: 1px solid var(--hairline-color); |
| 318 | vertical-align: top; |
| 319 | padding: 8px; |
| 320 | } |
| 321 | |
| 322 | th { |
| 323 | font-weight: 500; |
| 324 | text-align: left; |
| 325 | } |
| 326 | |
| 327 | thead th, |
| 328 | tfoot td { |
| 329 | color: var(--body-quiet-color); |
| 330 | padding: 5px 10px; |
| 331 | font-size: 0.6875rem; |
| 332 | background: var(--body-bg); |
| 333 | border: none; |
| 334 | border-top: 1px solid var(--hairline-color); |
| 335 | border-bottom: 1px solid var(--hairline-color); |
| 336 | } |
| 337 | |
| 338 | tfoot td { |
| 339 | border-bottom: none; |
| 340 | border-top: 1px solid var(--hairline-color); |
| 341 | } |
| 342 | |
| 343 | thead th.required { |
| 344 | font-weight: bold; |
| 345 | } |
| 346 | |
| 347 | tr.alt { |
| 348 | background: var(--darkened-bg); |
| 349 | } |
| 350 | |
| 351 | tr:nth-child(odd), .row-form-errors { |
| 352 | background: var(--body-bg); |
| 353 | } |
| 354 | |
| 355 | tr:nth-child(even), |
| 356 | tr:nth-child(even) .errorlist, |
| 357 | tr:nth-child(odd) + .row-form-errors, |
| 358 | tr:nth-child(odd) + .row-form-errors .errorlist { |
| 359 | background: var(--darkened-bg); |
| 360 | } |
| 361 | |
| 362 | /* SORTABLE TABLES */ |
| 363 | |
| 364 | thead th { |
| 365 | padding: 5px 10px; |
| 366 | line-height: normal; |
| 367 | text-transform: uppercase; |
| 368 | background: var(--darkened-bg); |
| 369 | } |
| 370 | |
| 371 | thead th a:link, thead th a:visited { |
| 372 | color: var(--body-quiet-color); |
| 373 | } |
| 374 | |
| 375 | thead th.sorted { |
| 376 | background: var(--selected-bg); |
| 377 | } |
| 378 | |
| 379 | thead th.sorted .text { |
| 380 | padding-right: 42px; |
| 381 | } |
| 382 | |
| 383 | table thead th .text span { |
| 384 | padding: 8px 10px; |
| 385 | display: block; |
| 386 | } |
| 387 | |
| 388 | table thead th .text a { |
| 389 | display: block; |
| 390 | cursor: pointer; |
| 391 | padding: 8px 10px; |
| 392 | } |
| 393 | |
| 394 | table thead th .text a:focus, table thead th .text a:hover { |
| 395 | background: var(--selected-bg); |
| 396 | } |
| 397 | |
| 398 | thead th.sorted a.sortremove { |
| 399 | visibility: hidden; |
| 400 | } |
| 401 | |
| 402 | table thead th.sorted:hover a.sortremove { |
| 403 | visibility: visible; |
| 404 | } |
| 405 | |
| 406 | table thead th.sorted .sortoptions { |
| 407 | display: block; |
| 408 | padding: 9px 5px 0 5px; |
| 409 | float: right; |
| 410 | text-align: right; |
| 411 | } |
| 412 | |
| 413 | table thead th.sorted .sortpriority { |
| 414 | font-size: .8em; |
| 415 | min-width: 12px; |
| 416 | text-align: center; |
| 417 | vertical-align: 3px; |
| 418 | margin-left: 2px; |
| 419 | margin-right: 2px; |
| 420 | } |
| 421 | |
| 422 | table thead th.sorted .sortoptions a { |
| 423 | position: relative; |
| 424 | width: 14px; |
| 425 | height: 14px; |
| 426 | display: inline-block; |
| 427 | background: url(../img/sorting-icons.svg) 0 0 no-repeat; |
| 428 | background-size: 14px auto; |
| 429 | } |
| 430 | |
| 431 | table thead th.sorted .sortoptions a.sortremove { |
| 432 | background-position: 0 0; |
| 433 | } |
| 434 | |
| 435 | table thead th.sorted .sortoptions a.sortremove:after { |
| 436 | content: '\\'; |
| 437 | position: absolute; |
| 438 | top: -6px; |
| 439 | left: 3px; |
| 440 | font-weight: 200; |
| 441 | font-size: 1.125rem; |
| 442 | color: var(--body-quiet-color); |
| 443 | } |
| 444 | |
| 445 | table thead th.sorted .sortoptions a.sortremove:focus:after, |
| 446 | table thead th.sorted .sortoptions a.sortremove:hover:after { |
| 447 | color: var(--link-fg); |
| 448 | } |
| 449 | |
| 450 | table thead th.sorted .sortoptions a.sortremove:focus, |
| 451 | table thead th.sorted .sortoptions a.sortremove:hover { |
| 452 | background-position: 0 -14px; |
| 453 | } |
| 454 | |
| 455 | table thead th.sorted .sortoptions a.ascending { |
| 456 | background-position: 0 -28px; |
| 457 | } |
| 458 | |
| 459 | table thead th.sorted .sortoptions a.ascending:focus, |
| 460 | table thead th.sorted .sortoptions a.ascending:hover { |
| 461 | background-position: 0 -42px; |
| 462 | } |
| 463 | |
| 464 | table thead th.sorted .sortoptions a.descending { |
| 465 | top: 1px; |
| 466 | background-position: 0 -56px; |
| 467 | } |
| 468 | |
| 469 | table thead th.sorted .sortoptions a.descending:focus, |
| 470 | table thead th.sorted .sortoptions a.descending:hover { |
| 471 | background-position: 0 -70px; |
| 472 | } |
| 473 | |
| 474 | /* FORM DEFAULTS */ |
| 475 | |
| 476 | input, textarea, select, .form-row p, form .button { |
| 477 | margin: 2px 0; |
| 478 | padding: 2px 3px; |
| 479 | vertical-align: middle; |
| 480 | font-family: var(--font-family-primary); |
| 481 | font-weight: normal; |
| 482 | font-size: 0.8125rem; |
| 483 | } |
| 484 | .form-row div.help { |
| 485 | padding: 2px 3px; |
| 486 | } |
| 487 | |
| 488 | textarea { |
| 489 | vertical-align: top; |
| 490 | } |
| 491 | |
| 492 | /* |
| 493 | Minifiers remove the default (text) "type" attribute from "input" HTML tags. |
| 494 | Add input:not([type]) to make the CSS stylesheet work the same. |
| 495 | */ |
| 496 | input:not([type]), input[type=text], input[type=password], input[type=email], |
| 497 | input[type=url], input[type=number], input[type=tel], textarea, select, |
| 498 | .vTextField { |
| 499 | border: 1px solid var(--border-color); |
| 500 | border-radius: 4px; |
| 501 | padding: 5px 6px; |
| 502 | margin-top: 0; |
| 503 | color: var(--body-fg); |
| 504 | background-color: var(--body-bg); |
| 505 | } |
| 506 | |
| 507 | /* |
| 508 | Minifiers remove the default (text) "type" attribute from "input" HTML tags. |
| 509 | Add input:not([type]) to make the CSS stylesheet work the same. |
| 510 | */ |
| 511 | input:not([type]):focus, input[type=text]:focus, input[type=password]:focus, |
| 512 | input[type=email]:focus, input[type=url]:focus, input[type=number]:focus, |
| 513 | input[type=tel]:focus, textarea:focus, select:focus, .vTextField:focus { |
| 514 | border-color: var(--body-quiet-color); |
| 515 | } |
| 516 | |
| 517 | select { |
| 518 | height: 1.875rem; |
| 519 | } |
| 520 | |
| 521 | select[multiple] { |
| 522 | /* Allow HTML size attribute to override the height in the rule above. */ |
| 523 | height: auto; |
| 524 | min-height: 150px; |
| 525 | } |
| 526 | |
| 527 | /* FORM BUTTONS */ |
| 528 | |
| 529 | .button, input[type=submit], input[type=button], .submit-row input, a.button { |
| 530 | background: var(--button-bg); |
| 531 | padding: 10px 15px; |
| 532 | border: none; |
| 533 | border-radius: 4px; |
| 534 | color: var(--button-fg); |
| 535 | cursor: pointer; |
| 536 | transition: background 0.15s; |
| 537 | } |
| 538 | |
| 539 | a.button { |
| 540 | padding: 4px 5px; |
| 541 | } |
| 542 | |
| 543 | .button:active, input[type=submit]:active, input[type=button]:active, |
| 544 | .button:focus, input[type=submit]:focus, input[type=button]:focus, |
| 545 | .button:hover, input[type=submit]:hover, input[type=button]:hover { |
| 546 | background: var(--button-hover-bg); |
| 547 | } |
| 548 | |
| 549 | .button[disabled], input[type=submit][disabled], input[type=button][disabled] { |
| 550 | opacity: 0.4; |
| 551 | } |
| 552 | |
| 553 | .button.default, input[type=submit].default, .submit-row input.default { |
| 554 | border: none; |
| 555 | font-weight: 400; |
| 556 | background: var(--default-button-bg); |
| 557 | } |
| 558 | |
| 559 | .button.default:active, input[type=submit].default:active, |
| 560 | .button.default:focus, input[type=submit].default:focus, |
| 561 | .button.default:hover, input[type=submit].default:hover { |
| 562 | background: var(--default-button-hover-bg); |
| 563 | } |
| 564 | |
| 565 | .button[disabled].default, |
| 566 | input[type=submit][disabled].default, |
| 567 | input[type=button][disabled].default { |
| 568 | opacity: 0.4; |
| 569 | } |
| 570 | |
| 571 | |
| 572 | /* MODULES */ |
| 573 | |
| 574 | .module { |
| 575 | border: none; |
| 576 | margin-bottom: 30px; |
| 577 | background: var(--body-bg); |
| 578 | } |
| 579 | |
| 580 | .module p, .module ul, .module h3, .module h4, .module dl, .module pre { |
| 581 | padding-left: 10px; |
| 582 | padding-right: 10px; |
| 583 | } |
| 584 | |
| 585 | .module blockquote { |
| 586 | margin-left: 12px; |
| 587 | } |
| 588 | |
| 589 | .module ul, .module ol { |
| 590 | margin-left: 1.5em; |
| 591 | } |
| 592 | |
| 593 | .module h3 { |
| 594 | margin-top: .6em; |
| 595 | } |
| 596 | |
| 597 | .module h2, .module caption, .inline-group h2 { |
| 598 | margin: 0; |
| 599 | padding: 8px; |
| 600 | font-weight: 400; |
| 601 | font-size: 0.8125rem; |
| 602 | text-align: left; |
| 603 | background: var(--header-bg); |
| 604 | color: var(--header-link-color); |
| 605 | } |
| 606 | |
| 607 | .module caption, |
| 608 | .inline-group h2 { |
| 609 | font-size: 0.75rem; |
| 610 | letter-spacing: 0.5px; |
| 611 | text-transform: uppercase; |
| 612 | } |
| 613 | |
| 614 | .module table { |
| 615 | border-collapse: collapse; |
| 616 | } |
| 617 | |
| 618 | /* MESSAGES & ERRORS */ |
| 619 | |
| 620 | ul.messagelist { |
| 621 | padding: 0; |
| 622 | margin: 0; |
| 623 | } |
| 624 | |
| 625 | ul.messagelist li { |
| 626 | display: block; |
| 627 | font-weight: 400; |
| 628 | font-size: 0.8125rem; |
| 629 | padding: 10px 10px 10px 65px; |
| 630 | margin: 0 0 10px 0; |
| 631 | background: var(--message-success-bg) url(../img/icon-yes.svg) 40px 12px no-repeat; |
| 632 | background-size: 16px auto; |
| 633 | color: var(--body-fg); |
| 634 | word-break: break-word; |
| 635 | } |
| 636 | |
| 637 | ul.messagelist li.warning { |
| 638 | background: var(--message-warning-bg) url(../img/icon-alert.svg) 40px 14px no-repeat; |
| 639 | background-size: 14px auto; |
| 640 | } |
| 641 | |
| 642 | ul.messagelist li.error { |
| 643 | background: var(--message-error-bg) url(../img/icon-no.svg) 40px 12px no-repeat; |
| 644 | background-size: 16px auto; |
| 645 | } |
| 646 | |
| 647 | .errornote { |
| 648 | font-size: 0.875rem; |
| 649 | font-weight: 700; |
| 650 | display: block; |
| 651 | padding: 10px 12px; |
| 652 | margin: 0 0 10px 0; |
| 653 | color: var(--error-fg); |
| 654 | border: 1px solid var(--error-fg); |
| 655 | border-radius: 4px; |
| 656 | background-color: var(--body-bg); |
| 657 | background-position: 5px 12px; |
| 658 | overflow-wrap: break-word; |
| 659 | } |
| 660 | |
| 661 | ul.errorlist { |
| 662 | margin: 0 0 4px; |
| 663 | padding: 0; |
| 664 | color: var(--error-fg); |
| 665 | background: var(--body-bg); |
| 666 | } |
| 667 | |
| 668 | ul.errorlist li { |
| 669 | font-size: 0.8125rem; |
| 670 | display: block; |
| 671 | margin-bottom: 4px; |
| 672 | overflow-wrap: break-word; |
| 673 | } |
| 674 | |
| 675 | ul.errorlist li:first-child { |
| 676 | margin-top: 0; |
| 677 | } |
| 678 | |
| 679 | ul.errorlist li a { |
| 680 | color: inherit; |
| 681 | text-decoration: underline; |
| 682 | } |
| 683 | |
| 684 | td ul.errorlist { |
| 685 | margin: 0; |
| 686 | padding: 0; |
| 687 | } |
| 688 | |
| 689 | td ul.errorlist li { |
| 690 | margin: 0; |
| 691 | } |
| 692 | |
| 693 | .form-row.errors { |
| 694 | margin: 0; |
| 695 | border: none; |
| 696 | border-bottom: 1px solid var(--hairline-color); |
| 697 | background: none; |
| 698 | } |
| 699 | |
| 700 | .form-row.errors ul.errorlist li { |
| 701 | padding-left: 0; |
| 702 | } |
| 703 | |
| 704 | .errors input, .errors select, .errors textarea, |
| 705 | td ul.errorlist + input, td ul.errorlist + select, td ul.errorlist + textarea { |
| 706 | border: 1px solid var(--error-fg); |
| 707 | } |
| 708 | |
| 709 | .description { |
| 710 | font-size: 0.75rem; |
| 711 | padding: 5px 0 0 12px; |
| 712 | } |
| 713 | |
| 714 | /* BREADCRUMBS */ |
| 715 | |
| 716 | div.breadcrumbs { |
| 717 | background: var(--breadcrumbs-bg); |
| 718 | padding: 10px 40px; |
| 719 | border: none; |
| 720 | color: var(--breadcrumbs-fg); |
| 721 | text-align: left; |
| 722 | } |
| 723 | |
| 724 | div.breadcrumbs a { |
| 725 | color: var(--breadcrumbs-link-fg); |
| 726 | } |
| 727 | |
| 728 | div.breadcrumbs a:focus, div.breadcrumbs a:hover { |
| 729 | color: var(--breadcrumbs-fg); |
| 730 | } |
| 731 | |
| 732 | /* ACTION ICONS */ |
| 733 | |
| 734 | .viewlink, .inlineviewlink { |
| 735 | padding-left: 16px; |
| 736 | background: url(../img/icon-viewlink.svg) 0 1px no-repeat; |
| 737 | } |
| 738 | |
| 739 | .hidelink { |
| 740 | padding-left: 16px; |
| 741 | background: url(../img/icon-hidelink.svg) 0 1px no-repeat; |
| 742 | } |
| 743 | |
| 744 | .addlink { |
| 745 | padding-left: 16px; |
| 746 | background: url(../img/icon-addlink.svg) 0 1px no-repeat; |
| 747 | } |
| 748 | |
| 749 | .changelink, .inlinechangelink { |
| 750 | padding-left: 16px; |
| 751 | background: url(../img/icon-changelink.svg) 0 1px no-repeat; |
| 752 | } |
| 753 | |
| 754 | .deletelink { |
| 755 | padding-left: 16px; |
| 756 | background: url(../img/icon-deletelink.svg) 0 1px no-repeat; |
| 757 | } |
| 758 | |
| 759 | a.deletelink:link, a.deletelink:visited { |
| 760 | color: #CC3434; /* XXX Probably unused? */ |
| 761 | } |
| 762 | |
| 763 | a.deletelink:focus, a.deletelink:hover { |
| 764 | color: #993333; /* XXX Probably unused? */ |
| 765 | text-decoration: none; |
| 766 | } |
| 767 | |
| 768 | /* OBJECT TOOLS */ |
| 769 | |
| 770 | .object-tools { |
| 771 | font-size: 0.625rem; |
| 772 | font-weight: bold; |
| 773 | padding-left: 0; |
| 774 | float: right; |
| 775 | position: relative; |
| 776 | margin-top: -48px; |
| 777 | } |
| 778 | |
| 779 | .object-tools li { |
| 780 | display: block; |
| 781 | float: left; |
| 782 | margin-left: 5px; |
| 783 | height: 1rem; |
| 784 | } |
| 785 | |
| 786 | .object-tools a { |
| 787 | border-radius: 15px; |
| 788 | } |
| 789 | |
| 790 | .object-tools a:link, .object-tools a:visited { |
| 791 | display: block; |
| 792 | float: left; |
| 793 | padding: 3px 12px; |
| 794 | background: var(--object-tools-bg); |
| 795 | color: var(--object-tools-fg); |
| 796 | font-weight: 400; |
| 797 | font-size: 0.6875rem; |
| 798 | text-transform: uppercase; |
| 799 | letter-spacing: 0.5px; |
| 800 | } |
| 801 | |
| 802 | .object-tools a:focus, .object-tools a:hover { |
| 803 | background-color: var(--object-tools-hover-bg); |
| 804 | } |
| 805 | |
| 806 | .object-tools a:focus{ |
| 807 | text-decoration: none; |
| 808 | } |
| 809 | |
| 810 | .object-tools a.viewsitelink, .object-tools a.addlink { |
| 811 | background-repeat: no-repeat; |
| 812 | background-position: right 7px center; |
| 813 | padding-right: 26px; |
| 814 | } |
| 815 | |
| 816 | .object-tools a.viewsitelink { |
| 817 | background-image: url(../img/tooltag-arrowright.svg); |
| 818 | } |
| 819 | |
| 820 | .object-tools a.addlink { |
| 821 | background-image: url(../img/tooltag-add.svg); |
| 822 | } |
| 823 | |
| 824 | /* OBJECT HISTORY */ |
| 825 | |
| 826 | #change-history table { |
| 827 | width: 100%; |
| 828 | } |
| 829 | |
| 830 | #change-history table tbody th { |
| 831 | width: 16em; |
| 832 | } |
| 833 | |
| 834 | #change-history .paginator { |
| 835 | color: var(--body-quiet-color); |
| 836 | border-bottom: 1px solid var(--hairline-color); |
| 837 | background: var(--body-bg); |
| 838 | overflow: hidden; |
| 839 | } |
| 840 | |
| 841 | /* PAGE STRUCTURE */ |
| 842 | |
| 843 | #container { |
| 844 | position: relative; |
| 845 | width: 100%; |
| 846 | min-width: 980px; |
| 847 | padding: 0; |
| 848 | display: flex; |
| 849 | flex-direction: column; |
| 850 | height: 100%; |
| 851 | } |
| 852 | |
| 853 | #container > .main { |
| 854 | display: flex; |
| 855 | flex: 1 0 auto; |
| 856 | } |
| 857 | |
| 858 | .main > .content { |
| 859 | flex: 1 0; |
| 860 | max-width: 100%; |
| 861 | } |
| 862 | |
| 863 | .skip-to-content-link { |
| 864 | position: absolute; |
| 865 | top: -999px; |
| 866 | margin: 5px; |
| 867 | padding: 5px; |
| 868 | background: var(--body-bg); |
| 869 | z-index: 1; |
| 870 | } |
| 871 | |
| 872 | .skip-to-content-link:focus { |
| 873 | left: 0px; |
| 874 | top: 0px; |
| 875 | } |
| 876 | |
| 877 | #content { |
| 878 | padding: 20px 40px; |
| 879 | } |
| 880 | |
| 881 | .dashboard #content { |
| 882 | width: 600px; |
| 883 | } |
| 884 | |
| 885 | #content-main { |
| 886 | float: left; |
| 887 | width: 100%; |
| 888 | } |
| 889 | |
| 890 | #content-related { |
| 891 | float: right; |
| 892 | width: 260px; |
| 893 | position: relative; |
| 894 | margin-right: -300px; |
| 895 | } |
| 896 | |
| 897 | @media (forced-colors: active) { |
| 898 | #content-related { |
| 899 | border: 1px solid; |
| 900 | } |
| 901 | } |
| 902 | |
| 903 | /* COLUMN TYPES */ |
| 904 | |
| 905 | .colMS { |
| 906 | margin-right: 300px; |
| 907 | } |
| 908 | |
| 909 | .colSM { |
| 910 | margin-left: 300px; |
| 911 | } |
| 912 | |
| 913 | .colSM #content-related { |
| 914 | float: left; |
| 915 | margin-right: 0; |
| 916 | margin-left: -300px; |
| 917 | } |
| 918 | |
| 919 | .colSM #content-main { |
| 920 | float: right; |
| 921 | } |
| 922 | |
| 923 | .popup .colM { |
| 924 | width: auto; |
| 925 | } |
| 926 | |
| 927 | /* HEADER */ |
| 928 | |
| 929 | #header { |
| 930 | width: auto; |
| 931 | height: auto; |
| 932 | display: flex; |
| 933 | justify-content: space-between; |
| 934 | align-items: center; |
| 935 | padding: 10px 40px; |
| 936 | background: var(--header-bg); |
| 937 | color: var(--header-color); |
| 938 | } |
| 939 | |
| 940 | #header a:link, #header a:visited, #logout-form button { |
| 941 | color: var(--header-link-color); |
| 942 | } |
| 943 | |
| 944 | #header a:focus , #header a:hover { |
| 945 | text-decoration: underline; |
| 946 | } |
| 947 | |
| 948 | @media (forced-colors: active) { |
| 949 | #header { |
| 950 | border-bottom: 1px solid; |
| 951 | } |
| 952 | } |
| 953 | |
| 954 | #branding { |
| 955 | display: flex; |
| 956 | } |
| 957 | |
| 958 | #site-name { |
| 959 | padding: 0; |
| 960 | margin: 0; |
| 961 | margin-inline-end: 20px; |
| 962 | font-weight: 300; |
| 963 | font-size: 1.5rem; |
| 964 | color: var(--header-branding-color); |
| 965 | } |
| 966 | |
| 967 | #site-name a:link, #site-name a:visited { |
| 968 | color: var(--accent); |
| 969 | } |
| 970 | |
| 971 | #branding h2 { |
| 972 | padding: 0 10px; |
| 973 | font-size: 0.875rem; |
| 974 | margin: -8px 0 8px 0; |
| 975 | font-weight: normal; |
| 976 | color: var(--header-color); |
| 977 | } |
| 978 | |
| 979 | #branding a:hover { |
| 980 | text-decoration: none; |
| 981 | } |
| 982 | |
| 983 | #logout-form { |
| 984 | display: inline; |
| 985 | } |
| 986 | |
| 987 | #logout-form button { |
| 988 | background: none; |
| 989 | border: 0; |
| 990 | cursor: pointer; |
| 991 | font-family: var(--font-family-primary); |
| 992 | } |
| 993 | |
| 994 | #user-tools { |
| 995 | float: right; |
| 996 | margin: 0 0 0 20px; |
| 997 | text-align: right; |
| 998 | } |
| 999 | |
| 1000 | #user-tools, #logout-form button{ |
| 1001 | padding: 0; |
| 1002 | font-weight: 300; |
| 1003 | font-size: 0.6875rem; |
| 1004 | letter-spacing: 0.5px; |
| 1005 | text-transform: uppercase; |
| 1006 | } |
| 1007 | |
| 1008 | #user-tools a, #logout-form button { |
| 1009 | border-bottom: 1px solid rgba(255, 255, 255, 0.25); |
| 1010 | } |
| 1011 | |
| 1012 | #user-tools a:focus, #user-tools a:hover, |
| 1013 | #logout-form button:active, #logout-form button:hover { |
| 1014 | text-decoration: none; |
| 1015 | border-bottom: 0; |
| 1016 | } |
| 1017 | |
| 1018 | #logout-form button:active, #logout-form button:hover { |
| 1019 | margin-bottom: 1px; |
| 1020 | } |
| 1021 | |
| 1022 | /* SIDEBAR */ |
| 1023 | |
| 1024 | #content-related { |
| 1025 | background: var(--darkened-bg); |
| 1026 | } |
| 1027 | |
| 1028 | #content-related .module { |
| 1029 | background: none; |
| 1030 | } |
| 1031 | |
| 1032 | #content-related h3 { |
| 1033 | color: var(--body-quiet-color); |
| 1034 | padding: 0 16px; |
| 1035 | margin: 0 0 16px; |
| 1036 | } |
| 1037 | |
| 1038 | #content-related h4 { |
| 1039 | font-size: 0.8125rem; |
| 1040 | } |
| 1041 | |
| 1042 | #content-related p { |
| 1043 | padding-left: 16px; |
| 1044 | padding-right: 16px; |
| 1045 | } |
| 1046 | |
| 1047 | #content-related .actionlist { |
| 1048 | padding: 0; |
| 1049 | margin: 16px; |
| 1050 | } |
| 1051 | |
| 1052 | #content-related .actionlist li { |
| 1053 | line-height: 1.2; |
| 1054 | margin-bottom: 10px; |
| 1055 | padding-left: 18px; |
| 1056 | } |
| 1057 | |
| 1058 | #content-related .module h2 { |
| 1059 | background: none; |
| 1060 | padding: 16px; |
| 1061 | margin-bottom: 16px; |
| 1062 | border-bottom: 1px solid var(--hairline-color); |
| 1063 | font-size: 1.125rem; |
| 1064 | color: var(--body-fg); |
| 1065 | } |
| 1066 | |
| 1067 | .delete-confirmation form input[type="submit"] { |
| 1068 | background: var(--delete-button-bg); |
| 1069 | border-radius: 4px; |
| 1070 | padding: 10px 15px; |
| 1071 | color: var(--button-fg); |
| 1072 | } |
| 1073 | |
| 1074 | .delete-confirmation form input[type="submit"]:active, |
| 1075 | .delete-confirmation form input[type="submit"]:focus, |
| 1076 | .delete-confirmation form input[type="submit"]:hover { |
| 1077 | background: var(--delete-button-hover-bg); |
| 1078 | } |
| 1079 | |
| 1080 | .delete-confirmation form .cancel-link { |
| 1081 | display: inline-block; |
| 1082 | vertical-align: middle; |
| 1083 | height: 0.9375rem; |
| 1084 | line-height: 0.9375rem; |
| 1085 | border-radius: 4px; |
| 1086 | padding: 10px 15px; |
| 1087 | color: var(--button-fg); |
| 1088 | background: var(--close-button-bg); |
| 1089 | margin: 0 0 0 10px; |
| 1090 | } |
| 1091 | |
| 1092 | .delete-confirmation form .cancel-link:active, |
| 1093 | .delete-confirmation form .cancel-link:focus, |
| 1094 | .delete-confirmation form .cancel-link:hover { |
| 1095 | background: var(--close-button-hover-bg); |
| 1096 | } |
| 1097 | |
| 1098 | /* POPUP */ |
| 1099 | .popup #content { |
| 1100 | padding: 20px; |
| 1101 | } |
| 1102 | |
| 1103 | .popup #container { |
| 1104 | min-width: 0; |
| 1105 | } |
| 1106 | |
| 1107 | .popup #header { |
| 1108 | padding: 10px 20px; |
| 1109 | } |
| 1110 | |
| 1111 | /* PAGINATOR */ |
| 1112 | |
| 1113 | .paginator { |
| 1114 | display: flex; |
| 1115 | align-items: center; |
| 1116 | gap: 4px; |
| 1117 | font-size: 0.8125rem; |
| 1118 | padding-top: 10px; |
| 1119 | padding-bottom: 10px; |
| 1120 | line-height: 22px; |
| 1121 | margin: 0; |
| 1122 | border-top: 1px solid var(--hairline-color); |
| 1123 | width: 100%; |
| 1124 | box-sizing: border-box; |
| 1125 | } |
| 1126 | |
| 1127 | .paginator a:link, .paginator a:visited { |
| 1128 | padding: 2px 6px; |
| 1129 | background: var(--button-bg); |
| 1130 | text-decoration: none; |
| 1131 | color: var(--button-fg); |
| 1132 | } |
| 1133 | |
| 1134 | .paginator a.showall { |
| 1135 | border: none; |
| 1136 | background: none; |
| 1137 | color: var(--link-fg); |
| 1138 | } |
| 1139 | |
| 1140 | .paginator a.showall:focus, .paginator a.showall:hover { |
| 1141 | background: none; |
| 1142 | color: var(--link-hover-color); |
| 1143 | } |
| 1144 | |
| 1145 | .paginator .end { |
| 1146 | margin-right: 6px; |
| 1147 | } |
| 1148 | |
| 1149 | .paginator .this-page { |
| 1150 | padding: 2px 6px; |
| 1151 | font-weight: bold; |
| 1152 | font-size: 0.8125rem; |
| 1153 | vertical-align: top; |
| 1154 | } |
| 1155 | |
| 1156 | .paginator a:focus, .paginator a:hover { |
| 1157 | color: white; |
| 1158 | background: var(--link-hover-color); |
| 1159 | } |
| 1160 | |
| 1161 | .paginator input { |
| 1162 | margin-left: auto; |
| 1163 | } |
| 1164 | |
| 1165 | .base-svgs { |
| 1166 | display: none; |
| 1167 | } |
| 1168 | |
| 1169 | .visually-hidden { |
| 1170 | position: absolute; |
| 1171 | width: 1px; |
| 1172 | height: 1px; |
| 1173 | padding: 0; |
| 1174 | overflow: hidden; |
| 1175 | clip: rect(0,0,0,0); |
| 1176 | white-space: nowrap; |
| 1177 | border: 0; |
| 1178 | color: var(--body-fg); |
| 1179 | background-color: var(--body-bg); |
| 1180 | } |
Binary file
| --- a/assets/admin/css/changelists.59465e72d1ef.css | ||
| +++ b/assets/admin/css/changelists.59465e72d1ef.css | ||
| @@ -0,0 +1,343 @@ | ||
| 1 | +/* CHANGELISTS */ | |
| 2 | + | |
| 3 | +#changelist { | |
| 4 | + display: flex; | |
| 5 | + align-items: flex-start; | |
| 6 | + justify-content: space-between; | |
| 7 | +} | |
| 8 | + | |
| 9 | +#changelist .changelist-form-container { | |
| 10 | + flex: 1 1 auto; | |
| 11 | + min-width: 0; | |
| 12 | +} | |
| 13 | + | |
| 14 | +#changelist table { | |
| 15 | + width: 100%; | |
| 16 | +} | |
| 17 | + | |
| 18 | +.change-list .hiddenfields { display:none; } | |
| 19 | + | |
| 20 | +.change-list .filtered table { | |
| 21 | + border-right: none; | |
| 22 | +} | |
| 23 | + | |
| 24 | +.change-list .filtered { | |
| 25 | + min-height: 400px; | |
| 26 | +} | |
| 27 | + | |
| 28 | +.change-list .filtered .results, .change-list .filtered .paginator, | |
| 29 | +.filtered #toolbar, .filtered div.xfull { | |
| 30 | + width: auto; | |
| 31 | +} | |
| 32 | + | |
| 33 | +.change-list .filtered table tbody th { | |
| 34 | + padding-right: 1em; | |
| 35 | +} | |
| 36 | + | |
| 37 | +#changelist-form .results { | |
| 38 | + overflow-x: auto; | |
| 39 | + width: 100%; | |
| 40 | +} | |
| 41 | + | |
| 42 | +#changelist .toplinks { | |
| 43 | + border-bottom: 1px solid var(--hairline-color); | |
| 44 | +} | |
| 45 | + | |
| 46 | +#changelist .paginator { | |
| 47 | + color: var(--body-quiet-color); | |
| 48 | + border-bottom: 1px solid var(--hairline-color); | |
| 49 | + background: var(--body-bg); | |
| 50 | + overflow: hidden; | |
| 51 | +} | |
| 52 | + | |
| 53 | +/* CHANGELIST TABLES */ | |
| 54 | + | |
| 55 | +#changelist table thead th { | |
| 56 | + padding: 0; | |
| 57 | + white-space: nowrap; | |
| 58 | + vertical-align: middle; | |
| 59 | +} | |
| 60 | + | |
| 61 | +#changelist table thead th.action-checkbox-column { | |
| 62 | + width: 1.5em; | |
| 63 | + text-align: center; | |
| 64 | +} | |
| 65 | + | |
| 66 | +#changelist table tbody td.action-checkbox { | |
| 67 | + text-align: center; | |
| 68 | +} | |
| 69 | + | |
| 70 | +#changelist table tfoot { | |
| 71 | + color: var(--body-quiet-color); | |
| 72 | +} | |
| 73 | + | |
| 74 | +/* TOOLBAR */ | |
| 75 | + | |
| 76 | +#toolbar { | |
| 77 | + padding: 8px 10px; | |
| 78 | + margin-bottom: 15px; | |
| 79 | + border-top: 1px solid var(--hairline-color); | |
| 80 | + border-bottom: 1px solid var(--hairline-color); | |
| 81 | + background: var(--darkened-bg); | |
| 82 | + color: var(--body-quiet-color); | |
| 83 | +} | |
| 84 | + | |
| 85 | +#toolbar form input { | |
| 86 | + border-radius: 4px; | |
| 87 | + font-size: 0.875rem; | |
| 88 | + padding: 5px; | |
| 89 | + color: var(--body-fg); | |
| 90 | +} | |
| 91 | + | |
| 92 | +#toolbar #searchbar { | |
| 93 | + height: 1.1875rem; | |
| 94 | + border: 1px solid var(--border-color); | |
| 95 | + padding: 2px 5px; | |
| 96 | + margin: 0; | |
| 97 | + vertical-align: top; | |
| 98 | + font-size: 0.8125rem; | |
| 99 | + max-width: 100%; | |
| 100 | +} | |
| 101 | + | |
| 102 | +#toolbar #searchbar:focus { | |
| 103 | + border-color: var(--body-quiet-color); | |
| 104 | +} | |
| 105 | + | |
| 106 | +#toolbar form input[type="submit"] { | |
| 107 | + border: 1px solid var(--border-color); | |
| 108 | + font-size: 0.8125rem; | |
| 109 | + padding: 4px 8px; | |
| 110 | + margin: 0; | |
| 111 | + vertical-align: middle; | |
| 112 | + background: var(--body-bg); | |
| 113 | + box-shadow: 0 -15px 20px -10px rgba(0, 0, 0, 0.15) inset; | |
| 114 | + cursor: pointer; | |
| 115 | + color: var(--body-fg); | |
| 116 | +} | |
| 117 | + | |
| 118 | +#toolbar form input[type="submit"]:focus, | |
| 119 | +#toolbar form input[type="submit"]:hover { | |
| 120 | + border-color: var(--body-quiet-color); | |
| 121 | +} | |
| 122 | + | |
| 123 | +#changelist-search img { | |
| 124 | + vertical-align: middle; | |
| 125 | + margin-right: 4px; | |
| 126 | +} | |
| 127 | + | |
| 128 | +#changelist-search .help { | |
| 129 | + word-break: break-word; | |
| 130 | +} | |
| 131 | + | |
| 132 | +/* FILTER COLUMN */ | |
| 133 | + | |
| 134 | +#changelist-filter { | |
| 135 | + flex: 0 0 240px; | |
| 136 | + order: 1; | |
| 137 | + background: var(--darkened-bg); | |
| 138 | + border-left: none; | |
| 139 | + margin: 0 0 0 30px; | |
| 140 | +} | |
| 141 | + | |
| 142 | +@media (forced-colors: active) { | |
| 143 | + #changelist-filter { | |
| 144 | + border: 1px solid; | |
| 145 | + } | |
| 146 | +} | |
| 147 | + | |
| 148 | +#changelist-filter h2 { | |
| 149 | + font-size: 0.875rem; | |
| 150 | + text-transform: uppercase; | |
| 151 | + letter-spacing: 0.5px; | |
| 152 | + padding: 5px 15px; | |
| 153 | + margin-bottom: 12px; | |
| 154 | + border-bottom: none; | |
| 155 | +} | |
| 156 | + | |
| 157 | +#changelist-filter h3, | |
| 158 | +#changelist-filter details summary { | |
| 159 | + font-weight: 400; | |
| 160 | + padding: 0 15px; | |
| 161 | + margin-bottom: 10px; | |
| 162 | +} | |
| 163 | + | |
| 164 | +#changelist-filter details summary > * { | |
| 165 | + display: inline; | |
| 166 | +} | |
| 167 | + | |
| 168 | +#changelist-filter details > summary { | |
| 169 | + list-style-type: none; | |
| 170 | +} | |
| 171 | + | |
| 172 | +#changelist-filter details > summary::-webkit-details-marker { | |
| 173 | + display: none; | |
| 174 | +} | |
| 175 | + | |
| 176 | +#changelist-filter details > summary::before { | |
| 177 | + content: '→'; | |
| 178 | + font-weight: bold; | |
| 179 | + color: var(--link-hover-color); | |
| 180 | +} | |
| 181 | + | |
| 182 | +#changelist-filter details[open] > summary::before { | |
| 183 | + content: '↓'; | |
| 184 | +} | |
| 185 | + | |
| 186 | +#changelist-filter ul { | |
| 187 | + margin: 5px 0; | |
| 188 | + padding: 0 15px 15px; | |
| 189 | + border-bottom: 1px solid var(--hairline-color); | |
| 190 | +} | |
| 191 | + | |
| 192 | +#changelist-filter ul:last-child { | |
| 193 | + border-bottom: none; | |
| 194 | +} | |
| 195 | + | |
| 196 | +#changelist-filter li { | |
| 197 | + list-style-type: none; | |
| 198 | + margin-left: 0; | |
| 199 | + padding-left: 0; | |
| 200 | +} | |
| 201 | + | |
| 202 | +#changelist-filter a { | |
| 203 | + display: block; | |
| 204 | + color: var(--body-quiet-color); | |
| 205 | + word-break: break-word; | |
| 206 | +} | |
| 207 | + | |
| 208 | +#changelist-filter li.selected { | |
| 209 | + border-left: 5px solid var(--hairline-color); | |
| 210 | + padding-left: 10px; | |
| 211 | + margin-left: -15px; | |
| 212 | +} | |
| 213 | + | |
| 214 | +#changelist-filter li.selected a { | |
| 215 | + color: var(--link-selected-fg); | |
| 216 | +} | |
| 217 | + | |
| 218 | +#changelist-filter a:focus, #changelist-filter a:hover, | |
| 219 | +#changelist-filter li.selected a:focus, | |
| 220 | +#changelist-filter li.selected a:hover { | |
| 221 | + color: var(--link-hover-color); | |
| 222 | +} | |
| 223 | + | |
| 224 | +#changelist-filter #changelist-filter-extra-actions { | |
| 225 | + font-size: 0.8125rem; | |
| 226 | + margin-bottom: 10px; | |
| 227 | + border-bottom: 1px solid var(--hairline-color); | |
| 228 | +} | |
| 229 | + | |
| 230 | +/* DATE DRILLDOWN */ | |
| 231 | + | |
| 232 | +.change-list .toplinks { | |
| 233 | + display: flex; | |
| 234 | + padding-bottom: 5px; | |
| 235 | + flex-wrap: wrap; | |
| 236 | + gap: 3px 17px; | |
| 237 | + font-weight: bold; | |
| 238 | +} | |
| 239 | + | |
| 240 | +.change-list .toplinks a { | |
| 241 | + font-size: 0.8125rem; | |
| 242 | +} | |
| 243 | + | |
| 244 | +.change-list .toplinks .date-back { | |
| 245 | + color: var(--body-quiet-color); | |
| 246 | +} | |
| 247 | + | |
| 248 | +.change-list .toplinks .date-back:focus, | |
| 249 | +.change-list .toplinks .date-back:hover { | |
| 250 | + color: var(--link-hover-color); | |
| 251 | +} | |
| 252 | + | |
| 253 | +/* ACTIONS */ | |
| 254 | + | |
| 255 | +.filtered .actions { | |
| 256 | + border-right: none; | |
| 257 | +} | |
| 258 | + | |
| 259 | +#changelist table input { | |
| 260 | + margin: 0; | |
| 261 | + vertical-align: baseline; | |
| 262 | +} | |
| 263 | + | |
| 264 | +/* Once the :has() pseudo-class is supported by all browsers, the tr.selected | |
| 265 | + selector and the JS adding the class can be removed. */ | |
| 266 | +#changelist tbody tr.selected { | |
| 267 | + background-color: var(--selected-row); | |
| 268 | +} | |
| 269 | + | |
| 270 | +#changelist tbody tr:has(.action-select:checked) { | |
| 271 | + background-color: var(--selected-row); | |
| 272 | +} | |
| 273 | + | |
| 274 | +@media (forced-colors: active) { | |
| 275 | + #changelist tbody tr.selected { | |
| 276 | + background-color: SelectedItem; | |
| 277 | + } | |
| 278 | + #changelist tbody tr:has(.action-select:checked) { | |
| 279 | + background-color: SelectedItem; | |
| 280 | + } | |
| 281 | +} | |
| 282 | + | |
| 283 | +#changelist .actions { | |
| 284 | + padding: 10px; | |
| 285 | + background: var(--body-bg); | |
| 286 | + border-top: none; | |
| 287 | + border-bottom: none; | |
| 288 | + line-height: 1.5rem; | |
| 289 | + color: var(--body-quiet-color); | |
| 290 | + width: 100%; | |
| 291 | +} | |
| 292 | + | |
| 293 | +#changelist .actions span.all, | |
| 294 | +#changelist .actions span.action-counter, | |
| 295 | +#changelist .actions span.clear, | |
| 296 | +#changelist .actions span.question { | |
| 297 | + font-size: 0.8125rem; | |
| 298 | + margin: 0 0.5em; | |
| 299 | +} | |
| 300 | + | |
| 301 | +#changelist .actions:last-child { | |
| 302 | + border-bottom: none; | |
| 303 | +} | |
| 304 | + | |
| 305 | +#changelist .actions select { | |
| 306 | + vertical-align: top; | |
| 307 | + height: 1.5rem; | |
| 308 | + color: var(--body-fg); | |
| 309 | + border: 1px solid var(--border-color); | |
| 310 | + border-radius: 4px; | |
| 311 | + font-size: 0.875rem; | |
| 312 | + padding: 0 0 0 4px; | |
| 313 | + margin: 0; | |
| 314 | + margin-left: 10px; | |
| 315 | +} | |
| 316 | + | |
| 317 | +#changelist .actions select:focus { | |
| 318 | + border-color: var(--body-quiet-color); | |
| 319 | +} | |
| 320 | + | |
| 321 | +#changelist .actions label { | |
| 322 | + display: inline-block; | |
| 323 | + vertical-align: middle; | |
| 324 | + font-size: 0.8125rem; | |
| 325 | +} | |
| 326 | + | |
| 327 | +#changelist .actions .button { | |
| 328 | + font-size: 0.8125rem; | |
| 329 | + border: 1px solid var(--border-color); | |
| 330 | + border-radius: 4px; | |
| 331 | + background: var(--body-bg); | |
| 332 | + box-shadow: 0 -15px 20px -10px rgba(0, 0, 0, 0.15) inset; | |
| 333 | + cursor: pointer; | |
| 334 | + height: 1.5rem; | |
| 335 | + line-height: 1; | |
| 336 | + padding: 4px 8px; | |
| 337 | + margin: 0; | |
| 338 | + color: var(--body-fg); | |
| 339 | +} | |
| 340 | + | |
| 341 | +#changelist .actions .button:focus, #changelist .actions .button:hover { | |
| 342 | + border-color: var(--body-quiet-color); | |
| 343 | +} |
| --- a/assets/admin/css/changelists.59465e72d1ef.css | |
| +++ b/assets/admin/css/changelists.59465e72d1ef.css | |
| @@ -0,0 +1,343 @@ | |
| --- a/assets/admin/css/changelists.59465e72d1ef.css | |
| +++ b/assets/admin/css/changelists.59465e72d1ef.css | |
| @@ -0,0 +1,343 @@ | |
| 1 | /* CHANGELISTS */ |
| 2 | |
| 3 | #changelist { |
| 4 | display: flex; |
| 5 | align-items: flex-start; |
| 6 | justify-content: space-between; |
| 7 | } |
| 8 | |
| 9 | #changelist .changelist-form-container { |
| 10 | flex: 1 1 auto; |
| 11 | min-width: 0; |
| 12 | } |
| 13 | |
| 14 | #changelist table { |
| 15 | width: 100%; |
| 16 | } |
| 17 | |
| 18 | .change-list .hiddenfields { display:none; } |
| 19 | |
| 20 | .change-list .filtered table { |
| 21 | border-right: none; |
| 22 | } |
| 23 | |
| 24 | .change-list .filtered { |
| 25 | min-height: 400px; |
| 26 | } |
| 27 | |
| 28 | .change-list .filtered .results, .change-list .filtered .paginator, |
| 29 | .filtered #toolbar, .filtered div.xfull { |
| 30 | width: auto; |
| 31 | } |
| 32 | |
| 33 | .change-list .filtered table tbody th { |
| 34 | padding-right: 1em; |
| 35 | } |
| 36 | |
| 37 | #changelist-form .results { |
| 38 | overflow-x: auto; |
| 39 | width: 100%; |
| 40 | } |
| 41 | |
| 42 | #changelist .toplinks { |
| 43 | border-bottom: 1px solid var(--hairline-color); |
| 44 | } |
| 45 | |
| 46 | #changelist .paginator { |
| 47 | color: var(--body-quiet-color); |
| 48 | border-bottom: 1px solid var(--hairline-color); |
| 49 | background: var(--body-bg); |
| 50 | overflow: hidden; |
| 51 | } |
| 52 | |
| 53 | /* CHANGELIST TABLES */ |
| 54 | |
| 55 | #changelist table thead th { |
| 56 | padding: 0; |
| 57 | white-space: nowrap; |
| 58 | vertical-align: middle; |
| 59 | } |
| 60 | |
| 61 | #changelist table thead th.action-checkbox-column { |
| 62 | width: 1.5em; |
| 63 | text-align: center; |
| 64 | } |
| 65 | |
| 66 | #changelist table tbody td.action-checkbox { |
| 67 | text-align: center; |
| 68 | } |
| 69 | |
| 70 | #changelist table tfoot { |
| 71 | color: var(--body-quiet-color); |
| 72 | } |
| 73 | |
| 74 | /* TOOLBAR */ |
| 75 | |
| 76 | #toolbar { |
| 77 | padding: 8px 10px; |
| 78 | margin-bottom: 15px; |
| 79 | border-top: 1px solid var(--hairline-color); |
| 80 | border-bottom: 1px solid var(--hairline-color); |
| 81 | background: var(--darkened-bg); |
| 82 | color: var(--body-quiet-color); |
| 83 | } |
| 84 | |
| 85 | #toolbar form input { |
| 86 | border-radius: 4px; |
| 87 | font-size: 0.875rem; |
| 88 | padding: 5px; |
| 89 | color: var(--body-fg); |
| 90 | } |
| 91 | |
| 92 | #toolbar #searchbar { |
| 93 | height: 1.1875rem; |
| 94 | border: 1px solid var(--border-color); |
| 95 | padding: 2px 5px; |
| 96 | margin: 0; |
| 97 | vertical-align: top; |
| 98 | font-size: 0.8125rem; |
| 99 | max-width: 100%; |
| 100 | } |
| 101 | |
| 102 | #toolbar #searchbar:focus { |
| 103 | border-color: var(--body-quiet-color); |
| 104 | } |
| 105 | |
| 106 | #toolbar form input[type="submit"] { |
| 107 | border: 1px solid var(--border-color); |
| 108 | font-size: 0.8125rem; |
| 109 | padding: 4px 8px; |
| 110 | margin: 0; |
| 111 | vertical-align: middle; |
| 112 | background: var(--body-bg); |
| 113 | box-shadow: 0 -15px 20px -10px rgba(0, 0, 0, 0.15) inset; |
| 114 | cursor: pointer; |
| 115 | color: var(--body-fg); |
| 116 | } |
| 117 | |
| 118 | #toolbar form input[type="submit"]:focus, |
| 119 | #toolbar form input[type="submit"]:hover { |
| 120 | border-color: var(--body-quiet-color); |
| 121 | } |
| 122 | |
| 123 | #changelist-search img { |
| 124 | vertical-align: middle; |
| 125 | margin-right: 4px; |
| 126 | } |
| 127 | |
| 128 | #changelist-search .help { |
| 129 | word-break: break-word; |
| 130 | } |
| 131 | |
| 132 | /* FILTER COLUMN */ |
| 133 | |
| 134 | #changelist-filter { |
| 135 | flex: 0 0 240px; |
| 136 | order: 1; |
| 137 | background: var(--darkened-bg); |
| 138 | border-left: none; |
| 139 | margin: 0 0 0 30px; |
| 140 | } |
| 141 | |
| 142 | @media (forced-colors: active) { |
| 143 | #changelist-filter { |
| 144 | border: 1px solid; |
| 145 | } |
| 146 | } |
| 147 | |
| 148 | #changelist-filter h2 { |
| 149 | font-size: 0.875rem; |
| 150 | text-transform: uppercase; |
| 151 | letter-spacing: 0.5px; |
| 152 | padding: 5px 15px; |
| 153 | margin-bottom: 12px; |
| 154 | border-bottom: none; |
| 155 | } |
| 156 | |
| 157 | #changelist-filter h3, |
| 158 | #changelist-filter details summary { |
| 159 | font-weight: 400; |
| 160 | padding: 0 15px; |
| 161 | margin-bottom: 10px; |
| 162 | } |
| 163 | |
| 164 | #changelist-filter details summary > * { |
| 165 | display: inline; |
| 166 | } |
| 167 | |
| 168 | #changelist-filter details > summary { |
| 169 | list-style-type: none; |
| 170 | } |
| 171 | |
| 172 | #changelist-filter details > summary::-webkit-details-marker { |
| 173 | display: none; |
| 174 | } |
| 175 | |
| 176 | #changelist-filter details > summary::before { |
| 177 | content: '→'; |
| 178 | font-weight: bold; |
| 179 | color: var(--link-hover-color); |
| 180 | } |
| 181 | |
| 182 | #changelist-filter details[open] > summary::before { |
| 183 | content: '↓'; |
| 184 | } |
| 185 | |
| 186 | #changelist-filter ul { |
| 187 | margin: 5px 0; |
| 188 | padding: 0 15px 15px; |
| 189 | border-bottom: 1px solid var(--hairline-color); |
| 190 | } |
| 191 | |
| 192 | #changelist-filter ul:last-child { |
| 193 | border-bottom: none; |
| 194 | } |
| 195 | |
| 196 | #changelist-filter li { |
| 197 | list-style-type: none; |
| 198 | margin-left: 0; |
| 199 | padding-left: 0; |
| 200 | } |
| 201 | |
| 202 | #changelist-filter a { |
| 203 | display: block; |
| 204 | color: var(--body-quiet-color); |
| 205 | word-break: break-word; |
| 206 | } |
| 207 | |
| 208 | #changelist-filter li.selected { |
| 209 | border-left: 5px solid var(--hairline-color); |
| 210 | padding-left: 10px; |
| 211 | margin-left: -15px; |
| 212 | } |
| 213 | |
| 214 | #changelist-filter li.selected a { |
| 215 | color: var(--link-selected-fg); |
| 216 | } |
| 217 | |
| 218 | #changelist-filter a:focus, #changelist-filter a:hover, |
| 219 | #changelist-filter li.selected a:focus, |
| 220 | #changelist-filter li.selected a:hover { |
| 221 | color: var(--link-hover-color); |
| 222 | } |
| 223 | |
| 224 | #changelist-filter #changelist-filter-extra-actions { |
| 225 | font-size: 0.8125rem; |
| 226 | margin-bottom: 10px; |
| 227 | border-bottom: 1px solid var(--hairline-color); |
| 228 | } |
| 229 | |
| 230 | /* DATE DRILLDOWN */ |
| 231 | |
| 232 | .change-list .toplinks { |
| 233 | display: flex; |
| 234 | padding-bottom: 5px; |
| 235 | flex-wrap: wrap; |
| 236 | gap: 3px 17px; |
| 237 | font-weight: bold; |
| 238 | } |
| 239 | |
| 240 | .change-list .toplinks a { |
| 241 | font-size: 0.8125rem; |
| 242 | } |
| 243 | |
| 244 | .change-list .toplinks .date-back { |
| 245 | color: var(--body-quiet-color); |
| 246 | } |
| 247 | |
| 248 | .change-list .toplinks .date-back:focus, |
| 249 | .change-list .toplinks .date-back:hover { |
| 250 | color: var(--link-hover-color); |
| 251 | } |
| 252 | |
| 253 | /* ACTIONS */ |
| 254 | |
| 255 | .filtered .actions { |
| 256 | border-right: none; |
| 257 | } |
| 258 | |
| 259 | #changelist table input { |
| 260 | margin: 0; |
| 261 | vertical-align: baseline; |
| 262 | } |
| 263 | |
| 264 | /* Once the :has() pseudo-class is supported by all browsers, the tr.selected |
| 265 | selector and the JS adding the class can be removed. */ |
| 266 | #changelist tbody tr.selected { |
| 267 | background-color: var(--selected-row); |
| 268 | } |
| 269 | |
| 270 | #changelist tbody tr:has(.action-select:checked) { |
| 271 | background-color: var(--selected-row); |
| 272 | } |
| 273 | |
| 274 | @media (forced-colors: active) { |
| 275 | #changelist tbody tr.selected { |
| 276 | background-color: SelectedItem; |
| 277 | } |
| 278 | #changelist tbody tr:has(.action-select:checked) { |
| 279 | background-color: SelectedItem; |
| 280 | } |
| 281 | } |
| 282 | |
| 283 | #changelist .actions { |
| 284 | padding: 10px; |
| 285 | background: var(--body-bg); |
| 286 | border-top: none; |
| 287 | border-bottom: none; |
| 288 | line-height: 1.5rem; |
| 289 | color: var(--body-quiet-color); |
| 290 | width: 100%; |
| 291 | } |
| 292 | |
| 293 | #changelist .actions span.all, |
| 294 | #changelist .actions span.action-counter, |
| 295 | #changelist .actions span.clear, |
| 296 | #changelist .actions span.question { |
| 297 | font-size: 0.8125rem; |
| 298 | margin: 0 0.5em; |
| 299 | } |
| 300 | |
| 301 | #changelist .actions:last-child { |
| 302 | border-bottom: none; |
| 303 | } |
| 304 | |
| 305 | #changelist .actions select { |
| 306 | vertical-align: top; |
| 307 | height: 1.5rem; |
| 308 | color: var(--body-fg); |
| 309 | border: 1px solid var(--border-color); |
| 310 | border-radius: 4px; |
| 311 | font-size: 0.875rem; |
| 312 | padding: 0 0 0 4px; |
| 313 | margin: 0; |
| 314 | margin-left: 10px; |
| 315 | } |
| 316 | |
| 317 | #changelist .actions select:focus { |
| 318 | border-color: var(--body-quiet-color); |
| 319 | } |
| 320 | |
| 321 | #changelist .actions label { |
| 322 | display: inline-block; |
| 323 | vertical-align: middle; |
| 324 | font-size: 0.8125rem; |
| 325 | } |
| 326 | |
| 327 | #changelist .actions .button { |
| 328 | font-size: 0.8125rem; |
| 329 | border: 1px solid var(--border-color); |
| 330 | border-radius: 4px; |
| 331 | background: var(--body-bg); |
| 332 | box-shadow: 0 -15px 20px -10px rgba(0, 0, 0, 0.15) inset; |
| 333 | cursor: pointer; |
| 334 | height: 1.5rem; |
| 335 | line-height: 1; |
| 336 | padding: 4px 8px; |
| 337 | margin: 0; |
| 338 | color: var(--body-fg); |
| 339 | } |
| 340 | |
| 341 | #changelist .actions .button:focus, #changelist .actions .button:hover { |
| 342 | border-color: var(--body-quiet-color); |
| 343 | } |
Binary file
| --- a/assets/admin/css/changelists.css | ||
| +++ b/assets/admin/css/changelists.css | ||
| @@ -0,0 +1,343 @@ | ||
| 1 | +/* CHANGELISTS */ | |
| 2 | + | |
| 3 | +#changelist { | |
| 4 | + display: flex; | |
| 5 | + align-items: flex-start; | |
| 6 | + justify-content: space-between; | |
| 7 | +} | |
| 8 | + | |
| 9 | +#changelist .changelist-form-container { | |
| 10 | + flex: 1 1 auto; | |
| 11 | + min-width: 0; | |
| 12 | +} | |
| 13 | + | |
| 14 | +#changelist table { | |
| 15 | + width: 100%; | |
| 16 | +} | |
| 17 | + | |
| 18 | +.change-list .hiddenfields { display:none; } | |
| 19 | + | |
| 20 | +.change-list .filtered table { | |
| 21 | + border-right: none; | |
| 22 | +} | |
| 23 | + | |
| 24 | +.change-list .filtered { | |
| 25 | + min-height: 400px; | |
| 26 | +} | |
| 27 | + | |
| 28 | +.change-list .filtered .results, .change-list .filtered .paginator, | |
| 29 | +.filtered #toolbar, .filtered div.xfull { | |
| 30 | + width: auto; | |
| 31 | +} | |
| 32 | + | |
| 33 | +.change-list .filtered table tbody th { | |
| 34 | + padding-right: 1em; | |
| 35 | +} | |
| 36 | + | |
| 37 | +#changelist-form .results { | |
| 38 | + overflow-x: auto; | |
| 39 | + width: 100%; | |
| 40 | +} | |
| 41 | + | |
| 42 | +#changelist .toplinks { | |
| 43 | + border-bottom: 1px solid var(--hairline-color); | |
| 44 | +} | |
| 45 | + | |
| 46 | +#changelist .paginator { | |
| 47 | + color: var(--body-quiet-color); | |
| 48 | + border-bottom: 1px solid var(--hairline-color); | |
| 49 | + background: var(--body-bg); | |
| 50 | + overflow: hidden; | |
| 51 | +} | |
| 52 | + | |
| 53 | +/* CHANGELIST TABLES */ | |
| 54 | + | |
| 55 | +#changelist table thead th { | |
| 56 | + padding: 0; | |
| 57 | + white-space: nowrap; | |
| 58 | + vertical-align: middle; | |
| 59 | +} | |
| 60 | + | |
| 61 | +#changelist table thead th.action-checkbox-column { | |
| 62 | + width: 1.5em; | |
| 63 | + text-align: center; | |
| 64 | +} | |
| 65 | + | |
| 66 | +#changelist table tbody td.action-checkbox { | |
| 67 | + text-align: center; | |
| 68 | +} | |
| 69 | + | |
| 70 | +#changelist table tfoot { | |
| 71 | + color: var(--body-quiet-color); | |
| 72 | +} | |
| 73 | + | |
| 74 | +/* TOOLBAR */ | |
| 75 | + | |
| 76 | +#toolbar { | |
| 77 | + padding: 8px 10px; | |
| 78 | + margin-bottom: 15px; | |
| 79 | + border-top: 1px solid var(--hairline-color); | |
| 80 | + border-bottom: 1px solid var(--hairline-color); | |
| 81 | + background: var(--darkened-bg); | |
| 82 | + color: var(--body-quiet-color); | |
| 83 | +} | |
| 84 | + | |
| 85 | +#toolbar form input { | |
| 86 | + border-radius: 4px; | |
| 87 | + font-size: 0.875rem; | |
| 88 | + padding: 5px; | |
| 89 | + color: var(--body-fg); | |
| 90 | +} | |
| 91 | + | |
| 92 | +#toolbar #searchbar { | |
| 93 | + height: 1.1875rem; | |
| 94 | + border: 1px solid var(--border-color); | |
| 95 | + padding: 2px 5px; | |
| 96 | + margin: 0; | |
| 97 | + vertical-align: top; | |
| 98 | + font-size: 0.8125rem; | |
| 99 | + max-width: 100%; | |
| 100 | +} | |
| 101 | + | |
| 102 | +#toolbar #searchbar:focus { | |
| 103 | + border-color: var(--body-quiet-color); | |
| 104 | +} | |
| 105 | + | |
| 106 | +#toolbar form input[type="submit"] { | |
| 107 | + border: 1px solid var(--border-color); | |
| 108 | + font-size: 0.8125rem; | |
| 109 | + padding: 4px 8px; | |
| 110 | + margin: 0; | |
| 111 | + vertical-align: middle; | |
| 112 | + background: var(--body-bg); | |
| 113 | + box-shadow: 0 -15px 20px -10px rgba(0, 0, 0, 0.15) inset; | |
| 114 | + cursor: pointer; | |
| 115 | + color: var(--body-fg); | |
| 116 | +} | |
| 117 | + | |
| 118 | +#toolbar form input[type="submit"]:focus, | |
| 119 | +#toolbar form input[type="submit"]:hover { | |
| 120 | + border-color: var(--body-quiet-color); | |
| 121 | +} | |
| 122 | + | |
| 123 | +#changelist-search img { | |
| 124 | + vertical-align: middle; | |
| 125 | + margin-right: 4px; | |
| 126 | +} | |
| 127 | + | |
| 128 | +#changelist-search .help { | |
| 129 | + word-break: break-word; | |
| 130 | +} | |
| 131 | + | |
| 132 | +/* FILTER COLUMN */ | |
| 133 | + | |
| 134 | +#changelist-filter { | |
| 135 | + flex: 0 0 240px; | |
| 136 | + order: 1; | |
| 137 | + background: var(--darkened-bg); | |
| 138 | + border-left: none; | |
| 139 | + margin: 0 0 0 30px; | |
| 140 | +} | |
| 141 | + | |
| 142 | +@media (forced-colors: active) { | |
| 143 | + #changelist-filter { | |
| 144 | + border: 1px solid; | |
| 145 | + } | |
| 146 | +} | |
| 147 | + | |
| 148 | +#changelist-filter h2 { | |
| 149 | + font-size: 0.875rem; | |
| 150 | + text-transform: uppercase; | |
| 151 | + letter-spacing: 0.5px; | |
| 152 | + padding: 5px 15px; | |
| 153 | + margin-bottom: 12px; | |
| 154 | + border-bottom: none; | |
| 155 | +} | |
| 156 | + | |
| 157 | +#changelist-filter h3, | |
| 158 | +#changelist-filter details summary { | |
| 159 | + font-weight: 400; | |
| 160 | + padding: 0 15px; | |
| 161 | + margin-bottom: 10px; | |
| 162 | +} | |
| 163 | + | |
| 164 | +#changelist-filter details summary > * { | |
| 165 | + display: inline; | |
| 166 | +} | |
| 167 | + | |
| 168 | +#changelist-filter details > summary { | |
| 169 | + list-style-type: none; | |
| 170 | +} | |
| 171 | + | |
| 172 | +#changelist-filter details > summary::-webkit-details-marker { | |
| 173 | + display: none; | |
| 174 | +} | |
| 175 | + | |
| 176 | +#changelist-filter details > summary::before { | |
| 177 | + content: '→'; | |
| 178 | + font-weight: bold; | |
| 179 | + color: var(--link-hover-color); | |
| 180 | +} | |
| 181 | + | |
| 182 | +#changelist-filter details[open] > summary::before { | |
| 183 | + content: '↓'; | |
| 184 | +} | |
| 185 | + | |
| 186 | +#changelist-filter ul { | |
| 187 | + margin: 5px 0; | |
| 188 | + padding: 0 15px 15px; | |
| 189 | + border-bottom: 1px solid var(--hairline-color); | |
| 190 | +} | |
| 191 | + | |
| 192 | +#changelist-filter ul:last-child { | |
| 193 | + border-bottom: none; | |
| 194 | +} | |
| 195 | + | |
| 196 | +#changelist-filter li { | |
| 197 | + list-style-type: none; | |
| 198 | + margin-left: 0; | |
| 199 | + padding-left: 0; | |
| 200 | +} | |
| 201 | + | |
| 202 | +#changelist-filter a { | |
| 203 | + display: block; | |
| 204 | + color: var(--body-quiet-color); | |
| 205 | + word-break: break-word; | |
| 206 | +} | |
| 207 | + | |
| 208 | +#changelist-filter li.selected { | |
| 209 | + border-left: 5px solid var(--hairline-color); | |
| 210 | + padding-left: 10px; | |
| 211 | + margin-left: -15px; | |
| 212 | +} | |
| 213 | + | |
| 214 | +#changelist-filter li.selected a { | |
| 215 | + color: var(--link-selected-fg); | |
| 216 | +} | |
| 217 | + | |
| 218 | +#changelist-filter a:focus, #changelist-filter a:hover, | |
| 219 | +#changelist-filter li.selected a:focus, | |
| 220 | +#changelist-filter li.selected a:hover { | |
| 221 | + color: var(--link-hover-color); | |
| 222 | +} | |
| 223 | + | |
| 224 | +#changelist-filter #changelist-filter-extra-actions { | |
| 225 | + font-size: 0.8125rem; | |
| 226 | + margin-bottom: 10px; | |
| 227 | + border-bottom: 1px solid var(--hairline-color); | |
| 228 | +} | |
| 229 | + | |
| 230 | +/* DATE DRILLDOWN */ | |
| 231 | + | |
| 232 | +.change-list .toplinks { | |
| 233 | + display: flex; | |
| 234 | + padding-bottom: 5px; | |
| 235 | + flex-wrap: wrap; | |
| 236 | + gap: 3px 17px; | |
| 237 | + font-weight: bold; | |
| 238 | +} | |
| 239 | + | |
| 240 | +.change-list .toplinks a { | |
| 241 | + font-size: 0.8125rem; | |
| 242 | +} | |
| 243 | + | |
| 244 | +.change-list .toplinks .date-back { | |
| 245 | + color: var(--body-quiet-color); | |
| 246 | +} | |
| 247 | + | |
| 248 | +.change-list .toplinks .date-back:focus, | |
| 249 | +.change-list .toplinks .date-back:hover { | |
| 250 | + color: var(--link-hover-color); | |
| 251 | +} | |
| 252 | + | |
| 253 | +/* ACTIONS */ | |
| 254 | + | |
| 255 | +.filtered .actions { | |
| 256 | + border-right: none; | |
| 257 | +} | |
| 258 | + | |
| 259 | +#changelist table input { | |
| 260 | + margin: 0; | |
| 261 | + vertical-align: baseline; | |
| 262 | +} | |
| 263 | + | |
| 264 | +/* Once the :has() pseudo-class is supported by all browsers, the tr.selected | |
| 265 | + selector and the JS adding the class can be removed. */ | |
| 266 | +#changelist tbody tr.selected { | |
| 267 | + background-color: var(--selected-row); | |
| 268 | +} | |
| 269 | + | |
| 270 | +#changelist tbody tr:has(.action-select:checked) { | |
| 271 | + background-color: var(--selected-row); | |
| 272 | +} | |
| 273 | + | |
| 274 | +@media (forced-colors: active) { | |
| 275 | + #changelist tbody tr.selected { | |
| 276 | + background-color: SelectedItem; | |
| 277 | + } | |
| 278 | + #changelist tbody tr:has(.action-select:checked) { | |
| 279 | + background-color: SelectedItem; | |
| 280 | + } | |
| 281 | +} | |
| 282 | + | |
| 283 | +#changelist .actions { | |
| 284 | + padding: 10px; | |
| 285 | + background: var(--body-bg); | |
| 286 | + border-top: none; | |
| 287 | + border-bottom: none; | |
| 288 | + line-height: 1.5rem; | |
| 289 | + color: var(--body-quiet-color); | |
| 290 | + width: 100%; | |
| 291 | +} | |
| 292 | + | |
| 293 | +#changelist .actions span.all, | |
| 294 | +#changelist .actions span.action-counter, | |
| 295 | +#changelist .actions span.clear, | |
| 296 | +#changelist .actions span.question { | |
| 297 | + font-size: 0.8125rem; | |
| 298 | + margin: 0 0.5em; | |
| 299 | +} | |
| 300 | + | |
| 301 | +#changelist .actions:last-child { | |
| 302 | + border-bottom: none; | |
| 303 | +} | |
| 304 | + | |
| 305 | +#changelist .actions select { | |
| 306 | + vertical-align: top; | |
| 307 | + height: 1.5rem; | |
| 308 | + color: var(--body-fg); | |
| 309 | + border: 1px solid var(--border-color); | |
| 310 | + border-radius: 4px; | |
| 311 | + font-size: 0.875rem; | |
| 312 | + padding: 0 0 0 4px; | |
| 313 | + margin: 0; | |
| 314 | + margin-left: 10px; | |
| 315 | +} | |
| 316 | + | |
| 317 | +#changelist .actions select:focus { | |
| 318 | + border-color: var(--body-quiet-color); | |
| 319 | +} | |
| 320 | + | |
| 321 | +#changelist .actions label { | |
| 322 | + display: inline-block; | |
| 323 | + vertical-align: middle; | |
| 324 | + font-size: 0.8125rem; | |
| 325 | +} | |
| 326 | + | |
| 327 | +#changelist .actions .button { | |
| 328 | + font-size: 0.8125rem; | |
| 329 | + border: 1px solid var(--border-color); | |
| 330 | + border-radius: 4px; | |
| 331 | + background: var(--body-bg); | |
| 332 | + box-shadow: 0 -15px 20px -10px rgba(0, 0, 0, 0.15) inset; | |
| 333 | + cursor: pointer; | |
| 334 | + height: 1.5rem; | |
| 335 | + line-height: 1; | |
| 336 | + padding: 4px 8px; | |
| 337 | + margin: 0; | |
| 338 | + color: var(--body-fg); | |
| 339 | +} | |
| 340 | + | |
| 341 | +#changelist .actions .button:focus, #changelist .actions .button:hover { | |
| 342 | + border-color: var(--body-quiet-color); | |
| 343 | +} |
| --- a/assets/admin/css/changelists.css | |
| +++ b/assets/admin/css/changelists.css | |
| @@ -0,0 +1,343 @@ | |
| --- a/assets/admin/css/changelists.css | |
| +++ b/assets/admin/css/changelists.css | |
| @@ -0,0 +1,343 @@ | |
| 1 | /* CHANGELISTS */ |
| 2 | |
| 3 | #changelist { |
| 4 | display: flex; |
| 5 | align-items: flex-start; |
| 6 | justify-content: space-between; |
| 7 | } |
| 8 | |
| 9 | #changelist .changelist-form-container { |
| 10 | flex: 1 1 auto; |
| 11 | min-width: 0; |
| 12 | } |
| 13 | |
| 14 | #changelist table { |
| 15 | width: 100%; |
| 16 | } |
| 17 | |
| 18 | .change-list .hiddenfields { display:none; } |
| 19 | |
| 20 | .change-list .filtered table { |
| 21 | border-right: none; |
| 22 | } |
| 23 | |
| 24 | .change-list .filtered { |
| 25 | min-height: 400px; |
| 26 | } |
| 27 | |
| 28 | .change-list .filtered .results, .change-list .filtered .paginator, |
| 29 | .filtered #toolbar, .filtered div.xfull { |
| 30 | width: auto; |
| 31 | } |
| 32 | |
| 33 | .change-list .filtered table tbody th { |
| 34 | padding-right: 1em; |
| 35 | } |
| 36 | |
| 37 | #changelist-form .results { |
| 38 | overflow-x: auto; |
| 39 | width: 100%; |
| 40 | } |
| 41 | |
| 42 | #changelist .toplinks { |
| 43 | border-bottom: 1px solid var(--hairline-color); |
| 44 | } |
| 45 | |
| 46 | #changelist .paginator { |
| 47 | color: var(--body-quiet-color); |
| 48 | border-bottom: 1px solid var(--hairline-color); |
| 49 | background: var(--body-bg); |
| 50 | overflow: hidden; |
| 51 | } |
| 52 | |
| 53 | /* CHANGELIST TABLES */ |
| 54 | |
| 55 | #changelist table thead th { |
| 56 | padding: 0; |
| 57 | white-space: nowrap; |
| 58 | vertical-align: middle; |
| 59 | } |
| 60 | |
| 61 | #changelist table thead th.action-checkbox-column { |
| 62 | width: 1.5em; |
| 63 | text-align: center; |
| 64 | } |
| 65 | |
| 66 | #changelist table tbody td.action-checkbox { |
| 67 | text-align: center; |
| 68 | } |
| 69 | |
| 70 | #changelist table tfoot { |
| 71 | color: var(--body-quiet-color); |
| 72 | } |
| 73 | |
| 74 | /* TOOLBAR */ |
| 75 | |
| 76 | #toolbar { |
| 77 | padding: 8px 10px; |
| 78 | margin-bottom: 15px; |
| 79 | border-top: 1px solid var(--hairline-color); |
| 80 | border-bottom: 1px solid var(--hairline-color); |
| 81 | background: var(--darkened-bg); |
| 82 | color: var(--body-quiet-color); |
| 83 | } |
| 84 | |
| 85 | #toolbar form input { |
| 86 | border-radius: 4px; |
| 87 | font-size: 0.875rem; |
| 88 | padding: 5px; |
| 89 | color: var(--body-fg); |
| 90 | } |
| 91 | |
| 92 | #toolbar #searchbar { |
| 93 | height: 1.1875rem; |
| 94 | border: 1px solid var(--border-color); |
| 95 | padding: 2px 5px; |
| 96 | margin: 0; |
| 97 | vertical-align: top; |
| 98 | font-size: 0.8125rem; |
| 99 | max-width: 100%; |
| 100 | } |
| 101 | |
| 102 | #toolbar #searchbar:focus { |
| 103 | border-color: var(--body-quiet-color); |
| 104 | } |
| 105 | |
| 106 | #toolbar form input[type="submit"] { |
| 107 | border: 1px solid var(--border-color); |
| 108 | font-size: 0.8125rem; |
| 109 | padding: 4px 8px; |
| 110 | margin: 0; |
| 111 | vertical-align: middle; |
| 112 | background: var(--body-bg); |
| 113 | box-shadow: 0 -15px 20px -10px rgba(0, 0, 0, 0.15) inset; |
| 114 | cursor: pointer; |
| 115 | color: var(--body-fg); |
| 116 | } |
| 117 | |
| 118 | #toolbar form input[type="submit"]:focus, |
| 119 | #toolbar form input[type="submit"]:hover { |
| 120 | border-color: var(--body-quiet-color); |
| 121 | } |
| 122 | |
| 123 | #changelist-search img { |
| 124 | vertical-align: middle; |
| 125 | margin-right: 4px; |
| 126 | } |
| 127 | |
| 128 | #changelist-search .help { |
| 129 | word-break: break-word; |
| 130 | } |
| 131 | |
| 132 | /* FILTER COLUMN */ |
| 133 | |
| 134 | #changelist-filter { |
| 135 | flex: 0 0 240px; |
| 136 | order: 1; |
| 137 | background: var(--darkened-bg); |
| 138 | border-left: none; |
| 139 | margin: 0 0 0 30px; |
| 140 | } |
| 141 | |
| 142 | @media (forced-colors: active) { |
| 143 | #changelist-filter { |
| 144 | border: 1px solid; |
| 145 | } |
| 146 | } |
| 147 | |
| 148 | #changelist-filter h2 { |
| 149 | font-size: 0.875rem; |
| 150 | text-transform: uppercase; |
| 151 | letter-spacing: 0.5px; |
| 152 | padding: 5px 15px; |
| 153 | margin-bottom: 12px; |
| 154 | border-bottom: none; |
| 155 | } |
| 156 | |
| 157 | #changelist-filter h3, |
| 158 | #changelist-filter details summary { |
| 159 | font-weight: 400; |
| 160 | padding: 0 15px; |
| 161 | margin-bottom: 10px; |
| 162 | } |
| 163 | |
| 164 | #changelist-filter details summary > * { |
| 165 | display: inline; |
| 166 | } |
| 167 | |
| 168 | #changelist-filter details > summary { |
| 169 | list-style-type: none; |
| 170 | } |
| 171 | |
| 172 | #changelist-filter details > summary::-webkit-details-marker { |
| 173 | display: none; |
| 174 | } |
| 175 | |
| 176 | #changelist-filter details > summary::before { |
| 177 | content: '→'; |
| 178 | font-weight: bold; |
| 179 | color: var(--link-hover-color); |
| 180 | } |
| 181 | |
| 182 | #changelist-filter details[open] > summary::before { |
| 183 | content: '↓'; |
| 184 | } |
| 185 | |
| 186 | #changelist-filter ul { |
| 187 | margin: 5px 0; |
| 188 | padding: 0 15px 15px; |
| 189 | border-bottom: 1px solid var(--hairline-color); |
| 190 | } |
| 191 | |
| 192 | #changelist-filter ul:last-child { |
| 193 | border-bottom: none; |
| 194 | } |
| 195 | |
| 196 | #changelist-filter li { |
| 197 | list-style-type: none; |
| 198 | margin-left: 0; |
| 199 | padding-left: 0; |
| 200 | } |
| 201 | |
| 202 | #changelist-filter a { |
| 203 | display: block; |
| 204 | color: var(--body-quiet-color); |
| 205 | word-break: break-word; |
| 206 | } |
| 207 | |
| 208 | #changelist-filter li.selected { |
| 209 | border-left: 5px solid var(--hairline-color); |
| 210 | padding-left: 10px; |
| 211 | margin-left: -15px; |
| 212 | } |
| 213 | |
| 214 | #changelist-filter li.selected a { |
| 215 | color: var(--link-selected-fg); |
| 216 | } |
| 217 | |
| 218 | #changelist-filter a:focus, #changelist-filter a:hover, |
| 219 | #changelist-filter li.selected a:focus, |
| 220 | #changelist-filter li.selected a:hover { |
| 221 | color: var(--link-hover-color); |
| 222 | } |
| 223 | |
| 224 | #changelist-filter #changelist-filter-extra-actions { |
| 225 | font-size: 0.8125rem; |
| 226 | margin-bottom: 10px; |
| 227 | border-bottom: 1px solid var(--hairline-color); |
| 228 | } |
| 229 | |
| 230 | /* DATE DRILLDOWN */ |
| 231 | |
| 232 | .change-list .toplinks { |
| 233 | display: flex; |
| 234 | padding-bottom: 5px; |
| 235 | flex-wrap: wrap; |
| 236 | gap: 3px 17px; |
| 237 | font-weight: bold; |
| 238 | } |
| 239 | |
| 240 | .change-list .toplinks a { |
| 241 | font-size: 0.8125rem; |
| 242 | } |
| 243 | |
| 244 | .change-list .toplinks .date-back { |
| 245 | color: var(--body-quiet-color); |
| 246 | } |
| 247 | |
| 248 | .change-list .toplinks .date-back:focus, |
| 249 | .change-list .toplinks .date-back:hover { |
| 250 | color: var(--link-hover-color); |
| 251 | } |
| 252 | |
| 253 | /* ACTIONS */ |
| 254 | |
| 255 | .filtered .actions { |
| 256 | border-right: none; |
| 257 | } |
| 258 | |
| 259 | #changelist table input { |
| 260 | margin: 0; |
| 261 | vertical-align: baseline; |
| 262 | } |
| 263 | |
| 264 | /* Once the :has() pseudo-class is supported by all browsers, the tr.selected |
| 265 | selector and the JS adding the class can be removed. */ |
| 266 | #changelist tbody tr.selected { |
| 267 | background-color: var(--selected-row); |
| 268 | } |
| 269 | |
| 270 | #changelist tbody tr:has(.action-select:checked) { |
| 271 | background-color: var(--selected-row); |
| 272 | } |
| 273 | |
| 274 | @media (forced-colors: active) { |
| 275 | #changelist tbody tr.selected { |
| 276 | background-color: SelectedItem; |
| 277 | } |
| 278 | #changelist tbody tr:has(.action-select:checked) { |
| 279 | background-color: SelectedItem; |
| 280 | } |
| 281 | } |
| 282 | |
| 283 | #changelist .actions { |
| 284 | padding: 10px; |
| 285 | background: var(--body-bg); |
| 286 | border-top: none; |
| 287 | border-bottom: none; |
| 288 | line-height: 1.5rem; |
| 289 | color: var(--body-quiet-color); |
| 290 | width: 100%; |
| 291 | } |
| 292 | |
| 293 | #changelist .actions span.all, |
| 294 | #changelist .actions span.action-counter, |
| 295 | #changelist .actions span.clear, |
| 296 | #changelist .actions span.question { |
| 297 | font-size: 0.8125rem; |
| 298 | margin: 0 0.5em; |
| 299 | } |
| 300 | |
| 301 | #changelist .actions:last-child { |
| 302 | border-bottom: none; |
| 303 | } |
| 304 | |
| 305 | #changelist .actions select { |
| 306 | vertical-align: top; |
| 307 | height: 1.5rem; |
| 308 | color: var(--body-fg); |
| 309 | border: 1px solid var(--border-color); |
| 310 | border-radius: 4px; |
| 311 | font-size: 0.875rem; |
| 312 | padding: 0 0 0 4px; |
| 313 | margin: 0; |
| 314 | margin-left: 10px; |
| 315 | } |
| 316 | |
| 317 | #changelist .actions select:focus { |
| 318 | border-color: var(--body-quiet-color); |
| 319 | } |
| 320 | |
| 321 | #changelist .actions label { |
| 322 | display: inline-block; |
| 323 | vertical-align: middle; |
| 324 | font-size: 0.8125rem; |
| 325 | } |
| 326 | |
| 327 | #changelist .actions .button { |
| 328 | font-size: 0.8125rem; |
| 329 | border: 1px solid var(--border-color); |
| 330 | border-radius: 4px; |
| 331 | background: var(--body-bg); |
| 332 | box-shadow: 0 -15px 20px -10px rgba(0, 0, 0, 0.15) inset; |
| 333 | cursor: pointer; |
| 334 | height: 1.5rem; |
| 335 | line-height: 1; |
| 336 | padding: 4px 8px; |
| 337 | margin: 0; |
| 338 | color: var(--body-fg); |
| 339 | } |
| 340 | |
| 341 | #changelist .actions .button:focus, #changelist .actions .button:hover { |
| 342 | border-color: var(--body-quiet-color); |
| 343 | } |
Binary file
| --- a/assets/admin/css/constance.9180b990baa4.css | ||
| +++ b/assets/admin/css/constance.9180b990baa4.css | ||
| @@ -0,0 +1,34 @@ | ||
| 1 | +#result_list .changed { | |
| 2 | + background-color: #ffc; | |
| 3 | +} | |
| 4 | +#changelist table thead th .text { | |
| 5 | + padding: 2px 5px; | |
| 6 | +} | |
| 7 | +#changelist table tbody td:first-child { | |
| 8 | + text-align: left; | |
| 9 | +} | |
| 10 | +#changelist-form ul.errorlist { | |
| 11 | + margin: 0 !important; | |
| 12 | +} | |
| 13 | +.help { | |
| 14 | + font-weight: normal !important; | |
| 15 | +} | |
| 16 | +#results { | |
| 17 | + overflow-x: auto; | |
| 18 | +} | |
| 19 | +.item-anchor { | |
| 20 | + visibility: hidden; | |
| 21 | + margin-left: .1em; | |
| 22 | +} | |
| 23 | +.item-name { | |
| 24 | + white-space: nowrap; | |
| 25 | +} | |
| 26 | +.item-name:hover .item-anchor { | |
| 27 | + visibility: visible; | |
| 28 | +} | |
| 29 | +.sticky-footer { | |
| 30 | + position: sticky; | |
| 31 | + width: 100%; | |
| 32 | + left: 0; | |
| 33 | + bottom: 0; | |
| 34 | +} |
| --- a/assets/admin/css/constance.9180b990baa4.css | |
| +++ b/assets/admin/css/constance.9180b990baa4.css | |
| @@ -0,0 +1,34 @@ | |
| --- a/assets/admin/css/constance.9180b990baa4.css | |
| +++ b/assets/admin/css/constance.9180b990baa4.css | |
| @@ -0,0 +1,34 @@ | |
| 1 | #result_list .changed { |
| 2 | background-color: #ffc; |
| 3 | } |
| 4 | #changelist table thead th .text { |
| 5 | padding: 2px 5px; |
| 6 | } |
| 7 | #changelist table tbody td:first-child { |
| 8 | text-align: left; |
| 9 | } |
| 10 | #changelist-form ul.errorlist { |
| 11 | margin: 0 !important; |
| 12 | } |
| 13 | .help { |
| 14 | font-weight: normal !important; |
| 15 | } |
| 16 | #results { |
| 17 | overflow-x: auto; |
| 18 | } |
| 19 | .item-anchor { |
| 20 | visibility: hidden; |
| 21 | margin-left: .1em; |
| 22 | } |
| 23 | .item-name { |
| 24 | white-space: nowrap; |
| 25 | } |
| 26 | .item-name:hover .item-anchor { |
| 27 | visibility: visible; |
| 28 | } |
| 29 | .sticky-footer { |
| 30 | position: sticky; |
| 31 | width: 100%; |
| 32 | left: 0; |
| 33 | bottom: 0; |
| 34 | } |
Binary file
| --- a/assets/admin/css/constance.css | ||
| +++ b/assets/admin/css/constance.css | ||
| @@ -0,0 +1,34 @@ | ||
| 1 | +#result_list .changed { | |
| 2 | + background-color: #ffc; | |
| 3 | +} | |
| 4 | +#changelist table thead th .text { | |
| 5 | + padding: 2px 5px; | |
| 6 | +} | |
| 7 | +#changelist table tbody td:first-child { | |
| 8 | + text-align: left; | |
| 9 | +} | |
| 10 | +#changelist-form ul.errorlist { | |
| 11 | + margin: 0 !important; | |
| 12 | +} | |
| 13 | +.help { | |
| 14 | + font-weight: normal !important; | |
| 15 | +} | |
| 16 | +#results { | |
| 17 | + overflow-x: auto; | |
| 18 | +} | |
| 19 | +.item-anchor { | |
| 20 | + visibility: hidden; | |
| 21 | + margin-left: .1em; | |
| 22 | +} | |
| 23 | +.item-name { | |
| 24 | + white-space: nowrap; | |
| 25 | +} | |
| 26 | +.item-name:hover .item-anchor { | |
| 27 | + visibility: visible; | |
| 28 | +} | |
| 29 | +.sticky-footer { | |
| 30 | + position: sticky; | |
| 31 | + width: 100%; | |
| 32 | + left: 0; | |
| 33 | + bottom: 0; | |
| 34 | +} |
| --- a/assets/admin/css/constance.css | |
| +++ b/assets/admin/css/constance.css | |
| @@ -0,0 +1,34 @@ | |
| --- a/assets/admin/css/constance.css | |
| +++ b/assets/admin/css/constance.css | |
| @@ -0,0 +1,34 @@ | |
| 1 | #result_list .changed { |
| 2 | background-color: #ffc; |
| 3 | } |
| 4 | #changelist table thead th .text { |
| 5 | padding: 2px 5px; |
| 6 | } |
| 7 | #changelist table tbody td:first-child { |
| 8 | text-align: left; |
| 9 | } |
| 10 | #changelist-form ul.errorlist { |
| 11 | margin: 0 !important; |
| 12 | } |
| 13 | .help { |
| 14 | font-weight: normal !important; |
| 15 | } |
| 16 | #results { |
| 17 | overflow-x: auto; |
| 18 | } |
| 19 | .item-anchor { |
| 20 | visibility: hidden; |
| 21 | margin-left: .1em; |
| 22 | } |
| 23 | .item-name { |
| 24 | white-space: nowrap; |
| 25 | } |
| 26 | .item-name:hover .item-anchor { |
| 27 | visibility: visible; |
| 28 | } |
| 29 | .sticky-footer { |
| 30 | position: sticky; |
| 31 | width: 100%; |
| 32 | left: 0; |
| 33 | bottom: 0; |
| 34 | } |
Binary file
| --- a/assets/admin/css/dark_mode.1215cee25eaa.css | ||
| +++ b/assets/admin/css/dark_mode.1215cee25eaa.css | ||
| @@ -0,0 +1,130 @@ | ||
| 1 | +@media (prefers-color-scheme: dark) { | |
| 2 | + :root { | |
| 3 | + --primary: #264b5d; | |
| 4 | + --primary-fg: #f7f7f7; | |
| 5 | + | |
| 6 | + --body-fg: #eeeeee; | |
| 7 | + --body-bg: #121212; | |
| 8 | + --body-quiet-color: #d0d0d0; | |
| 9 | + --body-medium-color: #e0e0e0; | |
| 10 | + --body-loud-color: #ffffff; | |
| 11 | + | |
| 12 | + --breadcrumbs-link-fg: #e0e0e0; | |
| 13 | + --breadcrumbs-bg: var(--primary); | |
| 14 | + | |
| 15 | + --link-fg: #81d4fa; | |
| 16 | + --link-hover-color: #4ac1f7; | |
| 17 | + --link-selected-fg: #6f94c6; | |
| 18 | + | |
| 19 | + --hairline-color: #272727; | |
| 20 | + --border-color: #353535; | |
| 21 | + | |
| 22 | + --error-fg: #e35f5f; | |
| 23 | + --message-success-bg: #006b1b; | |
| 24 | + --message-warning-bg: #583305; | |
| 25 | + --message-error-bg: #570808; | |
| 26 | + | |
| 27 | + --darkened-bg: #212121; | |
| 28 | + --selected-bg: #1b1b1b; | |
| 29 | + --selected-row: #00363a; | |
| 30 | + | |
| 31 | + --close-button-bg: #333333; | |
| 32 | + --close-button-hover-bg: #666666; | |
| 33 | + | |
| 34 | + color-scheme: dark; | |
| 35 | + } | |
| 36 | + } | |
| 37 | + | |
| 38 | + | |
| 39 | +html[data-theme="dark"] { | |
| 40 | + --primary: #264b5d; | |
| 41 | + --primary-fg: #f7f7f7; | |
| 42 | + | |
| 43 | + --body-fg: #eeeeee; | |
| 44 | + --body-bg: #121212; | |
| 45 | + --body-quiet-color: #d0d0d0; | |
| 46 | + --body-medium-color: #e0e0e0; | |
| 47 | + --body-loud-color: #ffffff; | |
| 48 | + | |
| 49 | + --breadcrumbs-link-fg: #e0e0e0; | |
| 50 | + --breadcrumbs-bg: var(--primary); | |
| 51 | + | |
| 52 | + --link-fg: #81d4fa; | |
| 53 | + --link-hover-color: #4ac1f7; | |
| 54 | + --link-selected-fg: #6f94c6; | |
| 55 | + | |
| 56 | + --hairline-color: #272727; | |
| 57 | + --border-color: #353535; | |
| 58 | + | |
| 59 | + --error-fg: #e35f5f; | |
| 60 | + --message-success-bg: #006b1b; | |
| 61 | + --message-warning-bg: #583305; | |
| 62 | + --message-error-bg: #570808; | |
| 63 | + | |
| 64 | + --darkened-bg: #212121; | |
| 65 | + --selected-bg: #1b1b1b; | |
| 66 | + --selected-row: #00363a; | |
| 67 | + | |
| 68 | + --close-button-bg: #333333; | |
| 69 | + --close-button-hover-bg: #666666; | |
| 70 | + | |
| 71 | + color-scheme: dark; | |
| 72 | +} | |
| 73 | + | |
| 74 | +/* THEME SWITCH */ | |
| 75 | +.theme-toggle { | |
| 76 | + cursor: pointer; | |
| 77 | + border: none; | |
| 78 | + padding: 0; | |
| 79 | + background: transparent; | |
| 80 | + vertical-align: middle; | |
| 81 | + margin-inline-start: 5px; | |
| 82 | + margin-top: -1px; | |
| 83 | +} | |
| 84 | + | |
| 85 | +.theme-toggle svg { | |
| 86 | + vertical-align: middle; | |
| 87 | + height: 1.5rem; | |
| 88 | + width: 1.5rem; | |
| 89 | + display: none; | |
| 90 | +} | |
| 91 | + | |
| 92 | +/* | |
| 93 | +Fully hide screen reader text so we only show the one matching the current | |
| 94 | +theme. | |
| 95 | +*/ | |
| 96 | +.theme-toggle .visually-hidden { | |
| 97 | + display: none; | |
| 98 | +} | |
| 99 | + | |
| 100 | +html[data-theme="auto"] .theme-toggle .theme-label-when-auto { | |
| 101 | + display: block; | |
| 102 | +} | |
| 103 | + | |
| 104 | +html[data-theme="dark"] .theme-toggle .theme-label-when-dark { | |
| 105 | + display: block; | |
| 106 | +} | |
| 107 | + | |
| 108 | +html[data-theme="light"] .theme-toggle .theme-label-when-light { | |
| 109 | + display: block; | |
| 110 | +} | |
| 111 | + | |
| 112 | +/* ICONS */ | |
| 113 | +.theme-toggle svg.theme-icon-when-auto, | |
| 114 | +.theme-toggle svg.theme-icon-when-dark, | |
| 115 | +.theme-toggle svg.theme-icon-when-light { | |
| 116 | + fill: var(--header-link-color); | |
| 117 | + color: var(--header-bg); | |
| 118 | +} | |
| 119 | + | |
| 120 | +html[data-theme="auto"] .theme-toggle svg.theme-icon-when-auto { | |
| 121 | + display: block; | |
| 122 | +} | |
| 123 | + | |
| 124 | +html[data-theme="dark"] .theme-toggle svg.theme-icon-when-dark { | |
| 125 | + display: block; | |
| 126 | +} | |
| 127 | + | |
| 128 | +html[data-theme="light"] .theme-toggle svg.theme-icon-when-light { | |
| 129 | + display: block; | |
| 130 | +} |
| --- a/assets/admin/css/dark_mode.1215cee25eaa.css | |
| +++ b/assets/admin/css/dark_mode.1215cee25eaa.css | |
| @@ -0,0 +1,130 @@ | |
| --- a/assets/admin/css/dark_mode.1215cee25eaa.css | |
| +++ b/assets/admin/css/dark_mode.1215cee25eaa.css | |
| @@ -0,0 +1,130 @@ | |
| 1 | @media (prefers-color-scheme: dark) { |
| 2 | :root { |
| 3 | --primary: #264b5d; |
| 4 | --primary-fg: #f7f7f7; |
| 5 | |
| 6 | --body-fg: #eeeeee; |
| 7 | --body-bg: #121212; |
| 8 | --body-quiet-color: #d0d0d0; |
| 9 | --body-medium-color: #e0e0e0; |
| 10 | --body-loud-color: #ffffff; |
| 11 | |
| 12 | --breadcrumbs-link-fg: #e0e0e0; |
| 13 | --breadcrumbs-bg: var(--primary); |
| 14 | |
| 15 | --link-fg: #81d4fa; |
| 16 | --link-hover-color: #4ac1f7; |
| 17 | --link-selected-fg: #6f94c6; |
| 18 | |
| 19 | --hairline-color: #272727; |
| 20 | --border-color: #353535; |
| 21 | |
| 22 | --error-fg: #e35f5f; |
| 23 | --message-success-bg: #006b1b; |
| 24 | --message-warning-bg: #583305; |
| 25 | --message-error-bg: #570808; |
| 26 | |
| 27 | --darkened-bg: #212121; |
| 28 | --selected-bg: #1b1b1b; |
| 29 | --selected-row: #00363a; |
| 30 | |
| 31 | --close-button-bg: #333333; |
| 32 | --close-button-hover-bg: #666666; |
| 33 | |
| 34 | color-scheme: dark; |
| 35 | } |
| 36 | } |
| 37 | |
| 38 | |
| 39 | html[data-theme="dark"] { |
| 40 | --primary: #264b5d; |
| 41 | --primary-fg: #f7f7f7; |
| 42 | |
| 43 | --body-fg: #eeeeee; |
| 44 | --body-bg: #121212; |
| 45 | --body-quiet-color: #d0d0d0; |
| 46 | --body-medium-color: #e0e0e0; |
| 47 | --body-loud-color: #ffffff; |
| 48 | |
| 49 | --breadcrumbs-link-fg: #e0e0e0; |
| 50 | --breadcrumbs-bg: var(--primary); |
| 51 | |
| 52 | --link-fg: #81d4fa; |
| 53 | --link-hover-color: #4ac1f7; |
| 54 | --link-selected-fg: #6f94c6; |
| 55 | |
| 56 | --hairline-color: #272727; |
| 57 | --border-color: #353535; |
| 58 | |
| 59 | --error-fg: #e35f5f; |
| 60 | --message-success-bg: #006b1b; |
| 61 | --message-warning-bg: #583305; |
| 62 | --message-error-bg: #570808; |
| 63 | |
| 64 | --darkened-bg: #212121; |
| 65 | --selected-bg: #1b1b1b; |
| 66 | --selected-row: #00363a; |
| 67 | |
| 68 | --close-button-bg: #333333; |
| 69 | --close-button-hover-bg: #666666; |
| 70 | |
| 71 | color-scheme: dark; |
| 72 | } |
| 73 | |
| 74 | /* THEME SWITCH */ |
| 75 | .theme-toggle { |
| 76 | cursor: pointer; |
| 77 | border: none; |
| 78 | padding: 0; |
| 79 | background: transparent; |
| 80 | vertical-align: middle; |
| 81 | margin-inline-start: 5px; |
| 82 | margin-top: -1px; |
| 83 | } |
| 84 | |
| 85 | .theme-toggle svg { |
| 86 | vertical-align: middle; |
| 87 | height: 1.5rem; |
| 88 | width: 1.5rem; |
| 89 | display: none; |
| 90 | } |
| 91 | |
| 92 | /* |
| 93 | Fully hide screen reader text so we only show the one matching the current |
| 94 | theme. |
| 95 | */ |
| 96 | .theme-toggle .visually-hidden { |
| 97 | display: none; |
| 98 | } |
| 99 | |
| 100 | html[data-theme="auto"] .theme-toggle .theme-label-when-auto { |
| 101 | display: block; |
| 102 | } |
| 103 | |
| 104 | html[data-theme="dark"] .theme-toggle .theme-label-when-dark { |
| 105 | display: block; |
| 106 | } |
| 107 | |
| 108 | html[data-theme="light"] .theme-toggle .theme-label-when-light { |
| 109 | display: block; |
| 110 | } |
| 111 | |
| 112 | /* ICONS */ |
| 113 | .theme-toggle svg.theme-icon-when-auto, |
| 114 | .theme-toggle svg.theme-icon-when-dark, |
| 115 | .theme-toggle svg.theme-icon-when-light { |
| 116 | fill: var(--header-link-color); |
| 117 | color: var(--header-bg); |
| 118 | } |
| 119 | |
| 120 | html[data-theme="auto"] .theme-toggle svg.theme-icon-when-auto { |
| 121 | display: block; |
| 122 | } |
| 123 | |
| 124 | html[data-theme="dark"] .theme-toggle svg.theme-icon-when-dark { |
| 125 | display: block; |
| 126 | } |
| 127 | |
| 128 | html[data-theme="light"] .theme-toggle svg.theme-icon-when-light { |
| 129 | display: block; |
| 130 | } |
Binary file
| --- a/assets/admin/css/dark_mode.css | ||
| +++ b/assets/admin/css/dark_mode.css | ||
| @@ -0,0 +1,130 @@ | ||
| 1 | +@media (prefers-color-scheme: dark) { | |
| 2 | + :root { | |
| 3 | + --primary: #264b5d; | |
| 4 | + --primary-fg: #f7f7f7; | |
| 5 | + | |
| 6 | + --body-fg: #eeeeee; | |
| 7 | + --body-bg: #121212; | |
| 8 | + --body-quiet-color: #d0d0d0; | |
| 9 | + --body-medium-color: #e0e0e0; | |
| 10 | + --body-loud-color: #ffffff; | |
| 11 | + | |
| 12 | + --breadcrumbs-link-fg: #e0e0e0; | |
| 13 | + --breadcrumbs-bg: var(--primary); | |
| 14 | + | |
| 15 | + --link-fg: #81d4fa; | |
| 16 | + --link-hover-color: #4ac1f7; | |
| 17 | + --link-selected-fg: #6f94c6; | |
| 18 | + | |
| 19 | + --hairline-color: #272727; | |
| 20 | + --border-color: #353535; | |
| 21 | + | |
| 22 | + --error-fg: #e35f5f; | |
| 23 | + --message-success-bg: #006b1b; | |
| 24 | + --message-warning-bg: #583305; | |
| 25 | + --message-error-bg: #570808; | |
| 26 | + | |
| 27 | + --darkened-bg: #212121; | |
| 28 | + --selected-bg: #1b1b1b; | |
| 29 | + --selected-row: #00363a; | |
| 30 | + | |
| 31 | + --close-button-bg: #333333; | |
| 32 | + --close-button-hover-bg: #666666; | |
| 33 | + | |
| 34 | + color-scheme: dark; | |
| 35 | + } | |
| 36 | + } | |
| 37 | + | |
| 38 | + | |
| 39 | +html[data-theme="dark"] { | |
| 40 | + --primary: #264b5d; | |
| 41 | + --primary-fg: #f7f7f7; | |
| 42 | + | |
| 43 | + --body-fg: #eeeeee; | |
| 44 | + --body-bg: #121212; | |
| 45 | + --body-quiet-color: #d0d0d0; | |
| 46 | + --body-medium-color: #e0e0e0; | |
| 47 | + --body-loud-color: #ffffff; | |
| 48 | + | |
| 49 | + --breadcrumbs-link-fg: #e0e0e0; | |
| 50 | + --breadcrumbs-bg: var(--primary); | |
| 51 | + | |
| 52 | + --link-fg: #81d4fa; | |
| 53 | + --link-hover-color: #4ac1f7; | |
| 54 | + --link-selected-fg: #6f94c6; | |
| 55 | + | |
| 56 | + --hairline-color: #272727; | |
| 57 | + --border-color: #353535; | |
| 58 | + | |
| 59 | + --error-fg: #e35f5f; | |
| 60 | + --message-success-bg: #006b1b; | |
| 61 | + --message-warning-bg: #583305; | |
| 62 | + --message-error-bg: #570808; | |
| 63 | + | |
| 64 | + --darkened-bg: #212121; | |
| 65 | + --selected-bg: #1b1b1b; | |
| 66 | + --selected-row: #00363a; | |
| 67 | + | |
| 68 | + --close-button-bg: #333333; | |
| 69 | + --close-button-hover-bg: #666666; | |
| 70 | + | |
| 71 | + color-scheme: dark; | |
| 72 | +} | |
| 73 | + | |
| 74 | +/* THEME SWITCH */ | |
| 75 | +.theme-toggle { | |
| 76 | + cursor: pointer; | |
| 77 | + border: none; | |
| 78 | + padding: 0; | |
| 79 | + background: transparent; | |
| 80 | + vertical-align: middle; | |
| 81 | + margin-inline-start: 5px; | |
| 82 | + margin-top: -1px; | |
| 83 | +} | |
| 84 | + | |
| 85 | +.theme-toggle svg { | |
| 86 | + vertical-align: middle; | |
| 87 | + height: 1.5rem; | |
| 88 | + width: 1.5rem; | |
| 89 | + display: none; | |
| 90 | +} | |
| 91 | + | |
| 92 | +/* | |
| 93 | +Fully hide screen reader text so we only show the one matching the current | |
| 94 | +theme. | |
| 95 | +*/ | |
| 96 | +.theme-toggle .visually-hidden { | |
| 97 | + display: none; | |
| 98 | +} | |
| 99 | + | |
| 100 | +html[data-theme="auto"] .theme-toggle .theme-label-when-auto { | |
| 101 | + display: block; | |
| 102 | +} | |
| 103 | + | |
| 104 | +html[data-theme="dark"] .theme-toggle .theme-label-when-dark { | |
| 105 | + display: block; | |
| 106 | +} | |
| 107 | + | |
| 108 | +html[data-theme="light"] .theme-toggle .theme-label-when-light { | |
| 109 | + display: block; | |
| 110 | +} | |
| 111 | + | |
| 112 | +/* ICONS */ | |
| 113 | +.theme-toggle svg.theme-icon-when-auto, | |
| 114 | +.theme-toggle svg.theme-icon-when-dark, | |
| 115 | +.theme-toggle svg.theme-icon-when-light { | |
| 116 | + fill: var(--header-link-color); | |
| 117 | + color: var(--header-bg); | |
| 118 | +} | |
| 119 | + | |
| 120 | +html[data-theme="auto"] .theme-toggle svg.theme-icon-when-auto { | |
| 121 | + display: block; | |
| 122 | +} | |
| 123 | + | |
| 124 | +html[data-theme="dark"] .theme-toggle svg.theme-icon-when-dark { | |
| 125 | + display: block; | |
| 126 | +} | |
| 127 | + | |
| 128 | +html[data-theme="light"] .theme-toggle svg.theme-icon-when-light { | |
| 129 | + display: block; | |
| 130 | +} |
| --- a/assets/admin/css/dark_mode.css | |
| +++ b/assets/admin/css/dark_mode.css | |
| @@ -0,0 +1,130 @@ | |
| --- a/assets/admin/css/dark_mode.css | |
| +++ b/assets/admin/css/dark_mode.css | |
| @@ -0,0 +1,130 @@ | |
| 1 | @media (prefers-color-scheme: dark) { |
| 2 | :root { |
| 3 | --primary: #264b5d; |
| 4 | --primary-fg: #f7f7f7; |
| 5 | |
| 6 | --body-fg: #eeeeee; |
| 7 | --body-bg: #121212; |
| 8 | --body-quiet-color: #d0d0d0; |
| 9 | --body-medium-color: #e0e0e0; |
| 10 | --body-loud-color: #ffffff; |
| 11 | |
| 12 | --breadcrumbs-link-fg: #e0e0e0; |
| 13 | --breadcrumbs-bg: var(--primary); |
| 14 | |
| 15 | --link-fg: #81d4fa; |
| 16 | --link-hover-color: #4ac1f7; |
| 17 | --link-selected-fg: #6f94c6; |
| 18 | |
| 19 | --hairline-color: #272727; |
| 20 | --border-color: #353535; |
| 21 | |
| 22 | --error-fg: #e35f5f; |
| 23 | --message-success-bg: #006b1b; |
| 24 | --message-warning-bg: #583305; |
| 25 | --message-error-bg: #570808; |
| 26 | |
| 27 | --darkened-bg: #212121; |
| 28 | --selected-bg: #1b1b1b; |
| 29 | --selected-row: #00363a; |
| 30 | |
| 31 | --close-button-bg: #333333; |
| 32 | --close-button-hover-bg: #666666; |
| 33 | |
| 34 | color-scheme: dark; |
| 35 | } |
| 36 | } |
| 37 | |
| 38 | |
| 39 | html[data-theme="dark"] { |
| 40 | --primary: #264b5d; |
| 41 | --primary-fg: #f7f7f7; |
| 42 | |
| 43 | --body-fg: #eeeeee; |
| 44 | --body-bg: #121212; |
| 45 | --body-quiet-color: #d0d0d0; |
| 46 | --body-medium-color: #e0e0e0; |
| 47 | --body-loud-color: #ffffff; |
| 48 | |
| 49 | --breadcrumbs-link-fg: #e0e0e0; |
| 50 | --breadcrumbs-bg: var(--primary); |
| 51 | |
| 52 | --link-fg: #81d4fa; |
| 53 | --link-hover-color: #4ac1f7; |
| 54 | --link-selected-fg: #6f94c6; |
| 55 | |
| 56 | --hairline-color: #272727; |
| 57 | --border-color: #353535; |
| 58 | |
| 59 | --error-fg: #e35f5f; |
| 60 | --message-success-bg: #006b1b; |
| 61 | --message-warning-bg: #583305; |
| 62 | --message-error-bg: #570808; |
| 63 | |
| 64 | --darkened-bg: #212121; |
| 65 | --selected-bg: #1b1b1b; |
| 66 | --selected-row: #00363a; |
| 67 | |
| 68 | --close-button-bg: #333333; |
| 69 | --close-button-hover-bg: #666666; |
| 70 | |
| 71 | color-scheme: dark; |
| 72 | } |
| 73 | |
| 74 | /* THEME SWITCH */ |
| 75 | .theme-toggle { |
| 76 | cursor: pointer; |
| 77 | border: none; |
| 78 | padding: 0; |
| 79 | background: transparent; |
| 80 | vertical-align: middle; |
| 81 | margin-inline-start: 5px; |
| 82 | margin-top: -1px; |
| 83 | } |
| 84 | |
| 85 | .theme-toggle svg { |
| 86 | vertical-align: middle; |
| 87 | height: 1.5rem; |
| 88 | width: 1.5rem; |
| 89 | display: none; |
| 90 | } |
| 91 | |
| 92 | /* |
| 93 | Fully hide screen reader text so we only show the one matching the current |
| 94 | theme. |
| 95 | */ |
| 96 | .theme-toggle .visually-hidden { |
| 97 | display: none; |
| 98 | } |
| 99 | |
| 100 | html[data-theme="auto"] .theme-toggle .theme-label-when-auto { |
| 101 | display: block; |
| 102 | } |
| 103 | |
| 104 | html[data-theme="dark"] .theme-toggle .theme-label-when-dark { |
| 105 | display: block; |
| 106 | } |
| 107 | |
| 108 | html[data-theme="light"] .theme-toggle .theme-label-when-light { |
| 109 | display: block; |
| 110 | } |
| 111 | |
| 112 | /* ICONS */ |
| 113 | .theme-toggle svg.theme-icon-when-auto, |
| 114 | .theme-toggle svg.theme-icon-when-dark, |
| 115 | .theme-toggle svg.theme-icon-when-light { |
| 116 | fill: var(--header-link-color); |
| 117 | color: var(--header-bg); |
| 118 | } |
| 119 | |
| 120 | html[data-theme="auto"] .theme-toggle svg.theme-icon-when-auto { |
| 121 | display: block; |
| 122 | } |
| 123 | |
| 124 | html[data-theme="dark"] .theme-toggle svg.theme-icon-when-dark { |
| 125 | display: block; |
| 126 | } |
| 127 | |
| 128 | html[data-theme="light"] .theme-toggle svg.theme-icon-when-light { |
| 129 | display: block; |
| 130 | } |
Binary file
| --- a/assets/admin/css/dark_theme.23ccf3764a60.css | ||
| +++ b/assets/admin/css/dark_theme.23ccf3764a60.css | ||
| @@ -0,0 +1,627 @@ | ||
| 1 | +/* | |
| 2 | + * Fossilrepo Admin Theme — supports dark, light, and system-auto modes | |
| 3 | + * Brand palette: | |
| 4 | + * #2B2D2C charcoal (dark body background) | |
| 5 | + * #DC394C red (primary brand accent) | |
| 6 | + * #8B3138 crimson (secondary / hover states) | |
| 7 | + * #FAFAFA near-white (foreground on dark) | |
| 8 | + */ | |
| 9 | + | |
| 10 | +/* ── Shared brand accents + dark defaults ───────────────────────────────── */ | |
| 11 | + | |
| 12 | +:root { | |
| 13 | + /* Brand accents — unchanged across all themes */ | |
| 14 | + --primary: #DC394C; | |
| 15 | + --secondary: #8B3138; | |
| 16 | + --accent: #DC394C; | |
| 17 | + --primary-fg: #FAFAFA; | |
| 18 | + | |
| 19 | + --button-fg: #FAFAFA; | |
| 20 | + --button-bg: #DC394C; | |
| 21 | + --button-hover-bg: #c42d3f; | |
| 22 | + --default-button-bg: #8B3138; | |
| 23 | + --default-button-hover-bg:#6a1921; | |
| 24 | + --close-button-bg: #4a4c4b; | |
| 25 | + --close-button-hover-bg: #5a5c5b; | |
| 26 | + --delete-button-bg: #8B3138; | |
| 27 | + --delete-button-hover-bg: #6a1921; | |
| 28 | + | |
| 29 | + --object-tools-fg: #FAFAFA; | |
| 30 | + --object-tools-bg: #8B3138; | |
| 31 | + --object-tools-hover-bg: #6a1921; | |
| 32 | + | |
| 33 | + --breadcrumbs-bg: #DC394C; | |
| 34 | + --breadcrumbs-fg: #FAFAFA; | |
| 35 | + --breadcrumbs-link-fg: #FAFAFA; | |
| 36 | + --link-selected-fg: #DC394C; | |
| 37 | + | |
| 38 | + /* Header stays dark in both themes for brand consistency */ | |
| 39 | + --header-color: #FAFAFA; | |
| 40 | + --header-branding-color: #FAFAFA; | |
| 41 | + --header-bg: #1f2120; | |
| 42 | + --header-link-color: #FAFAFA; | |
| 43 | + | |
| 44 | + /* Dark theme defaults (applied when no explicit data-theme is set) */ | |
| 45 | + --body-fg: #FAFAFA; | |
| 46 | + --body-bg: #2B2D2C; | |
| 47 | + --body-quiet-color: #a8aaa9; | |
| 48 | + --body-loud-color: #ffffff; | |
| 49 | + | |
| 50 | + --link-fg: #e8677a; | |
| 51 | + --link-hover-color: #f0929f; | |
| 52 | + | |
| 53 | + --hairline-color: #3d3f3e; | |
| 54 | + --border-color: #3d3f3e; | |
| 55 | + | |
| 56 | + --error-fg: #ff7a7a; | |
| 57 | + --message-success-bg: #173317; | |
| 58 | + --message-success-color: #7ddf7d; | |
| 59 | + --message-success-border: #2d5a2d; | |
| 60 | + --message-warning-bg: #332e17; | |
| 61 | + --message-warning-color: #e6c87a; | |
| 62 | + --message-warning-border: #5a4d2d; | |
| 63 | + --message-error-bg: #331717; | |
| 64 | + --message-error-color: #ff7a7a; | |
| 65 | + --message-error-border: #5a2d2d; | |
| 66 | + | |
| 67 | + --darkened-bg: #222423; | |
| 68 | + --selected-bg: #3d1e24; | |
| 69 | + --selected-row: #3d1e24; | |
| 70 | + --input-bg: #1f2120; | |
| 71 | +} | |
| 72 | + | |
| 73 | +/* ── Explicit dark theme (beats Django's html[data-theme="dark"] specificity) */ | |
| 74 | + | |
| 75 | +:root[data-theme="dark"] { | |
| 76 | + --primary: #DC394C; | |
| 77 | + --secondary: #8B3138; | |
| 78 | + --accent: #DC394C; | |
| 79 | + --primary-fg: #FAFAFA; | |
| 80 | + | |
| 81 | + --button-fg: #FAFAFA; | |
| 82 | + --button-bg: #DC394C; | |
| 83 | + --button-hover-bg: #c42d3f; | |
| 84 | + --default-button-bg: #8B3138; | |
| 85 | + --default-button-hover-bg:#6a1921; | |
| 86 | + --close-button-bg: #4a4c4b; | |
| 87 | + --close-button-hover-bg: #5a5c5b; | |
| 88 | + --delete-button-bg: #8B3138; | |
| 89 | + --delete-button-hover-bg: #6a1921; | |
| 90 | + | |
| 91 | + --object-tools-fg: #FAFAFA; | |
| 92 | + --object-tools-bg: #8B3138; | |
| 93 | + --object-tools-hover-bg: #6a1921; | |
| 94 | + | |
| 95 | + --breadcrumbs-bg: #DC394C; | |
| 96 | + --breadcrumbs-fg: #FAFAFA; | |
| 97 | + --breadcrumbs-link-fg: #FAFAFA; | |
| 98 | + --link-selected-fg: #DC394C; | |
| 99 | + | |
| 100 | + --header-bg: #1f2120; | |
| 101 | + --header-color: #FAFAFA; | |
| 102 | + --header-branding-color: #FAFAFA; | |
| 103 | + --header-link-color: #FAFAFA; | |
| 104 | + | |
| 105 | + --body-fg: #FAFAFA; | |
| 106 | + --body-bg: #0d0d0d; | |
| 107 | + --body-quiet-color: #a8aaa9; | |
| 108 | + --body-loud-color: #ffffff; | |
| 109 | + | |
| 110 | + --link-fg: #e8677a; | |
| 111 | + --link-hover-color: #f0929f; | |
| 112 | + | |
| 113 | + --hairline-color: #2a2c2b; | |
| 114 | + --border-color: #2a2c2b; | |
| 115 | + | |
| 116 | + --error-fg: #ff7a7a; | |
| 117 | + --message-success-bg: #0f1f0f; | |
| 118 | + --message-success-color: #7ddf7d; | |
| 119 | + --message-success-border: #1e3d1e; | |
| 120 | + --message-warning-bg: #1f1c0f; | |
| 121 | + --message-warning-color: #e6c87a; | |
| 122 | + --message-warning-border: #3d3519; | |
| 123 | + --message-error-bg: #1f0f0f; | |
| 124 | + --message-error-color: #ff7a7a; | |
| 125 | + --message-error-border: #3d1a1a; | |
| 126 | + | |
| 127 | + --darkened-bg: #141514; | |
| 128 | + --selected-bg: #2d1219; | |
| 129 | + --selected-row: #2d1219; | |
| 130 | + --input-bg: #111211; | |
| 131 | +} | |
| 132 | + | |
| 133 | +/* ── Light theme ─────────────────────────────────────────────────────────── */ | |
| 134 | + | |
| 135 | +:root[data-theme="light"] { | |
| 136 | + /* Header — dark gray in light mode */ | |
| 137 | + --header-bg: #3a3a3a; | |
| 138 | + --header-color: #FAFAFA; | |
| 139 | + --header-branding-color: #FAFAFA; | |
| 140 | + --header-link-color: #FAFAFA; | |
| 141 | + | |
| 142 | + /* Brand accents — must repeat here to beat base.css html[data-theme="light"] specificity */ | |
| 143 | + --primary: #DC394C; | |
| 144 | + --secondary: #8B3138; | |
| 145 | + --accent: #DC394C; | |
| 146 | + --primary-fg: #FAFAFA; | |
| 147 | + | |
| 148 | + --button-fg: #FAFAFA; | |
| 149 | + --button-bg: #DC394C; | |
| 150 | + --button-hover-bg: #c42d3f; | |
| 151 | + --default-button-bg: #8B3138; | |
| 152 | + --default-button-hover-bg:#6a1921; | |
| 153 | + --delete-button-bg: #8B3138; | |
| 154 | + --delete-button-hover-bg: #6a1921; | |
| 155 | + | |
| 156 | + --object-tools-fg: #FAFAFA; | |
| 157 | + --object-tools-bg: #8B3138; | |
| 158 | + --object-tools-hover-bg: #6a1921; | |
| 159 | + | |
| 160 | + --breadcrumbs-bg: #DC394C; | |
| 161 | + --breadcrumbs-fg: #FAFAFA; | |
| 162 | + --breadcrumbs-link-fg: #FAFAFA; | |
| 163 | + --link-selected-fg: #DC394C; | |
| 164 | + | |
| 165 | + --body-fg: #1a1a1a; | |
| 166 | + --body-bg: #f8f8f8; | |
| 167 | + --body-quiet-color: #666666; | |
| 168 | + --body-loud-color: #000000; | |
| 169 | + | |
| 170 | + --link-fg: #DC394C; | |
| 171 | + --link-hover-color: #8B3138; | |
| 172 | + | |
| 173 | + --hairline-color: #e0e0e0; | |
| 174 | + --border-color: #e0e0e0; | |
| 175 | + | |
| 176 | + --error-fg: #c0392b; | |
| 177 | + --message-success-bg: #d4edda; | |
| 178 | + --message-success-color: #155724; | |
| 179 | + --message-success-border: #c3e6cb; | |
| 180 | + --message-warning-bg: #fff3cd; | |
| 181 | + --message-warning-color: #856404; | |
| 182 | + --message-warning-border: #ffeeba; | |
| 183 | + --message-error-bg: #f8d7da; | |
| 184 | + --message-error-color: #721c24; | |
| 185 | + --message-error-border: #f5c6cb; | |
| 186 | + | |
| 187 | + --darkened-bg: #eeeeee; | |
| 188 | + --selected-bg: #fde8ea; | |
| 189 | + --selected-row: #fde8ea; | |
| 190 | + --input-bg: #ffffff; | |
| 191 | +} | |
| 192 | + | |
| 193 | +/* ── System auto: respect prefers-color-scheme light ─────────────────────── */ | |
| 194 | + | |
| 195 | +@media (prefers-color-scheme: light) { | |
| 196 | + :root:not([data-theme="dark"]) { | |
| 197 | + /* Header — dark gray in light mode */ | |
| 198 | + --header-bg: #3a3a3a; | |
| 199 | + --header-color: #FAFAFA; | |
| 200 | + --header-branding-color: #FAFAFA; | |
| 201 | + --header-link-color: #FAFAFA; | |
| 202 | + | |
| 203 | + /* Brand accents */ | |
| 204 | + --primary: #DC394C; | |
| 205 | + --secondary: #8B3138; | |
| 206 | + --accent: #DC394C; | |
| 207 | + --primary-fg: #FAFAFA; | |
| 208 | + | |
| 209 | + --button-fg: #FAFAFA; | |
| 210 | + --button-bg: #DC394C; | |
| 211 | + --button-hover-bg: #c42d3f; | |
| 212 | + --default-button-bg: #8B3138; | |
| 213 | + --default-button-hover-bg:#6a1921; | |
| 214 | + --delete-button-bg: #8B3138; | |
| 215 | + --delete-button-hover-bg: #6a1921; | |
| 216 | + | |
| 217 | + --object-tools-fg: #FAFAFA; | |
| 218 | + --object-tools-bg: #8B3138; | |
| 219 | + --object-tools-hover-bg: #6a1921; | |
| 220 | + | |
| 221 | + --breadcrumbs-bg: #DC394C; | |
| 222 | + --breadcrumbs-fg: #FAFAFA; | |
| 223 | + --breadcrumbs-link-fg: #FAFAFA; | |
| 224 | + --link-selected-fg: #DC394C; | |
| 225 | + | |
| 226 | + --body-fg: #1a1a1a; | |
| 227 | + --body-bg: #f8f8f8; | |
| 228 | + --body-quiet-color: #666666; | |
| 229 | + --body-loud-color: #000000; | |
| 230 | + | |
| 231 | + --link-fg: #DC394C; | |
| 232 | + --link-hover-color: #8B3138; | |
| 233 | + | |
| 234 | + --hairline-color: #e0e0e0; | |
| 235 | + --border-color: #e0e0e0; | |
| 236 | + | |
| 237 | + --error-fg: #c0392b; | |
| 238 | + --message-success-bg: #d4edda; | |
| 239 | + --message-success-color: #155724; | |
| 240 | + --message-success-border: #c3e6cb; | |
| 241 | + --message-warning-bg: #fff3cd; | |
| 242 | + --message-warning-color: #856404; | |
| 243 | + --message-warning-border: #ffeeba; | |
| 244 | + --message-error-bg: #f8d7da; | |
| 245 | + --message-error-color: #721c24; | |
| 246 | + --message-error-border: #f5c6cb; | |
| 247 | + | |
| 248 | + --darkened-bg: #eeeeee; | |
| 249 | + --selected-bg: #fde8ea; | |
| 250 | + --selected-row: #fde8ea; | |
| 251 | + --input-bg: #ffffff; | |
| 252 | + } | |
| 253 | +} | |
| 254 | + | |
| 255 | + | |
| 256 | +/* ── Layout ─────────────────────────────────────────────────────────────── */ | |
| 257 | + | |
| 258 | +/* | |
| 259 | + * Django's stock base.css gives `.module { background: var(--darkened-bg) }`. | |
| 260 | + * #changelist has class "module", so the 30px margin gap between the table and | |
| 261 | + * the filter also gets --darkened-bg — the same color as the filter itself. | |
| 262 | + * Result: no visible gap. | |
| 263 | + * | |
| 264 | + * clientcove fixes this by shipping a modified base.css with | |
| 265 | + * `.module { background: var(--body-bg) }`. We can't change Django's base.css, | |
| 266 | + * so we target #changelist specifically to make the gap show the body background. | |
| 267 | + */ | |
| 268 | +#changelist.module { | |
| 269 | + background: transparent; | |
| 270 | + border: none; | |
| 271 | +} | |
| 272 | + | |
| 273 | +/* Prevent table from overflowing into the filter gap — layout owned by changelists.css */ | |
| 274 | +#changelist .changelist-form-container > div { | |
| 275 | + overflow-x: auto; | |
| 276 | +} | |
| 277 | + | |
| 278 | +/* ── Header — always dark, hardcoded values intentional ─────────────────── */ | |
| 279 | + | |
| 280 | +#header { | |
| 281 | + background: var(--header-bg); | |
| 282 | + border-bottom: 2px solid var(--primary); | |
| 283 | +} | |
| 284 | + | |
| 285 | +#header a:link, | |
| 286 | +#header a:visited { | |
| 287 | + color: var(--header-link-color); | |
| 288 | +} | |
| 289 | + | |
| 290 | +#header #branding h1 { | |
| 291 | + line-height: 1; | |
| 292 | + margin: 0; | |
| 293 | +} | |
| 294 | + | |
| 295 | +#header #branding .logo img { | |
| 296 | + pe="button"]:hoverblock; | |
| 297 | +} | |
| 298 | + | |
| 299 | +#header #user-tools { | |
| 300 | + color: #a8aaa9; | |
| 301 | +} | |
| 302 | + | |
| 303 | +#header #user-tools a { | |
| 304 | + color: | |
| 305 | + * Fossilrepo Admin Th�� supports dark, light, and system-auto modes | |
| 306 | + * Brand palette: | |
| 307 | + * #2B2D2C charcoal (dark body background) | |
| 308 | + * #DC394C red (primary brand accent) | |
| 309 | + * #8B3138 crimson (secondary / hover states) | |
| 310 | + * #FAFAFA near-white (foreground on dark) | |
| 311 | + */ | |
| 312 | + | |
| 313 | +/* ── Shared brand accents + dark defaults ───────────────────────────────── */ | |
| 314 | + | |
| 315 | +:root { | |
| 316 | + /* Brand accents — unchanged across all themes */ | |
| 317 | + --primary: #DC394C; | |
| 318 | + --secondary: #8B3138; | |
| 319 | + --accent: #DC394C; | |
| 320 | + --primary-fg: #FAFAFA; | |
| 321 | + | |
| 322 | + --button-fg: #FAFAFA; | |
| 323 | + --button-bg: #DC394C; | |
| 324 | + --button-hover-bg: #c42d3f; | |
| 325 | + --default-button-bg: #8B3138; | |
| 326 | + --default-button-hover-bg:#6a1921; | |
| 327 | + --close-button-bg: #4a4c4b; | |
| 328 | + --close-button-hover-bg: #5a5c5b; | |
| 329 | + --delete-button-bg: #8B3138; | |
| 330 | + --delete-button-hover-bg: #6a1921; | |
| 331 | + | |
| 332 | + --object-tools-fg: #FAFAFA; | |
| 333 | + --object-tools-bg: #8B3138; | |
| 334 | + --object-tools-hover-bg: #6a1921; | |
| 335 | + | |
| 336 | + --breadcrumbs-bg: #DC394C; | |
| 337 | + --breadcrumbs-fg: #FAFAFA; | |
| 338 | + --breadcrumbs-link-fg: #FAFAFA; | |
| 339 | + --link-selected-fg: #DC394C; | |
| 340 | + | |
| 341 | + /* Header stays dark in both themes for brand consistency */ | |
| 342 | + --header-color: #FAFAFA; | |
| 343 | + --header-branding-color: #FAFAFA; | |
| 344 | + --header-bg: #1f2120; | |
| 345 | + --header-link-color: #FAFAFA; | |
| 346 | + | |
| 347 | + /* Dark theme defaults (applied when no explicit data-theme is set) */ | |
| 348 | + --body-fg: #FAFAFA; | |
| 349 | + --body-bg: #2B2D2C; | |
| 350 | + --body-quiet-color: #a8aaa9; | |
| 351 | + --body-loud-color: #ffffff; | |
| 352 | + | |
| 353 | + --link-fg: #e8677a; | |
| 354 | + --link-hover-color: #f0929f; | |
| 355 | + | |
| 356 | + --hairline-color: #3d3f3e; | |
| 357 | + --border-color: #3d3f3e; | |
| 358 | + | |
| 359 | + --error-fg: #ff7a7a; | |
| 360 | + --message-success-bg: #173317; | |
| 361 | + --message-success-color: #7ddf7d; | |
| 362 | + --message-success-border: #2d5a2d; | |
| 363 | + --message-warning-bg: #332e17; | |
| 364 | + --message-warning-color: #e6c87a; | |
| 365 | + --message-warning-border: #5a4d2d; | |
| 366 | + --message-error-bg: #331717; | |
| 367 | + --message-error-color: #ff7a7a; | |
| 368 | + --message-error-border: #5a2d2d; | |
| 369 | + | |
| 370 | + --darkened-bg: #222423; | |
| 371 | + --selected-bg: #3d1e24; | |
| 372 | + --selected-row: #3d1e24; | |
| 373 | + --input-bg: #1f2120; | |
| 374 | +} | |
| 375 | + | |
| 376 | +/* ── Explicit dark theme (beats Django's html[data-theme="dark"] specificity) */ | |
| 377 | + | |
| 378 | +:root[data-theme="dark"] { | |
| 379 | + --primary: #DC394C; | |
| 380 | + --secondary: #8B3138; | |
| 381 | + --accent: #DC394C; | |
| 382 | + --primary-fg: #FAFAFA; | |
| 383 | + | |
| 384 | + --button-fg: #FAFAFA; | |
| 385 | + --button-bg: #DC394C; | |
| 386 | + --button-hover-bg: #c42d3f; | |
| 387 | + --default-button-bg: #8B3138; | |
| 388 | + --default-button-hover-bg:#6a1921; | |
| 389 | + --close-button-bg: #4a4c4b; | |
| 390 | + --close-button-hover-bg: #5a5c5b; | |
| 391 | + --delete-button-bg: #8B3138; | |
| 392 | + --delete-button-hover-bg: #6a1921; | |
| 393 | + | |
| 394 | + --object-tools-fg: #FAFAFA; | |
| 395 | + --object-tools-bg: #8B3138; | |
| 396 | + --object-tools-hover-bg: #6a1921; | |
| 397 | + | |
| 398 | + --breadcrumbs-bg: #DC394C; | |
| 399 | + --breadcrumbs-fg: #FAFAFA; | |
| 400 | + --breadcrumbs-link-fg: #FAFAFA; | |
| 401 | + --link-selected-fg: #DC394C; | |
| 402 | + | |
| 403 | + --header-bg: #1f2120; | |
| 404 | + --header-color: #FAFAFA; | |
| 405 | + --header-branding-color: #FAFAFA; | |
| 406 | + --header-link-color: #FAFAFA; | |
| 407 | + | |
| 408 | + --body-fg: #FAFAFA; | |
| 409 | + --body-bg: #0d0d0d; | |
| 410 | + --body-quiet-color: #a8aaa9; | |
| 411 | + --body-loud-color: #ffffff; | |
| 412 | + | |
| 413 | + --link-fg: #e8677a; | |
| 414 | + --link-hover-color: #f0929f; | |
| 415 | + | |
| 416 | + --hairline-color: #2a2c2b; | |
| 417 | + --border-color: #2a2c2b; | |
| 418 | + | |
| 419 | + --error-fg: #ff7a7a; | |
| 420 | + --message-success-bg: #0f1f0f; | |
| 421 | + --message-success-color: #7ddf7d; | |
| 422 | + --message-success-border: #1e3d1e; | |
| 423 | + --message-warning-bg: #1f1c0f; | |
| 424 | + --message-warning-color: #e6c87a; | |
| 425 | + --message-warning-border: #3d3519; | |
| 426 | + --message-error-bg: #1f0f0f; | |
| 427 | + --message-error-color: #ff7a7a; | |
| 428 | + --message-error-border: #3d1a1a; | |
| 429 | + | |
| 430 | + --darkened-bg: #141514; | |
| 431 | + --selected-bg: #2d1219; | |
| 432 | + --selected-row: #2d1219; | |
| 433 | + --input-bg: #111211; | |
| 434 | +} | |
| 435 | + | |
| 436 | +/* ── Light theme ─────────────────────────────────────────────────────────── */ | |
| 437 | + | |
| 438 | +:root[data-theme="light"] { | |
| 439 | + /* Header — dark gray in light mode */ | |
| 440 | + --header-bg: #3a3a3a; | |
| 441 | + --header-color: #FAFAFA; | |
| 442 | + --header-branding-color: #FAFAFA; | |
| 443 | + --header-link-color: #FAFAFA; | |
| 444 | + | |
| 445 | + /* Brand accents — must repeat here to beat base.css html[data-theme="light"] specificity */ | |
| 446 | + --primary: #DC394C; | |
| 447 | + --secondary: #8B3138; | |
| 448 | + --accent: #DC394C; | |
| 449 | + --primary-fg: #FAFAFA; | |
| 450 | + | |
| 451 | + --button-fg: #FAFAFA; | |
| 452 | + --button-bg: #DC394C; | |
| 453 | + --button-hover-bg: #c42d3f; | |
| 454 | + --default-button-bg: #8B3138; | |
| 455 | + --default-button-hover-bg:#6a1921; | |
| 456 | + --delete-button-bg: #8B3138; | |
| 457 | + --delete-button-hover-bg: #6a1921; | |
| 458 | + | |
| 459 | + --object-tools-fg: #FAFAFA; | |
| 460 | + --object-tools-bg: #8B3138; | |
| 461 | + --object-tools-hover-bg: #6a1921; | |
| 462 | + | |
| 463 | + --breadcrumbs-bg: #DC394C; | |
| 464 | + --breadcrumbs-fg: #FAFAFA; | |
| 465 | + --breadcrumbs-link-fg: #FAFAFA; | |
| 466 | + --link-selected-fg: #DC394C; | |
| 467 | + | |
| 468 | + --body-fg: #1a1a1a; | |
| 469 | + --body-bg: #f8f8f8; | |
| 470 | + --body-quiet-color: #666666; | |
| 471 | + --body-loud-color: #000000; | |
| 472 | + | |
| 473 | + --link-fg: #DC394C; | |
| 474 | + --link-hover-color: #8B3138; | |
| 475 | + | |
| 476 | + --hairline-color: #e0e0e0; | |
| 477 | + --border-color: #e0e0e0; | |
| 478 | + | |
| 479 | + --error-fg: #c0392b; | |
| 480 | + --message-success-bg: #d4edda; | |
| 481 | + --message-success-color: #155724; | |
| 482 | + --message-success-border: #c3e6cb; | |
| 483 | + --message-warning-bg: #fff3cd; | |
| 484 | + --message-warning-color: #856404; | |
| 485 | + --message-warning-border: #ffeeba; | |
| 486 | + --message-error-bg: #f8d7da; | |
| 487 | + --message-error-color: #721c24; | |
| 488 | + --message-error-border: #f5c6cb; | |
| 489 | + | |
| 490 | + --darkened-bg: #eeeeee; | |
| 491 | + --selected-bg: #fde8ea; | |
| 492 | + --selected-row: #fde8ea; | |
| 493 | + --input-bg: #ffffff; | |
| 494 | +} | |
| 495 | + | |
| 496 | +/* ── System auto: respect prefers-color-scheme light ─────────────────────── */ | |
| 497 | + | |
| 498 | +@media (prefers-color-scheme: light) { | |
| 499 | + :root:not([data-theme="dark"]) { | |
| 500 | + /* Header — dark gray in light mode */ | |
| 501 | + --header-bg: #3a3a3a; | |
| 502 | + --header-color: #FAFAFA; | |
| 503 | + --header-branding-color: #FAFAFA; | |
| 504 | + --header-link-color: #FAFAFA; | |
| 505 | + | |
| 506 | + /* Brand accents */ | |
| 507 | + --primary: #DC394C; | |
| 508 | + --secondary: #8B3138; | |
| 509 | + --accent: #DC394C; | |
| 510 | + --primary-fg: #FAFAFA; | |
| 511 | + | |
| 512 | + --button-fg: #FAFAFA; | |
| 513 | + --button-bg: #DC394C; | |
| 514 | + --button-hover-bg: #c42d3f; | |
| 515 | + --default-button-bg: #8B3138; | |
| 516 | + --default-button-hover-bg:#6a1921; | |
| 517 | + --delete-button-bg: #8B3138; | |
| 518 | + --delete-button-hover-bg: #6a1921; | |
| 519 | + | |
| 520 | + --object-tools-fg: #FAFAFA; | |
| 521 | + --object-tools-bg: #8B3138; | |
| 522 | + --object-tools-hover-bg: #6a1921; | |
| 523 | + | |
| 524 | + --breadcrumbs-bg: #DC394C; | |
| 525 | + --breadcrumbs-fg: #FAFAFA; | |
| 526 | + --breadcrumbs-link-fg: #FAFAFA; | |
| 527 | + --link-selected-fg: #DC394C; | |
| 528 | + | |
| 529 | + --body-fg: #1a1a1a; | |
| 530 | + --body-bg: #f8f8f8; | |
| 531 | + --body-quiet-color: #666666; | |
| 532 | + --body-loud-color: #000000; | |
| 533 | + | |
| 534 | + --link-fg: #DC394C; | |
| 535 | + --link-hover-color: #8B3138; | |
| 536 | + | |
| 537 | + --hairline-color: #e0e0e0; | |
| 538 | + --border-color: #e0e0e0; | |
| 539 | + | |
| 540 | + --error-fg: #c0392b; | |
| 541 | + --message-success-bg: #d4edda; | |
| 542 | + --message-success-color: #155724; | |
| 543 | + --message-success-border: #c3e6cb; | |
| 544 | + --message-warning-bg: #fff3cd; | |
| 545 | + --message-warning-color: #856404; | |
| 546 | + --message-warning-border: #ffeeba; | |
| 547 | + --message-error-bg: #f8d7da; | |
| 548 | + --message-error-color: #721c24; | |
| 549 | + --message-error-border: #f5c6cb; | |
| 550 | + | |
| 551 | + --darkened-bg: #eeeeee; | |
| 552 | + --selected-bg: #fde8ea; | |
| 553 | + --selected-row: #fde8ea; | |
| 554 | + --input-bg: #ffffff; | |
| 555 | + } | |
| 556 | +} | |
| 557 | + | |
| 558 | + | |
| 559 | +/* ── Layout ─────────────────────────────────────────────────────────────── */ | |
| 560 | + | |
| 561 | +/* | |
| 562 | + * Django's stock base.css gives `.module { background: var(--darkened-bg) }`. | |
| 563 | + * #changelist has class "module", so the 30px margin gap between the table and | |
| 564 | + * the filter also gets --darkened-bg — the same color as the filter itself. | |
| 565 | + * Result: no visible gap. | |
| 566 | + * | |
| 567 | + * clientcove fixes this by shipping a modified base.css with | |
| 568 | + * `.module { background: var(--body-bg) }`. We can't change Django's base.css, | |
| 569 | + * so we target #changelist specifically to make the gap show the body background. | |
| 570 | + */ | |
| 571 | +#changelist.module { | |
| 572 | + background: transparent; | |
| 573 | + border: none; | |
| 574 | +} | |
| 575 | + | |
| 576 | +/* Prevent table from overflowing into the filter gap — layout owned by changelists.css */ | |
| 577 | +#changelist .changelist-form-container > div { | |
| 578 | + overflow-x: auto; | |
| 579 | +} | |
| 580 | + | |
| 581 | +/* ── Header — always dark, hardcoded values intentional ─────────────────── */ | |
| 582 | + | |
| 583 | +#header { | |
| 584 | + background: var(--header-bg); | |
| 585 | + border-bottom: 2px solid var(--primary); | |
| 586 | +} | |
| 587 | + | |
| 588 | +#header a:link, | |
| 589 | +#header a:visited { | |
| 590 | + color: var(--header-link-color); | |
| 591 | +} | |
| 592 | + | |
| 593 | +#header #branding h1 { | |
| 594 | + line-height: 1; | |
| 595 | + margin: 0; | |
| 596 | +} | |
| 597 | + | |
| 598 | +#header #branding .logo img { | |
| 599 | + height: 40px; | |
| 600 | + width: auto; | |
| 601 | + display: block; | |
| 602 | +} | |
| 603 | + | |
| 604 | +#header #user-tools { | |
| 605 | + color: #a8aaa9; | |
| 606 | +} | |
| 607 | + | |
| 608 | +#header #user-tools a { | |
| 609 | + color: #a8aaa9; | |
| 610 | +} | |
| 611 | + | |
| 612 | +#header #user-tools a:hover { | |
| 613 | + color: #FAFAFA; | |
| 614 | +} | |
| 615 | + | |
| 616 | +/* Quick-links group in header */ | |
| 617 | +.bw-links { | |
| 618 | + display: inline-flex; | |
| 619 | + gap: 2px; | |
| 620 | + margin-right: 8px; | |
| 621 | + border-right: 1px solid #3d3f3e; | |
| 622 | + padding-right: 10px; | |
| 623 | +} | |
| 624 | + | |
| 625 | +.bw-links a { | |
| 626 | + display: inline-block; | |
| 627 | + pad |
| --- a/assets/admin/css/dark_theme.23ccf3764a60.css | |
| +++ b/assets/admin/css/dark_theme.23ccf3764a60.css | |
| @@ -0,0 +1,627 @@ | |
| --- a/assets/admin/css/dark_theme.23ccf3764a60.css | |
| +++ b/assets/admin/css/dark_theme.23ccf3764a60.css | |
| @@ -0,0 +1,627 @@ | |
| 1 | /* |
| 2 | * Fossilrepo Admin Theme — supports dark, light, and system-auto modes |
| 3 | * Brand palette: |
| 4 | * #2B2D2C charcoal (dark body background) |
| 5 | * #DC394C red (primary brand accent) |
| 6 | * #8B3138 crimson (secondary / hover states) |
| 7 | * #FAFAFA near-white (foreground on dark) |
| 8 | */ |
| 9 | |
| 10 | /* ── Shared brand accents + dark defaults ───────────────────────────────── */ |
| 11 | |
| 12 | :root { |
| 13 | /* Brand accents — unchanged across all themes */ |
| 14 | --primary: #DC394C; |
| 15 | --secondary: #8B3138; |
| 16 | --accent: #DC394C; |
| 17 | --primary-fg: #FAFAFA; |
| 18 | |
| 19 | --button-fg: #FAFAFA; |
| 20 | --button-bg: #DC394C; |
| 21 | --button-hover-bg: #c42d3f; |
| 22 | --default-button-bg: #8B3138; |
| 23 | --default-button-hover-bg:#6a1921; |
| 24 | --close-button-bg: #4a4c4b; |
| 25 | --close-button-hover-bg: #5a5c5b; |
| 26 | --delete-button-bg: #8B3138; |
| 27 | --delete-button-hover-bg: #6a1921; |
| 28 | |
| 29 | --object-tools-fg: #FAFAFA; |
| 30 | --object-tools-bg: #8B3138; |
| 31 | --object-tools-hover-bg: #6a1921; |
| 32 | |
| 33 | --breadcrumbs-bg: #DC394C; |
| 34 | --breadcrumbs-fg: #FAFAFA; |
| 35 | --breadcrumbs-link-fg: #FAFAFA; |
| 36 | --link-selected-fg: #DC394C; |
| 37 | |
| 38 | /* Header stays dark in both themes for brand consistency */ |
| 39 | --header-color: #FAFAFA; |
| 40 | --header-branding-color: #FAFAFA; |
| 41 | --header-bg: #1f2120; |
| 42 | --header-link-color: #FAFAFA; |
| 43 | |
| 44 | /* Dark theme defaults (applied when no explicit data-theme is set) */ |
| 45 | --body-fg: #FAFAFA; |
| 46 | --body-bg: #2B2D2C; |
| 47 | --body-quiet-color: #a8aaa9; |
| 48 | --body-loud-color: #ffffff; |
| 49 | |
| 50 | --link-fg: #e8677a; |
| 51 | --link-hover-color: #f0929f; |
| 52 | |
| 53 | --hairline-color: #3d3f3e; |
| 54 | --border-color: #3d3f3e; |
| 55 | |
| 56 | --error-fg: #ff7a7a; |
| 57 | --message-success-bg: #173317; |
| 58 | --message-success-color: #7ddf7d; |
| 59 | --message-success-border: #2d5a2d; |
| 60 | --message-warning-bg: #332e17; |
| 61 | --message-warning-color: #e6c87a; |
| 62 | --message-warning-border: #5a4d2d; |
| 63 | --message-error-bg: #331717; |
| 64 | --message-error-color: #ff7a7a; |
| 65 | --message-error-border: #5a2d2d; |
| 66 | |
| 67 | --darkened-bg: #222423; |
| 68 | --selected-bg: #3d1e24; |
| 69 | --selected-row: #3d1e24; |
| 70 | --input-bg: #1f2120; |
| 71 | } |
| 72 | |
| 73 | /* ── Explicit dark theme (beats Django's html[data-theme="dark"] specificity) */ |
| 74 | |
| 75 | :root[data-theme="dark"] { |
| 76 | --primary: #DC394C; |
| 77 | --secondary: #8B3138; |
| 78 | --accent: #DC394C; |
| 79 | --primary-fg: #FAFAFA; |
| 80 | |
| 81 | --button-fg: #FAFAFA; |
| 82 | --button-bg: #DC394C; |
| 83 | --button-hover-bg: #c42d3f; |
| 84 | --default-button-bg: #8B3138; |
| 85 | --default-button-hover-bg:#6a1921; |
| 86 | --close-button-bg: #4a4c4b; |
| 87 | --close-button-hover-bg: #5a5c5b; |
| 88 | --delete-button-bg: #8B3138; |
| 89 | --delete-button-hover-bg: #6a1921; |
| 90 | |
| 91 | --object-tools-fg: #FAFAFA; |
| 92 | --object-tools-bg: #8B3138; |
| 93 | --object-tools-hover-bg: #6a1921; |
| 94 | |
| 95 | --breadcrumbs-bg: #DC394C; |
| 96 | --breadcrumbs-fg: #FAFAFA; |
| 97 | --breadcrumbs-link-fg: #FAFAFA; |
| 98 | --link-selected-fg: #DC394C; |
| 99 | |
| 100 | --header-bg: #1f2120; |
| 101 | --header-color: #FAFAFA; |
| 102 | --header-branding-color: #FAFAFA; |
| 103 | --header-link-color: #FAFAFA; |
| 104 | |
| 105 | --body-fg: #FAFAFA; |
| 106 | --body-bg: #0d0d0d; |
| 107 | --body-quiet-color: #a8aaa9; |
| 108 | --body-loud-color: #ffffff; |
| 109 | |
| 110 | --link-fg: #e8677a; |
| 111 | --link-hover-color: #f0929f; |
| 112 | |
| 113 | --hairline-color: #2a2c2b; |
| 114 | --border-color: #2a2c2b; |
| 115 | |
| 116 | --error-fg: #ff7a7a; |
| 117 | --message-success-bg: #0f1f0f; |
| 118 | --message-success-color: #7ddf7d; |
| 119 | --message-success-border: #1e3d1e; |
| 120 | --message-warning-bg: #1f1c0f; |
| 121 | --message-warning-color: #e6c87a; |
| 122 | --message-warning-border: #3d3519; |
| 123 | --message-error-bg: #1f0f0f; |
| 124 | --message-error-color: #ff7a7a; |
| 125 | --message-error-border: #3d1a1a; |
| 126 | |
| 127 | --darkened-bg: #141514; |
| 128 | --selected-bg: #2d1219; |
| 129 | --selected-row: #2d1219; |
| 130 | --input-bg: #111211; |
| 131 | } |
| 132 | |
| 133 | /* ── Light theme ─────────────────────────────────────────────────────────── */ |
| 134 | |
| 135 | :root[data-theme="light"] { |
| 136 | /* Header — dark gray in light mode */ |
| 137 | --header-bg: #3a3a3a; |
| 138 | --header-color: #FAFAFA; |
| 139 | --header-branding-color: #FAFAFA; |
| 140 | --header-link-color: #FAFAFA; |
| 141 | |
| 142 | /* Brand accents — must repeat here to beat base.css html[data-theme="light"] specificity */ |
| 143 | --primary: #DC394C; |
| 144 | --secondary: #8B3138; |
| 145 | --accent: #DC394C; |
| 146 | --primary-fg: #FAFAFA; |
| 147 | |
| 148 | --button-fg: #FAFAFA; |
| 149 | --button-bg: #DC394C; |
| 150 | --button-hover-bg: #c42d3f; |
| 151 | --default-button-bg: #8B3138; |
| 152 | --default-button-hover-bg:#6a1921; |
| 153 | --delete-button-bg: #8B3138; |
| 154 | --delete-button-hover-bg: #6a1921; |
| 155 | |
| 156 | --object-tools-fg: #FAFAFA; |
| 157 | --object-tools-bg: #8B3138; |
| 158 | --object-tools-hover-bg: #6a1921; |
| 159 | |
| 160 | --breadcrumbs-bg: #DC394C; |
| 161 | --breadcrumbs-fg: #FAFAFA; |
| 162 | --breadcrumbs-link-fg: #FAFAFA; |
| 163 | --link-selected-fg: #DC394C; |
| 164 | |
| 165 | --body-fg: #1a1a1a; |
| 166 | --body-bg: #f8f8f8; |
| 167 | --body-quiet-color: #666666; |
| 168 | --body-loud-color: #000000; |
| 169 | |
| 170 | --link-fg: #DC394C; |
| 171 | --link-hover-color: #8B3138; |
| 172 | |
| 173 | --hairline-color: #e0e0e0; |
| 174 | --border-color: #e0e0e0; |
| 175 | |
| 176 | --error-fg: #c0392b; |
| 177 | --message-success-bg: #d4edda; |
| 178 | --message-success-color: #155724; |
| 179 | --message-success-border: #c3e6cb; |
| 180 | --message-warning-bg: #fff3cd; |
| 181 | --message-warning-color: #856404; |
| 182 | --message-warning-border: #ffeeba; |
| 183 | --message-error-bg: #f8d7da; |
| 184 | --message-error-color: #721c24; |
| 185 | --message-error-border: #f5c6cb; |
| 186 | |
| 187 | --darkened-bg: #eeeeee; |
| 188 | --selected-bg: #fde8ea; |
| 189 | --selected-row: #fde8ea; |
| 190 | --input-bg: #ffffff; |
| 191 | } |
| 192 | |
| 193 | /* ── System auto: respect prefers-color-scheme light ─────────────────────── */ |
| 194 | |
| 195 | @media (prefers-color-scheme: light) { |
| 196 | :root:not([data-theme="dark"]) { |
| 197 | /* Header — dark gray in light mode */ |
| 198 | --header-bg: #3a3a3a; |
| 199 | --header-color: #FAFAFA; |
| 200 | --header-branding-color: #FAFAFA; |
| 201 | --header-link-color: #FAFAFA; |
| 202 | |
| 203 | /* Brand accents */ |
| 204 | --primary: #DC394C; |
| 205 | --secondary: #8B3138; |
| 206 | --accent: #DC394C; |
| 207 | --primary-fg: #FAFAFA; |
| 208 | |
| 209 | --button-fg: #FAFAFA; |
| 210 | --button-bg: #DC394C; |
| 211 | --button-hover-bg: #c42d3f; |
| 212 | --default-button-bg: #8B3138; |
| 213 | --default-button-hover-bg:#6a1921; |
| 214 | --delete-button-bg: #8B3138; |
| 215 | --delete-button-hover-bg: #6a1921; |
| 216 | |
| 217 | --object-tools-fg: #FAFAFA; |
| 218 | --object-tools-bg: #8B3138; |
| 219 | --object-tools-hover-bg: #6a1921; |
| 220 | |
| 221 | --breadcrumbs-bg: #DC394C; |
| 222 | --breadcrumbs-fg: #FAFAFA; |
| 223 | --breadcrumbs-link-fg: #FAFAFA; |
| 224 | --link-selected-fg: #DC394C; |
| 225 | |
| 226 | --body-fg: #1a1a1a; |
| 227 | --body-bg: #f8f8f8; |
| 228 | --body-quiet-color: #666666; |
| 229 | --body-loud-color: #000000; |
| 230 | |
| 231 | --link-fg: #DC394C; |
| 232 | --link-hover-color: #8B3138; |
| 233 | |
| 234 | --hairline-color: #e0e0e0; |
| 235 | --border-color: #e0e0e0; |
| 236 | |
| 237 | --error-fg: #c0392b; |
| 238 | --message-success-bg: #d4edda; |
| 239 | --message-success-color: #155724; |
| 240 | --message-success-border: #c3e6cb; |
| 241 | --message-warning-bg: #fff3cd; |
| 242 | --message-warning-color: #856404; |
| 243 | --message-warning-border: #ffeeba; |
| 244 | --message-error-bg: #f8d7da; |
| 245 | --message-error-color: #721c24; |
| 246 | --message-error-border: #f5c6cb; |
| 247 | |
| 248 | --darkened-bg: #eeeeee; |
| 249 | --selected-bg: #fde8ea; |
| 250 | --selected-row: #fde8ea; |
| 251 | --input-bg: #ffffff; |
| 252 | } |
| 253 | } |
| 254 | |
| 255 | |
| 256 | /* ── Layout ─────────────────────────────────────────────────────────────── */ |
| 257 | |
| 258 | /* |
| 259 | * Django's stock base.css gives `.module { background: var(--darkened-bg) }`. |
| 260 | * #changelist has class "module", so the 30px margin gap between the table and |
| 261 | * the filter also gets --darkened-bg — the same color as the filter itself. |
| 262 | * Result: no visible gap. |
| 263 | * |
| 264 | * clientcove fixes this by shipping a modified base.css with |
| 265 | * `.module { background: var(--body-bg) }`. We can't change Django's base.css, |
| 266 | * so we target #changelist specifically to make the gap show the body background. |
| 267 | */ |
| 268 | #changelist.module { |
| 269 | background: transparent; |
| 270 | border: none; |
| 271 | } |
| 272 | |
| 273 | /* Prevent table from overflowing into the filter gap — layout owned by changelists.css */ |
| 274 | #changelist .changelist-form-container > div { |
| 275 | overflow-x: auto; |
| 276 | } |
| 277 | |
| 278 | /* ── Header — always dark, hardcoded values intentional ─────────────────── */ |
| 279 | |
| 280 | #header { |
| 281 | background: var(--header-bg); |
| 282 | border-bottom: 2px solid var(--primary); |
| 283 | } |
| 284 | |
| 285 | #header a:link, |
| 286 | #header a:visited { |
| 287 | color: var(--header-link-color); |
| 288 | } |
| 289 | |
| 290 | #header #branding h1 { |
| 291 | line-height: 1; |
| 292 | margin: 0; |
| 293 | } |
| 294 | |
| 295 | #header #branding .logo img { |
| 296 | pe="button"]:hoverblock; |
| 297 | } |
| 298 | |
| 299 | #header #user-tools { |
| 300 | color: #a8aaa9; |
| 301 | } |
| 302 | |
| 303 | #header #user-tools a { |
| 304 | color: |
| 305 | * Fossilrepo Admin Th�� supports dark, light, and system-auto modes |
| 306 | * Brand palette: |
| 307 | * #2B2D2C charcoal (dark body background) |
| 308 | * #DC394C red (primary brand accent) |
| 309 | * #8B3138 crimson (secondary / hover states) |
| 310 | * #FAFAFA near-white (foreground on dark) |
| 311 | */ |
| 312 | |
| 313 | /* ── Shared brand accents + dark defaults ───────────────────────────────── */ |
| 314 | |
| 315 | :root { |
| 316 | /* Brand accents — unchanged across all themes */ |
| 317 | --primary: #DC394C; |
| 318 | --secondary: #8B3138; |
| 319 | --accent: #DC394C; |
| 320 | --primary-fg: #FAFAFA; |
| 321 | |
| 322 | --button-fg: #FAFAFA; |
| 323 | --button-bg: #DC394C; |
| 324 | --button-hover-bg: #c42d3f; |
| 325 | --default-button-bg: #8B3138; |
| 326 | --default-button-hover-bg:#6a1921; |
| 327 | --close-button-bg: #4a4c4b; |
| 328 | --close-button-hover-bg: #5a5c5b; |
| 329 | --delete-button-bg: #8B3138; |
| 330 | --delete-button-hover-bg: #6a1921; |
| 331 | |
| 332 | --object-tools-fg: #FAFAFA; |
| 333 | --object-tools-bg: #8B3138; |
| 334 | --object-tools-hover-bg: #6a1921; |
| 335 | |
| 336 | --breadcrumbs-bg: #DC394C; |
| 337 | --breadcrumbs-fg: #FAFAFA; |
| 338 | --breadcrumbs-link-fg: #FAFAFA; |
| 339 | --link-selected-fg: #DC394C; |
| 340 | |
| 341 | /* Header stays dark in both themes for brand consistency */ |
| 342 | --header-color: #FAFAFA; |
| 343 | --header-branding-color: #FAFAFA; |
| 344 | --header-bg: #1f2120; |
| 345 | --header-link-color: #FAFAFA; |
| 346 | |
| 347 | /* Dark theme defaults (applied when no explicit data-theme is set) */ |
| 348 | --body-fg: #FAFAFA; |
| 349 | --body-bg: #2B2D2C; |
| 350 | --body-quiet-color: #a8aaa9; |
| 351 | --body-loud-color: #ffffff; |
| 352 | |
| 353 | --link-fg: #e8677a; |
| 354 | --link-hover-color: #f0929f; |
| 355 | |
| 356 | --hairline-color: #3d3f3e; |
| 357 | --border-color: #3d3f3e; |
| 358 | |
| 359 | --error-fg: #ff7a7a; |
| 360 | --message-success-bg: #173317; |
| 361 | --message-success-color: #7ddf7d; |
| 362 | --message-success-border: #2d5a2d; |
| 363 | --message-warning-bg: #332e17; |
| 364 | --message-warning-color: #e6c87a; |
| 365 | --message-warning-border: #5a4d2d; |
| 366 | --message-error-bg: #331717; |
| 367 | --message-error-color: #ff7a7a; |
| 368 | --message-error-border: #5a2d2d; |
| 369 | |
| 370 | --darkened-bg: #222423; |
| 371 | --selected-bg: #3d1e24; |
| 372 | --selected-row: #3d1e24; |
| 373 | --input-bg: #1f2120; |
| 374 | } |
| 375 | |
| 376 | /* ── Explicit dark theme (beats Django's html[data-theme="dark"] specificity) */ |
| 377 | |
| 378 | :root[data-theme="dark"] { |
| 379 | --primary: #DC394C; |
| 380 | --secondary: #8B3138; |
| 381 | --accent: #DC394C; |
| 382 | --primary-fg: #FAFAFA; |
| 383 | |
| 384 | --button-fg: #FAFAFA; |
| 385 | --button-bg: #DC394C; |
| 386 | --button-hover-bg: #c42d3f; |
| 387 | --default-button-bg: #8B3138; |
| 388 | --default-button-hover-bg:#6a1921; |
| 389 | --close-button-bg: #4a4c4b; |
| 390 | --close-button-hover-bg: #5a5c5b; |
| 391 | --delete-button-bg: #8B3138; |
| 392 | --delete-button-hover-bg: #6a1921; |
| 393 | |
| 394 | --object-tools-fg: #FAFAFA; |
| 395 | --object-tools-bg: #8B3138; |
| 396 | --object-tools-hover-bg: #6a1921; |
| 397 | |
| 398 | --breadcrumbs-bg: #DC394C; |
| 399 | --breadcrumbs-fg: #FAFAFA; |
| 400 | --breadcrumbs-link-fg: #FAFAFA; |
| 401 | --link-selected-fg: #DC394C; |
| 402 | |
| 403 | --header-bg: #1f2120; |
| 404 | --header-color: #FAFAFA; |
| 405 | --header-branding-color: #FAFAFA; |
| 406 | --header-link-color: #FAFAFA; |
| 407 | |
| 408 | --body-fg: #FAFAFA; |
| 409 | --body-bg: #0d0d0d; |
| 410 | --body-quiet-color: #a8aaa9; |
| 411 | --body-loud-color: #ffffff; |
| 412 | |
| 413 | --link-fg: #e8677a; |
| 414 | --link-hover-color: #f0929f; |
| 415 | |
| 416 | --hairline-color: #2a2c2b; |
| 417 | --border-color: #2a2c2b; |
| 418 | |
| 419 | --error-fg: #ff7a7a; |
| 420 | --message-success-bg: #0f1f0f; |
| 421 | --message-success-color: #7ddf7d; |
| 422 | --message-success-border: #1e3d1e; |
| 423 | --message-warning-bg: #1f1c0f; |
| 424 | --message-warning-color: #e6c87a; |
| 425 | --message-warning-border: #3d3519; |
| 426 | --message-error-bg: #1f0f0f; |
| 427 | --message-error-color: #ff7a7a; |
| 428 | --message-error-border: #3d1a1a; |
| 429 | |
| 430 | --darkened-bg: #141514; |
| 431 | --selected-bg: #2d1219; |
| 432 | --selected-row: #2d1219; |
| 433 | --input-bg: #111211; |
| 434 | } |
| 435 | |
| 436 | /* ── Light theme ─────────────────────────────────────────────────────────── */ |
| 437 | |
| 438 | :root[data-theme="light"] { |
| 439 | /* Header — dark gray in light mode */ |
| 440 | --header-bg: #3a3a3a; |
| 441 | --header-color: #FAFAFA; |
| 442 | --header-branding-color: #FAFAFA; |
| 443 | --header-link-color: #FAFAFA; |
| 444 | |
| 445 | /* Brand accents — must repeat here to beat base.css html[data-theme="light"] specificity */ |
| 446 | --primary: #DC394C; |
| 447 | --secondary: #8B3138; |
| 448 | --accent: #DC394C; |
| 449 | --primary-fg: #FAFAFA; |
| 450 | |
| 451 | --button-fg: #FAFAFA; |
| 452 | --button-bg: #DC394C; |
| 453 | --button-hover-bg: #c42d3f; |