diff options
Diffstat (limited to 'core/css')
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 { |