aboutsummaryrefslogtreecommitdiffstats
path: root/core/css
diff options
context:
space:
mode:
Diffstat (limited to 'core/css')
-rw-r--r--core/css/animations.css4
-rw-r--r--core/css/animations.css.map1
-rw-r--r--core/css/animations.css.map.license2
-rw-r--r--core/css/animations.scss24
-rw-r--r--core/css/apps.css11
-rw-r--r--core/css/apps.css.map1
-rw-r--r--core/css/apps.css.map.license3
-rw-r--r--core/css/apps.scss676
-rw-r--r--core/css/css-variables.scss60
-rw-r--r--core/css/exception.css4
-rw-r--r--core/css/exception.css.map1
-rw-r--r--core/css/exception.css.map.license2
-rw-r--r--core/css/exception.scss13
-rw-r--r--core/css/fixes.css4
-rw-r--r--core/css/fixes.css.map1
-rw-r--r--core/css/fixes.css.map.license2
-rw-r--r--core/css/fixes.scss4
-rw-r--r--core/css/functions.css4
-rw-r--r--core/css/functions.css.map1
-rw-r--r--core/css/functions.css.map.license2
-rw-r--r--core/css/functions.scss104
-rw-r--r--core/css/global.css6
-rw-r--r--core/css/global.css.map1
-rw-r--r--core/css/global.css.map.license4
-rw-r--r--core/css/global.scss63
-rw-r--r--core/css/guest.css929
-rw-r--r--core/css/guest.css.map1
-rw-r--r--core/css/guest.css.map.license3
-rw-r--r--core/css/guest.scss892
-rw-r--r--core/css/header.css5
-rw-r--r--core/css/header.css.map1
-rw-r--r--core/css/header.css.map.license3
-rw-r--r--core/css/header.scss816
-rw-r--r--core/css/icons.css10
-rw-r--r--core/css/icons.css.map1
-rw-r--r--core/css/icons.css.map.license2
-rw-r--r--core/css/icons.scss436
-rw-r--r--core/css/ie.scss51
-rw-r--r--core/css/inputs.css11
-rw-r--r--core/css/inputs.css.map1
-rw-r--r--core/css/inputs.css.map.license3
-rw-r--r--core/css/inputs.scss902
-rw-r--r--core/css/login/authpicker.css30
-rw-r--r--core/css/lostpassword/resetpassword.css7
-rw-r--r--core/css/mobile.css7
-rw-r--r--core/css/mobile.css.map1
-rw-r--r--core/css/mobile.css.map.license2
-rw-r--r--core/css/mobile.scss72
-rw-r--r--core/css/public.css4
-rw-r--r--core/css/public.css.map1
-rw-r--r--core/css/public.css.map.license2
-rw-r--r--core/css/public.scss59
-rw-r--r--core/css/publicshareauth.css11
-rw-r--r--core/css/server.css67
-rw-r--r--core/css/server.css.map1
-rw-r--r--core/css/server.css.map.license2
-rw-r--r--core/css/server.scss27
-rw-r--r--core/css/styles.css8
-rw-r--r--core/css/styles.css.map1
-rw-r--r--core/css/styles.css.map.license3
-rw-r--r--core/css/styles.scss679
-rw-r--r--core/css/systemtags.css5
-rw-r--r--core/css/systemtags.css.map1
-rw-r--r--core/css/systemtags.css.map.license3
-rw-r--r--core/css/systemtags.scss25
-rw-r--r--core/css/toast.css10
-rw-r--r--core/css/toast.css.map1
-rw-r--r--core/css/toast.css.map.license2
-rw-r--r--core/css/toast.scss27
-rw-r--r--core/css/tooltip.css5
-rw-r--r--core/css/tooltip.css.map1
-rw-r--r--core/css/tooltip.css.map.license3
-rw-r--r--core/css/tooltip.scss44
-rw-r--r--core/css/variables.css4
-rw-r--r--core/css/variables.css.map1
-rw-r--r--core/css/variables.css.map.license2
-rw-r--r--core/css/variables.scss54
-rw-r--r--core/css/whatsnew.css4
-rw-r--r--core/css/whatsnew.css.map1
-rw-r--r--core/css/whatsnew.css.map.license2
-rw-r--r--core/css/whatsnew.scss13
81 files changed, 2637 insertions, 3620 deletions
diff --git a/core/css/animations.css b/core/css/animations.css
new file mode 100644
index 00000000000..02266e8c4ca
--- /dev/null
+++ b/core/css/animations.css
@@ -0,0 +1,4 @@
+/*!
+ * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */@-webkit-keyframes rotate{from{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes rotate{from{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}/*# sourceMappingURL=animations.css.map */
diff --git a/core/css/animations.css.map b/core/css/animations.css.map
new file mode 100644
index 00000000000..2be95d42b12
--- /dev/null
+++ b/core/css/animations.css.map
@@ -0,0 +1 @@
+{"version":3,"sourceRoot":"","sources":["animations.scss"],"names":[],"mappings":"AAAA;AAAA;AAAA;AAAA,GAIA,0BACC,KACC,+BACA,uBAED,GACC,iCACA,0BAGF,kBACC,KACC,+BACA,uBAED,GACC,iCACA","file":"animations.css"} \ No newline at end of file
diff --git a/core/css/animations.css.map.license b/core/css/animations.css.map.license
new file mode 100644
index 00000000000..bb22bd8f46a
--- /dev/null
+++ b/core/css/animations.css.map.license
@@ -0,0 +1,2 @@
+SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors
+SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/core/css/animations.scss b/core/css/animations.scss
new file mode 100644
index 00000000000..c3aac5ec753
--- /dev/null
+++ b/core/css/animations.scss
@@ -0,0 +1,24 @@
+/*!
+ * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+@-webkit-keyframes rotate {
+ from {
+ -webkit-transform: rotate(0deg);
+ transform: rotate(0deg);
+ }
+ to {
+ -webkit-transform: rotate(360deg);
+ transform: rotate(360deg);
+ }
+}
+@keyframes rotate {
+ from {
+ -webkit-transform: rotate(0deg);
+ transform: rotate(0deg);
+ }
+ to {
+ -webkit-transform: rotate(360deg);
+ transform: rotate(360deg);
+ }
+}
diff --git a/core/css/apps.css b/core/css/apps.css
new file mode 100644
index 00000000000..5964eb1817a
--- /dev/null
+++ b/core/css/apps.css
@@ -0,0 +1,11 @@
+/*!
+ * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ *//*!
+ * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ *//*!
+ * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */@media screen and (max-width: 1024px){:root{--body-container-margin: 0px !important;--body-container-radius: 0px !important}}html{width:100%;height:100%;position:absolute;background-color:var(--color-background-plain, var(--color-main-background))}body{background-color:var(--color-background-plain, var(--color-main-background));background-image:var(--image-background);background-size:cover;background-position:center;position:fixed;width:100%;height:calc(100vh - env(safe-area-inset-bottom))}h2,h3,h4,h5,h6{font-weight:600;line-height:1.5;margin-top:24px;margin-bottom:12px;color:var(--color-main-text)}h2{font-size:1.8em}h3{font-size:1.6em}h4{font-size:1.4em}h5{font-size:1.25em}h6{font-size:1.1em}em{font-style:normal;color:var(--color-text-maxcontrast)}dl{padding:12px 0}dt,dd{display:inline-block;padding:12px;padding-inline-start:0}dt{width:130px;white-space:nowrap;text-align:end}kbd{padding:4px 10px;border:1px solid #ccc;box-shadow:0 1px 0 rgba(0,0,0,.2);border-radius:var(--border-radius);display:inline-block;white-space:nowrap}#content[class*=app-] *{box-sizing:border-box}#app-navigation:not(.vue){--color-text-maxcontrast: var(--color-text-maxcontrast-background-blur, var(--color-main-text));width:300px;z-index:500;overflow-y:auto;overflow-x:hidden;background-color:var(--color-main-background-blur);backdrop-filter:var(--filter-background-blur);-webkit-backdrop-filter:var(--filter-background-blur);-webkit-user-select:none;position:sticky;height:100%;-moz-user-select:none;-ms-user-select:none;user-select:none;display:flex;flex-direction:column;flex-grow:0;flex-shrink:0}#app-navigation:not(.vue) .app-navigation-caption{font-weight:bold;line-height:var(--default-clickable-area);padding:10px var(--default-clickable-area) 0 var(--default-clickable-area);white-space:nowrap;text-overflow:ellipsis;box-shadow:none !important;user-select:none;pointer-events:none;margin-inline-start:10px}.app-navigation-personal .app-navigation-new,.app-navigation-administration .app-navigation-new{display:block;padding:calc(var(--default-grid-baseline)*2)}.app-navigation-personal .app-navigation-new button,.app-navigation-administration .app-navigation-new button{display:inline-block;width:100%;padding:10px;padding-inline-start:34px;text-align:start;margin:0}.app-navigation-personal li,.app-navigation-administration li{position:relative}.app-navigation-personal>ul,.app-navigation-administration>ul{position:relative;height:100%;width:100%;overflow-x:hidden;overflow-y:auto;box-sizing:border-box;display:flex;flex-direction:column;padding:calc(var(--default-grid-baseline)*2);padding-bottom:0}.app-navigation-personal>ul:last-child,.app-navigation-administration>ul:last-child{padding-bottom:calc(var(--default-grid-baseline)*2)}.app-navigation-personal>ul>li,.app-navigation-administration>ul>li{display:inline-flex;flex-wrap:wrap;order:1;flex-shrink:0;margin:0;margin-bottom:3px;width:100%;border-radius:var(--border-radius-element)}.app-navigation-personal>ul>li.pinned,.app-navigation-administration>ul>li.pinned{order:2}.app-navigation-personal>ul>li.pinned.first-pinned,.app-navigation-administration>ul>li.pinned.first-pinned{margin-top:auto !important}.app-navigation-personal>ul>li>.app-navigation-entry-deleted,.app-navigation-administration>ul>li>.app-navigation-entry-deleted{padding-inline-start:var(--default-clickable-area) !important}.app-navigation-personal>ul>li>.app-navigation-entry-edit,.app-navigation-administration>ul>li>.app-navigation-entry-edit{padding-inline-start:calc(var(--default-clickable-area) - 6px) !important}.app-navigation-personal>ul>li a:hover,.app-navigation-personal>ul>li a:hover>a,.app-navigation-personal>ul>li a:focus,.app-navigation-personal>ul>li a:focus>a,.app-navigation-administration>ul>li a:hover,.app-navigation-administration>ul>li a:hover>a,.app-navigation-administration>ul>li a:focus,.app-navigation-administration>ul>li a:focus>a{background-color:var(--color-background-hover)}.app-navigation-personal>ul>li a:focus-visible,.app-navigation-administration>ul>li a:focus-visible{box-shadow:0 0 0 4px var(--color-main-background);outline:2px solid var(--color-main-text)}.app-navigation-personal>ul>li.active,.app-navigation-personal>ul>li.active>a,.app-navigation-personal>ul>li a:active,.app-navigation-personal>ul>li a:active>a,.app-navigation-personal>ul>li a.selected,.app-navigation-personal>ul>li a.selected>a,.app-navigation-personal>ul>li a.active,.app-navigation-personal>ul>li a.active>a,.app-navigation-administration>ul>li.active,.app-navigation-administration>ul>li.active>a,.app-navigation-administration>ul>li a:active,.app-navigation-administration>ul>li a:active>a,.app-navigation-administration>ul>li a.selected,.app-navigation-administration>ul>li a.selected>a,.app-navigation-administration>ul>li a.active,.app-navigation-administration>ul>li a.active>a{background-color:var(--color-primary-element);color:var(--color-primary-element-text)}.app-navigation-personal>ul>li.active:first-child>img,.app-navigation-personal>ul>li.active>a:first-child>img,.app-navigation-personal>ul>li a:active:first-child>img,.app-navigation-personal>ul>li a:active>a:first-child>img,.app-navigation-personal>ul>li a.selected:first-child>img,.app-navigation-personal>ul>li a.selected>a:first-child>img,.app-navigation-personal>ul>li a.active:first-child>img,.app-navigation-personal>ul>li a.active>a:first-child>img,.app-navigation-administration>ul>li.active:first-child>img,.app-navigation-administration>ul>li.active>a:first-child>img,.app-navigation-administration>ul>li a:active:first-child>img,.app-navigation-administration>ul>li a:active>a:first-child>img,.app-navigation-administration>ul>li a.selected:first-child>img,.app-navigation-administration>ul>li a.selected>a:first-child>img,.app-navigation-administration>ul>li a.active:first-child>img,.app-navigation-administration>ul>li a.active>a:first-child>img{filter:var(--primary-invert-if-dark)}.app-navigation-personal>ul>li.icon-loading-small:after,.app-navigation-administration>ul>li.icon-loading-small:after{inset-inline-start:22px;top:22px}.app-navigation-personal>ul>li.deleted>ul,.app-navigation-personal>ul>li.collapsible:not(.open)>ul,.app-navigation-administration>ul>li.deleted>ul,.app-navigation-administration>ul>li.collapsible:not(.open)>ul{display:none}.app-navigation-personal>ul>li>ul,.app-navigation-administration>ul>li>ul{flex:0 1 auto;width:100%;position:relative}.app-navigation-personal>ul>li>ul>li,.app-navigation-administration>ul>li>ul>li{display:inline-flex;flex-wrap:wrap;padding-inline-start:var(--default-clickable-area);width:100%;margin-bottom:3px}.app-navigation-personal>ul>li>ul>li:hover,.app-navigation-personal>ul>li>ul>li:hover>a,.app-navigation-personal>ul>li>ul>li:focus,.app-navigation-personal>ul>li>ul>li:focus>a,.app-navigation-administration>ul>li>ul>li:hover,.app-navigation-administration>ul>li>ul>li:hover>a,.app-navigation-administration>ul>li>ul>li:focus,.app-navigation-administration>ul>li>ul>li:focus>a{border-radius:var(--border-radius-element);background-color:var(--color-background-hover)}.app-navigation-personal>ul>li>ul>li.active,.app-navigation-personal>ul>li>ul>li.active>a,.app-navigation-personal>ul>li>ul>li a.selected,.app-navigation-personal>ul>li>ul>li a.selected>a,.app-navigation-administration>ul>li>ul>li.active,.app-navigation-administration>ul>li>ul>li.active>a,.app-navigation-administration>ul>li>ul>li a.selected,.app-navigation-administration>ul>li>ul>li a.selected>a{border-radius:var(--border-radius-element);background-color:var(--color-primary-element-light)}.app-navigation-personal>ul>li>ul>li.active:first-child>img,.app-navigation-personal>ul>li>ul>li.active>a:first-child>img,.app-navigation-personal>ul>li>ul>li a.selected:first-child>img,.app-navigation-personal>ul>li>ul>li a.selected>a:first-child>img,.app-navigation-administration>ul>li>ul>li.active:first-child>img,.app-navigation-administration>ul>li>ul>li.active>a:first-child>img,.app-navigation-administration>ul>li>ul>li a.selected:first-child>img,.app-navigation-administration>ul>li>ul>li a.selected>a:first-child>img{filter:var(--primary-invert-if-dark)}.app-navigation-personal>ul>li>ul>li.icon-loading-small:after,.app-navigation-administration>ul>li>ul>li.icon-loading-small:after{inset-inline-start:calc(var(--default-clickable-area)/2)}.app-navigation-personal>ul>li>ul>li>.app-navigation-entry-deleted,.app-navigation-administration>ul>li>ul>li>.app-navigation-entry-deleted{margin-inline-start:4px;padding-inline-start:84px}.app-navigation-personal>ul>li>ul>li>.app-navigation-entry-edit,.app-navigation-administration>ul>li>ul>li>.app-navigation-entry-edit{margin-inline-start:4px;padding-inline-start:calc(2*var(--default-clickable-area) - 10px) !important}.app-navigation-personal>ul>li,.app-navigation-personal>ul>li>ul>li,.app-navigation-administration>ul>li,.app-navigation-administration>ul>li>ul>li{position:relative;box-sizing:border-box}.app-navigation-personal>ul>li.icon-loading-small>a,.app-navigation-personal>ul>li.icon-loading-small>.app-navigation-entry-bullet,.app-navigation-personal>ul>li>ul>li.icon-loading-small>a,.app-navigation-personal>ul>li>ul>li.icon-loading-small>.app-navigation-entry-bullet,.app-navigation-administration>ul>li.icon-loading-small>a,.app-navigation-administration>ul>li.icon-loading-small>.app-navigation-entry-bullet,.app-navigation-administration>ul>li>ul>li.icon-loading-small>a,.app-navigation-administration>ul>li>ul>li.icon-loading-small>.app-navigation-entry-bullet{background:rgba(0,0,0,0) !important}.app-navigation-personal>ul>li>a,.app-navigation-personal>ul>li>ul>li>a,.app-navigation-administration>ul>li>a,.app-navigation-administration>ul>li>ul>li>a{background-size:16px 16px;background-repeat:no-repeat;display:block;justify-content:space-between;line-height:var(--default-clickable-area);min-height:var(--default-clickable-area);padding-block:0;padding-inline:calc(2*var(--default-grid-baseline));overflow:hidden;box-sizing:border-box;white-space:nowrap;text-overflow:ellipsis;border-radius:var(--border-radius-element);color:var(--color-main-text);flex:1 1 0px;z-index:100}.app-navigation-personal>ul>li>a.svg,.app-navigation-personal>ul>li>ul>li>a.svg,.app-navigation-administration>ul>li>a.svg,.app-navigation-administration>ul>li>ul>li>a.svg{padding-block:0;padding-inline:var(--default-clickable-area) 12px}.app-navigation-personal>ul>li>a.svg :focus-visible,.app-navigation-personal>ul>li>ul>li>a.svg :focus-visible,.app-navigation-administration>ul>li>a.svg :focus-visible,.app-navigation-administration>ul>li>ul>li>a.svg :focus-visible{padding-block:0;padding-inline:calc(var(--default-clickable-area) - 2px) 8px}.app-navigation-personal>ul>li>a:first-child img,.app-navigation-personal>ul>li>ul>li>a:first-child img,.app-navigation-administration>ul>li>a:first-child img,.app-navigation-administration>ul>li>ul>li>a:first-child img{margin-inline-end:calc(2*var(--default-grid-baseline)) !important;width:16px;height:16px;filter:var(--background-invert-if-dark)}.app-navigation-personal>ul>li>a>.app-navigation-entry-utils,.app-navigation-personal>ul>li>ul>li>a>.app-navigation-entry-utils,.app-navigation-administration>ul>li>a>.app-navigation-entry-utils,.app-navigation-administration>ul>li>ul>li>a>.app-navigation-entry-utils{display:inline-block}.app-navigation-personal>ul>li>a>.app-navigation-entry-utils .app-navigation-entry-utils-counter,.app-navigation-personal>ul>li>ul>li>a>.app-navigation-entry-utils .app-navigation-entry-utils-counter,.app-navigation-administration>ul>li>a>.app-navigation-entry-utils .app-navigation-entry-utils-counter,.app-navigation-administration>ul>li>ul>li>a>.app-navigation-entry-utils .app-navigation-entry-utils-counter{padding-inline-end:0 !important}.app-navigation-personal>ul>li>.app-navigation-entry-bullet,.app-navigation-personal>ul>li>ul>li>.app-navigation-entry-bullet,.app-navigation-administration>ul>li>.app-navigation-entry-bullet,.app-navigation-administration>ul>li>ul>li>.app-navigation-entry-bullet{position:absolute;display:block;margin:16px;width:12px;height:12px;border:none;border-radius:50%;cursor:pointer;transition:background 100ms ease-in-out}.app-navigation-personal>ul>li>.app-navigation-entry-bullet+a,.app-navigation-personal>ul>li>ul>li>.app-navigation-entry-bullet+a,.app-navigation-administration>ul>li>.app-navigation-entry-bullet+a,.app-navigation-administration>ul>li>ul>li>.app-navigation-entry-bullet+a{background:rgba(0,0,0,0) !important}.app-navigation-personal>ul>li>.app-navigation-entry-menu,.app-navigation-personal>ul>li>ul>li>.app-navigation-entry-menu,.app-navigation-administration>ul>li>.app-navigation-entry-menu,.app-navigation-administration>ul>li>ul>li>.app-navigation-entry-menu{top:var(--default-clickable-area)}.app-navigation-personal>ul>li.editing .app-navigation-entry-edit,.app-navigation-personal>ul>li>ul>li.editing .app-navigation-entry-edit,.app-navigation-administration>ul>li.editing .app-navigation-entry-edit,.app-navigation-administration>ul>li>ul>li.editing .app-navigation-entry-edit{opacity:1;z-index:250}.app-navigation-personal>ul>li.deleted .app-navigation-entry-deleted,.app-navigation-personal>ul>li>ul>li.deleted .app-navigation-entry-deleted,.app-navigation-administration>ul>li.deleted .app-navigation-entry-deleted,.app-navigation-administration>ul>li>ul>li.deleted .app-navigation-entry-deleted{transform:translateX(0);z-index:250}.app-navigation-personal.hidden,.app-navigation-administration.hidden{display:none}.app-navigation-personal .app-navigation-entry-utils .app-navigation-entry-utils-menu-button>button,.app-navigation-personal .app-navigation-entry-deleted .app-navigation-entry-deleted-button,.app-navigation-administration .app-navigation-entry-utils .app-navigation-entry-utils-menu-button>button,.app-navigation-administration .app-navigation-entry-deleted .app-navigation-entry-deleted-button{border:0;opacity:.5;background-color:rgba(0,0,0,0);background-repeat:no-repeat;background-position:center}.app-navigation-personal .app-navigation-entry-utils .app-navigation-entry-utils-menu-button>button:hover,.app-navigation-personal .app-navigation-entry-utils .app-navigation-entry-utils-menu-button>button:focus,.app-navigation-personal .app-navigation-entry-deleted .app-navigation-entry-deleted-button:hover,.app-navigation-personal .app-navigation-entry-deleted .app-navigation-entry-deleted-button:focus,.app-navigation-administration .app-navigation-entry-utils .app-navigation-entry-utils-menu-button>button:hover,.app-navigation-administration .app-navigation-entry-utils .app-navigation-entry-utils-menu-button>button:focus,.app-navigation-administration .app-navigation-entry-deleted .app-navigation-entry-deleted-button:hover,.app-navigation-administration .app-navigation-entry-deleted .app-navigation-entry-deleted-button:focus{background-color:rgba(0,0,0,0);opacity:1}.app-navigation-personal .collapsible .collapse,.app-navigation-administration .collapsible .collapse{opacity:0;position:absolute;width:var(--default-clickable-area);height:var(--default-clickable-area);margin:0;z-index:110;inset-inline-start:0}.app-navigation-personal .collapsible .collapse:focus-visible,.app-navigation-administration .collapsible .collapse:focus-visible{opacity:1;border-width:0;box-shadow:inset 0 0 0 2px var(--color-primary-element);background:none}.app-navigation-personal .collapsible:before,.app-navigation-administration .collapsible:before{position:absolute;height:var(--default-clickable-area);width:var(--default-clickable-area);margin:0;padding:0;background:none;background-image:var(--icon-triangle-s-dark);background-size:16px;background-repeat:no-repeat;background-position:center;border:none;outline:none !important;box-shadow:none;content:" ";opacity:0;-webkit-transform:rotate(-90deg);-ms-transform:rotate(-90deg);transform:rotate(-90deg);z-index:105;border-radius:50%;transition:opacity 100ms ease-in-out}.app-navigation-personal .collapsible>a:first-child,.app-navigation-administration .collapsible>a:first-child{padding-inline-start:var(--default-clickable-area)}.app-navigation-personal .collapsible:hover:before,.app-navigation-personal .collapsible:focus:before,.app-navigation-administration .collapsible:hover:before,.app-navigation-administration .collapsible:focus:before{opacity:1}.app-navigation-personal .collapsible:hover>a,.app-navigation-personal .collapsible:focus>a,.app-navigation-administration .collapsible:hover>a,.app-navigation-administration .collapsible:focus>a{background-image:none}.app-navigation-personal .collapsible:hover>.app-navigation-entry-bullet,.app-navigation-personal .collapsible:focus>.app-navigation-entry-bullet,.app-navigation-administration .collapsible:hover>.app-navigation-entry-bullet,.app-navigation-administration .collapsible:focus>.app-navigation-entry-bullet{background:rgba(0,0,0,0) !important}.app-navigation-personal .collapsible.open:before,.app-navigation-administration .collapsible.open:before{-webkit-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0)}.app-navigation-personal .app-navigation-entry-utils,.app-navigation-administration .app-navigation-entry-utils{flex:0 1 auto}.app-navigation-personal .app-navigation-entry-utils ul,.app-navigation-administration .app-navigation-entry-utils ul{display:flex !important;align-items:center;justify-content:flex-end}.app-navigation-personal .app-navigation-entry-utils li,.app-navigation-administration .app-navigation-entry-utils li{width:var(--default-clickable-area) !important;height:var(--default-clickable-area)}.app-navigation-personal .app-navigation-entry-utils button,.app-navigation-administration .app-navigation-entry-utils button{height:100%;width:100%;margin:0;box-shadow:none}.app-navigation-personal .app-navigation-entry-utils .app-navigation-entry-utils-menu-button button:not([class^=icon-]):not([class*=" icon-"]),.app-navigation-administration .app-navigation-entry-utils .app-navigation-entry-utils-menu-button button:not([class^=icon-]):not([class*=" icon-"]){background-image:var(--icon-more-dark)}.app-navigation-personal .app-navigation-entry-utils .app-navigation-entry-utils-menu-button:hover button,.app-navigation-personal .app-navigation-entry-utils .app-navigation-entry-utils-menu-button:focus button,.app-navigation-administration .app-navigation-entry-utils .app-navigation-entry-utils-menu-button:hover button,.app-navigation-administration .app-navigation-entry-utils .app-navigation-entry-utils-menu-button:focus button{background-color:rgba(0,0,0,0);opacity:1}.app-navigation-personal .app-navigation-entry-utils .app-navigation-entry-utils-counter,.app-navigation-administration .app-navigation-entry-utils .app-navigation-entry-utils-counter{overflow:hidden;text-align:end;font-size:9pt;line-height:var(--default-clickable-area);padding:0 12px}.app-navigation-personal .app-navigation-entry-utils .app-navigation-entry-utils-counter.highlighted,.app-navigation-administration .app-navigation-entry-utils .app-navigation-entry-utils-counter.highlighted{padding:0;text-align:center}.app-navigation-personal .app-navigation-entry-utils .app-navigation-entry-utils-counter.highlighted span,.app-navigation-administration .app-navigation-entry-utils .app-navigation-entry-utils-counter.highlighted span{padding:2px 5px;border-radius:10px;background-color:var(--color-primary-element);color:var(--color-primary-element-text)}.app-navigation-personal .app-navigation-entry-edit,.app-navigation-administration .app-navigation-entry-edit{padding-inline:5px;display:block;width:calc(100% - 1px);transition:opacity 250ms ease-in-out;opacity:0;position:absolute;background-color:var(--color-main-background);z-index:-1}.app-navigation-personal .app-navigation-entry-edit form,.app-navigation-personal .app-navigation-entry-edit div,.app-navigation-administration .app-navigation-entry-edit form,.app-navigation-administration .app-navigation-entry-edit div{display:inline-flex;width:100%}.app-navigation-personal .app-navigation-entry-edit input,.app-navigation-administration .app-navigation-entry-edit input{padding:5px;margin-inline-end:0;height:38px}.app-navigation-personal .app-navigation-entry-edit input:hover,.app-navigation-personal .app-navigation-entry-edit input:focus,.app-navigation-administration .app-navigation-entry-edit input:hover,.app-navigation-administration .app-navigation-entry-edit input:focus{z-index:1}.app-navigation-personal .app-navigation-entry-edit input[type=text],.app-navigation-administration .app-navigation-entry-edit input[type=text]{width:100%;min-width:0;border-end-end-radius:0;border-start-end-radius:0}.app-navigation-personal .app-navigation-entry-edit button,.app-navigation-personal .app-navigation-entry-edit input:not([type=text]),.app-navigation-administration .app-navigation-entry-edit button,.app-navigation-administration .app-navigation-entry-edit input:not([type=text]){width:36px;height:38px;flex:0 0 36px}.app-navigation-personal .app-navigation-entry-edit button:not(:last-child),.app-navigation-personal .app-navigation-entry-edit input:not([type=text]):not(:last-child),.app-navigation-administration .app-navigation-entry-edit button:not(:last-child),.app-navigation-administration .app-navigation-entry-edit input:not([type=text]):not(:last-child){border-radius:0 !important}.app-navigation-personal .app-navigation-entry-edit button:not(:first-child),.app-navigation-personal .app-navigation-entry-edit input:not([type=text]):not(:first-child),.app-navigation-administration .app-navigation-entry-edit button:not(:first-child),.app-navigation-administration .app-navigation-entry-edit input:not([type=text]):not(:first-child){margin-inline-start:-1px}.app-navigation-personal .app-navigation-entry-edit button:last-child,.app-navigation-personal .app-navigation-entry-edit input:not([type=text]):last-child,.app-navigation-administration .app-navigation-entry-edit button:last-child,.app-navigation-administration .app-navigation-entry-edit input:not([type=text]):last-child{border-end-end-radius:var(--border-radius);border-start-end-radius:var(--border-radius);border-end-start-radius:0;border-start-start-radius:0}.app-navigation-personal .app-navigation-entry-deleted,.app-navigation-administration .app-navigation-entry-deleted{display:inline-flex;padding-inline-start:var(--default-clickable-area);transform:translateX(300px)}.app-navigation-personal .app-navigation-entry-deleted .app-navigation-entry-deleted-description,.app-navigation-administration .app-navigation-entry-deleted .app-navigation-entry-deleted-description{position:relative;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;flex:1 1 0px;line-height:var(--default-clickable-area)}.app-navigation-personal .app-navigation-entry-deleted .app-navigation-entry-deleted-button,.app-navigation-administration .app-navigation-entry-deleted .app-navigation-entry-deleted-button{margin:0;height:var(--default-clickable-area);width:var(--default-clickable-area);line-height:var(--default-clickable-area)}.app-navigation-personal .app-navigation-entry-deleted .app-navigation-entry-deleted-button:hover,.app-navigation-personal .app-navigation-entry-deleted .app-navigation-entry-deleted-button:focus,.app-navigation-administration .app-navigation-entry-deleted .app-navigation-entry-deleted-button:hover,.app-navigation-administration .app-navigation-entry-deleted .app-navigation-entry-deleted-button:focus{opacity:1}.app-navigation-personal .app-navigation-entry-edit,.app-navigation-personal .app-navigation-entry-deleted,.app-navigation-administration .app-navigation-entry-edit,.app-navigation-administration .app-navigation-entry-deleted{width:calc(100% - 1px);transition:transform 250ms ease-in-out,opacity 250ms ease-in-out,z-index 250ms ease-in-out;position:absolute;inset-inline-start:0;background-color:var(--color-main-background);box-sizing:border-box}.app-navigation-personal .drag-and-drop,.app-navigation-administration .drag-and-drop{-webkit-transition:padding-bottom 500ms ease 0s;transition:padding-bottom 500ms ease 0s;padding-bottom:40px}.app-navigation-personal .error,.app-navigation-administration .error{color:var(--color-error)}.app-navigation-personal .app-navigation-entry-utils ul,.app-navigation-personal .app-navigation-entry-menu ul,.app-navigation-administration .app-navigation-entry-utils ul,.app-navigation-administration .app-navigation-entry-menu ul{list-style-type:none}body[dir=ltr] .app-navigation-personal .app-navigation-new button,body[dir=ltr] .app-navigation-administration .app-navigation-new button{background-position:left 10px center}body[dir=ltr] .app-navigation-personal>ul>li>ul>li>a,body[dir=ltr] .app-navigation-administration>ul>li>ul>li>a{background-position:left 14px center}body[dir=ltr] .app-navigation-personal>ul>li>ul>li>a>.app-navigation-entry-utils,body[dir=ltr] .app-navigation-administration>ul>li>ul>li>a>.app-navigation-entry-utils{float:right}body[dir=rtl] .app-navigation-personal .app-navigation-new button,body[dir=rtl] .app-navigation-administration .app-navigation-new button{background-position:right 10px center}body[dir=rtl] .app-navigation-personal>ul>li>ul>li>a,body[dir=rtl] .app-navigation-administration>ul>li>ul>li>a{background-position:right 14px center}body[dir=rtl] .app-navigation-personal>ul>li>ul>li>a>.app-navigation-entry-utils,body[dir=rtl] .app-navigation-administration>ul>li>ul>li>a>.app-navigation-entry-utils{float:left}#content{box-sizing:border-box;position:static;margin:var(--body-container-margin);margin-top:var(--header-height);padding:0;display:flex;width:calc(100% - var(--body-container-margin)*2);height:var(--body-height);border-radius:var(--body-container-radius);overflow:clip}#content:not(.with-sidebar--full){position:fixed}@media only screen and (max-width: 1024px){#content{border-start-start-radius:var(--border-radius-large);border-start-end-radius:var(--border-radius-large)}#app-navigation{border-start-start-radius:var(--border-radius-large)}#app-sidebar{border-start-end-radius:var(--border-radius-large)}}#app-content{z-index:1000;background-color:var(--color-main-background);flex-basis:100vw;overflow:auto;position:initial;height:100%}#app-content>.section:first-child{border-top:none}#app-content #app-content-wrapper{display:flex;position:relative;align-items:stretch;min-height:100%}#app-content #app-content-wrapper .app-content-details{flex:1 1 524px}#app-content #app-content-wrapper .app-content-details #app-navigation-toggle-back{display:none}#app-content::-webkit-scrollbar-button{height:var(--body-container-radius)}#app-sidebar{width:27vw;min-width:300px;max-width:500px;display:block;position:-webkit-sticky;position:sticky;top:50px;inset-inline-end:0;overflow-y:auto;overflow-x:hidden;z-index:1500;opacity:.7px;height:calc(100vh - 50px);background:var(--color-main-background);border-inline-start:1px solid var(--color-border);flex-shrink:0}#app-sidebar.disappear{display:none}#app-settings{margin-top:auto}#app-settings.open #app-settings-content,#app-settings.opened #app-settings-content{display:block}#app-settings-content{display:none;padding:calc(var(--default-grid-baseline)*2);padding-top:0;padding-inline-start:calc(var(--default-grid-baseline)*4);max-height:300px;overflow-y:auto;box-sizing:border-box}#app-settings-content input[type=text]{width:93%}#app-settings-content .info-text{padding-block:5px 7px;padding-inline:22px 0;color:var(--color-text-lighter)}#app-settings-content input[type=checkbox].radio+label,#app-settings-content input[type=checkbox].checkbox+label,#app-settings-content input[type=radio].radio+label,#app-settings-content input[type=radio].checkbox+label{display:inline-block;width:100%;padding:5px 0}#app-settings-header{box-sizing:border-box;background-color:rgba(0,0,0,0);overflow:hidden;border-radius:calc(var(--default-clickable-area)/2);padding:calc(var(--default-grid-baseline)*2);padding-top:0}#app-settings-header .settings-button{display:flex;align-items:center;height:var(--default-clickable-area);width:100%;padding:0;margin:0;background-color:rgba(0,0,0,0);box-shadow:none;border:0;border-radius:calc(var(--default-clickable-area)/2);text-align:start;font-weight:normal;font-size:100%;opacity:.8;color:var(--color-main-text)}#app-settings-header .settings-button.opened{border-top:solid 1px var(--color-border);background-color:var(--color-main-background);margin-top:8px}#app-settings-header .settings-button:hover,#app-settings-header .settings-button:focus{background-color:var(--color-background-hover)}#app-settings-header .settings-button::before{background-image:var(--icon-settings-dark);background-repeat:no-repeat;content:"";width:var(--default-clickable-area);height:var(--default-clickable-area);top:0;inset-inline-start:0;display:block}#app-settings-header .settings-button:focus-visible{box-shadow:0 0 0 2px inset var(--color-primary-element) !important}body[dir=ltr] #app-settings-header .settings-button::before{background-position:left 14px center}body[dir=ltr] #app-settings-header .settings-button:focus-visible{background-position:left 12px center}body[dir=rtl] #app-settings-header .settings-button::before{background-position:right 14px center}body[dir=rtl] #app-settings-header .settings-button:focus-visible{background-position:right 12px center}.section{display:block;padding:30px;margin-bottom:24px}.section.hidden{display:none !important}.section input[type=checkbox],.section input[type=radio]{vertical-align:-2px;margin-inline-end:4px}.sub-section{position:relative;margin-top:10px;margin-inline-start:27px;margin-bottom:10px}.appear{opacity:1;-webkit-transition:opacity 500ms ease 0s;-moz-transition:opacity 500ms ease 0s;-ms-transition:opacity 500ms ease 0s;-o-transition:opacity 500ms ease 0s;transition:opacity 500ms ease 0s}.appear.transparent{opacity:0}.tabHeaders{display:flex;margin-bottom:16px}.tabHeaders .tabHeader{display:flex;flex-direction:column;flex-grow:1;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;color:var(--color-text-lighter);margin-bottom:1px;padding:5px}.tabHeaders .tabHeader.hidden{display:none}.tabHeaders .tabHeader:first-child{padding-inline-start:15px}.tabHeaders .tabHeader:last-child{padding-inline-end:15px}.tabHeaders .tabHeader .icon{display:inline-block;width:100%;height:16px;background-size:16px;vertical-align:middle;margin-top:-2px;margin-inline-end:3px;opacity:.7;cursor:pointer}.tabHeaders .tabHeader a{color:var(--color-text-lighter);margin-bottom:1px;overflow:hidden;text-overflow:ellipsis}.tabHeaders .tabHeader.selected{font-weight:bold}.tabHeaders .tabHeader.selected,.tabHeaders .tabHeader:hover,.tabHeaders .tabHeader:focus{margin-bottom:0px;color:var(--color-main-text);border-bottom:1px solid var(--color-text-lighter)}.tabsContainer .tab{padding:0 15px 15px}body[dir=ltr] .tabsContainer{clear:left}body[dir=rtl] .tabsContainer{clear:right}.v-popper__inner div.open>ul>li>a>span.action-link__icon,.v-popper__inner div.open>ul>li>a>span.action-router__icon,.v-popper__inner div.open>ul>li>a>img{filter:var(--background-invert-if-dark)}.v-popper__inner div.open>ul>li>a>span.action-link__icon[src^=data],.v-popper__inner div.open>ul>li>a>span.action-router__icon[src^=data],.v-popper__inner div.open>ul>li>a>img[src^=data]{filter:none}.bubble,.app-navigation-entry-menu,.popovermenu{position:absolute;background-color:var(--color-main-background);color:var(--color-main-text);border-radius:var(--border-radius-large);padding:3px;z-index:110;margin:5px;margin-top:-5px;inset-inline-end:0;filter:drop-shadow(0 1px 3px var(--color-box-shadow));display:none;will-change:filter}.bubble:after,.app-navigation-entry-menu:after,.popovermenu:after{bottom:100%;inset-inline-end:7px;border:solid rgba(0,0,0,0);content:" ";height:0;width:0;position:absolute;pointer-events:none;border-bottom-color:var(--color-main-background);border-width:9px}.bubble.menu-center,.app-navigation-entry-menu.menu-center,.popovermenu.menu-center{transform:translateX(50%);inset-inline-end:50%;margin-inline-end:0}.bubble.menu-center:after,.app-navigation-entry-menu.menu-center:after,.popovermenu.menu-center:after{inset-inline-end:50%;transform:translateX(50%)}.bubble.menu-left,.app-navigation-entry-menu.menu-left,.popovermenu.menu-left{inset-inline:0 auto;margin-inline-end:0}.bubble.menu-left:after,.app-navigation-entry-menu.menu-left:after,.popovermenu.menu-left:after{inset-inline:6px auto}.bubble.open,.app-navigation-entry-menu.open,.popovermenu.open{display:block}.bubble.contactsmenu-popover,.app-navigation-entry-menu.contactsmenu-popover,.popovermenu.contactsmenu-popover{margin:0}.bubble ul,.app-navigation-entry-menu ul,.popovermenu ul{display:flex !important;flex-direction:column}.bubble li,.app-navigation-entry-menu li,.popovermenu li{display:flex;flex:0 0 auto}.bubble li.hidden,.app-navigation-entry-menu li.hidden,.popovermenu li.hidden{display:none}.bubble li>button,.bubble li>a,.bubble li>.menuitem,.app-navigation-entry-menu li>button,.app-navigation-entry-menu li>a,.app-navigation-entry-menu li>.menuitem,.popovermenu li>button,.popovermenu li>a,.popovermenu li>.menuitem{cursor:pointer;line-height:34px;border:0;border-radius:var(--border-radius-large);background-color:rgba(0,0,0,0);display:flex;align-items:flex-start;height:auto;margin:0;font-weight:normal;box-shadow:none;width:100%;color:var(--color-main-text);white-space:nowrap}.bubble li>button span[class^=icon-],.bubble li>button span[class*=" icon-"],.bubble li>button[class^=icon-],.bubble li>button[class*=" icon-"],.bubble li>a span[class^=icon-],.bubble li>a span[class*=" icon-"],.bubble li>a[class^=icon-],.bubble li>a[class*=" icon-"],.bubble li>.menuitem span[class^=icon-],.bubble li>.menuitem span[class*=" icon-"],.bubble li>.menuitem[class^=icon-],.bubble li>.menuitem[class*=" icon-"],.app-navigation-entry-menu li>button span[class^=icon-],.app-navigation-entry-menu li>button span[class*=" icon-"],.app-navigation-entry-menu li>button[class^=icon-],.app-navigation-entry-menu li>button[class*=" icon-"],.app-navigation-entry-menu li>a span[class^=icon-],.app-navigation-entry-menu li>a span[class*=" icon-"],.app-navigation-entry-menu li>a[class^=icon-],.app-navigation-entry-menu li>a[class*=" icon-"],.app-navigation-entry-menu li>.menuitem span[class^=icon-],.app-navigation-entry-menu li>.menuitem span[class*=" icon-"],.app-navigation-entry-menu li>.menuitem[class^=icon-],.app-navigation-entry-menu li>.menuitem[class*=" icon-"],.popovermenu li>button span[class^=icon-],.popovermenu li>button span[class*=" icon-"],.popovermenu li>button[class^=icon-],.popovermenu li>button[class*=" icon-"],.popovermenu li>a span[class^=icon-],.popovermenu li>a span[class*=" icon-"],.popovermenu li>a[class^=icon-],.popovermenu li>a[class*=" icon-"],.popovermenu li>.menuitem span[class^=icon-],.popovermenu li>.menuitem span[class*=" icon-"],.popovermenu li>.menuitem[class^=icon-],.popovermenu li>.menuitem[class*=" icon-"]{min-width:0;min-height:0;background-position:9px center;background-size:16px}.bubble li>button span[class^=icon-],.bubble li>button span[class*=" icon-"],.bubble li>a span[class^=icon-],.bubble li>a span[class*=" icon-"],.bubble li>.menuitem span[class^=icon-],.bubble li>.menuitem span[class*=" icon-"],.app-navigation-entry-menu li>button span[class^=icon-],.app-navigation-entry-menu li>button span[class*=" icon-"],.app-navigation-entry-menu li>a span[class^=icon-],.app-navigation-entry-menu li>a span[class*=" icon-"],.app-navigation-entry-menu li>.menuitem span[class^=icon-],.app-navigation-entry-menu li>.menuitem span[class*=" icon-"],.popovermenu li>button span[class^=icon-],.popovermenu li>button span[class*=" icon-"],.popovermenu li>a span[class^=icon-],.popovermenu li>a span[class*=" icon-"],.popovermenu li>.menuitem span[class^=icon-],.popovermenu li>.menuitem span[class*=" icon-"]{padding:17px 0 17px 34px}.bubble li>button:not([class^=icon-]):not([class*=icon-])>span:not([class^=icon-]):not([class*=icon-]):first-child,.bubble li>button:not([class^=icon-]):not([class*=icon-])>input:not([class^=icon-]):not([class*=icon-]):first-child,.bubble li>button:not([class^=icon-]):not([class*=icon-])>form:not([class^=icon-]):not([class*=icon-]):first-child,.bubble li>a:not([class^=icon-]):not([class*=icon-])>span:not([class^=icon-]):not([class*=icon-]):first-child,.bubble li>a:not([class^=icon-]):not([class*=icon-])>input:not([class^=icon-]):not([class*=icon-]):first-child,.bubble li>a:not([class^=icon-]):not([class*=icon-])>form:not([class^=icon-]):not([class*=icon-]):first-child,.bubble li>.menuitem:not([class^=icon-]):not([class*=icon-])>span:not([class^=icon-]):not([class*=icon-]):first-child,.bubble li>.menuitem:not([class^=icon-]):not([class*=icon-])>input:not([class^=icon-]):not([class*=icon-]):first-child,.bubble li>.menuitem:not([class^=icon-]):not([class*=icon-])>form:not([class^=icon-]):not([class*=icon-]):first-child,.app-navigation-entry-menu li>button:not([class^=icon-]):not([class*=icon-])>span:not([class^=icon-]):not([class*=icon-]):first-child,.app-navigation-entry-menu li>button:not([class^=icon-]):not([class*=icon-])>input:not([class^=icon-]):not([class*=icon-]):first-child,.app-navigation-entry-menu li>button:not([class^=icon-]):not([class*=icon-])>form:not([class^=icon-]):not([class*=icon-]):first-child,.app-navigation-entry-menu li>a:not([class^=icon-]):not([class*=icon-])>span:not([class^=icon-]):not([class*=icon-]):first-child,.app-navigation-entry-menu li>a:not([class^=icon-]):not([class*=icon-])>input:not([class^=icon-]):not([class*=icon-]):first-child,.app-navigation-entry-menu li>a:not([class^=icon-]):not([class*=icon-])>form:not([class^=icon-]):not([class*=icon-]):first-child,.app-navigation-entry-menu li>.menuitem:not([class^=icon-]):not([class*=icon-])>span:not([class^=icon-]):not([class*=icon-]):first-child,.app-navigation-entry-menu li>.menuitem:not([class^=icon-]):not([class*=icon-])>input:not([class^=icon-]):not([class*=icon-]):first-child,.app-navigation-entry-menu li>.menuitem:not([class^=icon-]):not([class*=icon-])>form:not([class^=icon-]):not([class*=icon-]):first-child,.popovermenu li>button:not([class^=icon-]):not([class*=icon-])>span:not([class^=icon-]):not([class*=icon-]):first-child,.popovermenu li>button:not([class^=icon-]):not([class*=icon-])>input:not([class^=icon-]):not([class*=icon-]):first-child,.popovermenu li>button:not([class^=icon-]):not([class*=icon-])>form:not([class^=icon-]):not([class*=icon-]):first-child,.popovermenu li>a:not([class^=icon-]):not([class*=icon-])>span:not([class^=icon-]):not([class*=icon-]):first-child,.popovermenu li>a:not([class^=icon-]):not([class*=icon-])>input:not([class^=icon-]):not([class*=icon-]):first-child,.popovermenu li>a:not([class^=icon-]):not([class*=icon-])>form:not([class^=icon-]):not([class*=icon-]):first-child,.popovermenu li>.menuitem:not([class^=icon-]):not([class*=icon-])>span:not([class^=icon-]):not([class*=icon-]):first-child,.popovermenu li>.menuitem:not([class^=icon-]):not([class*=icon-])>input:not([class^=icon-]):not([class*=icon-]):first-child,.popovermenu li>.menuitem:not([class^=icon-]):not([class*=icon-])>form:not([class^=icon-]):not([class*=icon-]):first-child{margin-inline-start:34px}.bubble li>button[class^=icon-],.bubble li>button[class*=" icon-"],.bubble li>a[class^=icon-],.bubble li>a[class*=" icon-"],.bubble li>.menuitem[class^=icon-],.bubble li>.menuitem[class*=" icon-"],.app-navigation-entry-menu li>button[class^=icon-],.app-navigation-entry-menu li>button[class*=" icon-"],.app-navigation-entry-menu li>a[class^=icon-],.app-navigation-entry-menu li>a[class*=" icon-"],.app-navigation-entry-menu li>.menuitem[class^=icon-],.app-navigation-entry-menu li>.menuitem[class*=" icon-"],.popovermenu li>button[class^=icon-],.popovermenu li>button[class*=" icon-"],.popovermenu li>a[class^=icon-],.popovermenu li>a[class*=" icon-"],.popovermenu li>.menuitem[class^=icon-],.popovermenu li>.menuitem[class*=" icon-"]{padding:0 9px 0 34px !important}.bubble li>button:hover,.bubble li>button:focus,.bubble li>a:hover,.bubble li>a:focus,.bubble li>.menuitem:hover,.bubble li>.menuitem:focus,.app-navigation-entry-menu li>button:hover,.app-navigation-entry-menu li>button:focus,.app-navigation-entry-menu li>a:hover,.app-navigation-entry-menu li>a:focus,.app-navigation-entry-menu li>.menuitem:hover,.app-navigation-entry-menu li>.menuitem:focus,.popovermenu li>button:hover,.popovermenu li>button:focus,.popovermenu li>a:hover,.popovermenu li>a:focus,.popovermenu li>.menuitem:hover,.popovermenu li>.menuitem:focus{background-color:var(--color-background-hover)}.bubble li>button:focus,.bubble li>button:focus-visible,.bubble li>a:focus,.bubble li>a:focus-visible,.bubble li>.menuitem:focus,.bubble li>.menuitem:focus-visible,.app-navigation-entry-menu li>button:focus,.app-navigation-entry-menu li>button:focus-visible,.app-navigation-entry-menu li>a:focus,.app-navigation-entry-menu li>a:focus-visible,.app-navigation-entry-menu li>.menuitem:focus,.app-navigation-entry-menu li>.menuitem:focus-visible,.popovermenu li>button:focus,.popovermenu li>button:focus-visible,.popovermenu li>a:focus,.popovermenu li>a:focus-visible,.popovermenu li>.menuitem:focus,.popovermenu li>.menuitem:focus-visible{box-shadow:0 0 0 2px var(--color-primary-element)}.bubble li>button.active,.bubble li>a.active,.bubble li>.menuitem.active,.app-navigation-entry-menu li>button.active,.app-navigation-entry-menu li>a.active,.app-navigation-entry-menu li>.menuitem.active,.popovermenu li>button.active,.popovermenu li>a.active,.popovermenu li>.menuitem.active{border-radius:var(--border-radius-element);background-color:var(--color-primary-element-light)}.bubble li>button.action,.bubble li>a.action,.bubble li>.menuitem.action,.app-navigation-entry-menu li>button.action,.app-navigation-entry-menu li>a.action,.app-navigation-entry-menu li>.menuitem.action,.popovermenu li>button.action,.popovermenu li>a.action,.popovermenu li>.menuitem.action{padding:inherit !important}.bubble li>button>span,.bubble li>a>span,.bubble li>.menuitem>span,.app-navigation-entry-menu li>button>span,.app-navigation-entry-menu li>a>span,.app-navigation-entry-menu li>.menuitem>span,.popovermenu li>button>span,.popovermenu li>a>span,.popovermenu li>.menuitem>span{cursor:pointer;white-space:nowrap}.bubble li>button>p,.bubble li>a>p,.bubble li>.menuitem>p,.app-navigation-entry-menu li>button>p,.app-navigation-entry-menu li>a>p,.app-navigation-entry-menu li>.menuitem>p,.popovermenu li>button>p,.popovermenu li>a>p,.popovermenu li>.menuitem>p{width:150px;line-height:1.6em;padding:8px 0;white-space:normal}.bubble li>button>select,.bubble li>a>select,.bubble li>.menuitem>select,.app-navigation-entry-menu li>button>select,.app-navigation-entry-menu li>a>select,.app-navigation-entry-menu li>.menuitem>select,.popovermenu li>button>select,.popovermenu li>a>select,.popovermenu li>.menuitem>select{margin:0;margin-inline-start:6px}.bubble li>button:not(:empty),.bubble li>a:not(:empty),.bubble li>.menuitem:not(:empty),.app-navigation-entry-menu li>button:not(:empty),.app-navigation-entry-menu li>a:not(:empty),.app-navigation-entry-menu li>.menuitem:not(:empty),.popovermenu li>button:not(:empty),.popovermenu li>a:not(:empty),.popovermenu li>.menuitem:not(:empty){padding-inline-end:9px !important}.bubble li>button>img,.bubble li>a>img,.bubble li>.menuitem>img,.app-navigation-entry-menu li>button>img,.app-navigation-entry-menu li>a>img,.app-navigation-entry-menu li>.menuitem>img,.popovermenu li>button>img,.popovermenu li>a>img,.popovermenu li>.menuitem>img{width:16px;padding:9px}.bubble li>button>input.radio+label,.bubble li>button>input.checkbox+label,.bubble li>a>input.radio+label,.bubble li>a>input.checkbox+label,.bubble li>.menuitem>input.radio+label,.bubble li>.menuitem>input.checkbox+label,.app-navigation-entry-menu li>button>input.radio+label,.app-navigation-entry-menu li>button>input.checkbox+label,.app-navigation-entry-menu li>a>input.radio+label,.app-navigation-entry-menu li>a>input.checkbox+label,.app-navigation-entry-menu li>.menuitem>input.radio+label,.app-navigation-entry-menu li>.menuitem>input.checkbox+label,.popovermenu li>button>input.radio+label,.popovermenu li>button>input.checkbox+label,.popovermenu li>a>input.radio+label,.popovermenu li>a>input.checkbox+label,.popovermenu li>.menuitem>input.radio+label,.popovermenu li>.menuitem>input.checkbox+label{padding:0 !important;width:100%}.bubble li>button>input.checkbox+label::before,.bubble li>a>input.checkbox+label::before,.bubble li>.menuitem>input.checkbox+label::before,.app-navigation-entry-menu li>button>input.checkbox+label::before,.app-navigation-entry-menu li>a>input.checkbox+label::before,.app-navigation-entry-menu li>.menuitem>input.checkbox+label::before,.popovermenu li>button>input.checkbox+label::before,.popovermenu li>a>input.checkbox+label::before,.popovermenu li>.menuitem>input.checkbox+label::before{margin:-2px 13px 0}.bubble li>button>input.radio+label::before,.bubble li>a>input.radio+label::before,.bubble li>.menuitem>input.radio+label::before,.app-navigation-entry-menu li>button>input.radio+label::before,.app-navigation-entry-menu li>a>input.radio+label::before,.app-navigation-entry-menu li>.menuitem>input.radio+label::before,.popovermenu li>button>input.radio+label::before,.popovermenu li>a>input.radio+label::before,.popovermenu li>.menuitem>input.radio+label::before{margin:-2px 12px 0}.bubble li>button>input:not([type=radio]):not([type=checkbox]):not([type=image]),.bubble li>a>input:not([type=radio]):not([type=checkbox]):not([type=image]),.bubble li>.menuitem>input:not([type=radio]):not([type=checkbox]):not([type=image]),.app-navigation-entry-menu li>button>input:not([type=radio]):not([type=checkbox]):not([type=image]),.app-navigation-entry-menu li>a>input:not([type=radio]):not([type=checkbox]):not([type=image]),.app-navigation-entry-menu li>.menuitem>input:not([type=radio]):not([type=checkbox]):not([type=image]),.popovermenu li>button>input:not([type=radio]):not([type=checkbox]):not([type=image]),.popovermenu li>a>input:not([type=radio]):not([type=checkbox]):not([type=image]),.popovermenu li>.menuitem>input:not([type=radio]):not([type=checkbox]):not([type=image]){width:150px}.bubble li>button form,.bubble li>a form,.bubble li>.menuitem form,.app-navigation-entry-menu li>button form,.app-navigation-entry-menu li>a form,.app-navigation-entry-menu li>.menuitem form,.popovermenu li>button form,.popovermenu li>a form,.popovermenu li>.menuitem form{display:flex;flex:1 1 auto;align-items:center}.bubble li>button form:not(:first-child),.bubble li>a form:not(:first-child),.bubble li>.menuitem form:not(:first-child),.app-navigation-entry-menu li>button form:not(:first-child),.app-navigation-entry-menu li>a form:not(:first-child),.app-navigation-entry-menu li>.menuitem form:not(:first-child),.popovermenu li>button form:not(:first-child),.popovermenu li>a form:not(:first-child),.popovermenu li>.menuitem form:not(:first-child){margin-inline-start:5px}.bubble li>button>span.hidden+form,.bubble li>button>span[style*="display:none"]+form,.bubble li>a>span.hidden+form,.bubble li>a>span[style*="display:none"]+form,.bubble li>.menuitem>span.hidden+form,.bubble li>.menuitem>span[style*="display:none"]+form,.app-navigation-entry-menu li>button>span.hidden+form,.app-navigation-entry-menu li>button>span[style*="display:none"]+form,.app-navigation-entry-menu li>a>span.hidden+form,.app-navigation-entry-menu li>a>span[style*="display:none"]+form,.app-navigation-entry-menu li>.menuitem>span.hidden+form,.app-navigation-entry-menu li>.menuitem>span[style*="display:none"]+form,.popovermenu li>button>span.hidden+form,.popovermenu li>button>span[style*="display:none"]+form,.popovermenu li>a>span.hidden+form,.popovermenu li>a>span[style*="display:none"]+form,.popovermenu li>.menuitem>span.hidden+form,.popovermenu li>.menuitem>span[style*="display:none"]+form{margin-inline-start:0}.bubble li>button input,.bubble li>a input,.bubble li>.menuitem input,.app-navigation-entry-menu li>button input,.app-navigation-entry-menu li>a input,.app-navigation-entry-menu li>.menuitem input,.popovermenu li>button input,.popovermenu li>a input,.popovermenu li>.menuitem input{min-width:34px;max-height:30px;margin:2px 0;flex:1 1 auto}.bubble li>button input:not(:first-child),.bubble li>a input:not(:first-child),.bubble li>.menuitem input:not(:first-child),.app-navigation-entry-menu li>button input:not(:first-child),.app-navigation-entry-menu li>a input:not(:first-child),.app-navigation-entry-menu li>.menuitem input:not(:first-child),.popovermenu li>button input:not(:first-child),.popovermenu li>a input:not(:first-child),.popovermenu li>.menuitem input:not(:first-child){margin-inline-start:5px}.bubble li:not(.hidden):not([style*="display:none"]):first-of-type>button>form,.bubble li:not(.hidden):not([style*="display:none"]):first-of-type>button>input,.bubble li:not(.hidden):not([style*="display:none"]):first-of-type>a>form,.bubble li:not(.hidden):not([style*="display:none"]):first-of-type>a>input,.bubble li:not(.hidden):not([style*="display:none"]):first-of-type>.menuitem>form,.bubble li:not(.hidden):not([style*="display:none"]):first-of-type>.menuitem>input,.app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):first-of-type>button>form,.app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):first-of-type>button>input,.app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):first-of-type>a>form,.app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):first-of-type>a>input,.app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):first-of-type>.menuitem>form,.app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):first-of-type>.menuitem>input,.popovermenu li:not(.hidden):not([style*="display:none"]):first-of-type>button>form,.popovermenu li:not(.hidden):not([style*="display:none"]):first-of-type>button>input,.popovermenu li:not(.hidden):not([style*="display:none"]):first-of-type>a>form,.popovermenu li:not(.hidden):not([style*="display:none"]):first-of-type>a>input,.popovermenu li:not(.hidden):not([style*="display:none"]):first-of-type>.menuitem>form,.popovermenu li:not(.hidden):not([style*="display:none"]):first-of-type>.menuitem>input{margin-top:7px}.bubble li:not(.hidden):not([style*="display:none"]):last-of-type>button>form,.bubble li:not(.hidden):not([style*="display:none"]):last-of-type>button>input,.bubble li:not(.hidden):not([style*="display:none"]):last-of-type>a>form,.bubble li:not(.hidden):not([style*="display:none"]):last-of-type>a>input,.bubble li:not(.hidden):not([style*="display:none"]):last-of-type>.menuitem>form,.bubble li:not(.hidden):not([style*="display:none"]):last-of-type>.menuitem>input,.app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):last-of-type>button>form,.app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):last-of-type>button>input,.app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):last-of-type>a>form,.app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):last-of-type>a>input,.app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):last-of-type>.menuitem>form,.app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):last-of-type>.menuitem>input,.popovermenu li:not(.hidden):not([style*="display:none"]):last-of-type>button>form,.popovermenu li:not(.hidden):not([style*="display:none"]):last-of-type>button>input,.popovermenu li:not(.hidden):not([style*="display:none"]):last-of-type>a>form,.popovermenu li:not(.hidden):not([style*="display:none"]):last-of-type>a>input,.popovermenu li:not(.hidden):not([style*="display:none"]):last-of-type>.menuitem>form,.popovermenu li:not(.hidden):not([style*="display:none"]):last-of-type>.menuitem>input{margin-bottom:0px}.bubble li>button,.app-navigation-entry-menu li>button,.popovermenu li>button{padding:0}.bubble li>button span,.app-navigation-entry-menu li>button span,.popovermenu li>button span{opacity:1}.popovermenu li>button>img,.popovermenu li>a>img,.popovermenu li>.menuitem>img{width:34px;height:34px}#contactsmenu .contact .popovermenu li>a>img{width:16px;height:16px}.app-content-list{position:-webkit-sticky;position:relative;top:0;border-inline-end:1px solid var(--color-border);display:flex;flex-direction:column;transition:transform 250ms ease-in-out;min-height:100%;max-height:100%;overflow-y:auto;overflow-x:hidden;flex:1 1 200px;min-width:200px;max-width:300px}.app-content-list .app-content-list-item{position:relative;height:68px;cursor:pointer;padding:10px 7px;display:flex;flex-wrap:wrap;align-items:center;flex:0 0 auto}.app-content-list .app-content-list-item>[class^=icon-],.app-content-list .app-content-list-item>[class*=" icon-"],.app-content-list .app-content-list-item>.app-content-list-item-menu>[class^=icon-],.app-content-list .app-content-list-item>.app-content-list-item-menu>[class*=" icon-"]{order:4;width:24px;height:24px;margin:-7px;padding:22px;opacity:.3;cursor:pointer}.app-content-list .app-content-list-item>[class^=icon-]:hover,.app-content-list .app-content-list-item>[class^=icon-]:focus,.app-content-list .app-content-list-item>[class*=" icon-"]:hover,.app-content-list .app-content-list-item>[class*=" icon-"]:focus,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class^=icon-]:hover,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class^=icon-]:focus,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class*=" icon-"]:hover,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class*=" icon-"]:focus{opacity:.7}.app-content-list .app-content-list-item>[class^=icon-][class^=icon-star],.app-content-list .app-content-list-item>[class^=icon-][class*=" icon-star"],.app-content-list .app-content-list-item>[class*=" icon-"][class^=icon-star],.app-content-list .app-content-list-item>[class*=" icon-"][class*=" icon-star"],.app-content-list .app-content-list-item>.app-content-list-item-menu>[class^=icon-][class^=icon-star],.app-content-list .app-content-list-item>.app-content-list-item-menu>[class^=icon-][class*=" icon-star"],.app-content-list .app-content-list-item>.app-content-list-item-menu>[class*=" icon-"][class^=icon-star],.app-content-list .app-content-list-item>.app-content-list-item-menu>[class*=" icon-"][class*=" icon-star"]{opacity:.7}.app-content-list .app-content-list-item>[class^=icon-][class^=icon-star]:hover,.app-content-list .app-content-list-item>[class^=icon-][class^=icon-star]:focus,.app-content-list .app-content-list-item>[class^=icon-][class*=" icon-star"]:hover,.app-content-list .app-content-list-item>[class^=icon-][class*=" icon-star"]:focus,.app-content-list .app-content-list-item>[class*=" icon-"][class^=icon-star]:hover,.app-content-list .app-content-list-item>[class*=" icon-"][class^=icon-star]:focus,.app-content-list .app-content-list-item>[class*=" icon-"][class*=" icon-star"]:hover,.app-content-list .app-content-list-item>[class*=" icon-"][class*=" icon-star"]:focus,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class^=icon-][class^=icon-star]:hover,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class^=icon-][class^=icon-star]:focus,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class^=icon-][class*=" icon-star"]:hover,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class^=icon-][class*=" icon-star"]:focus,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class*=" icon-"][class^=icon-star]:hover,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class*=" icon-"][class^=icon-star]:focus,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class*=" icon-"][class*=" icon-star"]:hover,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class*=" icon-"][class*=" icon-star"]:focus{opacity:1}.app-content-list .app-content-list-item>[class^=icon-].icon-starred,.app-content-list .app-content-list-item>[class*=" icon-"].icon-starred,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class^=icon-].icon-starred,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class*=" icon-"].icon-starred{opacity:1}.app-content-list .app-content-list-item:hover,.app-content-list .app-content-list-item:focus,.app-content-list .app-content-list-item.active{background-color:var(--color-background-dark)}.app-content-list .app-content-list-item:hover .app-content-list-item-checkbox.checkbox+label,.app-content-list .app-content-list-item:focus .app-content-list-item-checkbox.checkbox+label,.app-content-list .app-content-list-item.active .app-content-list-item-checkbox.checkbox+label{display:flex}.app-content-list .app-content-list-item .app-content-list-item-checkbox.checkbox+label,.app-content-list .app-content-list-item .app-content-list-item-star{position:absolute;height:40px;width:40px;z-index:50}.app-content-list .app-content-list-item .app-content-list-item-checkbox.checkbox:checked+label,.app-content-list .app-content-list-item .app-content-list-item-checkbox.checkbox:hover+label,.app-content-list .app-content-list-item .app-content-list-item-checkbox.checkbox:focus+label,.app-content-list .app-content-list-item .app-content-list-item-checkbox.checkbox.active+label{display:flex}.app-content-list .app-content-list-item .app-content-list-item-checkbox.checkbox:checked+label+.app-content-list-item-icon,.app-content-list .app-content-list-item .app-content-list-item-checkbox.checkbox:hover+label+.app-content-list-item-icon,.app-content-list .app-content-list-item .app-content-list-item-checkbox.checkbox:focus+label+.app-content-list-item-icon,.app-content-list .app-content-list-item .app-content-list-item-checkbox.checkbox.active+label+.app-content-list-item-icon{opacity:.7}.app-content-list .app-content-list-item .app-content-list-item-checkbox.checkbox+label{top:14px;inset-inline-start:7px;display:none}.app-content-list .app-content-list-item .app-content-list-item-checkbox.checkbox+label::before{margin:0}.app-content-list .app-content-list-item .app-content-list-item-checkbox.checkbox+label~.app-content-list-item-star{display:none}.app-content-list .app-content-list-item .app-content-list-item-star{display:flex;top:10px;inset-inline-start:32px;background-size:16px;height:20px;width:20px;margin:0;padding:0}.app-content-list .app-content-list-item .app-content-list-item-icon{position:absolute;display:inline-block;height:40px;width:40px;line-height:40px;border-radius:50%;vertical-align:middle;margin-inline-end:10px;color:#fff;text-align:center;font-size:1.5em;text-transform:capitalize;object-fit:cover;user-select:none;cursor:pointer;top:50%;margin-top:-20px}.app-content-list .app-content-list-item .app-content-list-item-line-one,.app-content-list .app-content-list-item .app-content-list-item-line-two{display:block;padding-inline:50px 10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;order:1;flex:1 1 0px;cursor:pointer}.app-content-list .app-content-list-item .app-content-list-item-line-two{opacity:.5;order:3;flex:1 0;flex-basis:calc(100% - var(--default-clickable-area))}.app-content-list .app-content-list-item .app-content-list-item-details{order:2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100px;opacity:.5;font-size:80%;user-select:none}.app-content-list .app-content-list-item .app-content-list-item-menu{order:4;position:relative}.app-content-list .app-content-list-item .app-content-list-item-menu .popovermenu{margin:0;inset-inline-end:-2px}.app-content-list.selection .app-content-list-item-checkbox.checkbox+label{display:flex}.button.primary.skip-navigation:focus-visible{box-shadow:0 0 0 4px var(--color-main-background) !important;outline:2px solid var(--color-main-text) !important}/*# sourceMappingURL=apps.css.map */
diff --git a/core/css/apps.css.map b/core/css/apps.css.map
new file mode 100644
index 00000000000..929ca683ce5
--- /dev/null
+++ b/core/css/apps.css.map
@@ -0,0 +1 @@
+{"version":3,"sourceRoot":"","sources":["apps.scss","variables.scss","functions.scss"],"names":[],"mappings":"AAAA;AAAA;AAAA;AAAA;AAAA,GCEA;AAAA;AAAA;AAAA,GCFA;AAAA;AAAA;AAAA,GFSA,sCAEC,MACC,wCACA,yCAKF,KACC,WACA,YACA,kBAEA,6EAGD,KAEC,6EAEA,yCACA,sBACA,2BACA,eACA,WACA,iDAKD,eAKC,gBACA,gBACA,gBACA,mBACA,6BAGD,GACC,gBAGD,GACC,gBAGD,GACC,gBAGD,GACC,iBAGD,GACC,gBAID,GACC,kBACA,oCAGD,GACC,eAGD,MAEC,qBACA,aACA,uBAGD,GACC,YACA,mBACA,eAGD,IACC,iBACA,sBACA,kCACA,mCACA,qBACA,mBAMD,wBACC,sBAKD,0BAEC,gGACA,MCxBkB,MDyBlB,YACA,gBACA,kBACA,mDACA,8CACA,+EACA,gBACA,YACA,sBACA,qBACA,iBACA,aACA,sBACA,YACA,cAEA,kDACC,iBACA,0CACA,2EACA,mBACA,uBACA,2BACA,iBACA,oBACA,yBAQD,gGACC,cACA,6CACA,8GACC,qBACA,WACA,aACA,0BACA,iBACA,SAIF,8DACC,kBAED,8DACC,kBACA,YACA,WACA,kBACA,gBACA,sBACA,aACA,sBACA,6CACA,iBAEA,oFACC,oDAGD,oEACC,oBACA,eACA,QACA,cACA,SACA,kBACA,WACA,2CAGA,kFACC,QACA,4GACC,2BAIF,gIAEC,8DAED,0HAIC,0EAKA,wVAEC,+CAGF,oGACC,kDACA,yCAMA,gsBAEC,8CACA,wCAEA,g8BACC,qCAMH,sHACC,wBACA,SAMA,kNAEC,aAKF,0EACC,cACA,WACA,kBACA,gFACC,oBACA,eACA,mDACA,WACA,kBAIC,wXAEC,2CACA,+CAKD,gZAEC,2CACA,oDACA,ghBACC,qCAMH,kIACC,yDAGD,4IAEC,wBACA,0BAGD,sIAEC,wBAGA,6EAMJ,oJAEC,kBACA,sBAGC,4jBAGC,oCAIF,4JACC,0BACA,4BACA,cACA,8BACA,0CACA,yCACA,gBACA,oDACA,gBACA,sBACA,mBACA,uBACA,2CACA,6BACA,aACA,YAGA,4KACC,gBACA,kDACA,wOACC,gBACA,6DAGF,4NACC,kEACA,WACA,YAEA,wCAID,4QACC,qBAEA,4ZACC,gCAKH,wQACC,kBACA,cACA,YACA,WACA,YACA,YACA,kBACA,eACA,wCAEA,gRAEC,oCAKF,gQACC,kCAID,gSACC,UACA,YAED,4SACC,wBACA,YAIH,sEACC,aAMD,4YAEC,SACA,WACA,+BACA,4BACA,2BACA,w0BAEC,+BACA,UAUD,sGACC,UACA,kBACA,oCACA,qCACA,SACA,YAIA,qBAEA,kIACC,UACA,eACA,wDACA,gBAGF,gGACC,kBACA,qCACA,oCACA,SACA,UACA,gBEjZF,6CFmZE,qBACA,4BACA,2BACA,YACA,wBACA,gBACA,YACA,UACA,iCACA,6BACA,yBACA,YACA,kBACA,qCAMD,8GACC,mDAIA,wNACC,UAED,oMACC,sBAED,gTACC,oCAID,0GACC,4BACA,wBACA,oBAQH,gHACC,cACA,sHACC,wBACA,mBACA,yBAED,sHACC,+CACA,qCAED,8HACC,YACA,WACA,SACA,gBAIA,oSEpdF,uCFudE,obAEC,+BACA,UAGF,wLACC,gBACA,eACA,cACA,0CACA,eAEA,gNACC,UACA,kBACA,0NACC,gBACA,mBACA,8CACA,wCASJ,8GACC,mBACA,cACA,uBACA,qCACA,UACA,kBACA,8CACA,WACA,8OAEC,oBACA,WAED,0HACC,YACA,oBACA,YACA,4QAGC,UAGF,gJACC,WACA,YACA,wBACA,0BAED,wRAEC,WACA,YACA,cACA,4VACC,2BAED,gWACC,yBAED,oUACC,2CACA,6CACA,0BACA,4BAQH,oHACC,oBACA,mDACA,4BACA,wMACC,kBACA,mBACA,uBACA,gBACA,aACA,0CAED,8LACC,SACA,qCACA,oCACA,0CACA,oZAEC,UAQH,kOAEC,uBACA,2FAGA,kBACA,qBACA,8CACA,sBAMD,sFACC,gDACA,wCACA,oBAGD,sEACC,yBAGD,0OAEC,qBASA,0IACC,qCAGD,gHACC,qCAEA,wKACC,YASF,0IACC,sCAGD,gHACC,sCAEA,wKACC,WAOJ,SACC,sBACA,gBACA,oCACA,gCACA,UACA,aACA,kDACA,0BACA,2CACA,cAEA,kCACC,eAIF,2CACC,SACC,qDACA,mDAED,gBACC,qDAED,aACC,oDAcF,aACC,aACA,8CACA,iBACA,cACA,iBACA,YAGA,kCACC,gBAID,kCACC,aACA,kBACA,oBAGA,gBAGA,uDAEC,eACA,mFACC,aAKH,uCACC,oCASF,aACC,WACA,UC/qBmB,MDgrBnB,UC/qBmB,MDgrBnB,cACA,wBACA,gBACA,ICtrBe,KDurBf,mBACA,gBACA,kBACA,aACA,aACA,0BACA,wCACA,kDACA,cAEA,uBACC,aAOF,cAEC,gBAGC,oFACC,cAKH,sBACC,aACA,6CACA,cACA,0DAEA,iBACA,gBACA,sBAGA,uCACC,UAGD,iCACC,sBACA,sBACA,gCAOE,4NACC,qBACA,WACA,cAOL,qBACC,sBACA,+BACA,gBACA,oDACA,6CACA,cAEA,sCACC,aACA,mBACA,qCACA,WACA,UACA,SACA,+BACA,gBACA,SACA,oDACA,iBACA,mBACA,eACA,WAGA,6BAEA,6CACC,yCACA,8CACA,eAED,wFAEC,+CAGD,8CACC,2CACA,4BACA,WACA,oCACA,qCACA,MACA,qBACA,cAGD,oDACC,mEAOF,4DACC,qCAED,kEACC,qCAKD,4DACC,sCAED,kEACC,sCAIF,SACC,cACA,aACA,mBACA,gBACC,wBAIA,yDAEC,oBACA,sBAKH,aACC,kBACA,gBACA,yBACA,mBAGD,QACC,UACA,yCACA,sCACA,qCACA,oCACA,iCACA,oBACC,UAKF,YACC,aACA,mBAEA,uBACC,aACA,sBACA,YACA,kBACA,mBACA,gBACA,uBACA,eACA,gCACA,kBACA,YAEA,8BACC,aAID,mCACC,0BAED,kCACC,wBAGD,6BACC,qBACA,WACA,YACA,qBACA,sBACA,gBACA,sBACA,WACA,eAGD,yBACC,gCACA,kBACA,gBACA,uBAED,gCACC,iBAED,0FAGC,kBACA,6BACA,kDAMF,oBACC,oBAKF,6BACC,WAGD,6BACC,YASA,0JAGC,wCAIA,2LACC,YAKH,gDAGC,kBACA,8CACA,6BACA,yCACA,YACA,YACA,WACA,gBACA,mBACA,sDACA,aACA,mBAEA,kEACC,YAKA,qBAEA,2BACA,YACA,SACA,QACA,kBACA,oBACA,iDACA,iBAGD,oFACC,0BACA,qBACA,oBACA,sGACC,qBACA,0BAIF,8EACC,oBACA,oBACA,gGACC,sBAIF,+DACC,cAGD,+GACC,SAGD,yDAEC,wBACA,sBAED,yDACC,aACA,cAEA,8EACC,aAGD,oOAGC,eACA,YA/FkB,KAgGlB,SACA,yCACA,+BACA,aACA,uBACA,YACA,SACA,mBACA,gBACA,WACA,6BACA,mBAEA,whDAIC,YACA,aACA,+BACA,gBAnHe,KAqHhB,yzBAIC,yBAOC,gvGACC,oBAlIe,KAsIlB,+tBAEC,gCAED,ojBAEC,+CAED,4nBAEC,kDAED,mSACC,2CACA,oDAGD,mSACC,2BAED,iRACC,eACA,mBAED,sPACC,YACA,kBACA,cACA,mBAED,mSACC,SACA,wBAGD,gVACC,kCAID,wQACC,MA9Ke,KA+Kf,YAGD,uyBAEC,qBACA,WAED,yeACC,mBAED,8cACC,mBAED,2xBACC,YAED,iRACC,aACA,cAGA,mBACA,mbACC,wBAIF,04BAEC,sBAGD,0RACC,UAlNiB,KAmNjB,gBACA,aACA,cAEA,4bACC,wBAQA,2hDACC,eAMD,ygDACC,kBAKJ,8EACC,UACA,6FACC,UAcD,+EACC,MA/PiB,KAgQjB,OAhQiB,KAyQlB,6CACC,WACA,YAOJ,kBACC,wBACA,kBACA,MACA,gDACA,aACA,sBACA,uCACA,gBACA,gBACA,gBACA,kBACA,eACA,UC5sCgB,MD6sChB,UC5sCgB,MD+sChB,yCACC,kBACA,YACA,eACA,iBACA,aACA,eACA,mBACA,cAKC,8RAEC,QACA,WACA,YACA,YACA,aACA,WACA,eACA,4mBAEC,WAED,wtBAEC,WACA,ghDAEC,UAIF,kVACC,UAKH,8IAGC,8CAEA,2RACC,aAIF,6JAEC,kBACA,YACA,WACA,WAQC,2XAEC,aAEA,2eACC,WAIH,wFACC,SACA,uBAEA,aACA,gGACC,SAGD,oHACC,aAKH,qEACC,aACA,SACA,wBACA,qBACA,YACA,WACA,SACA,UAGD,qEACC,kBACA,qBACA,YACA,WACA,iBACA,kBACA,sBACA,uBACA,WACA,kBACA,gBACA,0BACA,iBACA,iBACA,eACA,QACA,iBAGD,kJAEC,cACA,yBACA,mBACA,gBACA,uBACA,QACA,aACA,eAGD,yEACC,WACA,QACA,SACA,sDAGD,wEACC,QACA,mBACA,gBACA,uBACA,gBACA,WACA,cACA,iBAGD,qEACC,QACA,kBACA,kFACC,SAGA,sBAIH,2EACC,aAIF,8CACC,6DACA","file":"apps.css"} \ No newline at end of file
diff --git a/core/css/apps.css.map.license b/core/css/apps.css.map.license
new file mode 100644
index 00000000000..82ac7cce426
--- /dev/null
+++ b/core/css/apps.css.map.license
@@ -0,0 +1,3 @@
+SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
+SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/core/css/apps.scss b/core/css/apps.scss
index cb2b32611b1..353eb43fe3f 100644
--- a/core/css/apps.scss
+++ b/core/css/apps.scss
@@ -1,45 +1,79 @@
-/**
- * @copyright Copyright (c) 2016-2017, John Molakvoæ <skjnldsv@protonmail.com>
- * @copyright Copyright (c) 2016, Julius Haertl <jus@bitgrid.net>
- * @copyright Copyright (c) 2016, Morris Jobke <hey@morrisjobke.de>
- * @copyright Copyright (c) 2016, pgys <info@pexlab.space>
- * @copyright Copyright (c) 2016, Lukas Reschke <lukas@statuscode.ch>
- * @copyright Copyright (c) 2016, Stefan Weil <sw@weilnetz.de>
- * @copyright Copyright (c) 2016, Roeland Jago Douma <rullzer@owncloud.com>
- * @copyright Copyright (c) 2016, jowi <sjw@gmx.ch>
- * @copyright Copyright (c) 2015, Hendrik Leppelsack <hendrik@leppelsack.de>
- * @copyright Copyright (c) 2015, Thomas Müller <thomas.mueller@tmit.eu>
- * @copyright Copyright (c) 2015, Vincent Petry <pvince81@owncloud.com>
- * @copyright Copyright (c) 2014-2017, Jan-Christoph Borchardt <hey@jancborchardt.net>
- *
- * @license GNU AGPL version 3 or any later version
- *
+/*!
+ * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
+@use 'variables';
+@use 'sass:math';
+@use 'functions';
+
+@media screen and (max-width: variables.$breakpoint-mobile) {
+ // Make the body full width on mobile
+ :root {
+ --body-container-margin: 0px !important;
+ --body-container-radius: 0px !important;
+ }
+}
+
+
+html {
+ width: 100%;
+ height: 100%;
+ position: absolute;
+ // color-background-plain should always be defined.
+ background-color: var(--color-background-plain, var(--color-main-background));
+}
+
+body {
+ // color-background-plain should always be defined.
+ background-color: var(--color-background-plain, var(--color-main-background));
+ // user background, or plain color
+ background-image: var(--image-background);
+ background-size: cover;
+ background-position: center;
+ position: fixed;
+ width: 100%;
+ height: calc(100vh - env(safe-area-inset-bottom));
+}
/* BASE STYLING ------------------------------------------------------------ */
// no h1 allowed since h1 = logo
-h2 {
- font-weight: bold;
- font-size: 20px;
+h2,
+h3,
+h4,
+h5,
+h6 {
+ font-weight: 600;
+ line-height: 1.5;
+ margin-top: 24px;
margin-bottom: 12px;
- line-height: 30px;
- color: var(--color-text-light);
+ color: var(--color-main-text);
+}
+
+h2 {
+ font-size: 1.8em;
}
h3 {
- font-size: 16px;
- margin: 12px 0;
- color: var(--color-text-light);
+ font-size: 1.6em;
}
h4 {
- font-size: 14px;
+ font-size: 1.4em;
+}
+
+h5 {
+ font-size: 1.25em;
+}
+
+h6 {
+ font-size: 1.1em;
}
/* do not use italic typeface style, instead lighter color */
em {
font-style: normal;
- color: var(--color-text-lighter);
+ color: var(--color-text-maxcontrast);
}
dl {
@@ -50,13 +84,13 @@ dt,
dd {
display: inline-block;
padding: 12px;
- padding-left: 0;
+ padding-inline-start: 0;
}
dt {
width: 130px;
white-space: nowrap;
- text-align: right;
+ text-align: end;
}
kbd {
@@ -78,39 +112,51 @@ kbd {
/* APP-NAVIGATION ------------------------------------------------------------ */
/* Navigation: folder like structure */
#app-navigation:not(.vue) {
- width: $navigation-width;
- position: fixed;
- top: $header-height;
- left: 0;
+ // Ensure the maxcontrast color is set for the background
+ --color-text-maxcontrast: var(--color-text-maxcontrast-background-blur, var(--color-main-text));
+ width: variables.$navigation-width;
z-index: 500;
overflow-y: auto;
overflow-x: hidden;
- // Do not use vh because of mobile headers
- // are included in the calculation
- height: calc(100% - #{$header-height});
- box-sizing: border-box;
- background-color: var(--color-main-background);
- -webkit-user-select: none;
+ background-color: var(--color-main-background-blur);
+ backdrop-filter: var(--filter-background-blur);
+ -webkit-backdrop-filter: var(--filter-background-blur); -webkit-user-select: none;
+ position: sticky;
+ height: 100%;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
- border-right: 1px solid var(--color-border);
display: flex;
flex-direction: column;
flex-grow: 0;
flex-shrink: 0;
+ .app-navigation-caption {
+ font-weight: bold;
+ line-height: var(--default-clickable-area);
+ padding: 10px var(--default-clickable-area) 0 var(--default-clickable-area);
+ white-space: nowrap;
+ text-overflow: ellipsis;
+ box-shadow: none !important;
+ user-select: none;
+ pointer-events:none;
+ margin-inline-start: 10px;
+ }
+}
+
+.app-navigation-personal,
+.app-navigation-administration {
+
/* 'New' button */
.app-navigation-new {
display: block;
- padding: 10px;
+ padding: calc(var(--default-grid-baseline) * 2);
button {
display: inline-block;
width: 100%;
padding: 10px;
- padding-left: 34px;
- background-position: 10px center;
- text-align: left;
+ padding-inline-start: 34px;
+ text-align: start;
margin: 0;
}
}
@@ -121,17 +167,28 @@ kbd {
> ul {
position: relative;
height: 100%;
- width: inherit;
+ width: 100%;
overflow-x: hidden;
overflow-y: auto;
box-sizing: border-box;
display: flex;
flex-direction: column;
+ padding: calc(var(--default-grid-baseline) * 2);
+ padding-bottom: 0;
+
+ &:last-child {
+ padding-bottom: calc(var(--default-grid-baseline) * 2);
+ }
+
> li {
display: inline-flex;
flex-wrap: wrap;
order: 1;
flex-shrink: 0;
+ margin: 0;
+ margin-bottom: 3px;
+ width: 100%;
+ border-radius: var(--border-radius-element);
/* Pinned-to-bottom entries */
&.pinned {
@@ -143,13 +200,13 @@ kbd {
> .app-navigation-entry-deleted {
/* Ugly hack for overriding the main entry link */
- padding-left: 44px !important;
+ padding-inline-start: var(--default-clickable-area) !important;
}
> .app-navigation-entry-edit {
/* Ugly hack for overriding the main entry link */
/* align the input correctly with the link text
44px-6px padding for the input */
- padding-left: 38px !important;
+ padding-inline-start: calc(var(--default-clickable-area) - 6px) !important;
}
a:hover,
@@ -159,19 +216,28 @@ kbd {
background-color: var(--color-background-hover);
}
}
+ a:focus-visible {
+ box-shadow: 0 0 0 4px var(--color-main-background);
+ outline: 2px solid var(--color-main-text);
+ }
&.active,
a:active,
a.selected ,
a.active {
&,
> a {
- background-color: var(--color-primary-light);
+ background-color: var(--color-primary-element);
+ color: var(--color-primary-element-text);
+
+ &:first-child > img {
+ filter: var(--primary-invert-if-dark);
+ }
}
}
/* align loader */
&.icon-loading-small:after {
- left: 22px;
+ inset-inline-start: 22px;
top: 22px;
}
@@ -184,21 +250,6 @@ kbd {
}
}
- &.app-navigation-caption {
- font-weight: bold;
- line-height: 44px;
- padding: 0 44px;
- white-space: nowrap;
- text-overflow: ellipsis;
- box-shadow: none !important;
- user-select: none;
- pointer-events:none;
-
- &:not(:first-child) {
- margin-top: 22px;
- }
- }
-
/* Second level nesting for lists */
> ul {
flex: 0 1 auto;
@@ -207,11 +258,15 @@ kbd {
> li {
display: inline-flex;
flex-wrap: wrap;
- padding-left: 44px;
+ padding-inline-start: var(--default-clickable-area);
+ width: 100%;
+ margin-bottom: 3px;
+
&:hover,
&:focus {
&,
> a {
+ border-radius: var(--border-radius-element);
background-color: var(--color-background-hover);
}
}
@@ -219,27 +274,31 @@ kbd {
a.selected {
&,
> a {
- background-color: var(--color-primary-light);
+ border-radius: var(--border-radius-element);
+ background-color: var(--color-primary-element-light);
+ &:first-child > img {
+ filter: var(--primary-invert-if-dark);
+ }
}
}
/* align loader */
&.icon-loading-small:after {
- left: 22px; /* 44px / 2 */
+ inset-inline-start: calc(var(--default-clickable-area) / 2);
}
> .app-navigation-entry-deleted {
/* margin to keep active indicator visible */
- margin-left: 4px;
- padding-left: 84px;
+ margin-inline-start: 4px;
+ padding-inline-start: 84px;
}
> .app-navigation-entry-edit {
/* margin to keep active indicator visible */
- margin-left: 4px;
+ margin-inline-start: 4px;
/* align the input correctly with the link text
44px+44px-4px-6px padding for the input */
- padding-left: 78px !important;
+ padding-inline-start: calc(2 * var(--default-clickable-area) - 10px) !important;
}
}
}
@@ -248,7 +307,6 @@ kbd {
> li,
> li > ul > li {
position: relative;
- width: 100%;
box-sizing: border-box;
/* hide icons if loading */
&.icon-loading-small {
@@ -261,35 +319,45 @@ kbd {
/* Main entry link */
> a {
background-size: 16px 16px;
- background-position: 14px center;
background-repeat: no-repeat;
display: block;
justify-content: space-between;
- line-height: 44px;
- min-height: 44px;
- padding: 0 12px 0 44px;
+ line-height: var(--default-clickable-area);
+ min-height: var(--default-clickable-area);
+ padding-block: 0;
+ padding-inline: calc(2 * var(--default-grid-baseline));
overflow: hidden;
box-sizing: border-box;
white-space: nowrap;
text-overflow: ellipsis;
+ border-radius: var(--border-radius-element);
color: var(--color-main-text);
- opacity: .8;
flex: 1 1 0px;
z-index: 100; /* above the bullet to allow click*/
/* TODO: forbid using img as icon in menu? */
+
+ &.svg {
+ padding-block: 0;
+ padding-inline: var(--default-clickable-area) 12px;
+ :focus-visible {
+ padding-block: 0;
+ padding-inline: calc(var(--default-clickable-area) - 2px) 8px;
+ }
+ }
&:first-child img {
- margin-right: 11px;
- width: 16px;
- height: 16px;
- margin-left: -30px;
+ margin-inline-end: calc(2 * var(--default-grid-baseline)) !important;
+ width: 16px;
+ height: 16px;
+ // Legacy invert if bright background
+ filter: var(--background-invert-if-dark);
}
/* counter can also be inside the link */
> .app-navigation-entry-utils {
display: inline-block;
- float: right;
+ /* Check Floating fix below */
.app-navigation-entry-utils-counter {
- padding-right: 0 !important;
+ padding-inline-end: 0 !important;
}
}
}
@@ -313,7 +381,7 @@ kbd {
/* popover fix the flex positionning of the li parent */
> .app-navigation-entry-menu {
- top: 44px;
+ top: var(--default-clickable-area);
}
/* show edit/undo field if editing/deleted */
@@ -357,28 +425,34 @@ kbd {
.collapse {
opacity: 0;
position: absolute;
- width: 44px;
- height: 44px;
+ width: var(--default-clickable-area);
+ height: var(--default-clickable-area);
margin: 0;
z-index: 110;
/* Needed for IE11; otherwise the button appears to the right of the
* link. */
- left: 0;
+ inset-inline-start: 0;
+
+ &:focus-visible {
+ opacity: 1;
+ border-width: 0;
+ box-shadow: inset 0 0 0 2px var(--color-primary-element);
+ background: none;
+ }
}
&:before {
position: absolute;
- height: 44px;
- width: 44px;
+ height: var(--default-clickable-area);
+ width: var(--default-clickable-area);
margin: 0;
padding: 0;
background: none;
- @include icon-color('triangle-s', 'actions', $color-black, 1, true);
+ @include functions.icon-color('triangle-s', 'actions', variables.$color-black, 1, true);
background-size: 16px;
background-repeat: no-repeat;
background-position: center;
border: none;
- border-radius: 0;
outline: none !important;
box-shadow: none;
content: ' ';
@@ -387,20 +461,24 @@ kbd {
-ms-transform: rotate(-90deg);
transform: rotate(-90deg);
z-index: 105; // above a, under button
- background-color: var(--color-background-hover);
border-radius: 50%;
- transition: opacity $animation-quick ease-in-out;
+ transition: opacity variables.$animation-quick ease-in-out;
+
+
}
/* force padding on link no matter if 'a' has an icon class */
> a:first-child {
- padding-left: 44px;
+ padding-inline-start: var(--default-clickable-area);
}
&:hover,
&:focus {
&:before {
opacity: 1;
}
+ > a {
+ background-image: none;
+ }
> .app-navigation-entry-bullet {
background: transparent !important;
}
@@ -425,8 +503,8 @@ kbd {
justify-content: flex-end;
}
li {
- width: 44px !important;
- height: 44px;
+ width: var(--default-clickable-area) !important;
+ height: var(--default-clickable-area);
}
button {
height: 100%;
@@ -437,7 +515,7 @@ kbd {
.app-navigation-entry-utils-menu-button {
/* Prevent bg img override if an icon class is set */
button:not([class^='icon-']):not([class*=' icon-']) {
- @include icon-color('more', 'actions', $color-black, 1, true);
+ @include functions.icon-color('more', 'actions', variables.$color-black, 1, true);
}
&:hover button,
&:focus button {
@@ -447,9 +525,9 @@ kbd {
}
.app-navigation-entry-utils-counter {
overflow: hidden;
- text-align: right;
+ text-align: end;
font-size: 9pt;
- line-height: 44px;
+ line-height: var(--default-clickable-area);
padding: 0 12px; /* Same padding as all li > a in the app-navigation */
&.highlighted {
@@ -458,8 +536,8 @@ kbd {
span {
padding: 2px 5px;
border-radius: 10px;
- background-color: var(--color-primary);
- color: var(--color-primary-text);
+ background-color: var(--color-primary-element);
+ color: var(--color-primary-element-text);
}
}
}
@@ -469,8 +547,7 @@ kbd {
* Editable entries
*/
.app-navigation-entry-edit {
- padding-left: 5px;
- padding-right: 5px;
+ padding-inline: 5px;
display: block;
width: calc(100% - 1px); /* Avoid border overlapping */
transition: opacity 250ms ease-in-out;
@@ -485,7 +562,7 @@ kbd {
}
input {
padding: 5px;
- margin-right: 0;
+ margin-inline-end: 0;
height: 38px;
&:hover,
&:focus {
@@ -496,8 +573,8 @@ kbd {
input[type='text'] {
width: 100%;
min-width: 0; /* firefox hack: override auto */
- border-bottom-right-radius: 0;
- border-top-right-radius: 0;
+ border-end-end-radius: 0;
+ border-start-end-radius: 0;
}
button,
input:not([type='text']) {
@@ -508,13 +585,13 @@ kbd {
border-radius: 0 !important;
}
&:not(:first-child) {
- margin-left: -1px;
+ margin-inline-start: -1px;
}
&:last-child {
- border-bottom-right-radius: var(--border-radius);
- border-top-right-radius: var(--border-radius);
- border-bottom-left-radius: 0;
- border-top-left-radius: 0;
+ border-end-end-radius: var(--border-radius);
+ border-start-end-radius: var(--border-radius);
+ border-end-start-radius: 0;
+ border-start-start-radius: 0;
}
}
}
@@ -524,21 +601,21 @@ kbd {
*/
.app-navigation-entry-deleted {
display: inline-flex;
- padding-left: 44px;
- transform: translateX(#{$navigation-width});
+ padding-inline-start: var(--default-clickable-area);
+ transform: translateX(#{variables.$navigation-width});
.app-navigation-entry-deleted-description {
position: relative;
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
flex: 1 1 0px;
- line-height: 44px;
+ line-height: var(--default-clickable-area);
}
.app-navigation-entry-deleted-button {
margin: 0;
- height: 44px;
- width: 44px;
- line-height: 44px;
+ height: var(--default-clickable-area);
+ width: var(--default-clickable-area);
+ line-height: var(--default-clickable-area);
&:hover,
&:focus {
opacity: 1;
@@ -556,7 +633,7 @@ kbd {
opacity 250ms ease-in-out,
z-index 250ms ease-in-out;
position: absolute;
- left: 0;
+ inset-inline-start: 0;
background-color: var(--color-main-background);
box-sizing: border-box;
}
@@ -580,15 +657,71 @@ kbd {
}
}
+/* Floating and background-position fix */
+/* Cannot use inline-start and :dir to support Samsung Internet */
+body[dir='ltr'] {
+ .app-navigation-personal,
+ .app-navigation-administration {
+ .app-navigation-new button {
+ background-position: left 10px center;
+ }
+
+ > ul > li > ul > li > a {
+ background-position: left 14px center;
+
+ > .app-navigation-entry-utils {
+ float: right;
+ }
+ }
+ }
+}
+
+body[dir='rtl'] {
+ .app-navigation-personal,
+ .app-navigation-administration {
+ .app-navigation-new button {
+ background-position: right 10px center;
+ }
+
+ > ul > li > ul > li > a {
+ background-position: right 14px center;
+
+ > .app-navigation-entry-utils {
+ float: left;
+ }
+ }
+ }
+}
/* CONTENT --------------------------------------------------------- */
#content {
box-sizing: border-box;
- position: relative;
+ position: static;
+ margin: var(--body-container-margin);
+ margin-top: var(--header-height);
+ padding: 0;
display: flex;
- // padding is included in height
- padding-top: $header-height;
- min-height: 100%;
+ width: calc(100% - var(--body-container-margin) * 2);
+ height: var(--body-height);
+ border-radius: var(--body-container-radius);
+ overflow: clip;
+
+ &:not(.with-sidebar--full) {
+ position: fixed;
+ }
+}
+
+@media only screen and (max-width: variables.$breakpoint-mobile) {
+ #content {
+ border-start-start-radius: var(--border-radius-large);
+ border-start-end-radius: var(--border-radius-large);
+ }
+ #app-navigation {
+ border-start-start-radius: var(--border-radius-large);
+ }
+ #app-sidebar {
+ border-start-end-radius: var(--border-radius-large);
+ }
}
/* APP-CONTENT AND WRAPPER ------------------------------------------ */
@@ -596,21 +729,19 @@ kbd {
/**
* !Important. We are defining the minimum requirement we want for flex
- * Just before the mobile breakpoint we have $breakpoint-mobile (1024px) - $navigation-width
+ * Just before the mobile breakpoint we have variables.$breakpoint-mobile (1024px) - variables.$navigation-width
* -> 468px. In that case we want 200px for the list and 268px for the content
*/
-$min-content-width: $breakpoint-mobile - $navigation-width - $list-min-width;
+$min-content-width: variables.$breakpoint-mobile - variables.$navigation-width - variables.$list-min-width;
#app-content {
z-index: 1000;
background-color: var(--color-main-background);
- position: relative;
flex-basis: 100vw;
- min-height: 100%;
+ overflow: auto;
+ position: initial;
+ height: 100%;
/* margin if navigation element is here */
- #app-navigation:not(.hidden) + & {
- margin-left: $navigation-width;
- }
/* no top border for first settings item */
> .section:first-child {
border-top: none;
@@ -634,6 +765,10 @@ $min-content-width: $breakpoint-mobile - $navigation-width - $list-min-width;
}
}
}
+
+ &::-webkit-scrollbar-button {
+ height: var(--body-container-radius);
+ }
}
/* APP-SIDEBAR ------------------------------------------------------------ */
@@ -643,18 +778,20 @@ $min-content-width: $breakpoint-mobile - $navigation-width - $list-min-width;
*/
#app-sidebar {
width: 27vw;
- min-width: $sidebar-min-width;
- max-width: $sidebar-max-width;
+ min-width: variables.$sidebar-min-width;
+ max-width: variables.$sidebar-max-width;
display: block;
- @include position('sticky');
- top: $header-height;
- right:0;
+ position: -webkit-sticky;
+ position: sticky;
+ top: variables.$header-height;
+ inset-inline-end:0;
overflow-y: auto;
overflow-x: hidden;
z-index: 1500;
- height: calc(100vh - #{$header-height});
+ opacity: 0.7px;
+ height: calc(100vh - #{variables.$header-height});
background: var(--color-main-background);
- border-left: 1px solid var(--color-border);
+ border-inline-start: 1px solid var(--color-border);
flex-shrink: 0;
// no animations possible, use OC.Apps.showAppSidebar
&.disappear {
@@ -678,8 +815,9 @@ $min-content-width: $breakpoint-mobile - $navigation-width - $list-min-width;
#app-settings-content {
display: none;
- padding: 10px;
- background-color: var(--color-main-background);
+ padding: calc(var(--default-grid-baseline) * 2);
+ padding-top: 0;
+ padding-inline-start: calc(var(--default-grid-baseline) * 4);
/* restrict height of settings and make scrollable */
max-height: 300px;
overflow-y: auto;
@@ -691,7 +829,8 @@ $min-content-width: $breakpoint-mobile - $navigation-width - $list-min-width;
}
.info-text {
- padding: 5px 0 7px 22px;
+ padding-block: 5px 7px;
+ padding-inline: 22px 0;
color: var(--color-text-lighter);
}
input {
@@ -711,40 +850,76 @@ $min-content-width: $breakpoint-mobile - $navigation-width - $list-min-width;
#app-settings-header {
box-sizing: border-box;
- background-color: var(--color-main-background);
-}
+ background-color: transparent;
+ overflow: hidden;
+ border-radius: calc(var(--default-clickable-area) / 2);
+ padding: calc(var(--default-grid-baseline) * 2);
+ padding-top: 0;
+ .settings-button {
+ display: flex;
+ align-items: center;
+ height: var(--default-clickable-area);
+ width: 100%;
+ padding: 0;
+ margin: 0;
+ background-color: transparent;
+ box-shadow: none;
+ border: 0;
+ border-radius: calc(var(--default-clickable-area) / 2);
+ text-align: start;
+ font-weight: normal;
+ font-size: 100%;
+ opacity: 0.8;
+
+ /* like app-navigation a */
+ color: var(--color-main-text);
+
+ &.opened {
+ border-top: solid 1px var(--color-border);
+ background-color: var(--color-main-background);
+ margin-top: 8px;
+ }
+ &:hover,
+ &:focus {
+ background-color: var(--color-background-hover);
+ }
-#app-settings-header .settings-button {
- display: block;
- height: 44px;
- width: 100%;
- padding: 0;
- margin: 0;
- background-color: var(--color-main-background);
- @include icon-color('settings-dark', 'actions', $color-black, 1, true);
- background-position: 14px center;
- background-repeat: no-repeat;
- box-shadow: none;
- border: 0;
- border-radius: 0;
- text-align: left;
- padding-left: 42px;
- font-weight: normal;
-
- /* like app-navigation a */
- color: var(--color-main-text);
+ &::before {
+ background-image: var(--icon-settings-dark);
+ background-repeat: no-repeat;
+ content: '';
+ width: var(--default-clickable-area);
+ height: var(--default-clickable-area);
+ top: 0;
+ inset-inline-start: 0;
+ display: block;
+ }
- &.opened {
- border-top: solid 1px var(--color-border);
- background-color: var(--color-main-background);
+ &:focus-visible {
+ box-shadow: 0 0 0 2px inset var(--color-primary-element) !important;
+ }
}
- &:hover,
- &:focus {
- background-color: var(--color-background-hover);
+}
+
+/* Background-position fix */
+body[dir='ltr'] #app-settings-header .settings-button {
+ &::before {
+ background-position: left 14px center;
+ }
+ &:focus-visible {
+ background-position: left 12px center;
}
}
+body[dir='rtl'] #app-settings-header .settings-button {
+ &::before {
+ background-position: right 14px center;
+ }
+ &:focus-visible {
+ background-position: right 12px center;
+ }
+}
/* GENERAL SECTION ------------------------------------------------------------ */
.section {
display: block;
@@ -758,14 +933,15 @@ $min-content-width: $breakpoint-mobile - $navigation-width - $list-min-width;
&[type='checkbox'],
&[type='radio'] {
vertical-align: -2px;
- margin-right: 4px;
+ margin-inline-end: 4px;
}
}
}
+
.sub-section {
position: relative;
margin-top: 10px;
- margin-left: 27px;
+ margin-inline-start: 27px;
margin-bottom: 10px;
}
@@ -805,10 +981,10 @@ $min-content-width: $breakpoint-mobile - $navigation-width - $list-min-width;
/* Use same amount as sidebar padding */
&:first-child {
- padding-left: 15px;
+ padding-inline-start: 15px;
}
&:last-child {
- padding-right: 15px;
+ padding-inline-end: 15px;
}
.icon {
@@ -818,7 +994,7 @@ $min-content-width: $breakpoint-mobile - $navigation-width - $list-min-width;
background-size: 16px;
vertical-align: middle;
margin-top: -2px;
- margin-right: 3px;
+ margin-inline-end: 3px;
opacity: .7;
cursor: pointer;
}
@@ -841,25 +1017,38 @@ $min-content-width: $breakpoint-mobile - $navigation-width - $list-min-width;
}
}
}
+
.tabsContainer {
- clear: left;
.tab {
padding: 0 15px 15px;
}
}
+/* Cannot use inline-start to support Samsung Internet*/
+body[dir='ltr'] .tabsContainer {
+ clear: left;
+}
+
+body[dir='rtl'] .tabsContainer {
+ clear: right;
+}
+
/* POPOVER MENU ------------------------------------------------------------ */
-$popoveritem-height: 44px;
+$popoveritem-height: 34px;
$popovericon-size: 16px;
-$outter-margin: ($popoveritem-height - $popovericon-size) / 2;
-
-.ie,
-.edge {
- .bubble, .bubble:after,
- .popovermenu, .popovermenu:after,
- #app-navigation .app-navigation-entry-menu,
- #app-navigation .app-navigation-entry-menu:after {
- border: 1px solid var(--color-border);
+$outter-margin: math.div($popoveritem-height - $popovericon-size, 2);
+
+.v-popper__inner div.open > ul {
+ > li > a > span.action-link__icon,
+ > li > a > span.action-router__icon,
+ > li > a > img {
+ filter: var(--background-invert-if-dark);
+
+ // We do not want to invert the color of the user_status emoji:
+ // https://github.com/nextcloud/nextcloud-vue/blob/8899087f8f8d45e0ed744bde9faa00b625a21905/src/components/NcAvatar/NcAvatar.vue#L495
+ &[src^="data"] {
+ filter: none;
+ }
}
}
@@ -869,11 +1058,12 @@ $outter-margin: ($popoveritem-height - $popovericon-size) / 2;
position: absolute;
background-color: var(--color-main-background);
color: var(--color-main-text);
- border-radius: var(--border-radius);
+ border-radius: var(--border-radius-large);
+ padding: 3px;
z-index: 110;
margin: 5px;
margin-top: -5px;
- right: 0;
+ inset-inline-end: 0;
filter: drop-shadow(0 1px 3px var(--color-box-shadow));
display: none;
will-change: filter;
@@ -884,7 +1074,7 @@ $outter-margin: ($popoveritem-height - $popovericon-size) / 2;
// = 16px/2 + 14px = 22px
// popover right margin is 5px, arrow width is 9px to center and border is 1px
// 22px - 9px - 5px - 1px = 7px
- right: 7px;
+ inset-inline-end: 7px;
/* change this to adjust the arrow position */
border: solid transparent;
content: ' ';
@@ -898,21 +1088,19 @@ $outter-margin: ($popoveritem-height - $popovericon-size) / 2;
/* Center the popover */
&.menu-center {
transform: translateX(50%);
- right: 50%;
- margin-right: 0;
+ inset-inline-end: 50%;
+ margin-inline-end: 0;
&:after {
- right: 50%;
+ inset-inline-end: 50%;
transform: translateX(50%);
}
}
/* Align the popover to the left */
&.menu-left {
- right: auto;
- left: 0;
- margin-right: 0;
+ inset-inline: 0 auto;
+ margin-inline-end: 0;
&:after {
- left: 6px;
- right: auto;
+ inset-inline: 6px auto;
}
}
@@ -943,7 +1131,7 @@ $outter-margin: ($popoveritem-height - $popovericon-size) / 2;
cursor: pointer;
line-height: $popoveritem-height;
border: 0;
- border-radius: 0; // otherwise Safari will cut the border-radius area
+ border-radius: var(--border-radius-large);
background-color: transparent;
display: flex;
align-items: flex-start;
@@ -961,14 +1149,14 @@ $outter-margin: ($popoveritem-height - $popovericon-size) / 2;
&[class*=' icon-'] {
min-width: 0; /* Overwrite icons*/
min-height: 0;
- background-position: #{($popoveritem-height - $popovericon-size) / 2} center;
+ background-position: #{math.div($popoveritem-height - $popovericon-size, 2)} center;
background-size: $popovericon-size;
}
span[class^='icon-'],
span[class*=' icon-'] {
/* Keep padding to define the width to
assure correct position of a possible text */
- padding: #{$popoveritem-height / 2} 0 #{$popoveritem-height / 2} $popoveritem-height;
+ padding: #{math.div($popoveritem-height, 2)} 0 #{math.div($popoveritem-height, 2)} $popoveritem-height;
}
// If no icons set, force left margin to align
&:not([class^='icon-']):not([class*='icon-']) {
@@ -976,20 +1164,25 @@ $outter-margin: ($popoveritem-height - $popovericon-size) / 2;
> input,
> form {
&:not([class^='icon-']):not([class*='icon-']):first-child {
- margin-left: $popoveritem-height;
+ margin-inline-start: $popoveritem-height;
}
}
}
&[class^='icon-'],
&[class*=' icon-'] {
- padding: 0 #{($popoveritem-height - $popovericon-size) / 2} 0 $popoveritem-height !important;
+ padding: 0 #{math.div($popoveritem-height - $popovericon-size, 2)} 0 $popoveritem-height !important;
}
&:hover,
&:focus {
background-color: var(--color-background-hover);
}
+ &:focus,
+ &:focus-visible {
+ box-shadow: 0 0 0 2px var(--color-primary-element);
+ }
&.active {
- background-color: var(--color-primary-light);
+ border-radius: var(--border-radius-element);
+ background-color: var(--color-primary-element-light);
}
/* prevent .action class to break the design */
&.action {
@@ -1007,17 +1200,17 @@ $outter-margin: ($popoveritem-height - $popovericon-size) / 2;
}
> select {
margin: 0;
- margin-left: 6px;
+ margin-inline-start: 6px;
}
/* Add padding if contains icon+text */
&:not(:empty) {
- padding-right: $outter-margin !important;
+ padding-inline-end: $outter-margin !important;
}
/* DEPRECATED! old img in popover fallback
* TODO: to remove */
> img {
width: $popovericon-size;
- padding: #{($popoveritem-height - $popovericon-size) / 2};
+ padding: #{math.div($popoveritem-height - $popovericon-size, 2)};
}
/* checkbox/radio fixes */
> input.radio + label,
@@ -1039,14 +1232,15 @@ $outter-margin: ($popoveritem-height - $popovericon-size) / 2;
flex: 1 1 auto;
/* put a small space between text and form
if there is an element before */
+ align-items: center;
&:not(:first-child) {
- margin-left: 5px;
+ margin-inline-start: 5px;
}
}
/* no margin if hidden span before */
> span.hidden + form,
> span[style*='display:none'] + form {
- margin-left: 0;
+ margin-inline-start: 0;
}
/* Inputs inside popover supports text, submit & reset */
input {
@@ -1056,7 +1250,7 @@ $outter-margin: ($popoveritem-height - $popovericon-size) / 2;
flex: 1 1 auto;
// space between inline inputs
&:not(:first-child) {
- margin-left: 5px;
+ margin-inline-start: 5px;
}
}
}
@@ -1072,7 +1266,7 @@ $outter-margin: ($popoveritem-height - $popovericon-size) / 2;
&:last-of-type {
> button, > a, > .menuitem {
> form, > input {
- margin-bottom: $outter-margin - 2px; // minus the input margin
+ margin-bottom: 0px;
}
}
}
@@ -1087,22 +1281,27 @@ $outter-margin: ($popoveritem-height - $popovericon-size) / 2;
}
}
-/* "app-*" descendants use border-box sizing, so the height of the icon must be
- * set to the height of the item (as well as its width to make it squared). */
-#content[class*='app-'] {
- .bubble,
- .app-navigation-entry-menu,
- .popovermenu {
- li {
- > button,
- > a,
- > .menuitem {
- /* DEPRECATED! old img in popover fallback
- * TODO: to remove */
- > img {
- width: $popoveritem-height;
- height: $popoveritem-height;
- }
+.popovermenu {
+ li {
+ > button,
+ > a,
+ > .menuitem {
+ /* DEPRECATED! old img in popover fallback
+ * TODO: to remove */
+ > img {
+ width: $popoveritem-height;
+ height: $popoveritem-height;
+ }
+ }
+ }
+}
+
+#contactsmenu .contact .popovermenu {
+ li {
+ > a {
+ > img {
+ width: 16px;
+ height: 16px;
}
}
}
@@ -1110,19 +1309,20 @@ $outter-margin: ($popoveritem-height - $popovericon-size) / 2;
/* CONTENT LIST ------------------------------------------------------------ */
.app-content-list {
- @include position('sticky');
- top: $header-height;
- border-right: 1px solid var(--color-border);
+ position: -webkit-sticky;
+ position: relative;
+ top: 0;
+ border-inline-end: 1px solid var(--color-border);
display: flex;
flex-direction: column;
transition: transform 250ms ease-in-out;
- min-height: calc(100vh - #{$header-height});
- max-height: calc(100vh - #{$header-height});
+ min-height: 100%;
+ max-height: 100%;
overflow-y: auto;
overflow-x: hidden;
- flex: 1 1 $list-min-width;
- min-width: $list-min-width;
- max-width: $list-max-width;
+ flex: 1 1 variables.$list-min-width;
+ min-width: variables.$list-min-width;
+ max-width: variables.$list-max-width;
/* Default item */
.app-content-list-item {
@@ -1200,7 +1400,7 @@ $outter-margin: ($popoveritem-height - $popovericon-size) / 2;
}
+ label {
top: 14px;
- left: 7px;
+ inset-inline-start: 7px;
// hidden by default, only chown on hover-focus or if checked
display: none;
&::before {
@@ -1216,7 +1416,7 @@ $outter-margin: ($popoveritem-height - $popovericon-size) / 2;
.app-content-list-item-star {
display: flex;
top: 10px;
- left: 32px;
+ inset-inline-start: 32px;
background-size: 16px;
height: 20px;
width: 20px;
@@ -1232,7 +1432,7 @@ $outter-margin: ($popoveritem-height - $popovericon-size) / 2;
line-height: 40px;
border-radius: 50%;
vertical-align: middle;
- margin-right: 10px;
+ margin-inline-end: 10px;
color: #fff;
text-align: center;
font-size: 1.5em;
@@ -1247,13 +1447,12 @@ $outter-margin: ($popoveritem-height - $popovericon-size) / 2;
.app-content-list-item-line-one,
.app-content-list-item-line-two {
display: block;
- padding-left: 50px;
+ padding-inline: 50px 10px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
order: 1;
flex: 1 1 0px;
- padding-right: 10px;
cursor: pointer;
}
@@ -1261,7 +1460,7 @@ $outter-margin: ($popoveritem-height - $popovericon-size) / 2;
opacity: .5;
order: 3;
flex: 1 0;
- flex-basis: calc(100% - 44px);
+ flex-basis: calc(100% - var(--default-clickable-area));
}
.app-content-list-item-details {
@@ -1282,7 +1481,7 @@ $outter-margin: ($popoveritem-height - $popovericon-size) / 2;
margin: 0;
// action icon have -7px margin
// default popover is normally 5px
- right: -2px;
+ inset-inline-end: -2px;
}
}
}
@@ -1290,3 +1489,8 @@ $outter-margin: ($popoveritem-height - $popovericon-size) / 2;
display: flex;
}
}
+
+.button.primary.skip-navigation:focus-visible {
+ box-shadow: 0 0 0 4px var(--color-main-background) !important;
+ outline: 2px solid var(--color-main-text) !important;
+}
diff --git a/core/css/css-variables.scss b/core/css/css-variables.scss
deleted file mode 100644
index 86f80611a6c..00000000000
--- a/core/css/css-variables.scss
+++ /dev/null
@@ -1,60 +0,0 @@
-// CSS4 Variables
-// Remember, you cannot use scss functions with css4 variables
-// All css4 variables must be fixed! Scss is a PRE processor
-// css4 variables are processed after scss!
-:root {
- --color-main-text: #{$color-main-text};
- --color-main-background: #{$color-main-background};
- --color-main-background-translucent: #{$color-main-background-translucent};
-
- // To use like this: background-image: linear-gradient(0, var(--gradient-main-background));
- --gradient-main-background: var(--color-main-background) 0%, var(--color-main-background-translucent) 85%, transparent 100%;
-
- --color-background-hover: #{$color-background-hover};
- --color-background-dark: #{$color-background-dark};
- --color-background-darker: #{$color-background-darker};
-
- --color-placeholder-light: #{$color-placeholder-light};
- --color-placeholder-dark: #{$color-placeholder-dark};
-
- --color-primary: #{$color-primary};
- --color-primary-light: #{$color-primary-light};
- --color-primary-text: #{$color-primary-text};
- --color-primary-text-dark: #{$color-primary-text-dark};
- --color-primary-element: #{$color-primary-element};
- --color-primary-element-light: #{$color-primary-element-light};
-
- --color-error: #{$color-error};
- --color-warning: #{$color-warning};
- --color-success: #{$color-success};
-
- --color-text-maxcontrast: #{$color-text-maxcontrast};
- --color-text-light: #{$color-main-text};
- --color-text-lighter: #{$color-text-maxcontrast};
-
- --image-logo: #{$image-logo};
- --image-login-background: #{$image-login-background};
- --image-logoheader: #{$image-logoheader};
- --image-favicon: #{$image-favicon};
-
- --color-loading-light: #{$color-loading-light};
- --color-loading-dark: #{$color-loading-dark};
-
- --color-box-shadow: #{$color-box-shadow};
-
- --color-border: #{$color-border};
- --color-border-dark: #{$color-border-dark};
- --border-radius: #{$border-radius};
- --border-radius-large: #{$border-radius-large};
- --border-radius-pill: #{$border-radius-pill};
-
- --font-face: #{$font-face};
- --default-font-size: #{$default-font-size};
-
- --default-line-height: #{$default-line-height};
-
- --animation-quick: #{$animation-quick};
- --animation-slow: #{$animation-slow};
-
- --header-height: #{$header-height};
-}
diff --git a/core/css/exception.css b/core/css/exception.css
new file mode 100644
index 00000000000..875c8b27b25
--- /dev/null
+++ b/core/css/exception.css
@@ -0,0 +1,4 @@
+/*!
+ * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */li{word-wrap:break-word}pre{white-space:pre-wrap;word-wrap:break-word}/*# sourceMappingURL=exception.css.map */
diff --git a/core/css/exception.css.map b/core/css/exception.css.map
new file mode 100644
index 00000000000..5f0a0d37a36
--- /dev/null
+++ b/core/css/exception.css.map
@@ -0,0 +1 @@
+{"version":3,"sourceRoot":"","sources":["exception.scss"],"names":[],"mappings":"AAAA;AAAA;AAAA;AAAA,GAKA,GACC,qBAGD,IACC,qBACA","file":"exception.css"} \ No newline at end of file
diff --git a/core/css/exception.css.map.license b/core/css/exception.css.map.license
new file mode 100644
index 00000000000..f7f52efa96f
--- /dev/null
+++ b/core/css/exception.css.map.license
@@ -0,0 +1,2 @@
+SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
+SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/core/css/exception.scss b/core/css/exception.scss
new file mode 100644
index 00000000000..2c44b54a20f
--- /dev/null
+++ b/core/css/exception.scss
@@ -0,0 +1,13 @@
+/*!
+ * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+
+li {
+ word-wrap: break-word;
+}
+
+pre {
+ white-space: pre-wrap;
+ word-wrap: break-word;
+}
diff --git a/core/css/fixes.css b/core/css/fixes.css
new file mode 100644
index 00000000000..dc1b7e9d5ab
--- /dev/null
+++ b/core/css/fixes.css
@@ -0,0 +1,4 @@
+/*!
+ * SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */::-moz-focus-inner{border:0}/*# sourceMappingURL=fixes.css.map */
diff --git a/core/css/fixes.css.map b/core/css/fixes.css.map
new file mode 100644
index 00000000000..4df756cfa83
--- /dev/null
+++ b/core/css/fixes.css.map
@@ -0,0 +1 @@
+{"version":3,"sourceRoot":"","sources":["fixes.scss"],"names":[],"mappings":"AAAA;AAAA;AAAA;AAAA,GAOA,mBACC","file":"fixes.css"} \ No newline at end of file
diff --git a/core/css/fixes.css.map.license b/core/css/fixes.css.map.license
new file mode 100644
index 00000000000..0801c996d9d
--- /dev/null
+++ b/core/css/fixes.css.map.license
@@ -0,0 +1,2 @@
+SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
+SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/core/css/fixes.scss b/core/css/fixes.scss
index 6cb6b4069ad..ceb4e47455e 100644
--- a/core/css/fixes.scss
+++ b/core/css/fixes.scss
@@ -1,3 +1,7 @@
+/*!
+ * SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
/* ---- BROWSER-SPECIFIC FIXES ---- */
/* remove dotted outlines in Firefox */
diff --git a/core/css/functions.css b/core/css/functions.css
new file mode 100644
index 00000000000..337219305f9
--- /dev/null
+++ b/core/css/functions.css
@@ -0,0 +1,4 @@
+/*!
+ * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ *//*# sourceMappingURL=functions.css.map */
diff --git a/core/css/functions.css.map b/core/css/functions.css.map
new file mode 100644
index 00000000000..b9f301c163d
--- /dev/null
+++ b/core/css/functions.css.map
@@ -0,0 +1 @@
+{"version":3,"sourceRoot":"","sources":["functions.scss"],"names":[],"mappings":"AAAA;AAAA;AAAA;AAAA","file":"functions.css"} \ No newline at end of file
diff --git a/core/css/functions.css.map.license b/core/css/functions.css.map.license
new file mode 100644
index 00000000000..b62adf36215
--- /dev/null
+++ b/core/css/functions.css.map.license
@@ -0,0 +1,2 @@
+SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
+SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/core/css/functions.scss b/core/css/functions.scss
index 7489e574e97..8fac1ae55d5 100644
--- a/core/css/functions.scss
+++ b/core/css/functions.scss
@@ -1,57 +1,34 @@
-/**
- * @copyright Copyright (c) 2018, John Molakvoæ (skjnldsv@protonmail.com)
- *
- * @author John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
- *
- * @license GNU AGPL version 3 or any later version
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
+/*!
+ * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
/**
- * Removes the "#" from a color.
- *
- * @param string $color The color
- * @return string The color without #
+ * @see core/src/icons.js
*/
-@function remove-hash-from-color($color) {
- $color: unquote($color);
- $index: str-index(inspect($color), '#');
- @if $index {
- $color: str-slice(inspect($color), 2);
+@function match-color-string($color) {
+ @if $color == #000 {
+ @return "dark";
}
- @return $color;
-}
-
-/**
- * Calculates the URL to the svg under the SVG API.
- *
- * @param string $icon the icon filename
- * @param string $dir the icon folder within /core/img if $core or app name
- * @param string $color the desired color in hexadecimal
- * @param int [$version] the version of the file
- * @param bool [$core] search icon in core
- * @return string The URL to the svg.
- */
-@function icon-color-path($icon, $dir, $color, $version: 1, $core: false) {
- $color: remove-hash-from-color($color);
- @if $core {
- @return '#{$webroot}/svg/core/#{$dir}/#{$icon}?color=#{$color}&v=#{$version}';
- } @else {
- @return '#{$webroot}/svg/#{$dir}/#{$icon}?color=#{$color}&v=#{$version}';
+ @if $color == #fff {
+ @return 'white';
+ }
+ @if $color == #FC0 {
+ @return 'yellow';
+ }
+ @if $color == #e9322d {
+ @return 'red';
+ }
+ @if $color == #eca700 {
+ @return 'orange';
+ }
+ @if $color == #46ba61 {
+ @return 'green';
}
+ @if $color == #969696 {
+ @return 'grey';
+ }
+ @return $color;
}
/**
@@ -66,35 +43,8 @@
* @returns A background image with the url to the set to the requested icon.
*/
@mixin icon-color($icon, $dir, $color, $version: 1, $core: false) {
- $color: remove-hash-from-color($color);
+ $color: match-color-string($color);
/* $dir is the app name, so we add this to the icon var to avoid conflicts between apps */
- $varName: "--icon-#{$dir}-#{$icon}-#{$color}";
- @if $core {
- $varName: "--icon-#{$icon}-#{$color}";
- }
- #{$varName}: url(icon-color-path($icon, $dir, $color, $version, $core));
+ $varName: "--icon-#{$icon}-#{$color}";
background-image: var(#{$varName});
}
-
-/**
- * Create black and white icons
- * This will add a default black version of and an additional white version when .icon-white is applied
- */
-@mixin icon-black-white($icon, $dir, $version, $core: false) {
- .icon-#{$icon} {
- @include icon-color($icon, $dir, $color-black, $version, $core);
- }
- .icon-#{$icon}-white,
- .icon-#{$icon}.icon-white {
- @include icon-color($icon, $dir, $color-white, $version, $core);
- }
-}
-
-@mixin position($value) {
- @if $value == 'sticky' {
- position: -webkit-sticky; // Safari support
- position: sticky;
- } @else {
- position: $value;
- }
-}
diff --git a/core/css/global.css b/core/css/global.css
new file mode 100644
index 00000000000..99075c7c92f
--- /dev/null
+++ b/core/css/global.css
@@ -0,0 +1,6 @@
+/*!
+ * SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2015 ownCloud Inc.
+ * SPDX-FileCopyrightText: 2015 Raghu Nayyar, http://raghunayyar.com
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */body[dir=ltr] .pull-left,body[dir=ltr] .pull-start{float:left}body[dir=ltr] .pull-right,body[dir=ltr] .pull-end{float:right}body[dir=ltr] .clear-left,body[dir=ltr] .clear-start{clear:left}body[dir=ltr] .clear-right,body[dir=ltr] .clear-end{clear:right}body[dir=rtl] .pull-left,body[dir=rtl] .pull-start{float:right}body[dir=rtl] .pull-right,body[dir=rtl] .pull-end{float:left}body[dir=rtl] .clear-left,body[dir=rtl] .clear-start{clear:right}body[dir=rtl] .clear-right,body[dir=rtl] .clear-end{clear:left}.clear-both{clear:both}.hidden{display:none}.hidden-visually{position:absolute;inset-inline-start:-10000px;top:-10000px;width:1px;height:1px;overflow:hidden}.bold{font-weight:600}.center{text-align:center}.inlineblock{display:inline-block}/*# sourceMappingURL=global.css.map */
diff --git a/core/css/global.css.map b/core/css/global.css.map
new file mode 100644
index 00000000000..bc63ddd02f3
--- /dev/null
+++ b/core/css/global.css.map
@@ -0,0 +1 @@
+{"version":3,"sourceRoot":"","sources":["global.scss"],"names":[],"mappings":"AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAcC,mDAEC,WAGD,kDAEC,YAGD,qDAEC,WAGD,oDAEC,YAKD,mDAEC,YAGD,kDAEC,WAGD,qDAEC,YAGD,oDAEC,WAIF,YACC,WAGD,QACC,aAGD,iBACC,kBACA,4BACA,aACA,UACA,WACA,gBAGD,MACC,gBAGD,QACC,kBAGD,aACC","file":"global.css"} \ No newline at end of file
diff --git a/core/css/global.css.map.license b/core/css/global.css.map.license
new file mode 100644
index 00000000000..d18caeb1ad4
--- /dev/null
+++ b/core/css/global.css.map.license
@@ -0,0 +1,4 @@
+SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
+SPDX-FileCopyrightText: 2015 ownCloud Inc.
+SPDX-FileCopyrightText: 2015 Raghu Nayyar, http://raghunayyar.com
+SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/core/css/global.scss b/core/css/global.scss
index d2b0526c09c..de83f862786 100644
--- a/core/css/global.scss
+++ b/core/css/global.scss
@@ -1,23 +1,58 @@
-/* Copyright (c) 2015, Raghu Nayyar, http://raghunayyar.com
- This file is licensed under the Affero General Public License version 3 or later.
- See the COPYING-README file. */
+/*!
+ * SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2015 ownCloud Inc.
+ * SPDX-FileCopyrightText: 2015 Raghu Nayyar, http://raghunayyar.com
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
/* Global Components */
-.pull-left {
- float: left;
-}
+/* The following lines are a hacky way to adjust float and clear based on direction.
+ Samsung Internet doesn't support `inline-start|end` and :dir.
+ pull-right|left and clear-right|left are also kept for backward compatibility.
+ */
+body[dir='ltr'] {
+ .pull-left,
+ .pull-start {
+ float: left;
+ }
-.pull-right {
- float: right;
-}
+ .pull-right,
+ .pull-end {
+ float: right;
+ }
+
+ .clear-left,
+ .clear-start {
+ clear: left;
+ }
-.clear-left {
- clear: left;
+ .clear-right,
+ .clear-end {
+ clear: right;
+ }
}
-.clear-right {
- clear: right;
+body[dir='rtl'] {
+ .pull-left,
+ .pull-start {
+ float: right;
+ }
+
+ .pull-right,
+ .pull-end {
+ float: left;
+ }
+
+ .clear-left,
+ .clear-start {
+ clear: right;
+ }
+
+ .clear-right,
+ .clear-end {
+ clear: left;
+ }
}
.clear-both {
@@ -30,7 +65,7 @@
.hidden-visually {
position: absolute;
- left: -10000px;
+ inset-inline-start: -10000px;
top: -10000px;
width: 1px;
height: 1px;
diff --git a/core/css/guest.css b/core/css/guest.css
index 340d3954c95..b9c9385bb04 100644
--- a/core/css/guest.css
+++ b/core/css/guest.css
@@ -1,921 +1,8 @@
-/* Copyright (c) 2011, Jan-Christoph Borchardt, http://jancborchardt.net
- This file is licensed under the Affero General Public License version 3 or later.
- See the COPYING-README file. */
-
-/* Default and reset */
-html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, code, del, dfn, em, img, q, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, dialog, figure, footer, header, hgroup, nav, section { margin:0; padding:0; border:0; outline:0; font-weight:inherit; font-size:100%; font-family:inherit; vertical-align:baseline; cursor:default; }
-html { height:100%; }
-article, aside, dialog, figure, footer, header, hgroup, nav, section { display:block; }
-body { line-height:1.5; }
-table { border-collapse:separate; border-spacing:0; white-space:nowrap; }
-caption, th, td { text-align:left; font-weight:normal; }
-table, td, th { vertical-align:middle; }
-a { border:0; color:#000; text-decoration:none;}
-a, a *, input, input *, select, .button span, label { cursor:pointer; }
-ul { list-style:none; }
-
-body {
- background-color: #ffffff;
- font-weight: normal;
- /* bring the default font size up to 14px */
- font-size: .875em;
- line-height: 1.6em;
- font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol';
- color: #000;
- text-align: center;
- background-color: #0082c9;
- background-image: url('../img/background.png?v=2');
- background-image: url('../img/background.png?v=2'), linear-gradient(40deg, #0082c9 0%, rgba(28,175,255,1) 100%);
- background-position: 50% 50%;
- background-repeat: repeat;
- background-size: 275px, contain;
- background-attachment: fixed; /* fix background gradient */
- min-height: 100%; /* fix sticky footer */
- height: auto;
-}
-
-/* Various fonts settings */
-#body-login a {
- color: #fff;
- font-weight: 600;
-}
-#body-login a:not(.button):hover,
-#body-login a:not(.button):focus {
- text-decoration: underline;
- text-decoration-skip-ink: auto;
-}
-
-#showAdvanced {
- color: #fff;
-}
-
-em {
- font-style: normal;
- opacity: .5;
-}
-
-/* heading styles */
-h2,
-h3,
-h4 {
- font-weight: bold;
-}
-
-h2 {
- font-size: 20px;
- margin-bottom: 12px;
- line-height: 140%;
-}
-h3 {
- font-size: 15px;
- margin: 12px 0;
-}
-
-/* Global content */
-body {
- display: flex;
- flex-direction: column;
- justify-content: center;
- align-items: center;
-}
-
-#header .logo {
- background-image: url('../img/logo/logo.svg?v=1');
- background-repeat: no-repeat;
- background-size: 175px;
- background-position: center;
- width: 256px;
- min-height: 128px;
- max-height: 200px;
- margin: 0 auto;
- position: relative;
- left: unset;
-}
-
-#header .logo img {
- opacity: 0;
- max-width: 100%;
- max-height: 200px;
-}
-
-.wrapper {
- width: 100%;
- max-width: 700px;
- margin-top: 10vh;
-}
-
-/* Default FORM */
-form {
- position: relative;
- margin: auto;
- padding: 0;
-}
-form fieldset {
- width: 260px;
- margin: auto auto 20px;
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
-}
-form #sqliteInformation {
- margin-top: -20px;
- margin-bottom: 20px;
-}
-form #adminaccount {
- margin-bottom: 15px;
-}
-form fieldset legend, #datadirContent label {
- width: 100%;
-}
-#datadirContent label {
- display: block;
- margin: 0;
-}
-form #datadirField legend {
- margin-bottom: 15px;
-}
-
-/* View more button */
-#showAdvanced {
- padding: 13px; /* increase clickable area of Advanced dropdown */
-}
-#showAdvanced img {
- vertical-align: middle; /* adjust position of Advanced dropdown arrow */
-}
-
-/* Buttons and input */
-#submit-wrapper,
-#reset-password-wrapper,
-#alternative-logins {
- display: flex;
- align-items: center;
- justify-content: center;
- position: relative; /* Make the wrapper the containing block of its
- absolutely positioned descendant icons */
-}
-
-#alternative-logins {
- margin: auto;
- display: block;
- min-width: 260px;
- max-width: 400px;
- overflow: hidden;
-}
-
-#alternative-logins a {
- margin: 10px 5px;
- display: block;
- font-size: 15px;
- white-space: nowrap;
- overflow: hidden;
- text-overflow: ellipsis;
-}
-
-#alternative-logins a.button::before {
- content: "";
- background-repeat: no-repeat;
- background-size: contain;
- width: 0;
- margin-right: 0;
- height: 18px;
- display: inline-block;
- vertical-align: bottom;
-}
-
-#alternative-logins .button {
- color: #0082c9;
- padding: 12px 20px;
-}
-
-@media only screen and (max-width: 1024px) {
- .wrapper {
- margin-top: 0;
- }
- #alternative-logins {
- margin: auto;
- }
-}
-
-
-#submit-wrapper .submit-icon,
-#reset-password-wrapper .submit-icon {
- position: absolute;
- top: 22px;
- right: 24px;
- transition: right 100ms ease-in-out;
- pointer-events: none; /* The submit icon is positioned on the submit button.
- From the user point of view the icon is part of the
- button, so the clicks on the icon have to be
- applied to the button instead. */
-}
-
-#submit-wrapper {
- margin: 0 auto;
-}
-
-#submit-wrapper input.login:hover ~ .submit-icon.icon-confirm-white,
-#submit-wrapper input.login:focus ~ .submit-icon.icon-confirm-white,
-#submit-wrapper input.login:active ~ .submit-icon.icon-confirm-white {
- right: 20px;
-}
-
-#reset-password-submit {
- padding: 10px;
- overflow: hidden;
- text-overflow: ellipsis;
-}
-
-#submit-wrapper .icon-loading-small {
- position: absolute;
- top: 22px;
- right: 26px;
-}
-
-
-input, textarea, select, button, div[contenteditable=true] {
- font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol';
-}
-input,
-input:not([type='range']),
-a.button {
- font-size: 20px;
- margin: 5px;
- padding: 11px 10px 9px;
- outline: none;
- border-radius: 3px; /* --border-radius */
- -webkit-appearance: none;
-}
-input[type='submit'],
-input[type='submit'].icon-confirm,
-input[type='button'],
-button,
-a.button,
-.button,
-select {
- display: inline-block;
- width: auto;
- min-width: 25px;
- padding: 12px;
- background-color: white;
- font-weight: bold;
- color: #555;
- border: none;
- border-radius: 100px; /* --border-radius-pill */
- cursor: pointer;
-}
-input[type='text'],
-input[type='tel'],
-input[type='password'],
-input[type='email'] {
- width: 249px;
- background: #fff;
- color: #555;
- cursor: text;
- font-family: inherit;
- -webkit-appearance: textfield;
- -moz-appearance: textfield;
- box-sizing: content-box;
- border: none;
- font-weight: normal;
-}
-input[type='password'].password-with-toggle, input[type='text'].password-with-toggle {
- width: 219px;
- padding-right: 40px;
-}
-.toggle-password {
- position: absolute;
- top: 17px;
- right: 20px;
-}
-input.login {
- width: 260px;
- height: 50px;
- background-position: right 16px center;
-}
-input[type='submit'],
-input[type='submit'].icon-confirm,
-input.updateButton,
-input.update-continue {
- padding: 10px 20px; /* larger log in and installation buttons */
- overflow: hidden;
- text-overflow: ellipsis;
-}
-.updateAnyways a.updateAnywaysButton {
- font-size: 14px;
- padding: 10px 20px;
- color: #666 !important;
- display: inline-block;
- border-radius: 100px; /* --border-radius-pill */
- margin: 15px 5px;
-}
-.updateAnyways a.updateAnywaysButton:hover {
- color: #222 !important;
-}
-
-/* Get rid of the inside dotted line in Firefox */
-button::-moz-focus-inner,
-input::-moz-focus-inner {
- border: 0;
-}
-
-input.primary,
-button.primary,
-a.primary {
- border: 1px solid #fff;
- background-color: #0082c9;
- color: #fff;
- transition: color 100ms ease-in-out;
-}
-
-input.primary:not(:disabled):hover,
-input.primary:not(:disabled):focus,
-button.primary:not(:disabled):hover,
-button.primary:not(:disabled):focus,
-a.primary:not(:disabled):hover,
-a.primary:not(:disabled):focus {
- color: rgba(255, 255, 255, .8);
-}
-
-/* Checkboxes - white only for login */
-input[type='checkbox'].checkbox {
- position: absolute;
- left: -10000px;
- top: auto;
- width: 1px;
- height: 1px;
- overflow: hidden;
-}
-input[type='checkbox'].checkbox + label {
- user-select: none;
-}
-input[type='checkbox'].checkbox:disabled + label,
-input[type='checkbox'].checkbox:disabled + label:before {
- cursor: default;
-}
-input[type='checkbox'].checkbox + label:before {
- content: '';
- display: inline-block;
- vertical-align: middle;
- margin: 3px;
- margin-top: 1px;
- border: 1px solid #888;
- border-radius: 1px;
- height: 10px;
- width: 10px;
- background-position: center;
-}
-input[type='checkbox'].checkbox--white + label:before {
- border-color: #ddd;
-}
-input[type='checkbox'].checkbox--white:not(:disabled):not(:checked) + label:hover:before,
-input[type='checkbox'].checkbox--white:focus + label:before {
- border-color: #fff;
-}
-input[type='checkbox'].checkbox--white:checked + label:before {
- background-color: #eee;
- border-color: #eee;
-}
-input[type='checkbox'].checkbox--white:disabled + label:before {
- background-color: #666 !important;
- border-color: #999 !important;
-}
-input[type='checkbox'].checkbox--white:checked:disabled + label:before {
- border-color: #666;
- background-color: #222;
-}
-input[type='checkbox'].checkbox--white:checked + label:before {
- background-color: transparent !important;
- border-color: #fff !important;
- background-image: url('../img/actions/checkbox-mark-white.svg');
-}
-
-/* Password strength meter */
-.strengthify-wrapper {
- display: inline-block;
- position: relative;
- top: -20px;
- width: 269px;
- border-radius: 0 0 3px 3px;
- overflow: hidden;
- height: 3px;
-}
-.tooltip-inner {
- font-weight: bold;
- color: #ccc;
- padding: 3px 6px;
- text-align: center;
-}
-
-/* Show password toggle */
-#show, #dbpassword-toggle {
- position: absolute;
- right: 1em;
- top: .8em;
- float: right;
-}
-#show + label, #dbpassword-toggle + label {
- right: 21px;
- top: 15px !important;
- margin: -14px !important;
- padding: 14px !important;
-}
-#show:checked + label, #dbpassword-toggle:checked + label, #personal-show:checked + label {
- opacity: .8;
-}
-#show + label, #dbpassword-toggle + label, #personal-show + label {
- position: absolute !important;
- height: 20px;
- width: 24px;
- background-image: url('../img/actions/toggle.svg?v=1');
- background-repeat: no-repeat;
- background-position: center;
- opacity: .3;
-}
-#show + label:before, #dbpassword-toggle + label:before, #personal-show + label:before {
- display: none;
-}
-/* Feedback for keyboard focus and mouse hover */
-#show:focus + label, #dbpassword-toggle:focus + label, #personal-show:focus + label,
-#show + label:hover, #dbpassword-toggle + label:hover, #personal-show + label:hover {
- opacity: 1;
-}
-#pass2, input[name='personal-password-clone'] {
- padding: .6em 2.5em .4em .4em;
- width: 8em;
-}
-#personal-show + label {
- height: 14px;
- margin-top: -25px;
- left: 295px;
- display: block;
-}
-#passwordbutton {
- margin-left: .5em;
-}
-
-/* Dark subtle label text */
-p.info,
-form fieldset legend,
-#datadirContent label,
-form fieldset .warning-info,
-form input[type='checkbox']+label {
- text-align: center;
- color: #fff;
-}
-/* overrides another !important statement that sets this to unreadable black */
-form .warning input[type='checkbox']:hover+label,
-form .warning input[type='checkbox']:focus+label,
-form .warning input[type='checkbox']+label {
- color: #fff !important;
-}
-
-.body-login-container.two-factor {
- max-width: 290px;
- margin: 15px auto 0;
-}
-.two-factor-provider {
- display: flex;
- border-radius: 3px; /* --border-radius */
- margin: 12px 0;
- border: 1px solid transparent;
- text-align: left;
- align-items: center;
- text-decoration: none !important;
-}
-.two-factor-provider:hover,
-.two-factor-provider:focus,
-.two-factor-provider:active {
- border: 1px solid #fff;
-}
-.two-factor-provider img {
- width: 64px;
- height: 64px;
- padding: 0 12px;
-}
-.two-factor-provider div {
- margin: 12px 0;
-}
-.two-factor-provider h3 {
- margin: 0;
-}
-.two-factor-provider p {
- font-weight: normal;
-}
-.two-factor-icon {
- width: 100px;
- display: block;
- margin: 0 auto;
-}
-.two-factor-submit {
- width: 100%;
- padding: 10px;
- margin: 0 0 5px 0;
- border-radius: 100px; /* --border-radius-pill */
- font-size: 20px;
-}
-.two-factor-primary {
- /* Fix for 'Use backup codes' button not taking correct styles */
- padding: 14px !important;
- width: 226px;
-}
-.two-factor-secondary {
- display: inline-block;
- padding: 12px;
-}
-
-
-/* Additional login options */
-#remember_login {
- margin: 18px 5px 0 16px !important;
-}
-.lost-password-container {
- display: inline-block;
- margin: 10px 0;
- text-align: center;
- width: 100%;
-}
-#lost-password,
-#lost-password-back,
-#reset-password-wrapper + a {
- display: inline-block;
- font-weight: normal !important;
- padding: 12px;
- color: #fff;
- cursor: pointer;
- text-shadow: 0 0 2px rgba(0, 0, 0, .4); /* better readability on bright background */
-}
-#lost-password {
- margin-top: -6px;
-}
-#forgot-password {
- padding: 11px;
- float: right;
- color: #fff;
-}
-
-/* Alternative Logins */
-#alternative-logins legend {
- margin-bottom: 10px;
-}
-#alternative-logins li {
- height: 40px;
- white-space: nowrap;
- padding: 05px;
-}
-#alternative-logins li a {
- width: 100%;
- display: inline-block;
- text-align: center;
- box-sizing: border-box;
- background-color: #0082c9;
- color: white;
- border-radius: 100px; /* --border-radius-pill */
-}
-
-/* fixes for update page TODO should be fixed some time in a proper way */
-/* this is just for an error while updating the ownCloud instance */
-.updateProgress .error {
- margin-top: 10px;
- margin-bottom: 10px;
-}
-
-/* Database selector on install page */
-form #selectDbType {
- text-align:center;
- white-space: nowrap;
- margin: 0;
- display: flex;
-}
-form #selectDbType .info {
- white-space: normal;
-}
-form #selectDbType label {
- flex-grow: 1;
- margin: 0 -1px 5px;
- font-size: 12px;
- background:#f8f8f8;
- color:#888;
- cursor:pointer;
- border: 1px solid #ddd;
- padding: 10px 17px;
-}
-form #selectDbType label.ui-state-hover,
-form #selectDbType label.ui-state-active {
- font-weight: normal;
- color:#000;
- background-color:#e8e8e8;
-}
-form #selectDbType .ui-visual-focus {
- box-shadow: none;
-}
-form #selectDbType label span {
- display: none;
-}
-
-/* Nicely grouping input field sets */
-.grouptop,
-.groupmiddle,
-.groupbottom {
- position: relative;
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
-}
-.grouptop input {
- margin-bottom: 0 !important;
- border-bottom: 0 !important;
- border-bottom-left-radius: 0 !important;
- border-bottom-right-radius: 0 !important;
-}
-.groupmiddle input {
- margin-top: 0 !important;
- margin-bottom: 0 !important;
- border-top: 0 !important;
- border-bottom: 0 !important;
- border-radius: 0 !important;
- box-shadow: 0 1px 0 rgba(0,0,0,.1) inset !important;
-}
-.groupbottom input {
- margin-top: 0 !important;
- border-top: 0 !important;
- border-top-right-radius: 0 !important;
- border-top-left-radius: 0 !important;
- box-shadow: 0 1px 0 rgba(0,0,0,.1) inset !important;
-}
-.groupbottom input[type=submit] {
- box-shadow: none !important;
-}
-
-#install-recommended-apps + label span {
- display: inline-block;
- opacity: .7;
-}
-
-/* Errors */
-/* Warnings and errors are the same */
-.body-login-container,
-.warning,
-.update,
-.error {
- display: block;
- margin-top: 15px;
- padding: 15px;
- background-color: rgba(0,0,0,.3);
- color: #fff;
- text-align: left;
- word-wrap: break-word;
- border-radius: 10px; /* --border-radius-large */
- cursor: default;
- -moz-user-select: text;
- -webkit-user-select: text;
- -ms-user-select: text;
- user-select: text;
-}
-
-.body-login-container h2,
-.warning h2,
-.update h2,
-.error h2 {
- color: #fff;
- text-align: center;
-}
-
-/* TODO: Change all .warning/.update/.error to .body-login-container */
-.body-login-container .icon-big {
- background-size: 70px;
- height: 70px;
-}
-
-.body-login-container form {
- width: initial;
-}
-
-.body-login-container p:not(:last-child) {
- margin-bottom: 12px;
-}
-
-.warning.updateAnyways {
- text-align: center;
-}
-.warning legend,
-.warning a,
-.error a {
- color: #fff !important;
- font-weight: bold !important;
- opacity: 1;
-}
-.error a.button {
- color: #555 !important;
- display: inline-block;
- text-align: center;
-}
-.error pre {
- white-space: pre-wrap;
- text-align: left;
-}
-.error-wide {
- width: 700px;
- margin-top: 35px;
-}
-.error-wide .button {
- color: black !important;
-}
-.warning-input {
- border-color: #ce3702 !important;
-}
-a.warning {
- cursor: pointer;
-}
-fieldset.warning legend,
-fieldset.update legend {
- top: 18px;
- position: relative;
-}
-fieldset.warning legend + p,
-fieldset.update legend + p {
- margin-top: 12px;
-}
-
-/* Various paragraph styles */
-.infogroup {
- margin: 8px 0;
-}
-.infogroup:last-child {
- margin-bottom: 0;
-}
-p.info {
- margin: 20px auto;
- text-shadow: 0 0 2px rgba(0, 0, 0, .4); /* better readability on bright background */
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
-}
-
-/* Update */
-.update {
- width: inherit;
- text-align: center;
-}
-.update .appList {
- list-style: disc;
- text-align: left;
- margin-left: 25px;
- margin-right: 25px;
-}
-.update img.float-spinner {
- float: left;
-}
-.update a.update-show-detailed {
- border-bottom: inherit;
-}
-#update-progress-detailed {
- text-align: left;
- margin-bottom: 12px;
-}
-.update-show-detailed {
- padding: 12px;
- display: block;
- opacity: .75;
-}
-.update-show-detailed .icon-caret-white {
- display: inline-block;
- vertical-align: middle;
-}
-#update-progress-icon {
- height: 32px;
- margin: 10px;
- background-size: 32px;
-}
-
-
-/* Icons */
-.icon-info-white {
- background-image: url('../img/actions/info-white.svg?v=2');
-}
-.icon-error-white {
- background-image: url('../img/actions/error-white.svg?v=1');
-}
-.icon-caret-white {
- background-image: url('../img/actions/caret-white.svg?v=1');
-}
-.icon-confirm {
- background-image: url('../img/actions/confirm.svg?v=2');
-}
-.icon-confirm-white {
- background-image: url('../img/actions/confirm-white.svg?v=2');
-}
-.icon-checkmark-white {
- background-image: url('../img/actions/checkmark-white.svg?v=1');
-}
-
-
-/* Loading */
-.float-spinner {
- margin-top: -32px;
- padding-top: 32px;
- height: 32px;
- display: none;
-}
-[class^='icon-'], [class*=' icon-'] {
- background-repeat: no-repeat;
- background-position: center;
- min-width: 16px;
- min-height: 16px;
-}
-.loading, .loading-small, .icon-loading, .icon-loading-dark, .icon-loading-small, .icon-loading-small-dark {
- position: relative;
-}
-.loading:after, .loading-small:after, .icon-loading:after, .icon-loading-dark:after, .icon-loading-small:after, .icon-loading-small-dark:after {
- z-index: 2;
- content: '';
- height: 32px;
- width: 32px;
- margin: -17px 0 0 -17px;
- position: absolute;
- top: 50%;
- left: 50%;
- border-radius: 100%;
- -webkit-animation: rotate .8s infinite linear;
- animation: rotate .8s infinite linear;
- -webkit-transform-origin: center;
- -ms-transform-origin: center;
- transform-origin: center;
-}
-.loading:after, .loading-small:after, .icon-loading:after, .icon-loading-dark:after, .icon-loading-small:after, .icon-loading-small-dark:after {
- border: 2px solid rgba(150, 150, 150, 0.5);
- border-top-color: #646464;
-}
-.icon-loading-dark:after, .icon-loading-small-dark:after {
- border: 2px solid rgba(187, 187, 187, 0.5);
- border-top-color: #bbb;
-}
-.icon-loading-small:after, .icon-loading-small-dark:after {
- height: 16px;
- width: 16px;
- margin: -9px 0 0 -9px;
-}
-/* Css replaced elements don't have ::after nor ::before */
-img.icon-loading, object.icon-loading, video.icon-loading, button.icon-loading, textarea.icon-loading, input.icon-loading, select.icon-loading, div[contenteditable=true].icon-loading {
- background-image: url('../img/loading.gif');
-}
-img.icon-loading-dark, object.icon-loading-dark, video.icon-loading-dark, button.icon-loading-dark, textarea.icon-loading-dark, input.icon-loading-dark, select.icon-loading-dark, div[contenteditable=true].icon-loading-dark {
- background-image: url('../img/loading-dark.gif');
-}
-img.icon-loading-small, object.icon-loading-small, video.icon-loading-small, button.icon-loading-small, textarea.icon-loading-small, input.icon-loading-small, select.icon-loading-small, div[contenteditable=true].icon-loading-small {
- background-image: url('../img/loading-small.gif');
-}
-img.icon-loading-small-dark, object.icon-loading-small-dark, video.icon-loading-small-dark, button.icon-loading-small-dark, textarea.icon-loading-small-dark, input.icon-loading-small-dark, select.icon-loading-small-dark, div[contenteditable=true].icon-loading-small-dark {
- background-image: url('../img/loading-small-dark.gif');
-}
-@-webkit-keyframes rotate {
- from {
- -webkit-transform: rotate(0deg);
- transform: rotate(0deg);
- }
- to {
- -webkit-transform: rotate(360deg);
- transform: rotate(360deg);
- }
-}
-@keyframes rotate {
- from {
- -webkit-transform: rotate(0deg);
- transform: rotate(0deg);
- }
- to {
- -webkit-transform: rotate(360deg);
- transform: rotate(360deg);
- }
-}
-
-/* FOOTER */
-footer {
- height: 70px;
- margin-top: auto;
-}
-
-footer .info .entity-name {
- font-weight: bold;
-}
-
-.hidden {
- display: none;
-}
-
-/* keep the labels for screen readers but hide them since we use placeholders */
-label.infield,
-.hidden-visually {
- position: absolute;
- left: -10000px;
- top: -10000px;
- width: 1px;
- height: 1px;
- overflow: hidden;
-}
-
-a.legal {
- font-size: smaller;
-}
+/*!
+ * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ *//*!
+ * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */@-webkit-keyframes rotate{from{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes rotate{from{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}html,body,div,span,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,code,del,dfn,em,img,q,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,dialog,figure,footer,header,hgroup,nav,section{margin:0;padding:0;border:0;outline:0;font-weight:inherit;font-size:100%;font-family:inherit;vertical-align:baseline;cursor:default}html{height:100%}article,aside,dialog,figure,footer,header,hgroup,nav,section{display:block}table{border-collapse:separate;border-spacing:0;white-space:nowrap}caption,th,td{text-align:start;font-weight:normal}table,td,th{vertical-align:middle}a{border:0;color:var(--color-main-text);text-decoration:none}a,a *,input,input *,select,.button span,label{cursor:pointer}ul{list-style:none}body{display:flex;flex-direction:column;justify-content:center;align-items:center;font-size:.875em;font-weight:normal;line-height:1.6em;font-family:system-ui,-apple-system,"Segoe UI",Roboto,Oxygen-Sans,Cantarell,Ubuntu,"Helvetica Neue","Noto Sans","Liberation Sans",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";color:var(--color-background-plain-text, #ffffff);text-align:center;background-color:var(--color-background-plain, #0082c9);background-image:var(--image-background, linear-gradient(40deg, #0082c9 0%, #30b6ff 100%));background-attachment:fixed;background-size:cover;background-position:center;min-height:100%;height:auto;overflow:auto;position:static}#body-login a{font-weight:600}#body-login footer a{color:var(--color-text)}#body-login a:not(.button):hover,#body-login a:not(.button):focus{text-decoration:underline;text-decoration-skip-ink:auto}em{font-style:normal;opacity:.5}h2,h3,h4{font-weight:bold}h2{font-size:20px;margin-bottom:12px;line-height:140%}h3{font-size:15px;margin:12px 0}#header .logo{background-image:var(--image-logo, url("../../core/img/logo/logo.svg"));background-repeat:no-repeat;background-size:contain;background-position:center;width:175px;height:130px;margin:0 auto;position:relative;inset-inline-start:unset}.wrapper{width:100%;max-width:700px;margin-block:10vh auto}form{position:relative;margin:auto;padding:0}form.install-form{max-width:300px}form.install-form fieldset,form.install-form fieldset input{width:100%}form.install-form .strengthify-wrapper{bottom:17px;width:calc(100% - 8px);inset-inline-start:4px;top:unset}form.install-form #show{top:18px}form #sqliteInformation{margin-top:.5rem;margin-bottom:20px}form #adminaccount,form #use_other_db{margin-bottom:15px;text-align:start}form #adminaccount>legend,form #adminlogin{margin-bottom:1rem}form #advancedHeader{width:100%}form fieldset legend,#datadirContent label{width:100%}#datadirContent label{display:block;margin:0}form #datadirField legend{margin-bottom:15px}#showAdvanced{padding:13px}#showAdvanced img{vertical-align:middle}@media only screen and (max-width: 1024px){.wrapper{margin-top:0}}#submit-wrapper{margin:0 auto;display:flex;align-items:center;justify-content:center;padding:10px 5px;position:relative}#submit-wrapper .submit-icon{position:absolute;inset-inline-end:24px;transition:inset-inline-end 100ms ease-in-out;pointer-events:none}#submit-wrapper input.login:hover~.submit-icon.icon-confirm-white,#submit-wrapper input.login:focus~.submit-icon.icon-confirm-white,#submit-wrapper input.login:active~.submit-icon.icon-confirm-white{inset-inline-end:20px}#submit-wrapper .icon-loading-small{position:absolute;top:22px;inset-inline-end:26px}input:not([type=radio]),input:not([type=range]){border-width:2px}input:not([type=range]):focus-visible{box-shadow:none !important}input[type=submit],input[type=submit].icon-confirm,input[type=button],button,a.button,.button,select{display:inline-block;width:auto;min-width:25px;padding:calc(2*var(--default-grid-baseline));background-color:var(--color-main-background);font-weight:bold;color:var(--color-main-text);border:none;border-radius:var(--border-radius-element);cursor:pointer}.icon-confirm.input-button-inline{position:absolute;inset-inline-end:3px;top:5px}input[type=submit]:focus{box-shadow:0 0 0 2px inset var(--color-main-text) !important}input[type=text],input[type=tel],input[type=password],input[type=email]{width:266px;padding:5px 10px;color:var(--color-text-lighter);cursor:text;font-family:inherit;font-weight:normal;margin-inline:0}input[type=password].password-with-toggle,input[type=text].password-with-toggle{width:238px;padding-inline-end:40px !important}input.login{width:260px;height:50px;background-position:right 16px center}input[type=submit],input[type=submit].icon-confirm,input.updateButton,input.update-continue{padding:10px 20px;overflow:hidden;text-overflow:ellipsis}button::-moz-focus-inner,input::-moz-focus-inner{border:0}input.primary{background-color:var(--color-primary-element);color:var(--color-primary-element-text)}input.primary:not(:disabled):hover,input.primary:not(:disabled):focus,button.primary:not(:disabled):hover,button.primary:not(:disabled):focus,a.primary:not(:disabled):hover,a.primary:not(:disabled):focus{background-color:var(--color-primary-element-hover);color:var(--color-primary-element-text)}input[type=checkbox].checkbox{position:absolute;inset-inline-start:-10000px;top:auto;width:1px;height:1px;overflow:hidden}input[type=checkbox].checkbox+label{user-select:none}input[type=checkbox].checkbox:disabled+label,input[type=checkbox].checkbox:disabled+label:before{cursor:default}input[type=checkbox].checkbox+label:before{content:"";display:inline-block;vertical-align:middle;margin:3px;margin-top:1px;border:1px solid #888;border-radius:1px;height:10px;width:10px;background-position:center}input[type=checkbox].checkbox--white+label:before{border-color:#ddd}input[type=checkbox].checkbox--white:not(:disabled):not(:checked)+label:hover:before,input[type=checkbox].checkbox--white:focus+label:before{border-color:#fff}input[type=checkbox].checkbox--white:disabled+label:before{background-color:#666 !important;border-color:#999 !important}input[type=checkbox].checkbox--white:checked:disabled+label:before{border-color:#666;background-color:#222}input[type=checkbox].checkbox--white:checked+label:before{background-color:rgba(0,0,0,0) !important;border-color:#fff !important;background-image:url("../img/actions/checkbox-mark-white.svg")}.strengthify-wrapper{display:inline-block;position:relative;top:-20px;width:250px;border-start-start-radius:0;border-start-end-radius:0;border-end-end-radius:3px;border-end-start-radius:3px;overflow:hidden;height:3px}.tooltip-inner{font-weight:bold;padding:3px 6px;text-align:center}#show,#dbpassword-toggle{position:absolute;inset-inline-end:2px;top:-3px;display:flex;justify-content:center;width:44px;align-content:center;padding:13px}#pass2,input[name=personal-password-clone]{padding:.6em 2.5em .4em .4em;width:8em}#personal-show+label{height:14px;margin-top:-25px;inset-inline-start:295px;display:block}#passwordbutton{margin-inline-start:.5em}p.info,form fieldset legend,#datadirContent label,form fieldset .warning-info,form input[type=checkbox]+label{text-align:center}form .warning input[type=checkbox]:hover+label,form .warning input[type=checkbox]:focus+label,form .warning input[type=checkbox]+label{color:var(--color-primary-element-text) !important}.body-login-container.two-factor{width:320px;box-sizing:border-box}.two-factor-provider{display:flex;border-radius:3px;margin:12px 0;border:1px solid rgba(0,0,0,0);text-align:start;align-items:center;text-decoration:none !important}.two-factor-provider:hover,.two-factor-provider:focus,.two-factor-provider:active{border:1px solid #fff}.two-factor-provider img{width:64px;height:64px;padding:0 12px}.two-factor-provider div{margin:12px 0}.two-factor-provider h3{margin:0}.two-factor-provider p{font-weight:normal}.two-factor-icon{width:100px;display:block;margin:0 auto}.two-factor-submit{width:100%;padding:10px;margin:0 0 5px 0;border-radius:100px;font-size:20px}.two-factor-primary{padding:14px !important;width:226px}.two-factor-secondary{display:inline-block;padding:12px}#remember_login{margin-block:18px 0 !important;margin-inline:16px 5px !important}.updateProgress .error{margin-top:10px;margin-bottom:10px}form #selectDbType{text-align:center;white-space:nowrap;margin:0;display:flex}form #selectDbType .info{white-space:normal}form #selectDbType label{flex-grow:1;margin:0 -1px 5px;font-size:12px;background:var(--color-background-hover);color:var(--color-main-text);cursor:pointer;border:1px solid var(--color-border);padding:10px 17px}form #selectDbType label.ui-state-hover,form #selectDbType label.ui-state-active{font-weight:normal;background:var(--color-background-darker);color:var(--color-main-text)}form #selectDbType label span{display:none}.grouptop,.groupmiddle,.groupbottom{position:relative;user-select:none}.grouptop,.groupmiddle{margin-bottom:8px !important}.groupbottom{margin-bottom:13px}.groupbottom input[type=submit]{box-shadow:none !important}.grouptop.groupbottom input{border-radius:3px !important;margin:5px 0 !important}.body-login-container{display:flex;flex-direction:column;text-align:start;word-wrap:break-word;border-radius:10px;cursor:default;-moz-user-select:text;-webkit-user-select:text;-ms-user-select:text;user-select:text}.body-login-container .icon-big{background-size:70px;height:70px}.body-login-container form{width:initial}.body-login-container p:not(:last-child){margin-bottom:12px}.infogroup{margin:8px 0}.infogroup:last-child{margin-bottom:0}p.info{margin:20px auto;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.update{width:calc(100% - 32px);text-align:center}.update .appList{list-style:disc;text-align:start;margin-inline:25px}.update a.update-show-detailed{border-bottom:inherit}body[dir=ltr] .update img.float-spinner{float:left}body[dir=rtl] .update img.float-spinner{float:right}#update-progress-detailed{text-align:start;margin-bottom:12px}.update-show-detailed{padding:12px;display:block;opacity:.75}.update-show-detailed .icon-caret-white{display:inline-block;vertical-align:middle}#update-progress-icon{height:32px;margin:10px;background-size:32px}.icon-info-white{background-image:url("../img/actions/info-white.svg?v=2")}.icon-error-white{background-image:url("../img/actions/error-white.svg?v=1")}.icon-caret-white{background-image:url("../img/actions/caret-white.svg?v=1")}.icon-confirm{background-image:url("../img/actions/confirm.svg?v=2")}.icon-confirm-white{background-image:url("../img/actions/confirm-white.svg?v=2")}.icon-checkmark-white{background-image:url("../img/actions/checkmark-white.svg?v=1")}.float-spinner{margin-top:-32px;padding-top:32px;height:32px;display:none}[class^=icon-],[class*=" icon-"]{background-repeat:no-repeat;background-position:center;min-width:16px;min-height:16px}.loading,.loading-small,.icon-loading,.icon-loading-dark,.icon-loading-small,.icon-loading-small-dark{position:relative;filter:var(--background-invert-if-dark)}.loading:after,.loading-small:after,.icon-loading:after,.icon-loading-dark:after,.icon-loading-small:after,.icon-loading-small-dark:after{border:2px solid rgba(150,150,150,.5);border-radius:100%;border-top-color:#646464;z-index:2;content:"";height:32px;width:32px;margin:-17px 0 0 -17px;position:absolute;top:50%;inset-inline-start:50%;-webkit-animation:rotate .8s infinite linear;animation:rotate .8s infinite linear;-webkit-transform-origin:center;-ms-transform-origin:center;transform-origin:center}.primary .loading,.primary+.loading,.primary .loading-small,.primary+.loading-small,.primary .icon-loading,.primary+.icon-loading,.primary .icon-loading-dark,.primary+.icon-loading-dark,.primary .icon-loading-small,.primary+.icon-loading-small,.primary .icon-loading-small-dark,.primary+.icon-loading-small-dark{filter:var(--primary-invert-if-bright)}.icon-loading-dark:after,.icon-loading-small-dark:after{border:2px solid rgba(187,187,187,.5);border-top-color:#bbb}.icon-loading-small:after,.icon-loading-small-dark:after{height:16px;width:16px;margin:-9px 0 0 -9px}img.icon-loading,object.icon-loading,video.icon-loading,button.icon-loading,textarea.icon-loading,input.icon-loading,select.icon-loading,div[contenteditable=true].icon-loading{background-image:url("../img/loading.gif")}img.icon-loading-dark,object.icon-loading-dark,video.icon-loading-dark,button.icon-loading-dark,textarea.icon-loading-dark,input.icon-loading-dark,select.icon-loading-dark,div[contenteditable=true].icon-loading-dark{background-image:url("../img/loading-dark.gif")}img.icon-loading-small,object.icon-loading-small,video.icon-loading-small,button.icon-loading-small,textarea.icon-loading-small,input.icon-loading-small,select.icon-loading-small,div[contenteditable=true].icon-loading-small{background-image:url("../img/loading-small.gif")}img.icon-loading-small-dark,object.icon-loading-small-dark,video.icon-loading-small-dark,button.icon-loading-small-dark,textarea.icon-loading-small-dark,input.icon-loading-small-dark,select.icon-loading-small-dark,div[contenteditable=true].icon-loading-small-dark{background-image:url("../img/loading-small-dark.gif")}@-webkit-keyframes rotate{from{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes rotate{from{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}footer .info .entity-name{font-weight:bold}footer.guest-box{padding:var(--default-grid-baseline) calc(3*var(--default-grid-baseline));margin-bottom:1rem}footer.guest-box .info{margin:0}label.infield,.hidden-visually{position:absolute;inset-inline-start:-10000px;top:-10000px;width:1px;height:1px;overflow:hidden}a.legal{font-size:smaller}.notecard{color:var(--color-text-light);background-color:var(--note-background);border-inline-start:4px solid var(--note-theme);border-radius:var(--border-radius);margin:1rem 0;padding:1rem;text-align:start}.notecard.success{--note-background: rgba(var(--color-success-rgb), 0.1);--note-theme: var(--color-success)}.notecard.error{--note-background: rgba(var(--color-error-rgb), 0.1);--note-theme: var(--color-error)}.notecard.warning{--note-background: rgba(var(--color-warning-rgb), 0.1);--note-theme: var(--color-warning)}.notecard:last-child{margin-bottom:0}.notecard pre{background-color:var(--color-background-dark);margin-top:1rem;padding:1em 1.3em;border-radius:var(--border-radius)}.guest-box,.body-login-container{--color-text-maxcontrast: var(--color-text-maxcontrast-background-blur, var(--color-main-text));color:var(--color-main-text);background-color:var(--color-main-background-blur);padding:calc(3*var(--default-grid-baseline));border-radius:var(--border-radius-container);box-shadow:0 0 10px var(--color-box-shadow);display:inline-block;-webkit-backdrop-filter:var(--filter-background-blur);backdrop-filter:var(--filter-background-blur)}.guest-box.wide{display:block;text-align:start;border-radius:var(--border-radius-container-large)}.guest-box fieldset{margin-top:0}.guest-box .pre{overflow-x:scroll}button.toggle-password{background-color:rgba(0,0,0,0);border-width:0;height:44px}.margin-top{margin-top:1rem !important}.text-left{text-align:start !important}.hidden{display:none}/*# sourceMappingURL=guest.css.map */
diff --git a/core/css/guest.css.map b/core/css/guest.css.map
new file mode 100644
index 00000000000..9ad7bce2df8
--- /dev/null
+++ b/core/css/guest.css.map
@@ -0,0 +1 @@
+{"version":3,"sourceRoot":"","sources":["guest.scss","animations.scss"],"names":[],"mappings":"AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GCIA,0BACC,KACC,+BACA,uBAED,GACC,iCACA,0BAGF,kBACC,KACC,+BACA,uBAED,GACC,iCACA,0BDbF,wYAEA,iBAEA,2EAEA,mEAEA,kDAEA,kCAEA,6DAEA,6DAEA,mBAEA,KAEC,aACA,sBACA,uBACA,mBAEA,iBACA,mBACA,kBACA,6NACA,kDACA,kBACA,wDAIA,2FACA,4BACA,sBACA,2BACA,gBACA,YACA,cACA,gBAKA,cACC,gBAGD,qBACC,wBAGD,kEAEC,0BACA,8BAIF,GACC,kBACA,WAID,SAGC,iBAGD,GACC,eACA,mBACA,iBAGD,GACC,eACA,cAKA,cACC,wEACA,4BACA,wBACA,2BACA,YACA,aACA,cACA,kBACA,yBAIF,SACC,WACA,gBACA,uBAID,KACC,kBACA,YACA,UAGD,kBACC,gBAGD,4DAEC,WAGD,uCACC,YACA,uBACA,uBACA,UAGD,wBACC,SAGD,wBACC,iBACA,mBAGD,sCACC,mBACA,iBAGD,2CAEC,mBAGD,qBACC,WAGD,2CACC,WAGD,sBACC,cACA,SAGD,0BACC,mBAID,cACC,aAGD,kBACC,sBAKD,2CACC,SACC,cAIF,gBACC,cACA,aACA,mBACA,uBACA,iBACA,kBAGA,6BACC,kBACA,sBACA,8CACA,oBAKD,uMAGC,sBAGD,oCACC,kBACA,SACA,sBAIF,gDAEC,iBAGD,sCACC,2BAGD,qGAOC,qBACA,WACA,eACA,6CACA,8CACA,iBACA,6BACA,YACA,2CACA,eAGD,kCACC,kBACA,qBACA,QAGD,yBACC,6DAGD,wEAIC,YACA,iBACA,gCACA,YACA,oBACA,mBACA,gBAGD,gFACC,YACA,mCAGD,YACC,YACA,YACA,sCAGD,4FAIC,kBACA,gBACA,uBAID,iDAEC,SAGD,cACC,8CACA,wCAOC,4MAEC,oDACA,wCAMH,8BACC,kBACA,4BACA,SACA,UACA,WACA,gBAGD,oCACC,iBAGD,iGAEC,eAGD,2CACC,WACA,qBACA,sBACA,WACA,eACA,sBACA,kBACA,YACA,WACA,2BAGD,kDACC,kBAGD,6IAEC,kBAGD,2DACC,iCACA,6BAGD,mEACC,kBACA,sBAGD,0DACC,0CACA,6BACA,+DAID,qBACC,qBACA,kBACA,UACA,YACA,4BACA,0BACA,0BACA,4BACA,gBACA,WAGD,eACC,iBACA,gBACA,kBAID,yBACC,kBACA,qBACA,SACA,aACA,uBACA,WACA,qBACA,aAGD,2CACC,6BACA,UAGD,qBACC,YACA,iBACA,yBACA,cAGD,gBACC,yBAID,8GAKC,kBAGD,uIAGC,mDAGD,iCAEC,YACA,sBAGD,qBACC,aACA,kBACA,cACA,+BACA,iBACA,mBACA,gCAEA,kFAGC,sBAED,yBACC,WACA,YACA,eAED,yBACC,cAED,wBACC,SAED,uBACC,mBAIF,iBACC,YACA,cACA,cAGD,mBACC,WACA,aACA,iBACA,oBACA,eAGD,oBAEC,wBACA,YAGD,sBACC,qBACA,aAKD,gBACC,+BACA,kCAKD,uBACC,gBACA,mBAID,mBACC,kBACA,mBACA,SACA,aACA,yBACC,mBAED,yBACC,YACA,kBACA,eACA,yCACA,6BACA,eACA,qCACA,kBAED,iFAEC,mBACA,0CACA,6BAED,8BACC,aAMF,oCAGC,kBACA,iBAGD,uBACC,6BAGD,aACC,mBAGD,gCACC,2BAGD,4BACC,6BACA,wBAKD,sBACC,aACA,sBACA,iBACA,qBACA,mBACA,eACA,sBACA,yBACA,qBACA,iBAGA,gCACC,qBACA,YAGD,2BACC,cAGD,yCACC,mBAMF,WACC,aAGD,sBACC,gBAGD,OACC,iBACA,yBACA,sBACA,qBACA,iBAID,QACC,wBACA,kBAEA,iBACC,gBACA,iBACA,mBAGD,+BACC,sBAKF,wCACC,WAGD,wCACC,YAGD,0BACC,iBACA,mBAGD,sBACC,aACA,cACA,YAEA,wCACC,qBACA,sBAIF,sBACC,YACA,YACA,qBAKD,iBACC,0DAGD,kBACC,2DAGD,kBACC,2DAGD,cACC,uDAGD,oBACC,6DAGD,sBACC,+DAKD,eACC,iBACA,iBACA,YACA,aAGD,iCACC,4BACA,2BACA,eACA,gBAGD,sGACC,kBACA,wCAGD,0IACC,sCACA,mBACA,yBAEA,UACA,WACA,YACA,WACA,uBACA,kBACA,QACA,uBACA,6CACA,qCACA,gCACA,4BACA,wBAGD,wTACC,uCAGD,wDACC,sCACA,sBAGD,yDACC,YACA,WACA,qBAGD,gLACC,2CAGD,wNACC,gDAGD,gOACC,iDAGD,wQACC,sDAED,0BACC,KACA,+BACA,uBAEA,GACA,iCACA,0BAGD,kBACC,KACA,+BACA,uBAEA,GACA,iCACA,0BAMA,0BACC,iBAGD,iBACC,0EACA,mBAEA,uBACC,SAMH,+BAEC,kBACA,4BACA,aACA,UACA,WACA,gBAGD,QACC,kBAGD,UACC,8BACA,wCACA,gDACA,mCACA,cACA,aACA,iBAEA,kBACC,uDACA,mCAGD,gBACC,qDACA,iCAGD,kBACC,uDACA,mCAGD,qBACC,gBAGD,cACC,8CACA,gBACA,kBACA,mCAIF,iCAEC,gGACA,6BACA,mDACA,6CACA,6CACA,4CACA,qBACA,sDACA,8CAIA,gBACC,cACA,iBACA,mDAGD,oBACC,aAGD,gBACC,kBAIF,uBACC,+BACA,eACA,YAID,YACC,2BAGD,WACC,4BAGD,QACC","file":"guest.css"} \ No newline at end of file
diff --git a/core/css/guest.css.map.license b/core/css/guest.css.map.license
new file mode 100644
index 00000000000..82ac7cce426
--- /dev/null
+++ b/core/css/guest.css.map.license
@@ -0,0 +1,3 @@
+SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
+SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/core/css/guest.scss b/core/css/guest.scss
new file mode 100644
index 00000000000..ef7d733165a
--- /dev/null
+++ b/core/css/guest.scss
@@ -0,0 +1,892 @@
+/*!
+ * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+@use 'animations';
+
+/* Default and reset */
+html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, code, del, dfn, em, img, q, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, dialog, figure, footer, header, hgroup, nav, section { margin:0; padding:0; border:0; outline:0; font-weight:inherit; font-size:100%; font-family:inherit; vertical-align:baseline; cursor:default; }
+
+html { height:100%; }
+
+article, aside, dialog, figure, footer, header, hgroup, nav, section { display:block; }
+
+table { border-collapse:separate; border-spacing:0; white-space:nowrap; }
+
+caption, th, td { text-align:start; font-weight:normal; }
+
+table, td, th { vertical-align:middle; }
+
+a { border:0; color: var(--color-main-text); text-decoration:none;}
+
+a, a *, input, input *, select, .button span, label { cursor:pointer; }
+
+ul { list-style:none; }
+
+body {
+ /* Guest content uses flexbox */
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ align-items: center;
+ /* bring the default font size up to 14px */
+ font-size: .875em;
+ font-weight: normal;
+ line-height: 1.6em;
+ font-family: system-ui, -apple-system, "Segoe UI", Roboto, Oxygen-Sans, Cantarell, Ubuntu, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
+ color: var(--color-background-plain-text, #ffffff);
+ text-align: center;
+ background-color: var(--color-background-plain, #0082c9);
+ /*
+ User background if logged in ('no' if removed, that way the variable is _defined_)
+ Fallback to default gradient (should not happened, the background is always defined anyway) */
+ background-image: var(--image-background, linear-gradient(40deg, #0082c9 0%, #30b6ff 100%));
+ background-attachment: fixed;
+ background-size: cover;
+ background-position: center;
+ min-height: 100%; /* fix sticky footer */
+ height: auto;
+ overflow: auto;
+ position: static;
+}
+
+/* Various fonts settings */
+#body-login {
+ a {
+ font-weight: 600;
+ }
+
+ footer a {
+ color: var(--color-text);
+ }
+
+ a:not(.button):hover,
+ a:not(.button):focus {
+ text-decoration: underline;
+ text-decoration-skip-ink: auto;
+ }
+}
+
+em {
+ font-style: normal;
+ opacity: .5;
+}
+
+/* heading styles */
+h2,
+h3,
+h4 {
+ font-weight: bold;
+}
+
+h2 {
+ font-size: 20px;
+ margin-bottom: 12px;
+ line-height: 140%;
+}
+
+h3 {
+ font-size: 15px;
+ margin: 12px 0;
+}
+
+/* Global content */
+#header {
+ .logo {
+ background-image: var(--image-logo, url('../../core/img/logo/logo.svg'));
+ background-repeat: no-repeat;
+ background-size: contain;
+ background-position: center;
+ width: 175px;
+ height: 130px;
+ margin: 0 auto;
+ position: relative;
+ inset-inline-start: unset;
+ }
+}
+
+.wrapper {
+ width: 100%;
+ max-width: 700px;
+ margin-block: 10vh auto;
+}
+
+/* Default FORM */
+form {
+ position: relative;
+ margin: auto;
+ padding: 0;
+}
+
+form.install-form {
+ max-width: 300px;
+}
+
+form.install-form fieldset,
+form.install-form fieldset input {
+ width: 100%;
+}
+
+form.install-form .strengthify-wrapper {
+ bottom: 17px;
+ width: calc(100% - 8px);
+ inset-inline-start: 4px;
+ top: unset;
+}
+
+form.install-form #show {
+ top: 18px;
+}
+
+form #sqliteInformation {
+ margin-top: 0.5rem;
+ margin-bottom: 20px;
+}
+
+form #adminaccount, form #use_other_db {
+ margin-bottom: 15px;
+ text-align: start;
+}
+
+form #adminaccount > legend,
+form #adminlogin {
+ margin-bottom: 1rem;
+}
+
+form #advancedHeader {
+ width: 100%;
+}
+
+form fieldset legend, #datadirContent label {
+ width: 100%;
+}
+
+#datadirContent label {
+ display: block;
+ margin: 0;
+}
+
+form #datadirField legend {
+ margin-bottom: 15px;
+}
+
+/* View more button */
+#showAdvanced {
+ padding: 13px; /* increase clickable area of Advanced dropdown */
+}
+
+#showAdvanced img {
+ vertical-align: middle; /* adjust position of Advanced dropdown arrow */
+}
+
+/* Buttons and input */
+
+@media only screen and (max-width: 1024px) {
+ .wrapper {
+ margin-top: 0;
+ }
+}
+
+#submit-wrapper {
+ margin: 0 auto;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ padding: 10px 5px;
+ position: relative; /* Make the wrapper the containing block of its
+ absolutely positioned descendant icons */
+
+ .submit-icon {
+ position: absolute;
+ inset-inline-end: 24px;
+ transition: inset-inline-end 100ms ease-in-out;
+ pointer-events: none; /* The submit icon is positioned on the submit button.
+ From the user point of view the icon is part of the
+ button, so the clicks on the icon have to be
+ applied to the button instead. */
+ }
+ input.login:hover ~ .submit-icon.icon-confirm-white,
+ input.login:focus ~ .submit-icon.icon-confirm-white,
+ input.login:active ~ .submit-icon.icon-confirm-white {
+ inset-inline-end: 20px;
+ }
+
+ .icon-loading-small {
+ position: absolute;
+ top: 22px;
+ inset-inline-end: 26px;
+ }
+}
+
+input:not([type='radio']),
+input:not([type='range']) {
+ border-width: 2px;
+}
+
+input:not([type='range']):focus-visible {
+ box-shadow: none !important;
+}
+
+input[type='submit'],
+input[type='submit'].icon-confirm,
+input[type='button'],
+button,
+a.button,
+.button,
+select {
+ display: inline-block;
+ width: auto;
+ min-width: 25px;
+ padding: calc(2 * var(--default-grid-baseline));
+ background-color: var(--color-main-background);
+ font-weight: bold;
+ color: var(--color-main-text);
+ border: none;
+ border-radius: var(--border-radius-element);
+ cursor: pointer;
+}
+
+.icon-confirm.input-button-inline {
+ position: absolute;
+ inset-inline-end: 3px;
+ top: 5px;
+}
+
+input[type='submit']:focus {
+ box-shadow: 0 0 0 2px inset var(--color-main-text) !important;
+}
+
+input[type='text'],
+input[type='tel'],
+input[type='password'],
+input[type='email'] {
+ width: 266px;
+ padding: 5px 10px;
+ color: var(--color-text-lighter);
+ cursor: text;
+ font-family: inherit;
+ font-weight: normal;
+ margin-inline: 0;
+}
+
+input[type='password'].password-with-toggle, input[type='text'].password-with-toggle {
+ width: 238px;
+ padding-inline-end: 40px !important;
+}
+
+input.login {
+ width: 260px;
+ height: 50px;
+ background-position: right 16px center;
+}
+
+input[type='submit'],
+input[type='submit'].icon-confirm,
+input.updateButton,
+input.update-continue {
+ padding: 10px 20px; /* larger log in and installation buttons */
+ overflow: hidden;
+ text-overflow: ellipsis;
+}
+
+/* Get rid of the inside dotted line in Firefox */
+button::-moz-focus-inner,
+input::-moz-focus-inner {
+ border: 0;
+}
+
+input.primary {
+ background-color: var(--color-primary-element);
+ color: var(--color-primary-element-text);
+}
+
+input,
+button,
+a {
+ &.primary:not(:disabled) {
+ &:hover,
+ &:focus {
+ background-color: var(--color-primary-element-hover);
+ color: var(--color-primary-element-text);
+ }
+ }
+}
+
+/* Checkboxes - white only for login */
+input[type='checkbox'].checkbox {
+ position: absolute;
+ inset-inline-start: -10000px;
+ top: auto;
+ width: 1px;
+ height: 1px;
+ overflow: hidden;
+}
+
+input[type='checkbox'].checkbox + label {
+ user-select: none;
+}
+
+input[type='checkbox'].checkbox:disabled + label,
+input[type='checkbox'].checkbox:disabled + label:before {
+ cursor: default;
+}
+
+input[type='checkbox'].checkbox + label:before {
+ content: '';
+ display: inline-block;
+ vertical-align: middle;
+ margin: 3px;
+ margin-top: 1px;
+ border: 1px solid #888;
+ border-radius: 1px;
+ height: 10px;
+ width: 10px;
+ background-position: center;
+}
+
+input[type='checkbox'].checkbox--white + label:before {
+ border-color: #ddd;
+}
+
+input[type='checkbox'].checkbox--white:not(:disabled):not(:checked) + label:hover:before,
+input[type='checkbox'].checkbox--white:focus + label:before {
+ border-color: #fff;
+}
+
+input[type='checkbox'].checkbox--white:disabled + label:before {
+ background-color: #666 !important;
+ border-color: #999 !important;
+}
+
+input[type='checkbox'].checkbox--white:checked:disabled + label:before {
+ border-color: #666;
+ background-color: #222;
+}
+
+input[type='checkbox'].checkbox--white:checked + label:before {
+ background-color: transparent !important;
+ border-color: #fff !important;
+ background-image: url('../img/actions/checkbox-mark-white.svg');
+}
+
+/* Password strength meter */
+.strengthify-wrapper {
+ display: inline-block;
+ position: relative;
+ top: -20px;
+ width: 250px;
+ border-start-start-radius: 0;
+ border-start-end-radius: 0;
+ border-end-end-radius: 3px;
+ border-end-start-radius: 3px;
+ overflow: hidden;
+ height: 3px;
+}
+
+.tooltip-inner {
+ font-weight: bold;
+ padding: 3px 6px;
+ text-align: center;
+}
+
+/* Show password toggle */
+#show, #dbpassword-toggle {
+ position: absolute;
+ inset-inline-end: 2px;
+ top: -3px;
+ display: flex;
+ justify-content: center;
+ width: 44px;
+ align-content: center;
+ padding: 13px;
+}
+
+#pass2, input[name='personal-password-clone'] {
+ padding: .6em 2.5em .4em .4em;
+ width: 8em;
+}
+
+#personal-show + label {
+ height: 14px;
+ margin-top: -25px;
+ inset-inline-start: 295px;
+ display: block;
+}
+
+#passwordbutton {
+ margin-inline-start: .5em;
+}
+
+/* Dark subtle label text */
+p.info,
+form fieldset legend,
+#datadirContent label,
+form fieldset .warning-info,
+form input[type='checkbox']+label {
+ text-align: center;
+}
+/* overrides another !important statement that sets this to unreadable black */
+form .warning input[type='checkbox']:hover+label,
+form .warning input[type='checkbox']:focus+label,
+form .warning input[type='checkbox']+label {
+ color: var(--color-primary-element-text) !important;
+}
+
+.body-login-container.two-factor {
+ // Same size as login box and dashboard panels
+ width: 320px;
+ box-sizing: border-box;
+}
+
+.two-factor-provider {
+ display: flex;
+ border-radius: 3px; /* --border-radius */
+ margin: 12px 0;
+ border: 1px solid transparent;
+ text-align: start;
+ align-items: center;
+ text-decoration: none !important;
+
+ &:hover,
+ &:focus,
+ &:active {
+ border: 1px solid #fff;
+ }
+ img {
+ width: 64px;
+ height: 64px;
+ padding: 0 12px;
+ }
+ div {
+ margin: 12px 0;
+ }
+ h3 {
+ margin: 0;
+ }
+ p {
+ font-weight: normal;
+ }
+}
+
+.two-factor-icon {
+ width: 100px;
+ display: block;
+ margin: 0 auto;
+}
+
+.two-factor-submit {
+ width: 100%;
+ padding: 10px;
+ margin: 0 0 5px 0;
+ border-radius: 100px; /* --border-radius-pill */
+ font-size: 20px;
+}
+
+.two-factor-primary {
+ /* Fix for 'Use backup codes' button not taking correct styles */
+ padding: 14px !important;
+ width: 226px;
+}
+
+.two-factor-secondary {
+ display: inline-block;
+ padding: 12px;
+}
+
+
+/* Additional login options */
+#remember_login {
+ margin-block: 18px 0 !important;
+ margin-inline: 16px 5px !important;
+}
+
+/* fixes for update page TODO should be fixed some time in a proper way */
+/* this is just for an error while updating the ownCloud instance */
+.updateProgress .error {
+ margin-top: 10px;
+ margin-bottom: 10px;
+}
+
+/* Database selector on install page */
+form #selectDbType {
+ text-align:center;
+ white-space: nowrap;
+ margin: 0;
+ display: flex;
+ .info {
+ white-space: normal;
+ }
+ label {
+ flex-grow: 1;
+ margin: 0 -1px 5px;
+ font-size: 12px;
+ background: var(--color-background-hover);
+ color: var(--color-main-text);
+ cursor:pointer;
+ border: 1px solid var(--color-border);
+ padding: 10px 17px;
+ }
+ label.ui-state-hover,
+ label.ui-state-active {
+ font-weight: normal;
+ background: var(--color-background-darker);
+ color: var(--color-main-text);
+ }
+ label span {
+ display: none;
+ }
+}
+
+
+/* Nicely grouping input field sets */
+.grouptop,
+.groupmiddle,
+.groupbottom {
+ position: relative;
+ user-select: none;
+}
+
+.grouptop, .groupmiddle {
+ margin-bottom: 8px !important;
+}
+
+.groupbottom {
+ margin-bottom: 13px;
+}
+
+.groupbottom input[type=submit] {
+ box-shadow: none !important;
+}
+
+.grouptop.groupbottom input {
+ border-radius: 3px !important;
+ margin: 5px 0 !important;
+}
+
+/* Errors */
+/* Warnings and errors are the same */
+.body-login-container {
+ display: flex;
+ flex-direction: column;
+ text-align: start;
+ word-wrap: break-word;
+ border-radius: 10px; /* --border-radius-large */
+ cursor: default;
+ -moz-user-select: text;
+ -webkit-user-select: text;
+ -ms-user-select: text;
+ user-select: text;
+
+ /* TODO: Change all .warning/.update/.error to .body-login-container */
+ .icon-big {
+ background-size: 70px;
+ height: 70px;
+ }
+
+ form {
+ width: initial;
+ }
+
+ p:not(:last-child) {
+ margin-bottom: 12px;
+ }
+}
+
+
+/* Various paragraph styles */
+.infogroup {
+ margin: 8px 0;
+}
+
+.infogroup:last-child {
+ margin-bottom: 0;
+}
+
+p.info {
+ margin: 20px auto;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+}
+
+/* Update */
+.update {
+ width: calc(100% - 32px);
+ text-align: center;
+
+ .appList {
+ list-style: disc;
+ text-align: start;
+ margin-inline: 25px;
+ }
+
+ a.update-show-detailed {
+ border-bottom: inherit;
+ }
+}
+
+/* Cannot use inline-start and :dir to support Samsung Internet */
+body[dir='ltr'] .update img.float-spinner {
+ float: left;
+}
+
+body[dir='rtl'] .update img.float-spinner {
+ float: right;
+}
+
+#update-progress-detailed {
+ text-align: start;
+ margin-bottom: 12px;
+}
+
+.update-show-detailed {
+ padding: 12px;
+ display: block;
+ opacity: .75;
+
+ .icon-caret-white {
+ display: inline-block;
+ vertical-align: middle;
+ }
+}
+
+#update-progress-icon {
+ height: 32px;
+ margin: 10px;
+ background-size: 32px;
+}
+
+
+/* Icons */
+.icon-info-white {
+ background-image: url('../img/actions/info-white.svg?v=2');
+}
+
+.icon-error-white {
+ background-image: url('../img/actions/error-white.svg?v=1');
+}
+
+.icon-caret-white {
+ background-image: url('../img/actions/caret-white.svg?v=1');
+}
+
+.icon-confirm {
+ background-image: url('../img/actions/confirm.svg?v=2');
+}
+
+.icon-confirm-white {
+ background-image: url('../img/actions/confirm-white.svg?v=2');
+}
+
+.icon-checkmark-white {
+ background-image: url('../img/actions/checkmark-white.svg?v=1');
+}
+
+
+/* Loading */
+.float-spinner {
+ margin-top: -32px;
+ padding-top: 32px;
+ height: 32px;
+ display: none;
+}
+
+[class^='icon-'], [class*=' icon-'] {
+ background-repeat: no-repeat;
+ background-position: center;
+ min-width: 16px;
+ min-height: 16px;
+}
+
+.loading, .loading-small, .icon-loading, .icon-loading-dark, .icon-loading-small, .icon-loading-small-dark {
+ position: relative;
+ filter: var(--background-invert-if-dark)
+}
+
+.loading:after, .loading-small:after, .icon-loading:after, .icon-loading-dark:after, .icon-loading-small:after, .icon-loading-small-dark:after {
+ border: 2px solid rgba(150, 150, 150, 0.5);
+ border-radius: 100%;
+ border-top-color: #646464;
+
+ z-index: 2;
+ content: '';
+ height: 32px;
+ width: 32px;
+ margin: -17px 0 0 -17px;
+ position: absolute;
+ top: 50%;
+ inset-inline-start: 50%;
+ -webkit-animation: rotate .8s infinite linear;
+ animation: rotate .8s infinite linear;
+ -webkit-transform-origin: center;
+ -ms-transform-origin: center;
+ transform-origin: center;
+}
+
+.primary .loading,.primary+.loading,.primary .loading-small,.primary+.loading-small,.primary .icon-loading,.primary+.icon-loading,.primary .icon-loading-dark,.primary+.icon-loading-dark,.primary .icon-loading-small,.primary+.icon-loading-small,.primary .icon-loading-small-dark,.primary+.icon-loading-small-dark {
+ filter: var(--primary-invert-if-bright)
+}
+
+.icon-loading-dark:after, .icon-loading-small-dark:after {
+ border: 2px solid rgba(187, 187, 187, 0.5);
+ border-top-color: #bbb;
+}
+
+.icon-loading-small:after, .icon-loading-small-dark:after {
+ height: 16px;
+ width: 16px;
+ margin: -9px 0 0 -9px;
+}
+/* Css replaced elements don't have ::after nor ::before */
+img.icon-loading, object.icon-loading, video.icon-loading, button.icon-loading, textarea.icon-loading, input.icon-loading, select.icon-loading, div[contenteditable=true].icon-loading {
+ background-image: url('../img/loading.gif');
+}
+
+img.icon-loading-dark, object.icon-loading-dark, video.icon-loading-dark, button.icon-loading-dark, textarea.icon-loading-dark, input.icon-loading-dark, select.icon-loading-dark, div[contenteditable=true].icon-loading-dark {
+ background-image: url('../img/loading-dark.gif');
+}
+
+img.icon-loading-small, object.icon-loading-small, video.icon-loading-small, button.icon-loading-small, textarea.icon-loading-small, input.icon-loading-small, select.icon-loading-small, div[contenteditable=true].icon-loading-small {
+ background-image: url('../img/loading-small.gif');
+}
+
+img.icon-loading-small-dark, object.icon-loading-small-dark, video.icon-loading-small-dark, button.icon-loading-small-dark, textarea.icon-loading-small-dark, input.icon-loading-small-dark, select.icon-loading-small-dark, div[contenteditable=true].icon-loading-small-dark {
+ background-image: url('../img/loading-small-dark.gif');
+}
+@-webkit-keyframes rotate {
+ from {
+ -webkit-transform: rotate(0deg);
+ transform: rotate(0deg);
+ }
+ to {
+ -webkit-transform: rotate(360deg);
+ transform: rotate(360deg);
+ }
+}
+@keyframes rotate {
+ from {
+ -webkit-transform: rotate(0deg);
+ transform: rotate(0deg);
+ }
+ to {
+ -webkit-transform: rotate(360deg);
+ transform: rotate(360deg);
+ }
+}
+
+/* FOOTER */
+footer {
+ .info .entity-name {
+ font-weight: bold;
+ }
+
+ &.guest-box {
+ padding: var(--default-grid-baseline) calc(3 * var(--default-grid-baseline));
+ margin-bottom: 1rem;
+
+ .info {
+ margin: 0;
+ }
+ }
+}
+
+/* keep the labels for screen readers but hide them since we use placeholders */
+label.infield,
+.hidden-visually {
+ position: absolute;
+ inset-inline-start: -10000px;
+ top: -10000px;
+ width: 1px;
+ height: 1px;
+ overflow: hidden;
+}
+
+a.legal {
+ font-size: smaller;
+}
+
+.notecard {
+ color: var(--color-text-light);
+ background-color: var(--note-background);
+ border-inline-start: 4px solid var(--note-theme);
+ border-radius: var(--border-radius);
+ margin: 1rem 0;
+ padding: 1rem;
+ text-align: start;
+
+ &.success {
+ --note-background: rgba(var(--color-success-rgb), 0.1);
+ --note-theme: var(--color-success);
+ }
+
+ &.error {
+ --note-background: rgba(var(--color-error-rgb), 0.1);
+ --note-theme: var(--color-error);
+ }
+
+ &.warning {
+ --note-background: rgba(var(--color-warning-rgb), 0.1);
+ --note-theme: var(--color-warning);
+ }
+
+ &:last-child {
+ margin-bottom: 0;
+ }
+
+ pre {
+ background-color: var(--color-background-dark);
+ margin-top: 1rem;
+ padding: 1em 1.3em;
+ border-radius: var(--border-radius);
+ }
+}
+
+.guest-box, .body-login-container {
+ // Ensure the maxcontrast color is set for the background
+ --color-text-maxcontrast: var(--color-text-maxcontrast-background-blur, var(--color-main-text));
+ color: var(--color-main-text);
+ background-color: var(--color-main-background-blur);
+ padding: calc(3 * var(--default-grid-baseline));
+ border-radius: var(--border-radius-container);
+ box-shadow: 0 0 10px var(--color-box-shadow);
+ display: inline-block;
+ -webkit-backdrop-filter: var(--filter-background-blur);
+ backdrop-filter: var(--filter-background-blur);
+}
+
+.guest-box {
+ &.wide {
+ display: block;
+ text-align: start;
+ border-radius: var(--border-radius-container-large);
+ }
+
+ fieldset {
+ margin-top: 0;
+ }
+
+ .pre {
+ overflow-x: scroll;
+ }
+}
+
+button.toggle-password {
+ background-color: transparent;
+ border-width: 0;
+ height: 44px;
+}
+
+/** Utilities */
+.margin-top {
+ margin-top: 1rem !important;
+}
+
+.text-left {
+ text-align: start !important;
+}
+
+.hidden {
+ display: none;
+}
diff --git a/core/css/header.css b/core/css/header.css
new file mode 100644
index 00000000000..1c748610023
--- /dev/null
+++ b/core/css/header.css
@@ -0,0 +1,5 @@
+/*!
+ * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */#skip-actions{position:absolute;overflow:hidden;z-index:9999;top:-999px;inset-inline-start:3px;padding:11px;display:flex;flex-wrap:wrap;gap:11px}#skip-actions:focus-within{top:var(--header-height)}#header{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}#header:not(.header-guest){display:inline-flex;position:absolute;top:0;width:100%;z-index:2000;height:var(--header-height);box-sizing:border-box;justify-content:space-between}#header #nextcloud{padding:5px 0;padding-inline-start:86px;position:relative;height:calc(100% - var(--default-grid-baseline));box-sizing:border-box;opacity:1;align-items:center;display:flex;flex-wrap:wrap;overflow:hidden;margin:2px}#header #nextcloud:hover,#header #nextcloud:active{opacity:1}#header #nextcloud .logo{display:inline-flex;background-image:var(--image-logoheader, var(--image-logo, url("../img/logo/logo.svg")));background-repeat:no-repeat;background-size:contain;background-position:center;width:62px;position:absolute;inset-inline-start:12px;top:1px;bottom:1px;filter:var(--image-logoheader-custom, var(--background-image-invert-if-bright))}#header #nextcloud:focus-visible,#header .app-menu-entry a:focus-visible,#header .header-menu button:first-of-type:focus-visible{outline:none}#header #nextcloud:focus-visible::after,#header .app-menu-entry a:focus-visible::after,#header .header-menu button:first-of-type:focus-visible::after{content:" ";position:absolute;inset-block-end:2px;transform:translateX(-50%);width:12px;height:2px;border-radius:3px;background-color:var(--color-background-plain-text);inset-inline-start:50%;opacity:1}#header .header-start{display:inline-flex;align-items:center;flex:1 0;white-space:nowrap;min-width:0}#header .header-end{display:inline-flex;align-items:center;justify-content:flex-end;flex-shrink:1;margin-inline-end:calc(3*var(--default-grid-baseline))}#header .header-end>div,#header .header-end>form{height:100%;position:relative}#header .header-end>div>.menutoggle,#header .header-end>form>.menutoggle{display:flex;justify-content:center;align-items:center;width:var(--header-height);height:var(--header-menu-item-height);cursor:pointer;opacity:.85;padding:0;margin:2px 0}#header .header-end>div>.menutoggle:focus,#header .header-end>form>.menutoggle:focus{opacity:1}#header .header-end>div>.menutoggle:focus-visible,#header .header-end>form>.menutoggle:focus-visible{outline:none}#header .header-end>div>.menu,#header .header-end>form>.menu{background-color:var(--color-main-background);filter:drop-shadow(0 1px 5px var(--color-box-shadow));border-radius:var(--border-radius-large);box-sizing:border-box;z-index:2000;position:absolute;max-width:350px;min-height:calc(var(--default-clickable-area)*1.5);max-height:calc(100vh - var(--header-height) - 2*var(--default-grid-baseline));inset-inline-end:8px;top:var(--header-height);margin:0;overflow-y:auto}#header .header-end>div>.menu:not(.popovermenu),#header .header-end>form>.menu:not(.popovermenu){display:none}#header .header-end>div>.menu:after,#header .header-end>form>.menu:after{border:10px solid rgba(0,0,0,0);border-bottom-color:var(--color-main-background);bottom:100%;content:" ";height:0;width:0;position:absolute;pointer-events:none;inset-inline-end:10px}#header .header-end>div>.menu>div,#header .header-end>div>.menu>ul,#header .header-end>form>.menu>div,#header .header-end>form>.menu>ul{-webkit-overflow-scrolling:touch;min-height:calc(var(--default-clickable-area)*1.5);max-height:calc(100vh - var(--header-height) - 2*var(--default-grid-baseline))}#header .header-end>div .emptycontent h2,#header .header-end>form .emptycontent h2{font-weight:normal;font-size:16px}#header .header-end>div .emptycontent [class^=icon-],#header .header-end>div .emptycontent [class*=icon-],#header .header-end>form .emptycontent [class^=icon-],#header .header-end>form .emptycontent [class*=icon-]{background-size:48px;height:48px;width:48px}#header .header-appname{color:var(--color-background-plain-text);font-size:16px;font-weight:bold;margin:0;padding:0;padding-inline-end:5px;overflow:hidden;text-overflow:ellipsis;flex:1 1 100%}#header .header-appname .header-info{display:flex;flex-direction:column;overflow:hidden}#header .header-appname .header-info .header-title{overflow:hidden;text-overflow:ellipsis}#header .header-appname .header-info .header-shared-by{color:var(--color-background-plain-text);position:relative;font-weight:300;font-size:var(--font-size-small);line-height:var(--font-size-small);overflow:hidden;text-overflow:ellipsis}@media(display-mode: standalone)or (display-mode: minimal-ui){#header:not(.header-guest){display:none !important}#content,#content-vue{margin-top:var(--body-container-margin)}:root{--body-height: calc(100% - env(safe-area-inset-bottom) - var(--body-container-margin) * 2) !important}}/*# sourceMappingURL=header.css.map */
diff --git a/core/css/header.css.map b/core/css/header.css.map
new file mode 100644
index 00000000000..50d096529d9
--- /dev/null
+++ b/core/css/header.css.map
@@ -0,0 +1 @@
+{"version":3,"sourceRoot":"","sources":["header.scss"],"names":[],"mappings":"AAAA;AAAA;AAAA;AAAA;AAAA,GAYA,cACC,kBACA,gBACA,aACA,WACA,uBACA,aACA,aACA,eACA,SAEA,2BACC,yBAKF,QAEC,yBACA,sBACA,qBACA,iBAGA,2BACC,oBACA,kBACA,MACA,WACA,aACA,4BACA,sBACA,8BAID,mBACC,cACA,0BACA,kBACA,iDACA,sBACA,UACA,mBACA,aACA,eACA,gBACA,WAEA,mDACC,UAID,yBACC,oBACA,yFACA,4BACA,wBACA,2BACA,WACA,kBACA,wBACA,QACA,WAEA,gFAMF,iIAGC,aAEA,sJACC,YACA,kBACA,oBACA,2BACA,WACA,WACA,kBACA,oDACA,uBACA,UAOF,sBACC,oBACA,mBACA,SACA,mBACA,YAKD,oBACC,oBACA,mBACA,yBACA,cAEA,uDAIA,iDAEC,YACA,kBACA,yEACC,aACA,uBACA,mBACA,2BACA,sCACA,eACA,YACA,UACA,aAEA,qFACC,UAGD,qGACC,aAIF,6DACC,8CACA,sDACA,yCACA,sBACA,aACA,kBACA,gBAvJH,mDACA,+EAwJG,qBACA,yBACA,SACA,gBAEA,iGACC,aAID,yEACC,gCACA,iDACA,YACA,YACA,SACA,QACA,kBACA,oBACA,sBAGD,wIAEC,iCAjLJ,mDACA,+EAsLG,mFACC,mBACA,eAED,sNAEC,qBACA,YACA,WAQJ,wBACC,yCACA,eACA,iBACA,SACA,UACA,uBACA,gBACA,uBAEA,cAGA,qCACC,aACA,sBACA,gBAEA,mDACC,gBACA,uBAGD,uDACC,yCACA,kBACA,gBACA,iCACA,mCACA,gBACA,uBAMJ,8DACC,2BACC,wBAGD,sBACC,wCAGD,MAEC","file":"header.css"} \ No newline at end of file
diff --git a/core/css/header.css.map.license b/core/css/header.css.map.license
new file mode 100644
index 00000000000..82ac7cce426
--- /dev/null
+++ b/core/css/header.css.map.license
@@ -0,0 +1,3 @@
+SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
+SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/core/css/header.scss b/core/css/header.scss
index 50c216f4e1c..e14e1eecb11 100644
--- a/core/css/header.scss
+++ b/core/css/header.scss
@@ -1,229 +1,130 @@
-/**
- * @copyright Copyright (c) 2016, John Molakvoæ <skjnldsv@protonmail.com>
- * @copyright Copyright (c) 2016, Julius Haertl <jus@bitgrid.net>
- * @copyright Copyright (c) 2016, Lukas Reschke <lukas@statuscode.ch>
- * @copyright Copyright (c) 2016, Jos Poortvliet <jos@opensuse.org>
- * @copyright Copyright (c) 2016, Erik Pellikka <erik@pellikka.org>
- * @copyright Copyright (c) 2016, jowi <sjw@gmx.ch>
- * @copyright Copyright (c) 2015, Hendrik Leppelsack <hendrik@leppelsack.de>
- * @copyright Copyright (c) 2015, Volker E <volker.e@temporaer.net>
- * @copyright Copyright (c) 2014-2017, Jan-Christoph Borchardt <hey@jancborchardt.net>
- *
- * @license GNU AGPL version 3 or any later version
- *
+/*!
+ * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
-/* prevent ugly selection effect on accidental selection */
-#header,
-#navigation,
-#expanddiv {
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
+@mixin header-menu-height() {
+ min-height: calc(var(--default-clickable-area) * 1.5); // show at least 1.5 entries
+ max-height: calc(100vh - var(--header-height) - (2 * var(--default-grid-baseline)));
}
-/* removed until content-focusing issue is fixed */
-#skip-to-content a {
+/* Skip navigation links – show only on keyboard focus */
+#skip-actions {
position: absolute;
- left: -10000px;
- top: auto;
- width: 1px;
- height: 1px;
overflow: hidden;
- &:focus {
- left: 76px;
- top: -9px;
- color: var(--color-primary-text);
- width: auto;
- height: auto;
- }
-}
-
-/* HEADERS ------------------------------------------------------------------ */
-#body-user #header,
-#body-settings #header,
-#body-public #header {
- display: inline-flex;
- position: fixed;
- top: 0;
- width: 100%;
- z-index: 2000;
- height: $header-height;
- background-color: var(--color-primary);
- background-image: linear-gradient(40deg, var(--color-primary) 0%, var(--color-primary-element-light) 100%);
- box-sizing: border-box;
- justify-content: space-between;
-}
-
-/* LOGO and APP NAME -------------------------------------------------------- */
-#nextcloud {
- padding: 7px 0;
- padding-left: 86px; // logo width + 2* pa
- position: relative;
- height: 100%;
- box-sizing: border-box;
- opacity: 1;
- align-items: center;
+ z-index: 9999;
+ top: -999px;
+ inset-inline-start: 3px;
+ padding: 11px;
display: flex;
flex-wrap: wrap;
- overflow: hidden;
+ gap: 11px;
- &:focus {
- opacity: .75;
- }
- &:hover, &:active {
- opacity: 1;
+ &:focus-within {
+ top: var(--header-height);
}
}
-@mixin header-menu-height() {
- min-height: calc(44px * 1.5); // show at least 1.5 entries
- max-height: calc(100vh - #{$header-height} * 4);
-}
-
+/* HEADERS ------------------------------------------------------------------ */
#header {
- /* Header menu */
- $header-menu-entry-height: 44px;
+ // prevent ugly selection effect on accidental selection
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
- .header-left > nav > .menu,
- .header-right > div > .menu {
- background-color: var(--color-main-background);
- filter: drop-shadow(0 1px 5px var(--color-box-shadow));
- border-radius: 0 0 var(--border-radius) var(--border-radius);
- box-sizing: border-box;
- z-index: 2000;
+ // for legacy the reasons the guest layout also uses the same id, so we need to exclude it as it uses a different layout.
+ &:not(.header-guest) {
+ display: inline-flex;
position: absolute;
- max-width: 350px;
- @include header-menu-height();
- right: 5px; // relative to parent
- top: $header-height;
- margin: 0;
-
- &:not(.popovermenu) {
- display: none;
- }
+ top: 0;
+ width: 100%;
+ z-index: 2000;
+ height: var(--header-height);
+ box-sizing: border-box;
+ justify-content: space-between;
+ }
- /* Dropdown arrow */
- &:after {
- border: 10px solid transparent;
- border-bottom-color: var(--color-main-background);
- bottom: 100%;
- content: ' ';
- height: 0;
- width: 0;
- position: absolute;
- pointer-events: none;
- right: 10px;
- }
+ // This is the first entry in the header, it represents the "home"-link
+ #nextcloud {
+ padding: 5px 0;
+ padding-inline-start: 86px; // logo width + 2 * the inset (padding)
+ position: relative;
+ height: calc(100% - var(--default-grid-baseline));
+ box-sizing: border-box;
+ opacity: 1;
+ align-items: center;
+ display: flex;
+ flex-wrap: wrap;
+ overflow: hidden;
+ margin: 2px;
- #apps > ul,
- & > div,
- & > ul {
- overflow-y: auto;
- -webkit-overflow-scrolling: touch;
- @include header-menu-height();
+ &:hover, &:active {
+ opacity: 1;
}
- /* Use by the apps menu and the settings right menu */
- #apps > ul,
- &.settings-menu > ul {
- li {
- a {
- display: inline-flex;
- align-items: center;
- height: $header-menu-entry-height;
- color: var(--color-main-text);
- padding: 10px 12px;
- box-sizing: border-box;
- white-space: nowrap;
- position: relative;
- width: 100%;
- &:hover,
- &:focus {
- background-color: var(--color-background-hover);
- }
- &:active,
- &.active {
- background-color: var(--color-primary-light);
- }
- span {
- display: inline-block;
- padding-bottom: 0;
- color: var(--color-main-text);
- white-space: nowrap;
- overflow: hidden;
- text-overflow: ellipsis;
- max-width: 110px;
- }
- .icon-loading-small {
- margin-right: 10px;
- background-size: 16px 16px;
- }
- img,
- svg {
- opacity: .7;
- margin-right: 10px;
- height: 16px;
- width: 16px;
- }
- }
- }
+ // the actual logo within the home-link entry
+ .logo {
+ display: inline-flex;
+ background-image: var(--image-logoheader, var(--image-logo, url('../img/logo/logo.svg')));
+ background-repeat: no-repeat;
+ background-size: contain;
+ background-position: center;
+ width: 62px;
+ position: absolute;
+ inset-inline-start: 12px;
+ top: 1px;
+ bottom: 1px;
+ // Invert if not customized and background is bright
+ filter: var(--image-logoheader-custom, var(--background-image-invert-if-bright));
}
}
- .logo {
- display: inline-flex;
- background-image: var(--image-logo);
- background-repeat: no-repeat;
- background-size: contain;
- background-position: center;
- width: 62px;
- position: absolute;
- left: 12px;
- top: 1px;
- bottom: 1px;
- img {
- opacity: 0;
- max-width: 100%;
- max-height: 200px;
- }
- }
+ // focus visible styles
+ // this adds a small line below all entries when visually focussed
+ #nextcloud:focus-visible,
+ .app-menu-entry a:focus-visible,
+ .header-menu button:first-of-type:focus-visible {
+ outline: none;
- .header-appname-container {
- display: none;
- padding-right: 10px;
- flex-shrink: 0;
- }
- /* show caret indicator next to logo to make clear it is tappable */
- .icon-caret {
- display: inline-block;
- width: 12px;
- height: 12px;
- margin: 0;
- margin-top: -21px;
- padding: 0;
- vertical-align: middle;
+ &::after {
+ content: " ";
+ position: absolute;
+ inset-block-end: 2px;
+ transform: translateX(-50%);
+ width: 12px;
+ height: 2px;
+ border-radius: 3px;
+ background-color: var(--color-background-plain-text);
+ inset-inline-start: 50%;
+ opacity: 1;
+ }
}
- #header-left, .header-left,
- #header-right, .header-right {
+ // This is the first part of the header
+ // for the user template it contains the application icons (app menu)
+ // for public templates this contains e.g. share information
+ .header-start {
display: inline-flex;
align-items: center;
- }
-
- #header-left, .header-left {
flex: 1 0;
white-space: nowrap;
min-width: 0;
}
- #header-right, .header-right {
+ // This is the last part of the header
+ // It contains the short cuts like unified search, contacts-, or account menu
+ .header-end {
+ display: inline-flex;
+ align-items: center;
justify-content: flex-end;
flex-shrink: 1;
- }
+ // Add some spacing so the last entry looks ok
+ margin-inline-end: calc(3 * var(--default-grid-baseline));
- /* Right header standard */
- .header-right {
+ // legacy JQuery header menus
+ // TODO: we already migrated our own code and deprecated it - can be removed together with global jQuery
> div,
> form {
height: 100%;
@@ -232,475 +133,124 @@
display: flex;
justify-content: center;
align-items: center;
- width: $header-height;
- height: 100%;
+ width: var(--header-height);
+ height: var(--header-menu-item-height);
cursor: pointer;
- opacity: 0.6;
+ opacity: 0.85;
padding: 0;
- margin: 0;
- }
- }
- }
-}
-
-/* hover effect for app switcher label */
-
-.header-appname-container .header-appname {
- opacity: .75;
-}
-
-.menutoggle {
- .icon-caret {
- opacity: .75;
- }
- &:hover {
- .header-appname, .icon-caret {
- opacity: 1;
- }
- }
- &:focus {
- .header-appname, .icon-caret {
- opacity: 1;
- }
- }
- &.active {
- .header-appname, .icon-caret {
- opacity: 1;
- }
- }
-}
-
-/* TODO: move into minimal css file for public shared template */
-/* only used for public share pages now as we have the app icons when logged in */
-.header-appname {
- color: var(--color-primary-text);
- font-size: 16px;
- font-weight: bold;
- margin: 0;
- padding: 0;
- padding-right: 5px;
- overflow: hidden;
- text-overflow: ellipsis;
- // Take full width to push the header-shared-by bellow (if any)
- flex: 1 1 100%;
-}
-
-.header-shared-by {
- color: var(--color-primary-text);
- position: relative;
- font-weight: 300;
- font-size: 11px;
- line-height: 11px;
- overflow: hidden;
- text-overflow: ellipsis;
-}
-
-/* do not show menu toggle on public share links as there is no menu */
-#body-public #header .icon-caret {
- display: none;
-}
-
-/* NAVIGATION --------------------------------------------------------------- */
-nav[role='navigation'] {
- display: inline-block;
- width: $header-height;
- height: $header-height;
- margin-left: -$header-height;
- position: relative;
-}
-
-#header .header-left > nav > #navigation {
- position: relative;
- left: 25px; /* half the togglemenu */
- transform: translateX(-50%);
- width: 160px;
-}
-
-#header .header-left > nav > #navigation,
-.ui-datepicker,
-.ui-timepicker.ui-widget {
- background-color: var(--color-main-background);
- filter: drop-shadow(0 1px 10px var(--color-box-shadow));
- &:after {
- /* position of dropdown arrow */
- left: 50%;
- bottom: 100%;
- border: solid transparent;
- content: ' ';
- height: 0;
- width: 0;
- position: absolute;
- pointer-events: none;
- border-color: rgba(0, 0, 0, 0);
- border-bottom-color: var(--color-main-background);
- border-width: 10px;
- margin-left: -10px; /* border width */
- }
-}
-
-#navigation {
- box-sizing: border-box;
- .in-header {
- display: none;
- }
-}
+ margin: 2px 0;
-/* USER MENU -----------------------------------------------------------------*/
-#settings {
- display: inline-block;
- height: 100%;
- cursor: pointer;
- flex: 0 0 auto;
-
- /* User menu on the right */
- #expand {
- opacity: 1; /* override icon opacity */
- padding-right: 12px;
-
- &:hover,
- &:focus,
- &:active {
- color: var(--color-primary-text);
+ &:focus {
+ opacity: 1;
+ }
- #expandDisplayName,
- .avatardiv{
- border-radius: 50%;
- border: 2px solid var(--color-primary-text);
- margin: -2px;
- }
- .avatardiv{
- background-color: var(--color-primary-text);
- }
- #expandDisplayName {
- opacity: 1;
+ &:focus-visible {
+ outline: none;
+ }
}
- }
- /* Profile picture in header */
- .avatardiv {
- cursor: pointer;
- height: 32px;
- width: 32px;
+ > .menu {
+ background-color: var(--color-main-background);
+ filter: drop-shadow(0 1px 5px var(--color-box-shadow));
+ border-radius: var(--border-radius-large);
+ box-sizing: border-box;
+ z-index: 2000;
+ position: absolute;
+ max-width: 350px;
+ @include header-menu-height();
+ inset-inline-end: 8px; // relative to parent
+ top: var(--header-height);
+ margin: 0;
+ overflow-y: auto;
- img {
- opacity: 1;
- cursor: pointer;
- }
- /* do not show display name when profile picture is present */
- &.avatardiv-shown + #expandDisplayName {
- display: none;
- }
- }
+ &:not(.popovermenu) {
+ display: none;
+ }
- #expandDisplayName {
- padding: 8px;
- opacity: .6;
- cursor: pointer;
+ /* Dropdown arrow */
+ &:after {
+ border: 10px solid transparent;
+ border-bottom-color: var(--color-main-background);
+ bottom: 100%;
+ content: ' ';
+ height: 0;
+ width: 0;
+ position: absolute;
+ pointer-events: none;
+ inset-inline-end: 10px;
+ }
- /* full opacity for gear icon if active */
- #body-settings & {
- opacity: 1;
+ & > div,
+ & > ul {
+ -webkit-overflow-scrolling: touch;
+ @include header-menu-height();
+ }
}
- }
- /* show triangle below user menu if active */
- #body-settings &:before {
- content: ' ';
- height: 0;
- width: 0;
- position: absolute;
- pointer-events: none;
- border: 0 solid transparent;
- border-bottom-color: var(--color-main-background);
- border-width: 10px;
- bottom: 0;
- z-index: 100;
- display: block;
+ .emptycontent {
+ h2 {
+ font-weight: normal;
+ font-size: 16px;
+ }
+ [class^='icon-'],
+ [class*='icon-'] {
+ background-size: 48px;
+ height: 48px;
+ width: 48px;
+ }
+ }
}
}
- #expanddiv:after {
- right: 22px;
- }
-}
-
-/* Apps menu */
-#appmenu {
- display: inline-flex;
- min-width: $header-height;
- z-index: 2;
-
- li {
- position: relative;
- cursor: pointer;
- padding: 0 2px;
- display: flex;
- justify-content: center;
-
- a {
- position: relative;
+ // Public layout related headers
+ // app related header container ONLY on public shares (layout.public.php)
+ .header-appname {
+ color: var(--color-background-plain-text);
+ font-size: 16px;
+ font-weight: bold;
+ margin: 0;
+ padding: 0;
+ padding-inline-end: 5px;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ // Take full width to push the header-shared-by bellow (if any)
+ flex: 1 1 100%;
+
+ // container for the public template header information
+ .header-info {
display: flex;
- margin: 0;
- height: $header-height;
- width: $header-height;
- align-items: center;
- justify-content: center;
- opacity: .6;
- // Make sure most app names don’t ellipsize
- letter-spacing: -0.5px;
- font-size: 12px;
- }
-
- /* focused app visual feedback */
- &:hover a,
- a:focus,
- a.active {
- opacity: 1;
- font-weight: bold;
- }
-
- // Text size back to normal for hover/focus
- &:hover a,
- a:focus {
- font-size: 14px;
- }
-
- &:hover a + span,
- a:focus + span,
- &:hover span,
- &:focus span,
- a:focus span,
- a.active span {
- display: inline-block;
- text-overflow: initial;
- width: auto;
- overflow: hidden;
- padding: 0 5px;
- z-index: 2;
- }
-
- /* hidden apps menu */
- img,
- .icon-more-white {
- display: inline-block;
- width: 20px;
- height: 20px;
- }
-
- /* App title */
- span {
- opacity: 0;
- position: absolute;
- color: var(--color-primary-text);
- bottom: 2px;
- width: 100%;
- text-align: center;
+ flex-direction: column;
overflow: hidden;
- text-overflow: ellipsis;
- transition: all var(--animation-quick) ease;
- pointer-events: none;
- }
-
- /* Set up transitions for showing app titles on hover */
- /* App icon */
- svg,
- .icon-more-white {
- transition: transform var(--animation-quick) ease;
- }
-
- /* Triangle */
- a::before {
- transition: border var(--animation-quick) ease;
- }
- }
-
- /* Show all app titles on hovering app menu area */
- &:hover {
- li {
- /* Move up app icon */
- svg,
- .icon-more,
- .icon-more-white,
- .icon-loading-small,
- .icon-loading-small-dark {
- transform: translateY(-7px);
- }
- /* Show app title */
- span {
- opacity: .6;
- bottom: 2px;
- z-index: -1; /* fix clickability issue - otherwise we need to move the span into the link */
+ .header-title {
+ overflow: hidden;
+ text-overflow: ellipsis;
}
- /* Prominent app title for current and hovered/focused app */
- &:hover span,
- &:focus span,
- .active + span {
- opacity: 1;
+ .header-shared-by {
+ color: var(--color-background-plain-text);
+ position: relative;
+ font-weight: 300;
+ font-size: var(--font-size-small);
+ line-height: var(--font-size-small);
+ overflow: hidden;
+ text-overflow: ellipsis;
}
-
- /* Smaller triangle because of limited space */
- a::before {
- border-width: 5px;
- }
- }
- }
-
- /* Also show app title on focusing single entry (showing all on focus is only possible with CSS4 and parent selectors) */
- li a:focus {
- /* Move up app icon */
- svg,
- .icon-more,
- .icon-more-white,
- .icon-loading-small,
- .icon-loading-small-dark {
- transform: translateY(-7px);
- }
-
- /* Show app title */
- & + span,
- span {
- opacity: 1;
- bottom: 2px;
- }
-
- /* Smaller triangle because of limited space */
- &::before {
- border-width: 5px;
}
}
-
- /* show triangle below active app */
- li a::before {
- content: ' ';
- height: 0;
- width: 0;
- position: absolute;
- pointer-events: none;
- border: 0 solid transparent;
- border-bottom-color: var(--color-main-background);
- border-width: 10px;
- transform: translateX(-50%);
- left: 50%;
- bottom: 0;
- display: none;
- }
-
- /* triangle focus feedback */
- li a.active::before,
- li:hover a::before,
- li:hover a.active::before,
- li a:focus::before {
- display: block;
- }
- li a.active::before {
- z-index: 99;
- }
- li:hover a::before,
- li a.active:hover::before,
- li a:focus::before {
- z-index: 101;
- }
-
- li.hidden {
- display: none;
- }
-
- #more-apps {
- z-index: 3;
- }
}
-/* Skip navigation links – show only on keyboard focus */
-.skip-navigation {
- padding: 11px;
- position: absolute;
- overflow: hidden;
- z-index: 9999;
- top: -999px;
- left: 3px;
- /* Force primary color, otherwise too light focused color */
- background: var(--color-primary) !important;
-
- &.skip-content {
- left: $navigation-width;
- margin-left: 3px;
+@media (display-mode: standalone) or (display-mode: minimal-ui) {
+ #header:not(.header-guest) {
+ display: none !important;
}
- &:focus,
- &:active {
- top: $header-height;
- }
-}
-
-/* SEARCHBOX --------------------------------------------------------------- */
-.searchbox {
- position: relative;
- display: flex;
- align-items: center;
- input[type='search'] {
- position: relative;
- font-size: 1.2em;
- padding: 3px;
- padding-left: 25px;
- padding-right: 20px;
- background-color: transparent;
- color: var(--color-primary-text);
- border: 0;
- border-radius: var(--border-radius-pill);
- height: 34px;
- width: 0;
- cursor: pointer;
- transition: width 100ms, opacity 100ms;
- opacity: .6;
- &:focus, &:active, &:valid {
- background-position-x: 6px;
- color: var(--color-primary-text);
- width: 155px;
- cursor: text;
- background-color: transparent !important;
- border: 1px solid var(--color-primary-text) !important;
- }
- &:hover, &:focus, &:active {
- opacity: 1;
- }
- & ~ .icon-close-white {
- display: inline;
- position: absolute;
- width: 30px;
- height: 100%;
- right: 0;
- top: 0;
- margin: 0;
- &, &:focus, &:active, &:hover {
- border: none;
- background-color: transparent;
- }
- }
- &:not(:valid) ~ .icon-close-white {
- display: none;
- }
- &::-webkit-search-cancel-button {
- -webkit-appearance: none;
- }
- }
- .icon-search-force-white {
- @include icon-color('search', 'actions', '#fffffe', 1, true);
+ #content, #content-vue {
+ margin-top: var(--body-container-margin);
}
-}
-/* Empty content messages in the header e.g. notifications, contacts menu, … */
-header #emptycontent,
-header .emptycontent {
- h2 {
- font-weight: normal;
- font-size: 16px;
- }
- [class^='icon-'],
- [class*='icon-'] {
- background-size: 48px;
- height: 48px;
- width: 48px;
+ :root {
+ // Override the body height to make up for the additional height due to the missing header.
+ --body-height: calc(100% - env(safe-area-inset-bottom) - var(--body-container-margin) * 2) !important;
}
}
diff --git a/core/css/icons.css b/core/css/icons.css
new file mode 100644
index 00000000000..d88834ac78f
--- /dev/null
+++ b/core/css/icons.css
@@ -0,0 +1,10 @@
+/*!
+ * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */@import'../../dist/icons.css';/*!
+ * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ *//*!
+ * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */[class^=icon-],[class*=" icon-"]{background-repeat:no-repeat;background-position:center;min-width:16px;min-height:16px}.icon-breadcrumb{background-image:url("../img/breadcrumb.svg?v=1")}.loading,.loading-small,.icon-loading,.icon-loading-dark,.icon-loading-small,.icon-loading-small-dark{position:relative}.loading:after,.loading-small:after,.icon-loading:after,.icon-loading-dark:after,.icon-loading-small:after,.icon-loading-small-dark:after{z-index:2;content:"";height:28px;width:28px;margin:-16px 0 0 -16px;position:absolute;top:50%;inset-inline-start:50%;border-radius:100%;-webkit-animation:rotate .8s infinite linear;animation:rotate .8s infinite linear;-webkit-transform-origin:center;-ms-transform-origin:center;transform-origin:center;border:2px solid var(--color-loading-light);border-top-color:var(--color-loading-dark);filter:var(--background-invert-if-dark)}.primary .loading:after,.primary+.loading:after,.primary .loading-small:after,.primary+.loading-small:after,.primary .icon-loading:after,.primary+.icon-loading:after,.primary .icon-loading-dark:after,.primary+.icon-loading-dark:after,.primary .icon-loading-small:after,.primary+.icon-loading-small:after,.primary .icon-loading-small-dark:after,.primary+.icon-loading-small-dark:after{filter:var(--primary-invert-if-bright)}.icon-loading-dark:after,.icon-loading-small-dark:after{border:2px solid var(--color-loading-dark);border-top-color:var(--color-loading-light)}.icon-loading-small:after,.icon-loading-small-dark:after{height:12px;width:12px;margin:-8px 0 0 -8px}audio.icon-loading,canvas.icon-loading,embed.icon-loading,iframe.icon-loading,img.icon-loading,input.icon-loading,object.icon-loading,video.icon-loading{background-image:url("../img/loading.gif")}audio.icon-loading-dark,canvas.icon-loading-dark,embed.icon-loading-dark,iframe.icon-loading-dark,img.icon-loading-dark,input.icon-loading-dark,object.icon-loading-dark,video.icon-loading-dark{background-image:url("../img/loading-dark.gif")}audio.icon-loading-small,canvas.icon-loading-small,embed.icon-loading-small,iframe.icon-loading-small,img.icon-loading-small,input.icon-loading-small,object.icon-loading-small,video.icon-loading-small{background-image:url("../img/loading-small.gif")}audio.icon-loading-small-dark,canvas.icon-loading-small-dark,embed.icon-loading-small-dark,iframe.icon-loading-small-dark,img.icon-loading-small-dark,input.icon-loading-small-dark,object.icon-loading-small-dark,video.icon-loading-small-dark{background-image:url("../img/loading-small-dark.gif")}@keyframes rotate{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}.icon-32{background-size:32px !important}.icon-white.icon-shadow,.icon-audio-white,.icon-audio-off-white,.icon-fullscreen-white,.icon-screen-white,.icon-screen-off-white,.icon-video-white,.icon-video-off-white{filter:drop-shadow(1px 1px 4px var(--color-box-shadow))}/*# sourceMappingURL=icons.css.map */
diff --git a/core/css/icons.css.map b/core/css/icons.css.map
new file mode 100644
index 00000000000..8f8fb343d73
--- /dev/null
+++ b/core/css/icons.css.map
@@ -0,0 +1 @@
+{"version":3,"sourceRoot":"","sources":["icons.scss","variables.scss","functions.scss"],"names":[],"mappings":"AAAA;AAAA;AAAA;AAAA,GAwHQ,8BCtHR;AAAA;AAAA;AAAA,GCFA;AAAA;AAAA;AAAA,GFQA,iCACC,4BACA,2BACA,eACA,gBAGD,iBACC,kDAID,sGAMC,kBACA,0IACC,UACA,WACA,YACA,WACA,uBACA,kBACA,QACA,uBACA,mBACA,6CACA,qCACA,gCACA,4BACA,wBACA,4CACA,2CAEA,wCAEA,gYAGC,uCAKH,wDAEC,2CACA,4CAGD,yDAEC,YACA,WACA,qBAKA,yJACC,2CAED,iMACC,gDAED,yMACC,iDAED,iPACC,sDAIF,kBACC,KACC,uBAED,GACC,0BAIF,SACC,gCAGD,yKAQC","file":"icons.css"} \ No newline at end of file
diff --git a/core/css/icons.css.map.license b/core/css/icons.css.map.license
new file mode 100644
index 00000000000..b62adf36215
--- /dev/null
+++ b/core/css/icons.css.map.license
@@ -0,0 +1,2 @@
+SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
+SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/core/css/icons.scss b/core/css/icons.scss
index c38bdb89daa..df6edea1f15 100644
--- a/core/css/icons.scss
+++ b/core/css/icons.scss
@@ -1,31 +1,9 @@
-/**
- * @copyright Copyright (c) 2018, John Molakvoæ (skjnldsv@protonmail.com)
- *
- * @author John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
- * @author Joas Schilling <coding@schilljs.com>
- * @author Lukas Reschke <lukas@statuscode.ch>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- * @author Vincent Chan <plus.vincchan@gmail.com>
- * @author Thomas Müller <thomas.mueller@tmit.eu>
- * @author Hendrik Leppelsack <hendrik@leppelsack.de>
- * @author Jan-Christoph Borchardt <hey@jancborchardt.net>
- *
- * @license GNU AGPL version 3 or any later version
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
+/*!
+ * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
+@use 'variables';
+@use 'functions';
/* GLOBAL ------------------------------------------------------------------- */
[class^='icon-'], [class*=' icon-'] {
@@ -55,7 +33,7 @@
margin: -16px 0 0 -16px;
position: absolute;
top: 50%;
- left: 50%;
+ inset-inline-start: 50%;
border-radius: 100%;
-webkit-animation: rotate .8s infinite linear;
animation: rotate .8s infinite linear;
@@ -64,6 +42,14 @@
transform-origin: center;
border: 2px solid var(--color-loading-light);
border-top-color: var(--color-loading-dark);
+ // revert if background is too bright
+ filter: var(--background-invert-if-dark);
+
+ .primary &,
+ .primary + & {
+ // revert if primary is too bright
+ filter: var(--primary-invert-if-bright);
+ }
}
}
@@ -109,15 +95,19 @@ audio, canvas, embed, iframe, img, input, object, video {
background-size: 32px !important;
}
-.icon-white {
- &.icon-shadow {
- filter: drop-shadow(1px 1px 4px var(--color-box-shadow));
- }
+.icon-white.icon-shadow,
+.icon-audio-white,
+.icon-audio-off-white,
+.icon-fullscreen-white,
+.icon-screen-white,
+.icon-screen-off-white,
+.icon-video-white,
+.icon-video-off-white {
+ filter: drop-shadow(1px 1px 4px var(--color-box-shadow));
}
/* ICONS -------------------------------------------------------------------
* These icon classes are generated automatically with the following pattern
- * for icon-black-white('close', ...)
* .icon-close (black icon)
* .icon-close-white (white icon)
* .icon-close.icon-white (white icon)
@@ -126,380 +116,6 @@ audio, canvas, embed, iframe, img, input, object, video {
* or have some additional styling like drop shadows
*/
-@include icon-black-white('add', 'actions', 1, true);
-@include icon-black-white('address', 'actions', 1, true);
-
-@include icon-black-white('audio', 'actions', 2, true);
-.icon-audio-white {
- filter: drop-shadow(1px 1px 4px var(--color-box-shadow));
-}
-
-@include icon-black-white('audio-off', 'actions', 1, true);
-.icon-audio-off-white {
- filter: drop-shadow(1px 1px 4px var(--color-box-shadow));
-}
-
-.icon-caret-white,
-.icon-caret {
- @include icon-color('caret', 'actions', $color-white, 1, true);
-}
-
-.icon-caret-dark {
- @include icon-color('caret', 'actions', $color-black, 1, true);
-}
-
-@include icon-black-white('checkmark', 'actions', 1, true);
-.icon-checkmark-color {
- @include icon-color('checkmark', 'actions', $color-success, 1, true);
-}
-
-@include icon-black-white('clippy', 'actions', 2, true);
-@include icon-black-white('close', 'actions', 1, true);
-@include icon-black-white('comment', 'actions', 1, true);
-@include icon-black-white('confirm', 'actions', 2, true);
-@include icon-black-white('download', 'actions', 1, true);
-
-.icon-confirm-fade {
- @include icon-color('confirm-fade', 'actions', $color-black, 2, true);
-}
-
-.icon-delete {
- @include icon-color('delete', 'actions', $color-black, 1, true);
- &.no-permission,
- &.no-hover {
- &:hover,
- &:focus {
- @include icon-color('delete', 'actions', $color-black, 1, true);
- }
- }
- &:hover,
- &:focus {
- @include icon-color('delete', 'actions', $color-error, 1, true);
- filter: initial;
- }
-
- &.icon-white {
- @include icon-color('delete', 'actions', $color-white, 1, true);
- }
-}
-
-.icon-delete-white {
- @include icon-color('delete', 'actions', $color-white, 1, true);
- &.no-permission {
- &:hover,
- &:focus {
- @include icon-color('delete', 'actions', $color-white, 1, true);
- }
- }
- &:hover,
- &:focus {
- @include icon-color('delete', 'actions', $color-error, 1, true);
- }
-}
-
-@include icon-black-white('details', 'actions', 1, true);
-@include icon-black-white('edit', 'actions', 1, true);
-@include icon-black-white('error', 'actions', 1, true);
-
-.icon-error-color {
- @include icon-color('error', 'actions', $color-error, 1, true);
-}
-@include icon-black-white('external', 'actions', 1, true);
-@include icon-black-white('fullscreen', 'actions', 1, true);
-
-.icon-fullscreen-white {
- filter: drop-shadow(1px 1px 4px var(--color-box-shadow));
-}
-
-@include icon-black-white('history', 'actions', 2, true);
-@include icon-black-white('info', 'actions', 1, true);
-@include icon-black-white('logout', 'actions', 1, true);
-@include icon-black-white('mail', 'actions', 1, true);
-@include icon-black-white('menu', 'actions', 1, true);
-@include icon-black-white('menu-sidebar', 'actions', 1, true);
-@include icon-black-white('more', 'actions', 1, true);
-@include icon-black-white('password', 'actions', 1, true);
-@include icon-black-white('pause', 'actions', 1, true);
-@include icon-black-white('play', 'actions', 1, true);
-@include icon-black-white('play-add', 'actions', 1, true);
-@include icon-black-white('play-next', 'actions', 1, true);
-@include icon-black-white('play-previous', 'actions', 1, true);
-@include icon-black-white('projects', 'actions', 1, true);
-@include icon-black-white('public', 'actions', 1, true);
-@include icon-black-white('quota', 'actions', 1, true);
-@include icon-black-white('rename', 'actions', 1, true);
-@include icon-black-white('screen', 'actions', 1, true);
-@include icon-black-white('template-add', 'actions', 1, true);
-
-.icon-screen-white {
- filter: drop-shadow(1px 1px 4px var(--color-box-shadow));
-}
-
-@include icon-black-white('screen-off', 'actions', 1, true);
-.icon-screen-off-white {
- filter: drop-shadow(1px 1px 4px var(--color-box-shadow));
-}
-
-@include icon-black-white('search', 'actions', 1, true);
-
-/* default icon have a .5 opacity */
-.icon-settings {
- @include icon-color('settings', 'actions', $color-black, 1, true);
-}
-
-.icon-settings-dark {
- @include icon-color('settings-dark', 'actions', $color-black, 1, true);
-}
-
-.icon-settings-white {
- @include icon-color('settings-dark', 'actions', $color-white, 1, true);
-}
-
-/* always use icon-shared, AdBlock blocks icon-share */
-.icon-shared,
-.icon-share {
- @include icon-color('share', 'actions', $color-black, 1, true);
- &.icon-white {
- @include icon-color('share', 'actions', $color-white, 1, true);
- }
-}
-.icon-shared-white,
-.icon-share-white {
- @include icon-color('share', 'actions', $color-white, 1, true);
-}
-
-@include icon-black-white('sound', 'actions', 1, true);
-@include icon-black-white('sound-off', 'actions', 1, true);
-
-.icon-favorite {
- @include icon-color('star-dark', 'actions', $color-black, 1, true);
-}
-
-@include icon-black-white('star', 'actions', 1, true);
-
-.icon-star-dark {
- @include icon-color('star', 'actions', $color-black, 1, true);
-}
-
-.icon-starred {
- &:hover,
- &:focus {
- @include icon-color('star', 'actions', $color-black, 1, true);
- }
- @include icon-color('star-dark', 'actions', $color-yellow, 1, true);
-}
-
-.icon-star {
- &:hover,
- &:focus {
- @include icon-color('star-dark', 'actions', $color-yellow, 1, true);
- }
-}
-
-@include icon-black-white('tag', 'actions', 2, true);
-@include icon-black-white('timezone', 'actions', 1, true);
-@include icon-black-white('toggle', 'actions', 1, true);
-@include icon-black-white('toggle-background', 'actions', 1, true);
-@include icon-black-white('toggle-pictures', 'actions', 1, true);
-@include icon-black-white('toggle-filelist', 'actions', 1, true);
-@include icon-black-white('triangle-e', 'actions', 1, true);
-@include icon-black-white('triangle-n', 'actions', 1, true);
-@include icon-black-white('triangle-s', 'actions', 1, true);
-@include icon-black-white('upload', 'actions', 1, true);
-@include icon-black-white('user', 'actions', 1, true);
-@include icon-black-white('group', 'actions', 1, true);
-@include icon-black-white('filter', 'actions', 1, true);
-
-@include icon-black-white('video', 'actions', 2, true);
-.icon-video-white {
- filter: drop-shadow(1px 1px 4px var(--color-box-shadow));
-}
-
-@include icon-black-white('video-off', 'actions', 1, true);
-.icon-video-off-white {
- filter: drop-shadow(1px 1px 4px var(--color-box-shadow));
-}
-@include icon-black-white('video-switch', 'actions', 1, true);
-
-/* SHADOW WHITE ICONS: white version only ----------------------------------- */
-.icon-view-close,
-.icon-view-close-white {
- @include icon-color('view-close', 'actions', $color-white, 1, true);
-}
-.icon-view-download,
-.icon-view-download-white {
- @include icon-color('view-download', 'actions', $color-white, 1, true);
-}
-.icon-view-pause,
-.icon-view-pause-white {
- @include icon-color('view-pause', 'actions', $color-white, 1, true);
-}
-.icon-view-play,
-.icon-view-play-white {
- @include icon-color('view-play', 'actions', $color-white, 1, true);
-}
-
-.icon-view-next {
- @include icon-color('arrow-right', 'actions', $color-black, 1, true);
- &.icon-white {
- @include icon-color('arrow-right', 'actions', $color-white, 1, true);
- }
-}
-
-
-.icon-view-previous {
- @include icon-color('arrow-left', 'actions', $color-black, 1, true);
- &.icon-white {
- @include icon-color('arrow-left', 'actions', $color-white, 1, true);
- }
-}
-
-
-@include icon-black-white('disabled-user', 'actions', 1, true);
-@include icon-black-white('disabled-users', 'actions', 1, true);
-@include icon-black-white('user-admin', 'actions', 1, true);
-
-/* PLACES ------------------------------------------------------------------- */
-.icon-calendar {
- @include icon-color('calendar', 'places', $color-white, 1, true);
-}
-
-.icon-calendar-dark {
- @include icon-color('calendar', 'places', $color-black, 1, true);
-}
-
-.icon-contacts {
- @include icon-color('contacts', 'places', $color-white, 1, true);
-}
-
-.icon-contacts-dark {
- @include icon-color('contacts', 'places', $color-black, 1, true);
-}
-
-.icon-files {
- @include icon-color('files', 'places', $color-white, 1, true);
-}
-
-.icon-files-dark {
- @include icon-color('files', 'places', $color-black, 1, true);
-}
-
-.icon-file,
-.icon-filetype-text {
- @include icon-color('text', 'filetypes', #969696, 1, true);
-}
-
-.icon-filetype-file {
- @include icon-color('file', 'filetypes', #969696, 1, true);
-}
-
-@include icon-black-white('folder', 'filetypes', 1, true);
-.icon-filetype-folder {
- @include icon-color('folder', 'filetypes', $color-primary, 1, true);
-}
-
-.icon-filetype-folder-drag-accept {
- @include icon-color('folder-drag-accept', 'filetypes', $color-primary, 1, true);
-}
-
-
-@include icon-black-white('home', 'places', 1, true);
-@include icon-black-white('link', 'places', 1, true);
-@include icon-black-white('music', 'places', 1, true);
-@include icon-black-white('picture', 'places', 1, true);
-
-
-/* CLIENTS ------------------------------------------------------------------- */
-
-@include icon-black-white('desktop', 'clients', 1, true);
-@include icon-black-white('phone', 'clients', 1, true);
-@include icon-black-white('tablet', 'clients', 1, true);
-
-/* APP CATEGORIES ------------------------------------------------------------------- */
-.icon-category-installed {
- @include icon-color('user', 'actions', $color-black, 1, true);
-}
-
-.icon-category-enabled {
- @include icon-color('checkmark', 'actions', $color-black, 1, true);
-}
-
-.icon-category-disabled {
- @include icon-color('close', 'actions', $color-black, 1, true);
-}
-
-.icon-category-app-bundles {
- @include icon-color('bundles', 'categories', $color-black, 1, true);
-}
-
-.icon-category-updates {
- @include icon-color('download', 'actions', $color-black, 1, true);
-}
-
-.icon-category-files {
- @include icon-color('files', 'categories', $color-black, 1, true);
-}
-
-.icon-category-social {
- @include icon-color('social', 'categories', $color-black, 1, true);
-}
-
-.icon-category-office {
- @include icon-color('office', 'categories', $color-black, 1, true);
-}
-
-.icon-category-auth {
- @include icon-color('auth', 'categories', $color-black, 1, true);
-}
-
-.icon-category-monitoring {
- @include icon-color('monitoring', 'categories', $color-black, 1, true);
-}
-
-.icon-category-multimedia {
- @include icon-color('multimedia', 'categories', $color-black, 1, true);
-}
-
-.icon-category-organization {
- @include icon-color('organization', 'categories', $color-black, 1, true);
-}
-
-.icon-category-customization {
- @include icon-color('customization', 'categories', $color-black, 1, true);
-}
-
-.icon-category-integration {
- @include icon-color('integration', 'categories', $color-black, 1, true);
-}
-
-.icon-category-tools {
- @include icon-color('settings-dark', 'actions', $color-black, 1, true);
-}
-
-.icon-category-games {
- @include icon-color('games', 'categories', $color-black, 1, true);
-}
-
-.icon-category-security {
- @include icon-color('password', 'actions', $color-black, 1, true);
-}
-
-.icon-category-search {
- @include icon-color('search', 'actions', $color-black, 1, true);
-}
-
-.icon-category-workflow {
- @include icon-color('workflow', 'categories', $color-black, 1, true);
-}
-
-.icon-category-dashboard {
- @include icon-color('dashboard', 'categories', $color-black, 1, true);
-}
-
-.icon-talk {
- @include icon-color('app-dark', 'spreed', $color-black, 1);
-}
-
-.nav-icon-systemtagsfilter {
- @include icon-color('tag', 'actions', $color-black, 1, true);
-}
+// plain CSS import and not SCSS so disable the `@import` rule
+/* stylelint-disable-next-line no-invalid-position-at-import-rule */
+@import '../../dist/icons.css';
diff --git a/core/css/ie.scss b/core/css/ie.scss
deleted file mode 100644
index 3a1fe7d0818..00000000000
--- a/core/css/ie.scss
+++ /dev/null
@@ -1,51 +0,0 @@
-
-#app-sidebar {
- position: fixed !important;
-}
-#app-content {
- min-width: $navigation-width !important;
- /**
- * set min height so the container will grow in IE11
- * https://stackoverflow.com/questions/28627879/flexbox-not-filling-height-in-ie11
- */
- min-height: calc(100vh - 50px);
-}
-#app-sidebar.disappear {
- right: -$sidebar-max-width !important;
-}
-
-/**
- * flex align center doesn't apply to absolute on ie
- * we need to manually set it
- */
-#appmenu li {
-
- span {
- left: 0;
- min-width: 100%;
- }
-
- &:hover a + span,
- a:focus + span,
- &:hover span,
- &:focus span,
- a:focus span {
- width: 100%; // disable animation
- padding: 0;
- }
-}
-
-/* deactivate show password toggle for IE. Does not work for 8 and 9+ have their own implementation. */
-#show,
-#show + label {
- display: none;
- visibility: hidden;
-}
-
-#header .menu,
-.header-left #navigation,
-.ui-datepicker,
-.ui-timepicker.ui-widget,
-.tooltip-inner {
- box-shadow: 0 1px 10px var(--color-box-shadow);
-}
diff --git a/core/css/inputs.css b/core/css/inputs.css
new file mode 100644
index 00000000000..61c623cb85e
--- /dev/null
+++ b/core/css/inputs.css
@@ -0,0 +1,11 @@
+/*!
+ * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ *//*!
+ * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ *//*!
+ * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */input,textarea,select,button,div[contenteditable=true],div[contenteditable=false]{font-family:var(--font-face)}.select2-container-multi .select2-choices .select2-search-field input,.select2-search input,.ui-widget{font-family:var(--font-face) !important}.select2-container.select2-drop-above .select2-choice{background-image:unset !important}select,button:not(.button-vue,[class^=vs__]),input,textarea,div[contenteditable=true],div[contenteditable=false]{width:130px;min-height:var(--default-clickable-area);box-sizing:border-box}button:not(.button-vue):disabled,input:not([type=range]):disabled,textarea:disabled{cursor:default;color:var(--color-text-maxcontrast);border-color:var(--color-border-dark);opacity:.7}input:not([type=range]){outline:none}div.select2-drop .select2-search input,input[type=submit],input[type=button],input[type=reset],button:not(.button-vue,[class^=vs__]),.button,.pager li a{padding:7px 14px;background-color:var(--color-main-background);color:var(--color-main-text);border:1px solid var(--color-border-dark);font-size:var(--default-font-size);outline:none;border-radius:var(--border-radius);cursor:text}div.select2-drop .select2-search input:not(.app-navigation-entry-button),input[type=submit]:not(.app-navigation-entry-button),input[type=button]:not(.app-navigation-entry-button),input[type=reset]:not(.app-navigation-entry-button),button:not(.button-vue,[class^=vs__]):not(.app-navigation-entry-button),.button:not(.app-navigation-entry-button),.pager li a:not(.app-navigation-entry-button){margin:3px;margin-inline-start:0}div.select2-drop .select2-search input:not(:disabled,.primary):not(.app-navigation-entry-button):hover,div.select2-drop .select2-search input:not(:disabled,.primary):not(.app-navigation-entry-button):focus,div.select2-drop .select2-search input:not(:disabled,.primary):not(.app-navigation-entry-button).active,input[type=submit]:not(:disabled,.primary):not(.app-navigation-entry-button):hover,input[type=submit]:not(:disabled,.primary):not(.app-navigation-entry-button):focus,input[type=submit]:not(:disabled,.primary):not(.app-navigation-entry-button).active,input[type=button]:not(:disabled,.primary):not(.app-navigation-entry-button):hover,input[type=button]:not(:disabled,.primary):not(.app-navigation-entry-button):focus,input[type=button]:not(:disabled,.primary):not(.app-navigation-entry-button).active,input[type=reset]:not(:disabled,.primary):not(.app-navigation-entry-button):hover,input[type=reset]:not(:disabled,.primary):not(.app-navigation-entry-button):focus,input[type=reset]:not(:disabled,.primary):not(.app-navigation-entry-button).active,button:not(.button-vue,[class^=vs__]):not(:disabled,.primary):not(.app-navigation-entry-button):hover,button:not(.button-vue,[class^=vs__]):not(:disabled,.primary):not(.app-navigation-entry-button):focus,button:not(.button-vue,[class^=vs__]):not(:disabled,.primary):not(.app-navigation-entry-button).active,.button:not(:disabled,.primary):not(.app-navigation-entry-button):hover,.button:not(:disabled,.primary):not(.app-navigation-entry-button):focus,.button:not(:disabled,.primary):not(.app-navigation-entry-button).active,.pager li a:not(:disabled,.primary):not(.app-navigation-entry-button):hover,.pager li a:not(:disabled,.primary):not(.app-navigation-entry-button):focus,.pager li a:not(:disabled,.primary):not(.app-navigation-entry-button).active{border-color:var(--color-main-text);outline:none}div.select2-drop .select2-search input:not(:disabled,.primary):not(.app-navigation-entry-button):active,input[type=submit]:not(:disabled,.primary):not(.app-navigation-entry-button):active,input[type=button]:not(:disabled,.primary):not(.app-navigation-entry-button):active,input[type=reset]:not(:disabled,.primary):not(.app-navigation-entry-button):active,button:not(.button-vue,[class^=vs__]):not(:disabled,.primary):not(.app-navigation-entry-button):active,.button:not(:disabled,.primary):not(.app-navigation-entry-button):active,.pager li a:not(:disabled,.primary):not(.app-navigation-entry-button):active{outline:none;background-color:var(--color-main-background);color:var(--color-main-text)}div.select2-drop .select2-search input:not(:disabled,.primary):focus-visible,input[type=submit]:not(:disabled,.primary):focus-visible,input[type=button]:not(:disabled,.primary):focus-visible,input[type=reset]:not(:disabled,.primary):focus-visible,button:not(.button-vue,[class^=vs__]):not(:disabled,.primary):focus-visible,.button:not(:disabled,.primary):focus-visible,.pager li a:not(:disabled,.primary):focus-visible{box-shadow:0 0 0 4px var(--color-main-background) !important;outline:2px solid var(--color-main-text) !important}div.select2-drop .select2-search input:disabled,input[type=submit]:disabled,input[type=button]:disabled,input[type=reset]:disabled,button:not(.button-vue,[class^=vs__]):disabled,.button:disabled,.pager li a:disabled{background-color:var(--color-background-dark);color:var(--color-main-text);cursor:default;opacity:.5}div.select2-drop .select2-search input:required,input[type=submit]:required,input[type=button]:required,input[type=reset]:required,button:not(.button-vue,[class^=vs__]):required,.button:required,.pager li a:required{box-shadow:none}div.select2-drop .select2-search input:user-invalid,input[type=submit]:user-invalid,input[type=button]:user-invalid,input[type=reset]:user-invalid,button:not(.button-vue,[class^=vs__]):user-invalid,.button:user-invalid,.pager li a:user-invalid{box-shadow:0 0 0 2px var(--color-error) !important}div.select2-drop .select2-search input.primary,input[type=submit].primary,input[type=button].primary,input[type=reset].primary,button:not(.button-vue,[class^=vs__]).primary,.button.primary,.pager li a.primary{background-color:var(--color-primary-element);border-color:var(--color-primary-element);color:var(--color-primary-element-text);cursor:pointer}#body-login :not(.body-login-container) div.select2-drop .select2-search input.primary,#header div.select2-drop .select2-search input.primary,#body-login :not(.body-login-container) input[type=submit].primary,#header input[type=submit].primary,#body-login :not(.body-login-container) input[type=button].primary,#header input[type=button].primary,#body-login :not(.body-login-container) input[type=reset].primary,#header input[type=reset].primary,#body-login :not(.body-login-container) button:not(.button-vue,[class^=vs__]).primary,#header button:not(.button-vue,[class^=vs__]).primary,#body-login :not(.body-login-container) .button.primary,#header .button.primary,#body-login :not(.body-login-container) .pager li a.primary,#header .pager li a.primary{border-color:var(--color-primary-element-text)}div.select2-drop .select2-search input.primary:not(:disabled):hover,div.select2-drop .select2-search input.primary:not(:disabled):focus,div.select2-drop .select2-search input.primary:not(:disabled):active,input[type=submit].primary:not(:disabled):hover,input[type=submit].primary:not(:disabled):focus,input[type=submit].primary:not(:disabled):active,input[type=button].primary:not(:disabled):hover,input[type=button].primary:not(:disabled):focus,input[type=button].primary:not(:disabled):active,input[type=reset].primary:not(:disabled):hover,input[type=reset].primary:not(:disabled):focus,input[type=reset].primary:not(:disabled):active,button:not(.button-vue,[class^=vs__]).primary:not(:disabled):hover,button:not(.button-vue,[class^=vs__]).primary:not(:disabled):focus,button:not(.button-vue,[class^=vs__]).primary:not(:disabled):active,.button.primary:not(:disabled):hover,.button.primary:not(:disabled):focus,.button.primary:not(:disabled):active,.pager li a.primary:not(:disabled):hover,.pager li a.primary:not(:disabled):focus,.pager li a.primary:not(:disabled):active{background-color:var(--color-primary-element-hover);border-color:var(--color-primary-element-hover)}div.select2-drop .select2-search input.primary:not(:disabled):focus,div.select2-drop .select2-search input.primary:not(:disabled):focus-visible,input[type=submit].primary:not(:disabled):focus,input[type=submit].primary:not(:disabled):focus-visible,input[type=button].primary:not(:disabled):focus,input[type=button].primary:not(:disabled):focus-visible,input[type=reset].primary:not(:disabled):focus,input[type=reset].primary:not(:disabled):focus-visible,button:not(.button-vue,[class^=vs__]).primary:not(:disabled):focus,button:not(.button-vue,[class^=vs__]).primary:not(:disabled):focus-visible,.button.primary:not(:disabled):focus,.button.primary:not(:disabled):focus-visible,.pager li a.primary:not(:disabled):focus,.pager li a.primary:not(:disabled):focus-visible{box-shadow:0 0 0 2px var(--color-main-text)}div.select2-drop .select2-search input.primary:not(:disabled):active,input[type=submit].primary:not(:disabled):active,input[type=button].primary:not(:disabled):active,input[type=reset].primary:not(:disabled):active,button:not(.button-vue,[class^=vs__]).primary:not(:disabled):active,.button.primary:not(:disabled):active,.pager li a.primary:not(:disabled):active{color:var(--color-primary-element-text-dark)}div.select2-drop .select2-search input.primary:disabled,input[type=submit].primary:disabled,input[type=button].primary:disabled,input[type=reset].primary:disabled,button:not(.button-vue,[class^=vs__]).primary:disabled,.button.primary:disabled,.pager li a.primary:disabled{background-color:var(--color-primary-element);color:var(--color-primary-element-text-dark);cursor:default}div[contenteditable=false]{margin:3px;margin-inline-start:0;padding:7px 6px;font-size:13px;border:1px solid var(--color-background-darker);outline:none;border-radius:var(--border-radius);background-color:var(--color-background-dark);color:var(--color-text-maxcontrast);cursor:default;opacity:.5}input:not([type=radio]):not([type=checkbox]):not([type=range]):not([type=submit]):not([type=button]):not([type=reset]):not([type=color]):not([type=file]):not([type=image]){-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield;height:var(--default-clickable-area)}input[type=radio],input[type=checkbox],input[type=file],input[type=image]{height:auto;width:auto}input[type=color]{margin:3px;padding:0 2px;min-height:30px;width:40px;cursor:pointer}input[type=hidden]{height:0;width:0}input[type=time]{width:initial}select,button:not(.button-vue,[class^=vs__]),.button,input[type=button],input[type=submit],input[type=reset]{padding:calc((var(--default-clickable-area) - 1lh)/2) calc(3*var(--default-grid-baseline));font-size:var(--default-font-size);width:auto;min-height:var(--default-clickable-area);cursor:pointer;box-sizing:border-box;color:var(--color-primary-element-light-text);background-color:var(--color-primary-element-light);border:none}select:hover,select:focus,button:not(.button-vue,[class^=vs__]):hover,button:not(.button-vue,[class^=vs__]):focus,.button:hover,.button:focus,input[type=button]:hover,input[type=button]:focus,input[type=submit]:hover,input[type=submit]:focus,input[type=reset]:hover,input[type=reset]:focus{background-color:var(--color-primary-element-light-hover)}select:disabled,button:not(.button-vue,[class^=vs__]):disabled,.button:disabled,input[type=button]:disabled,input[type=submit]:disabled,input[type=reset]:disabled{cursor:default}input:not([type=range],.input-field__input,[type=submit],[type=button],[type=reset],.multiselect__input,.select2-input,.action-input__input,[class^=vs__]),select,div[contenteditable=true],textarea{margin:3px;margin-inline-start:0;padding:0 12px;font-size:var(--default-font-size);background-color:var(--color-main-background);color:var(--color-main-text);border:2px solid var(--color-border-maxcontrast);height:36px;outline:none;border-radius:var(--border-radius-large);text-overflow:ellipsis;cursor:pointer}input:not([type=range],.input-field__input,[type=submit],[type=button],[type=reset],.multiselect__input,.select2-input,.action-input__input,[class^=vs__]):not(:disabled):hover,input:not([type=range],.input-field__input,[type=submit],[type=button],[type=reset],.multiselect__input,.select2-input,.action-input__input,[class^=vs__]):not(:disabled):focus,input:not([type=range],.input-field__input,[type=submit],[type=button],[type=reset],.multiselect__input,.select2-input,.action-input__input,[class^=vs__]):not(:disabled):active,select:not(:disabled):hover,select:not(:disabled):focus,select:not(:disabled):active,div[contenteditable=true]:not(:disabled):hover,div[contenteditable=true]:not(:disabled):focus,div[contenteditable=true]:not(:disabled):active,textarea:not(:disabled):hover,textarea:not(:disabled):focus,textarea:not(:disabled):active{border-color:2px solid var(--color-main-text);box-shadow:0 0 0 2px var(--color-main-background)}input:not([type=range],.input-field__input,[type=submit],[type=button],[type=reset],.multiselect__input,.select2-input,.action-input__input,[class^=vs__]):not(:disabled):focus,select:not(:disabled):focus,div[contenteditable=true]:not(:disabled):focus,textarea:not(:disabled):focus{cursor:text}.multiselect__input,.select2-input{background-color:var(--color-main-background);color:var(--color-main-text)}textarea,div[contenteditable=true]{padding:12px;height:auto}select{background:var(--icon-triangle-s-dark) no-repeat;appearance:none;background-color:var(--color-main-background);padding-inline-end:28px !important}body[dir=ltr] select{background-position:right 8px center}body[dir=rtl] select{background-position:left 8px center}select *,button:not(.button-vue,[class^=vs__]) *,.button *{cursor:pointer}select:disabled *,button:not(.button-vue,[class^=vs__]):disabled *,.button:disabled *{cursor:default}button:not(.button-vue,[class^=vs__]),.button,input[type=button],input[type=submit],input[type=reset]{font-weight:bold;border-radius:var(--border-radius-element)}button:not(.button-vue,[class^=vs__])::-moz-focus-inner,.button::-moz-focus-inner,input[type=button]::-moz-focus-inner,input[type=submit]::-moz-focus-inner,input[type=reset]::-moz-focus-inner{border:0}button:not(.button-vue,[class^=vs__]).error,.button.error,input[type=button].error,input[type=submit].error,input[type=reset].error{background-color:var(--color-error) !important;border-color:var(--color-error) !important;color:#fff !important}button:not(.button-vue,[class^=vs__]).error:hover,.button.error:hover,input[type=button].error:hover,input[type=submit].error:hover,input[type=reset].error:hover{background-color:var(--color-error-hover) !important;border-color:var(--color-main-text) !important}button:not(.button-vue,.action-button,[class^=vs__])>span[class^=icon-],button:not(.button-vue,.action-button,[class^=vs__])>span[class*=" icon-"],.button>span[class^=icon-],.button>span[class*=" icon-"]{display:inline-block;vertical-align:text-bottom;opacity:.5}input[type=text]+.icon-confirm,input[type=password]+.icon-confirm,input[type=email]+.icon-confirm{margin-inline-start:-13px !important;border-inline-start-color:rgba(0,0,0,0) !important;border-radius:0 var(--border-radius-large) var(--border-radius-large) 0 !important;border-width:2px;background-clip:padding-box;background-color:var(--color-main-background) !important;opacity:1;height:var(--default-clickable-area);width:var(--default-clickable-area);padding:7px 6px;cursor:pointer;margin-inline-end:0}input[type=text]+.icon-confirm:disabled,input[type=password]+.icon-confirm:disabled,input[type=email]+.icon-confirm:disabled{cursor:default;background-image:var(--icon-confirm-fade-dark)}input[type=text]:not(:active):not(:hover):not(:focus):invalid+.icon-confirm,input[type=password]:not(:active):not(:hover):not(:focus):invalid+.icon-confirm,input[type=email]:not(:active):not(:hover):not(:focus):invalid+.icon-confirm{border-color:var(--color-error)}input[type=text]:not(:active):not(:hover):not(:focus)+.icon-confirm:active,input[type=text]:not(:active):not(:hover):not(:focus)+.icon-confirm:hover,input[type=text]:not(:active):not(:hover):not(:focus)+.icon-confirm:focus,input[type=password]:not(:active):not(:hover):not(:focus)+.icon-confirm:active,input[type=password]:not(:active):not(:hover):not(:focus)+.icon-confirm:hover,input[type=password]:not(:active):not(:hover):not(:focus)+.icon-confirm:focus,input[type=email]:not(:active):not(:hover):not(:focus)+.icon-confirm:active,input[type=email]:not(:active):not(:hover):not(:focus)+.icon-confirm:hover,input[type=email]:not(:active):not(:hover):not(:focus)+.icon-confirm:focus{border-color:var(--color-primary-element) !important;border-radius:var(--border-radius) !important}input[type=text]:not(:active):not(:hover):not(:focus)+.icon-confirm:active:disabled,input[type=text]:not(:active):not(:hover):not(:focus)+.icon-confirm:hover:disabled,input[type=text]:not(:active):not(:hover):not(:focus)+.icon-confirm:focus:disabled,input[type=password]:not(:active):not(:hover):not(:focus)+.icon-confirm:active:disabled,input[type=password]:not(:active):not(:hover):not(:focus)+.icon-confirm:hover:disabled,input[type=password]:not(:active):not(:hover):not(:focus)+.icon-confirm:focus:disabled,input[type=email]:not(:active):not(:hover):not(:focus)+.icon-confirm:active:disabled,input[type=email]:not(:active):not(:hover):not(:focus)+.icon-confirm:hover:disabled,input[type=email]:not(:active):not(:hover):not(:focus)+.icon-confirm:focus:disabled{border-color:var(--color-background-darker) !important}input[type=text]:active+.icon-confirm,input[type=text]:hover+.icon-confirm,input[type=text]:focus+.icon-confirm,input[type=password]:active+.icon-confirm,input[type=password]:hover+.icon-confirm,input[type=password]:focus+.icon-confirm,input[type=email]:active+.icon-confirm,input[type=email]:hover+.icon-confirm,input[type=email]:focus+.icon-confirm{border-color:var(--color-primary-element) !important;border-inline-start-color:rgba(0,0,0,0) !important;z-index:2}button img,.button img{cursor:pointer}select,.button.multiselect{font-weight:normal}input[type=checkbox].radio,input[type=checkbox].checkbox,input[type=radio].radio,input[type=radio].checkbox{position:absolute;inset-inline-start:-10000px;top:auto;width:1px;height:1px;overflow:hidden}input[type=checkbox].radio+label,input[type=checkbox].checkbox+label,input[type=radio].radio+label,input[type=radio].checkbox+label{user-select:none}input[type=checkbox].radio:disabled+label,input[type=checkbox].radio:disabled+label:before,input[type=checkbox].checkbox:disabled+label,input[type=checkbox].checkbox:disabled+label:before,input[type=radio].radio:disabled+label,input[type=radio].radio:disabled+label:before,input[type=radio].checkbox:disabled+label,input[type=radio].checkbox:disabled+label:before{cursor:default}input[type=checkbox].radio+label:before,input[type=checkbox].checkbox+label:before,input[type=radio].radio+label:before,input[type=radio].checkbox+label:before{content:"";display:inline-block;height:14px;width:14px;vertical-align:middle;border-radius:50%;margin:0 3px;margin-inline:3px 6px;border:1px solid var(--color-text-maxcontrast)}input[type=checkbox].radio:not(:disabled):not(:checked)+label:hover:before,input[type=checkbox].radio:focus+label:before,input[type=checkbox].checkbox:not(:disabled):not(:checked)+label:hover:before,input[type=checkbox].checkbox:focus+label:before,input[type=radio].radio:not(:disabled):not(:checked)+label:hover:before,input[type=radio].radio:focus+label:before,input[type=radio].checkbox:not(:disabled):not(:checked)+label:hover:before,input[type=radio].checkbox:focus+label:before{border-color:var(--color-primary-element)}input[type=checkbox].radio:focus-visible+label,input[type=checkbox].checkbox:focus-visible+label,input[type=radio].radio:focus-visible+label,input[type=radio].checkbox:focus-visible+label{outline-style:solid;outline-color:var(--color-main-text);outline-width:1px;outline-offset:2px}input[type=checkbox].radio:checked+label:before,input[type=checkbox].radio.checkbox:indeterminate+label:before,input[type=checkbox].checkbox:checked+label:before,input[type=checkbox].checkbox.checkbox:indeterminate+label:before,input[type=radio].radio:checked+label:before,input[type=radio].radio.checkbox:indeterminate+label:before,input[type=radio].checkbox:checked+label:before,input[type=radio].checkbox.checkbox:indeterminate+label:before{box-shadow:inset 0px 0px 0px 2px var(--color-main-background);background-color:var(--color-primary-element);border-color:var(--color-primary-element)}input[type=checkbox].radio:disabled+label:before,input[type=checkbox].checkbox:disabled+label:before,input[type=radio].radio:disabled+label:before,input[type=radio].checkbox:disabled+label:before{border:1px solid var(--color-text-maxcontrast);background-color:var(--color-text-maxcontrast) !important}input[type=checkbox].radio:checked:disabled+label:before,input[type=checkbox].checkbox:checked:disabled+label:before,input[type=radio].radio:checked:disabled+label:before,input[type=radio].checkbox:checked:disabled+label:before{background-color:var(--color-text-maxcontrast)}input[type=checkbox].radio+label~em,input[type=checkbox].checkbox+label~em,input[type=radio].radio+label~em,input[type=radio].checkbox+label~em{display:inline-block;margin-inline-start:25px}input[type=checkbox].radio+label~em:last-of-type,input[type=checkbox].checkbox+label~em:last-of-type,input[type=radio].radio+label~em:last-of-type,input[type=radio].checkbox+label~em:last-of-type{margin-bottom:14px}input[type=checkbox].checkbox+label:before,input[type=radio].checkbox+label:before{border-radius:1px;height:14px;width:14px;box-shadow:none !important;background-position:center}input[type=checkbox].checkbox:checked+label:before,input[type=radio].checkbox:checked+label:before{background-image:url("../img/actions/checkbox-mark.svg")}input[type=checkbox].checkbox:indeterminate+label:before,input[type=radio].checkbox:indeterminate+label:before{background-image:url("../img/actions/checkbox-mixed.svg")}input[type=checkbox].radio--white+label:before,input[type=checkbox].radio--white:focus+label:before,input[type=checkbox].checkbox--white+label:before,input[type=checkbox].checkbox--white:focus+label:before,input[type=radio].radio--white+label:before,input[type=radio].radio--white:focus+label:before,input[type=radio].checkbox--white+label:before,input[type=radio].checkbox--white:focus+label:before{border-color:hsl(0,0%,73%)}input[type=checkbox].radio--white:not(:disabled):not(:checked)+label:hover:before,input[type=checkbox].checkbox--white:not(:disabled):not(:checked)+label:hover:before,input[type=radio].radio--white:not(:disabled):not(:checked)+label:hover:before,input[type=radio].checkbox--white:not(:disabled):not(:checked)+label:hover:before{border-color:#fff}input[type=checkbox].radio--white:checked+label:before,input[type=checkbox].checkbox--white:checked+label:before,input[type=radio].radio--white:checked+label:before,input[type=radio].checkbox--white:checked+label:before{box-shadow:inset 0px 0px 0px 2px var(--color-main-background);background-color:hsl(0,0%,86%);border-color:hsl(0,0%,86%)}input[type=checkbox].radio--white:disabled+label:before,input[type=checkbox].checkbox--white:disabled+label:before,input[type=radio].radio--white:disabled+label:before,input[type=radio].checkbox--white:disabled+label:before{background-color:hsl(0,0%,73%) !important;border-color:hsla(0,0%,100%,.4) !important}input[type=checkbox].radio--white:checked:disabled+label:before,input[type=checkbox].checkbox--white:checked:disabled+label:before,input[type=radio].radio--white:checked:disabled+label:before,input[type=radio].checkbox--white:checked:disabled+label:before{box-shadow:inset 0px 0px 0px 2px var(--color-main-background);border-color:hsla(0,0%,100%,.4) !important;background-color:hsl(0,0%,73%)}input[type=checkbox].checkbox--white:checked+label:before,input[type=checkbox].checkbox--white:indeterminate+label:before,input[type=radio].checkbox--white:checked+label:before,input[type=radio].checkbox--white:indeterminate+label:before{background-color:rgba(0,0,0,0) !important;border-color:#fff !important;background-image:url("../img/actions/checkbox-mark-white.svg")}input[type=checkbox].checkbox--white:indeterminate+label:before,input[type=radio].checkbox--white:indeterminate+label:before{background-image:url("../img/actions/checkbox-mixed-white.svg")}input[type=checkbox].checkbox--white:disabled+label:before,input[type=radio].checkbox--white:disabled+label:before{opacity:.7}div.select2-drop{margin-top:-2px;background-color:var(--color-main-background)}div.select2-drop.select2-drop-active{border-color:var(--color-border-dark)}div.select2-drop .avatar{display:inline-block;margin-inline-end:8px;vertical-align:middle}div.select2-drop .avatar img{cursor:pointer}div.select2-drop .select2-search input{min-height:auto;background:var(--icon-search-dark) no-repeat !important;background-origin:content-box !important}div.select2-drop .select2-results{max-height:250px;margin:0;padding:0}div.select2-drop .select2-results .select2-result-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}div.select2-drop .select2-results .select2-result-label span{cursor:pointer}div.select2-drop .select2-results .select2-result-label span em{cursor:inherit;background:unset}div.select2-drop .select2-results .select2-result,div.select2-drop .select2-results .select2-no-results,div.select2-drop .select2-results .select2-searching{position:relative;display:list-item;padding:12px;background-color:rgba(0,0,0,0);cursor:pointer;color:var(--color-text-maxcontrast)}div.select2-drop .select2-results .select2-result.select2-selected{background-color:var(--color-background-dark)}div.select2-drop .select2-results .select2-highlighted{background-color:var(--color-background-dark);color:var(--color-main-text)}body[dir=ltr] div.select2-drop .select2-search input{background-position:right center !important}body[dir=rtl] div.select2-drop .select2-search input{background-position:left center !important}.select2-chosen .avatar,.select2-chosen .avatar img,#select2-drop .avatar,#select2-drop .avatar img{cursor:pointer}div.select2-container-multi .select2-choices,div.select2-container-multi.select2-container-active .select2-choices{box-shadow:none;white-space:nowrap;text-overflow:ellipsis;background:var(--color-main-background);color:var(--color-text-maxcontrast) !important;box-sizing:content-box;border-radius:var(--border-radius-large);border:2px solid var(--color-border-dark);margin:0;padding:6px;min-height:44px}div.select2-container-multi .select2-choices:focus-within,div.select2-container-multi.select2-container-active .select2-choices:focus-within{border-color:var(--color-primary-element)}div.select2-container-multi .select2-choices .select2-search-choice,div.select2-container-multi.select2-container-active .select2-choices .select2-search-choice{line-height:20px;padding-inline-start:5px}div.select2-container-multi .select2-choices .select2-search-choice.select2-search-choice-focus,div.select2-container-multi .select2-choices .select2-search-choice:hover,div.select2-container-multi .select2-choices .select2-search-choice:active,div.select2-container-multi .select2-choices .select2-search-choice,div.select2-container-multi.select2-container-active .select2-choices .select2-search-choice.select2-search-choice-focus,div.select2-container-multi.select2-container-active .select2-choices .select2-search-choice:hover,div.select2-container-multi.select2-container-active .select2-choices .select2-search-choice:active,div.select2-container-multi.select2-container-active .select2-choices .select2-search-choice{background-image:none;background-color:var(--color-main-background);color:var(--color-text-maxcontrast);border:1px solid var(--color-border-dark)}div.select2-container-multi .select2-choices .select2-search-choice .select2-search-choice-close,div.select2-container-multi.select2-container-active .select2-choices .select2-search-choice .select2-search-choice-close{display:none}div.select2-container-multi .select2-choices .select2-search-field input,div.select2-container-multi.select2-container-active .select2-choices .select2-search-field input{line-height:20px;min-height:28px;max-height:28px;color:var(--color-main-text)}div.select2-container-multi .select2-choices .select2-search-field input.select2-active,div.select2-container-multi.select2-container-active .select2-choices .select2-search-field input.select2-active{background:none !important}div.select2-container{margin:3px;margin-inline-start:0}div.select2-container.select2-container-multi .select2-choices{display:flex;flex-wrap:wrap}div.select2-container.select2-container-multi .select2-choices li{float:none}div.select2-container a.select2-choice{box-shadow:none;white-space:nowrap;text-overflow:ellipsis;background:var(--color-main-background);color:var(--color-text-maxcontrast) !important;box-sizing:content-box;border-radius:var(--border-radius-large);border:2px solid var(--color-border-dark);margin:0;padding:6px 12px;min-height:44px}div.select2-container a.select2-choice:focus-within{border-color:var(--color-primary-element)}div.select2-container a.select2-choice .select2-search-choice{line-height:20px;padding-inline-start:5px;background-image:none;background-color:var(--color-background-dark);border-color:var(--color-background-dark)}div.select2-container a.select2-choice .select2-search-choice .select2-search-choice-close{display:none}div.select2-container a.select2-choice .select2-search-choice.select2-search-choice-focus,div.select2-container a.select2-choice .select2-search-choice:hover{background-color:var(--color-border);border-color:var(--color-border)}div.select2-container a.select2-choice .select2-arrow{background:none;border-radius:0;border:none}div.select2-container a.select2-choice .select2-arrow b{background:var(--icon-triangle-s-dark) no-repeat center !important;opacity:.5}div.select2-container a.select2-choice:hover .select2-arrow b,div.select2-container a.select2-choice:focus .select2-arrow b,div.select2-container a.select2-choice:active .select2-arrow b{opacity:.7}div.select2-container a.select2-choice .select2-search-field input{line-height:20px}.v-select{margin:3px;margin-inline-start:0;display:inline-block}.v-select .dropdown-toggle{display:flex !important;flex-wrap:wrap}.v-select .dropdown-toggle .selected-tag{line-height:20px;padding-inline-start:5px;background-image:none;background-color:var(--color-main-background);color:var(--color-text-maxcontrast);border:1px solid var(--color-border-dark);display:inline-flex;align-items:center}.v-select .dropdown-toggle .selected-tag .close{margin-inline-start:3px}.v-select .dropdown-menu{padding:0}.v-select .dropdown-menu li{padding:5px;position:relative;display:list-item;background-color:rgba(0,0,0,0);cursor:pointer;color:var(--color-text-maxcontrast)}.v-select .dropdown-menu li a{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;height:25px;padding-block:3px 4px;padding-inline:2px 7px;margin:0;cursor:pointer;min-height:1em;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:inline-flex;align-items:center;background-color:rgba(0,0,0,0) !important;color:inherit !important}.v-select .dropdown-menu li a::before{content:" ";background-image:var(--icon-checkmark-dark);background-repeat:no-repeat;background-position:center;min-width:16px;min-height:16px;display:block;opacity:.5;margin-inline-end:5px;visibility:hidden}.v-select .dropdown-menu li.highlight{color:var(--color-main-text)}.v-select .dropdown-menu li.active>a{background-color:var(--color-background-dark);color:var(--color-main-text)}.v-select .dropdown-menu li.active>a::before{visibility:visible}progress:not(.vue){display:block;width:100%;padding:0;border:0 none;background-color:var(--color-background-dark);border-radius:var(--border-radius);flex-basis:100%;height:5px;overflow:hidden}progress:not(.vue).warn::-moz-progress-bar{background:var(--color-error)}progress:not(.vue).warn::-webkit-progress-value{background:var(--color-error)}progress:not(.vue)::-webkit-progress-bar{background:rgba(0,0,0,0)}progress:not(.vue)::-moz-progress-bar{border-radius:var(--border-radius);background:var(--color-primary-element);transition:250ms all ease-in-out}progress:not(.vue)::-webkit-progress-value{border-radius:var(--border-radius);background:var(--color-primary-element);transition:250ms all ease-in-out}@keyframes shake{10%,90%{transform:translate(-1px)}20%,80%{transform:translate(2px)}30%,50%,70%{transform:translate(-4px)}40%,60%{transform:translate(4px)}}.shake{animation-name:shake;animation-duration:.7s;animation-timing-function:ease-out}label.infield{position:absolute;inset-inline-start:-10000px;top:-10000px;width:1px;height:1px;overflow:hidden}::placeholder{color:var(--color-text-maxcontrast);font-size:var(--default-font-size)}::-ms-input-placeholder{color:var(--color-text-maxcontrast);font-size:var(--default-font-size)}::-webkit-input-placeholder{color:var(--color-text-maxcontrast);font-size:var(--default-font-size)}/*# sourceMappingURL=inputs.css.map */
diff --git a/core/css/inputs.css.map b/core/css/inputs.css.map
new file mode 100644
index 00000000000..c0f372b1aa0
--- /dev/null
+++ b/core/css/inputs.css.map
@@ -0,0 +1 @@
+{"version":3,"sourceRoot":"","sources":["inputs.scss","variables.scss","functions.scss"],"names":[],"mappings":"AAAA;AAAA;AAAA;AAAA;AAAA,GCEA;AAAA;AAAA;AAAA,GCFA;AAAA;AAAA;AAAA,GFUA,kFACC,6BAGD,uGACC,wCAGD,sDACC,kCAMD,iHAUC,YACA,yCACA,sBAYA,oFACC,eACA,oCACA,sCACA,QA/BiB,GAmCnB,wBACC,aAID,yJAUC,iBACA,8CACA,6BACA,0CACA,mCACA,aACA,mCACA,YACA,uYACC,WACA,sBAOC,kxDAIC,oCACA,aAED,gmBACC,aACA,8CACA,6BAGF,maACC,6DACA,oDAGF,wNACC,8CACA,6BACA,eACA,WAED,wNACC,gBAED,oPACC,mDAGD,iNACC,8CACA,0CACA,wCACA,eAGA,kvBAEC,+CAIA,mjCAGC,oDACA,gDAED,gwBAEC,4CAED,2WACC,6CAGF,gRAEC,8CACA,6CACA,eAKH,2BACC,WACA,sBACA,gBACA,eACA,gDACA,aACA,mCAEA,8CACA,oCACA,eACA,WAKA,4KACC,6BACA,0BACA,qBAEA,qCAED,0EAIC,YACA,WAID,kBACC,WACA,cACA,gBACA,WACA,eAED,mBACC,SACA,QAED,iBACC,cAKF,6GASC,2FACA,mCACA,WACA,yCACA,eACA,sBACA,8CACA,oDACA,YAEA,kSAEC,0DAGD,mKACC,eAIF,qMAcC,WACA,sBACA,eACA,mCACA,8CACA,6BACA,iDACA,YACA,aACA,yCACA,uBACA,eACA,+0BACC,8CACA,kDAED,yRACC,YAIF,mCACC,8CACA,6BAGD,mCACC,aACA,YAID,OACC,iDACA,gBACA,8CACA,mCAGD,qBACC,qCAGD,qBACC,oCASA,2DACC,eAIA,sFACC,eAMH,sGAQC,iBACA,2CAGA,gMACC,SAGD,oIACC,+CACA,2CACA,sBACA,kKACC,qDACA,+CAaD,4MAEC,qBACA,2BACA,WASF,kGACC,qCACA,mDACA,mFACA,iBACA,4BAEA,yDACA,UACA,qCACA,oCACA,gBACA,eACA,oBACA,6HACC,eEzUF,+CFiVE,yOACC,gCAID,4qBAGC,qDACA,8CACA,6vBACC,uDAQH,+VACC,qDACA,mDAEA,UAOH,uBAEC,eAGD,2BAEC,mBASA,4GAEC,kBACA,4BACA,SACA,UACA,WACA,gBACA,oIACC,iBAED,4WAEC,eAED,gKACC,WACA,qBACA,OAvBmB,KAwBnB,MAxBmB,KAyBnB,sBACA,kBACA,aACA,sBACA,+CAED,oeAEC,0CAED,4LACC,oBACA,qCACA,kBACA,mBAED,4bAIC,8DACA,8CACA,0CAED,oMACC,+CACA,0DAED,oOACC,+CAID,gJACC,qBACA,yBAED,oMACC,cA/DmB,KAmEpB,mFACC,kBACA,OArEmB,KAsEnB,MAtEmB,KAuEnB,2BACA,2BAED,mGACC,yDAED,+GACC,0DAOD,gZAEC,2BAED,wUACC,aAzF0B,KA2F3B,4NACC,8DACA,+BACA,2BAED,gOACC,0CACA,2CAED,gQACC,8DACA,2CACA,+BAID,8OAEC,0CACA,6BACA,+DAED,6HACC,gEAED,mHACC,WAMH,iBACC,gBACA,8CACA,qCACC,sCAED,yBACC,qBACA,sBACA,sBACA,6BACC,eAGF,uCACC,gBACA,wDACA,yCAED,kCACC,iBACA,SACA,UACA,wDACC,mBACA,gBACA,uBACA,6DACC,eACA,gEACC,eACA,iBAIH,6JAGC,kBACA,kBACA,aACA,+BACA,eACA,oCAGA,mEACC,8CAGF,uDACE,8CACA,6BAKJ,qDACC,4CAGD,qDACC,2CAKA,oGAEC,eAKD,mHAEC,gBACA,mBACA,uBACA,wCACA,+CACA,uBACA,yCACA,0CACA,SACA,YACA,gBACA,6IACC,0CAED,iKACC,iBACA,yBACA,stBAIC,sBACA,8CACA,oCACA,0CAED,2NACC,aAGF,2KACC,iBACA,gBACA,gBACA,6BACA,yMACC,2BAMJ,sBACC,WACA,sBACA,+DACC,aACA,eACA,kEACC,WAGF,uCACC,gBACA,mBACA,uBACA,wCACA,+CACA,uBACA,yCACA,0CACA,SACA,iBACA,gBACA,oDACC,0CAED,8DACC,iBACA,yBACA,sBACA,8CACA,0CACA,2FACC,aAED,8JAEC,qCACA,iCAGF,sDACC,gBACA,gBACA,YACA,wDACC,mEACA,WAGF,2LAGC,WAED,mEACC,iBAMH,UACC,WACA,sBACA,qBACA,2BACC,wBACA,eACA,yCACC,iBACA,yBACA,sBACA,8CACA,oCACA,0CACA,oBACA,mBACA,gDACC,wBAIH,yBACC,UACA,4BACC,YACA,kBACA,kBACA,+BACA,eACA,oCACA,8BACC,mBACA,gBACA,uBACA,YACA,sBACA,uBACA,SACA,eACA,eACA,2BACA,yBACA,sBACA,qBACA,iBACA,oBACA,mBACA,0CACA,yBACA,sCACC,YACA,4CACA,4BACA,2BACA,eACA,gBACA,cACA,WACA,sBACA,kBAGF,sCACC,6BAED,qCACC,8CACA,6BACA,6CACC,mBAQL,mBACC,cACA,WACA,UACA,cACA,8CACA,mCACA,gBACA,WACA,gBAEC,2CACC,8BAED,gDACC,8BAGF,yCACC,yBAED,sCACC,mCACA,wCACA,iCAED,2CACC,mCACA,wCACA,iCAKF,iBACC,QAEC,0BAED,QAEC,yBAED,YAGC,0BAED,QAEC,0BAIF,OACC,qBACA,uBACA,mCAKD,cACC,kBACA,4BACA,aACA,UACA,WACA,gBAWD,cAJC,oCACA,mCAOD,wBARC,oCACA,mCAWD,4BAZC,oCACA","file":"inputs.css"} \ No newline at end of file
diff --git a/core/css/inputs.css.map.license b/core/css/inputs.css.map.license
new file mode 100644
index 00000000000..82ac7cce426
--- /dev/null
+++ b/core/css/inputs.css.map.license
@@ -0,0 +1,3 @@
+SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
+SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/core/css/inputs.scss b/core/css/inputs.scss
index 4f73696d264..27136b69ad4 100644
--- a/core/css/inputs.scss
+++ b/core/css/inputs.scss
@@ -1,134 +1,170 @@
-/**
- * @copyright Copyright (c) 2016, John Molakvoæ <skjnldsv@protonmail.com>
- * @copyright Copyright (c) 2016, Morris Jobke <hey@morrisjobke.de>
- * @copyright Copyright (c) 2016, Joas Schilling <coding@schilljs.com>
- * @copyright Copyright (c) 2016, Julius Haertl <jus@bitgrid.net>
- * @copyright Copyright (c) 2016, jowi <sjw@gmx.ch>
- * @copyright Copyright (c) 2015, Joas Schilling <nickvergessen@owncloud.com>
- * @copyright Copyright (c) 2015, Hendrik Leppelsack <hendrik@leppelsack.de>
- * @copyright Copyright (c) 2014-2017, Jan-Christoph Borchardt <hey@jancborchardt.net>
- *
- * @license GNU AGPL version 3 or any later version
- *
+/*!
+ * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
+@use 'variables';
+@use 'sass:color';
+@use 'functions';
/* Specifically override browser styles */
input, textarea, select, button, div[contenteditable=true], div[contenteditable=false] {
font-family: var(--font-face);
}
+
.select2-container-multi .select2-choices .select2-search-field input, .select2-search input, .ui-widget {
font-family: var(--font-face) !important;
}
-$default-height: 34px;
+.select2-container.select2-drop-above .select2-choice {
+ background-image: unset !important;
+}
+
+$opacity-disabled: .7;
/* Simple selector to allow easy overriding */
select,
-button,
+button:not(
+ .button-vue,
+ /* "vs__" class prefix is used in the vue-select lib */
+ [class^="vs__"]
+),
input,
textarea,
div[contenteditable=true],
div[contenteditable=false] {
width: 130px;
- min-height: $default-height;
+ min-height: var(--default-clickable-area);
box-sizing: border-box;
}
/**
- * color-text-lighter normal state
- * color-text-lighter active state
- * color-text-maxcontrast disabled state
+ * color-main-text normal state
+ * color-main-text active state
+ * color-text-maxcontrast disabled state
*/
+button:not(.button-vue),
+input:not([type='range']),
+textarea {
+ &:disabled {
+ cursor: default;
+ color: var(--color-text-maxcontrast);
+ border-color: var(--color-border-dark);
+ opacity: $opacity-disabled;
+ }
+}
+
+input:not([type="range"]) {
+ outline: none;
+}
+
/* Default global values */
div.select2-drop .select2-search input, // TODO: REMOVE WHEN DROPPING SELECT2
-select,
-button, .button,
-input:not([type='range']),
-textarea,
-div[contenteditable=true],
+input[type='submit'],
+input[type='button'],
+input[type='reset'],
+button:not(
+ .button-vue,
+ [class^="vs__"]
+),
+.button,
.pager li a {
- margin: 3px 3px 3px 0;
- padding: 7px 6px;
- font-size: 13px;
+ padding: 7px 14px;
background-color: var(--color-main-background);
color: var(--color-main-text);
border: 1px solid var(--color-border-dark);
+ font-size: var(--default-font-size);
outline: none;
border-radius: var(--border-radius);
cursor: text;
- &:not(:disabled):not(.primary) {
- &:hover,
- &:focus,
- &.active {
- /* active class used for multiselect */
- border-color: var(--color-primary-element);
- outline: none;
+ &:not(.app-navigation-entry-button) {
+ margin: 3px;
+ margin-inline-start: 0;
+ }
+ &:not(
+ :disabled,
+ .primary
+ ) {
+ &:not(.app-navigation-entry-button) {
+ &:hover,
+ &:focus,
+ &.active {
+ /* active class used for multiselect */
+ border-color: var(--color-main-text);
+ outline: none;
+ }
+ &:active {
+ outline: none;
+ background-color: var(--color-main-background);
+ color: var(--color-main-text);
+ }
}
- &:active {
- outline: none;
- background-color: var(--color-main-background);
- color: var(--color-text-light);
+ &:focus-visible {
+ box-shadow: 0 0 0 4px var(--color-main-background) !important;
+ outline: 2px solid var(--color-main-text) !important;
}
}
&:disabled {
background-color: var(--color-background-dark);
- color: var(--color-text-maxcontrast);
+ color: var(--color-main-text);
cursor: default;
opacity: 0.5;
}
&:required {
box-shadow: none;
}
- &:invalid {
- box-shadow: none !important;
- border-color: var(--color-error);
+ &:user-invalid {
+ box-shadow: 0 0 0 2px var(--color-error) !important;
}
/* Primary action button, use sparingly */
&.primary {
background-color: var(--color-primary-element);
border-color: var(--color-primary-element);
- color: var(--color-primary-text);
+ color: var(--color-primary-element-text);
cursor: pointer;
/* Apply border to primary button if on log in page (and not in a dark container) or if in header */
#body-login :not(.body-login-container) &,
#header & {
- border-color: var(--color-primary-text);
+ border-color: var(--color-primary-element-text);
}
&:not(:disabled) {
&:hover,
&:focus,
&:active {
- background-color: var(--color-primary-element-light);
- border-color: var(--color-primary-element-light);
+ background-color: var(--color-primary-element-hover);
+ border-color: var(--color-primary-element-hover);
+ }
+ &:focus,
+ &:focus-visible {
+ box-shadow: 0 0 0 2px var(--color-main-text);
}
&:active {
- color: var(--color-primary-text-dark);
+ color: var(--color-primary-element-text-dark);
}
}
&:disabled {
// opacity is already defined to .5 if disabled
background-color: var(--color-primary-element);
- color: var(--color-primary-text-dark);
+ color: var(--color-primary-element-text-dark);
cursor: default;
}
}
}
div[contenteditable=false] {
- margin: 3px 3px 3px 0;
+ margin: 3px;
+ margin-inline-start: 0;
padding: 7px 6px;
font-size: 13px;
- background-color: var(--color-main-background);
- color: var(--color-text-lighter);
border: 1px solid var(--color-background-darker);
outline: none;
border-radius: var(--border-radius);
background-color: var(--color-background-dark);
- color: var(--color-text-lighter);
+ color: var(--color-text-maxcontrast);
cursor: default;
opacity: 0.5;
}
@@ -138,8 +174,9 @@ input {
&:not([type='radio']):not([type='checkbox']):not([type='range']):not([type='submit']):not([type='button']):not([type='reset']):not([type='color']):not([type='file']):not([type='image']) {
-webkit-appearance: textfield;
-moz-appearance: textfield;
+ appearance: textfield;
// force height for inline elements like inputs (not textarea, contenteditable...)
- height: $default-height;
+ height: var(--default-clickable-area);
}
&[type='radio'],
&[type='checkbox'],
@@ -168,23 +205,101 @@ input {
/* 'Click' inputs */
select,
-button, .button,
+button:not(
+ .button-vue,
+ [class^="vs__"]
+),
+.button,
input[type='button'],
input[type='submit'],
input[type='reset'] {
- padding: 6px 16px;
+ padding: calc((var(--default-clickable-area) - 1lh) / 2) calc(3 * var(--default-grid-baseline));
+ font-size: var(--default-font-size);
width: auto;
- min-height: $default-height;
+ min-height: var(--default-clickable-area);
cursor: pointer;
box-sizing: border-box;
- background-color: var(--color-background-dark);
+ color: var(--color-primary-element-light-text);
+ background-color: var(--color-primary-element-light);
+ border: none;
+
+ &:hover,
+ &:focus {
+ background-color: var(--color-primary-element-light-hover);
+ }
&:disabled {
cursor: default;
}
}
+
+input:not(
+ [type='range'],
+ .input-field__input,
+ [type='submit'],
+ [type='button'],
+ [type='reset'],
+ .multiselect__input,
+ .select2-input,
+ .action-input__input,
+ [class^="vs__"]
+),
+select,
+div[contenteditable=true],
+textarea {
+ margin: 3px;
+ margin-inline-start: 0;
+ padding: 0 12px;
+ font-size: var(--default-font-size);
+ background-color: var(--color-main-background);
+ color: var(--color-main-text);
+ border: 2px solid var(--color-border-maxcontrast);
+ height: 36px;
+ outline: none;
+ border-radius: var(--border-radius-large);
+ text-overflow: ellipsis;
+ cursor: pointer;
+ &:not(:disabled):hover, &:not(:disabled):focus, &:not(:disabled):active {
+ border-color: 2px solid var(--color-main-text);
+ box-shadow: 0 0 0 2px var(--color-main-background);
+ }
+ &:not(:disabled):focus {
+ cursor: text;
+ }
+}
+
+.multiselect__input, .select2-input {
+ background-color: var(--color-main-background);
+ color: var(--color-main-text);
+}
+
+textarea, div[contenteditable=true] {
+ padding: 12px;
+ height: auto;
+}
+
+/* Override the ugly select arrow */
+select {
+ background: var(--icon-triangle-s-dark) no-repeat;
+ appearance: none;
+ background-color: var(--color-main-background);
+ padding-inline-end: 28px !important;
+}
+
+body[dir='ltr'] select {
+ background-position: right 8px center;
+}
+
+body[dir='rtl'] select {
+ background-position: left 8px center;
+}
+
select,
-button, .button {
+button:not(
+ .button-vue,
+ [class^="vs__"]
+),
+.button {
* {
cursor: pointer;
}
@@ -197,12 +312,16 @@ button, .button {
}
/* Buttons */
-button, .button,
+button:not(
+ .button-vue,
+ [class^="vs__"]
+),
+.button,
input[type='button'],
input[type='submit'],
input[type='reset'] {
font-weight: bold;
- border-radius: var(--border-radius-pill);
+ border-radius: var(--border-radius-element);
/* Get rid of the inside dotted line in Firefox */
&::-moz-focus-inner {
@@ -213,9 +332,19 @@ input[type='reset'] {
background-color: var(--color-error) !important;
border-color: var(--color-error) !important;
color: #fff !important;
+ &:hover{
+ background-color: var(--color-error-hover) !important;
+ border-color: var(--color-main-text) !important;
+ }
}
}
-button, .button {
+
+button:not(
+ .button-vue,
+ .action-button,
+ [class^="vs__"]
+),
+.button {
> span {
/* icon position inside buttons */
&[class^='icon-'],
@@ -227,94 +356,59 @@ button, .button {
}
}
-textarea, div[contenteditable=true] {
- color: var(--color-main-text);
- cursor: text;
- font-family: inherit;
- height: auto;
- &:not(:disabled) {
- &:active,
- &:hover,
- &:focus {
- border-color: var(--color-background-darker) !important;
- background-color: var(--color-main-background) !important;
- }
- }
-}
-
-div[contenteditable=false] {
- color: var(--color-text-lighter);
- font-family: inherit;
- height: auto;
-}
-
-/* Override the ugly select arrow */
-select {
- -webkit-appearance: none;
- -moz-appearance: none;
- appearance: none;
- background: var(--icon-triangle-s-000) no-repeat right 4px center;
- background-color: inherit;
- outline: 0;
- padding-right: 24px !important;
- // force height for inline elements like inputs (not textarea, contenteditable...)
- height: $default-height;
-}
-
/* Confirm inputs */
-input {
- &[type='text'],
- &[type='password'],
- &[type='email'] {
- + .icon-confirm {
- margin-left: -8px !important;
- border-left-color: transparent !important;
- border-radius: 0 var(--border-radius) var(--border-radius) 0 !important;
- background-clip: padding-box;
- /* Avoid background under border */
- background-color: var(--color-main-background) !important;
- opacity: 1;
- height: $default-height;
- width: $default-height;
- padding: 7px 6px;
- cursor: pointer;
- margin-right: 0;
- &:disabled {
- cursor: default;
- @include icon-color('confirm-fade', 'actions', $color-black, 2, true);
- }
+input[type='text'],
+input[type='password'],
+input[type='email'] {
+ + .icon-confirm {
+ margin-inline-start: -13px !important;
+ border-inline-start-color: transparent !important;
+ border-radius: 0 var(--border-radius-large) var(--border-radius-large) 0 !important;
+ border-width: 2px;
+ background-clip: padding-box;
+ /* Avoid background under border */
+ background-color: var(--color-main-background) !important;
+ opacity: 1;
+ height: var(--default-clickable-area);
+ width: var(--default-clickable-area);
+ padding: 7px 6px;
+ cursor: pointer;
+ margin-inline-end: 0;
+ &:disabled {
+ cursor: default;
+ @include functions.icon-color('confirm-fade', 'actions', variables.$color-black, 2, true);
}
+ }
- /* only show confirm borders if input is not focused */
- &:not(:active):not(:hover):not(:focus){
- &:invalid {
- + .icon-confirm {
- border-color: var(--color-error);
- }
- }
+ /* only show confirm borders if input is not focused */
+ &:not(:active):not(:hover):not(:focus){
+ &:invalid {
+ .icon-confirm {
- &:active,
- &:hover,
- &:focus {
- border-color: var(--color-primary-element) !important;
- border-radius: var(--border-radius) !important;
- &:disabled {
- border-color: var(--color-background-darker) !important;
- }
- }
+ border-color: var(--color-error);
}
}
- &:active,
- &:hover,
- &:focus {
- + .icon-confirm {
+ + .icon-confirm {
+ &:active,
+ &:hover,
+ &:focus {
border-color: var(--color-primary-element) !important;
- border-left-color: transparent !important;
- /* above previous input */
- z-index: 2;
+ border-radius: var(--border-radius) !important;
+ &:disabled {
+ border-color: var(--color-background-darker) !important;
+ }
}
}
}
+ &:active,
+ &:hover,
+ &:focus {
+ + .icon-confirm {
+ border-color: var(--color-primary-element) !important;
+ border-inline-start-color: transparent !important;
+ /* above previous input */
+ z-index: 2;
+ }
+ }
}
@@ -323,6 +417,7 @@ button img,
.button img {
cursor: pointer;
}
+
select,
.button.multiselect {
font-weight: normal;
@@ -330,121 +425,124 @@ select,
/* Radio & Checkboxes */
$checkbox-radio-size: 14px;
-$color-checkbox-radio-disabled: nc-darken($color-main-background, 27%);
-$color-checkbox-radio-border: nc-darken($color-main-background, 47%);
$color-checkbox-radio-white: #fff;
-input {
- &[type='checkbox'],
- &[type='radio'] {
- &.radio,
- &.checkbox {
- position: absolute;
- left: -10000px;
- top: auto;
- width: 1px;
- height: 1px;
- overflow: hidden;
- + label {
- user-select: none;
- }
- &:disabled + label,
- &:disabled + label:before {
- cursor: default;
- }
- + label:before {
- content: '';
- display: inline-block;
- height: $checkbox-radio-size;
- width: $checkbox-radio-size;
- vertical-align: middle;
- border-radius: 50%;
- margin: 0 6px 3px 3px;
- border: 1px solid $color-checkbox-radio-border;
- }
- &:not(:disabled):not(:checked) + label:hover:before,
- &:focus + label:before {
- border-color: var(--color-primary-element);
- }
- &:checked + label:before,
- &.checkbox:indeterminate + label:before {
- /* ^ :indeterminate have a strange behavior on radio,
- so we respecified the checkbox class again to be safe */
- box-shadow: inset 0px 0px 0px 2px var(--color-main-background);
- background-color: var(--color-primary-element);
- border-color: var(--color-primary-element);
- }
- &:disabled + label:before {
- border: 1px solid $color-checkbox-radio-border;
- background-color: $color-checkbox-radio-disabled !important; /* override other status */
- }
- &:checked:disabled + label:before {
- background-color: $color-checkbox-radio-disabled;
- }
+input[type='checkbox'],
+input[type='radio'] {
+ &.radio,
+ &.checkbox {
+ position: absolute;
+ inset-inline-start: -10000px;
+ top: auto;
+ width: 1px;
+ height: 1px;
+ overflow: hidden;
+ + label {
+ user-select: none;
+ }
+ &:disabled + label,
+ &:disabled + label:before {
+ cursor: default;
+ }
+ + label:before {
+ content: '';
+ display: inline-block;
+ height: $checkbox-radio-size;
+ width: $checkbox-radio-size;
+ vertical-align: middle;
+ border-radius: 50%;
+ margin: 0 3px;
+ margin-inline: 3px 6px;
+ border: 1px solid var(--color-text-maxcontrast);
+ }
+ &:not(:disabled):not(:checked) + label:hover:before,
+ &:focus + label:before {
+ border-color: var(--color-primary-element);
+ }
+ &:focus-visible + label {
+ outline-style: solid;
+ outline-color: var(--color-main-text);
+ outline-width: 1px;
+ outline-offset: 2px;
+ }
+ &:checked + label:before,
+ &.checkbox:indeterminate + label:before {
+ /* ^ :indeterminate have a strange behavior on radio,
+ so we respecified the checkbox class again to be safe */
+ box-shadow: inset 0px 0px 0px 2px var(--color-main-background);
+ background-color: var(--color-primary-element);
+ border-color: var(--color-primary-element);
+ }
+ &:disabled + label:before {
+ border: 1px solid var(--color-text-maxcontrast);
+ background-color: var(--color-text-maxcontrast) !important; /* override other status */
+ }
+ &:checked:disabled + label:before {
+ background-color: var(--color-text-maxcontrast);
+ }
- // Detail description below label of checkbox or radio button
- & + label ~ em {
- display: inline-block;
- margin-left: 25px;
- }
- & + label ~ em:last-of-type {
- margin-bottom: $checkbox-radio-size;
- }
+ // Detail description below label of checkbox or radio button
+ & + label ~ em {
+ display: inline-block;
+ margin-inline-start: 25px;
}
- &.checkbox {
- + label:before {
- border-radius: 1px;
- height: $checkbox-radio-size;
- width: $checkbox-radio-size;
- box-shadow: none !important;
- background-position: center;
- }
- &:checked + label:before {
- background-image: url('../img/actions/checkbox-mark.svg');
- }
- &:indeterminate + label:before {
- background-image: url('../img/actions/checkbox-mixed.svg');
- }
+ & + label ~ em:last-of-type {
+ margin-bottom: $checkbox-radio-size;
}
+ }
+ &.checkbox {
+ + label:before {
+ border-radius: 1px;
+ height: $checkbox-radio-size;
+ width: $checkbox-radio-size;
+ box-shadow: none !important;
+ background-position: center;
+ }
+ &:checked + label:before {
+ background-image: url('../img/actions/checkbox-mark.svg');
+ }
+ &:indeterminate + label:before {
+ background-image: url('../img/actions/checkbox-mixed.svg');
+ }
+ }
- /* We do not use the nc-darken function as this is not supposed to be changed */
- &.radio--white,
- &.checkbox--white {
- + label:before,
- &:focus + label:before {
- border-color: darken($color-checkbox-radio-white, 27%);
- }
- &:not(:disabled):not(:checked) + label:hover:before {
- border-color: $color-checkbox-radio-white;
- }
- &:checked + label:before {
- box-shadow: inset 0px 0px 0px 2px var(--color-main-background);
- background-color: darken($color-checkbox-radio-white, 14%);
- border-color: darken($color-checkbox-radio-white, 14%);
- }
- &:disabled + label:before {
- background-color: darken($color-checkbox-radio-white, 27%) !important; /* override other status */
- border-color: rgba($color-checkbox-radio-white, 0.4) !important; /* override other status */
- }
- &:checked:disabled + label:before {
- box-shadow: inset 0px 0px 0px 2px var(--color-main-background);
- border-color: rgba($color-checkbox-radio-white, 0.4) !important; /* override other status */
- background-color: darken($color-checkbox-radio-white, 27%);
- }
+ /* We do not use the variables as we keep the colours as white for this variant */
+ &.radio--white,
+ &.checkbox--white {
+ + label:before,
+ &:focus + label:before {
+ border-color: color.adjust($color-checkbox-radio-white, $lightness: -27%, $space: hsl);
}
- &.checkbox--white {
- &:checked + label:before,
- &:indeterminate + label:before {
- background-color: transparent !important; /* Override default checked */
- border-color: $color-checkbox-radio-white !important; /* Override default checked */
- background-image: url('../img/actions/checkbox-mark-white.svg');
- }
- &:indeterminate + label:before {
- background-image: url('../img/actions/checkbox-mixed-white.svg');
- }
- &:disabled + label:before {
- opacity: 0.7; /* No other choice for white background image */
- }
+ &:not(:disabled):not(:checked) + label:hover:before {
+ border-color: $color-checkbox-radio-white;
+ }
+ &:checked + label:before {
+ box-shadow: inset 0px 0px 0px 2px var(--color-main-background);
+ background-color: color.adjust($color-checkbox-radio-white, $lightness: -14%, $space: hsl);
+ border-color: color.adjust($color-checkbox-radio-white, $lightness: -14%, $space: hsl);
+ }
+ &:disabled + label:before {
+ background-color: color.adjust($color-checkbox-radio-white, $lightness: -27%, $space: hsl) !important; /* override other status */
+ border-color: rgba($color-checkbox-radio-white, 0.4) !important; /* override other status */
+ }
+ &:checked:disabled + label:before {
+ box-shadow: inset 0px 0px 0px 2px var(--color-main-background);
+ border-color: rgba($color-checkbox-radio-white, 0.4) !important; /* override other status */
+ background-color: color.adjust($color-checkbox-radio-white, $lightness: -27%, $space: hsl);
+ }
+ }
+ &.checkbox--white {
+ &:checked + label:before,
+ &:indeterminate + label:before {
+ background-color: transparent !important; /* Override default checked */
+ border-color: $color-checkbox-radio-white !important; /* Override default checked */
+ background-image: url('../img/actions/checkbox-mark-white.svg');
+ }
+ &:indeterminate + label:before {
+ background-image: url('../img/actions/checkbox-mixed-white.svg');
+ }
+ &:disabled + label:before {
+ opacity: 0.7; /* No other choice for white background image */
}
}
}
@@ -458,7 +556,7 @@ div.select2-drop {
}
.avatar {
display: inline-block;
- margin-right: 8px;
+ margin-inline-end: 8px;
vertical-align: middle;
img {
cursor: pointer;
@@ -466,7 +564,7 @@ div.select2-drop {
}
.select2-search input {
min-height: auto;
- background: var(--icon-search-000) no-repeat right center !important;
+ background: var(--icon-search-dark) no-repeat !important;
background-origin: content-box !important;
}
.select2-results {
@@ -479,6 +577,10 @@ div.select2-drop {
text-overflow: ellipsis;
span {
cursor: pointer;
+ em {
+ cursor: inherit;
+ background: unset;
+ }
}
}
.select2-result,
@@ -489,7 +591,7 @@ div.select2-drop {
padding: 12px;
background-color: transparent;
cursor: pointer;
- color: var(--color-text-lighter);
+ color: var(--color-text-maxcontrast);
}
.select2-result {
&.select2-selected {
@@ -502,6 +604,15 @@ div.select2-drop {
}
}
}
+
+body[dir='ltr'] div.select2-drop .select2-search input {
+ background-position: right center !important;
+}
+
+body[dir='rtl'] div.select2-drop .select2-search input {
+ background-position: left center !important;
+}
+
.select2-chosen,
#select2-drop {
.avatar,
@@ -509,6 +620,7 @@ div.select2-drop {
cursor: pointer;
}
}
+
div.select2-container-multi {
.select2-choices,
&.select2-container-active .select2-choices {
@@ -516,23 +628,26 @@ div.select2-container-multi {
white-space: nowrap;
text-overflow: ellipsis;
background: var(--color-main-background);
- color: var(--color-text-lighter) !important;
+ color: var(--color-text-maxcontrast) !important;
box-sizing: content-box;
- border-radius: var(--border-radius);
- border: 1px solid var(--color-border-dark);
+ border-radius: var(--border-radius-large);
+ border: 2px solid var(--color-border-dark);
margin: 0;
- padding: 2px 0;
- min-height: auto;
+ padding: 6px;
+ min-height: 44px;
+ &:focus-within {
+ border-color: var(--color-primary-element)
+ }
.select2-search-choice {
line-height: 20px;
- padding-left: 5px;
+ padding-inline-start: 5px;
&.select2-search-choice-focus,
&:hover,
&:active,
& {
background-image: none;
background-color: var(--color-main-background);
- color: var(--color-text-lighter);
+ color: var(--color-text-maxcontrast);
border: 1px solid var(--color-border-dark);
}
.select2-search-choice-close {
@@ -541,14 +656,19 @@ div.select2-container-multi {
}
.select2-search-field input {
line-height: 20px;
+ min-height: 28px;
+ max-height: 28px;
+ color: var(--color-main-text);
&.select2-active {
background: none !important;
}
}
}
}
+
div.select2-container {
- margin: 3px 3px 3px 0;
+ margin: 3px;
+ margin-inline-start: 0;
&.select2-container-multi .select2-choices {
display: flex;
flex-wrap: wrap;
@@ -561,17 +681,19 @@ div.select2-container {
white-space: nowrap;
text-overflow: ellipsis;
background: var(--color-main-background);
- color: var(--color-text-lighter) !important;
+ color: var(--color-text-maxcontrast) !important;
box-sizing: content-box;
- border-radius: var(--border-radius);
- border: 1px solid var(--color-border-dark);
+ border-radius: var(--border-radius-large);
+ border: 2px solid var(--color-border-dark);
margin: 0;
- padding: 2px 0;
- padding-left: 6px;
- min-height: auto;
+ padding: 6px 12px;
+ min-height: 44px;
+ &:focus-within {
+ border-color: var(--color-primary-element)
+ }
.select2-search-choice {
line-height: 20px;
- padding-left: 5px;
+ padding-inline-start: 5px;
background-image: none;
background-color: var(--color-background-dark);
border-color: var(--color-background-dark);
@@ -589,7 +711,7 @@ div.select2-container {
border-radius: 0;
border: none;
b {
- background: var(--icon-triangle-s-000) no-repeat center !important;
+ background: var(--icon-triangle-s-dark) no-repeat center !important;
opacity: .5;
}
}
@@ -606,22 +728,23 @@ div.select2-container {
/* Vue v-select */
.v-select {
- margin: 3px 3px 3px 0;
+ margin: 3px;
+ margin-inline-start: 0;
display: inline-block;
.dropdown-toggle {
display: flex !important;
flex-wrap: wrap;
.selected-tag {
line-height: 20px;
- padding-left: 5px;
+ padding-inline-start: 5px;
background-image: none;
background-color: var(--color-main-background);
- color: var(--color-text-lighter);
+ color: var(--color-text-maxcontrast);
border: 1px solid var(--color-border-dark);
display: inline-flex;
align-items: center;
.close {
- margin-left: 3px;
+ margin-inline-start: 3px;
}
}
}
@@ -633,13 +756,14 @@ div.select2-container {
display: list-item;
background-color: transparent;
cursor: pointer;
- color: var(--color-text-lighter);
+ color: var(--color-text-maxcontrast);
a {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
height: 25px;
- padding: 3px 7px 4px 2px;
+ padding-block: 3px 4px;
+ padding-inline: 2px 7px;
margin: 0;
cursor: pointer;
min-height: 1em;
@@ -654,14 +778,14 @@ div.select2-container {
color: inherit !important;
&::before {
content: ' ';
- background-image: var(--icon-checkmark-000);
+ background-image: var(--icon-checkmark-dark);
background-repeat: no-repeat;
background-position: center;
min-width: 16px;
min-height: 16px;
display: block;
opacity: 0.5;
- margin-right: 5px;
+ margin-inline-end: 5px;
visibility: hidden;
}
}
@@ -679,211 +803,6 @@ div.select2-container {
}
}
-
-/* Vue multiselect */
-.multiselect.multiselect-vue {
- margin: 1px 2px;
- padding: 0 !important;
- display: inline-block;
- width: 160px;
- position: relative;
- background-color: var(--color-main-background);
- &.multiselect--active {
- /* Opened: force display the input */
- input.multiselect__input {
- opacity: 1 !important;
- cursor: text !important;
- }
- }
- &.multiselect--disabled,
- &.multiselect--disabled .multiselect__single {
- background-color: var(--color-background-dark) !important;
- }
- .multiselect__tags {
- /* space between tags and limit tag */
- $space-between: 5px;
-
- display: flex;
- flex-wrap: nowrap;
- overflow: hidden;
- border: 1px solid var(--color-border-dark);
- cursor: pointer;
- position: relative;
- border-radius: var(--border-radius);
- height: $default-height;
- /* tag wrapper */
- .multiselect__tags-wrap {
- align-items: center;
- display: inline-flex;
- overflow: hidden;
- max-width: 100%;
- position: relative;
- padding: 3px $space-between;
- flex-grow: 1;
- /* no tags or simple select? Show input directly
- input is used to display single value */
- &:empty ~ input.multiselect__input {
- opacity: 1 !important;
- /* hide default empty text, show input instead */
- + span:not(.multiselect__single) {
- display: none;
- }
- }
- /* selected tag */
- .multiselect__tag {
- flex: 1 0 0;
- line-height: 20px;
- padding: 1px 5px;
- background-image: none;
- color: var(--color-text-lighter);
- border: 1px solid var(--color-border-dark);
- display: inline-flex;
- align-items: center;
- border-radius: var(--border-radius);
- /* require to override the default width
- and force the tag to shring properly */
- min-width: 0;
- max-width: 50%;
- max-width: fit-content;
- max-width: -moz-fit-content;
- /* css hack, detect if more than two tags
- if so, flex-basis is set to half */
- &:only-child {
- flex: 0 1 auto;
- }
- &:not(:last-child) {
- margin-right: $space-between;
- }
- /* ellipsis the groups to be sure
- we display at least two of them */
- > span {
- white-space: nowrap;
- text-overflow: ellipsis;
- overflow: hidden;
- }
- }
- }
- /* Single select default value */
- .multiselect__single {
- padding: 8px 10px;
- flex: 0 0 100%;
- z-index: 1; /* above input */
- background-color: var(--color-main-background);
- cursor: pointer;
- line-height: 17px;
- }
- /* displayed text if tag limit reached */
- .multiselect__strong,
- .multiselect__limit {
- flex: 0 0 auto;
- line-height: 20px;
- color: var(--color-text-lighter);
- display: inline-flex;
- align-items: center;
- opacity: .7;
- margin-right: $space-between;
- /* above the input */
- z-index: 5;
- }
- /* default multiselect input for search and placeholder */
- input.multiselect__input {
- width: 100% !important;
- position: absolute !important;
- margin: 0;
- opacity: 0;
- /* let's leave it on top of tags but hide it */
- height: 100%;
- border: none;
- /* override hide to force show the placeholder */
- display: block !important;
- /* only when not active */
- cursor: pointer;
- }
- }
- /* results wrapper */
- .multiselect__content-wrapper {
- position: absolute;
- width: 100%;
- margin-top: -1px;
- border: 1px solid var(--color-border-dark);
- background: var(--color-main-background);
- z-index: 50;
- max-height: 175px !important; // 5 items and a half
- overflow-y: auto;
- .multiselect__content {
- width: 100%;
- padding: 5px 0;
- }
- li {
- padding: 5px;
- position: relative;
- display: flex;
- align-items: center;
- background-color: transparent;
- &,
- span {
- cursor: pointer;
- }
- > span {
- white-space: nowrap;
- overflow: hidden;
- text-overflow: ellipsis;
- height: 20px;
- margin: 0;
- min-height: 1em;
- -webkit-touch-callout: none;
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
- display: inline-flex;
- align-items: center;
- background-color: transparent !important;
- color: var(--color-text-lighter);
- width: 100%;
- /* selected checkmark icon */
- &::before {
- content: ' ';
- background-image: var(--icon-checkmark-000);
- background-repeat: no-repeat;
- background-position: center;
- min-width: 16px;
- min-height: 16px;
- display: block;
- opacity: .5;
- margin-right: 5px;
- visibility: hidden;
- }
- &.multiselect__option--disabled {
- background-color: var(--color-background-dark);
- opacity: .5;
- }
- /* add the prop tag-placeholder="create" to add the +
- * icon on top of an unknown-and-ready-to-be-created entry
- */
- &[data-select='create'] {
- &::before {
- background-image: var(--icon-add-000);
- visibility: visible;
- }
- }
- &.multiselect__option--highlight {
- color: var(--color-main-text);
- }
- &:not(.multiselect__option--disabled):hover::before {
- opacity: .3;
- }
- &.multiselect__option--selected,
- &:not(.multiselect__option--disabled):hover {
- &::before {
- visibility: visible;
- }
- }
- }
- }
- }
-}
-
/* Progressbar */
progress:not(.vue) {
display: block;
@@ -908,12 +827,12 @@ progress:not(.vue) {
}
&::-moz-progress-bar {
border-radius: var(--border-radius);
- background: var(--color-primary);
+ background: var(--color-primary-element);
transition: 250ms all ease-in-out;
}
&::-webkit-progress-value {
border-radius: var(--border-radius);
- background: var(--color-primary);
+ background: var(--color-primary-element);
transition: 250ms all ease-in-out;
}
}
@@ -938,6 +857,7 @@ progress:not(.vue) {
transform: translate(4px);
}
}
+
.shake {
animation-name: shake;
animation-duration: .7s;
@@ -948,15 +868,29 @@ progress:not(.vue) {
// Same as .hidden-visually
label.infield {
position: absolute;
- left: -10000px;
+ inset-inline-start: -10000px;
top: -10000px;
width: 1px;
height: 1px;
overflow: hidden;
}
-::placeholder,
-::-ms-input-placeholder,
-::-webkit-input-placeholder {
+// when rules are grouped using the comma operator and one selector is invalid / unknown then the whole group is invalidated.
+// https://www.w3.org/TR/selectors-3/#grouping
+// In this case `::-ms-input-placeholder` is unknown to Firefox and Chrome
+@mixin placeholder-style {
color: var(--color-text-maxcontrast);
+ font-size: var(--default-font-size);
+}
+
+::placeholder {
+ @include placeholder-style;
+}
+
+::-ms-input-placeholder {
+ @include placeholder-style;
+}
+
+::-webkit-input-placeholder {
+ @include placeholder-style;
}
diff --git a/core/css/login/authpicker.css b/core/css/login/authpicker.css
index 3603a7906e4..faecfba41a5 100644
--- a/core/css/login/authpicker.css
+++ b/core/css/login/authpicker.css
@@ -1,9 +1,27 @@
+/*!
+ * SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
.picker-window {
- display: block;
- padding: 10px;
- margin: 20px 0;
- background-color: rgba(0,0,0,.3);
- color: #fff;
- border-radius: 3px;
+ display: inline-block;
+ padding: 16px;
+ margin: 20px;
+ background-color: var(--color-main-background);
+ color: var(--color-main-text);
+ border-radius: var(--border-radius-large);
+ box-shadow: 0 0 10px var(--color-box-shadow);
cursor: default;
}
+
+.picker-window.small {
+ max-width: 400px;
+}
+
+.picker-window h2 {
+ margin: 20px auto;
+}
+
+.apptoken-link {
+ margin: 20px;
+ display: block;
+}
diff --git a/core/css/lostpassword/resetpassword.css b/core/css/lostpassword/resetpassword.css
deleted file mode 100644
index 0b3c251e8d7..00000000000
--- a/core/css/lostpassword/resetpassword.css
+++ /dev/null
@@ -1,7 +0,0 @@
-#reset-password p {
- position: relative;
-}
-
-.text-center {
- text-align: center;
-}
diff --git a/core/css/mobile.css b/core/css/mobile.css
new file mode 100644
index 00000000000..917982e6af7
--- /dev/null
+++ b/core/css/mobile.css
@@ -0,0 +1,7 @@
+/*!
+ * SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ *//*!
+ * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */@media only screen and (width < 1024px){#dropdown{margin-inline-end:10% !important;width:80% !important}.ui-autocomplete{z-index:1000 !important}.error-wide{width:100%;margin-inline-start:0 !important;box-sizing:border-box}#app-navigation:not(.vue){transform:translateX(-300px);position:fixed;height:var(--body-height)}.snapjs-left #app-navigation{transform:translateX(0)}#app-navigation:not(.hidden)+#app-content{margin-inline-start:0}.skip-navigation.skip-content{inset-inline-start:3px;margin-inline-start:0}.app-content-list{background:var(--color-main-background);flex:1 1 100%;max-height:unset;max-width:100%}.app-content-list+.app-content-details{display:none}.app-content-list.showdetails{display:none}.app-content-list.showdetails+.app-content-details{display:initial}#app-content.showdetails #app-navigation-toggle{transform:translateX(-44px)}#app-content.showdetails #app-navigation-toggle-back{position:fixed;display:inline-block !important;top:50px;inset-inline-start:0;width:44px;height:44px;z-index:1050;background-color:hsla(0,0%,100%,.7);cursor:pointer;opacity:.6;transform:rotate(90deg)}#app-content.showdetails .app-content-list{transform:translateX(-100%)}#app-navigation-toggle{position:fixed;display:inline-block !important;inset-inline-start:0;width:44px;height:44px;z-index:1050;cursor:pointer;opacity:.6}#app-navigation-toggle:hover,#app-navigation-toggle:focus{opacity:1}#app-navigation+#app-content .files-controls{padding-inline-start:44px}#body-user .app-files.viewer-mode .files-controls{padding-inline-start:0 !important}.app-files.viewer-mode #app-navigation-toggle{display:none !important}table.multiselect thead{inset-inline-start:0 !important}#usersearchform{display:none}#body-settings .files-controls{min-width:1024px !important}}@media only screen and (max-width: 480px){#header .header-end>div>.menu{max-width:calc(100vw - 10px);position:fixed}#header .header-end>div>.menu::after{display:none !important}#header .header-end>div.openedMenu::after{display:block}#header .header-end>div::after{border:10px solid rgba(0,0,0,0);border-bottom-color:var(--color-main-background);bottom:0;content:" ";height:0;width:0;position:absolute;pointer-events:none;inset-inline-end:15px;z-index:2001;display:none}#header .header-end>div#settings::after{inset-inline-end:27px}}/*# sourceMappingURL=mobile.css.map */
diff --git a/core/css/mobile.css.map b/core/css/mobile.css.map
new file mode 100644
index 00000000000..406572ad8fc
--- /dev/null
+++ b/core/css/mobile.css.map
@@ -0,0 +1 @@
+{"version":3,"sourceRoot":"","sources":["mobile.scss","variables.scss"],"names":[],"mappings":"AAAA;AAAA;AAAA;AAAA,GCEA;AAAA;AAAA;AAAA,GDIA,wCAGC,UACC,iCACA,qBAID,iBACC,wBAID,YACC,WACA,iCACA,sBAID,0BACC,6BACA,eACA,0BAGA,6BACC,wBAIF,0CACC,sBAGD,8BACC,uBACA,sBAID,kBACC,wCACA,cAEA,iBAEA,eACA,uCACC,aAED,8BACC,aACA,mDACC,gBAOF,gDACC,4BAED,qDACC,eACA,gCACA,ICiBa,KDhBb,qBACA,WACA,YACA,aACA,oCACA,eACA,WACA,wBAED,2CACC,4BAKF,uBACC,eACA,gCACA,qBACA,WACA,YACA,aACA,eACA,WAED,0DAEC,UAID,6CACC,0BAID,kDACC,kCAED,8CACC,wBAGD,wBACC,gCAID,gBACC,aAED,+BACC,6BAMF,0CACC,8BACC,6BACA,eACA,qCACC,wBAMA,0CACC,cAGF,+BACC,gCACA,iDACA,SACA,YACA,SACA,QACA,kBACA,oBACA,sBACA,aACA,aAID,wCACC","file":"mobile.css"} \ No newline at end of file
diff --git a/core/css/mobile.css.map.license b/core/css/mobile.css.map.license
new file mode 100644
index 00000000000..0801c996d9d
--- /dev/null
+++ b/core/css/mobile.css.map.license
@@ -0,0 +1,2 @@
+SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
+SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/core/css/mobile.scss b/core/css/mobile.scss
index d1abb0176a5..ebb175a5793 100644
--- a/core/css/mobile.scss
+++ b/core/css/mobile.scss
@@ -1,8 +1,14 @@
-@media only screen and (max-width: $breakpoint-mobile) {
+/*!
+ * SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+@use 'variables';
+
+@media only screen and (width < #{variables.$breakpoint-mobile}) {
/* position share dropdown */
#dropdown {
- margin-right: 10% !important;
+ margin-inline-end: 10% !important;
width: 80% !important;
}
@@ -14,13 +20,15 @@
/* fix error display on smaller screens */
.error-wide {
width: 100%;
- margin-left: 0 !important;
+ margin-inline-start: 0 !important;
box-sizing: border-box;
}
/* APP SIDEBAR TOGGLE and SWIPE ----------------------------------------------*/
- #app-navigation {
- transform: translateX(-#{$navigation-width});
+ #app-navigation:not(.vue) {
+ transform: translateX(-#{variables.$navigation-width});
+ position: fixed;
+ height: var(--body-height);
}
.snapjs-left {
#app-navigation {
@@ -29,12 +37,12 @@
}
#app-navigation:not(.hidden) + #app-content {
- margin-left: 0;
+ margin-inline-start: 0;
}
.skip-navigation.skip-content {
- left: 3px;
- margin-left: 0;
+ inset-inline-start: 3px;
+ margin-inline-start: 0;
}
/* full width for message list on mobile */
@@ -64,8 +72,8 @@
#app-navigation-toggle-back {
position: fixed;
display: inline-block !important;
- top: $header-height;
- left: 0;
+ top: variables.$header-height;
+ inset-inline-start: 0;
width: 44px;
height: 44px;
z-index: 1050; // above app-content
@@ -83,7 +91,7 @@
#app-navigation-toggle {
position: fixed;
display: inline-block !important;
- left: 0;
+ inset-inline-start: 0;
width: 44px;
height: 44px;
z-index: 1050; // above app-content
@@ -96,50 +104,35 @@
}
/* position controls for apps with app-navigation */
- #app-navigation + #app-content #controls {
- padding-left: 44px;
+ #app-navigation + #app-content .files-controls {
+ padding-inline-start: 44px;
}
/* .viewer-mode is when text editor, PDF viewer, etc is open */
- #body-user .app-files.viewer-mode #controls {
- padding-left: 0 !important;
+ #body-user .app-files.viewer-mode .files-controls {
+ padding-inline-start: 0 !important;
}
.app-files.viewer-mode #app-navigation-toggle {
display: none !important;
}
table.multiselect thead {
- left: 0 !important;
+ inset-inline-start: 0 !important;
}
/* prevent overflow in user management controls bar */
#usersearchform {
display: none;
}
- #body-settings #controls {
- min-width: $breakpoint-mobile !important;
- }
-
- /* do not show dates in filepicker */
- #oc-dialog-filepicker-content .filelist #headerSize,
- #oc-dialog-filepicker-content .filelist #headerDate,
- #oc-dialog-filepicker-content .filelist .filesize,
- #oc-dialog-filepicker-content .filelist .date {
- display: none;
- }
- #oc-dialog-filepicker-content .filelist .filename {
- max-width: 100%;
- }
-
- .snapjs-left table.multiselect thead {
- top: 44px;
+ #body-settings .files-controls {
+ min-width: variables.$breakpoint-mobile !important;
}
/* end of media query */
}
@media only screen and (max-width: 480px) {
- #header .header-right > div > .menu {
+ #header .header-end > div > .menu {
max-width: calc(100vw - 10px);
position: fixed;
&::after {
@@ -147,7 +140,7 @@
}
}
/* Arrow directly child of menutoggle */
- #header .header-right > div {
+ #header .header-end > div {
&.openedMenu {
&::after {
display: block;
@@ -162,19 +155,14 @@
width: 0;
position: absolute;
pointer-events: none;
- right: 15px;
+ inset-inline-end: 15px;
z-index: 2001;
display: none;
}
/* settings need a different offset, since they have a right padding */
&#settings::after {
- right: 27px;
+ inset-inline-end: 27px;
}
}
-
- #notification-container {
- max-width: 100%;
- width: 100%;
- }
}
diff --git a/core/css/public.css b/core/css/public.css
new file mode 100644
index 00000000000..49b4b454295
--- /dev/null
+++ b/core/css/public.css
@@ -0,0 +1,4 @@
+/*!
+ * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */#body-public{--footer-height: calc(2lh + 2 * var(--default-grid-baseline))}#body-public .header-end #header-primary-action a{color:var(--color-primary-element-text)}#body-public .header-end #header-secondary-action ul li{min-width:270px}#body-public .header-end #header-secondary-action #header-actions-toggle{background-color:rgba(0,0,0,0);border-color:rgba(0,0,0,0);filter:var(--background-invert-if-dark)}#body-public .header-end #header-secondary-action #header-actions-toggle:hover,#body-public .header-end #header-secondary-action #header-actions-toggle:focus,#body-public .header-end #header-secondary-action #header-actions-toggle:active{opacity:1}#body-public .header-end #header-secondary-action #external-share-menu-item form{display:flex}#body-public .header-end #header-secondary-action #external-share-menu-item .hidden{display:none}#body-public .header-end #header-secondary-action #external-share-menu-item #save-button-confirm{flex-grow:0}#body-public #content{min-height:var(--body-height, calc(100% - var(--footer-height)));padding-block-end:var(--footer-height)}#body-public #app-content-vue{padding-block-end:var(--footer-height)}#body-public.layout-base #content{padding-top:0}#body-public p.info{margin:20px auto;text-shadow:0 0 2px rgba(0,0,0,.4);-moz-user-select:none;-ms-user-select:none;user-select:none}#body-public p.info,#body-public form fieldset legend,#body-public #datadirContent label,#body-public form fieldset .warning-info,#body-public form input[type=checkbox]+label{text-align:center}#body-public footer{position:fixed;bottom:var(--body-container-margin);background-color:var(--color-main-background);border-radius:var(--body-container-radius);box-sizing:border-box;display:flex;flex-direction:column;align-items:center;justify-content:center;width:calc(100% - 2*var(--body-container-margin));margin-inline:var(--body-container-margin);padding-block:var(--default-grid-baseline)}#body-public footer .footer__legal-links{margin-block-end:var(--default-grid-baseline)}#body-public footer p{text-align:center;color:var(--color-text-maxcontrast);margin-block:0 var(--default-grid-baseline);width:100%}#body-public footer p a{display:inline-block;font-size:var(--default-font-size);font-weight:bold;line-height:var(--default-line-height);height:var(--default-line-height);color:var(--color-text-maxcontrast);white-space:nowrap}/*# sourceMappingURL=public.css.map */
diff --git a/core/css/public.css.map b/core/css/public.css.map
new file mode 100644
index 00000000000..74f63ece47d
--- /dev/null
+++ b/core/css/public.css.map
@@ -0,0 +1 @@
+{"version":3,"sourceRoot":"","sources":["public.scss"],"names":[],"mappings":"AAAA;AAAA;AAAA;AAAA,GAIA,aACC,8DAGC,kDACC,wCAIA,wDACC,gBAED,yEACC,+BACA,2BACA,wCAEA,8OAGC,UAID,iFACC,aAED,oFACC,aAED,iGACC,YAMJ,sBACC,iEACA,uCAGD,8BACC,uCAID,kCACC,cAGD,oBACC,iBACA,mCACA,sBACA,qBACA,iBAED,+KAIC,kBAID,oBACC,eACA,oCACA,8CACA,2CACA,sBAEA,aACA,sBACA,mBACA,uBAEA,kDACA,2CACA,2CAEA,yCACC,8CAGD,sBACC,kBACA,oCACA,4CACA,WAEA,wBACC,qBACA,mCACA,iBACA,uCACA,kCACA,oCACA","file":"public.css"} \ No newline at end of file
diff --git a/core/css/public.css.map.license b/core/css/public.css.map.license
new file mode 100644
index 00000000000..b62adf36215
--- /dev/null
+++ b/core/css/public.css.map.license
@@ -0,0 +1,2 @@
+SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
+SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/core/css/public.scss b/core/css/public.scss
index b171dd4970d..92c7a069f3e 100644
--- a/core/css/public.scss
+++ b/core/css/public.scss
@@ -1,10 +1,13 @@
-$footer-height: 65px;
-
+/*!
+ * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
#body-public {
- .header-right {
+ --footer-height: calc(2lh + 2 * var(--default-grid-baseline)); // Set the initial value, will be updated programmatically to match the actual height
+ .header-end {
#header-primary-action a {
- color: var(--color-primary-text);
+ color: var(--color-primary-element-text);
}
#header-secondary-action {
@@ -14,6 +17,7 @@ $footer-height: 65px;
#header-actions-toggle {
background-color: transparent;
border-color: transparent;
+ filter: var(--background-invert-if-dark);
&:hover,
&:focus,
@@ -36,9 +40,12 @@ $footer-height: 65px;
}
#content {
- // 100% - footer
- min-height: calc(100% - #{$footer-height});
+ min-height: var(--body-height, calc(100% - var(--footer-height)));
+ padding-block-end: var(--footer-height);
+ }
+ #app-content-vue {
+ padding-block-end: var(--footer-height);
}
/** don't apply content header padding on the base layout */
@@ -46,12 +53,6 @@ $footer-height: 65px;
padding-top: 0;
}
- /* force layout to make sure the content element's height matches its contents' height */
- .ie #content {
- display: inline-block;
- }
-
-
p.info {
margin: 20px auto;
text-shadow: 0 0 2px rgba(0, 0, 0, .4);
@@ -68,23 +69,39 @@ $footer-height: 65px;
/* public footer */
footer {
- position: relative;
+ position: fixed;
+ bottom: var(--body-container-margin);
+ background-color: var(--color-main-background);
+ border-radius: var(--body-container-radius);
+ box-sizing: border-box;
+
display: flex;
+ flex-direction: column;
align-items: center;
justify-content: center;
- height: $footer-height;
- flex-direction: column;
+
+ width: calc(100% - 2 * var(--body-container-margin));
+ margin-inline: var(--body-container-margin);
+ padding-block: var(--default-grid-baseline);
+
+ .footer__legal-links {
+ margin-block-end: var(--default-grid-baseline);
+ }
+
p {
text-align: center;
- color: var(--color-text-lighter);
+ color: var(--color-text-maxcontrast);
+ margin-block: 0 var(--default-grid-baseline);
+ width: 100%;
+
a {
- color: var(--color-text-lighter);
+ display: inline-block;
+ font-size: var(--default-font-size);
font-weight: bold;
+ line-height: var(--default-line-height);
+ height: var(--default-line-height);
+ color: var(--color-text-maxcontrast);
white-space: nowrap;
- /* increasing clickability to more than the text height */
- padding: 10px;
- margin: -10px;
- line-height: 200%;
}
}
}
diff --git a/core/css/publicshareauth.css b/core/css/publicshareauth.css
index c3713ff0e8b..2bc4c592deb 100644
--- a/core/css/publicshareauth.css
+++ b/core/css/publicshareauth.css
@@ -1,3 +1,7 @@
+/*!
+ * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
form fieldset {
display: flex !important;
flex-direction: column;
@@ -7,6 +11,7 @@ form fieldset > p {
position: relative;
}
+#email,
#password {
margin: 5px 0;
padding-right: 45px;
@@ -17,8 +22,10 @@ form fieldset > p {
min-width: 0; /* FF hack for to override default value */
}
-input[type='submit'],
-input[type='submit'].icon-confirm {
+#password-input-form input[type='submit'],
+#email-input-form input[type='submit'],
+#email-input-form input[type='submit'].icon-confirm,
+#password-input-form input[type='submit'].icon-confirm {
position: absolute;
top: 0px;
right: -5px;
diff --git a/core/css/server.css b/core/css/server.css
new file mode 100644
index 00000000000..6abf729eb05
--- /dev/null
+++ b/core/css/server.css
@@ -0,0 +1,67 @@
+/*!
+ * SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ *//*!
+ * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ *//*!
+ * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */@import'../../dist/icons.css';/*!
+ * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */:root{font-size:var(--default-font-size);line-height:var(--default-line-height)}html,body,div,span,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,code,del,dfn,em,img,q,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,dialog,figure,footer,header,hgroup,nav,section,main{margin:0;padding:0;border:0;font-weight:inherit;font-size:100%;font-family:inherit;vertical-align:baseline;cursor:default;scrollbar-color:var(--color-scrollbar)}.js-focus-visible :focus:not(.focus-visible){outline:none}.content:not(#content-vue) :focus-visible{box-shadow:inset 0 0 0 2px var(--color-primary-element);outline:none}html,body{height:100%;overscroll-behavior-y:contain}article,aside,dialog,figure,footer,header,hgroup,nav,section{display:block}table{border-collapse:separate;border-spacing:0;white-space:nowrap}caption,th,td{text-align:start;font-weight:normal}table,td,th{vertical-align:middle}a{border:0;color:var(--color-main-text);text-decoration:none;cursor:pointer}a *{cursor:pointer}a.external{margin:0 3px;text-decoration:underline}input{cursor:pointer}input *{cursor:pointer}select,.button span,label{cursor:pointer}ul{list-style:none}body{font-weight:normal;font-size:var(--default-font-size);line-height:var(--default-line-height);font-family:var(--font-face);color:var(--color-main-text)}.two-factor-header{text-align:center}.two-factor-provider{text-align:center;width:100% !important;display:inline-block;margin-bottom:0 !important;background-color:var(--color-background-darker) !important;border:none !important}.two-factor-link{display:inline-block;padding:12px;color:var(--color-text-lighter)}.float-spinner{height:32px;display:none}#nojavascript{position:fixed;top:0;bottom:0;inset-inline-start:0;height:100%;width:100%;z-index:9000;text-align:center;background-color:var(--color-background-darker);color:var(--color-primary-element-text);line-height:125%;font-size:24px}#nojavascript div{display:block;position:relative;width:50%;top:35%;margin:0px auto}#nojavascript a{color:var(--color-primary-element-text);border-bottom:2px dotted var(--color-main-background)}#nojavascript a:hover,#nojavascript a:focus{color:var(--color-primary-element-text-dark)}::-webkit-scrollbar{width:12px;height:12px}::-webkit-scrollbar-corner{background-color:rgba(0,0,0,0)}::-webkit-scrollbar-track-piece{background-color:rgba(0,0,0,0)}::-webkit-scrollbar-thumb{background:var(--color-scrollbar);border-radius:var(--border-radius-large);border:2px solid rgba(0,0,0,0);background-clip:content-box}::selection{background-color:var(--color-primary-element);color:var(--color-primary-element-text)}#app-navigation *{box-sizing:border-box}#emptycontent,.emptycontent{color:var(--color-text-maxcontrast);text-align:center;margin-top:30vh;width:100%}#app-sidebar #emptycontent,#app-sidebar .emptycontent{margin-top:10vh}#emptycontent .emptycontent-search,.emptycontent .emptycontent-search{position:static}#emptycontent h2,.emptycontent h2{margin-bottom:10px}#emptycontent [class^=icon-],#emptycontent [class*=icon-],.emptycontent [class^=icon-],.emptycontent [class*=icon-]{background-size:64px;height:64px;width:64px;margin:0 auto 15px}#emptycontent [class^=icon-]:not([class^=icon-loading]),#emptycontent [class^=icon-]:not([class*=icon-loading]),#emptycontent [class*=icon-]:not([class^=icon-loading]),#emptycontent [class*=icon-]:not([class*=icon-loading]),.emptycontent [class^=icon-]:not([class^=icon-loading]),.emptycontent [class^=icon-]:not([class*=icon-loading]),.emptycontent [class*=icon-]:not([class^=icon-loading]),.emptycontent [class*=icon-]:not([class*=icon-loading]){opacity:.4}#datadirContent label{width:100%}.grouptop,.groupmiddle,.groupbottom{position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}#show,#dbpassword{position:absolute;inset-inline-end:1em;top:.8em;float:right}body[dir=rtl] #show,body[dir=rtl] #dbpassword{float:left}#show+label,#dbpassword+label{inset-inline-end:21px;top:15px !important;margin:-14px !important;padding:14px !important}#show:checked+label,#dbpassword:checked+label,#personal-show:checked+label{opacity:.8}#show:focus-visible+label,#dbpassword-toggle:focus-visible+label,#personal-show:focus-visible+label{box-shadow:var(--color-primary-element) 0 0 0 2px;opacity:1;border-radius:9999px}#show+label,#dbpassword+label,#personal-show+label{position:absolute !important;height:20px;width:24px;background-image:var(--icon-toggle-dark);background-repeat:no-repeat;background-position:center;opacity:.3}#show:focus+label,#dbpassword:focus+label,#personal-show:focus+label{opacity:1}#show+label:hover,#dbpassword+label:hover,#personal-show+label:hover{opacity:1}#show+label:before,#dbpassword+label:before,#personal-show+label:before{display:none}#pass2,input[name=personal-password-clone]{padding-inline-end:30px}.personal-show-container{position:relative;display:inline-block;margin-inline-end:6px}#personal-show+label{display:block;inset-inline-end:0;margin-top:-43px;margin-inline-end:-4px;padding:22px}#body-user .warning,#body-settings .warning{margin-top:8px;padding:5px;border-radius:var(--border-radius);color:var(--color-main-text);background-color:rgba(var(--color-warning-rgb), 0.2)}.warning legend,.warning a{font-weight:bold !important}.error:not(.toastify) a{color:#fff !important;font-weight:bold !important}.error:not(.toastify) a.button{color:var(--color-text-lighter) !important;display:inline-block;text-align:center}.error:not(.toastify) pre{white-space:pre-wrap;text-align:start}.error-wide{width:700px;margin-inline-start:-200px !important}.error-wide .button{color:#000 !important}.warning-input{border-color:var(--color-error) !important}.avatar,.avatardiv{border-radius:50%;flex-shrink:0}.avatar>img,.avatardiv>img{border-radius:50%;flex-shrink:0}td.avatar{border-radius:0}tr .action:not(.permanent),.selectedActions>a{opacity:0}tr .action{width:16px;height:16px}tr:hover .action:hover,tr:focus .action:focus{opacity:1}tr:hover .action:not(.menuitem),tr:focus .action:not(.menuitem),tr .action.permanent:not(.menuitem){opacity:.5}.selectedActions>a{opacity:.5;position:relative;top:2px}.selectedActions>a:hover,.selectedActions>a:focus{opacity:1}.selectedActions a:hover,.selectedActions a:focus{opacity:1}.header-action{opacity:.8}.header-action:hover,.header-action:focus{opacity:1}tbody tr:not(.group-header):hover,tbody tr:not(.group-header):focus,tbody tr:not(.group-header):active{background-color:var(--color-background-dark)}code{font-family:"Lucida Console","Lucida Sans Typewriter","DejaVu Sans Mono",monospace}.pager{list-style:none;float:right;display:inline;margin:.7em 13em 0 0}.pager li{display:inline-block}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{overflow:hidden;text-overflow:ellipsis}.ui-icon-circle-triangle-e{background-image:url("../img/actions/play-next.svg?v=1")}.ui-icon-circle-triangle-w{background-image:url("../img/actions/play-previous.svg?v=1")}.ui-widget.ui-datepicker{margin-top:10px;padding:4px 8px;width:auto;border-radius:var(--border-radius);border:none;z-index:1600 !important}.ui-widget.ui-datepicker .ui-state-default,.ui-widget.ui-datepicker .ui-widget-content .ui-state-default,.ui-widget.ui-datepicker .ui-widget-header .ui-state-default{border:1px solid rgba(0,0,0,0);background:inherit}.ui-widget.ui-datepicker .ui-widget-header{padding:7px;font-size:13px;border:none;background-color:var(--color-main-background);color:var(--color-main-text)}.ui-widget.ui-datepicker .ui-widget-header .ui-datepicker-title{line-height:1;font-weight:normal}.ui-widget.ui-datepicker .ui-widget-header .ui-icon{opacity:.5}.ui-widget.ui-datepicker .ui-widget-header .ui-icon.ui-icon-circle-triangle-e,.ui-widget.ui-datepicker .ui-widget-header .ui-icon.ui-icon-circle-triangle-w{background-position:center center;background-repeat:no-repeat}.ui-widget.ui-datepicker .ui-widget-header .ui-state-hover .ui-icon{opacity:1}.ui-widget.ui-datepicker .ui-datepicker-calendar th{font-weight:normal;color:var(--color-text-lighter);opacity:.8;width:26px;padding:2px}.ui-widget.ui-datepicker .ui-datepicker-calendar tr:hover{background-color:inherit}.ui-widget.ui-datepicker .ui-datepicker-calendar td.ui-datepicker-today a:not(.ui-state-hover){background-color:var(--color-background-darker)}.ui-widget.ui-datepicker .ui-datepicker-calendar td.ui-datepicker-current-day a.ui-state-active,.ui-widget.ui-datepicker .ui-datepicker-calendar td .ui-state-hover,.ui-widget.ui-datepicker .ui-datepicker-calendar td .ui-state-focus{background-color:var(--color-primary-element);color:var(--color-primary-element-text);font-weight:bold}.ui-widget.ui-datepicker .ui-datepicker-calendar td.ui-datepicker-week-end:not(.ui-state-disabled) :not(.ui-state-hover),.ui-widget.ui-datepicker .ui-datepicker-calendar td .ui-priority-secondary:not(.ui-state-hover){color:var(--color-text-lighter);opacity:.8}body[dir=ltr] .ui-widget.ui-datepicker .ui-widget-header .ui-icon.ui-icon-circle-triangle-e{background:url("../img/actions/arrow-right.svg")}body[dir=ltr] .ui-widget.ui-datepicker .ui-widget-header .ui-icon.ui-icon-circle-triangle-w{background:url("../img/actions/arrow-left.svg")}body[dir=rtl] .ui-widget.ui-datepicker .ui-widget-header .ui-icon.ui-icon-circle-triangle-e{background:url("../img/actions/arrow-left.svg")}body[dir=rtl] .ui-widget.ui-datepicker .ui-widget-header .ui-icon.ui-icon-circle-triangle-w{background:url("../img/actions/arrow-right.svg")}.ui-datepicker-prev,.ui-datepicker-next{border:var(--color-border-dark);background:var(--color-main-background)}.ui-widget.ui-timepicker{margin-top:10px !important;width:auto !important;border-radius:var(--border-radius);z-index:1600 !important}.ui-widget.ui-timepicker .ui-widget-content{border:none !important}.ui-widget.ui-timepicker .ui-state-default,.ui-widget.ui-timepicker .ui-widget-content .ui-state-default,.ui-widget.ui-timepicker .ui-widget-header .ui-state-default{border:1px solid rgba(0,0,0,0);background:inherit}.ui-widget.ui-timepicker .ui-widget-header{padding:7px;font-size:13px;border:none;background-color:var(--color-main-background);color:var(--color-main-text)}.ui-widget.ui-timepicker .ui-widget-header .ui-timepicker-title{line-height:1;font-weight:normal}.ui-widget.ui-timepicker table.ui-timepicker tr .ui-timepicker-hour-cell:first-child{margin-inline-start:30px}.ui-widget.ui-timepicker .ui-timepicker-table th{font-weight:normal;color:var(--color-text-lighter);opacity:.8}.ui-widget.ui-timepicker .ui-timepicker-table th.periods{padding:0;width:30px;line-height:30px}.ui-widget.ui-timepicker .ui-timepicker-table tr:hover{background-color:inherit}.ui-widget.ui-timepicker .ui-timepicker-table td.ui-timepicker-hour-cell a.ui-state-active,.ui-widget.ui-timepicker .ui-timepicker-table td.ui-timepicker-minute-cell a.ui-state-active,.ui-widget.ui-timepicker .ui-timepicker-table td .ui-state-hover,.ui-widget.ui-timepicker .ui-timepicker-table td .ui-state-focus{background-color:var(--color-primary-element);color:var(--color-primary-element-text);font-weight:bold}.ui-widget.ui-timepicker .ui-timepicker-table td.ui-timepicker-minutes:not(.ui-state-hover){color:var(--color-text-lighter)}.ui-widget.ui-timepicker .ui-timepicker-table td.ui-timepicker-hours{border-inline-end:1px solid var(--color-border)}.ui-widget.ui-datepicker .ui-datepicker-calendar tr,.ui-widget.ui-timepicker table.ui-timepicker tr{display:flex;flex-wrap:nowrap;justify-content:space-between}.ui-widget.ui-datepicker .ui-datepicker-calendar tr td,.ui-widget.ui-timepicker table.ui-timepicker tr td{flex:1 1 auto;margin:0;padding:2px;height:26px;width:26px;display:flex;align-items:center;justify-content:center}.ui-widget.ui-datepicker .ui-datepicker-calendar tr td>*,.ui-widget.ui-timepicker table.ui-timepicker tr td>*{border-radius:50%;text-align:center;font-weight:normal;color:var(--color-main-text);display:block;line-height:18px;width:18px;height:18px;padding:3px;font-size:.9em}.ui-dialog{position:fixed !important}span.ui-icon{float:left;margin-block:3px 30px;margin-inline:0 7px}.extra-data{padding-inline-end:5px !important}#tagsdialog .content{width:100%;height:280px}#tagsdialog .scrollarea{overflow:auto;border:1px solid var(--color-background-darker);width:100%;height:240px}#tagsdialog .bottombuttons{width:100%;height:30px}#tagsdialog .bottombuttons *{float:left}#tagsdialog .taglist li{background:var(--color-background-dark);padding:.3em .8em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-webkit-transition:background-color 500ms;transition:background-color 500ms}#tagsdialog .taglist li:hover,#tagsdialog .taglist li:active{background:var(--color-background-darker)}#tagsdialog .addinput{width:90%;clear:both}.breadcrumb{display:inline-flex;height:50px}li.crumb{display:inline-flex;background-image:url("../img/breadcrumb.svg?v=1");background-repeat:no-repeat;background-position:right center;height:44px;background-size:auto 24px;flex:0 0 auto;order:1;padding-inline-end:7px}li.crumb.crumbmenu{order:2;position:relative}li.crumb.crumbmenu a{opacity:.5}li.crumb.crumbmenu.canDropChildren .popovermenu,li.crumb.crumbmenu.canDrop .popovermenu{display:block}li.crumb.crumbmenu .popovermenu{top:100%;margin-inline-end:3px}li.crumb.crumbmenu .popovermenu ul{max-height:345px;overflow-y:auto;overflow-x:hidden;padding-inline-end:5px}li.crumb.crumbmenu .popovermenu ul li.canDrop span:first-child{background-image:url("../img/filetypes/folder-drag-accept.svg?v=1") !important}li.crumb.crumbmenu .popovermenu .in-breadcrumb{display:none}li.crumb.hidden{display:none}li.crumb.hidden~.crumb{order:3}li.crumb>a,li.crumb>span{position:relative;padding:12px;opacity:.5;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;flex:0 0 auto;max-width:200px}li.crumb>a.icon-home,li.crumb>a.icon-delete,li.crumb>span.icon-home,li.crumb>span.icon-delete{text-indent:-9999px}li.crumb>a[class^=icon-]{padding:0;width:44px}li.crumb:last-child{font-weight:bold;margin-inline-end:10px}li.crumb:last-child a~span{padding-inline-start:0}li.crumb:hover,li.crumb:focus,li.crumb a:focus,li.crumb:active{opacity:1}li.crumb:hover>a,li.crumb:hover>span,li.crumb:focus>a,li.crumb:focus>span,li.crumb a:focus>a,li.crumb a:focus>span,li.crumb:active>a,li.crumb:active>span{opacity:.7}.appear{opacity:1;-webkit-transition:opacity 500ms ease 0s;-moz-transition:opacity 500ms ease 0s;-ms-transition:opacity 500ms ease 0s;-o-transition:opacity 500ms ease 0s;transition:opacity 500ms ease 0s}.appear.transparent{opacity:0}fieldset.warning legend,fieldset.update legend{top:18px;position:relative}fieldset.warning legend+p,fieldset.update legend+p{margin-top:12px}@-ms-viewport{width:device-width}.hiddenuploadfield{display:none;width:0;height:0;opacity:0}/*!
+ * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ *//*!
+ * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */input,textarea,select,button,div[contenteditable=true],div[contenteditable=false]{font-family:var(--font-face)}.select2-container-multi .select2-choices .select2-search-field input,.select2-search input,.ui-widget{font-family:var(--font-face) !important}.select2-container.select2-drop-above .select2-choice{background-image:unset !important}select,button:not(.button-vue,[class^=vs__]),input,textarea,div[contenteditable=true],div[contenteditable=false]{width:130px;min-height:var(--default-clickable-area);box-sizing:border-box}button:not(.button-vue):disabled,input:not([type=range]):disabled,textarea:disabled{cursor:default;color:var(--color-text-maxcontrast);border-color:var(--color-border-dark);opacity:.7}input:not([type=range]){outline:none}div.select2-drop .select2-search input,input[type=submit],input[type=button],input[type=reset],button:not(.button-vue,[class^=vs__]),.button,.pager li a{padding:7px 14px;background-color:var(--color-main-background);color:var(--color-main-text);border:1px solid var(--color-border-dark);font-size:var(--default-font-size);outline:none;border-radius:var(--border-radius);cursor:text}div.select2-drop .select2-search input:not(.app-navigation-entry-button),input[type=submit]:not(.app-navigation-entry-button),input[type=button]:not(.app-navigation-entry-button),input[type=reset]:not(.app-navigation-entry-button),button:not(.button-vue,[class^=vs__]):not(.app-navigation-entry-button),.button:not(.app-navigation-entry-button),.pager li a:not(.app-navigation-entry-button){margin:3px;margin-inline-start:0}div.select2-drop .select2-search input:not(:disabled,.primary):not(.app-navigation-entry-button):hover,div.select2-drop .select2-search input:not(:disabled,.primary):not(.app-navigation-entry-button):focus,div.select2-drop .select2-search input:not(:disabled,.primary):not(.app-navigation-entry-button).active,input[type=submit]:not(:disabled,.primary):not(.app-navigation-entry-button):hover,input[type=submit]:not(:disabled,.primary):not(.app-navigation-entry-button):focus,input[type=submit]:not(:disabled,.primary):not(.app-navigation-entry-button).active,input[type=button]:not(:disabled,.primary):not(.app-navigation-entry-button):hover,input[type=button]:not(:disabled,.primary):not(.app-navigation-entry-button):focus,input[type=button]:not(:disabled,.primary):not(.app-navigation-entry-button).active,input[type=reset]:not(:disabled,.primary):not(.app-navigation-entry-button):hover,input[type=reset]:not(:disabled,.primary):not(.app-navigation-entry-button):focus,input[type=reset]:not(:disabled,.primary):not(.app-navigation-entry-button).active,button:not(.button-vue,[class^=vs__]):not(:disabled,.primary):not(.app-navigation-entry-button):hover,button:not(.button-vue,[class^=vs__]):not(:disabled,.primary):not(.app-navigation-entry-button):focus,button:not(.button-vue,[class^=vs__]):not(:disabled,.primary):not(.app-navigation-entry-button).active,.button:not(:disabled,.primary):not(.app-navigation-entry-button):hover,.button:not(:disabled,.primary):not(.app-navigation-entry-button):focus,.button:not(:disabled,.primary):not(.app-navigation-entry-button).active,.pager li a:not(:disabled,.primary):not(.app-navigation-entry-button):hover,.pager li a:not(:disabled,.primary):not(.app-navigation-entry-button):focus,.pager li a:not(:disabled,.primary):not(.app-navigation-entry-button).active{border-color:var(--color-main-text);outline:none}div.select2-drop .select2-search input:not(:disabled,.primary):not(.app-navigation-entry-button):active,input[type=submit]:not(:disabled,.primary):not(.app-navigation-entry-button):active,input[type=button]:not(:disabled,.primary):not(.app-navigation-entry-button):active,input[type=reset]:not(:disabled,.primary):not(.app-navigation-entry-button):active,button:not(.button-vue,[class^=vs__]):not(:disabled,.primary):not(.app-navigation-entry-button):active,.button:not(:disabled,.primary):not(.app-navigation-entry-button):active,.pager li a:not(:disabled,.primary):not(.app-navigation-entry-button):active{outline:none;background-color:var(--color-main-background);color:var(--color-main-text)}div.select2-drop .select2-search input:not(:disabled,.primary):focus-visible,input[type=submit]:not(:disabled,.primary):focus-visible,input[type=button]:not(:disabled,.primary):focus-visible,input[type=reset]:not(:disabled,.primary):focus-visible,button:not(.button-vue,[class^=vs__]):not(:disabled,.primary):focus-visible,.button:not(:disabled,.primary):focus-visible,.pager li a:not(:disabled,.primary):focus-visible{box-shadow:0 0 0 4px var(--color-main-background) !important;outline:2px solid var(--color-main-text) !important}div.select2-drop .select2-search input:disabled,input[type=submit]:disabled,input[type=button]:disabled,input[type=reset]:disabled,button:not(.button-vue,[class^=vs__]):disabled,.button:disabled,.pager li a:disabled{background-color:var(--color-background-dark);color:var(--color-main-text);cursor:default;opacity:.5}div.select2-drop .select2-search input:required,input[type=submit]:required,input[type=button]:required,input[type=reset]:required,button:not(.button-vue,[class^=vs__]):required,.button:required,.pager li a:required{box-shadow:none}div.select2-drop .select2-search input:user-invalid,input[type=submit]:user-invalid,input[type=button]:user-invalid,input[type=reset]:user-invalid,button:not(.button-vue,[class^=vs__]):user-invalid,.button:user-invalid,.pager li a:user-invalid{box-shadow:0 0 0 2px var(--color-error) !important}div.select2-drop .select2-search input.primary,input[type=submit].primary,input[type=button].primary,input[type=reset].primary,button:not(.button-vue,[class^=vs__]).primary,.button.primary,.pager li a.primary{background-color:var(--color-primary-element);border-color:var(--color-primary-element);color:var(--color-primary-element-text);cursor:pointer}#body-login :not(.body-login-container) div.select2-drop .select2-search input.primary,#header div.select2-drop .select2-search input.primary,#body-login :not(.body-login-container) input[type=submit].primary,#header input[type=submit].primary,#body-login :not(.body-login-container) input[type=button].primary,#header input[type=button].primary,#body-login :not(.body-login-container) input[type=reset].primary,#header input[type=reset].primary,#body-login :not(.body-login-container) button:not(.button-vue,[class^=vs__]).primary,#header button:not(.button-vue,[class^=vs__]).primary,#body-login :not(.body-login-container) .button.primary,#header .button.primary,#body-login :not(.body-login-container) .pager li a.primary,#header .pager li a.primary{border-color:var(--color-primary-element-text)}div.select2-drop .select2-search input.primary:not(:disabled):hover,div.select2-drop .select2-search input.primary:not(:disabled):focus,div.select2-drop .select2-search input.primary:not(:disabled):active,input[type=submit].primary:not(:disabled):hover,input[type=submit].primary:not(:disabled):focus,input[type=submit].primary:not(:disabled):active,input[type=button].primary:not(:disabled):hover,input[type=button].primary:not(:disabled):focus,input[type=button].primary:not(:disabled):active,input[type=reset].primary:not(:disabled):hover,input[type=reset].primary:not(:disabled):focus,input[type=reset].primary:not(:disabled):active,button:not(.button-vue,[class^=vs__]).primary:not(:disabled):hover,button:not(.button-vue,[class^=vs__]).primary:not(:disabled):focus,button:not(.button-vue,[class^=vs__]).primary:not(:disabled):active,.button.primary:not(:disabled):hover,.button.primary:not(:disabled):focus,.button.primary:not(:disabled):active,.pager li a.primary:not(:disabled):hover,.pager li a.primary:not(:disabled):focus,.pager li a.primary:not(:disabled):active{background-color:var(--color-primary-element-hover);border-color:var(--color-primary-element-hover)}div.select2-drop .select2-search input.primary:not(:disabled):focus,div.select2-drop .select2-search input.primary:not(:disabled):focus-visible,input[type=submit].primary:not(:disabled):focus,input[type=submit].primary:not(:disabled):focus-visible,input[type=button].primary:not(:disabled):focus,input[type=button].primary:not(:disabled):focus-visible,input[type=reset].primary:not(:disabled):focus,input[type=reset].primary:not(:disabled):focus-visible,button:not(.button-vue,[class^=vs__]).primary:not(:disabled):focus,button:not(.button-vue,[class^=vs__]).primary:not(:disabled):focus-visible,.button.primary:not(:disabled):focus,.button.primary:not(:disabled):focus-visible,.pager li a.primary:not(:disabled):focus,.pager li a.primary:not(:disabled):focus-visible{box-shadow:0 0 0 2px var(--color-main-text)}div.select2-drop .select2-search input.primary:not(:disabled):active,input[type=submit].primary:not(:disabled):active,input[type=button].primary:not(:disabled):active,input[type=reset].primary:not(:disabled):active,button:not(.button-vue,[class^=vs__]).primary:not(:disabled):active,.button.primary:not(:disabled):active,.pager li a.primary:not(:disabled):active{color:var(--color-primary-element-text-dark)}div.select2-drop .select2-search input.primary:disabled,input[type=submit].primary:disabled,input[type=button].primary:disabled,input[type=reset].primary:disabled,button:not(.button-vue,[class^=vs__]).primary:disabled,.button.primary:disabled,.pager li a.primary:disabled{background-color:var(--color-primary-element);color:var(--color-primary-element-text-dark);cursor:default}div[contenteditable=false]{margin:3px;margin-inline-start:0;padding:7px 6px;font-size:13px;border:1px solid var(--color-background-darker);outline:none;border-radius:var(--border-radius);background-color:var(--color-background-dark);color:var(--color-text-maxcontrast);cursor:default;opacity:.5}input:not([type=radio]):not([type=checkbox]):not([type=range]):not([type=submit]):not([type=button]):not([type=reset]):not([type=color]):not([type=file]):not([type=image]){-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield;height:var(--default-clickable-area)}input[type=radio],input[type=checkbox],input[type=file],input[type=image]{height:auto;width:auto}input[type=color]{margin:3px;padding:0 2px;min-height:30px;width:40px;cursor:pointer}input[type=hidden]{height:0;width:0}input[type=time]{width:initial}select,button:not(.button-vue,[class^=vs__]),.button,input[type=button],input[type=submit],input[type=reset]{padding:calc((var(--default-clickable-area) - 1lh)/2) calc(3*var(--default-grid-baseline));font-size:var(--default-font-size);width:auto;min-height:var(--default-clickable-area);cursor:pointer;box-sizing:border-box;color:var(--color-primary-element-light-text);background-color:var(--color-primary-element-light);border:none}select:hover,select:focus,button:not(.button-vue,[class^=vs__]):hover,button:not(.button-vue,[class^=vs__]):focus,.button:hover,.button:focus,input[type=button]:hover,input[type=button]:focus,input[type=submit]:hover,input[type=submit]:focus,input[type=reset]:hover,input[type=reset]:focus{background-color:var(--color-primary-element-light-hover)}select:disabled,button:not(.button-vue,[class^=vs__]):disabled,.button:disabled,input[type=button]:disabled,input[type=submit]:disabled,input[type=reset]:disabled{cursor:default}input:not([type=range],.input-field__input,[type=submit],[type=button],[type=reset],.multiselect__input,.select2-input,.action-input__input,[class^=vs__]),select,div[contenteditable=true],textarea{margin:3px;margin-inline-start:0;padding:0 12px;font-size:var(--default-font-size);background-color:var(--color-main-background);color:var(--color-main-text);border:2px solid var(--color-border-maxcontrast);height:36px;outline:none;border-radius:var(--border-radius-large);text-overflow:ellipsis;cursor:pointer}input:not([type=range],.input-field__input,[type=submit],[type=button],[type=reset],.multiselect__input,.select2-input,.action-input__input,[class^=vs__]):not(:disabled):hover,input:not([type=range],.input-field__input,[type=submit],[type=button],[type=reset],.multiselect__input,.select2-input,.action-input__input,[class^=vs__]):not(:disabled):focus,input:not([type=range],.input-field__input,[type=submit],[type=button],[type=reset],.multiselect__input,.select2-input,.action-input__input,[class^=vs__]):not(:disabled):active,select:not(:disabled):hover,select:not(:disabled):focus,select:not(:disabled):active,div[contenteditable=true]:not(:disabled):hover,div[contenteditable=true]:not(:disabled):focus,div[contenteditable=true]:not(:disabled):active,textarea:not(:disabled):hover,textarea:not(:disabled):focus,textarea:not(:disabled):active{border-color:2px solid var(--color-main-text);box-shadow:0 0 0 2px var(--color-main-background)}input:not([type=range],.input-field__input,[type=submit],[type=button],[type=reset],.multiselect__input,.select2-input,.action-input__input,[class^=vs__]):not(:disabled):focus,select:not(:disabled):focus,div[contenteditable=true]:not(:disabled):focus,textarea:not(:disabled):focus{cursor:text}.multiselect__input,.select2-input{background-color:var(--color-main-background);color:var(--color-main-text)}textarea,div[contenteditable=true]{padding:12px;height:auto}select{background:var(--icon-triangle-s-dark) no-repeat;appearance:none;background-color:var(--color-main-background);padding-inline-end:28px !important}body[dir=ltr] select{background-position:right 8px center}body[dir=rtl] select{background-position:left 8px center}select *,button:not(.button-vue,[class^=vs__]) *,.button *{cursor:pointer}select:disabled *,button:not(.button-vue,[class^=vs__]):disabled *,.button:disabled *{cursor:default}button:not(.button-vue,[class^=vs__]),.button,input[type=button],input[type=submit],input[type=reset]{font-weight:bold;border-radius:var(--border-radius-element)}button:not(.button-vue,[class^=vs__])::-moz-focus-inner,.button::-moz-focus-inner,input[type=button]::-moz-focus-inner,input[type=submit]::-moz-focus-inner,input[type=reset]::-moz-focus-inner{border:0}button:not(.button-vue,[class^=vs__]).error,.button.error,input[type=button].error,input[type=submit].error,input[type=reset].error{background-color:var(--color-error) !important;border-color:var(--color-error) !important;color:#fff !important}button:not(.button-vue,[class^=vs__]).error:hover,.button.error:hover,input[type=button].error:hover,input[type=submit].error:hover,input[type=reset].error:hover{background-color:var(--color-error-hover) !important;border-color:var(--color-main-text) !important}button:not(.button-vue,.action-button,[class^=vs__])>span[class^=icon-],button:not(.button-vue,.action-button,[class^=vs__])>span[class*=" icon-"],.button>span[class^=icon-],.button>span[class*=" icon-"]{display:inline-block;vertical-align:text-bottom;opacity:.5}input[type=text]+.icon-confirm,input[type=password]+.icon-confirm,input[type=email]+.icon-confirm{margin-inline-start:-13px !important;border-inline-start-color:rgba(0,0,0,0) !important;border-radius:0 var(--border-radius-large) var(--border-radius-large) 0 !important;border-width:2px;background-clip:padding-box;background-color:var(--color-main-background) !important;opacity:1;height:var(--default-clickable-area);width:var(--default-clickable-area);padding:7px 6px;cursor:pointer;margin-inline-end:0}input[type=text]+.icon-confirm:disabled,input[type=password]+.icon-confirm:disabled,input[type=email]+.icon-confirm:disabled{cursor:default;background-image:var(--icon-confirm-fade-dark)}input[type=text]:not(:active):not(:hover):not(:focus):invalid+.icon-confirm,input[type=password]:not(:active):not(:hover):not(:focus):invalid+.icon-confirm,input[type=email]:not(:active):not(:hover):not(:focus):invalid+.icon-confirm{border-color:var(--color-error)}input[type=text]:not(:active):not(:hover):not(:focus)+.icon-confirm:active,input[type=text]:not(:active):not(:hover):not(:focus)+.icon-confirm:hover,input[type=text]:not(:active):not(:hover):not(:focus)+.icon-confirm:focus,input[type=password]:not(:active):not(:hover):not(:focus)+.icon-confirm:active,input[type=password]:not(:active):not(:hover):not(:focus)+.icon-confirm:hover,input[type=password]:not(:active):not(:hover):not(:focus)+.icon-confirm:focus,input[type=email]:not(:active):not(:hover):not(:focus)+.icon-confirm:active,input[type=email]:not(:active):not(:hover):not(:focus)+.icon-confirm:hover,input[type=email]:not(:active):not(:hover):not(:focus)+.icon-confirm:focus{border-color:var(--color-primary-element) !important;border-radius:var(--border-radius) !important}input[type=text]:not(:active):not(:hover):not(:focus)+.icon-confirm:active:disabled,input[type=text]:not(:active):not(:hover):not(:focus)+.icon-confirm:hover:disabled,input[type=text]:not(:active):not(:hover):not(:focus)+.icon-confirm:focus:disabled,input[type=password]:not(:active):not(:hover):not(:focus)+.icon-confirm:active:disabled,input[type=password]:not(:active):not(:hover):not(:focus)+.icon-confirm:hover:disabled,input[type=password]:not(:active):not(:hover):not(:focus)+.icon-confirm:focus:disabled,input[type=email]:not(:active):not(:hover):not(:focus)+.icon-confirm:active:disabled,input[type=email]:not(:active):not(:hover):not(:focus)+.icon-confirm:hover:disabled,input[type=email]:not(:active):not(:hover):not(:focus)+.icon-confirm:focus:disabled{border-color:var(--color-background-darker) !important}input[type=text]:active+.icon-confirm,input[type=text]:hover+.icon-confirm,input[type=text]:focus+.icon-confirm,input[type=password]:active+.icon-confirm,input[type=password]:hover+.icon-confirm,input[type=password]:focus+.icon-confirm,input[type=email]:active+.icon-confirm,input[type=email]:hover+.icon-confirm,input[type=email]:focus+.icon-confirm{border-color:var(--color-primary-element) !important;border-inline-start-color:rgba(0,0,0,0) !important;z-index:2}button img,.button img{cursor:pointer}select,.button.multiselect{font-weight:normal}input[type=checkbox].radio,input[type=checkbox].checkbox,input[type=radio].radio,input[type=radio].checkbox{position:absolute;inset-inline-start:-10000px;top:auto;width:1px;height:1px;overflow:hidden}input[type=checkbox].radio+label,input[type=checkbox].checkbox+label,input[type=radio].radio+label,input[type=radio].checkbox+label{user-select:none}input[type=checkbox].radio:disabled+label,input[type=checkbox].radio:disabled+label:before,input[type=checkbox].checkbox:disabled+label,input[type=checkbox].checkbox:disabled+label:before,input[type=radio].radio:disabled+label,input[type=radio].radio:disabled+label:before,input[type=radio].checkbox:disabled+label,input[type=radio].checkbox:disabled+label:before{cursor:default}input[type=checkbox].radio+label:before,input[type=checkbox].checkbox+label:before,input[type=radio].radio+label:before,input[type=radio].checkbox+label:before{content:"";display:inline-block;height:14px;width:14px;vertical-align:middle;border-radius:50%;margin:0 3px;margin-inline:3px 6px;border:1px solid var(--color-text-maxcontrast)}input[type=checkbox].radio:not(:disabled):not(:checked)+label:hover:before,input[type=checkbox].radio:focus+label:before,input[type=checkbox].checkbox:not(:disabled):not(:checked)+label:hover:before,input[type=checkbox].checkbox:focus+label:before,input[type=radio].radio:not(:disabled):not(:checked)+label:hover:before,input[type=radio].radio:focus+label:before,input[type=radio].checkbox:not(:disabled):not(:checked)+label:hover:before,input[type=radio].checkbox:focus+label:before{border-color:var(--color-primary-element)}input[type=checkbox].radio:focus-visible+label,input[type=checkbox].checkbox:focus-visible+label,input[type=radio].radio:focus-visible+label,input[type=radio].checkbox:focus-visible+label{outline-style:solid;outline-color:var(--color-main-text);outline-width:1px;outline-offset:2px}input[type=checkbox].radio:checked+label:before,input[type=checkbox].radio.checkbox:indeterminate+label:before,input[type=checkbox].checkbox:checked+label:before,input[type=checkbox].checkbox.checkbox:indeterminate+label:before,input[type=radio].radio:checked+label:before,input[type=radio].radio.checkbox:indeterminate+label:before,input[type=radio].checkbox:checked+label:before,input[type=radio].checkbox.checkbox:indeterminate+label:before{box-shadow:inset 0px 0px 0px 2px var(--color-main-background);background-color:var(--color-primary-element);border-color:var(--color-primary-element)}input[type=checkbox].radio:disabled+label:before,input[type=checkbox].checkbox:disabled+label:before,input[type=radio].radio:disabled+label:before,input[type=radio].checkbox:disabled+label:before{border:1px solid var(--color-text-maxcontrast);background-color:var(--color-text-maxcontrast) !important}input[type=checkbox].radio:checked:disabled+label:before,input[type=checkbox].checkbox:checked:disabled+label:before,input[type=radio].radio:checked:disabled+label:before,input[type=radio].checkbox:checked:disabled+label:before{background-color:var(--color-text-maxcontrast)}input[type=checkbox].radio+label~em,input[type=checkbox].checkbox+label~em,input[type=radio].radio+label~em,input[type=radio].checkbox+label~em{display:inline-block;margin-inline-start:25px}input[type=checkbox].radio+label~em:last-of-type,input[type=checkbox].checkbox+label~em:last-of-type,input[type=radio].radio+label~em:last-of-type,input[type=radio].checkbox+label~em:last-of-type{margin-bottom:14px}input[type=checkbox].checkbox+label:before,input[type=radio].checkbox+label:before{border-radius:1px;height:14px;width:14px;box-shadow:none !important;background-position:center}input[type=checkbox].checkbox:checked+label:before,input[type=radio].checkbox:checked+label:before{background-image:url("../img/actions/checkbox-mark.svg")}input[type=checkbox].checkbox:indeterminate+label:before,input[type=radio].checkbox:indeterminate+label:before{background-image:url("../img/actions/checkbox-mixed.svg")}input[type=checkbox].radio--white+label:before,input[type=checkbox].radio--white:focus+label:before,input[type=checkbox].checkbox--white+label:before,input[type=checkbox].checkbox--white:focus+label:before,input[type=radio].radio--white+label:before,input[type=radio].radio--white:focus+label:before,input[type=radio].checkbox--white+label:before,input[type=radio].checkbox--white:focus+label:before{border-color:hsl(0,0%,73%)}input[type=checkbox].radio--white:not(:disabled):not(:checked)+label:hover:before,input[type=checkbox].checkbox--white:not(:disabled):not(:checked)+label:hover:before,input[type=radio].radio--white:not(:disabled):not(:checked)+label:hover:before,input[type=radio].checkbox--white:not(:disabled):not(:checked)+label:hover:before{border-color:#fff}input[type=checkbox].radio--white:checked+label:before,input[type=checkbox].checkbox--white:checked+label:before,input[type=radio].radio--white:checked+label:before,input[type=radio].checkbox--white:checked+label:before{box-shadow:inset 0px 0px 0px 2px var(--color-main-background);background-color:hsl(0,0%,86%);border-color:hsl(0,0%,86%)}input[type=checkbox].radio--white:disabled+label:before,input[type=checkbox].checkbox--white:disabled+label:before,input[type=radio].radio--white:disabled+label:before,input[type=radio].checkbox--white:disabled+label:before{background-color:hsl(0,0%,73%) !important;border-color:hsla(0,0%,100%,.4) !important}input[type=checkbox].radio--white:checked:disabled+label:before,input[type=checkbox].checkbox--white:checked:disabled+label:before,input[type=radio].radio--white:checked:disabled+label:before,input[type=radio].checkbox--white:checked:disabled+label:before{box-shadow:inset 0px 0px 0px 2px var(--color-main-background);border-color:hsla(0,0%,100%,.4) !important;background-color:hsl(0,0%,73%)}input[type=checkbox].checkbox--white:checked+label:before,input[type=checkbox].checkbox--white:indeterminate+label:before,input[type=radio].checkbox--white:checked+label:before,input[type=radio].checkbox--white:indeterminate+label:before{background-color:rgba(0,0,0,0) !important;border-color:#fff !important;background-image:url("../img/actions/checkbox-mark-white.svg")}input[type=checkbox].checkbox--white:indeterminate+label:before,input[type=radio].checkbox--white:indeterminate+label:before{background-image:url("../img/actions/checkbox-mixed-white.svg")}input[type=checkbox].checkbox--white:disabled+label:before,input[type=radio].checkbox--white:disabled+label:before{opacity:.7}div.select2-drop{margin-top:-2px;background-color:var(--color-main-background)}div.select2-drop.select2-drop-active{border-color:var(--color-border-dark)}div.select2-drop .avatar{display:inline-block;margin-inline-end:8px;vertical-align:middle}div.select2-drop .avatar img{cursor:pointer}div.select2-drop .select2-search input{min-height:auto;background:var(--icon-search-dark) no-repeat !important;background-origin:content-box !important}div.select2-drop .select2-results{max-height:250px;margin:0;padding:0}div.select2-drop .select2-results .select2-result-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}div.select2-drop .select2-results .select2-result-label span{cursor:pointer}div.select2-drop .select2-results .select2-result-label span em{cursor:inherit;background:unset}div.select2-drop .select2-results .select2-result,div.select2-drop .select2-results .select2-no-results,div.select2-drop .select2-results .select2-searching{position:relative;display:list-item;padding:12px;background-color:rgba(0,0,0,0);cursor:pointer;color:var(--color-text-maxcontrast)}div.select2-drop .select2-results .select2-result.select2-selected{background-color:var(--color-background-dark)}div.select2-drop .select2-results .select2-highlighted{background-color:var(--color-background-dark);color:var(--color-main-text)}body[dir=ltr] div.select2-drop .select2-search input{background-position:right center !important}body[dir=rtl] div.select2-drop .select2-search input{background-position:left center !important}.select2-chosen .avatar,.select2-chosen .avatar img,#select2-drop .avatar,#select2-drop .avatar img{cursor:pointer}div.select2-container-multi .select2-choices,div.select2-container-multi.select2-container-active .select2-choices{box-shadow:none;white-space:nowrap;text-overflow:ellipsis;background:var(--color-main-background);color:var(--color-text-maxcontrast) !important;box-sizing:content-box;border-radius:var(--border-radius-large);border:2px solid var(--color-border-dark);margin:0;padding:6px;min-height:44px}div.select2-container-multi .select2-choices:focus-within,div.select2-container-multi.select2-container-active .select2-choices:focus-within{border-color:var(--color-primary-element)}div.select2-container-multi .select2-choices .select2-search-choice,div.select2-container-multi.select2-container-active .select2-choices .select2-search-choice{line-height:20px;padding-inline-start:5px}div.select2-container-multi .select2-choices .select2-search-choice.select2-search-choice-focus,div.select2-container-multi .select2-choices .select2-search-choice:hover,div.select2-container-multi .select2-choices .select2-search-choice:active,div.select2-container-multi .select2-choices .select2-search-choice,div.select2-container-multi.select2-container-active .select2-choices .select2-search-choice.select2-search-choice-focus,div.select2-container-multi.select2-container-active .select2-choices .select2-search-choice:hover,div.select2-container-multi.select2-container-active .select2-choices .select2-search-choice:active,div.select2-container-multi.select2-container-active .select2-choices .select2-search-choice{background-image:none;background-color:var(--color-main-background);color:var(--color-text-maxcontrast);border:1px solid var(--color-border-dark)}div.select2-container-multi .select2-choices .select2-search-choice .select2-search-choice-close,div.select2-container-multi.select2-container-active .select2-choices .select2-search-choice .select2-search-choice-close{display:none}div.select2-container-multi .select2-choices .select2-search-field input,div.select2-container-multi.select2-container-active .select2-choices .select2-search-field input{line-height:20px;min-height:28px;max-height:28px;color:var(--color-main-text)}div.select2-container-multi .select2-choices .select2-search-field input.select2-active,div.select2-container-multi.select2-container-active .select2-choices .select2-search-field input.select2-active{background:none !important}div.select2-container{margin:3px;margin-inline-start:0}div.select2-container.select2-container-multi .select2-choices{display:flex;flex-wrap:wrap}div.select2-container.select2-container-multi .select2-choices li{float:none}div.select2-container a.select2-choice{box-shadow:none;white-space:nowrap;text-overflow:ellipsis;background:var(--color-main-background);color:var(--color-text-maxcontrast) !important;box-sizing:content-box;border-radius:var(--border-radius-large);border:2px solid var(--color-border-dark);margin:0;padding:6px 12px;min-height:44px}div.select2-container a.select2-choice:focus-within{border-color:var(--color-primary-element)}div.select2-container a.select2-choice .select2-search-choice{line-height:20px;padding-inline-start:5px;background-image:none;background-color:var(--color-background-dark);border-color:var(--color-background-dark)}div.select2-container a.select2-choice .select2-search-choice .select2-search-choice-close{display:none}div.select2-container a.select2-choice .select2-search-choice.select2-search-choice-focus,div.select2-container a.select2-choice .select2-search-choice:hover{background-color:var(--color-border);border-color:var(--color-border)}div.select2-container a.select2-choice .select2-arrow{background:none;border-radius:0;border:none}div.select2-container a.select2-choice .select2-arrow b{background:var(--icon-triangle-s-dark) no-repeat center !important;opacity:.5}div.select2-container a.select2-choice:hover .select2-arrow b,div.select2-container a.select2-choice:focus .select2-arrow b,div.select2-container a.select2-choice:active .select2-arrow b{opacity:.7}div.select2-container a.select2-choice .select2-search-field input{line-height:20px}.v-select{margin:3px;margin-inline-start:0;display:inline-block}.v-select .dropdown-toggle{display:flex !important;flex-wrap:wrap}.v-select .dropdown-toggle .selected-tag{line-height:20px;padding-inline-start:5px;background-image:none;background-color:var(--color-main-background);color:var(--color-text-maxcontrast);border:1px solid var(--color-border-dark);display:inline-flex;align-items:center}.v-select .dropdown-toggle .selected-tag .close{margin-inline-start:3px}.v-select .dropdown-menu{padding:0}.v-select .dropdown-menu li{padding:5px;position:relative;display:list-item;background-color:rgba(0,0,0,0);cursor:pointer;color:var(--color-text-maxcontrast)}.v-select .dropdown-menu li a{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;height:25px;padding-block:3px 4px;padding-inline:2px 7px;margin:0;cursor:pointer;min-height:1em;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:inline-flex;align-items:center;background-color:rgba(0,0,0,0) !important;color:inherit !important}.v-select .dropdown-menu li a::before{content:" ";background-image:var(--icon-checkmark-dark);background-repeat:no-repeat;background-position:center;min-width:16px;min-height:16px;display:block;opacity:.5;margin-inline-end:5px;visibility:hidden}.v-select .dropdown-menu li.highlight{color:var(--color-main-text)}.v-select .dropdown-menu li.active>a{background-color:var(--color-background-dark);color:var(--color-main-text)}.v-select .dropdown-menu li.active>a::before{visibility:visible}progress:not(.vue){display:block;width:100%;padding:0;border:0 none;background-color:var(--color-background-dark);border-radius:var(--border-radius);flex-basis:100%;height:5px;overflow:hidden}progress:not(.vue).warn::-moz-progress-bar{background:var(--color-error)}progress:not(.vue).warn::-webkit-progress-value{background:var(--color-error)}progress:not(.vue)::-webkit-progress-bar{background:rgba(0,0,0,0)}progress:not(.vue)::-moz-progress-bar{border-radius:var(--border-radius);background:var(--color-primary-element);transition:250ms all ease-in-out}progress:not(.vue)::-webkit-progress-value{border-radius:var(--border-radius);background:var(--color-primary-element);transition:250ms all ease-in-out}@keyframes shake{10%,90%{transform:translate(-1px)}20%,80%{transform:translate(2px)}30%,50%,70%{transform:translate(-4px)}40%,60%{transform:translate(4px)}}.shake{animation-name:shake;animation-duration:.7s;animation-timing-function:ease-out}label.infield{position:absolute;inset-inline-start:-10000px;top:-10000px;width:1px;height:1px;overflow:hidden}::placeholder{color:var(--color-text-maxcontrast);font-size:var(--default-font-size)}::-ms-input-placeholder{color:var(--color-text-maxcontrast);font-size:var(--default-font-size)}::-webkit-input-placeholder{color:var(--color-text-maxcontrast);font-size:var(--default-font-size)}/*!
+ * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */#skip-actions{position:absolute;overflow:hidden;z-index:9999;top:-999px;inset-inline-start:3px;padding:11px;display:flex;flex-wrap:wrap;gap:11px}#skip-actions:focus-within{top:var(--header-height)}#header{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}#header:not(.header-guest){display:inline-flex;position:absolute;top:0;width:100%;z-index:2000;height:var(--header-height);box-sizing:border-box;justify-content:space-between}#header #nextcloud{padding:5px 0;padding-inline-start:86px;position:relative;height:calc(100% - var(--default-grid-baseline));box-sizing:border-box;opacity:1;align-items:center;display:flex;flex-wrap:wrap;overflow:hidden;margin:2px}#header #nextcloud:hover,#header #nextcloud:active{opacity:1}#header #nextcloud .logo{display:inline-flex;background-image:var(--image-logoheader, var(--image-logo, url("../img/logo/logo.svg")));background-repeat:no-repeat;background-size:contain;background-position:center;width:62px;position:absolute;inset-inline-start:12px;top:1px;bottom:1px;filter:var(--image-logoheader-custom, var(--background-image-invert-if-bright))}#header #nextcloud:focus-visible,#header .app-menu-entry a:focus-visible,#header .header-menu button:first-of-type:focus-visible{outline:none}#header #nextcloud:focus-visible::after,#header .app-menu-entry a:focus-visible::after,#header .header-menu button:first-of-type:focus-visible::after{content:" ";position:absolute;inset-block-end:2px;transform:translateX(-50%);width:12px;height:2px;border-radius:3px;background-color:var(--color-background-plain-text);inset-inline-start:50%;opacity:1}#header .header-start{display:inline-flex;align-items:center;flex:1 0;white-space:nowrap;min-width:0}#header .header-end{display:inline-flex;align-items:center;justify-content:flex-end;flex-shrink:1;margin-inline-end:calc(3*var(--default-grid-baseline))}#header .header-end>div,#header .header-end>form{height:100%;position:relative}#header .header-end>div>.menutoggle,#header .header-end>form>.menutoggle{display:flex;justify-content:center;align-items:center;width:var(--header-height);height:var(--header-menu-item-height);cursor:pointer;opacity:.85;padding:0;margin:2px 0}#header .header-end>div>.menutoggle:focus,#header .header-end>form>.menutoggle:focus{opacity:1}#header .header-end>div>.menutoggle:focus-visible,#header .header-end>form>.menutoggle:focus-visible{outline:none}#header .header-end>div>.menu,#header .header-end>form>.menu{background-color:var(--color-main-background);filter:drop-shadow(0 1px 5px var(--color-box-shadow));border-radius:var(--border-radius-large);box-sizing:border-box;z-index:2000;position:absolute;max-width:350px;min-height:calc(var(--default-clickable-area)*1.5);max-height:calc(100vh - var(--header-height) - 2*var(--default-grid-baseline));inset-inline-end:8px;top:var(--header-height);margin:0;overflow-y:auto}#header .header-end>div>.menu:not(.popovermenu),#header .header-end>form>.menu:not(.popovermenu){display:none}#header .header-end>div>.menu:after,#header .header-end>form>.menu:after{border:10px solid rgba(0,0,0,0);border-bottom-color:var(--color-main-background);bottom:100%;content:" ";height:0;width:0;position:absolute;pointer-events:none;inset-inline-end:10px}#header .header-end>div>.menu>div,#header .header-end>div>.menu>ul,#header .header-end>form>.menu>div,#header .header-end>form>.menu>ul{-webkit-overflow-scrolling:touch;min-height:calc(var(--default-clickable-area)*1.5);max-height:calc(100vh - var(--header-height) - 2*var(--default-grid-baseline))}#header .header-end>div .emptycontent h2,#header .header-end>form .emptycontent h2{font-weight:normal;font-size:16px}#header .header-end>div .emptycontent [class^=icon-],#header .header-end>div .emptycontent [class*=icon-],#header .header-end>form .emptycontent [class^=icon-],#header .header-end>form .emptycontent [class*=icon-]{background-size:48px;height:48px;width:48px}#header .header-appname{color:var(--color-background-plain-text);font-size:16px;font-weight:bold;margin:0;padding:0;padding-inline-end:5px;overflow:hidden;text-overflow:ellipsis;flex:1 1 100%}#header .header-appname .header-info{display:flex;flex-direction:column;overflow:hidden}#header .header-appname .header-info .header-title{overflow:hidden;text-overflow:ellipsis}#header .header-appname .header-info .header-shared-by{color:var(--color-background-plain-text);position:relative;font-weight:300;font-size:var(--font-size-small);line-height:var(--font-size-small);overflow:hidden;text-overflow:ellipsis}@media(display-mode: standalone)or (display-mode: minimal-ui){#header:not(.header-guest){display:none !important}#content,#content-vue{margin-top:var(--body-container-margin)}:root{--body-height: calc(100% - env(safe-area-inset-bottom) - var(--body-container-margin) * 2) !important}}/*!
+ * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */[class^=icon-],[class*=" icon-"]{background-repeat:no-repeat;background-position:center;min-width:16px;min-height:16px}.icon-breadcrumb{background-image:url("../img/breadcrumb.svg?v=1")}.loading,.loading-small,.icon-loading,.icon-loading-dark,.icon-loading-small,.icon-loading-small-dark{position:relative}.loading:after,.loading-small:after,.icon-loading:after,.icon-loading-dark:after,.icon-loading-small:after,.icon-loading-small-dark:after{z-index:2;content:"";height:28px;width:28px;margin:-16px 0 0 -16px;position:absolute;top:50%;inset-inline-start:50%;border-radius:100%;-webkit-animation:rotate .8s infinite linear;animation:rotate .8s infinite linear;-webkit-transform-origin:center;-ms-transform-origin:center;transform-origin:center;border:2px solid var(--color-loading-light);border-top-color:var(--color-loading-dark);filter:var(--background-invert-if-dark)}.primary .loading:after,.primary+.loading:after,.primary .loading-small:after,.primary+.loading-small:after,.primary .icon-loading:after,.primary+.icon-loading:after,.primary .icon-loading-dark:after,.primary+.icon-loading-dark:after,.primary .icon-loading-small:after,.primary+.icon-loading-small:after,.primary .icon-loading-small-dark:after,.primary+.icon-loading-small-dark:after{filter:var(--primary-invert-if-bright)}.icon-loading-dark:after,.icon-loading-small-dark:after{border:2px solid var(--color-loading-dark);border-top-color:var(--color-loading-light)}.icon-loading-small:after,.icon-loading-small-dark:after{height:12px;width:12px;margin:-8px 0 0 -8px}audio.icon-loading,canvas.icon-loading,embed.icon-loading,iframe.icon-loading,img.icon-loading,input.icon-loading,object.icon-loading,video.icon-loading{background-image:url("../img/loading.gif")}audio.icon-loading-dark,canvas.icon-loading-dark,embed.icon-loading-dark,iframe.icon-loading-dark,img.icon-loading-dark,input.icon-loading-dark,object.icon-loading-dark,video.icon-loading-dark{background-image:url("../img/loading-dark.gif")}audio.icon-loading-small,canvas.icon-loading-small,embed.icon-loading-small,iframe.icon-loading-small,img.icon-loading-small,input.icon-loading-small,object.icon-loading-small,video.icon-loading-small{background-image:url("../img/loading-small.gif")}audio.icon-loading-small-dark,canvas.icon-loading-small-dark,embed.icon-loading-small-dark,iframe.icon-loading-small-dark,img.icon-loading-small-dark,input.icon-loading-small-dark,object.icon-loading-small-dark,video.icon-loading-small-dark{background-image:url("../img/loading-small-dark.gif")}@keyframes rotate{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}.icon-32{background-size:32px !important}.icon-white.icon-shadow,.icon-audio-white,.icon-audio-off-white,.icon-fullscreen-white,.icon-screen-white,.icon-screen-off-white,.icon-video-white,.icon-video-off-white{filter:drop-shadow(1px 1px 4px var(--color-box-shadow))}/*!
+ * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ *//*!
+ * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */@media screen and (max-width: 1024px){:root{--body-container-margin: 0px !important;--body-container-radius: 0px !important}}html{width:100%;height:100%;position:absolute;background-color:var(--color-background-plain, var(--color-main-background))}body{background-color:var(--color-background-plain, var(--color-main-background));background-image:var(--image-background);background-size:cover;background-position:center;position:fixed;width:100%;height:calc(100vh - env(safe-area-inset-bottom))}h2,h3,h4,h5,h6{font-weight:600;line-height:1.5;margin-top:24px;margin-bottom:12px;color:var(--color-main-text)}h2{font-size:1.8em}h3{font-size:1.6em}h4{font-size:1.4em}h5{font-size:1.25em}h6{font-size:1.1em}em{font-style:normal;color:var(--color-text-maxcontrast)}dl{padding:12px 0}dt,dd{display:inline-block;padding:12px;padding-inline-start:0}dt{width:130px;white-space:nowrap;text-align:end}kbd{padding:4px 10px;border:1px solid #ccc;box-shadow:0 1px 0 rgba(0,0,0,.2);border-radius:var(--border-radius);display:inline-block;white-space:nowrap}#content[class*=app-] *{box-sizing:border-box}#app-navigation:not(.vue){--color-text-maxcontrast: var(--color-text-maxcontrast-background-blur, var(--color-main-text));width:300px;z-index:500;overflow-y:auto;overflow-x:hidden;background-color:var(--color-main-background-blur);backdrop-filter:var(--filter-background-blur);-webkit-backdrop-filter:var(--filter-background-blur);-webkit-user-select:none;position:sticky;height:100%;-moz-user-select:none;-ms-user-select:none;user-select:none;display:flex;flex-direction:column;flex-grow:0;flex-shrink:0}#app-navigation:not(.vue) .app-navigation-caption{font-weight:bold;line-height:var(--default-clickable-area);padding:10px var(--default-clickable-area) 0 var(--default-clickable-area);white-space:nowrap;text-overflow:ellipsis;box-shadow:none !important;user-select:none;pointer-events:none;margin-inline-start:10px}.app-navigation-personal .app-navigation-new,.app-navigation-administration .app-navigation-new{display:block;padding:calc(var(--default-grid-baseline)*2)}.app-navigation-personal .app-navigation-new button,.app-navigation-administration .app-navigation-new button{display:inline-block;width:100%;padding:10px;padding-inline-start:34px;text-align:start;margin:0}.app-navigation-personal li,.app-navigation-administration li{position:relative}.app-navigation-personal>ul,.app-navigation-administration>ul{position:relative;height:100%;width:100%;overflow-x:hidden;overflow-y:auto;box-sizing:border-box;display:flex;flex-direction:column;padding:calc(var(--default-grid-baseline)*2);padding-bottom:0}.app-navigation-personal>ul:last-child,.app-navigation-administration>ul:last-child{padding-bottom:calc(var(--default-grid-baseline)*2)}.app-navigation-personal>ul>li,.app-navigation-administration>ul>li{display:inline-flex;flex-wrap:wrap;order:1;flex-shrink:0;margin:0;margin-bottom:3px;width:100%;border-radius:var(--border-radius-element)}.app-navigation-personal>ul>li.pinned,.app-navigation-administration>ul>li.pinned{order:2}.app-navigation-personal>ul>li.pinned.first-pinned,.app-navigation-administration>ul>li.pinned.first-pinned{margin-top:auto !important}.app-navigation-personal>ul>li>.app-navigation-entry-deleted,.app-navigation-administration>ul>li>.app-navigation-entry-deleted{padding-inline-start:var(--default-clickable-area) !important}.app-navigation-personal>ul>li>.app-navigation-entry-edit,.app-navigation-administration>ul>li>.app-navigation-entry-edit{padding-inline-start:calc(var(--default-clickable-area) - 6px) !important}.app-navigation-personal>ul>li a:hover,.app-navigation-personal>ul>li a:hover>a,.app-navigation-personal>ul>li a:focus,.app-navigation-personal>ul>li a:focus>a,.app-navigation-administration>ul>li a:hover,.app-navigation-administration>ul>li a:hover>a,.app-navigation-administration>ul>li a:focus,.app-navigation-administration>ul>li a:focus>a{background-color:var(--color-background-hover)}.app-navigation-personal>ul>li a:focus-visible,.app-navigation-administration>ul>li a:focus-visible{box-shadow:0 0 0 4px var(--color-main-background);outline:2px solid var(--color-main-text)}.app-navigation-personal>ul>li.active,.app-navigation-personal>ul>li.active>a,.app-navigation-personal>ul>li a:active,.app-navigation-personal>ul>li a:active>a,.app-navigation-personal>ul>li a.selected,.app-navigation-personal>ul>li a.selected>a,.app-navigation-personal>ul>li a.active,.app-navigation-personal>ul>li a.active>a,.app-navigation-administration>ul>li.active,.app-navigation-administration>ul>li.active>a,.app-navigation-administration>ul>li a:active,.app-navigation-administration>ul>li a:active>a,.app-navigation-administration>ul>li a.selected,.app-navigation-administration>ul>li a.selected>a,.app-navigation-administration>ul>li a.active,.app-navigation-administration>ul>li a.active>a{background-color:var(--color-primary-element);color:var(--color-primary-element-text)}.app-navigation-personal>ul>li.active:first-child>img,.app-navigation-personal>ul>li.active>a:first-child>img,.app-navigation-personal>ul>li a:active:first-child>img,.app-navigation-personal>ul>li a:active>a:first-child>img,.app-navigation-personal>ul>li a.selected:first-child>img,.app-navigation-personal>ul>li a.selected>a:first-child>img,.app-navigation-personal>ul>li a.active:first-child>img,.app-navigation-personal>ul>li a.active>a:first-child>img,.app-navigation-administration>ul>li.active:first-child>img,.app-navigation-administration>ul>li.active>a:first-child>img,.app-navigation-administration>ul>li a:active:first-child>img,.app-navigation-administration>ul>li a:active>a:first-child>img,.app-navigation-administration>ul>li a.selected:first-child>img,.app-navigation-administration>ul>li a.selected>a:first-child>img,.app-navigation-administration>ul>li a.active:first-child>img,.app-navigation-administration>ul>li a.active>a:first-child>img{filter:var(--primary-invert-if-dark)}.app-navigation-personal>ul>li.icon-loading-small:after,.app-navigation-administration>ul>li.icon-loading-small:after{inset-inline-start:22px;top:22px}.app-navigation-personal>ul>li.deleted>ul,.app-navigation-personal>ul>li.collapsible:not(.open)>ul,.app-navigation-administration>ul>li.deleted>ul,.app-navigation-administration>ul>li.collapsible:not(.open)>ul{display:none}.app-navigation-personal>ul>li>ul,.app-navigation-administration>ul>li>ul{flex:0 1 auto;width:100%;position:relative}.app-navigation-personal>ul>li>ul>li,.app-navigation-administration>ul>li>ul>li{display:inline-flex;flex-wrap:wrap;padding-inline-start:var(--default-clickable-area);width:100%;margin-bottom:3px}.app-navigation-personal>ul>li>ul>li:hover,.app-navigation-personal>ul>li>ul>li:hover>a,.app-navigation-personal>ul>li>ul>li:focus,.app-navigation-personal>ul>li>ul>li:focus>a,.app-navigation-administration>ul>li>ul>li:hover,.app-navigation-administration>ul>li>ul>li:hover>a,.app-navigation-administration>ul>li>ul>li:focus,.app-navigation-administration>ul>li>ul>li:focus>a{border-radius:var(--border-radius-element);background-color:var(--color-background-hover)}.app-navigation-personal>ul>li>ul>li.active,.app-navigation-personal>ul>li>ul>li.active>a,.app-navigation-personal>ul>li>ul>li a.selected,.app-navigation-personal>ul>li>ul>li a.selected>a,.app-navigation-administration>ul>li>ul>li.active,.app-navigation-administration>ul>li>ul>li.active>a,.app-navigation-administration>ul>li>ul>li a.selected,.app-navigation-administration>ul>li>ul>li a.selected>a{border-radius:var(--border-radius-element);background-color:var(--color-primary-element-light)}.app-navigation-personal>ul>li>ul>li.active:first-child>img,.app-navigation-personal>ul>li>ul>li.active>a:first-child>img,.app-navigation-personal>ul>li>ul>li a.selected:first-child>img,.app-navigation-personal>ul>li>ul>li a.selected>a:first-child>img,.app-navigation-administration>ul>li>ul>li.active:first-child>img,.app-navigation-administration>ul>li>ul>li.active>a:first-child>img,.app-navigation-administration>ul>li>ul>li a.selected:first-child>img,.app-navigation-administration>ul>li>ul>li a.selected>a:first-child>img{filter:var(--primary-invert-if-dark)}.app-navigation-personal>ul>li>ul>li.icon-loading-small:after,.app-navigation-administration>ul>li>ul>li.icon-loading-small:after{inset-inline-start:calc(var(--default-clickable-area)/2)}.app-navigation-personal>ul>li>ul>li>.app-navigation-entry-deleted,.app-navigation-administration>ul>li>ul>li>.app-navigation-entry-deleted{margin-inline-start:4px;padding-inline-start:84px}.app-navigation-personal>ul>li>ul>li>.app-navigation-entry-edit,.app-navigation-administration>ul>li>ul>li>.app-navigation-entry-edit{margin-inline-start:4px;padding-inline-start:calc(2*var(--default-clickable-area) - 10px) !important}.app-navigation-personal>ul>li,.app-navigation-personal>ul>li>ul>li,.app-navigation-administration>ul>li,.app-navigation-administration>ul>li>ul>li{position:relative;box-sizing:border-box}.app-navigation-personal>ul>li.icon-loading-small>a,.app-navigation-personal>ul>li.icon-loading-small>.app-navigation-entry-bullet,.app-navigation-personal>ul>li>ul>li.icon-loading-small>a,.app-navigation-personal>ul>li>ul>li.icon-loading-small>.app-navigation-entry-bullet,.app-navigation-administration>ul>li.icon-loading-small>a,.app-navigation-administration>ul>li.icon-loading-small>.app-navigation-entry-bullet,.app-navigation-administration>ul>li>ul>li.icon-loading-small>a,.app-navigation-administration>ul>li>ul>li.icon-loading-small>.app-navigation-entry-bullet{background:rgba(0,0,0,0) !important}.app-navigation-personal>ul>li>a,.app-navigation-personal>ul>li>ul>li>a,.app-navigation-administration>ul>li>a,.app-navigation-administration>ul>li>ul>li>a{background-size:16px 16px;background-repeat:no-repeat;display:block;justify-content:space-between;line-height:var(--default-clickable-area);min-height:var(--default-clickable-area);padding-block:0;padding-inline:calc(2*var(--default-grid-baseline));overflow:hidden;box-sizing:border-box;white-space:nowrap;text-overflow:ellipsis;border-radius:var(--border-radius-element);color:var(--color-main-text);flex:1 1 0px;z-index:100}.app-navigation-personal>ul>li>a.svg,.app-navigation-personal>ul>li>ul>li>a.svg,.app-navigation-administration>ul>li>a.svg,.app-navigation-administration>ul>li>ul>li>a.svg{padding-block:0;padding-inline:var(--default-clickable-area) 12px}.app-navigation-personal>ul>li>a.svg :focus-visible,.app-navigation-personal>ul>li>ul>li>a.svg :focus-visible,.app-navigation-administration>ul>li>a.svg :focus-visible,.app-navigation-administration>ul>li>ul>li>a.svg :focus-visible{padding-block:0;padding-inline:calc(var(--default-clickable-area) - 2px) 8px}.app-navigation-personal>ul>li>a:first-child img,.app-navigation-personal>ul>li>ul>li>a:first-child img,.app-navigation-administration>ul>li>a:first-child img,.app-navigation-administration>ul>li>ul>li>a:first-child img{margin-inline-end:calc(2*var(--default-grid-baseline)) !important;width:16px;height:16px;filter:var(--background-invert-if-dark)}.app-navigation-personal>ul>li>a>.app-navigation-entry-utils,.app-navigation-personal>ul>li>ul>li>a>.app-navigation-entry-utils,.app-navigation-administration>ul>li>a>.app-navigation-entry-utils,.app-navigation-administration>ul>li>ul>li>a>.app-navigation-entry-utils{display:inline-block}.app-navigation-personal>ul>li>a>.app-navigation-entry-utils .app-navigation-entry-utils-counter,.app-navigation-personal>ul>li>ul>li>a>.app-navigation-entry-utils .app-navigation-entry-utils-counter,.app-navigation-administration>ul>li>a>.app-navigation-entry-utils .app-navigation-entry-utils-counter,.app-navigation-administration>ul>li>ul>li>a>.app-navigation-entry-utils .app-navigation-entry-utils-counter{padding-inline-end:0 !important}.app-navigation-personal>ul>li>.app-navigation-entry-bullet,.app-navigation-personal>ul>li>ul>li>.app-navigation-entry-bullet,.app-navigation-administration>ul>li>.app-navigation-entry-bullet,.app-navigation-administration>ul>li>ul>li>.app-navigation-entry-bullet{position:absolute;display:block;margin:16px;width:12px;height:12px;border:none;border-radius:50%;cursor:pointer;transition:background 100ms ease-in-out}.app-navigation-personal>ul>li>.app-navigation-entry-bullet+a,.app-navigation-personal>ul>li>ul>li>.app-navigation-entry-bullet+a,.app-navigation-administration>ul>li>.app-navigation-entry-bullet+a,.app-navigation-administration>ul>li>ul>li>.app-navigation-entry-bullet+a{background:rgba(0,0,0,0) !important}.app-navigation-personal>ul>li>.app-navigation-entry-menu,.app-navigation-personal>ul>li>ul>li>.app-navigation-entry-menu,.app-navigation-administration>ul>li>.app-navigation-entry-menu,.app-navigation-administration>ul>li>ul>li>.app-navigation-entry-menu{top:var(--default-clickable-area)}.app-navigation-personal>ul>li.editing .app-navigation-entry-edit,.app-navigation-personal>ul>li>ul>li.editing .app-navigation-entry-edit,.app-navigation-administration>ul>li.editing .app-navigation-entry-edit,.app-navigation-administration>ul>li>ul>li.editing .app-navigation-entry-edit{opacity:1;z-index:250}.app-navigation-personal>ul>li.deleted .app-navigation-entry-deleted,.app-navigation-personal>ul>li>ul>li.deleted .app-navigation-entry-deleted,.app-navigation-administration>ul>li.deleted .app-navigation-entry-deleted,.app-navigation-administration>ul>li>ul>li.deleted .app-navigation-entry-deleted{transform:translateX(0);z-index:250}.app-navigation-personal.hidden,.app-navigation-administration.hidden{display:none}.app-navigation-personal .app-navigation-entry-utils .app-navigation-entry-utils-menu-button>button,.app-navigation-personal .app-navigation-entry-deleted .app-navigation-entry-deleted-button,.app-navigation-administration .app-navigation-entry-utils .app-navigation-entry-utils-menu-button>button,.app-navigation-administration .app-navigation-entry-deleted .app-navigation-entry-deleted-button{border:0;opacity:.5;background-color:rgba(0,0,0,0);background-repeat:no-repeat;background-position:center}.app-navigation-personal .app-navigation-entry-utils .app-navigation-entry-utils-menu-button>button:hover,.app-navigation-personal .app-navigation-entry-utils .app-navigation-entry-utils-menu-button>button:focus,.app-navigation-personal .app-navigation-entry-deleted .app-navigation-entry-deleted-button:hover,.app-navigation-personal .app-navigation-entry-deleted .app-navigation-entry-deleted-button:focus,.app-navigation-administration .app-navigation-entry-utils .app-navigation-entry-utils-menu-button>button:hover,.app-navigation-administration .app-navigation-entry-utils .app-navigation-entry-utils-menu-button>button:focus,.app-navigation-administration .app-navigation-entry-deleted .app-navigation-entry-deleted-button:hover,.app-navigation-administration .app-navigation-entry-deleted .app-navigation-entry-deleted-button:focus{background-color:rgba(0,0,0,0);opacity:1}.app-navigation-personal .collapsible .collapse,.app-navigation-administration .collapsible .collapse{opacity:0;position:absolute;width:var(--default-clickable-area);height:var(--default-clickable-area);margin:0;z-index:110;inset-inline-start:0}.app-navigation-personal .collapsible .collapse:focus-visible,.app-navigation-administration .collapsible .collapse:focus-visible{opacity:1;border-width:0;box-shadow:inset 0 0 0 2px var(--color-primary-element);background:none}.app-navigation-personal .collapsible:before,.app-navigation-administration .collapsible:before{position:absolute;height:var(--default-clickable-area);width:var(--default-clickable-area);margin:0;padding:0;background:none;background-image:var(--icon-triangle-s-dark);background-size:16px;background-repeat:no-repeat;background-position:center;border:none;outline:none !important;box-shadow:none;content:" ";opacity:0;-webkit-transform:rotate(-90deg);-ms-transform:rotate(-90deg);transform:rotate(-90deg);z-index:105;border-radius:50%;transition:opacity 100ms ease-in-out}.app-navigation-personal .collapsible>a:first-child,.app-navigation-administration .collapsible>a:first-child{padding-inline-start:var(--default-clickable-area)}.app-navigation-personal .collapsible:hover:before,.app-navigation-personal .collapsible:focus:before,.app-navigation-administration .collapsible:hover:before,.app-navigation-administration .collapsible:focus:before{opacity:1}.app-navigation-personal .collapsible:hover>a,.app-navigation-personal .collapsible:focus>a,.app-navigation-administration .collapsible:hover>a,.app-navigation-administration .collapsible:focus>a{background-image:none}.app-navigation-personal .collapsible:hover>.app-navigation-entry-bullet,.app-navigation-personal .collapsible:focus>.app-navigation-entry-bullet,.app-navigation-administration .collapsible:hover>.app-navigation-entry-bullet,.app-navigation-administration .collapsible:focus>.app-navigation-entry-bullet{background:rgba(0,0,0,0) !important}.app-navigation-personal .collapsible.open:before,.app-navigation-administration .collapsible.open:before{-webkit-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0)}.app-navigation-personal .app-navigation-entry-utils,.app-navigation-administration .app-navigation-entry-utils{flex:0 1 auto}.app-navigation-personal .app-navigation-entry-utils ul,.app-navigation-administration .app-navigation-entry-utils ul{display:flex !important;align-items:center;justify-content:flex-end}.app-navigation-personal .app-navigation-entry-utils li,.app-navigation-administration .app-navigation-entry-utils li{width:var(--default-clickable-area) !important;height:var(--default-clickable-area)}.app-navigation-personal .app-navigation-entry-utils button,.app-navigation-administration .app-navigation-entry-utils button{height:100%;width:100%;margin:0;box-shadow:none}.app-navigation-personal .app-navigation-entry-utils .app-navigation-entry-utils-menu-button button:not([class^=icon-]):not([class*=" icon-"]),.app-navigation-administration .app-navigation-entry-utils .app-navigation-entry-utils-menu-button button:not([class^=icon-]):not([class*=" icon-"]){background-image:var(--icon-more-dark)}.app-navigation-personal .app-navigation-entry-utils .app-navigation-entry-utils-menu-button:hover button,.app-navigation-personal .app-navigation-entry-utils .app-navigation-entry-utils-menu-button:focus button,.app-navigation-administration .app-navigation-entry-utils .app-navigation-entry-utils-menu-button:hover button,.app-navigation-administration .app-navigation-entry-utils .app-navigation-entry-utils-menu-button:focus button{background-color:rgba(0,0,0,0);opacity:1}.app-navigation-personal .app-navigation-entry-utils .app-navigation-entry-utils-counter,.app-navigation-administration .app-navigation-entry-utils .app-navigation-entry-utils-counter{overflow:hidden;text-align:end;font-size:9pt;line-height:var(--default-clickable-area);padding:0 12px}.app-navigation-personal .app-navigation-entry-utils .app-navigation-entry-utils-counter.highlighted,.app-navigation-administration .app-navigation-entry-utils .app-navigation-entry-utils-counter.highlighted{padding:0;text-align:center}.app-navigation-personal .app-navigation-entry-utils .app-navigation-entry-utils-counter.highlighted span,.app-navigation-administration .app-navigation-entry-utils .app-navigation-entry-utils-counter.highlighted span{padding:2px 5px;border-radius:10px;background-color:var(--color-primary-element);color:var(--color-primary-element-text)}.app-navigation-personal .app-navigation-entry-edit,.app-navigation-administration .app-navigation-entry-edit{padding-inline:5px;display:block;width:calc(100% - 1px);transition:opacity 250ms ease-in-out;opacity:0;position:absolute;background-color:var(--color-main-background);z-index:-1}.app-navigation-personal .app-navigation-entry-edit form,.app-navigation-personal .app-navigation-entry-edit div,.app-navigation-administration .app-navigation-entry-edit form,.app-navigation-administration .app-navigation-entry-edit div{display:inline-flex;width:100%}.app-navigation-personal .app-navigation-entry-edit input,.app-navigation-administration .app-navigation-entry-edit input{padding:5px;margin-inline-end:0;height:38px}.app-navigation-personal .app-navigation-entry-edit input:hover,.app-navigation-personal .app-navigation-entry-edit input:focus,.app-navigation-administration .app-navigation-entry-edit input:hover,.app-navigation-administration .app-navigation-entry-edit input:focus{z-index:1}.app-navigation-personal .app-navigation-entry-edit input[type=text],.app-navigation-administration .app-navigation-entry-edit input[type=text]{width:100%;min-width:0;border-end-end-radius:0;border-start-end-radius:0}.app-navigation-personal .app-navigation-entry-edit button,.app-navigation-personal .app-navigation-entry-edit input:not([type=text]),.app-navigation-administration .app-navigation-entry-edit button,.app-navigation-administration .app-navigation-entry-edit input:not([type=text]){width:36px;height:38px;flex:0 0 36px}.app-navigation-personal .app-navigation-entry-edit button:not(:last-child),.app-navigation-personal .app-navigation-entry-edit input:not([type=text]):not(:last-child),.app-navigation-administration .app-navigation-entry-edit button:not(:last-child),.app-navigation-administration .app-navigation-entry-edit input:not([type=text]):not(:last-child){border-radius:0 !important}.app-navigation-personal .app-navigation-entry-edit button:not(:first-child),.app-navigation-personal .app-navigation-entry-edit input:not([type=text]):not(:first-child),.app-navigation-administration .app-navigation-entry-edit button:not(:first-child),.app-navigation-administration .app-navigation-entry-edit input:not([type=text]):not(:first-child){margin-inline-start:-1px}.app-navigation-personal .app-navigation-entry-edit button:last-child,.app-navigation-personal .app-navigation-entry-edit input:not([type=text]):last-child,.app-navigation-administration .app-navigation-entry-edit button:last-child,.app-navigation-administration .app-navigation-entry-edit input:not([type=text]):last-child{border-end-end-radius:var(--border-radius);border-start-end-radius:var(--border-radius);border-end-start-radius:0;border-start-start-radius:0}.app-navigation-personal .app-navigation-entry-deleted,.app-navigation-administration .app-navigation-entry-deleted{display:inline-flex;padding-inline-start:var(--default-clickable-area);transform:translateX(300px)}.app-navigation-personal .app-navigation-entry-deleted .app-navigation-entry-deleted-description,.app-navigation-administration .app-navigation-entry-deleted .app-navigation-entry-deleted-description{position:relative;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;flex:1 1 0px;line-height:var(--default-clickable-area)}.app-navigation-personal .app-navigation-entry-deleted .app-navigation-entry-deleted-button,.app-navigation-administration .app-navigation-entry-deleted .app-navigation-entry-deleted-button{margin:0;height:var(--default-clickable-area);width:var(--default-clickable-area);line-height:var(--default-clickable-area)}.app-navigation-personal .app-navigation-entry-deleted .app-navigation-entry-deleted-button:hover,.app-navigation-personal .app-navigation-entry-deleted .app-navigation-entry-deleted-button:focus,.app-navigation-administration .app-navigation-entry-deleted .app-navigation-entry-deleted-button:hover,.app-navigation-administration .app-navigation-entry-deleted .app-navigation-entry-deleted-button:focus{opacity:1}.app-navigation-personal .app-navigation-entry-edit,.app-navigation-personal .app-navigation-entry-deleted,.app-navigation-administration .app-navigation-entry-edit,.app-navigation-administration .app-navigation-entry-deleted{width:calc(100% - 1px);transition:transform 250ms ease-in-out,opacity 250ms ease-in-out,z-index 250ms ease-in-out;position:absolute;inset-inline-start:0;background-color:var(--color-main-background);box-sizing:border-box}.app-navigation-personal .drag-and-drop,.app-navigation-administration .drag-and-drop{-webkit-transition:padding-bottom 500ms ease 0s;transition:padding-bottom 500ms ease 0s;padding-bottom:40px}.app-navigation-personal .error,.app-navigation-administration .error{color:var(--color-error)}.app-navigation-personal .app-navigation-entry-utils ul,.app-navigation-personal .app-navigation-entry-menu ul,.app-navigation-administration .app-navigation-entry-utils ul,.app-navigation-administration .app-navigation-entry-menu ul{list-style-type:none}body[dir=ltr] .app-navigation-personal .app-navigation-new button,body[dir=ltr] .app-navigation-administration .app-navigation-new button{background-position:left 10px center}body[dir=ltr] .app-navigation-personal>ul>li>ul>li>a,body[dir=ltr] .app-navigation-administration>ul>li>ul>li>a{background-position:left 14px center}body[dir=ltr] .app-navigation-personal>ul>li>ul>li>a>.app-navigation-entry-utils,body[dir=ltr] .app-navigation-administration>ul>li>ul>li>a>.app-navigation-entry-utils{float:right}body[dir=rtl] .app-navigation-personal .app-navigation-new button,body[dir=rtl] .app-navigation-administration .app-navigation-new button{background-position:right 10px center}body[dir=rtl] .app-navigation-personal>ul>li>ul>li>a,body[dir=rtl] .app-navigation-administration>ul>li>ul>li>a{background-position:right 14px center}body[dir=rtl] .app-navigation-personal>ul>li>ul>li>a>.app-navigation-entry-utils,body[dir=rtl] .app-navigation-administration>ul>li>ul>li>a>.app-navigation-entry-utils{float:left}#content{box-sizing:border-box;position:static;margin:var(--body-container-margin);margin-top:var(--header-height);padding:0;display:flex;width:calc(100% - var(--body-container-margin)*2);height:var(--body-height);border-radius:var(--body-container-radius);overflow:clip}#content:not(.with-sidebar--full){position:fixed}@media only screen and (max-width: 1024px){#content{border-start-start-radius:var(--border-radius-large);border-start-end-radius:var(--border-radius-large)}#app-navigation{border-start-start-radius:var(--border-radius-large)}#app-sidebar{border-start-end-radius:var(--border-radius-large)}}#app-content{z-index:1000;background-color:var(--color-main-background);flex-basis:100vw;overflow:auto;position:initial;height:100%}#app-content>.section:first-child{border-top:none}#app-content #app-content-wrapper{display:flex;position:relative;align-items:stretch;min-height:100%}#app-content #app-content-wrapper .app-content-details{flex:1 1 524px}#app-content #app-content-wrapper .app-content-details #app-navigation-toggle-back{display:none}#app-content::-webkit-scrollbar-button{height:var(--body-container-radius)}#app-sidebar{width:27vw;min-width:300px;max-width:500px;display:block;position:-webkit-sticky;position:sticky;top:50px;inset-inline-end:0;overflow-y:auto;overflow-x:hidden;z-index:1500;opacity:.7px;height:calc(100vh - 50px);background:var(--color-main-background);border-inline-start:1px solid var(--color-border);flex-shrink:0}#app-sidebar.disappear{display:none}#app-settings{margin-top:auto}#app-settings.open #app-settings-content,#app-settings.opened #app-settings-content{display:block}#app-settings-content{display:none;padding:calc(var(--default-grid-baseline)*2);padding-top:0;padding-inline-start:calc(var(--default-grid-baseline)*4);max-height:300px;overflow-y:auto;box-sizing:border-box}#app-settings-content input[type=text]{width:93%}#app-settings-content .info-text{padding-block:5px 7px;padding-inline:22px 0;color:var(--color-text-lighter)}#app-settings-content input[type=checkbox].radio+label,#app-settings-content input[type=checkbox].checkbox+label,#app-settings-content input[type=radio].radio+label,#app-settings-content input[type=radio].checkbox+label{display:inline-block;width:100%;padding:5px 0}#app-settings-header{box-sizing:border-box;background-color:rgba(0,0,0,0);overflow:hidden;border-radius:calc(var(--default-clickable-area)/2);padding:calc(var(--default-grid-baseline)*2);padding-top:0}#app-settings-header .settings-button{display:flex;align-items:center;height:var(--default-clickable-area);width:100%;padding:0;margin:0;background-color:rgba(0,0,0,0);box-shadow:none;border:0;border-radius:calc(var(--default-clickable-area)/2);text-align:start;font-weight:normal;font-size:100%;opacity:.8;color:var(--color-main-text)}#app-settings-header .settings-button.opened{border-top:solid 1px var(--color-border);background-color:var(--color-main-background);margin-top:8px}#app-settings-header .settings-button:hover,#app-settings-header .settings-button:focus{background-color:var(--color-background-hover)}#app-settings-header .settings-button::before{background-image:var(--icon-settings-dark);background-repeat:no-repeat;content:"";width:var(--default-clickable-area);height:var(--default-clickable-area);top:0;inset-inline-start:0;display:block}#app-settings-header .settings-button:focus-visible{box-shadow:0 0 0 2px inset var(--color-primary-element) !important}body[dir=ltr] #app-settings-header .settings-button::before{background-position:left 14px center}body[dir=ltr] #app-settings-header .settings-button:focus-visible{background-position:left 12px center}body[dir=rtl] #app-settings-header .settings-button::before{background-position:right 14px center}body[dir=rtl] #app-settings-header .settings-button:focus-visible{background-position:right 12px center}.section{display:block;padding:30px;margin-bottom:24px}.section.hidden{display:none !important}.section input[type=checkbox],.section input[type=radio]{vertical-align:-2px;margin-inline-end:4px}.sub-section{position:relative;margin-top:10px;margin-inline-start:27px;margin-bottom:10px}.appear{opacity:1;-webkit-transition:opacity 500ms ease 0s;-moz-transition:opacity 500ms ease 0s;-ms-transition:opacity 500ms ease 0s;-o-transition:opacity 500ms ease 0s;transition:opacity 500ms ease 0s}.appear.transparent{opacity:0}.tabHeaders{display:flex;margin-bottom:16px}.tabHeaders .tabHeader{display:flex;flex-direction:column;flex-grow:1;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;color:var(--color-text-lighter);margin-bottom:1px;padding:5px}.tabHeaders .tabHeader.hidden{display:none}.tabHeaders .tabHeader:first-child{padding-inline-start:15px}.tabHeaders .tabHeader:last-child{padding-inline-end:15px}.tabHeaders .tabHeader .icon{display:inline-block;width:100%;height:16px;background-size:16px;vertical-align:middle;margin-top:-2px;margin-inline-end:3px;opacity:.7;cursor:pointer}.tabHeaders .tabHeader a{color:var(--color-text-lighter);margin-bottom:1px;overflow:hidden;text-overflow:ellipsis}.tabHeaders .tabHeader.selected{font-weight:bold}.tabHeaders .tabHeader.selected,.tabHeaders .tabHeader:hover,.tabHeaders .tabHeader:focus{margin-bottom:0px;color:var(--color-main-text);border-bottom:1px solid var(--color-text-lighter)}.tabsContainer .tab{padding:0 15px 15px}body[dir=ltr] .tabsContainer{clear:left}body[dir=rtl] .tabsContainer{clear:right}.v-popper__inner div.open>ul>li>a>span.action-link__icon,.v-popper__inner div.open>ul>li>a>span.action-router__icon,.v-popper__inner div.open>ul>li>a>img{filter:var(--background-invert-if-dark)}.v-popper__inner div.open>ul>li>a>span.action-link__icon[src^=data],.v-popper__inner div.open>ul>li>a>span.action-router__icon[src^=data],.v-popper__inner div.open>ul>li>a>img[src^=data]{filter:none}.bubble,.app-navigation-entry-menu,.popovermenu{position:absolute;background-color:var(--color-main-background);color:var(--color-main-text);border-radius:var(--border-radius-large);padding:3px;z-index:110;margin:5px;margin-top:-5px;inset-inline-end:0;filter:drop-shadow(0 1px 3px var(--color-box-shadow));display:none;will-change:filter}.bubble:after,.app-navigation-entry-menu:after,.popovermenu:after{bottom:100%;inset-inline-end:7px;border:solid rgba(0,0,0,0);content:" ";height:0;width:0;position:absolute;pointer-events:none;border-bottom-color:var(--color-main-background);border-width:9px}.bubble.menu-center,.app-navigation-entry-menu.menu-center,.popovermenu.menu-center{transform:translateX(50%);inset-inline-end:50%;margin-inline-end:0}.bubble.menu-center:after,.app-navigation-entry-menu.menu-center:after,.popovermenu.menu-center:after{inset-inline-end:50%;transform:translateX(50%)}.bubble.menu-left,.app-navigation-entry-menu.menu-left,.popovermenu.menu-left{inset-inline:0 auto;margin-inline-end:0}.bubble.menu-left:after,.app-navigation-entry-menu.menu-left:after,.popovermenu.menu-left:after{inset-inline:6px auto}.bubble.open,.app-navigation-entry-menu.open,.popovermenu.open{display:block}.bubble.contactsmenu-popover,.app-navigation-entry-menu.contactsmenu-popover,.popovermenu.contactsmenu-popover{margin:0}.bubble ul,.app-navigation-entry-menu ul,.popovermenu ul{display:flex !important;flex-direction:column}.bubble li,.app-navigation-entry-menu li,.popovermenu li{display:flex;flex:0 0 auto}.bubble li.hidden,.app-navigation-entry-menu li.hidden,.popovermenu li.hidden{display:none}.bubble li>button,.bubble li>a,.bubble li>.menuitem,.app-navigation-entry-menu li>button,.app-navigation-entry-menu li>a,.app-navigation-entry-menu li>.menuitem,.popovermenu li>button,.popovermenu li>a,.popovermenu li>.menuitem{cursor:pointer;line-height:34px;border:0;border-radius:var(--border-radius-large);background-color:rgba(0,0,0,0);display:flex;align-items:flex-start;height:auto;margin:0;font-weight:normal;box-shadow:none;width:100%;color:var(--color-main-text);white-space:nowrap}.bubble li>button span[class^=icon-],.bubble li>button span[class*=" icon-"],.bubble li>button[class^=icon-],.bubble li>button[class*=" icon-"],.bubble li>a span[class^=icon-],.bubble li>a span[class*=" icon-"],.bubble li>a[class^=icon-],.bubble li>a[class*=" icon-"],.bubble li>.menuitem span[class^=icon-],.bubble li>.menuitem span[class*=" icon-"],.bubble li>.menuitem[class^=icon-],.bubble li>.menuitem[class*=" icon-"],.app-navigation-entry-menu li>button span[class^=icon-],.app-navigation-entry-menu li>button span[class*=" icon-"],.app-navigation-entry-menu li>button[class^=icon-],.app-navigation-entry-menu li>button[class*=" icon-"],.app-navigation-entry-menu li>a span[class^=icon-],.app-navigation-entry-menu li>a span[class*=" icon-"],.app-navigation-entry-menu li>a[class^=icon-],.app-navigation-entry-menu li>a[class*=" icon-"],.app-navigation-entry-menu li>.menuitem span[class^=icon-],.app-navigation-entry-menu li>.menuitem span[class*=" icon-"],.app-navigation-entry-menu li>.menuitem[class^=icon-],.app-navigation-entry-menu li>.menuitem[class*=" icon-"],.popovermenu li>button span[class^=icon-],.popovermenu li>button span[class*=" icon-"],.popovermenu li>button[class^=icon-],.popovermenu li>button[class*=" icon-"],.popovermenu li>a span[class^=icon-],.popovermenu li>a span[class*=" icon-"],.popovermenu li>a[class^=icon-],.popovermenu li>a[class*=" icon-"],.popovermenu li>.menuitem span[class^=icon-],.popovermenu li>.menuitem span[class*=" icon-"],.popovermenu li>.menuitem[class^=icon-],.popovermenu li>.menuitem[class*=" icon-"]{min-width:0;min-height:0;background-position:9px center;background-size:16px}.bubble li>button span[class^=icon-],.bubble li>button span[class*=" icon-"],.bubble li>a span[class^=icon-],.bubble li>a span[class*=" icon-"],.bubble li>.menuitem span[class^=icon-],.bubble li>.menuitem span[class*=" icon-"],.app-navigation-entry-menu li>button span[class^=icon-],.app-navigation-entry-menu li>button span[class*=" icon-"],.app-navigation-entry-menu li>a span[class^=icon-],.app-navigation-entry-menu li>a span[class*=" icon-"],.app-navigation-entry-menu li>.menuitem span[class^=icon-],.app-navigation-entry-menu li>.menuitem span[class*=" icon-"],.popovermenu li>button span[class^=icon-],.popovermenu li>button span[class*=" icon-"],.popovermenu li>a span[class^=icon-],.popovermenu li>a span[class*=" icon-"],.popovermenu li>.menuitem span[class^=icon-],.popovermenu li>.menuitem span[class*=" icon-"]{padding:17px 0 17px 34px}.bubble li>button:not([class^=icon-]):not([class*=icon-])>span:not([class^=icon-]):not([class*=icon-]):first-child,.bubble li>button:not([class^=icon-]):not([class*=icon-])>input:not([class^=icon-]):not([class*=icon-]):first-child,.bubble li>button:not([class^=icon-]):not([class*=icon-])>form:not([class^=icon-]):not([class*=icon-]):first-child,.bubble li>a:not([class^=icon-]):not([class*=icon-])>span:not([class^=icon-]):not([class*=icon-]):first-child,.bubble li>a:not([class^=icon-]):not([class*=icon-])>input:not([class^=icon-]):not([class*=icon-]):first-child,.bubble li>a:not([class^=icon-]):not([class*=icon-])>form:not([class^=icon-]):not([class*=icon-]):first-child,.bubble li>.menuitem:not([class^=icon-]):not([class*=icon-])>span:not([class^=icon-]):not([class*=icon-]):first-child,.bubble li>.menuitem:not([class^=icon-]):not([class*=icon-])>input:not([class^=icon-]):not([class*=icon-]):first-child,.bubble li>.menuitem:not([class^=icon-]):not([class*=icon-])>form:not([class^=icon-]):not([class*=icon-]):first-child,.app-navigation-entry-menu li>button:not([class^=icon-]):not([class*=icon-])>span:not([class^=icon-]):not([class*=icon-]):first-child,.app-navigation-entry-menu li>button:not([class^=icon-]):not([class*=icon-])>input:not([class^=icon-]):not([class*=icon-]):first-child,.app-navigation-entry-menu li>button:not([class^=icon-]):not([class*=icon-])>form:not([class^=icon-]):not([class*=icon-]):first-child,.app-navigation-entry-menu li>a:not([class^=icon-]):not([class*=icon-])>span:not([class^=icon-]):not([class*=icon-]):first-child,.app-navigation-entry-menu li>a:not([class^=icon-]):not([class*=icon-])>input:not([class^=icon-]):not([class*=icon-]):first-child,.app-navigation-entry-menu li>a:not([class^=icon-]):not([class*=icon-])>form:not([class^=icon-]):not([class*=icon-]):first-child,.app-navigation-entry-menu li>.menuitem:not([class^=icon-]):not([class*=icon-])>span:not([class^=icon-]):not([class*=icon-]):first-child,.app-navigation-entry-menu li>.menuitem:not([class^=icon-]):not([class*=icon-])>input:not([class^=icon-]):not([class*=icon-]):first-child,.app-navigation-entry-menu li>.menuitem:not([class^=icon-]):not([class*=icon-])>form:not([class^=icon-]):not([class*=icon-]):first-child,.popovermenu li>button:not([class^=icon-]):not([class*=icon-])>span:not([class^=icon-]):not([class*=icon-]):first-child,.popovermenu li>button:not([class^=icon-]):not([class*=icon-])>input:not([class^=icon-]):not([class*=icon-]):first-child,.popovermenu li>button:not([class^=icon-]):not([class*=icon-])>form:not([class^=icon-]):not([class*=icon-]):first-child,.popovermenu li>a:not([class^=icon-]):not([class*=icon-])>span:not([class^=icon-]):not([class*=icon-]):first-child,.popovermenu li>a:not([class^=icon-]):not([class*=icon-])>input:not([class^=icon-]):not([class*=icon-]):first-child,.popovermenu li>a:not([class^=icon-]):not([class*=icon-])>form:not([class^=icon-]):not([class*=icon-]):first-child,.popovermenu li>.menuitem:not([class^=icon-]):not([class*=icon-])>span:not([class^=icon-]):not([class*=icon-]):first-child,.popovermenu li>.menuitem:not([class^=icon-]):not([class*=icon-])>input:not([class^=icon-]):not([class*=icon-]):first-child,.popovermenu li>.menuitem:not([class^=icon-]):not([class*=icon-])>form:not([class^=icon-]):not([class*=icon-]):first-child{margin-inline-start:34px}.bubble li>button[class^=icon-],.bubble li>button[class*=" icon-"],.bubble li>a[class^=icon-],.bubble li>a[class*=" icon-"],.bubble li>.menuitem[class^=icon-],.bubble li>.menuitem[class*=" icon-"],.app-navigation-entry-menu li>button[class^=icon-],.app-navigation-entry-menu li>button[class*=" icon-"],.app-navigation-entry-menu li>a[class^=icon-],.app-navigation-entry-menu li>a[class*=" icon-"],.app-navigation-entry-menu li>.menuitem[class^=icon-],.app-navigation-entry-menu li>.menuitem[class*=" icon-"],.popovermenu li>button[class^=icon-],.popovermenu li>button[class*=" icon-"],.popovermenu li>a[class^=icon-],.popovermenu li>a[class*=" icon-"],.popovermenu li>.menuitem[class^=icon-],.popovermenu li>.menuitem[class*=" icon-"]{padding:0 9px 0 34px !important}.bubble li>button:hover,.bubble li>button:focus,.bubble li>a:hover,.bubble li>a:focus,.bubble li>.menuitem:hover,.bubble li>.menuitem:focus,.app-navigation-entry-menu li>button:hover,.app-navigation-entry-menu li>button:focus,.app-navigation-entry-menu li>a:hover,.app-navigation-entry-menu li>a:focus,.app-navigation-entry-menu li>.menuitem:hover,.app-navigation-entry-menu li>.menuitem:focus,.popovermenu li>button:hover,.popovermenu li>button:focus,.popovermenu li>a:hover,.popovermenu li>a:focus,.popovermenu li>.menuitem:hover,.popovermenu li>.menuitem:focus{background-color:var(--color-background-hover)}.bubble li>button:focus,.bubble li>button:focus-visible,.bubble li>a:focus,.bubble li>a:focus-visible,.bubble li>.menuitem:focus,.bubble li>.menuitem:focus-visible,.app-navigation-entry-menu li>button:focus,.app-navigation-entry-menu li>button:focus-visible,.app-navigation-entry-menu li>a:focus,.app-navigation-entry-menu li>a:focus-visible,.app-navigation-entry-menu li>.menuitem:focus,.app-navigation-entry-menu li>.menuitem:focus-visible,.popovermenu li>button:focus,.popovermenu li>button:focus-visible,.popovermenu li>a:focus,.popovermenu li>a:focus-visible,.popovermenu li>.menuitem:focus,.popovermenu li>.menuitem:focus-visible{box-shadow:0 0 0 2px var(--color-primary-element)}.bubble li>button.active,.bubble li>a.active,.bubble li>.menuitem.active,.app-navigation-entry-menu li>button.active,.app-navigation-entry-menu li>a.active,.app-navigation-entry-menu li>.menuitem.active,.popovermenu li>button.active,.popovermenu li>a.active,.popovermenu li>.menuitem.active{border-radius:var(--border-radius-element);background-color:var(--color-primary-element-light)}.bubble li>button.action,.bubble li>a.action,.bubble li>.menuitem.action,.app-navigation-entry-menu li>button.action,.app-navigation-entry-menu li>a.action,.app-navigation-entry-menu li>.menuitem.action,.popovermenu li>button.action,.popovermenu li>a.action,.popovermenu li>.menuitem.action{padding:inherit !important}.bubble li>button>span,.bubble li>a>span,.bubble li>.menuitem>span,.app-navigation-entry-menu li>button>span,.app-navigation-entry-menu li>a>span,.app-navigation-entry-menu li>.menuitem>span,.popovermenu li>button>span,.popovermenu li>a>span,.popovermenu li>.menuitem>span{cursor:pointer;white-space:nowrap}.bubble li>button>p,.bubble li>a>p,.bubble li>.menuitem>p,.app-navigation-entry-menu li>button>p,.app-navigation-entry-menu li>a>p,.app-navigation-entry-menu li>.menuitem>p,.popovermenu li>button>p,.popovermenu li>a>p,.popovermenu li>.menuitem>p{width:150px;line-height:1.6em;padding:8px 0;white-space:normal}.bubble li>button>select,.bubble li>a>select,.bubble li>.menuitem>select,.app-navigation-entry-menu li>button>select,.app-navigation-entry-menu li>a>select,.app-navigation-entry-menu li>.menuitem>select,.popovermenu li>button>select,.popovermenu li>a>select,.popovermenu li>.menuitem>select{margin:0;margin-inline-start:6px}.bubble li>button:not(:empty),.bubble li>a:not(:empty),.bubble li>.menuitem:not(:empty),.app-navigation-entry-menu li>button:not(:empty),.app-navigation-entry-menu li>a:not(:empty),.app-navigation-entry-menu li>.menuitem:not(:empty),.popovermenu li>button:not(:empty),.popovermenu li>a:not(:empty),.popovermenu li>.menuitem:not(:empty){padding-inline-end:9px !important}.bubble li>button>img,.bubble li>a>img,.bubble li>.menuitem>img,.app-navigation-entry-menu li>button>img,.app-navigation-entry-menu li>a>img,.app-navigation-entry-menu li>.menuitem>img,.popovermenu li>button>img,.popovermenu li>a>img,.popovermenu li>.menuitem>img{width:16px;padding:9px}.bubble li>button>input.radio+label,.bubble li>button>input.checkbox+label,.bubble li>a>input.radio+label,.bubble li>a>input.checkbox+label,.bubble li>.menuitem>input.radio+label,.bubble li>.menuitem>input.checkbox+label,.app-navigation-entry-menu li>button>input.radio+label,.app-navigation-entry-menu li>button>input.checkbox+label,.app-navigation-entry-menu li>a>input.radio+label,.app-navigation-entry-menu li>a>input.checkbox+label,.app-navigation-entry-menu li>.menuitem>input.radio+label,.app-navigation-entry-menu li>.menuitem>input.checkbox+label,.popovermenu li>button>input.radio+label,.popovermenu li>button>input.checkbox+label,.popovermenu li>a>input.radio+label,.popovermenu li>a>input.checkbox+label,.popovermenu li>.menuitem>input.radio+label,.popovermenu li>.menuitem>input.checkbox+label{padding:0 !important;width:100%}.bubble li>button>input.checkbox+label::before,.bubble li>a>input.checkbox+label::before,.bubble li>.menuitem>input.checkbox+label::before,.app-navigation-entry-menu li>button>input.checkbox+label::before,.app-navigation-entry-menu li>a>input.checkbox+label::before,.app-navigation-entry-menu li>.menuitem>input.checkbox+label::before,.popovermenu li>button>input.checkbox+label::before,.popovermenu li>a>input.checkbox+label::before,.popovermenu li>.menuitem>input.checkbox+label::before{margin:-2px 13px 0}.bubble li>button>input.radio+label::before,.bubble li>a>input.radio+label::before,.bubble li>.menuitem>input.radio+label::before,.app-navigation-entry-menu li>button>input.radio+label::before,.app-navigation-entry-menu li>a>input.radio+label::before,.app-navigation-entry-menu li>.menuitem>input.radio+label::before,.popovermenu li>button>input.radio+label::before,.popovermenu li>a>input.radio+label::before,.popovermenu li>.menuitem>input.radio+label::before{margin:-2px 12px 0}.bubble li>button>input:not([type=radio]):not([type=checkbox]):not([type=image]),.bubble li>a>input:not([type=radio]):not([type=checkbox]):not([type=image]),.bubble li>.menuitem>input:not([type=radio]):not([type=checkbox]):not([type=image]),.app-navigation-entry-menu li>button>input:not([type=radio]):not([type=checkbox]):not([type=image]),.app-navigation-entry-menu li>a>input:not([type=radio]):not([type=checkbox]):not([type=image]),.app-navigation-entry-menu li>.menuitem>input:not([type=radio]):not([type=checkbox]):not([type=image]),.popovermenu li>button>input:not([type=radio]):not([type=checkbox]):not([type=image]),.popovermenu li>a>input:not([type=radio]):not([type=checkbox]):not([type=image]),.popovermenu li>.menuitem>input:not([type=radio]):not([type=checkbox]):not([type=image]){width:150px}.bubble li>button form,.bubble li>a form,.bubble li>.menuitem form,.app-navigation-entry-menu li>button form,.app-navigation-entry-menu li>a form,.app-navigation-entry-menu li>.menuitem form,.popovermenu li>button form,.popovermenu li>a form,.popovermenu li>.menuitem form{display:flex;flex:1 1 auto;align-items:center}.bubble li>button form:not(:first-child),.bubble li>a form:not(:first-child),.bubble li>.menuitem form:not(:first-child),.app-navigation-entry-menu li>button form:not(:first-child),.app-navigation-entry-menu li>a form:not(:first-child),.app-navigation-entry-menu li>.menuitem form:not(:first-child),.popovermenu li>button form:not(:first-child),.popovermenu li>a form:not(:first-child),.popovermenu li>.menuitem form:not(:first-child){margin-inline-start:5px}.bubble li>button>span.hidden+form,.bubble li>button>span[style*="display:none"]+form,.bubble li>a>span.hidden+form,.bubble li>a>span[style*="display:none"]+form,.bubble li>.menuitem>span.hidden+form,.bubble li>.menuitem>span[style*="display:none"]+form,.app-navigation-entry-menu li>button>span.hidden+form,.app-navigation-entry-menu li>button>span[style*="display:none"]+form,.app-navigation-entry-menu li>a>span.hidden+form,.app-navigation-entry-menu li>a>span[style*="display:none"]+form,.app-navigation-entry-menu li>.menuitem>span.hidden+form,.app-navigation-entry-menu li>.menuitem>span[style*="display:none"]+form,.popovermenu li>button>span.hidden+form,.popovermenu li>button>span[style*="display:none"]+form,.popovermenu li>a>span.hidden+form,.popovermenu li>a>span[style*="display:none"]+form,.popovermenu li>.menuitem>span.hidden+form,.popovermenu li>.menuitem>span[style*="display:none"]+form{margin-inline-start:0}.bubble li>button input,.bubble li>a input,.bubble li>.menuitem input,.app-navigation-entry-menu li>button input,.app-navigation-entry-menu li>a input,.app-navigation-entry-menu li>.menuitem input,.popovermenu li>button input,.popovermenu li>a input,.popovermenu li>.menuitem input{min-width:34px;max-height:30px;margin:2px 0;flex:1 1 auto}.bubble li>button input:not(:first-child),.bubble li>a input:not(:first-child),.bubble li>.menuitem input:not(:first-child),.app-navigation-entry-menu li>button input:not(:first-child),.app-navigation-entry-menu li>a input:not(:first-child),.app-navigation-entry-menu li>.menuitem input:not(:first-child),.popovermenu li>button input:not(:first-child),.popovermenu li>a input:not(:first-child),.popovermenu li>.menuitem input:not(:first-child){margin-inline-start:5px}.bubble li:not(.hidden):not([style*="display:none"]):first-of-type>button>form,.bubble li:not(.hidden):not([style*="display:none"]):first-of-type>button>input,.bubble li:not(.hidden):not([style*="display:none"]):first-of-type>a>form,.bubble li:not(.hidden):not([style*="display:none"]):first-of-type>a>input,.bubble li:not(.hidden):not([style*="display:none"]):first-of-type>.menuitem>form,.bubble li:not(.hidden):not([style*="display:none"]):first-of-type>.menuitem>input,.app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):first-of-type>button>form,.app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):first-of-type>button>input,.app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):first-of-type>a>form,.app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):first-of-type>a>input,.app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):first-of-type>.menuitem>form,.app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):first-of-type>.menuitem>input,.popovermenu li:not(.hidden):not([style*="display:none"]):first-of-type>button>form,.popovermenu li:not(.hidden):not([style*="display:none"]):first-of-type>button>input,.popovermenu li:not(.hidden):not([style*="display:none"]):first-of-type>a>form,.popovermenu li:not(.hidden):not([style*="display:none"]):first-of-type>a>input,.popovermenu li:not(.hidden):not([style*="display:none"]):first-of-type>.menuitem>form,.popovermenu li:not(.hidden):not([style*="display:none"]):first-of-type>.menuitem>input{margin-top:7px}.bubble li:not(.hidden):not([style*="display:none"]):last-of-type>button>form,.bubble li:not(.hidden):not([style*="display:none"]):last-of-type>button>input,.bubble li:not(.hidden):not([style*="display:none"]):last-of-type>a>form,.bubble li:not(.hidden):not([style*="display:none"]):last-of-type>a>input,.bubble li:not(.hidden):not([style*="display:none"]):last-of-type>.menuitem>form,.bubble li:not(.hidden):not([style*="display:none"]):last-of-type>.menuitem>input,.app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):last-of-type>button>form,.app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):last-of-type>button>input,.app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):last-of-type>a>form,.app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):last-of-type>a>input,.app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):last-of-type>.menuitem>form,.app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):last-of-type>.menuitem>input,.popovermenu li:not(.hidden):not([style*="display:none"]):last-of-type>button>form,.popovermenu li:not(.hidden):not([style*="display:none"]):last-of-type>button>input,.popovermenu li:not(.hidden):not([style*="display:none"]):last-of-type>a>form,.popovermenu li:not(.hidden):not([style*="display:none"]):last-of-type>a>input,.popovermenu li:not(.hidden):not([style*="display:none"]):last-of-type>.menuitem>form,.popovermenu li:not(.hidden):not([style*="display:none"]):last-of-type>.menuitem>input{margin-bottom:0px}.bubble li>button,.app-navigation-entry-menu li>button,.popovermenu li>button{padding:0}.bubble li>button span,.app-navigation-entry-menu li>button span,.popovermenu li>button span{opacity:1}.popovermenu li>button>img,.popovermenu li>a>img,.popovermenu li>.menuitem>img{width:34px;height:34px}#contactsmenu .contact .popovermenu li>a>img{width:16px;height:16px}.app-content-list{position:-webkit-sticky;position:relative;top:0;border-inline-end:1px solid var(--color-border);display:flex;flex-direction:column;transition:transform 250ms ease-in-out;min-height:100%;max-height:100%;overflow-y:auto;overflow-x:hidden;flex:1 1 200px;min-width:200px;max-width:300px}.app-content-list .app-content-list-item{position:relative;height:68px;cursor:pointer;padding:10px 7px;display:flex;flex-wrap:wrap;align-items:center;flex:0 0 auto}.app-content-list .app-content-list-item>[class^=icon-],.app-content-list .app-content-list-item>[class*=" icon-"],.app-content-list .app-content-list-item>.app-content-list-item-menu>[class^=icon-],.app-content-list .app-content-list-item>.app-content-list-item-menu>[class*=" icon-"]{order:4;width:24px;height:24px;margin:-7px;padding:22px;opacity:.3;cursor:pointer}.app-content-list .app-content-list-item>[class^=icon-]:hover,.app-content-list .app-content-list-item>[class^=icon-]:focus,.app-content-list .app-content-list-item>[class*=" icon-"]:hover,.app-content-list .app-content-list-item>[class*=" icon-"]:focus,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class^=icon-]:hover,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class^=icon-]:focus,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class*=" icon-"]:hover,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class*=" icon-"]:focus{opacity:.7}.app-content-list .app-content-list-item>[class^=icon-][class^=icon-star],.app-content-list .app-content-list-item>[class^=icon-][class*=" icon-star"],.app-content-list .app-content-list-item>[class*=" icon-"][class^=icon-star],.app-content-list .app-content-list-item>[class*=" icon-"][class*=" icon-star"],.app-content-list .app-content-list-item>.app-content-list-item-menu>[class^=icon-][class^=icon-star],.app-content-list .app-content-list-item>.app-content-list-item-menu>[class^=icon-][class*=" icon-star"],.app-content-list .app-content-list-item>.app-content-list-item-menu>[class*=" icon-"][class^=icon-star],.app-content-list .app-content-list-item>.app-content-list-item-menu>[class*=" icon-"][class*=" icon-star"]{opacity:.7}.app-content-list .app-content-list-item>[class^=icon-][class^=icon-star]:hover,.app-content-list .app-content-list-item>[class^=icon-][class^=icon-star]:focus,.app-content-list .app-content-list-item>[class^=icon-][class*=" icon-star"]:hover,.app-content-list .app-content-list-item>[class^=icon-][class*=" icon-star"]:focus,.app-content-list .app-content-list-item>[class*=" icon-"][class^=icon-star]:hover,.app-content-list .app-content-list-item>[class*=" icon-"][class^=icon-star]:focus,.app-content-list .app-content-list-item>[class*=" icon-"][class*=" icon-star"]:hover,.app-content-list .app-content-list-item>[class*=" icon-"][class*=" icon-star"]:focus,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class^=icon-][class^=icon-star]:hover,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class^=icon-][class^=icon-star]:focus,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class^=icon-][class*=" icon-star"]:hover,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class^=icon-][class*=" icon-star"]:focus,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class*=" icon-"][class^=icon-star]:hover,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class*=" icon-"][class^=icon-star]:focus,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class*=" icon-"][class*=" icon-star"]:hover,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class*=" icon-"][class*=" icon-star"]:focus{opacity:1}.app-content-list .app-content-list-item>[class^=icon-].icon-starred,.app-content-list .app-content-list-item>[class*=" icon-"].icon-starred,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class^=icon-].icon-starred,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class*=" icon-"].icon-starred{opacity:1}.app-content-list .app-content-list-item:hover,.app-content-list .app-content-list-item:focus,.app-content-list .app-content-list-item.active{background-color:var(--color-background-dark)}.app-content-list .app-content-list-item:hover .app-content-list-item-checkbox.checkbox+label,.app-content-list .app-content-list-item:focus .app-content-list-item-checkbox.checkbox+label,.app-content-list .app-content-list-item.active .app-content-list-item-checkbox.checkbox+label{display:flex}.app-content-list .app-content-list-item .app-content-list-item-checkbox.checkbox+label,.app-content-list .app-content-list-item .app-content-list-item-star{position:absolute;height:40px;width:40px;z-index:50}.app-content-list .app-content-list-item .app-content-list-item-checkbox.checkbox:checked+label,.app-content-list .app-content-list-item .app-content-list-item-checkbox.checkbox:hover+label,.app-content-list .app-content-list-item .app-content-list-item-checkbox.checkbox:focus+label,.app-content-list .app-content-list-item .app-content-list-item-checkbox.checkbox.active+label{display:flex}.app-content-list .app-content-list-item .app-content-list-item-checkbox.checkbox:checked+label+.app-content-list-item-icon,.app-content-list .app-content-list-item .app-content-list-item-checkbox.checkbox:hover+label+.app-content-list-item-icon,.app-content-list .app-content-list-item .app-content-list-item-checkbox.checkbox:focus+label+.app-content-list-item-icon,.app-content-list .app-content-list-item .app-content-list-item-checkbox.checkbox.active+label+.app-content-list-item-icon{opacity:.7}.app-content-list .app-content-list-item .app-content-list-item-checkbox.checkbox+label{top:14px;inset-inline-start:7px;display:none}.app-content-list .app-content-list-item .app-content-list-item-checkbox.checkbox+label::before{margin:0}.app-content-list .app-content-list-item .app-content-list-item-checkbox.checkbox+label~.app-content-list-item-star{display:none}.app-content-list .app-content-list-item .app-content-list-item-star{display:flex;top:10px;inset-inline-start:32px;background-size:16px;height:20px;width:20px;margin:0;padding:0}.app-content-list .app-content-list-item .app-content-list-item-icon{position:absolute;display:inline-block;height:40px;width:40px;line-height:40px;border-radius:50%;vertical-align:middle;margin-inline-end:10px;color:#fff;text-align:center;font-size:1.5em;text-transform:capitalize;object-fit:cover;user-select:none;cursor:pointer;top:50%;margin-top:-20px}.app-content-list .app-content-list-item .app-content-list-item-line-one,.app-content-list .app-content-list-item .app-content-list-item-line-two{display:block;padding-inline:50px 10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;order:1;flex:1 1 0px;cursor:pointer}.app-content-list .app-content-list-item .app-content-list-item-line-two{opacity:.5;order:3;flex:1 0;flex-basis:calc(100% - var(--default-clickable-area))}.app-content-list .app-content-list-item .app-content-list-item-details{order:2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100px;opacity:.5;font-size:80%;user-select:none}.app-content-list .app-content-list-item .app-content-list-item-menu{order:4;position:relative}.app-content-list .app-content-list-item .app-content-list-item-menu .popovermenu{margin:0;inset-inline-end:-2px}.app-content-list.selection .app-content-list-item-checkbox.checkbox+label{display:flex}.button.primary.skip-navigation:focus-visible{box-shadow:0 0 0 4px var(--color-main-background) !important;outline:2px solid var(--color-main-text) !important}/*!
+ * SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2015 ownCloud Inc.
+ * SPDX-FileCopyrightText: 2015 Raghu Nayyar, http://raghunayyar.com
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */body[dir=ltr] .pull-left,body[dir=ltr] .pull-start{float:left}body[dir=ltr] .pull-right,body[dir=ltr] .pull-end{float:right}body[dir=ltr] .clear-left,body[dir=ltr] .clear-start{clear:left}body[dir=ltr] .clear-right,body[dir=ltr] .clear-end{clear:right}body[dir=rtl] .pull-left,body[dir=rtl] .pull-start{float:right}body[dir=rtl] .pull-right,body[dir=rtl] .pull-end{float:left}body[dir=rtl] .clear-left,body[dir=rtl] .clear-start{clear:right}body[dir=rtl] .clear-right,body[dir=rtl] .clear-end{clear:left}.clear-both{clear:both}.hidden{display:none}.hidden-visually{position:absolute;inset-inline-start:-10000px;top:-10000px;width:1px;height:1px;overflow:hidden}.bold{font-weight:600}.center{text-align:center}.inlineblock{display:inline-block}/*!
+ * SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */::-moz-focus-inner{border:0}/*!
+ * SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */@media only screen and (width < 1024px){#dropdown{margin-inline-end:10% !important;width:80% !important}.ui-autocomplete{z-index:1000 !important}.error-wide{width:100%;margin-inline-start:0 !important;box-sizing:border-box}#app-navigation:not(.vue){transform:translateX(-300px);position:fixed;height:var(--body-height)}.snapjs-left #app-navigation{transform:translateX(0)}#app-navigation:not(.hidden)+#app-content{margin-inline-start:0}.skip-navigation.skip-content{inset-inline-start:3px;margin-inline-start:0}.app-content-list{background:var(--color-main-background);flex:1 1 100%;max-height:unset;max-width:100%}.app-content-list+.app-content-details{display:none}.app-content-list.showdetails{display:none}.app-content-list.showdetails+.app-content-details{display:initial}#app-content.showdetails #app-navigation-toggle{transform:translateX(-44px)}#app-content.showdetails #app-navigation-toggle-back{position:fixed;display:inline-block !important;top:50px;inset-inline-start:0;width:44px;height:44px;z-index:1050;background-color:hsla(0,0%,100%,.7);cursor:pointer;opacity:.6;transform:rotate(90deg)}#app-content.showdetails .app-content-list{transform:translateX(-100%)}#app-navigation-toggle{position:fixed;display:inline-block !important;inset-inline-start:0;width:44px;height:44px;z-index:1050;cursor:pointer;opacity:.6}#app-navigation-toggle:hover,#app-navigation-toggle:focus{opacity:1}#app-navigation+#app-content .files-controls{padding-inline-start:44px}#body-user .app-files.viewer-mode .files-controls{padding-inline-start:0 !important}.app-files.viewer-mode #app-navigation-toggle{display:none !important}table.multiselect thead{inset-inline-start:0 !important}#usersearchform{display:none}#body-settings .files-controls{min-width:1024px !important}}@media only screen and (max-width: 480px){#header .header-end>div>.menu{max-width:calc(100vw - 10px);position:fixed}#header .header-end>div>.menu::after{display:none !important}#header .header-end>div.openedMenu::after{display:block}#header .header-end>div::after{border:10px solid rgba(0,0,0,0);border-bottom-color:var(--color-main-background);bottom:0;content:" ";height:0;width:0;position:absolute;pointer-events:none;inset-inline-end:15px;z-index:2001;display:none}#header .header-end>div#settings::after{inset-inline-end:27px}}/*!
+ * SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2011-2015 Twitter, Inc. (Bootstrap (http://getbootstrap.com))
+ * SPDX-License-Identifier: MIT
+ */.tooltip{position:absolute;display:block;font-family:var(--font-face);font-style:normal;font-weight:normal;letter-spacing:normal;line-break:auto;line-height:1.6;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;word-wrap:normal;overflow-wrap:anywhere;font-size:12px;opacity:0;z-index:100000;margin-top:-3px;padding:10px 0;filter:drop-shadow(0 1px 10px var(--color-box-shadow))}.tooltip.in,.tooltip.show,.tooltip.tooltip[aria-hidden=false]{visibility:visible;opacity:1;transition:opacity .15s}.tooltip.top .tooltip-arrow,.tooltip[x-placement^=top]{inset-inline-start:50%;margin-inline-start:-10px}.tooltip.bottom,.tooltip[x-placement^=bottom]{margin-top:3px;padding:10px 0}.tooltip.right,.tooltip[x-placement^=right]{margin-inline-start:3px;padding:0 10px}.tooltip.right .tooltip-arrow,.tooltip[x-placement^=right] .tooltip-arrow{top:50%;inset-inline-start:0;margin-top:-10px;border-width:10px 10px 10px 0;border-inline-end-color:var(--color-main-background)}.tooltip.left,.tooltip[x-placement^=left]{margin-inline-start:-3px;padding:0 5px}.tooltip.left .tooltip-arrow,.tooltip[x-placement^=left] .tooltip-arrow{top:50%;inset-inline-end:0;margin-top:-10px;border-width:10px 0 10px 10px;border-inline-start-color:var(--color-main-background)}.tooltip.top .tooltip-arrow,.tooltip.top .arrow,.tooltip.top-left .tooltip-arrow,.tooltip.top-left .arrow,.tooltip[x-placement^=top] .tooltip-arrow,.tooltip[x-placement^=top] .arrow,.tooltip.top-right .tooltip-arrow,.tooltip.top-right .arrow{bottom:0;border-width:10px 10px 0;border-top-color:var(--color-main-background)}.tooltip.top-left .tooltip-arrow{inset-inline-end:10px;margin-bottom:-10px}.tooltip.top-right .tooltip-arrow{inset-inline-start:10px;margin-bottom:-10px}.tooltip.bottom .tooltip-arrow,.tooltip.bottom .arrow,.tooltip[x-placement^=bottom] .tooltip-arrow,.tooltip[x-placement^=bottom] .arrow,.tooltip.bottom-left .tooltip-arrow,.tooltip.bottom-left .arrow,.tooltip.bottom-right .tooltip-arrow,.tooltip.bottom-right .arrow{top:0;border-width:0 10px 10px;border-bottom-color:var(--color-main-background)}.tooltip[x-placement^=bottom] .tooltip-arrow,.tooltip.bottom .tooltip-arrow{inset-inline-start:50%;margin-inline-start:-10px}.tooltip.bottom-left .tooltip-arrow{inset-inline-end:10px;margin-top:-10px}.tooltip.bottom-right .tooltip-arrow{inset-inline-start:10px;margin-top:-10px}.tooltip-inner{max-width:350px;padding:5px 8px;background-color:var(--color-main-background);color:var(--color-main-text);text-align:center;border-radius:var(--border-radius)}.tooltip-arrow,.tooltip .arrow{position:absolute;width:0;height:0;border-color:rgba(0,0,0,0);border-style:solid}/*!
+ * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */.toastify.dialogs{min-width:200px;background:none;background-color:var(--color-main-background);color:var(--color-main-text);box-shadow:0 0 6px 0 var(--color-box-shadow);padding:0 12px;margin-top:45px;position:fixed;z-index:10100;border-radius:var(--border-radius);display:flex;align-items:center;min-height:50px}.toastify.dialogs .toast-loader-container,.toastify.dialogs .toast-undo-container{display:flex;align-items:center;width:100%}.toastify.dialogs .toast-undo-button,.toastify.dialogs .toast-close{position:static;overflow:hidden;box-sizing:border-box;min-width:44px;height:100%;padding:12px;white-space:nowrap;background-repeat:no-repeat;background-position:center;background-color:transparent;min-height:0}.toastify.dialogs .toast-undo-button.toast-close,.toastify.dialogs .toast-close.toast-close{text-indent:0;opacity:.4;border:none;min-height:44px;margin-left:10px;font-size:0}.toastify.dialogs .toast-undo-button.toast-close::before,.toastify.dialogs .toast-close.toast-close::before{background-image:url("data:image/svg+xml,%3csvg%20viewBox='0%200%2016%2016'%20height='16'%20width='16'%20xmlns='http://www.w3.org/2000/svg'%20xml:space='preserve'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2'%3e%3cpath%20d='M6.4%2019%205%2017.6l5.6-5.6L5%206.4%206.4%205l5.6%205.6L17.6%205%2019%206.4%2013.4%2012l5.6%205.6-1.4%201.4-5.6-5.6L6.4%2019Z'%20style='fill-rule:nonzero'%20transform='matrix(.85714%200%200%20.85714%20-2.286%20-2.286)'/%3e%3c/svg%3e");content:" ";filter:var(--background-invert-if-dark);display:inline-block;width:16px;height:16px}.toastify.dialogs .toast-undo-button.toast-undo-button,.toastify.dialogs .toast-close.toast-undo-button{margin:3px;height:calc(100% - 6px);margin-left:12px}.toastify.dialogs .toast-undo-button:hover,.toastify.dialogs .toast-undo-button:focus,.toastify.dialogs .toast-undo-button:active,.toastify.dialogs .toast-close:hover,.toastify.dialogs .toast-close:focus,.toastify.dialogs .toast-close:active{cursor:pointer;opacity:1}.toastify.dialogs.toastify-top{right:10px}.toastify.dialogs.toast-with-click{cursor:pointer}.toastify.dialogs.toast-error{border-left:3px solid var(--color-error)}.toastify.dialogs.toast-info{border-left:3px solid var(--color-primary)}.toastify.dialogs.toast-warning{border-left:3px solid var(--color-warning)}.toastify.dialogs.toast-success{border-left:3px solid var(--color-success)}.toastify.dialogs.toast-undo{border-left:3px solid var(--color-success)}.toastify.dialogs.toast-loading{border-left:3px solid var(--color-primary)}.toastify.dialogs.toast-loading .toast-loader{display:inline-block;width:20px;height:20px;animation:rotate var(--animation-duration, 0.8s) linear infinite;margin-left:auto}.theme--dark .toastify.dialogs .toast-close.toast-close::before{background-image:url("data:image/svg+xml,%3csvg%20viewBox='0%200%2016%2016'%20height='16'%20width='16'%20xmlns='http://www.w3.org/2000/svg'%20xml:space='preserve'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2'%3e%3cpath%20d='M6.4%2019%205%2017.6l5.6-5.6L5%206.4%206.4%205l5.6%205.6L17.6%205%2019%206.4%2013.4%2012l5.6%205.6-1.4%201.4-5.6-5.6L6.4%2019Z'%20style='fill:%23fff;fill-rule:nonzero'%20transform='matrix(.85714%200%200%20.85714%20-2.286%20-2.286)'/%3e%3c/svg%3e")}.nc-generic-dialog .dialog__actions{justify-content:space-between;min-width:calc(100% - 12px)}/*!
+ * SPDX-FileCopyrightText: 2023-2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */._file-picker__file-icon_3v9zx_9{position:relative;width:32px;height:32px;min-width:32px;min-height:32px;background-repeat:no-repeat;background-size:contain;display:flex;justify-content:center}._file-picker__file-icon--primary_3v9zx_21{color:var(--color-primary-element)}._file-picker__file-icon-overlay_3v9zx_25{color:var(--color-primary-element-text);position:absolute;inset-block-start:10px}/*!
+* SPDX-FileCopyrightText: 2023-2024 Nextcloud GmbH and Nextcloud contributors
+* SPDX-License-Identifier: AGPL-3.0-or-later
+*/tr.file-picker__row[data-v-15187afc]{height:var(--row-height, 50px)}tr.file-picker__row td[data-v-15187afc]{cursor:pointer;overflow:hidden;text-overflow:ellipsis;border-bottom:none}tr.file-picker__row td.row-checkbox[data-v-15187afc]{padding:0 2px}tr.file-picker__row td[data-v-15187afc]:not(.row-checkbox){padding-inline:14px 0}tr.file-picker__row td.row-size[data-v-15187afc]{text-align:end;padding-inline:0 14px}tr.file-picker__row td.row-name[data-v-15187afc]{padding-inline:2px 0}@keyframes gradient-15187afc{0%{background-position:0% 50%}50%{background-position:100% 50%}100%{background-position:0% 50%}}.loading-row .row-checkbox[data-v-15187afc]{text-align:center !important}.loading-row span[data-v-15187afc]{display:inline-block;height:24px;background:linear-gradient(to right, var(--color-background-darker), var(--color-text-maxcontrast), var(--color-background-darker));background-size:600px 100%;border-radius:var(--border-radius);animation:gradient-15187afc 12s ease infinite}.loading-row .row-wrapper[data-v-15187afc]{display:inline-flex;align-items:center}.loading-row .row-checkbox span[data-v-15187afc]{width:24px}.loading-row .row-name span[data-v-15187afc]:last-of-type{margin-inline-start:6px;width:130px}.loading-row .row-size span[data-v-15187afc]{width:80px}.loading-row .row-modified span[data-v-15187afc]{width:90px}/*!
+* SPDX-FileCopyrightText: 2023-2024 Nextcloud GmbH and Nextcloud contributors
+* SPDX-License-Identifier: AGPL-3.0-or-later
+*/tr.file-picker__row[data-v-4892c2a0]{height:var(--row-height, 50px)}tr.file-picker__row td[data-v-4892c2a0]{cursor:pointer;overflow:hidden;text-overflow:ellipsis;border-bottom:none}tr.file-picker__row td.row-checkbox[data-v-4892c2a0]{padding:0 2px}tr.file-picker__row td[data-v-4892c2a0]:not(.row-checkbox){padding-inline:14px 0}tr.file-picker__row td.row-size[data-v-4892c2a0]{text-align:end;padding-inline:0 14px}tr.file-picker__row td.row-name[data-v-4892c2a0]{padding-inline:2px 0}.file-picker__row--selected[data-v-4892c2a0]{background-color:var(--color-background-dark)}.file-picker__row[data-v-4892c2a0]:hover{background-color:var(--color-background-hover)}.file-picker__name-container[data-v-4892c2a0]{display:flex;justify-content:start;align-items:center;height:100%}.file-picker__file-name[data-v-4892c2a0]{padding-inline-start:6px;min-width:0;overflow:hidden;text-overflow:ellipsis}.file-picker__file-extension[data-v-4892c2a0]{color:var(--color-text-maxcontrast);min-width:fit-content}.file-picker__header-preview[data-v-4f5d2a56]{width:22px;height:32px;flex:0 0 auto}.file-picker__files[data-v-4f5d2a56]{margin:2px;margin-inline-start:12px;overflow:scroll auto}.file-picker__files table[data-v-4f5d2a56]{width:100%;max-height:100%;table-layout:fixed}.file-picker__files th[data-v-4f5d2a56]{position:sticky;z-index:1;top:0;background-color:var(--color-main-background);padding:2px}.file-picker__files th .header-wrapper[data-v-4f5d2a56]{display:flex}.file-picker__files th.row-checkbox[data-v-4f5d2a56]{width:44px}.file-picker__files th.row-name[data-v-4f5d2a56]{width:230px}.file-picker__files th.row-size[data-v-4f5d2a56]{width:100px}.file-picker__files th.row-modified[data-v-4f5d2a56]{width:120px}.file-picker__files th[data-v-4f5d2a56]:not(.row-size) .button-vue__wrapper{justify-content:start;flex-direction:row-reverse}.file-picker__files th[data-v-4f5d2a56]:not(.row-size) .button-vue{padding-inline:16px 4px}.file-picker__files th.row-size[data-v-4f5d2a56] .button-vue__wrapper{justify-content:end}.file-picker__files th[data-v-4f5d2a56] .button-vue__wrapper{color:var(--color-text-maxcontrast)}.file-picker__files th[data-v-4f5d2a56] .button-vue__wrapper .button-vue__text{font-weight:normal}.file-picker__breadcrumbs[data-v-ec4d392b]{flex-grow:0 !important}.file-picker__side[data-v-f5975252]{display:flex;flex-direction:column;align-items:stretch;gap:.5rem;min-width:200px;padding:2px;margin-block-start:7px;overflow:auto}.file-picker__side[data-v-f5975252] .button-vue__wrapper{justify-content:start}.file-picker__filter-input[data-v-f5975252]{margin-block:7px;max-width:260px}@media(max-width: 736px){.file-picker__side[data-v-f5975252]{flex-direction:row;min-width:unset}}@media(max-width: 512px){.file-picker__side[data-v-f5975252]{flex-direction:row;min-width:unset}.file-picker__filter-input[data-v-f5975252]{max-width:unset}}.file-picker__navigation{padding-inline:8px 2px}.file-picker__navigation,.file-picker__navigation *{box-sizing:border-box}.file-picker__navigation .v-select.select{min-width:220px}@media(min-width: 513px)and (max-width: 736px){.file-picker__navigation{gap:11px}}@media(max-width: 512px){.file-picker__navigation{flex-direction:column-reverse !important}}.file-picker__view[data-v-552cc2f5]{height:50px;display:flex;justify-content:start;align-items:center}.file-picker__view h3[data-v-552cc2f5]{font-weight:bold;height:fit-content;margin:0}.file-picker__main[data-v-552cc2f5]{box-sizing:border-box;width:100%;display:flex;flex-direction:column;min-height:0;flex:1;padding-inline:2px}.file-picker__main *[data-v-552cc2f5]{box-sizing:border-box}[data-v-552cc2f5] .file-picker{height:min(80vh,800px) !important}@media(max-width: 512px){[data-v-552cc2f5] .file-picker{height:calc(100% - 16px - var(--default-clickable-area)) !important}}[data-v-552cc2f5] .file-picker__content{display:flex;flex-direction:column;overflow:hidden}.public-auth-prompt__text[data-v-143ac1fb]{font-size:1.25em;margin-block:0 calc(3*var(--default-grid-baseline))}.public-auth-prompt__header[data-v-143ac1fb]{margin-block:0 calc(3*var(--default-grid-baseline))}.public-auth-prompt__header[data-v-143ac1fb]:first-child{margin-top:0}.public-auth-prompt__input[data-v-143ac1fb]{margin-block:calc(4*var(--default-grid-baseline)) calc(2*var(--default-grid-baseline))}/*!
+ * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */#body-public{--footer-height: calc(2lh + 2 * var(--default-grid-baseline))}#body-public .header-end #header-primary-action a{color:var(--color-primary-element-text)}#body-public .header-end #header-secondary-action ul li{min-width:270px}#body-public .header-end #header-secondary-action #header-actions-toggle{background-color:rgba(0,0,0,0);border-color:rgba(0,0,0,0);filter:var(--background-invert-if-dark)}#body-public .header-end #header-secondary-action #header-actions-toggle:hover,#body-public .header-end #header-secondary-action #header-actions-toggle:focus,#body-public .header-end #header-secondary-action #header-actions-toggle:active{opacity:1}#body-public .header-end #header-secondary-action #external-share-menu-item form{display:flex}#body-public .header-end #header-secondary-action #external-share-menu-item .hidden{display:none}#body-public .header-end #header-secondary-action #external-share-menu-item #save-button-confirm{flex-grow:0}#body-public #content{min-height:var(--body-height, calc(100% - var(--footer-height)));padding-block-end:var(--footer-height)}#body-public #app-content-vue{padding-block-end:var(--footer-height)}#body-public.layout-base #content{padding-top:0}#body-public p.info{margin:20px auto;text-shadow:0 0 2px rgba(0,0,0,.4);-moz-user-select:none;-ms-user-select:none;user-select:none}#body-public p.info,#body-public form fieldset legend,#body-public #datadirContent label,#body-public form fieldset .warning-info,#body-public form input[type=checkbox]+label{text-align:center}#body-public footer{position:fixed;bottom:var(--body-container-margin);background-color:var(--color-main-background);border-radius:var(--body-container-radius);box-sizing:border-box;display:flex;flex-direction:column;align-items:center;justify-content:center;width:calc(100% - 2*var(--body-container-margin));margin-inline:var(--body-container-margin);padding-block:var(--default-grid-baseline)}#body-public footer .footer__legal-links{margin-block-end:var(--default-grid-baseline)}#body-public footer p{text-align:center;color:var(--color-text-maxcontrast);margin-block:0 var(--default-grid-baseline);width:100%}#body-public footer p a{display:inline-block;font-size:var(--default-font-size);font-weight:bold;line-height:var(--default-line-height);height:var(--default-line-height);color:var(--color-text-maxcontrast);white-space:nowrap}/*# sourceMappingURL=server.css.map */
diff --git a/core/css/server.css.map b/core/css/server.css.map
new file mode 100644
index 00000000000..4a1b3a13ba4
--- /dev/null
+++ b/core/css/server.css.map
@@ -0,0 +1 @@
+{"version":3,"sourceRoot":"","sources":["server.scss","icons.scss","variables.scss","styles.scss","inputs.scss","functions.scss","header.scss","apps.scss","global.scss","fixes.scss","mobile.scss","tooltip.scss","../../node_modules/@nextcloud/dialogs/dist/style.css","public.scss"],"names":[],"mappings":"AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GCwHQ,8BCtHR;AAAA;AAAA;AAAA,GCMA,MACC,mCACA,uCAGD,yQACC,SACA,UACA,SACA,oBACA,eACA,oBACA,wBACA,eACA,uCAGD,6CACC,aAID,0CACC,wDACA,aAGD,UACC,YAEA,8BAGD,6DACC,cAGD,MACC,yBACA,iBACA,mBAGD,cACC,iBACA,mBAGD,YACC,sBAGD,EACC,SACA,6BACA,qBACA,eACA,IACC,eAIF,WACC,aACA,0BAGD,MACC,eACA,QACC,eAIF,0BACC,eAGD,GACC,gBAGD,KACC,mBAEA,mCACA,uCACA,6BACA,6BAGD,mBACC,kBAGD,qBACC,kBACA,sBACA,qBACA,2BACA,2DACA,uBAGD,iBACC,qBACA,aACA,gCAGD,eACC,YACA,aAGD,cACC,eACA,MACA,SACA,qBACA,YACA,WACA,aACA,kBACA,gDACA,wCACA,iBACA,eACA,kBACC,cACA,kBACA,UACA,QACA,gBAED,gBACC,wCACA,sDACA,4CACC,6CAOH,oBACC,WACA,YAGD,2BACC,+BAGD,gCACC,+BAGD,0BACC,kCACA,yCACA,+BACA,4BAMD,YACC,8CACA,wCAMD,kBACC,sBAKD,4BAEC,oCACA,kBACA,gBACA,WACA,sDACC,gBAED,sEACC,gBAED,kCACC,mBAED,oHAEC,qBACA,YACA,WACA,mBACA,gcAEC,WAOH,sBACC,WASD,oCACC,kBACA,yBACA,sBACA,qBACA,iBAID,kBAEC,kBACA,qBACA,SAEA,YAGD,8CAGC,WAGD,8BACC,sBACA,oBACA,wBACA,wBAGD,2EACC,WAGD,oGACC,kDACA,UACA,qBAGD,mDACC,6BACA,YACA,WACA,yCACA,4BACA,2BACA,WAOA,qEACC,UAED,qEACC,UAIF,wEACC,aAGD,2CACC,wBAGD,yBACC,kBACA,qBACA,sBAGD,qBACC,cACA,mBACA,iBACA,uBACA,aAKD,4CACC,eACA,YACA,mCACA,6BACA,qDAIA,2BACC,4BAKD,wBACC,sBACA,4BACA,+BACC,2CACA,qBACA,kBAGF,0BACC,qBACA,iBAIF,YACC,YACA,sCACA,oBACC,sBAIF,eACC,2CAUD,mBACC,kBACA,cACA,2BACC,kBACA,cAIF,UACC,gBAGD,8CACC,UAIA,WACC,WACA,YAGD,8CAEC,UAGD,oGAGC,WAIF,mBACC,WACA,kBACA,QAEA,kDACC,UAKD,kDACC,UAIF,eACC,WAEA,0CACC,UAKD,uGACC,8CAIF,KACC,mFAGD,OACC,gBACA,YACA,eACA,qBACA,UACC,qBAIF,2FACC,gBACA,uBAGD,2BACC,yDAGD,2BACC,6DAID,yBACC,gBACA,gBACA,WACA,mCACA,YACA,wBAEA,sKAGC,+BACA,mBAED,2CACC,YACA,eACA,YACA,8CACA,6BAEA,gEACC,cACA,mBAED,oDACC,WAEA,4JAEC,kCACA,4BAGF,oEACC,UAID,oDACC,mBACA,gCACA,WACA,WACA,YAED,0DACC,yBAGA,+FACC,gDAGD,wOAGC,8CACA,wCACA,iBAGD,yNAEC,gCACA,WAOH,4FACC,iDAED,4FACC,gDAKD,4FACC,gDAED,4FACC,iDAIF,wCACC,gCACA,wCAKD,yBACC,2BACA,sBACA,mCACA,wBAEA,4CACC,uBAGD,sKAGC,+BACA,mBAED,2CACC,YACA,eACA,YACA,8CACA,6BAEA,gEACC,cACA,mBAIF,qFACC,yBAGA,iDACC,mBACA,gCACA,WACA,yDACC,UACA,WACA,iBAGF,uDACC,yBAGA,0TAIC,8CACA,wCACA,iBAGD,4FACC,gCAGD,qEACC,gDASH,oGACC,aACA,iBACA,8BACA,0GACC,cACA,SACA,YACA,YACA,WACA,aACA,mBACA,uBACA,8GACC,kBACA,kBACA,mBACA,6BACA,cACA,iBACA,WACA,YACA,YACA,eAOJ,WACC,0BAGD,aACC,WACA,sBACA,oBAKD,YACC,kCAMA,qBACC,WACA,aAED,wBACC,cACA,gDACA,WACA,aAED,2BACC,WACA,YACA,6BACC,WAGF,wBACC,wCACA,kBACA,mBACA,gBACA,uBACA,0CACA,kCACA,6DACC,0CAGF,sBACC,UACA,WAKF,YACC,oBACA,YAGD,SACC,oBACA,kDACA,4BACA,iCACA,YACA,0BACA,cACA,QACA,uBACA,mBACC,QACA,kBACA,qBACC,WAIA,wFACC,cAIF,gCACC,SACA,sBACA,mCACC,iBACA,gBACA,kBACA,uBACA,+DACC,+EAGF,+CACC,aAIH,gBACC,aACA,uBACC,QAGF,yBAEC,kBACA,aACA,WACA,uBACA,mBACA,gBACA,cAEA,gBAEA,8FAGC,oBAGF,yBACC,UACA,WAGD,oBACC,iBACA,uBAEA,2BACC,uBAGF,+DACC,UAEA,0JAEC,WAOH,QACC,UACA,yCACA,sCACA,qCACA,oCACA,iCACA,oBACC,UAOD,+CACC,SACA,kBAED,mDACC,gBAKF,cACC,mBAMD,mBACC,aACA,QACA,SACA,UCz0BD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAUA,kFACC,6BAGD,uGACC,wCAGD,sDACC,kCAMD,iHAUC,YACA,yCACA,sBAYA,oFACC,eACA,oCACA,sCACA,QA/BiB,GAmCnB,wBACC,aAID,yJAUC,iBACA,8CACA,6BACA,0CACA,mCACA,aACA,mCACA,YACA,uYACC,WACA,sBAOC,kxDAIC,oCACA,aAED,gmBACC,aACA,8CACA,6BAGF,maACC,6DACA,oDAGF,wNACC,8CACA,6BACA,eACA,WAED,wNACC,gBAED,oPACC,mDAGD,iNACC,8CACA,0CACA,wCACA,eAGA,kvBAEC,+CAIA,mjCAGC,oDACA,gDAED,gwBAEC,4CAED,2WACC,6CAGF,gRAEC,8CACA,6CACA,eAKH,2BACC,WACA,sBACA,gBACA,eACA,gDACA,aACA,mCAEA,8CACA,oCACA,eACA,WAKA,4KACC,6BACA,0BACA,qBAEA,qCAED,0EAIC,YACA,WAID,kBACC,WACA,cACA,gBACA,WACA,eAED,mBACC,SACA,QAED,iBACC,cAKF,6GASC,2FACA,mCACA,WACA,yCACA,eACA,sBACA,8CACA,oDACA,YAEA,kSAEC,0DAGD,mKACC,eAIF,qMAcC,WACA,sBACA,eACA,mCACA,8CACA,6BACA,iDACA,YACA,aACA,yCACA,uBACA,eACA,+0BACC,8CACA,kDAED,yRACC,YAIF,mCACC,8CACA,6BAGD,mCACC,aACA,YAID,OACC,iDACA,gBACA,8CACA,mCAGD,qBACC,qCAGD,qBACC,oCASA,2DACC,eAIA,sFACC,eAMH,sGAQC,iBACA,2CAGA,gMACC,SAGD,oIACC,+CACA,2CACA,sBACA,kKACC,qDACA,+CAaD,4MAEC,qBACA,2BACA,WASF,kGACC,qCACA,mDACA,mFACA,iBACA,4BAEA,yDACA,UACA,qCACA,oCACA,gBACA,eACA,oBACA,6HACC,eCzUF,+CDiVE,yOACC,gCAID,4qBAGC,qDACA,8CACA,6vBACC,uDAQH,+VACC,qDACA,mDAEA,UAOH,uBAEC,eAGD,2BAEC,mBASA,4GAEC,kBACA,4BACA,SACA,UACA,WACA,gBACA,oIACC,iBAED,4WAEC,eAED,gKACC,WACA,qBACA,OAvBmB,KAwBnB,MAxBmB,KAyBnB,sBACA,kBACA,aACA,sBACA,+CAED,oeAEC,0CAED,4LACC,oBACA,qCACA,kBACA,mBAED,4bAIC,8DACA,8CACA,0CAED,oMACC,+CACA,0DAED,oOACC,+CAID,gJACC,qBACA,yBAED,oMACC,cA/DmB,KAmEpB,mFACC,kBACA,OArEmB,KAsEnB,MAtEmB,KAuEnB,2BACA,2BAED,mGACC,yDAED,+GACC,0DAOD,gZAEC,2BAED,wUACC,aAzF0B,KA2F3B,4NACC,8DACA,+BACA,2BAED,gOACC,0CACA,2CAED,gQACC,8DACA,2CACA,+BAID,8OAEC,0CACA,6BACA,+DAED,6HACC,gEAED,mHACC,WAMH,iBACC,gBACA,8CACA,qCACC,sCAED,yBACC,qBACA,sBACA,sBACA,6BACC,eAGF,uCACC,gBACA,wDACA,yCAED,kCACC,iBACA,SACA,UACA,wDACC,mBACA,gBACA,uBACA,6DACC,eACA,gEACC,eACA,iBAIH,6JAGC,kBACA,kBACA,aACA,+BACA,eACA,oCAGA,mEACC,8CAGF,uDACE,8CACA,6BAKJ,qDACC,4CAGD,qDACC,2CAKA,oGAEC,eAKD,mHAEC,gBACA,mBACA,uBACA,wCACA,+CACA,uBACA,yCACA,0CACA,SACA,YACA,gBACA,6IACC,0CAED,iKACC,iBACA,yBACA,stBAIC,sBACA,8CACA,oCACA,0CAED,2NACC,aAGF,2KACC,iBACA,gBACA,gBACA,6BACA,yMACC,2BAMJ,sBACC,WACA,sBACA,+DACC,aACA,eACA,kEACC,WAGF,uCACC,gBACA,mBACA,uBACA,wCACA,+CACA,uBACA,yCACA,0CACA,SACA,iBACA,gBACA,oDACC,0CAED,8DACC,iBACA,yBACA,sBACA,8CACA,0CACA,2FACC,aAED,8JAEC,qCACA,iCAGF,sDACC,gBACA,gBACA,YACA,wDACC,mEACA,WAGF,2LAGC,WAED,mEACC,iBAMH,UACC,WACA,sBACA,qBACA,2BACC,wBACA,eACA,yCACC,iBACA,yBACA,sBACA,8CACA,oCACA,0CACA,oBACA,mBACA,gDACC,wBAIH,yBACC,UACA,4BACC,YACA,kBACA,kBACA,+BACA,eACA,oCACA,8BACC,mBACA,gBACA,uBACA,YACA,sBACA,uBACA,SACA,eACA,eACA,2BACA,yBACA,sBACA,qBACA,iBACA,oBACA,mBACA,0CACA,yBACA,sCACC,YACA,4CACA,4BACA,2BACA,eACA,gBACA,cACA,WACA,sBACA,kBAGF,sCACC,6BAED,qCACC,8CACA,6BACA,6CACC,mBAQL,mBACC,cACA,WACA,UACA,cACA,8CACA,mCACA,gBACA,WACA,gBAEC,2CACC,8BAED,gDACC,8BAGF,yCACC,yBAED,sCACC,mCACA,wCACA,iCAED,2CACC,mCACA,wCACA,iCAKF,iBACC,QAEC,0BAED,QAEC,yBAED,YAGC,0BAED,QAEC,0BAIF,OACC,qBACA,uBACA,mCAKD,cACC,kBACA,4BACA,aACA,UACA,WACA,gBAWD,cAJC,oCACA,mCAOD,wBARC,oCACA,mCAWD,4BAZC,oCACA,mCEl3BD;AAAA;AAAA;AAAA;AAAA,GAYA,cACC,kBACA,gBACA,aACA,WACA,uBACA,aACA,aACA,eACA,SAEA,2BACC,yBAKF,QAEC,yBACA,sBACA,qBACA,iBAGA,2BACC,oBACA,kBACA,MACA,WACA,aACA,4BACA,sBACA,8BAID,mBACC,cACA,0BACA,kBACA,iDACA,sBACA,UACA,mBACA,aACA,eACA,gBACA,WAEA,mDACC,UAID,yBACC,oBACA,yFACA,4BACA,wBACA,2BACA,WACA,kBACA,wBACA,QACA,WAEA,gFAMF,iIAGC,aAEA,sJACC,YACA,kBACA,oBACA,2BACA,WACA,WACA,kBACA,oDACA,uBACA,UAOF,sBACC,oBACA,mBACA,SACA,mBACA,YAKD,oBACC,oBACA,mBACA,yBACA,cAEA,uDAIA,iDAEC,YACA,kBACA,yEACC,aACA,uBACA,mBACA,2BACA,sCACA,eACA,YACA,UACA,aAEA,qFACC,UAGD,qGACC,aAIF,6DACC,8CACA,sDACA,yCACA,sBACA,aACA,kBACA,gBAvJH,mDACA,+EAwJG,qBACA,yBACA,SACA,gBAEA,iGACC,aAID,yEACC,gCACA,iDACA,YACA,YACA,SACA,QACA,kBACA,oBACA,sBAGD,wIAEC,iCAjLJ,mDACA,+EAsLG,mFACC,mBACA,eAED,sNAEC,qBACA,YACA,WAQJ,wBACC,yCACA,eACA,iBACA,SACA,UACA,uBACA,gBACA,uBAEA,cAGA,qCACC,aACA,sBACA,gBAEA,mDACC,gBACA,uBAGD,uDACC,yCACA,kBACA,gBACA,iCACA,mCACA,gBACA,uBAMJ,8DACC,2BACC,wBAGD,sBACC,wCAGD,MAEC,uGF7PF;AAAA;AAAA;AAAA;AAAA,GHQA,iCACC,4BACA,2BACA,eACA,gBAGD,iBACC,kDAID,sGAMC,kBACA,0IACC,UACA,WACA,YACA,WACA,uBACA,kBACA,QACA,uBACA,mBACA,6CACA,qCACA,gCACA,4BACA,wBACA,4CACA,2CAEA,wCAEA,gYAGC,uCAKH,wDAEC,2CACA,4CAGD,yDAEC,YACA,WACA,qBAKA,yJACC,2CAED,iMACC,gDAED,yMACC,iDAED,iPACC,sDAIF,kBACC,KACC,uBAED,GACC,0BAIF,SACC,gCAGD,yKAQC,wDGzGD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GGSA,sCAEC,MACC,wCACA,yCAKF,KACC,WACA,YACA,kBAEA,6EAGD,KAEC,6EAEA,yCACA,sBACA,2BACA,eACA,WACA,iDAKD,eAKC,gBACA,gBACA,gBACA,mBACA,6BAGD,GACC,gBAGD,GACC,gBAGD,GACC,gBAGD,GACC,iBAGD,GACC,gBAID,GACC,kBACA,oCAGD,GACC,eAGD,MAEC,qBACA,aACA,uBAGD,GACC,YACA,mBACA,eAGD,IACC,iBACA,sBACA,kCACA,mCACA,qBACA,mBAMD,wBACC,sBAKD,0BAEC,gGACA,MLxBkB,MKyBlB,YACA,gBACA,kBACA,mDACA,8CACA,+EACA,gBACA,YACA,sBACA,qBACA,iBACA,aACA,sBACA,YACA,cAEA,kDACC,iBACA,0CACA,2EACA,mBACA,uBACA,2BACA,iBACA,oBACA,yBAQD,gGACC,cACA,6CACA,8GACC,qBACA,WACA,aACA,0BACA,iBACA,SAIF,8DACC,kBAED,8DACC,kBACA,YACA,WACA,kBACA,gBACA,sBACA,aACA,sBACA,6CACA,iBAEA,oFACC,oDAGD,oEACC,oBACA,eACA,QACA,cACA,SACA,kBACA,WACA,2CAGA,kFACC,QACA,4GACC,2BAIF,gIAEC,8DAED,0HAIC,0EAKA,wVAEC,+CAGF,oGACC,kDACA,yCAMA,gsBAEC,8CACA,wCAEA,g8BACC,qCAMH,sHACC,wBACA,SAMA,kNAEC,aAKF,0EACC,cACA,WACA,kBACA,gFACC,oBACA,eACA,mDACA,WACA,kBAIC,wXAEC,2CACA,+CAKD,gZAEC,2CACA,oDACA,ghBACC,qCAMH,kIACC,yDAGD,4IAEC,wBACA,0BAGD,sIAEC,wBAGA,6EAMJ,oJAEC,kBACA,sBAGC,4jBAGC,oCAIF,4JACC,0BACA,4BACA,cACA,8BACA,0CACA,yCACA,gBACA,oDACA,gBACA,sBACA,mBACA,uBACA,2CACA,6BACA,aACA,YAGA,4KACC,gBACA,kDACA,wOACC,gBACA,6DAGF,4NACC,kEACA,WACA,YAEA,wCAID,4QACC,qBAEA,4ZACC,gCAKH,wQACC,kBACA,cACA,YACA,WACA,YACA,YACA,kBACA,eACA,wCAEA,gRAEC,oCAKF,gQACC,kCAID,gSACC,UACA,YAED,4SACC,wBACA,YAIH,sEACC,aAMD,4YAEC,SACA,WACA,+BACA,4BACA,2BACA,w0BAEC,+BACA,UAUD,sGACC,UACA,kBACA,oCACA,qCACA,SACA,YAIA,qBAEA,kIACC,UACA,eACA,wDACA,gBAGF,gGACC,kBACA,qCACA,oCACA,SACA,UACA,gBFjZF,6CEmZE,qBACA,4BACA,2BACA,YACA,wBACA,gBACA,YACA,UACA,iCACA,6BACA,yBACA,YACA,kBACA,qCAMD,8GACC,mDAIA,wNACC,UAED,oMACC,sBAED,gTACC,oCAID,0GACC,4BACA,wBACA,oBAQH,gHACC,cACA,sHACC,wBACA,mBACA,yBAED,sHACC,+CACA,qCAED,8HACC,YACA,WACA,SACA,gBAIA,oSFpdF,uCEudE,obAEC,+BACA,UAGF,wLACC,gBACA,eACA,cACA,0CACA,eAEA,gNACC,UACA,kBACA,0NACC,gBACA,mBACA,8CACA,wCASJ,8GACC,mBACA,cACA,uBACA,qCACA,UACA,kBACA,8CACA,WACA,8OAEC,oBACA,WAED,0HACC,YACA,oBACA,YACA,4QAGC,UAGF,gJACC,WACA,YACA,wBACA,0BAED,wRAEC,WACA,YACA,cACA,4VACC,2BAED,gWACC,yBAED,oUACC,2CACA,6CACA,0BACA,4BAQH,oHACC,oBACA,mDACA,4BACA,wMACC,kBACA,mBACA,uBACA,gBACA,aACA,0CAED,8LACC,SACA,qCACA,oCACA,0CACA,oZAEC,UAQH,kOAEC,uBACA,2FAGA,kBACA,qBACA,8CACA,sBAMD,sFACC,gDACA,wCACA,oBAGD,sEACC,yBAGD,0OAEC,qBASA,0IACC,qCAGD,gHACC,qCAEA,wKACC,YASF,0IACC,sCAGD,gHACC,sCAEA,wKACC,WAOJ,SACC,sBACA,gBACA,oCACA,gCACA,UACA,aACA,kDACA,0BACA,2CACA,cAEA,kCACC,eAIF,2CACC,SACC,qDACA,mDAED,gBACC,qDAED,aACC,oDAcF,aACC,aACA,8CACA,iBACA,cACA,iBACA,YAGA,kCACC,gBAID,kCACC,aACA,kBACA,oBAGA,gBAGA,uDAEC,eACA,mFACC,aAKH,uCACC,oCASF,aACC,WACA,UL/qBmB,MKgrBnB,UL/qBmB,MKgrBnB,cACA,wBACA,gBACA,ILtrBe,KKurBf,mBACA,gBACA,kBACA,aACA,aACA,0BACA,wCACA,kDACA,cAEA,uBACC,aAOF,cAEC,gBAGC,oFACC,cAKH,sBACC,aACA,6CACA,cACA,0DAEA,iBACA,gBACA,sBAGA,uCACC,UAGD,iCACC,sBACA,sBACA,gCAOE,4NACC,qBACA,WACA,cAOL,qBACC,sBACA,+BACA,gBACA,oDACA,6CACA,cAEA,sCACC,aACA,mBACA,qCACA,WACA,UACA,SACA,+BACA,gBACA,SACA,oDACA,iBACA,mBACA,eACA,WAGA,6BAEA,6CACC,yCACA,8CACA,eAED,wFAEC,+CAGD,8CACC,2CACA,4BACA,WACA,oCACA,qCACA,MACA,qBACA,cAGD,oDACC,mEAOF,4DACC,qCAED,kEACC,qCAKD,4DACC,sCAED,kEACC,sCAIF,SACC,cACA,aACA,mBACA,gBACC,wBAIA,yDAEC,oBACA,sBAKH,aACC,kBACA,gBACA,yBACA,mBAGD,QACC,UACA,yCACA,sCACA,qCACA,oCACA,iCACA,oBACC,UAKF,YACC,aACA,mBAEA,uBACC,aACA,sBACA,YACA,kBACA,mBACA,gBACA,uBACA,eACA,gCACA,kBACA,YAEA,8BACC,aAID,mCACC,0BAED,kCACC,wBAGD,6BACC,qBACA,WACA,YACA,qBACA,sBACA,gBACA,sBACA,WACA,eAGD,yBACC,gCACA,kBACA,gBACA,uBAED,gCACC,iBAED,0FAGC,kBACA,6BACA,kDAMF,oBACC,oBAKF,6BACC,WAGD,6BACC,YASA,0JAGC,wCAIA,2LACC,YAKH,gDAGC,kBACA,8CACA,6BACA,yCACA,YACA,YACA,WACA,gBACA,mBACA,sDACA,aACA,mBAEA,kEACC,YAKA,qBAEA,2BACA,YACA,SACA,QACA,kBACA,oBACA,iDACA,iBAGD,oFACC,0BACA,qBACA,oBACA,sGACC,qBACA,0BAIF,8EACC,oBACA,oBACA,gGACC,sBAIF,+DACC,cAGD,+GACC,SAGD,yDAEC,wBACA,sBAED,yDACC,aACA,cAEA,8EACC,aAGD,oOAGC,eACA,YA/FkB,KAgGlB,SACA,yCACA,+BACA,aACA,uBACA,YACA,SACA,mBACA,gBACA,WACA,6BACA,mBAEA,whDAIC,YACA,aACA,+BACA,gBAnHe,KAqHhB,yzBAIC,yBAOC,gvGACC,oBAlIe,KAsIlB,+tBAEC,gCAED,ojBAEC,+CAED,4nBAEC,kDAED,mSACC,2CACA,oDAGD,mSACC,2BAED,iRACC,eACA,mBAED,sPACC,YACA,kBACA,cACA,mBAED,mSACC,SACA,wBAGD,gVACC,kCAID,wQACC,MA9Ke,KA+Kf,YAGD,uyBAEC,qBACA,WAED,yeACC,mBAED,8cACC,mBAED,2xBACC,YAED,iRACC,aACA,cAGA,mBACA,mbACC,wBAIF,04BAEC,sBAGD,0RACC,UAlNiB,KAmNjB,gBACA,aACA,cAEA,4bACC,wBAQA,2hDACC,eAMD,ygDACC,kBAKJ,8EACC,UACA,6FACC,UAcD,+EACC,MA/PiB,KAgQjB,OAhQiB,KAyQlB,6CACC,WACA,YAOJ,kBACC,wBACA,kBACA,MACA,gDACA,aACA,sBACA,uCACA,gBACA,gBACA,gBACA,kBACA,eACA,UL5sCgB,MK6sChB,UL5sCgB,MK+sChB,yCACC,kBACA,YACA,eACA,iBACA,aACA,eACA,mBACA,cAKC,8RAEC,QACA,WACA,YACA,YACA,aACA,WACA,eACA,4mBAEC,WAED,wtBAEC,WACA,ghDAEC,UAIF,kVACC,UAKH,8IAGC,8CAEA,2RACC,aAIF,6JAEC,kBACA,YACA,WACA,WAQC,2XAEC,aAEA,2eACC,WAIH,wFACC,SACA,uBAEA,aACA,gGACC,SAGD,oHACC,aAKH,qEACC,aACA,SACA,wBACA,qBACA,YACA,WACA,SACA,UAGD,qEACC,kBACA,qBACA,YACA,WACA,iBACA,kBACA,sBACA,uBACA,WACA,kBACA,gBACA,0BACA,iBACA,iBACA,eACA,QACA,iBAGD,kJAEC,cACA,yBACA,mBACA,gBACA,uBACA,QACA,aACA,eAGD,yEACC,WACA,QACA,SACA,sDAGD,wEACC,QACA,mBACA,gBACA,uBACA,gBACA,WACA,cACA,iBAGD,qEACC,QACA,kBACA,kFACC,SAGA,sBAIH,2EACC,aAIF,8CACC,6DACA,oDCt9CD;AAAA;AAAA;AAAA;AAAA;AAAA,GAcC,mDAEC,WAGD,kDAEC,YAGD,qDAEC,WAGD,oDAEC,YAKD,mDAEC,YAGD,kDAEC,WAGD,qDAEC,YAGD,oDAEC,WAIF,YACC,WAGD,QACC,aAGD,iBACC,kBACA,4BACA,aACA,UACA,WACA,gBAGD,MACC,gBAGD,QACC,kBAGD,aACC,qBCnFD;AAAA;AAAA;AAAA,GAOA,mBACC,SCRD;AAAA;AAAA;AAAA,GAMA,wCAGC,UACC,iCACA,qBAID,iBACC,wBAID,YACC,WACA,iCACA,sBAID,0BACC,6BACA,eACA,0BAGA,6BACC,wBAIF,0CACC,sBAGD,8BACC,uBACA,sBAID,kBACC,wCACA,cAEA,iBAEA,eACA,uCACC,aAED,8BACC,aACA,mDACC,gBAOF,gDACC,4BAED,qDACC,eACA,gCACA,IRiBa,KQhBb,qBACA,WACA,YACA,aACA,oCACA,eACA,WACA,wBAED,2CACC,4BAKF,uBACC,eACA,gCACA,qBACA,WACA,YACA,aACA,eACA,WAED,0DAEC,UAID,6CACC,0BAID,kDACC,kCAED,8CACC,wBAGD,wBACC,gCAID,gBACC,aAED,+BACC,6BAMF,0CACC,8BACC,6BACA,eACA,qCACC,wBAMA,0CACC,cAGF,+BACC,gCACA,iDACA,SACA,YACA,SACA,QACA,kBACA,oBACA,sBACA,aACA,aAID,wCACC,uBCpKH;AAAA;AAAA;AAAA;AAAA,GAMA,SACI,kBACA,cACA,6BACA,kBACA,mBACA,sBACA,gBACA,gBACA,iBACA,qBACA,iBACA,oBACA,mBACA,kBACA,oBACA,iBACA,uBACA,eACA,UACA,eAEA,gBACA,eACA,uDACA,8DAGI,mBACA,UACA,wBAEJ,uDAEI,uBACA,0BAEJ,8CAEI,eACA,eAEJ,4CAEI,wBACA,eACA,0EACI,QACA,qBACA,iBACA,8BACA,qDAGR,0CAEI,yBACA,cACA,wEACI,QACA,mBACA,iBACA,8BACA,uDAQJ,kPACI,SACA,yBACA,8CAGR,iCACI,sBACA,oBAEJ,kCACI,wBACA,oBAOA,0QACI,MACA,yBACA,iDAGR,4EAEI,uBACA,0BAEJ,oCACI,sBACA,iBAEJ,qCACI,wBACA,iBAIR,eACI,gBACA,gBACA,8CACA,6BACA,kBACA,mCAGJ,+BACI,kBACA,QACA,SACA,2BACA,mBCnIJ;AAAA;AAAA;AAAA,GAIA,kBACE,gBACA,gBACA,8CACA,6BACA,6CACA,eACA,gBACA,eACA,cACA,mCACA,aACA,mBACA,gBAEF,kFAEE,aACA,mBACA,WAEF,oEAEE,gBACA,gBACA,sBACA,eACA,YACA,aACA,mBACA,4BACA,2BACA,6BACA,aAEF,4FAEE,cACA,WACA,YACA,gBACA,iBACA,YAGF,4GAEE,sfACA,YACA,wCACA,qBACA,WACA,YAEF,wGAEE,WACA,wBACA,iBAEF,kPAIE,eACA,UAEF,+BACE,WAEF,mCACE,eAEF,8BACE,yCAEF,6BACE,2CAEF,gCACE,2CAEF,gCACE,2CAEF,6BACE,2CAEF,gCACE,2CAEF,8CACE,qBACA,WACA,YACA,iEACA,iBAOF,gEACE,kgBAEF,oCACC,8BACA,4BAED;AAAA;AAAA;AAAA,GAQA,iCACE,kBACA,WACA,YACA,eACA,gBACA,4BACA,wBACA,aACA,uBAGF,2CACE,mCAGF,0CACE,wCACA,kBACA,uBACD;AAAA;AAAA;AAAA,EAID,qCACE,+BAEF,wCACE,eACA,gBACA,uBACA,mBAEF,qDACE,cAEF,2DACE,sBAEF,iDACE,eACA,sBAEF,iDACE,qBAEF,6BACA,GACI,2BAEJ,IACI,6BAEJ,KACI,4BAGJ,4CACE,6BAEF,mCACE,qBACA,YACA,oIACA,2BACA,mCACA,8CAEF,2CACE,oBACA,mBAEF,iDACE,WAEF,0DACE,wBACA,YAEF,6CACE,WAEF,iDACE,WACD;AAAA;AAAA;AAAA,EAID,qCACE,+BAEF,wCACE,eACA,gBACA,uBACA,mBAEF,qDACE,cAEF,2DACE,sBAEF,iDACE,eACA,sBAEF,iDACE,qBAEF,6CACE,8CAEF,yCACE,+CAEF,8CACE,aACA,sBACA,mBACA,YAEF,yCACE,yBACA,YACA,gBACA,uBAEF,8CACE,oCACA,sBACD,8CACC,WACA,YACA,cAEF,qCACE,WACA,yBACA,qBAEF,2CACE,WACA,gBACA,mBAEF,wCACE,gBACA,UACA,MACA,8CACA,YAEF,wDACE,aAEF,qDACE,WAEF,iDACE,YAEF,iDACE,YAEF,qDACE,YAEF,4EACE,sBACA,2BAEF,mEACE,wBAEF,sEACE,oBAEF,6DACE,oCAEF,+EACE,mBACD,2CACC,uBACD,oCACC,aACA,sBACA,oBACA,UACA,gBACA,YACA,uBACA,cAEF,yDACE,sBAEF,4CACE,iBACA,gBAEF,yBACA,oCACI,mBACA,iBAGJ,yBACA,oCACI,mBACA,gBAEJ,4CACI,iBAGJ,yBACE,uBAEF,oDACE,sBAEF,0CACE,gBAEF,+CACA,yBACI,UAGJ,yBACA,yBACI,0CAEH,oCACC,YACA,aACA,sBACA,mBAEF,uCACE,iBACA,mBACA,SAEF,oCACE,sBACA,WACA,aACA,sBACA,aACA,OACA,mBAEF,sCACE,sBAEF,+BACE,kCAEF,yBACA,+BACI,qEAGJ,wCACE,aACA,sBACA,gBACD,2CACC,iBACA,oDAEF,6CACE,oDAEF,yDACE,aAEF,4CACE,uFCnZF;AAAA;AAAA;AAAA,GAIA,aACC,8DAGC,kDACC,wCAIA,wDACC,gBAED,yEACC,+BACA,2BACA,wCAEA,8OAGC,UAID,iFACC,aAED,oFACC,aAED,iGACC,YAMJ,sBACC,iEACA,uCAGD,8BACC,uCAID,kCACC,cAGD,oBACC,iBACA,mCACA,sBACA,qBACA,iBAED,+KAIC,kBAID,oBACC,eACA,oCACA,8CACA,2CACA,sBAEA,aACA,sBACA,mBACA,uBAEA,kDACA,2CACA,2CAEA,yCACC,8CAGD,sBACC,kBACA,oCACA,4CACA,WAEA,wBACC,qBACA,mCACA,iBACA,uCACA,kCACA,oCACA","file":"server.css"} \ No newline at end of file
diff --git a/core/css/server.css.map.license b/core/css/server.css.map.license
new file mode 100644
index 00000000000..0801c996d9d
--- /dev/null
+++ b/core/css/server.css.map.license
@@ -0,0 +1,2 @@
+SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
+SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/core/css/server.scss b/core/css/server.scss
index 1d4a79f6cf8..593556a65f8 100644
--- a/core/css/server.scss
+++ b/core/css/server.scss
@@ -1,11 +1,16 @@
-@import 'styles.scss';
-@import 'inputs.scss';
-@import 'header.scss';
-@import 'icons.scss';
-@import 'apps.scss';
-@import 'global.scss';
-@import 'fixes.scss';
-@import 'mobile.scss';
-@import 'tooltip.scss';
-@import 'toast.scss';
-@import 'public.scss';
+/*!
+ * SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+@use 'styles';
+@use 'inputs';
+@use 'header';
+@use 'icons';
+@use 'apps';
+@use 'global';
+@use 'fixes';
+@use 'mobile';
+@use 'tooltip';
+// If you include .css, it will be imported as url
+@use '../../node_modules/@nextcloud/dialogs/dist/style';
+@use 'public';
diff --git a/core/css/styles.css b/core/css/styles.css
new file mode 100644
index 00000000000..14617b81b16
--- /dev/null
+++ b/core/css/styles.css
@@ -0,0 +1,8 @@
+/*!
+ * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ *//*!
+ * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */:root{font-size:var(--default-font-size);line-height:var(--default-line-height)}html,body,div,span,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,code,del,dfn,em,img,q,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,dialog,figure,footer,header,hgroup,nav,section,main{margin:0;padding:0;border:0;font-weight:inherit;font-size:100%;font-family:inherit;vertical-align:baseline;cursor:default;scrollbar-color:var(--color-scrollbar)}.js-focus-visible :focus:not(.focus-visible){outline:none}.content:not(#content-vue) :focus-visible{box-shadow:inset 0 0 0 2px var(--color-primary-element);outline:none}html,body{height:100%;overscroll-behavior-y:contain}article,aside,dialog,figure,footer,header,hgroup,nav,section{display:block}table{border-collapse:separate;border-spacing:0;white-space:nowrap}caption,th,td{text-align:start;font-weight:normal}table,td,th{vertical-align:middle}a{border:0;color:var(--color-main-text);text-decoration:none;cursor:pointer}a *{cursor:pointer}a.external{margin:0 3px;text-decoration:underline}input{cursor:pointer}input *{cursor:pointer}select,.button span,label{cursor:pointer}ul{list-style:none}body{font-weight:normal;font-size:var(--default-font-size);line-height:var(--default-line-height);font-family:var(--font-face);color:var(--color-main-text)}.two-factor-header{text-align:center}.two-factor-provider{text-align:center;width:100% !important;display:inline-block;margin-bottom:0 !important;background-color:var(--color-background-darker) !important;border:none !important}.two-factor-link{display:inline-block;padding:12px;color:var(--color-text-lighter)}.float-spinner{height:32px;display:none}#nojavascript{position:fixed;top:0;bottom:0;inset-inline-start:0;height:100%;width:100%;z-index:9000;text-align:center;background-color:var(--color-background-darker);color:var(--color-primary-element-text);line-height:125%;font-size:24px}#nojavascript div{display:block;position:relative;width:50%;top:35%;margin:0px auto}#nojavascript a{color:var(--color-primary-element-text);border-bottom:2px dotted var(--color-main-background)}#nojavascript a:hover,#nojavascript a:focus{color:var(--color-primary-element-text-dark)}::-webkit-scrollbar{width:12px;height:12px}::-webkit-scrollbar-corner{background-color:rgba(0,0,0,0)}::-webkit-scrollbar-track-piece{background-color:rgba(0,0,0,0)}::-webkit-scrollbar-thumb{background:var(--color-scrollbar);border-radius:var(--border-radius-large);border:2px solid rgba(0,0,0,0);background-clip:content-box}::selection{background-color:var(--color-primary-element);color:var(--color-primary-element-text)}#app-navigation *{box-sizing:border-box}#emptycontent,.emptycontent{color:var(--color-text-maxcontrast);text-align:center;margin-top:30vh;width:100%}#app-sidebar #emptycontent,#app-sidebar .emptycontent{margin-top:10vh}#emptycontent .emptycontent-search,.emptycontent .emptycontent-search{position:static}#emptycontent h2,.emptycontent h2{margin-bottom:10px}#emptycontent [class^=icon-],#emptycontent [class*=icon-],.emptycontent [class^=icon-],.emptycontent [class*=icon-]{background-size:64px;height:64px;width:64px;margin:0 auto 15px}#emptycontent [class^=icon-]:not([class^=icon-loading]),#emptycontent [class^=icon-]:not([class*=icon-loading]),#emptycontent [class*=icon-]:not([class^=icon-loading]),#emptycontent [class*=icon-]:not([class*=icon-loading]),.emptycontent [class^=icon-]:not([class^=icon-loading]),.emptycontent [class^=icon-]:not([class*=icon-loading]),.emptycontent [class*=icon-]:not([class^=icon-loading]),.emptycontent [class*=icon-]:not([class*=icon-loading]){opacity:.4}#datadirContent label{width:100%}.grouptop,.groupmiddle,.groupbottom{position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}#show,#dbpassword{position:absolute;inset-inline-end:1em;top:.8em;float:right}body[dir=rtl] #show,body[dir=rtl] #dbpassword{float:left}#show+label,#dbpassword+label{inset-inline-end:21px;top:15px !important;margin:-14px !important;padding:14px !important}#show:checked+label,#dbpassword:checked+label,#personal-show:checked+label{opacity:.8}#show:focus-visible+label,#dbpassword-toggle:focus-visible+label,#personal-show:focus-visible+label{box-shadow:var(--color-primary-element) 0 0 0 2px;opacity:1;border-radius:9999px}#show+label,#dbpassword+label,#personal-show+label{position:absolute !important;height:20px;width:24px;background-image:var(--icon-toggle-dark);background-repeat:no-repeat;background-position:center;opacity:.3}#show:focus+label,#dbpassword:focus+label,#personal-show:focus+label{opacity:1}#show+label:hover,#dbpassword+label:hover,#personal-show+label:hover{opacity:1}#show+label:before,#dbpassword+label:before,#personal-show+label:before{display:none}#pass2,input[name=personal-password-clone]{padding-inline-end:30px}.personal-show-container{position:relative;display:inline-block;margin-inline-end:6px}#personal-show+label{display:block;inset-inline-end:0;margin-top:-43px;margin-inline-end:-4px;padding:22px}#body-user .warning,#body-settings .warning{margin-top:8px;padding:5px;border-radius:var(--border-radius);color:var(--color-main-text);background-color:rgba(var(--color-warning-rgb), 0.2)}.warning legend,.warning a{font-weight:bold !important}.error:not(.toastify) a{color:#fff !important;font-weight:bold !important}.error:not(.toastify) a.button{color:var(--color-text-lighter) !important;display:inline-block;text-align:center}.error:not(.toastify) pre{white-space:pre-wrap;text-align:start}.error-wide{width:700px;margin-inline-start:-200px !important}.error-wide .button{color:#000 !important}.warning-input{border-color:var(--color-error) !important}.avatar,.avatardiv{border-radius:50%;flex-shrink:0}.avatar>img,.avatardiv>img{border-radius:50%;flex-shrink:0}td.avatar{border-radius:0}tr .action:not(.permanent),.selectedActions>a{opacity:0}tr .action{width:16px;height:16px}tr:hover .action:hover,tr:focus .action:focus{opacity:1}tr:hover .action:not(.menuitem),tr:focus .action:not(.menuitem),tr .action.permanent:not(.menuitem){opacity:.5}.selectedActions>a{opacity:.5;position:relative;top:2px}.selectedActions>a:hover,.selectedActions>a:focus{opacity:1}.selectedActions a:hover,.selectedActions a:focus{opacity:1}.header-action{opacity:.8}.header-action:hover,.header-action:focus{opacity:1}tbody tr:not(.group-header):hover,tbody tr:not(.group-header):focus,tbody tr:not(.group-header):active{background-color:var(--color-background-dark)}code{font-family:"Lucida Console","Lucida Sans Typewriter","DejaVu Sans Mono",monospace}.pager{list-style:none;float:right;display:inline;margin:.7em 13em 0 0}.pager li{display:inline-block}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{overflow:hidden;text-overflow:ellipsis}.ui-icon-circle-triangle-e{background-image:url("../img/actions/play-next.svg?v=1")}.ui-icon-circle-triangle-w{background-image:url("../img/actions/play-previous.svg?v=1")}.ui-widget.ui-datepicker{margin-top:10px;padding:4px 8px;width:auto;border-radius:var(--border-radius);border:none;z-index:1600 !important}.ui-widget.ui-datepicker .ui-state-default,.ui-widget.ui-datepicker .ui-widget-content .ui-state-default,.ui-widget.ui-datepicker .ui-widget-header .ui-state-default{border:1px solid rgba(0,0,0,0);background:inherit}.ui-widget.ui-datepicker .ui-widget-header{padding:7px;font-size:13px;border:none;background-color:var(--color-main-background);color:var(--color-main-text)}.ui-widget.ui-datepicker .ui-widget-header .ui-datepicker-title{line-height:1;font-weight:normal}.ui-widget.ui-datepicker .ui-widget-header .ui-icon{opacity:.5}.ui-widget.ui-datepicker .ui-widget-header .ui-icon.ui-icon-circle-triangle-e,.ui-widget.ui-datepicker .ui-widget-header .ui-icon.ui-icon-circle-triangle-w{background-position:center center;background-repeat:no-repeat}.ui-widget.ui-datepicker .ui-widget-header .ui-state-hover .ui-icon{opacity:1}.ui-widget.ui-datepicker .ui-datepicker-calendar th{font-weight:normal;color:var(--color-text-lighter);opacity:.8;width:26px;padding:2px}.ui-widget.ui-datepicker .ui-datepicker-calendar tr:hover{background-color:inherit}.ui-widget.ui-datepicker .ui-datepicker-calendar td.ui-datepicker-today a:not(.ui-state-hover){background-color:var(--color-background-darker)}.ui-widget.ui-datepicker .ui-datepicker-calendar td.ui-datepicker-current-day a.ui-state-active,.ui-widget.ui-datepicker .ui-datepicker-calendar td .ui-state-hover,.ui-widget.ui-datepicker .ui-datepicker-calendar td .ui-state-focus{background-color:var(--color-primary-element);color:var(--color-primary-element-text);font-weight:bold}.ui-widget.ui-datepicker .ui-datepicker-calendar td.ui-datepicker-week-end:not(.ui-state-disabled) :not(.ui-state-hover),.ui-widget.ui-datepicker .ui-datepicker-calendar td .ui-priority-secondary:not(.ui-state-hover){color:var(--color-text-lighter);opacity:.8}body[dir=ltr] .ui-widget.ui-datepicker .ui-widget-header .ui-icon.ui-icon-circle-triangle-e{background:url("../img/actions/arrow-right.svg")}body[dir=ltr] .ui-widget.ui-datepicker .ui-widget-header .ui-icon.ui-icon-circle-triangle-w{background:url("../img/actions/arrow-left.svg")}body[dir=rtl] .ui-widget.ui-datepicker .ui-widget-header .ui-icon.ui-icon-circle-triangle-e{background:url("../img/actions/arrow-left.svg")}body[dir=rtl] .ui-widget.ui-datepicker .ui-widget-header .ui-icon.ui-icon-circle-triangle-w{background:url("../img/actions/arrow-right.svg")}.ui-datepicker-prev,.ui-datepicker-next{border:var(--color-border-dark);background:var(--color-main-background)}.ui-widget.ui-timepicker{margin-top:10px !important;width:auto !important;border-radius:var(--border-radius);z-index:1600 !important}.ui-widget.ui-timepicker .ui-widget-content{border:none !important}.ui-widget.ui-timepicker .ui-state-default,.ui-widget.ui-timepicker .ui-widget-content .ui-state-default,.ui-widget.ui-timepicker .ui-widget-header .ui-state-default{border:1px solid rgba(0,0,0,0);background:inherit}.ui-widget.ui-timepicker .ui-widget-header{padding:7px;font-size:13px;border:none;background-color:var(--color-main-background);color:var(--color-main-text)}.ui-widget.ui-timepicker .ui-widget-header .ui-timepicker-title{line-height:1;font-weight:normal}.ui-widget.ui-timepicker table.ui-timepicker tr .ui-timepicker-hour-cell:first-child{margin-inline-start:30px}.ui-widget.ui-timepicker .ui-timepicker-table th{font-weight:normal;color:var(--color-text-lighter);opacity:.8}.ui-widget.ui-timepicker .ui-timepicker-table th.periods{padding:0;width:30px;line-height:30px}.ui-widget.ui-timepicker .ui-timepicker-table tr:hover{background-color:inherit}.ui-widget.ui-timepicker .ui-timepicker-table td.ui-timepicker-hour-cell a.ui-state-active,.ui-widget.ui-timepicker .ui-timepicker-table td.ui-timepicker-minute-cell a.ui-state-active,.ui-widget.ui-timepicker .ui-timepicker-table td .ui-state-hover,.ui-widget.ui-timepicker .ui-timepicker-table td .ui-state-focus{background-color:var(--color-primary-element);color:var(--color-primary-element-text);font-weight:bold}.ui-widget.ui-timepicker .ui-timepicker-table td.ui-timepicker-minutes:not(.ui-state-hover){color:var(--color-text-lighter)}.ui-widget.ui-timepicker .ui-timepicker-table td.ui-timepicker-hours{border-inline-end:1px solid var(--color-border)}.ui-widget.ui-datepicker .ui-datepicker-calendar tr,.ui-widget.ui-timepicker table.ui-timepicker tr{display:flex;flex-wrap:nowrap;justify-content:space-between}.ui-widget.ui-datepicker .ui-datepicker-calendar tr td,.ui-widget.ui-timepicker table.ui-timepicker tr td{flex:1 1 auto;margin:0;padding:2px;height:26px;width:26px;display:flex;align-items:center;justify-content:center}.ui-widget.ui-datepicker .ui-datepicker-calendar tr td>*,.ui-widget.ui-timepicker table.ui-timepicker tr td>*{border-radius:50%;text-align:center;font-weight:normal;color:var(--color-main-text);display:block;line-height:18px;width:18px;height:18px;padding:3px;font-size:.9em}.ui-dialog{position:fixed !important}span.ui-icon{float:left;margin-block:3px 30px;margin-inline:0 7px}.extra-data{padding-inline-end:5px !important}#tagsdialog .content{width:100%;height:280px}#tagsdialog .scrollarea{overflow:auto;border:1px solid var(--color-background-darker);width:100%;height:240px}#tagsdialog .bottombuttons{width:100%;height:30px}#tagsdialog .bottombuttons *{float:left}#tagsdialog .taglist li{background:var(--color-background-dark);padding:.3em .8em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-webkit-transition:background-color 500ms;transition:background-color 500ms}#tagsdialog .taglist li:hover,#tagsdialog .taglist li:active{background:var(--color-background-darker)}#tagsdialog .addinput{width:90%;clear:both}.breadcrumb{display:inline-flex;height:50px}li.crumb{display:inline-flex;background-image:url("../img/breadcrumb.svg?v=1");background-repeat:no-repeat;background-position:right center;height:44px;background-size:auto 24px;flex:0 0 auto;order:1;padding-inline-end:7px}li.crumb.crumbmenu{order:2;position:relative}li.crumb.crumbmenu a{opacity:.5}li.crumb.crumbmenu.canDropChildren .popovermenu,li.crumb.crumbmenu.canDrop .popovermenu{display:block}li.crumb.crumbmenu .popovermenu{top:100%;margin-inline-end:3px}li.crumb.crumbmenu .popovermenu ul{max-height:345px;overflow-y:auto;overflow-x:hidden;padding-inline-end:5px}li.crumb.crumbmenu .popovermenu ul li.canDrop span:first-child{background-image:url("../img/filetypes/folder-drag-accept.svg?v=1") !important}li.crumb.crumbmenu .popovermenu .in-breadcrumb{display:none}li.crumb.hidden{display:none}li.crumb.hidden~.crumb{order:3}li.crumb>a,li.crumb>span{position:relative;padding:12px;opacity:.5;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;flex:0 0 auto;max-width:200px}li.crumb>a.icon-home,li.crumb>a.icon-delete,li.crumb>span.icon-home,li.crumb>span.icon-delete{text-indent:-9999px}li.crumb>a[class^=icon-]{padding:0;width:44px}li.crumb:last-child{font-weight:bold;margin-inline-end:10px}li.crumb:last-child a~span{padding-inline-start:0}li.crumb:hover,li.crumb:focus,li.crumb a:focus,li.crumb:active{opacity:1}li.crumb:hover>a,li.crumb:hover>span,li.crumb:focus>a,li.crumb:focus>span,li.crumb a:focus>a,li.crumb a:focus>span,li.crumb:active>a,li.crumb:active>span{opacity:.7}.appear{opacity:1;-webkit-transition:opacity 500ms ease 0s;-moz-transition:opacity 500ms ease 0s;-ms-transition:opacity 500ms ease 0s;-o-transition:opacity 500ms ease 0s;transition:opacity 500ms ease 0s}.appear.transparent{opacity:0}fieldset.warning legend,fieldset.update legend{top:18px;position:relative}fieldset.warning legend+p,fieldset.update legend+p{margin-top:12px}@-ms-viewport{width:device-width}.hiddenuploadfield{display:none;width:0;height:0;opacity:0}/*# sourceMappingURL=styles.css.map */
diff --git a/core/css/styles.css.map b/core/css/styles.css.map
new file mode 100644
index 00000000000..73e50a6eaa2
--- /dev/null
+++ b/core/css/styles.css.map
@@ -0,0 +1 @@
+{"version":3,"sourceRoot":"","sources":["styles.scss","variables.scss"],"names":[],"mappings":"AAAA;AAAA;AAAA;AAAA;AAAA,GCEA;AAAA;AAAA;AAAA,GDMA,MACC,mCACA,uCAGD,yQACC,SACA,UACA,SACA,oBACA,eACA,oBACA,wBACA,eACA,uCAGD,6CACC,aAID,0CACC,wDACA,aAGD,UACC,YAEA,8BAGD,6DACC,cAGD,MACC,yBACA,iBACA,mBAGD,cACC,iBACA,mBAGD,YACC,sBAGD,EACC,SACA,6BACA,qBACA,eACA,IACC,eAIF,WACC,aACA,0BAGD,MACC,eACA,QACC,eAIF,0BACC,eAGD,GACC,gBAGD,KACC,mBAEA,mCACA,uCACA,6BACA,6BAGD,mBACC,kBAGD,qBACC,kBACA,sBACA,qBACA,2BACA,2DACA,uBAGD,iBACC,qBACA,aACA,gCAGD,eACC,YACA,aAGD,cACC,eACA,MACA,SACA,qBACA,YACA,WACA,aACA,kBACA,gDACA,wCACA,iBACA,eACA,kBACC,cACA,kBACA,UACA,QACA,gBAED,gBACC,wCACA,sDACA,4CACC,6CAOH,oBACC,WACA,YAGD,2BACC,+BAGD,gCACC,+BAGD,0BACC,kCACA,yCACA,+BACA,4BAMD,YACC,8CACA,wCAMD,kBACC,sBAKD,4BAEC,oCACA,kBACA,gBACA,WACA,sDACC,gBAED,sEACC,gBAED,kCACC,mBAED,oHAEC,qBACA,YACA,WACA,mBACA,gcAEC,WAOH,sBACC,WASD,oCACC,kBACA,yBACA,sBACA,qBACA,iBAID,kBAEC,kBACA,qBACA,SAEA,YAGD,8CAGC,WAGD,8BACC,sBACA,oBACA,wBACA,wBAGD,2EACC,WAGD,oGACC,kDACA,UACA,qBAGD,mDACC,6BACA,YACA,WACA,yCACA,4BACA,2BACA,WAOA,qEACC,UAED,qEACC,UAIF,wEACC,aAGD,2CACC,wBAGD,yBACC,kBACA,qBACA,sBAGD,qBACC,cACA,mBACA,iBACA,uBACA,aAKD,4CACC,eACA,YACA,mCACA,6BACA,qDAIA,2BACC,4BAKD,wBACC,sBACA,4BACA,+BACC,2CACA,qBACA,kBAGF,0BACC,qBACA,iBAIF,YACC,YACA,sCACA,oBACC,sBAIF,eACC,2CAUD,mBACC,kBACA,cACA,2BACC,kBACA,cAIF,UACC,gBAGD,8CACC,UAIA,WACC,WACA,YAGD,8CAEC,UAGD,oGAGC,WAIF,mBACC,WACA,kBACA,QAEA,kDACC,UAKD,kDACC,UAIF,eACC,WAEA,0CACC,UAKD,uGACC,8CAIF,KACC,mFAGD,OACC,gBACA,YACA,eACA,qBACA,UACC,qBAIF,2FACC,gBACA,uBAGD,2BACC,yDAGD,2BACC,6DAID,yBACC,gBACA,gBACA,WACA,mCACA,YACA,wBAEA,sKAGC,+BACA,mBAED,2CACC,YACA,eACA,YACA,8CACA,6BAEA,gEACC,cACA,mBAED,oDACC,WAEA,4JAEC,kCACA,4BAGF,oEACC,UAID,oDACC,mBACA,gCACA,WACA,WACA,YAED,0DACC,yBAGA,+FACC,gDAGD,wOAGC,8CACA,wCACA,iBAGD,yNAEC,gCACA,WAOH,4FACC,iDAED,4FACC,gDAKD,4FACC,gDAED,4FACC,iDAIF,wCACC,gCACA,wCAKD,yBACC,2BACA,sBACA,mCACA,wBAEA,4CACC,uBAGD,sKAGC,+BACA,mBAED,2CACC,YACA,eACA,YACA,8CACA,6BAEA,gEACC,cACA,mBAIF,qFACC,yBAGA,iDACC,mBACA,gCACA,WACA,yDACC,UACA,WACA,iBAGF,uDACC,yBAGA,0TAIC,8CACA,wCACA,iBAGD,4FACC,gCAGD,qEACC,gDASH,oGACC,aACA,iBACA,8BACA,0GACC,cACA,SACA,YACA,YACA,WACA,aACA,mBACA,uBACA,8GACC,kBACA,kBACA,mBACA,6BACA,cACA,iBACA,WACA,YACA,YACA,eAOJ,WACC,0BAGD,aACC,WACA,sBACA,oBAKD,YACC,kCAMA,qBACC,WACA,aAED,wBACC,cACA,gDACA,WACA,aAED,2BACC,WACA,YACA,6BACC,WAGF,wBACC,wCACA,kBACA,mBACA,gBACA,uBACA,0CACA,kCACA,6DACC,0CAGF,sBACC,UACA,WAKF,YACC,oBACA,YAGD,SACC,oBACA,kDACA,4BACA,iCACA,YACA,0BACA,cACA,QACA,uBACA,mBACC,QACA,kBACA,qBACC,WAIA,wFACC,cAIF,gCACC,SACA,sBACA,mCACC,iBACA,gBACA,kBACA,uBACA,+DACC,+EAGF,+CACC,aAIH,gBACC,aACA,uBACC,QAGF,yBAEC,kBACA,aACA,WACA,uBACA,mBACA,gBACA,cAEA,gBAEA,8FAGC,oBAGF,yBACC,UACA,WAGD,oBACC,iBACA,uBAEA,2BACC,uBAGF,+DACC,UAEA,0JAEC,WAOH,QACC,UACA,yCACA,sCACA,qCACA,oCACA,iCACA,oBACC,UAOD,+CACC,SACA,kBAED,mDACC,gBAKF,cACC,mBAMD,mBACC,aACA,QACA,SACA","file":"styles.css"} \ No newline at end of file
diff --git a/core/css/styles.css.map.license b/core/css/styles.css.map.license
new file mode 100644
index 00000000000..82ac7cce426
--- /dev/null
+++ b/core/css/styles.css.map.license
@@ -0,0 +1,3 @@
+SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
+SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/core/css/styles.scss b/core/css/styles.scss
index 780a2085bc8..7c733004650 100644
--- a/core/css/styles.scss
+++ b/core/css/styles.scss
@@ -1,45 +1,48 @@
-/**
- * @copyright Copyright (c) 2016, John Molakvoæ <skjnldsv@protonmail.com>
- * @copyright Copyright (c) 2016, Lukas Reschke <lukas@statuscode.ch>
- * @copyright Copyright (c) 2016, Robin Appelman <robin@icewind.nl>
- * @copyright Copyright (c) 2016, Julius Haertl <jus@bitgrid.net>
- * @copyright Copyright (c) 2016, Joas Schilling <coding@schilljs.com>
- * @copyright Copyright (c) 2016, Morris Jobke <hey@morrisjobke.de>
- * @copyright Copyright (c) 2016, Christoph Wurst <christoph@winzerhof-wurst.at>
- * @copyright Copyright (c) 2016, Raghu Nayyar <hey@raghunayyar.com>
- * @copyright Copyright (c) 2011-2017, Jan-Christoph Borchardt <hey@jancborchardt.net>
- * @copyright Copyright (c) 2019-2020, Gary Kim <gary@garykim.dev>
- *
- * @license GNU AGPL version 3 or any later version
- *
+/*!
+ * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
+@use 'sass:math';
+@use 'variables';
-html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, code, del, dfn, em, img, q, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, dialog, figure, footer, header, hgroup, nav, section {
+:root {
+ font-size: var(--default-font-size);
+ line-height: var(--default-line-height);
+}
+
+html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, code, del, dfn, em, img, q, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, dialog, figure, footer, header, hgroup, nav, section, main {
margin: 0;
padding: 0;
border: 0;
- outline: 0;
font-weight: inherit;
font-size: 100%;
font-family: inherit;
vertical-align: baseline;
cursor: default;
- scrollbar-color: var(--color-border-dark) transparent;
- scrollbar-width: thin;
+ scrollbar-color: var(--color-scrollbar);
+}
+
+.js-focus-visible :focus:not(.focus-visible) {
+ outline: none;
+}
+
+/** Let vue apps handle the focus themselves */
+.content:not(#content-vue) :focus-visible {
+ box-shadow: inset 0 0 0 2px var(--color-primary-element);
+ outline: none;
}
html, body {
height: 100%;
+ // disable pull-down-to-refresh on chromium mobile
+ overscroll-behavior-y: contain;
}
article, aside, dialog, figure, footer, header, hgroup, nav, section {
display: block;
}
-body {
- line-height: 1.5;
-}
-
table {
border-collapse: separate;
border-spacing: 0;
@@ -47,7 +50,7 @@ table {
}
caption, th, td {
- text-align: left;
+ text-align: start;
font-weight: normal;
}
@@ -86,7 +89,6 @@ ul {
}
body {
- background-color: var(--color-main-background);
font-weight: normal;
/* bring the default font size up to 15px */
font-size: var(--default-font-size);
@@ -101,7 +103,7 @@ body {
.two-factor-provider {
text-align: center;
- width: 258px !important;
+ width: 100% !important;
display: inline-block;
margin-bottom: 0 !important;
background-color: var(--color-background-darker) !important;
@@ -123,13 +125,13 @@ body {
position: fixed;
top: 0;
bottom: 0;
- left: 0;
+ inset-inline-start: 0;
height: 100%;
width: 100%;
z-index: 9000;
text-align: center;
background-color: var(--color-background-darker);
- color: var(--color-primary-text);
+ color: var(--color-primary-element-text);
line-height: 125%;
font-size: 24px;
div {
@@ -140,10 +142,10 @@ body {
margin: 0px auto;
}
a {
- color: var(--color-primary-text);
+ color: var(--color-primary-element-text);
border-bottom: 2px dotted var(--color-main-background);
&:hover, &:focus {
- color: var(--color-primary-text-dark);
+ color: var(--color-primary-element-text-dark);
}
}
}
@@ -155,12 +157,16 @@ body {
height: 12px
}
+::-webkit-scrollbar-corner {
+ background-color: transparent;
+}
+
::-webkit-scrollbar-track-piece {
background-color: transparent;
}
::-webkit-scrollbar-thumb {
- background: var(--color-border-dark);
+ background: var(--color-scrollbar);
border-radius: var(--border-radius-large);
border: 2px solid transparent;
background-clip: content-box;
@@ -171,57 +177,16 @@ body {
::selection {
background-color: var(--color-primary-element);
- color: var(--color-primary-text);
+ color: var(--color-primary-element-text);
}
/* CONTENT ------------------------------------------------------------------ */
-#controls {
- box-sizing: border-box;
- @include position('sticky');
- height: 44px;
- padding: 0;
- margin: 0;
- background-color: var(--color-main-background-translucent);
- z-index: 61; /* must be above the filelist sticky header */
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
- display: flex;
- top: $header-height;
-}
-
-/* position controls for apps with app-navigation */
-
-.viewer-mode #app-navigation + #app-content #controls {
- left: 0;
-}
-
#app-navigation * {
box-sizing: border-box;
}
-#controls .actions {
- > div,
- & {
- > .button, button {
- box-sizing: border-box;
- display: inline-block;
- display: flex;
- height: 36px;
- width: 36px;
- padding: 9px; // width - border - icon width = 18px
- align-items: center;
- justify-content: center;
- }
- .button.hidden {
- display: none;
- }
- }
-}
-
/* EMPTY CONTENT DISPLAY ------------------------------------------------------------ */
#emptycontent,
@@ -273,16 +238,23 @@ body {
}
/* Show password toggle */
-
-#show, #dbpassword {
+#show,
+#dbpassword {
position: absolute;
- right: 1em;
+ inset-inline-end: 1em;
top: .8em;
+ /* Cannot use inline-start and :dir to support Samsung Internet */
float: right;
}
+body[dir='rtl'] #show,
+body[dir='rtl'] #dbpassword {
+ /* Cannot use inline-start and :dir to support Samsung Internet */
+ float: left;
+}
+
#show + label, #dbpassword + label {
- right: 21px;
+ inset-inline-end: 21px;
top: 15px !important;
margin: -14px !important;
padding: 14px !important;
@@ -292,11 +264,17 @@ body {
opacity: .8;
}
+#show:focus-visible + label, #dbpassword-toggle:focus-visible + label, #personal-show:focus-visible + label {
+ box-shadow: var(--color-primary-element) 0 0 0 2px;
+ opacity: 1;
+ border-radius: 9999px;
+}
+
#show + label, #dbpassword + label, #personal-show + label {
position: absolute !important;
height: 20px;
width: 24px;
- background-image: var(--icon-toggle-000);
+ background-image: var(--icon-toggle-dark);
background-repeat: no-repeat;
background-position: center;
opacity: .3;
@@ -319,19 +297,20 @@ body {
}
#pass2, input[name='personal-password-clone'] {
- padding-right: 30px;
+ padding-inline-end: 30px;
}
.personal-show-container {
position: relative;
display: inline-block;
- margin-right: 6px;
+ margin-inline-end: 6px;
}
+
#personal-show + label {
display: block;
- right: 0;
+ inset-inline-end: 0;
margin-top: -43px;
- margin-right: -4px;
+ margin-inline-end: -4px;
padding: 22px;
}
@@ -341,13 +320,12 @@ body {
margin-top: 8px;
padding: 5px;
border-radius: var(--border-radius);
- color: var(--color-primary-text);
- background-color: var(--color-warning);
+ color: var(--color-main-text);
+ background-color: rgba(var(--color-warning-rgb), 0.2);
}
.warning {
legend, a {
- color: var(--color-primary-text) !important;
font-weight: bold !important;
}
}
@@ -364,13 +342,13 @@ body {
}
pre {
white-space: pre-wrap;
- text-align: left;
+ text-align: start;
}
}
.error-wide {
width: 700px;
- margin-left: -200px !important;
+ margin-inline-start: -200px !important;
.button {
color: black !important;
}
@@ -381,26 +359,7 @@ body {
}
/* fixes for update page TODO should be fixed some time in a proper way */
-/* this is just for an error while updating the ownCloud instance */
-
-/* Alternative Logins */
-
-#alternative-logins {
- legend {
- margin-bottom: 10px;
- }
- li {
- height: 40px;
- display: inline-block;
- white-space: nowrap;
- }
-}
-
-/* Log in and install button */
-
-#remember_login {
- margin: 18px 5px 0 16px !important;
-}
+/* this is just for an error while updating the Nextcloud instance */
/* Sticky footer */
@@ -419,56 +378,21 @@ td.avatar {
border-radius: 0;
}
-#notification-container {
- left: 50%;
- max-width: 60%;
- position: fixed;
- top: 0;
- text-align: center;
- transform: translateX(-50%);
- z-index: 8000;
+tr .action:not(.permanent), .selectedActions > a {
+ opacity: 0;
}
-#notification {
- margin: 0 auto;
- z-index: 8000;
- background-color: var(--color-main-background);
- border: 0;
- padding: 1px 8px;
- display: none;
- position: relative;
- top: 0;
- border-bottom-left-radius: 3px;
- border-bottom-right-radius: 3px;
- opacity: .9;
- span {
- cursor: pointer;
- margin-left: 1em;
- }
- overflow-x: hidden;
- overflow-y: auto;
- max-height: 100px;
- .row {
- position: relative;
- .close {
- display: inline-block;
- vertical-align: middle;
- position: absolute;
- right: 0;
- top: 0;
- margin-top: 2px;
- }
- &.closeable {
- padding-right: 20px;
- }
+tr {
+ .action {
+ width: 16px;
+ height: 16px;
}
-}
-tr .action:not(.permanent), .selectedActions a {
- opacity: 0;
-}
+ &:hover .action:hover,
+ &:focus .action:focus {
+ opacity: 1;
+ }
-tr {
&:hover .action:not(.menuitem),
&:focus .action:not(.menuitem),
.action.permanent:not(.menuitem) {
@@ -476,21 +400,12 @@ tr {
}
}
-.selectedActions a {
+.selectedActions > a {
opacity: .5;
-}
-
-tr .action {
- width: 16px;
- height: 16px;
-}
-
-.header-action {
- opacity: .8;
-}
+ position: relative;
+ top: 2px;
-tr {
- &:hover .action:hover, &:focus .action:focus {
+ &:hover, &:focus {
opacity: 1;
}
}
@@ -502,12 +417,14 @@ tr {
}
.header-action {
+ opacity: .8;
+
&:hover, &:focus {
opacity: 1;
}
}
-tbody tr {
+tbody tr:not(.group-header) {
&:hover, &:focus, &:active {
background-color: var(--color-background-dark);
}
@@ -569,11 +486,10 @@ code {
.ui-icon {
opacity: .5;
- &.ui-icon-circle-triangle-e {
- background: url("../img/actions/arrow-right.svg") center center no-repeat;
- }
+ &.ui-icon-circle-triangle-e,
&.ui-icon-circle-triangle-w {
- background: url("../img/actions/arrow-left.svg") center center no-repeat;
+ background-position: center center;
+ background-repeat: no-repeat;
}
}
.ui-state-hover .ui-icon {
@@ -599,8 +515,8 @@ code {
&.ui-datepicker-current-day a.ui-state-active,
.ui-state-hover,
.ui-state-focus {
- background-color: var(--color-primary);
- color: var(--color-primary-text);
+ background-color: var(--color-primary-element);
+ color: var(--color-primary-element-text);
font-weight: bold;
}
@@ -613,6 +529,24 @@ code {
}
}
+body[dir='ltr'] .ui-widget.ui-datepicker .ui-widget-header .ui-icon {
+ &.ui-icon-circle-triangle-e {
+ background: url("../img/actions/arrow-right.svg");
+ }
+ &.ui-icon-circle-triangle-w {
+ background: url("../img/actions/arrow-left.svg");
+ }
+}
+
+body[dir='rtl'] .ui-widget.ui-datepicker .ui-widget-header .ui-icon {
+ &.ui-icon-circle-triangle-e {
+ background: url("../img/actions/arrow-left.svg");
+ }
+ &.ui-icon-circle-triangle-w {
+ background: url("../img/actions/arrow-right.svg");
+ }
+}
+
.ui-datepicker-prev, .ui-datepicker-next {
border: var(--color-border-dark);
background: var(--color-main-background);
@@ -650,7 +584,7 @@ code {
}
/* AM/PM fix */
table.ui-timepicker tr .ui-timepicker-hour-cell:first-child {
- margin-left: 30px;
+ margin-inline-start: 30px;
}
.ui-timepicker-table {
th {
@@ -671,8 +605,8 @@ code {
&.ui-timepicker-minute-cell a.ui-state-active,
.ui-state-hover,
.ui-state-focus {
- background-color: var(--color-primary);
- color: var(--color-primary-text);
+ background-color: var(--color-primary-element);
+ color: var(--color-primary-element-text);
font-weight: bold;
}
@@ -681,7 +615,7 @@ code {
}
&.ui-timepicker-hours {
- border-right: 1px solid var(--color-border);
+ border-inline-end: 1px solid var(--color-border);
}
}
}
@@ -720,392 +654,20 @@ code {
}
/* ---- DIALOGS ---- */
-#oc-dialog-filepicker-content {
- position: relative;
- display: flex;
- flex-direction:column;
-
- .dirtree {
- flex-wrap: wrap;
- padding-left: 12px;
- padding-right: 0px;
- box-sizing: border-box;
-
- div:first-child a {
- background-image: var(--icon-home-000);
- background-repeat: no-repeat;
- background-position: left center;
- }
- span {
- &:not(:last-child) {
- cursor: pointer;
- }
- &:last-child {
- font-weight: bold;
- }
- &:not(:last-child)::after {
- content: '>';
- padding: 3px;
- }
- }
- }
-
- /* Grid view toggle */
- #picker-view-toggle {
- position: absolute;
- background-color: transparent;
- border: none;
- margin: 0;
- padding: 22px;
- opacity: .5;
- right: 0;
- top: 0;
-
- &:hover,
- &:focus {
- opacity: 1;
- }
- }
-
- // keyboard focus
- #picker-showgridview:focus + #picker-view-toggle {
- opacity: 1;
- }
-
- .actions.creatable {
- flex-wrap: wrap;
- padding: 0px;
- box-sizing: border-box;
- display: inline-flex;
- float: none;
- max-height: 36px;
- max-width: 36px;
- background-color: var(--color-background-dark);
- border: 1px solid var(--color-border-dark);
- border-radius: var(--border-radius-pill);
- position: relative;
- left: 15px;
- top:3px;
- order:1;
-
- .icon.icon-add{
- background-image: var(--icon-add-000);
- background-size: 16px 16px;
- width: 34px;
- height: 34px;
- margin: 0px;
- opacity: 0.5;
- }
-
- a {
- width: 36px;
- padding: 0px;
- position: static;
- }
-
- .menu {
- top:100%;
- margin:10px;
- margin-left: 1px;
- form {
- display:flex;
- margin:10px;
- }
- }
-
- }
-
- .filelist-container {
- box-sizing: border-box;
- display: inline-block;
- overflow-y: auto;
- flex: 1;
- /*height: 100%;*/
- /* overflow under the button row */
- width: 100%;
- overflow-x: hidden;
- }
- .emptycontent {
- color: var(--color-text-maxcontrast);
- text-align: center;
- margin-top: 80px;
- width: 100%;
- display: none;
- }
- .filelist {
- background-color: var(--color-main-background);
- width: 100%;
- }
- #picker-filestable.filelist {
- /* prevent the filepicker to overflow */
- min-width: initial;
- margin-bottom: 50px;
- thead {
- tr {
- border-bottom: 1px solid var(--color-border);
- background-color: var(--color-main-background);
- th {
- width: 80%;
- border: none;
- }
- }
- }
- th .columntitle {
- display: block;
- padding: 15px;
- height: 50px;
- box-sizing: border-box;
- -moz-box-sizing: border-box;
- vertical-align: middle;
- }
- th .columntitle.name {
- padding-left: 5px;
- margin-left: 50px;
- }
-
- th .sort-indicator {
- width: 10px;
- height: 8px;
- margin-left: 5px;
- display: inline-block;
- vertical-align: text-bottom;
- opacity: .3;
- }
- .sort-indicator.hidden,
- th:hover .sort-indicator.hidden,
- th:focus .sort-indicator.hidden {
- visibility: hidden;
- }
- th:hover .sort-indicator.hidden,
- th:focus .sort-indicator.hidden {
- visibility: visible;
- }
-
- td {
- padding: 14px;
- border-bottom: 1px solid var(--color-border);
- }
- tr:last-child td {
- border-bottom: none;
- }
- .filename {
- overflow: hidden;
- white-space: nowrap;
- text-overflow: ellipsis;
- background-size: 32px;
- background-repeat: no-repeat;
- padding-left: 51px;
- background-position: 7px 7px;
- cursor: pointer;
- // avoid taking full width
- max-width: 0;
- .filename-parts {
- display: flex;
- &__first {
- overflow: hidden;
- white-space: pre;
- text-overflow: ellipsis;
- }
- &__last {
- white-space: pre;
- }
- }
- }
- .filesize, .date {
- width: 80px;
- }
- .filesize {
- text-align: right;
- }
- &.view-grid {
- $grid-size: 120px;
- $grid-pad: 10px;
- $name-height: 30px;
- display: flex;
- flex-direction: column;
-
- tbody {
- display: grid;
- grid-template-columns: repeat(auto-fill, $grid-size);
- justify-content: space-around;
- row-gap: 15px;
- margin: 15px 0;
-
- tr {
- display: block;
- position: relative;
- border-radius: var(--border-radius);
- padding: $grid-pad;
- display: flex;
- flex-direction: column;
- width: $grid-size - 2 * $grid-pad;
-
-
- td {
- border: none;
- padding: 0;
- text-align: center;
- border-radius: var(--border-radius);
-
- &.filename {
- padding: #{$grid-size - 2 * $grid-pad} 0 0 0;
- background-position: center top;
- background-size: contain;
- line-height: $name-height;
- max-width: none;
- .filename-parts {
- justify-content: center;
- }
- }
- &.filesize {
- line-height: $name-height / 3;
- width: 100%;
- }
- &.date {
- display: none;
- }
- }
- }
- }
- }
- }
- .filepicker_element_selected {
- background-color: var(--color-background-darker);
- }
-}
-
.ui-dialog {
position: fixed !important;
}
span.ui-icon {
float: left;
- margin: 3px 7px 30px 0;
-}
-
-/* ---- CONTACTS MENU ---- */
-
-#contactsmenu {
- .menutoggle {
- background-size: 16px 16px;
- padding: 14px;
- cursor: pointer;
-
- &:hover,
- &:focus,
- &:active {
- opacity: 1 !important;
- }
- }
-}
-
-#header .header-right > div#contactsmenu > .menu {
- /* show 2.5 to 4.5 entries depending on the screen height */
- height: calc(100vh - 50px * 3);
- max-height: calc(50px * 4.5 + 50px);
- min-height: calc(50px * 3.5);
- width: 350px;
-
- .emptycontent {
- margin-top: 5vh !important;
- margin-bottom: 2vh;
- .icon-loading,
- .icon-search {
- display: inline-block;
- }
- }
-
- .content {
- /* fixed max height of the parent container without the search input */
- height: calc(100vh - 50px * 3 - 50px);
- max-height: calc(50px * 4.5);
- min-height: calc(50px * 3.5 - 50px);
- overflow-y: auto;
-
- .footer {
- text-align: center;
-
- a {
- display: block;
- width: 100%;
- padding: 12px 0;
- opacity: .5;
- }
- }
- }
-
- .contact {
- display: flex;
- position: relative;
- align-items: center;
- padding: 3px 3px 3px 10px;
- border-bottom: 1px solid var(--color-border);
-
- :last-of-type {
- border-bottom: none;
- }
-
- .avatar {
- height: 32px;
- width: 32px;
- display: inline-block;
- }
-
- .body {
- flex-grow: 1;
- padding-left: 8px;
-
- div {
- position: relative;
- width: 100%;
- }
-
- .full-name, .last-message {
- /* TODO: don't use fixed width */
- max-width: 204px;
- overflow: hidden;
- white-space: nowrap;
- text-overflow: ellipsis;
- }
- .last-message {
- opacity: .5;
- }
- }
-
- .top-action, .second-action, .other-actions {
- width: 16px;
- height: 16px;
- padding: 14px;
- opacity: .5;
- cursor: pointer;
-
- :hover {
- opacity: 1;
- }
- }
-
- /* actions menu */
- .menu {
- top: 47px;
- margin-right: 13px;
- }
- .popovermenu::after {
- right: 2px;
- }
- }
-}
-
-
-#contactsmenu-search {
- width: calc(100% - 16px);
- margin: 8px;
- height: 34px;
+ margin-block: 3px 30px;
+ margin-inline: 0 7px;
}
/* ---- TOOLTIPS ---- */
.extra-data {
- padding-right: 5px !important;
+ padding-inline-end: 5px !important;
}
/* ---- TAGS ---- */
@@ -1149,8 +711,10 @@ span.ui-icon {
/* ---- BREADCRUMB ---- */
.breadcrumb {
display: inline-flex;
+ height: 50px;
}
-div.crumb {
+
+li.crumb {
display: inline-flex;
background-image: url('../img/breadcrumb.svg?v=1');
background-repeat: no-repeat;
@@ -1159,7 +723,7 @@ div.crumb {
background-size: auto 24px;
flex: 0 0 auto;
order: 1;
- padding-right: 7px;
+ padding-inline-end: 7px;
&.crumbmenu {
order: 2;
position: relative;
@@ -1175,12 +739,12 @@ div.crumb {
// Fix because of the display flex
.popovermenu {
top: 100%;
- margin-right: 3px;
+ margin-inline-end: 3px;
ul {
max-height: 345px;
overflow-y: auto;
overflow-x: hidden;
- padding-right: 5px;
+ padding-inline-end: 5px;
li.canDrop span:first-child {
background-image: url('../img/filetypes/folder-drag-accept.svg?v=1') !important;
}
@@ -1218,14 +782,13 @@ div.crumb {
padding: 0;
width: 44px;
}
- &:not(:first-child) a {
- }
+
&:last-child {
font-weight: bold;
- margin-right: 10px;
+ margin-inline-end: 10px;
// Allow multiple span next to the main 'a'
a ~ span {
- padding-left: 0;
+ padding-inline-start: 0;
}
}
&:hover, &:focus, a:focus, &:active {
diff --git a/core/css/systemtags.css b/core/css/systemtags.css
new file mode 100644
index 00000000000..a6881e82943
--- /dev/null
+++ b/core/css/systemtags.css
@@ -0,0 +1,5 @@
+/*!
+ * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */.systemtags-select2-dropdown .select2-result-label{height:25px}.systemtags-select2-dropdown .select2-result-label .checkmark{visibility:hidden;margin-inline:-5px 5px;padding:4px}.systemtags-select2-dropdown .select2-result-label .new-item .systemtags-actions{display:none}.systemtags-select2-dropdown .select2-selected .select2-result-label .checkmark{visibility:visible}.systemtags-select2-dropdown .select2-result-label .icon{display:inline-block;opacity:.5}.systemtags-select2-dropdown .select2-result-label .icon.rename{padding:4px}.systemtags-select2-dropdown .systemtags-actions{position:absolute;inset-inline-end:5px}.systemtags-select2-dropdown .systemtags-rename-form{display:inline-block;width:calc(100% - 20px);top:-6px;position:relative}.systemtags-select2-dropdown .systemtags-rename-form input{display:inline-block;height:30px;width:calc(100% - 40px)}.systemtags-select2-dropdown .label{width:85%;display:inline-block;overflow:hidden;text-overflow:ellipsis}.systemtags-select2-dropdown .label.hidden{display:none}.systemtags-select2-dropdown span{line-height:25px}.systemtags-select2-dropdown .systemtags-item{display:inline-block;height:25px;width:100%}.systemtags-select2-container{width:100%}.systemtags-select2-container .select2-choices{flex-wrap:nowrap !important;max-height:44px}.systemtags-select2-container .select2-choices .select2-search-choice.select2-locked .label{opacity:.5}#select2-drop.systemtags-select2-dropdown .select2-results li.select2-result{padding:5px}/*# sourceMappingURL=systemtags.css.map */
diff --git a/core/css/systemtags.css.map b/core/css/systemtags.css.map
new file mode 100644
index 00000000000..62aef0e2bed
--- /dev/null
+++ b/core/css/systemtags.css.map
@@ -0,0 +1 @@
+{"version":3,"sourceRoot":"","sources":["systemtags.scss"],"names":[],"mappings":"AAAA;AAAA;AAAA;AAAA;AAAA,GAOC,mDACC,YAEA,8DACC,kBACA,uBACA,YAED,iFACC,aAGF,gFACC,mBAED,yDACC,qBACA,WACA,gEACC,YAGF,iDACC,kBACA,qBAED,qDACC,qBACA,wBACA,SACA,kBACA,2DACC,qBACA,YACA,wBAGF,oCACC,UACA,qBACA,gBACA,uBACA,2CACC,aAGF,kCACC,iBAED,8CACC,qBACA,YACA,WAIF,8BACC,WAEA,+CACC,4BACA,gBAGD,4FACC,WAIF,6EACC","file":"systemtags.css"} \ No newline at end of file
diff --git a/core/css/systemtags.css.map.license b/core/css/systemtags.css.map.license
new file mode 100644
index 00000000000..82ac7cce426
--- /dev/null
+++ b/core/css/systemtags.css.map.license
@@ -0,0 +1,3 @@
+SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
+SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/core/css/systemtags.scss b/core/css/systemtags.scss
index 6e100b12a92..fcb9c09a144 100644
--- a/core/css/systemtags.scss
+++ b/core/css/systemtags.scss
@@ -1,21 +1,16 @@
-/**
- * @copyright Copyright (c) 2016, John Molakvoæ <skjnldsv@protonmail.com>
- * @copyright Copyright (c) 2016, Robin Appelman <robin@icewind.nl>
- * @copyright Copyright (c) 2016, Jan-Christoph Borchardt <hey@jancborchardt.net>
- * @copyright Copyright (c) 2016, Vincent Petry <pvince81@owncloud.com>
- * @copyright Copyright (c) 2016, Erik Pellikka <erik@pellikka.org>
- * @copyright Copyright (c) 2015, Vincent Petry <pvince81@owncloud.com>
- *
- * @license GNU AGPL version 3 or any later version
- *
+/*!
+ * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
.systemtags-select2-dropdown {
.select2-result-label {
+ height: 25px;
+
.checkmark {
visibility: hidden;
- margin-left: -5px;
- margin-right: 5px;
+ margin-inline: -5px 5px;
padding: 4px;
}
.new-item .systemtags-actions {
@@ -34,7 +29,7 @@
}
.systemtags-actions {
position: absolute;
- right: 5px;
+ inset-inline-end: 5px;
}
.systemtags-rename-form {
display: inline-block;
@@ -64,12 +59,8 @@
height: 25px;
width: 100%;
}
- .select2-result-label {
- height: 25px;
- }
}
-.systemTagsInfoView,
.systemtags-select2-container {
width: 100%;
diff --git a/core/css/toast.css b/core/css/toast.css
new file mode 100644
index 00000000000..36fe5a2e17f
--- /dev/null
+++ b/core/css/toast.css
@@ -0,0 +1,10 @@
+/*!
+ * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ *//*!
+ * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ *//*!
+ * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */.toastify.toast{min-width:200px;background:none;background-color:var(--color-main-background);color:var(--color-main-text);box-shadow:0 0 6px 0 var(--color-box-shadow);padding:12px;padding-inline-end:34px;margin-top:45px;position:fixed;z-index:9000;border-radius:var(--border-radius)}.toastify.toast .toast-close{position:absolute;top:0;inset-inline-end:0;width:38px;opacity:.4;padding:12px;background-image:var(--icon-close-dark);background-position:center;background-repeat:no-repeat;text-indent:200%;white-space:nowrap;overflow:hidden}.toastify.toast .toast-close:hover,.toastify.toast .toast-close:focus,.toastify.toast .toast-close:active{cursor:pointer;opacity:1}.toastify.toastify-top{inset-inline-end:10px}.toast-error{border-inline-start:3px solid var(--color-error)}.toast-info{border-inline-start:3px solid var(--color-primary-element)}.toast-warning{border-inline-start:3px solid var(--color-warning)}.toast-success{border-inline-start:3px solid var(--color-success)}/*# sourceMappingURL=toast.css.map */
diff --git a/core/css/toast.css.map b/core/css/toast.css.map
new file mode 100644
index 00000000000..8317c744103
--- /dev/null
+++ b/core/css/toast.css.map
@@ -0,0 +1 @@
+{"version":3,"sourceRoot":"","sources":["toast.scss","variables.scss","functions.scss"],"names":[],"mappings":"AAAA;AAAA;AAAA;AAAA,GCEA;AAAA;AAAA;AAAA,GCFA;AAAA;AAAA;AAAA,GFOA,gBACC,gBACA,gBACA,8CACA,6BACA,6CACA,aACA,wBACA,gBACA,eACA,aACA,mCAEA,6BACC,kBACA,MACA,mBACA,WACA,WACA,aEsBD,wCFpBC,2BACA,4BACA,iBACA,mBACA,gBAEA,0GACC,eACA,UAKH,uBACC,sBAGD,aACC,iDAGD,YACC,2DAGD,eACC,mDAGD,eACC","file":"toast.css"} \ No newline at end of file
diff --git a/core/css/toast.css.map.license b/core/css/toast.css.map.license
new file mode 100644
index 00000000000..c09869eb5a4
--- /dev/null
+++ b/core/css/toast.css.map.license
@@ -0,0 +1,2 @@
+SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
+SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/core/css/toast.scss b/core/css/toast.scss
index 0ab797ad432..c3af0b0a5d6 100644
--- a/core/css/toast.scss
+++ b/core/css/toast.scss
@@ -1,3 +1,10 @@
+/*!
+ * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+@use 'variables';
+@use 'functions';
+
.toastify.toast {
min-width: 200px;
background: none;
@@ -5,7 +12,7 @@
color: var(--color-main-text);
box-shadow: 0 0 6px 0 var(--color-box-shadow);
padding: 12px;
- padding-right: 34px;
+ padding-inline-end: 34px;
margin-top: 45px;
position: fixed;
z-index: 9000;
@@ -14,11 +21,11 @@
.toast-close {
position: absolute;
top: 0;
- right: 0;
+ inset-inline-end: 0;
width: 38px;
opacity: 0.4;
padding: 12px;
- @include icon-color('close', 'actions', $color-black, 2, true);
+ @include functions.icon-color('close', 'actions', variables.$color-black, 2, true);
background-position: center;
background-repeat: no-repeat;
text-indent: 200%;
@@ -31,19 +38,23 @@
}
}
}
+
.toastify.toastify-top {
- right: 10px;
+ inset-inline-end: 10px;
}
.toast-error {
- border-left: 3px solid var(--color-error);
+ border-inline-start: 3px solid var(--color-error);
}
+
.toast-info {
- border-left: 3px solid var(--color-primary);
+ border-inline-start: 3px solid var(--color-primary-element);
}
+
.toast-warning {
- border-left: 3px solid var(--color-warning);
+ border-inline-start: 3px solid var(--color-warning);
}
+
.toast-success {
- border-left: 3px solid var(--color-success);
+ border-inline-start: 3px solid var(--color-success);
}
diff --git a/core/css/tooltip.css b/core/css/tooltip.css
new file mode 100644
index 00000000000..ed64fa1c314
--- /dev/null
+++ b/core/css/tooltip.css
@@ -0,0 +1,5 @@
+/*!
+ * SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2011-2015 Twitter, Inc. (Bootstrap (http://getbootstrap.com))
+ * SPDX-License-Identifier: MIT
+ */.tooltip{position:absolute;display:block;font-family:var(--font-face);font-style:normal;font-weight:normal;letter-spacing:normal;line-break:auto;line-height:1.6;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;word-wrap:normal;overflow-wrap:anywhere;font-size:12px;opacity:0;z-index:100000;margin-top:-3px;padding:10px 0;filter:drop-shadow(0 1px 10px var(--color-box-shadow))}.tooltip.in,.tooltip.show,.tooltip.tooltip[aria-hidden=false]{visibility:visible;opacity:1;transition:opacity .15s}.tooltip.top .tooltip-arrow,.tooltip[x-placement^=top]{inset-inline-start:50%;margin-inline-start:-10px}.tooltip.bottom,.tooltip[x-placement^=bottom]{margin-top:3px;padding:10px 0}.tooltip.right,.tooltip[x-placement^=right]{margin-inline-start:3px;padding:0 10px}.tooltip.right .tooltip-arrow,.tooltip[x-placement^=right] .tooltip-arrow{top:50%;inset-inline-start:0;margin-top:-10px;border-width:10px 10px 10px 0;border-inline-end-color:var(--color-main-background)}.tooltip.left,.tooltip[x-placement^=left]{margin-inline-start:-3px;padding:0 5px}.tooltip.left .tooltip-arrow,.tooltip[x-placement^=left] .tooltip-arrow{top:50%;inset-inline-end:0;margin-top:-10px;border-width:10px 0 10px 10px;border-inline-start-color:var(--color-main-background)}.tooltip.top .tooltip-arrow,.tooltip.top .arrow,.tooltip.top-left .tooltip-arrow,.tooltip.top-left .arrow,.tooltip[x-placement^=top] .tooltip-arrow,.tooltip[x-placement^=top] .arrow,.tooltip.top-right .tooltip-arrow,.tooltip.top-right .arrow{bottom:0;border-width:10px 10px 0;border-top-color:var(--color-main-background)}.tooltip.top-left .tooltip-arrow{inset-inline-end:10px;margin-bottom:-10px}.tooltip.top-right .tooltip-arrow{inset-inline-start:10px;margin-bottom:-10px}.tooltip.bottom .tooltip-arrow,.tooltip.bottom .arrow,.tooltip[x-placement^=bottom] .tooltip-arrow,.tooltip[x-placement^=bottom] .arrow,.tooltip.bottom-left .tooltip-arrow,.tooltip.bottom-left .arrow,.tooltip.bottom-right .tooltip-arrow,.tooltip.bottom-right .arrow{top:0;border-width:0 10px 10px;border-bottom-color:var(--color-main-background)}.tooltip[x-placement^=bottom] .tooltip-arrow,.tooltip.bottom .tooltip-arrow{inset-inline-start:50%;margin-inline-start:-10px}.tooltip.bottom-left .tooltip-arrow{inset-inline-end:10px;margin-top:-10px}.tooltip.bottom-right .tooltip-arrow{inset-inline-start:10px;margin-top:-10px}.tooltip-inner{max-width:350px;padding:5px 8px;background-color:var(--color-main-background);color:var(--color-main-text);text-align:center;border-radius:var(--border-radius)}.tooltip-arrow,.tooltip .arrow{position:absolute;width:0;height:0;border-color:rgba(0,0,0,0);border-style:solid}/*# sourceMappingURL=tooltip.css.map */
diff --git a/core/css/tooltip.css.map b/core/css/tooltip.css.map
new file mode 100644
index 00000000000..de218b7af69
--- /dev/null
+++ b/core/css/tooltip.css.map
@@ -0,0 +1 @@
+{"version":3,"sourceRoot":"","sources":["tooltip.scss"],"names":[],"mappings":"AAAA;AAAA;AAAA;AAAA;AAAA,GAMA,SACI,kBACA,cACA,6BACA,kBACA,mBACA,sBACA,gBACA,gBACA,iBACA,qBACA,iBACA,oBACA,mBACA,kBACA,oBACA,iBACA,uBACA,eACA,UACA,eAEA,gBACA,eACA,uDACA,8DAGI,mBACA,UACA,wBAEJ,uDAEI,uBACA,0BAEJ,8CAEI,eACA,eAEJ,4CAEI,wBACA,eACA,0EACI,QACA,qBACA,iBACA,8BACA,qDAGR,0CAEI,yBACA,cACA,wEACI,QACA,mBACA,iBACA,8BACA,uDAQJ,kPACI,SACA,yBACA,8CAGR,iCACI,sBACA,oBAEJ,kCACI,wBACA,oBAOA,0QACI,MACA,yBACA,iDAGR,4EAEI,uBACA,0BAEJ,oCACI,sBACA,iBAEJ,qCACI,wBACA,iBAIR,eACI,gBACA,gBACA,8CACA,6BACA,kBACA,mCAGJ,+BACI,kBACA,QACA,SACA,2BACA","file":"tooltip.css"} \ No newline at end of file
diff --git a/core/css/tooltip.css.map.license b/core/css/tooltip.css.map.license
new file mode 100644
index 00000000000..006d4f89ab4
--- /dev/null
+++ b/core/css/tooltip.css.map.license
@@ -0,0 +1,3 @@
+SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
+SPDX-FileCopyrightText: 2011-2015 Twitter, Inc. (Bootstrap (http://getbootstrap.com))
+SPDX-License-Identifier: MIT
diff --git a/core/css/tooltip.scss b/core/css/tooltip.scss
index c7bf99c7d11..7f8b76eea06 100644
--- a/core/css/tooltip.scss
+++ b/core/css/tooltip.scss
@@ -1,13 +1,7 @@
-/**
- * @copyright Copyright (c) 2016, John Molakvoæ <skjnldsv@protonmail.com>
- * @copyright Copyright (c) 2016, Robin Appelman <robin@icewind.nl>
- * @copyright Copyright (c) 2016, Jan-Christoph Borchardt <hey@jancborchardt.net>
- * @copyright Copyright (c) 2016, Erik Pellikka <erik@pellikka.org>
- * @copyright Copyright (c) 2015, Vincent Petry <pvince81@owncloud.com>
- *
- * Bootstrap v3.3.5 (http://getbootstrap.com)
- * Copyright 2011-2015 Twitter, Inc.
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+/*!
+ * SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2011-2015 Twitter, Inc. (Bootstrap (http://getbootstrap.com))
+ * SPDX-License-Identifier: MIT
*/
.tooltip {
@@ -19,7 +13,6 @@
letter-spacing: normal;
line-break: auto;
line-height: 1.6;
- text-align: left;
text-align: start;
text-decoration: none;
text-shadow: none;
@@ -28,6 +21,7 @@
word-break: normal;
word-spacing: normal;
word-wrap: normal;
+ overflow-wrap: anywhere;
font-size: 12px;
opacity: 0;
z-index: 100000;
@@ -44,8 +38,8 @@
}
&.top .tooltip-arrow,
&[x-placement^='top'] {
- left: 50%;
- margin-left: -10px;
+ inset-inline-start: 50%;
+ margin-inline-start: -10px;
}
&.bottom,
&[x-placement^='bottom'] {
@@ -54,26 +48,26 @@
}
&.right,
&[x-placement^='right'] {
- margin-left: 3px;
+ margin-inline-start: 3px;
padding: 0 10px;
.tooltip-arrow {
top: 50%;
- left: 0;
+ inset-inline-start: 0;
margin-top: -10px;
border-width: 10px 10px 10px 0;
- border-right-color: var(--color-main-background);
+ border-inline-end-color: var(--color-main-background);
}
}
&.left,
&[x-placement^='left'] {
- margin-left: -3px;
+ margin-inline-start: -3px;
padding: 0 5px;
.tooltip-arrow {
top: 50%;
- right: 0;
+ inset-inline-end: 0;
margin-top: -10px;
border-width: 10px 0 10px 10px;
- border-left-color: var(--color-main-background);
+ border-inline-start-color: var(--color-main-background);
}
}
/* TOP */
@@ -88,11 +82,11 @@
}
}
&.top-left .tooltip-arrow {
- right: 10px;
+ inset-inline-end: 10px;
margin-bottom: -10px;
}
&.top-right .tooltip-arrow {
- left: 10px;
+ inset-inline-start: 10px;
margin-bottom: -10px;
}
/* BOTTOM */
@@ -108,15 +102,15 @@
}
&[x-placement^='bottom'] .tooltip-arrow,
&.bottom .tooltip-arrow {
- left: 50%;
- margin-left: -10px;
+ inset-inline-start: 50%;
+ margin-inline-start: -10px;
}
&.bottom-left .tooltip-arrow {
- right: 10px;
+ inset-inline-end: 10px;
margin-top: -10px;
}
&.bottom-right .tooltip-arrow {
- left: 10px;
+ inset-inline-start: 10px;
margin-top: -10px;
}
}
diff --git a/core/css/variables.css b/core/css/variables.css
new file mode 100644
index 00000000000..90ef0f57e18
--- /dev/null
+++ b/core/css/variables.css
@@ -0,0 +1,4 @@
+/*!
+ * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ *//*# sourceMappingURL=variables.css.map */
diff --git a/core/css/variables.css.map b/core/css/variables.css.map
new file mode 100644
index 00000000000..a2b81c09e32
--- /dev/null
+++ b/core/css/variables.css.map
@@ -0,0 +1 @@
+{"version":3,"sourceRoot":"","sources":["variables.scss"],"names":[],"mappings":"AAEA;AAAA;AAAA;AAAA","file":"variables.css"} \ No newline at end of file
diff --git a/core/css/variables.css.map.license b/core/css/variables.css.map.license
new file mode 100644
index 00000000000..b62adf36215
--- /dev/null
+++ b/core/css/variables.css.map.license
@@ -0,0 +1,2 @@
+SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
+SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/core/css/variables.scss b/core/css/variables.scss
index cf7d919d72d..f750b844f0f 100644
--- a/core/css/variables.scss
+++ b/core/css/variables.scss
@@ -1,32 +1,16 @@
-/**
- * @copyright Copyright (c) 2018, John Molakvoæ (skjnldsv@protonmail.com)
- *
- * @author John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
- *
- * @license GNU AGPL version 3 or any later version
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
- */
+@use 'sass:color';
- // SCSS darken/lighten function override
+/*!
+ * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+// SCSS darken/lighten function override
@function nc-darken($color, $value) {
- @return darken($color, $value);
+ @return color.adjust($color, $lightness: - $value, $space: hsl);
}
@function nc-lighten($color, $value) {
- @return lighten($color, $value);
+ @return color.adjust($color, $lightness: $value, $space: hsl);
}
// SCSS variables
@@ -44,17 +28,26 @@ $color-placeholder-light: nc-darken($color-main-background, 10%) !default;
$color-placeholder-dark: nc-darken($color-main-background, 20%) !default;
$color-primary: #0082c9 !default;
-$color-primary-light: mix($color-primary, $color-main-background, 10%) !default;
+$color-primary-hover: color.mix($color-primary, $color-main-background, 80%) !default;
+
+$color-primary-light: color.mix($color-primary, $color-main-background, 10%) !default;
+$color-primary-light-text: $color-primary !default;
+$color-primary-light-hover: color.mix($color-primary-light, $color-main-text, 95%) !default;
+
$color-primary-text: #ffffff !default;
// do not use nc-darken/lighten in case of overriding because
// primary-text is independent of color-main-text
-$color-primary-text-dark: darken($color-primary-text, 7%) !default;
+$color-primary-element-text-dark: color.adjust($color-primary-text, $lightness: -7%, $space: hsl) !default;
$color-primary-element: $color-primary !default;
-$color-primary-element-light: lighten($color-primary-element, 15%) !default;
+$color-primary-element-hover: color.mix($color-primary-element, $color-main-background, 80%) !default;
+$color-primary-element-light: color.adjust($color-primary-element, $lightness: 15%, $space: hsl) !default;
$color-error: #e9322d;
+$color-error-hover: color.mix($color-error, $color-main-background, 80%) !default;
$color-warning: #eca700;
+$color-warning-hover: color.mix($color-warning, $color-main-background, 80%) !default;
$color-success: #46ba61;
+$color-success-hover: color.mix($color-success, $color-main-background, 80%) !default;
// used for svg
$color-white: #fff;
$color-black: #000;
@@ -75,18 +68,19 @@ $image-favicon: url('../img/logo/logo.svg?v=1') !default;
$color-loading-light: #ccc !default;
$color-loading-dark: #444 !default;
-$color-box-shadow: transparentize(nc-darken($color-main-background, 70%), 0.5) !default;
+$color-box-shadow: color.adjust(nc-darken($color-main-background, 70%), $alpha: -0.5, $space: hsl) !default;
// light border like file table or app-content list
$color-border: nc-darken($color-main-background, 7%) !default;
// darker border like inputs or very visible elements
$color-border-dark: nc-darken($color-main-background, 14%) !default;
+
$border-radius: 3px !default;
$border-radius-large: 10px !default;
// Pill-style button, value is large so big buttons also have correct roundness
$border-radius-pill: 100px !default;
-$font-face: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen-Sans, Cantarell, Ubuntu, 'Helvetica Neue', Arial, 'Noto Color Emoji', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol' !default;
+$font-face: system-ui, -apple-system, "Segoe UI", Roboto, Oxygen-Sans, Cantarell, Ubuntu, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji" !default;
$default-font-size: 15px;
$default-line-height: 24px;
@@ -101,6 +95,8 @@ $sidebar-min-width: 300px;
$sidebar-max-width: 500px;
$list-min-width: 200px;
$list-max-width: 300px;
+$header-menu-item-height: 44px;
+$header-menu-profile-item-height: 66px;
// mobile. Keep in sync with core/js/js.js
$breakpoint-mobile: 1024px;
diff --git a/core/css/whatsnew.css b/core/css/whatsnew.css
new file mode 100644
index 00000000000..638b4a53eb1
--- /dev/null
+++ b/core/css/whatsnew.css
@@ -0,0 +1,4 @@
+/*!
+ * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */.whatsNewPopover{bottom:35px !important;inset-inline-start:15px !important;width:270px;z-index:700}.whatsNewPopover p{width:auto !important}.whatsNewPopover .caption{font-weight:bold;cursor:auto !important}.whatsNewPopover .icon-close{position:absolute;inset-inline-end:0}.whatsNewPopover::after{content:none}/*# sourceMappingURL=whatsnew.css.map */
diff --git a/core/css/whatsnew.css.map b/core/css/whatsnew.css.map
new file mode 100644
index 00000000000..aebcf43e461
--- /dev/null
+++ b/core/css/whatsnew.css.map
@@ -0,0 +1 @@
+{"version":3,"sourceRoot":"","sources":["whatsnew.scss"],"names":[],"mappings":"AAAA;AAAA;AAAA;AAAA,GAIA,iBACE,uBACA,mCACA,YACA,YAGF,mBACE,sBAGF,0BACE,iBACA,uBAGF,6BACE,kBACA,mBAGF,wBACE","file":"whatsnew.css"} \ No newline at end of file
diff --git a/core/css/whatsnew.css.map.license b/core/css/whatsnew.css.map.license
new file mode 100644
index 00000000000..b62adf36215
--- /dev/null
+++ b/core/css/whatsnew.css.map.license
@@ -0,0 +1,2 @@
+SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
+SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/core/css/whatsnew.scss b/core/css/whatsnew.scss
index 99d99ded691..c4698e397cc 100644
--- a/core/css/whatsnew.scss
+++ b/core/css/whatsnew.scss
@@ -1,13 +1,10 @@
-/**
- * @copyright Copyright (c) 2018, Arthur Schiwon <blizzz@arthur-schiwon.de>
- *
- * @license GNU AGPL version 3 or any later version
- *
+/*!
+ * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
-
.whatsNewPopover {
bottom: 35px !important;
- left: 15px !important;
+ inset-inline-start: 15px !important;
width: 270px;
z-index: 700;
}
@@ -23,7 +20,7 @@
.whatsNewPopover .icon-close {
position: absolute;
- right: 0;
+ inset-inline-end: 0;
}
.whatsNewPopover::after {