apps.css 59 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638
  1. @charset "UTF-8";
  2. /**
  3. * @copyright Copyright (c) 2018, John Molakvoæ (skjnldsv@protonmail.com)
  4. *
  5. * @author John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
  6. *
  7. * @license GNU AGPL version 3 or any later version
  8. *
  9. * This program is free software: you can redistribute it and/or modify
  10. * it under the terms of the GNU Affero General Public License as
  11. * published by the Free Software Foundation, either version 3 of the
  12. * License, or (at your option) any later version.
  13. *
  14. * This program is distributed in the hope that it will be useful,
  15. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  16. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  17. * GNU Affero General Public License for more details.
  18. *
  19. * You should have received a copy of the GNU Affero General Public License
  20. * along with this program. If not, see <http://www.gnu.org/licenses/>.
  21. *
  22. */
  23. /**
  24. * @copyright Copyright (c) 2016-2017, John Molakvoæ <skjnldsv@protonmail.com>
  25. * @copyright Copyright (c) 2016, Julius Haertl <jus@bitgrid.net>
  26. * @copyright Copyright (c) 2016, Morris Jobke <hey@morrisjobke.de>
  27. * @copyright Copyright (c) 2016, pgys <info@pexlab.space>
  28. * @copyright Copyright (c) 2016, Lukas Reschke <lukas@statuscode.ch>
  29. * @copyright Copyright (c) 2016, Stefan Weil <sw@weilnetz.de>
  30. * @copyright Copyright (c) 2016, Roeland Jago Douma <rullzer@owncloud.com>
  31. * @copyright Copyright (c) 2016, jowi <sjw@gmx.ch>
  32. * @copyright Copyright (c) 2015, Hendrik Leppelsack <hendrik@leppelsack.de>
  33. * @copyright Copyright (c) 2015, Thomas Müller <thomas.mueller@tmit.eu>
  34. * @copyright Copyright (c) 2015, Vincent Petry <pvince81@owncloud.com>
  35. * @copyright Copyright (c) 2014-2017, Jan-Christoph Borchardt <hey@jancborchardt.net>
  36. *
  37. * @license GNU AGPL version 3 or any later version
  38. *
  39. */
  40. /**
  41. * @copyright Copyright (c) 2018, John Molakvoæ (skjnldsv@protonmail.com)
  42. *
  43. * @author John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
  44. *
  45. * @license GNU AGPL version 3 or any later version
  46. *
  47. * This program is free software: you can redistribute it and/or modify
  48. * it under the terms of the GNU Affero General Public License as
  49. * published by the Free Software Foundation, either version 3 of the
  50. * License, or (at your option) any later version.
  51. *
  52. * This program is distributed in the hope that it will be useful,
  53. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  54. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  55. * GNU Affero General Public License for more details.
  56. *
  57. * You should have received a copy of the GNU Affero General Public License
  58. * along with this program. If not, see <http://www.gnu.org/licenses/>.
  59. *
  60. */
  61. /**
  62. * @see core/src/icons.js
  63. */
  64. /**
  65. * SVG COLOR API
  66. *
  67. * @param string $icon the icon filename
  68. * @param string $dir the icon folder within /core/img if $core or app name
  69. * @param string $color the desired color in hexadecimal
  70. * @param int $version the version of the file
  71. * @param bool [$core] search icon in core
  72. *
  73. * @returns A background image with the url to the set to the requested icon.
  74. */
  75. :root {
  76. --body-container-margin: calc(var(--default-grid-baseline) * 2);
  77. /* - 2px is required for making it look nice */
  78. --body-container-radius: calc(var(--default-clickable-area) / 2 + var(--default-grid-baseline) * 2 - 2px);
  79. --body-height: calc(100% - env(safe-area-inset-bottom) - 50px - var(--body-container-margin));
  80. }
  81. @media screen and (max-width: 1024px) {
  82. :root {
  83. --body-container-margin: 0px;
  84. --body-container-radius: 0px;
  85. }
  86. }
  87. html {
  88. width: 100%;
  89. height: 100%;
  90. position: absolute;
  91. background-color: var(--color-background-plain, var(--color-main-background));
  92. }
  93. body {
  94. background-color: var(--color-background-plain, var(--color-main-background));
  95. background-image: var(--image-background, var(--image-background-default));
  96. background-size: cover;
  97. background-position: center;
  98. position: fixed;
  99. width: 100%;
  100. height: calc(100vh - env(safe-area-inset-bottom));
  101. }
  102. /* BASE STYLING ------------------------------------------------------------ */
  103. h2 {
  104. font-weight: bold;
  105. font-size: 20px;
  106. margin-bottom: 12px;
  107. line-height: 30px;
  108. color: var(--color-text-light);
  109. }
  110. h3 {
  111. font-size: 16px;
  112. margin: 12px 0;
  113. color: var(--color-text-light);
  114. }
  115. h4 {
  116. font-size: 14px;
  117. }
  118. /* do not use italic typeface style, instead lighter color */
  119. em {
  120. font-style: normal;
  121. color: var(--color-text-lighter);
  122. }
  123. dl {
  124. padding: 12px 0;
  125. }
  126. dt,
  127. dd {
  128. display: inline-block;
  129. padding: 12px;
  130. padding-left: 0;
  131. }
  132. dt {
  133. width: 130px;
  134. white-space: nowrap;
  135. text-align: right;
  136. }
  137. kbd {
  138. padding: 4px 10px;
  139. border: 1px solid #ccc;
  140. box-shadow: 0 1px 0 rgba(0, 0, 0, 0.2);
  141. border-radius: var(--border-radius);
  142. display: inline-block;
  143. white-space: nowrap;
  144. }
  145. /* APP STYLING ------------------------------------------------------------ */
  146. #content[class*=app-] * {
  147. box-sizing: border-box;
  148. }
  149. /* APP-NAVIGATION ------------------------------------------------------------ */
  150. /* Navigation: folder like structure */
  151. #app-navigation:not(.vue) {
  152. --border-radius-pill: calc(var(--default-clickable-area) / 2);
  153. width: 300px;
  154. z-index: 500;
  155. overflow-y: auto;
  156. overflow-x: hidden;
  157. background-color: var(--color-main-background-blur);
  158. backdrop-filter: var(--filter-background-blur);
  159. -webkit-backdrop-filter: var(--filter-background-blur);
  160. -webkit-user-select: none;
  161. position: sticky;
  162. height: 100%;
  163. -moz-user-select: none;
  164. -ms-user-select: none;
  165. user-select: none;
  166. display: flex;
  167. flex-direction: column;
  168. flex-grow: 0;
  169. flex-shrink: 0;
  170. /* 'New' button */
  171. /**
  172. * Button styling for menu, edit and undo
  173. */
  174. /**
  175. * Collapsible menus
  176. */
  177. /**
  178. * App navigation utils, buttons and counters for drop down menu
  179. */
  180. /**
  181. * Editable entries
  182. */
  183. /**
  184. * Deleted entries with undo button
  185. */
  186. /**
  187. * Common rules for animation of undo and edit entries
  188. */
  189. /**
  190. * drag and drop
  191. */
  192. }
  193. #app-navigation:not(.vue) .app-navigation-new {
  194. display: block;
  195. padding: calc(var(--default-grid-baseline) * 2);
  196. }
  197. #app-navigation:not(.vue) .app-navigation-new button {
  198. display: inline-block;
  199. width: 100%;
  200. padding: 10px;
  201. padding-left: 34px;
  202. background-position: 10px center;
  203. text-align: left;
  204. margin: 0;
  205. }
  206. #app-navigation:not(.vue) li {
  207. position: relative;
  208. }
  209. #app-navigation:not(.vue) > ul {
  210. position: relative;
  211. height: 100%;
  212. width: 100%;
  213. overflow-x: hidden;
  214. overflow-y: auto;
  215. box-sizing: border-box;
  216. display: flex;
  217. flex-direction: column;
  218. padding: calc(var(--default-grid-baseline) * 2);
  219. padding-bottom: 0;
  220. /* Menu and submenu */
  221. }
  222. #app-navigation:not(.vue) > ul:last-child {
  223. padding-bottom: calc(var(--default-grid-baseline) * 2);
  224. }
  225. #app-navigation:not(.vue) > ul > li {
  226. display: inline-flex;
  227. flex-wrap: wrap;
  228. order: 1;
  229. flex-shrink: 0;
  230. margin: 0;
  231. margin-bottom: 3px;
  232. width: 100%;
  233. border-radius: var(--border-radius-pill);
  234. /* Pinned-to-bottom entries */
  235. /* align loader */
  236. /* hide deletion/collapse of subitems */
  237. /* Second level nesting for lists */
  238. }
  239. #app-navigation:not(.vue) > ul > li.pinned {
  240. order: 2;
  241. }
  242. #app-navigation:not(.vue) > ul > li.pinned.first-pinned {
  243. margin-top: auto !important;
  244. }
  245. #app-navigation:not(.vue) > ul > li > .app-navigation-entry-deleted {
  246. /* Ugly hack for overriding the main entry link */
  247. padding-left: 44px !important;
  248. }
  249. #app-navigation:not(.vue) > ul > li > .app-navigation-entry-edit {
  250. /* Ugly hack for overriding the main entry link */
  251. /* align the input correctly with the link text
  252. 44px-6px padding for the input */
  253. padding-left: 38px !important;
  254. }
  255. #app-navigation:not(.vue) > ul > li a:hover,
  256. #app-navigation:not(.vue) > ul > li a:hover > a,
  257. #app-navigation:not(.vue) > ul > li a:focus,
  258. #app-navigation:not(.vue) > ul > li a:focus > a {
  259. background-color: var(--color-background-hover);
  260. }
  261. #app-navigation:not(.vue) > ul > li a:focus-visible {
  262. box-shadow: var(--color-primary) inset 0 0 0 2px;
  263. outline: none;
  264. }
  265. #app-navigation:not(.vue) > ul > li.active,
  266. #app-navigation:not(.vue) > ul > li.active > a,
  267. #app-navigation:not(.vue) > ul > li a:active,
  268. #app-navigation:not(.vue) > ul > li a:active > a,
  269. #app-navigation:not(.vue) > ul > li a.selected,
  270. #app-navigation:not(.vue) > ul > li a.selected > a,
  271. #app-navigation:not(.vue) > ul > li a.active,
  272. #app-navigation:not(.vue) > ul > li a.active > a {
  273. background-color: var(--color-primary-light);
  274. }
  275. #app-navigation:not(.vue) > ul > li.icon-loading-small:after {
  276. left: 22px;
  277. top: 22px;
  278. }
  279. #app-navigation:not(.vue) > ul > li.deleted > ul, #app-navigation:not(.vue) > ul > li.collapsible:not(.open) > ul {
  280. display: none;
  281. }
  282. #app-navigation:not(.vue) > ul > li.app-navigation-caption {
  283. font-weight: bold;
  284. line-height: 44px;
  285. padding: 0 44px;
  286. white-space: nowrap;
  287. text-overflow: ellipsis;
  288. box-shadow: none !important;
  289. user-select: none;
  290. pointer-events: none;
  291. }
  292. #app-navigation:not(.vue) > ul > li.app-navigation-caption:not(:first-child) {
  293. margin-top: 22px;
  294. }
  295. #app-navigation:not(.vue) > ul > li > ul {
  296. flex: 0 1 auto;
  297. width: 100%;
  298. position: relative;
  299. }
  300. #app-navigation:not(.vue) > ul > li > ul > li {
  301. display: inline-flex;
  302. flex-wrap: wrap;
  303. padding-left: 44px;
  304. width: 100%;
  305. margin-bottom: 3px;
  306. /* align loader */
  307. }
  308. #app-navigation:not(.vue) > ul > li > ul > li:hover,
  309. #app-navigation:not(.vue) > ul > li > ul > li:hover > a, #app-navigation:not(.vue) > ul > li > ul > li:focus,
  310. #app-navigation:not(.vue) > ul > li > ul > li:focus > a {
  311. border-radius: var(--border-radius-pill);
  312. background-color: var(--color-background-hover);
  313. }
  314. #app-navigation:not(.vue) > ul > li > ul > li.active,
  315. #app-navigation:not(.vue) > ul > li > ul > li.active > a,
  316. #app-navigation:not(.vue) > ul > li > ul > li a.selected,
  317. #app-navigation:not(.vue) > ul > li > ul > li a.selected > a {
  318. border-radius: var(--border-radius-pill);
  319. background-color: var(--color-primary-light);
  320. }
  321. #app-navigation:not(.vue) > ul > li > ul > li.icon-loading-small:after {
  322. left: 22px; /* 44px / 2 */
  323. }
  324. #app-navigation:not(.vue) > ul > li > ul > li > .app-navigation-entry-deleted {
  325. /* margin to keep active indicator visible */
  326. margin-left: 4px;
  327. padding-left: 84px;
  328. }
  329. #app-navigation:not(.vue) > ul > li > ul > li > .app-navigation-entry-edit {
  330. /* margin to keep active indicator visible */
  331. margin-left: 4px;
  332. /* align the input correctly with the link text
  333. 44px+44px-4px-6px padding for the input */
  334. padding-left: 78px !important;
  335. }
  336. #app-navigation:not(.vue) > ul > li,
  337. #app-navigation:not(.vue) > ul > li > ul > li {
  338. position: relative;
  339. box-sizing: border-box;
  340. /* hide icons if loading */
  341. /* Main entry link */
  342. /* Bullet icon */
  343. /* popover fix the flex positionning of the li parent */
  344. /* show edit/undo field if editing/deleted */
  345. }
  346. #app-navigation:not(.vue) > ul > li.icon-loading-small > a,
  347. #app-navigation:not(.vue) > ul > li.icon-loading-small > .app-navigation-entry-bullet,
  348. #app-navigation:not(.vue) > ul > li > ul > li.icon-loading-small > a,
  349. #app-navigation:not(.vue) > ul > li > ul > li.icon-loading-small > .app-navigation-entry-bullet {
  350. /* hide icon or bullet if loading state*/
  351. background: transparent !important;
  352. }
  353. #app-navigation:not(.vue) > ul > li > a,
  354. #app-navigation:not(.vue) > ul > li > ul > li > a {
  355. background-size: 16px 16px;
  356. background-position: 14px center;
  357. background-repeat: no-repeat;
  358. display: block;
  359. justify-content: space-between;
  360. line-height: 44px;
  361. min-height: 44px;
  362. padding: 0 12px 0 14px;
  363. overflow: hidden;
  364. box-sizing: border-box;
  365. white-space: nowrap;
  366. text-overflow: ellipsis;
  367. border-radius: var(--border-radius-pill);
  368. color: var(--color-main-text);
  369. flex: 1 1 0px;
  370. z-index: 100; /* above the bullet to allow click*/
  371. /* TODO: forbid using img as icon in menu? */
  372. /* counter can also be inside the link */
  373. }
  374. #app-navigation:not(.vue) > ul > li > a.svg,
  375. #app-navigation:not(.vue) > ul > li > ul > li > a.svg {
  376. padding: 0 12px 0 44px;
  377. }
  378. #app-navigation:not(.vue) > ul > li > a.svg :focus-visible,
  379. #app-navigation:not(.vue) > ul > li > ul > li > a.svg :focus-visible {
  380. padding: 0 8px 0 42px;
  381. }
  382. #app-navigation:not(.vue) > ul > li > a:first-child img,
  383. #app-navigation:not(.vue) > ul > li > ul > li > a:first-child img {
  384. margin-right: 11px;
  385. width: 16px;
  386. height: 16px;
  387. filter: var(--background-invert-if-dark);
  388. }
  389. #app-navigation:not(.vue) > ul > li > a > .app-navigation-entry-utils,
  390. #app-navigation:not(.vue) > ul > li > ul > li > a > .app-navigation-entry-utils {
  391. display: inline-block;
  392. float: right;
  393. }
  394. #app-navigation:not(.vue) > ul > li > a > .app-navigation-entry-utils .app-navigation-entry-utils-counter,
  395. #app-navigation:not(.vue) > ul > li > ul > li > a > .app-navigation-entry-utils .app-navigation-entry-utils-counter {
  396. padding-right: 0 !important;
  397. }
  398. #app-navigation:not(.vue) > ul > li > .app-navigation-entry-bullet,
  399. #app-navigation:not(.vue) > ul > li > ul > li > .app-navigation-entry-bullet {
  400. position: absolute;
  401. display: block;
  402. margin: 16px;
  403. width: 12px;
  404. height: 12px;
  405. border: none;
  406. border-radius: 50%;
  407. cursor: pointer;
  408. transition: background 100ms ease-in-out;
  409. }
  410. #app-navigation:not(.vue) > ul > li > .app-navigation-entry-bullet + a,
  411. #app-navigation:not(.vue) > ul > li > ul > li > .app-navigation-entry-bullet + a {
  412. /* hide icon if bullet, can't have both */
  413. background: transparent !important;
  414. }
  415. #app-navigation:not(.vue) > ul > li > .app-navigation-entry-menu,
  416. #app-navigation:not(.vue) > ul > li > ul > li > .app-navigation-entry-menu {
  417. top: 44px;
  418. }
  419. #app-navigation:not(.vue) > ul > li.editing .app-navigation-entry-edit,
  420. #app-navigation:not(.vue) > ul > li > ul > li.editing .app-navigation-entry-edit {
  421. opacity: 1;
  422. z-index: 250;
  423. }
  424. #app-navigation:not(.vue) > ul > li.deleted .app-navigation-entry-deleted,
  425. #app-navigation:not(.vue) > ul > li > ul > li.deleted .app-navigation-entry-deleted {
  426. transform: translateX(0);
  427. z-index: 250;
  428. }
  429. #app-navigation:not(.vue).hidden {
  430. display: none;
  431. }
  432. #app-navigation:not(.vue) .app-navigation-entry-utils .app-navigation-entry-utils-menu-button > button,
  433. #app-navigation:not(.vue) .app-navigation-entry-deleted .app-navigation-entry-deleted-button {
  434. border: 0;
  435. opacity: 0.5;
  436. background-color: transparent;
  437. background-repeat: no-repeat;
  438. background-position: center;
  439. }
  440. #app-navigation:not(.vue) .app-navigation-entry-utils .app-navigation-entry-utils-menu-button > button:hover, #app-navigation:not(.vue) .app-navigation-entry-utils .app-navigation-entry-utils-menu-button > button:focus,
  441. #app-navigation:not(.vue) .app-navigation-entry-deleted .app-navigation-entry-deleted-button:hover,
  442. #app-navigation:not(.vue) .app-navigation-entry-deleted .app-navigation-entry-deleted-button:focus {
  443. background-color: transparent;
  444. opacity: 1;
  445. }
  446. #app-navigation:not(.vue) .collapsible {
  447. /* Fallback for old collapse button.
  448. TODO: to be removed. Leaved here for retro compatibility */
  449. /* force padding on link no matter if 'a' has an icon class */
  450. }
  451. #app-navigation:not(.vue) .collapsible .collapse {
  452. opacity: 0;
  453. position: absolute;
  454. width: 44px;
  455. height: 44px;
  456. margin: 0;
  457. z-index: 110;
  458. /* Needed for IE11; otherwise the button appears to the right of the
  459. * link. */
  460. left: 0;
  461. }
  462. #app-navigation:not(.vue) .collapsible .collapse:focus-visible {
  463. opacity: 1;
  464. border-width: 0;
  465. box-shadow: inset 0 0 0 2px var(--color-primary);
  466. background: none;
  467. }
  468. #app-navigation:not(.vue) .collapsible:before {
  469. position: absolute;
  470. height: 44px;
  471. width: 44px;
  472. margin: 0;
  473. padding: 0;
  474. background: none;
  475. /* $dir is the app name, so we add this to the icon var to avoid conflicts between apps */
  476. background-image: var(--icon-triangle-s-dark);
  477. background-size: 16px;
  478. background-repeat: no-repeat;
  479. background-position: center;
  480. border: none;
  481. border-radius: 0;
  482. outline: none !important;
  483. box-shadow: none;
  484. content: " ";
  485. opacity: 0;
  486. -webkit-transform: rotate(-90deg);
  487. -ms-transform: rotate(-90deg);
  488. transform: rotate(-90deg);
  489. z-index: 105;
  490. border-radius: 50%;
  491. transition: opacity 100ms ease-in-out;
  492. }
  493. #app-navigation:not(.vue) .collapsible > a:first-child {
  494. padding-left: 44px;
  495. }
  496. #app-navigation:not(.vue) .collapsible:hover:before, #app-navigation:not(.vue) .collapsible:focus:before {
  497. opacity: 1;
  498. }
  499. #app-navigation:not(.vue) .collapsible:hover > a, #app-navigation:not(.vue) .collapsible:focus > a {
  500. background-image: none;
  501. }
  502. #app-navigation:not(.vue) .collapsible:hover > .app-navigation-entry-bullet, #app-navigation:not(.vue) .collapsible:focus > .app-navigation-entry-bullet {
  503. background: transparent !important;
  504. }
  505. #app-navigation:not(.vue) .collapsible.open:before {
  506. -webkit-transform: rotate(0);
  507. -ms-transform: rotate(0);
  508. transform: rotate(0);
  509. }
  510. #app-navigation:not(.vue) .app-navigation-entry-utils {
  511. flex: 0 1 auto;
  512. }
  513. #app-navigation:not(.vue) .app-navigation-entry-utils ul {
  514. display: flex !important;
  515. align-items: center;
  516. justify-content: flex-end;
  517. }
  518. #app-navigation:not(.vue) .app-navigation-entry-utils li {
  519. width: 44px !important;
  520. height: 44px;
  521. }
  522. #app-navigation:not(.vue) .app-navigation-entry-utils button {
  523. height: 100%;
  524. width: 100%;
  525. margin: 0;
  526. box-shadow: none;
  527. }
  528. #app-navigation:not(.vue) .app-navigation-entry-utils .app-navigation-entry-utils-menu-button {
  529. /* Prevent bg img override if an icon class is set */
  530. }
  531. #app-navigation:not(.vue) .app-navigation-entry-utils .app-navigation-entry-utils-menu-button button:not([class^=icon-]):not([class*=" icon-"]) {
  532. /* $dir is the app name, so we add this to the icon var to avoid conflicts between apps */
  533. background-image: var(--icon-more-dark);
  534. }
  535. #app-navigation:not(.vue) .app-navigation-entry-utils .app-navigation-entry-utils-menu-button:hover button, #app-navigation:not(.vue) .app-navigation-entry-utils .app-navigation-entry-utils-menu-button:focus button {
  536. background-color: transparent;
  537. opacity: 1;
  538. }
  539. #app-navigation:not(.vue) .app-navigation-entry-utils .app-navigation-entry-utils-counter {
  540. overflow: hidden;
  541. text-align: right;
  542. font-size: 9pt;
  543. line-height: 44px;
  544. padding: 0 12px; /* Same padding as all li > a in the app-navigation */
  545. }
  546. #app-navigation:not(.vue) .app-navigation-entry-utils .app-navigation-entry-utils-counter.highlighted {
  547. padding: 0;
  548. text-align: center;
  549. }
  550. #app-navigation:not(.vue) .app-navigation-entry-utils .app-navigation-entry-utils-counter.highlighted span {
  551. padding: 2px 5px;
  552. border-radius: 10px;
  553. background-color: var(--color-primary);
  554. color: var(--color-primary-text);
  555. }
  556. #app-navigation:not(.vue) .app-navigation-entry-edit {
  557. padding-left: 5px;
  558. padding-right: 5px;
  559. display: block;
  560. width: calc(100% - 1px); /* Avoid border overlapping */
  561. transition: opacity 250ms ease-in-out;
  562. opacity: 0;
  563. position: absolute;
  564. background-color: var(--color-main-background);
  565. z-index: -1;
  566. }
  567. #app-navigation:not(.vue) .app-navigation-entry-edit form,
  568. #app-navigation:not(.vue) .app-navigation-entry-edit div {
  569. display: inline-flex;
  570. width: 100%;
  571. }
  572. #app-navigation:not(.vue) .app-navigation-entry-edit input {
  573. padding: 5px;
  574. margin-right: 0;
  575. height: 38px;
  576. }
  577. #app-navigation:not(.vue) .app-navigation-entry-edit input:hover, #app-navigation:not(.vue) .app-navigation-entry-edit input:focus {
  578. /* overlapp borders */
  579. z-index: 1;
  580. }
  581. #app-navigation:not(.vue) .app-navigation-entry-edit input[type=text] {
  582. width: 100%;
  583. min-width: 0; /* firefox hack: override auto */
  584. border-bottom-right-radius: 0;
  585. border-top-right-radius: 0;
  586. }
  587. #app-navigation:not(.vue) .app-navigation-entry-edit button,
  588. #app-navigation:not(.vue) .app-navigation-entry-edit input:not([type=text]) {
  589. width: 36px;
  590. height: 38px;
  591. flex: 0 0 36px;
  592. }
  593. #app-navigation:not(.vue) .app-navigation-entry-edit button:not(:last-child),
  594. #app-navigation:not(.vue) .app-navigation-entry-edit input:not([type=text]):not(:last-child) {
  595. border-radius: 0 !important;
  596. }
  597. #app-navigation:not(.vue) .app-navigation-entry-edit button:not(:first-child),
  598. #app-navigation:not(.vue) .app-navigation-entry-edit input:not([type=text]):not(:first-child) {
  599. margin-left: -1px;
  600. }
  601. #app-navigation:not(.vue) .app-navigation-entry-edit button:last-child,
  602. #app-navigation:not(.vue) .app-navigation-entry-edit input:not([type=text]):last-child {
  603. border-bottom-right-radius: var(--border-radius);
  604. border-top-right-radius: var(--border-radius);
  605. border-bottom-left-radius: 0;
  606. border-top-left-radius: 0;
  607. }
  608. #app-navigation:not(.vue) .app-navigation-entry-deleted {
  609. display: inline-flex;
  610. padding-left: 44px;
  611. transform: translateX(300px);
  612. }
  613. #app-navigation:not(.vue) .app-navigation-entry-deleted .app-navigation-entry-deleted-description {
  614. position: relative;
  615. white-space: nowrap;
  616. text-overflow: ellipsis;
  617. overflow: hidden;
  618. flex: 1 1 0px;
  619. line-height: 44px;
  620. }
  621. #app-navigation:not(.vue) .app-navigation-entry-deleted .app-navigation-entry-deleted-button {
  622. margin: 0;
  623. height: 44px;
  624. width: 44px;
  625. line-height: 44px;
  626. }
  627. #app-navigation:not(.vue) .app-navigation-entry-deleted .app-navigation-entry-deleted-button:hover, #app-navigation:not(.vue) .app-navigation-entry-deleted .app-navigation-entry-deleted-button:focus {
  628. opacity: 1;
  629. }
  630. #app-navigation:not(.vue) .app-navigation-entry-edit,
  631. #app-navigation:not(.vue) .app-navigation-entry-deleted {
  632. width: calc(100% - 1px); /* Avoid border overlapping */
  633. transition: transform 250ms ease-in-out, opacity 250ms ease-in-out, z-index 250ms ease-in-out;
  634. position: absolute;
  635. left: 0;
  636. background-color: var(--color-main-background);
  637. box-sizing: border-box;
  638. }
  639. #app-navigation:not(.vue) .drag-and-drop {
  640. -webkit-transition: padding-bottom 500ms ease 0s;
  641. transition: padding-bottom 500ms ease 0s;
  642. padding-bottom: 40px;
  643. }
  644. #app-navigation:not(.vue) .error {
  645. color: var(--color-error);
  646. }
  647. #app-navigation:not(.vue) .app-navigation-entry-utils ul,
  648. #app-navigation:not(.vue) .app-navigation-entry-menu ul {
  649. list-style-type: none;
  650. }
  651. /* CONTENT --------------------------------------------------------- */
  652. #content {
  653. box-sizing: border-box;
  654. position: static;
  655. margin: var(--body-container-margin);
  656. margin-top: 50px;
  657. padding: 0;
  658. display: flex;
  659. width: calc(100% - var(--body-container-margin) * 2);
  660. height: var(--body-height);
  661. border-radius: var(--body-container-radius);
  662. overflow: hidden;
  663. }
  664. #content:not(.with-sidebar--full) {
  665. position: fixed;
  666. }
  667. @media only screen and (max-width: 1024px) {
  668. #content {
  669. border-top-left-radius: var(--border-radius-large);
  670. border-top-right-radius: var(--border-radius-large);
  671. }
  672. #app-navigation {
  673. border-top-left-radius: var(--border-radius-large);
  674. }
  675. #app-sidebar {
  676. border-top-right-radius: var(--border-radius-large);
  677. }
  678. }
  679. /* APP-CONTENT AND WRAPPER ------------------------------------------ */
  680. /* Part where the content will be loaded into */
  681. /**
  682. * !Important. We are defining the minimum requirement we want for flex
  683. * Just before the mobile breakpoint we have variables.$breakpoint-mobile (1024px) - variables.$navigation-width
  684. * -> 468px. In that case we want 200px for the list and 268px for the content
  685. */
  686. #app-content {
  687. z-index: 1000;
  688. background-color: var(--color-main-background);
  689. flex-basis: 100vw;
  690. overflow: auto;
  691. position: initial;
  692. height: 100%;
  693. /* margin if navigation element is here */
  694. /* no top border for first settings item */
  695. /* if app-content-list is present */
  696. }
  697. #app-content > .section:first-child {
  698. border-top: none;
  699. }
  700. #app-content #app-content-wrapper {
  701. display: flex;
  702. position: relative;
  703. align-items: stretch;
  704. /* make sure we have at least full height for loaders or such
  705. no need for list/details since we have a flex stretch */
  706. min-height: 100%;
  707. /* CONTENT DETAILS AFTER LIST*/
  708. }
  709. #app-content #app-content-wrapper .app-content-details {
  710. /* grow full width */
  711. flex: 1 1 524px;
  712. }
  713. #app-content #app-content-wrapper .app-content-details #app-navigation-toggle-back {
  714. display: none;
  715. }
  716. /* APP-SIDEBAR ------------------------------------------------------------ */
  717. /*
  718. Sidebar: a sidebar to be used within #content
  719. #app-content will be shrinked properly
  720. */
  721. #app-sidebar {
  722. width: 27vw;
  723. min-width: 300px;
  724. max-width: 500px;
  725. display: block;
  726. position: -webkit-sticky;
  727. position: sticky;
  728. top: 50px;
  729. right: 0;
  730. overflow-y: auto;
  731. overflow-x: hidden;
  732. z-index: 1500;
  733. opacity: 0.7px;
  734. height: calc(100vh - 50px);
  735. background: var(--color-main-background);
  736. border-left: 1px solid var(--color-border);
  737. flex-shrink: 0;
  738. }
  739. #app-sidebar.disappear {
  740. display: none;
  741. }
  742. /* APP-SETTINGS ------------------------------------------------------------ */
  743. /* settings area */
  744. #app-settings {
  745. margin-top: auto;
  746. }
  747. #app-settings.open #app-settings-content, #app-settings.opened #app-settings-content {
  748. display: block;
  749. }
  750. #app-settings-content {
  751. display: none;
  752. padding: calc(var(--default-grid-baseline) * 2);
  753. padding-top: 0;
  754. padding-left: calc(var(--default-grid-baseline) * 4);
  755. /* restrict height of settings and make scrollable */
  756. max-height: 300px;
  757. overflow-y: auto;
  758. box-sizing: border-box;
  759. /* display input fields at full width */
  760. }
  761. #app-settings-content input[type=text] {
  762. width: 93%;
  763. }
  764. #app-settings-content .info-text {
  765. padding: 5px 0 7px 22px;
  766. color: var(--color-text-lighter);
  767. }
  768. #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 {
  769. display: inline-block;
  770. width: 100%;
  771. padding: 5px 0;
  772. }
  773. #app-settings-header {
  774. box-sizing: border-box;
  775. background-color: transparent;
  776. overflow: hidden;
  777. border-radius: calc(var(--default-clickable-area) / 2);
  778. padding: calc(var(--default-grid-baseline) * 2);
  779. padding-top: 0;
  780. }
  781. #app-settings-header .settings-button {
  782. display: flex;
  783. align-items: center;
  784. height: 44px;
  785. width: 100%;
  786. padding: 0;
  787. margin: 0;
  788. background-color: transparent;
  789. box-shadow: none;
  790. border: 0;
  791. border-radius: calc(var(--default-clickable-area) / 2);
  792. text-align: left;
  793. font-weight: normal;
  794. font-size: 100%;
  795. opacity: 0.8;
  796. /* like app-navigation a */
  797. color: var(--color-main-text);
  798. }
  799. #app-settings-header .settings-button.opened {
  800. border-top: solid 1px var(--color-border);
  801. background-color: var(--color-main-background);
  802. margin-top: 8px;
  803. }
  804. #app-settings-header .settings-button:hover, #app-settings-header .settings-button:focus {
  805. background-color: var(--color-background-hover);
  806. }
  807. #app-settings-header .settings-button::before {
  808. background-image: var(--icon-settings-dark);
  809. background-position: 14px center;
  810. background-repeat: no-repeat;
  811. content: "";
  812. width: 44px;
  813. height: 44px;
  814. top: 0;
  815. left: 0;
  816. display: block;
  817. }
  818. #app-settings-header .settings-button:focus-visible {
  819. box-shadow: 0 0 0 2px inset var(--color-primary) !important;
  820. background-position: 12px center;
  821. }
  822. /* GENERAL SECTION ------------------------------------------------------------ */
  823. .section {
  824. display: block;
  825. padding: 30px;
  826. margin-bottom: 24px;
  827. /* slight position correction of checkboxes and radio buttons */
  828. }
  829. .section.hidden {
  830. display: none !important;
  831. }
  832. .section input[type=checkbox], .section input[type=radio] {
  833. vertical-align: -2px;
  834. margin-right: 4px;
  835. }
  836. .sub-section {
  837. position: relative;
  838. margin-top: 10px;
  839. margin-left: 27px;
  840. margin-bottom: 10px;
  841. }
  842. .appear {
  843. opacity: 1;
  844. -webkit-transition: opacity 500ms ease 0s;
  845. -moz-transition: opacity 500ms ease 0s;
  846. -ms-transition: opacity 500ms ease 0s;
  847. -o-transition: opacity 500ms ease 0s;
  848. transition: opacity 500ms ease 0s;
  849. }
  850. .appear.transparent {
  851. opacity: 0;
  852. }
  853. /* TABS ------------------------------------------------------------ */
  854. .tabHeaders {
  855. display: flex;
  856. margin-bottom: 16px;
  857. }
  858. .tabHeaders .tabHeader {
  859. display: flex;
  860. flex-direction: column;
  861. flex-grow: 1;
  862. text-align: center;
  863. white-space: nowrap;
  864. overflow: hidden;
  865. text-overflow: ellipsis;
  866. cursor: pointer;
  867. color: var(--color-text-lighter);
  868. margin-bottom: 1px;
  869. padding: 5px;
  870. /* Use same amount as sidebar padding */
  871. }
  872. .tabHeaders .tabHeader.hidden {
  873. display: none;
  874. }
  875. .tabHeaders .tabHeader:first-child {
  876. padding-left: 15px;
  877. }
  878. .tabHeaders .tabHeader:last-child {
  879. padding-right: 15px;
  880. }
  881. .tabHeaders .tabHeader .icon {
  882. display: inline-block;
  883. width: 100%;
  884. height: 16px;
  885. background-size: 16px;
  886. vertical-align: middle;
  887. margin-top: -2px;
  888. margin-right: 3px;
  889. opacity: 0.7;
  890. cursor: pointer;
  891. }
  892. .tabHeaders .tabHeader a {
  893. color: var(--color-text-lighter);
  894. margin-bottom: 1px;
  895. overflow: hidden;
  896. text-overflow: ellipsis;
  897. }
  898. .tabHeaders .tabHeader.selected {
  899. font-weight: bold;
  900. }
  901. .tabHeaders .tabHeader.selected, .tabHeaders .tabHeader:hover, .tabHeaders .tabHeader:focus {
  902. margin-bottom: 0px;
  903. color: var(--color-main-text);
  904. border-bottom: 1px solid var(--color-text-lighter);
  905. }
  906. .tabsContainer {
  907. clear: left;
  908. }
  909. .tabsContainer .tab {
  910. padding: 0 15px 15px;
  911. }
  912. /* POPOVER MENU ------------------------------------------------------------ */
  913. .contact .popovermenu ul > li > a > img,
  914. .popover__menu > li > a > img {
  915. filter: var(--background-invert-if-dark);
  916. }
  917. .bubble,
  918. .app-navigation-entry-menu,
  919. .popovermenu {
  920. position: absolute;
  921. background-color: var(--color-main-background);
  922. color: var(--color-main-text);
  923. border-radius: var(--border-radius-large);
  924. padding: 3px;
  925. z-index: 110;
  926. margin: 5px;
  927. margin-top: -5px;
  928. right: 0;
  929. filter: drop-shadow(0 1px 3px var(--color-box-shadow));
  930. display: none;
  931. will-change: filter;
  932. /* Center the popover */
  933. /* Align the popover to the left */
  934. }
  935. .bubble:after,
  936. .app-navigation-entry-menu:after,
  937. .popovermenu:after {
  938. bottom: 100%;
  939. right: 7px;
  940. /* change this to adjust the arrow position */
  941. border: solid transparent;
  942. content: " ";
  943. height: 0;
  944. width: 0;
  945. position: absolute;
  946. pointer-events: none;
  947. border-bottom-color: var(--color-main-background);
  948. border-width: 9px;
  949. }
  950. .bubble.menu-center,
  951. .app-navigation-entry-menu.menu-center,
  952. .popovermenu.menu-center {
  953. transform: translateX(50%);
  954. right: 50%;
  955. margin-right: 0;
  956. }
  957. .bubble.menu-center:after,
  958. .app-navigation-entry-menu.menu-center:after,
  959. .popovermenu.menu-center:after {
  960. right: 50%;
  961. transform: translateX(50%);
  962. }
  963. .bubble.menu-left,
  964. .app-navigation-entry-menu.menu-left,
  965. .popovermenu.menu-left {
  966. right: auto;
  967. left: 0;
  968. margin-right: 0;
  969. }
  970. .bubble.menu-left:after,
  971. .app-navigation-entry-menu.menu-left:after,
  972. .popovermenu.menu-left:after {
  973. left: 6px;
  974. right: auto;
  975. }
  976. .bubble.open,
  977. .app-navigation-entry-menu.open,
  978. .popovermenu.open {
  979. display: block;
  980. }
  981. .bubble.contactsmenu-popover,
  982. .app-navigation-entry-menu.contactsmenu-popover,
  983. .popovermenu.contactsmenu-popover {
  984. margin: 0;
  985. }
  986. .bubble ul,
  987. .app-navigation-entry-menu ul,
  988. .popovermenu ul {
  989. /* Overwrite #app-navigation > ul ul */
  990. display: flex !important;
  991. flex-direction: column;
  992. }
  993. .bubble li,
  994. .app-navigation-entry-menu li,
  995. .popovermenu li {
  996. display: flex;
  997. flex: 0 0 auto;
  998. /* css hack, only first not hidden */
  999. }
  1000. .bubble li.hidden,
  1001. .app-navigation-entry-menu li.hidden,
  1002. .popovermenu li.hidden {
  1003. display: none;
  1004. }
  1005. .bubble li > button,
  1006. .bubble li > a,
  1007. .bubble li > .menuitem,
  1008. .app-navigation-entry-menu li > button,
  1009. .app-navigation-entry-menu li > a,
  1010. .app-navigation-entry-menu li > .menuitem,
  1011. .popovermenu li > button,
  1012. .popovermenu li > a,
  1013. .popovermenu li > .menuitem {
  1014. cursor: pointer;
  1015. line-height: 44px;
  1016. border: 0;
  1017. border-radius: var(--border-radius-large);
  1018. background-color: transparent;
  1019. display: flex;
  1020. align-items: flex-start;
  1021. height: auto;
  1022. margin: 0;
  1023. font-weight: normal;
  1024. box-shadow: none;
  1025. width: 100%;
  1026. color: var(--color-main-text);
  1027. white-space: nowrap;
  1028. /* prevent .action class to break the design */
  1029. /* Add padding if contains icon+text */
  1030. /* DEPRECATED! old img in popover fallback
  1031. * TODO: to remove */
  1032. /* checkbox/radio fixes */
  1033. /* no margin if hidden span before */
  1034. /* Inputs inside popover supports text, submit & reset */
  1035. }
  1036. .bubble li > button span[class^=icon-],
  1037. .bubble li > button span[class*=" icon-"], .bubble li > button[class^=icon-], .bubble li > button[class*=" icon-"],
  1038. .bubble li > a span[class^=icon-],
  1039. .bubble li > a span[class*=" icon-"],
  1040. .bubble li > a[class^=icon-],
  1041. .bubble li > a[class*=" icon-"],
  1042. .bubble li > .menuitem span[class^=icon-],
  1043. .bubble li > .menuitem span[class*=" icon-"],
  1044. .bubble li > .menuitem[class^=icon-],
  1045. .bubble li > .menuitem[class*=" icon-"],
  1046. .app-navigation-entry-menu li > button span[class^=icon-],
  1047. .app-navigation-entry-menu li > button span[class*=" icon-"],
  1048. .app-navigation-entry-menu li > button[class^=icon-],
  1049. .app-navigation-entry-menu li > button[class*=" icon-"],
  1050. .app-navigation-entry-menu li > a span[class^=icon-],
  1051. .app-navigation-entry-menu li > a span[class*=" icon-"],
  1052. .app-navigation-entry-menu li > a[class^=icon-],
  1053. .app-navigation-entry-menu li > a[class*=" icon-"],
  1054. .app-navigation-entry-menu li > .menuitem span[class^=icon-],
  1055. .app-navigation-entry-menu li > .menuitem span[class*=" icon-"],
  1056. .app-navigation-entry-menu li > .menuitem[class^=icon-],
  1057. .app-navigation-entry-menu li > .menuitem[class*=" icon-"],
  1058. .popovermenu li > button span[class^=icon-],
  1059. .popovermenu li > button span[class*=" icon-"],
  1060. .popovermenu li > button[class^=icon-],
  1061. .popovermenu li > button[class*=" icon-"],
  1062. .popovermenu li > a span[class^=icon-],
  1063. .popovermenu li > a span[class*=" icon-"],
  1064. .popovermenu li > a[class^=icon-],
  1065. .popovermenu li > a[class*=" icon-"],
  1066. .popovermenu li > .menuitem span[class^=icon-],
  1067. .popovermenu li > .menuitem span[class*=" icon-"],
  1068. .popovermenu li > .menuitem[class^=icon-],
  1069. .popovermenu li > .menuitem[class*=" icon-"] {
  1070. min-width: 0; /* Overwrite icons*/
  1071. min-height: 0;
  1072. background-position: 14px center;
  1073. background-size: 16px;
  1074. }
  1075. .bubble li > button span[class^=icon-],
  1076. .bubble li > button span[class*=" icon-"],
  1077. .bubble li > a span[class^=icon-],
  1078. .bubble li > a span[class*=" icon-"],
  1079. .bubble li > .menuitem span[class^=icon-],
  1080. .bubble li > .menuitem span[class*=" icon-"],
  1081. .app-navigation-entry-menu li > button span[class^=icon-],
  1082. .app-navigation-entry-menu li > button span[class*=" icon-"],
  1083. .app-navigation-entry-menu li > a span[class^=icon-],
  1084. .app-navigation-entry-menu li > a span[class*=" icon-"],
  1085. .app-navigation-entry-menu li > .menuitem span[class^=icon-],
  1086. .app-navigation-entry-menu li > .menuitem span[class*=" icon-"],
  1087. .popovermenu li > button span[class^=icon-],
  1088. .popovermenu li > button span[class*=" icon-"],
  1089. .popovermenu li > a span[class^=icon-],
  1090. .popovermenu li > a span[class*=" icon-"],
  1091. .popovermenu li > .menuitem span[class^=icon-],
  1092. .popovermenu li > .menuitem span[class*=" icon-"] {
  1093. /* Keep padding to define the width to
  1094. assure correct position of a possible text */
  1095. padding: 22px 0 22px 44px;
  1096. }
  1097. .bubble li > button:not([class^=icon-]):not([class*=icon-]) > span:not([class^=icon-]):not([class*=icon-]):first-child,
  1098. .bubble li > button:not([class^=icon-]):not([class*=icon-]) > input:not([class^=icon-]):not([class*=icon-]):first-child,
  1099. .bubble li > button:not([class^=icon-]):not([class*=icon-]) > form:not([class^=icon-]):not([class*=icon-]):first-child,
  1100. .bubble li > a:not([class^=icon-]):not([class*=icon-]) > span:not([class^=icon-]):not([class*=icon-]):first-child,
  1101. .bubble li > a:not([class^=icon-]):not([class*=icon-]) > input:not([class^=icon-]):not([class*=icon-]):first-child,
  1102. .bubble li > a:not([class^=icon-]):not([class*=icon-]) > form:not([class^=icon-]):not([class*=icon-]):first-child,
  1103. .bubble li > .menuitem:not([class^=icon-]):not([class*=icon-]) > span:not([class^=icon-]):not([class*=icon-]):first-child,
  1104. .bubble li > .menuitem:not([class^=icon-]):not([class*=icon-]) > input:not([class^=icon-]):not([class*=icon-]):first-child,
  1105. .bubble li > .menuitem:not([class^=icon-]):not([class*=icon-]) > form:not([class^=icon-]):not([class*=icon-]):first-child,
  1106. .app-navigation-entry-menu li > button:not([class^=icon-]):not([class*=icon-]) > span:not([class^=icon-]):not([class*=icon-]):first-child,
  1107. .app-navigation-entry-menu li > button:not([class^=icon-]):not([class*=icon-]) > input:not([class^=icon-]):not([class*=icon-]):first-child,
  1108. .app-navigation-entry-menu li > button:not([class^=icon-]):not([class*=icon-]) > form:not([class^=icon-]):not([class*=icon-]):first-child,
  1109. .app-navigation-entry-menu li > a:not([class^=icon-]):not([class*=icon-]) > span:not([class^=icon-]):not([class*=icon-]):first-child,
  1110. .app-navigation-entry-menu li > a:not([class^=icon-]):not([class*=icon-]) > input:not([class^=icon-]):not([class*=icon-]):first-child,
  1111. .app-navigation-entry-menu li > a:not([class^=icon-]):not([class*=icon-]) > form:not([class^=icon-]):not([class*=icon-]):first-child,
  1112. .app-navigation-entry-menu li > .menuitem:not([class^=icon-]):not([class*=icon-]) > span:not([class^=icon-]):not([class*=icon-]):first-child,
  1113. .app-navigation-entry-menu li > .menuitem:not([class^=icon-]):not([class*=icon-]) > input:not([class^=icon-]):not([class*=icon-]):first-child,
  1114. .app-navigation-entry-menu li > .menuitem:not([class^=icon-]):not([class*=icon-]) > form:not([class^=icon-]):not([class*=icon-]):first-child,
  1115. .popovermenu li > button:not([class^=icon-]):not([class*=icon-]) > span:not([class^=icon-]):not([class*=icon-]):first-child,
  1116. .popovermenu li > button:not([class^=icon-]):not([class*=icon-]) > input:not([class^=icon-]):not([class*=icon-]):first-child,
  1117. .popovermenu li > button:not([class^=icon-]):not([class*=icon-]) > form:not([class^=icon-]):not([class*=icon-]):first-child,
  1118. .popovermenu li > a:not([class^=icon-]):not([class*=icon-]) > span:not([class^=icon-]):not([class*=icon-]):first-child,
  1119. .popovermenu li > a:not([class^=icon-]):not([class*=icon-]) > input:not([class^=icon-]):not([class*=icon-]):first-child,
  1120. .popovermenu li > a:not([class^=icon-]):not([class*=icon-]) > form:not([class^=icon-]):not([class*=icon-]):first-child,
  1121. .popovermenu li > .menuitem:not([class^=icon-]):not([class*=icon-]) > span:not([class^=icon-]):not([class*=icon-]):first-child,
  1122. .popovermenu li > .menuitem:not([class^=icon-]):not([class*=icon-]) > input:not([class^=icon-]):not([class*=icon-]):first-child,
  1123. .popovermenu li > .menuitem:not([class^=icon-]):not([class*=icon-]) > form:not([class^=icon-]):not([class*=icon-]):first-child {
  1124. margin-left: 44px;
  1125. }
  1126. .bubble li > button[class^=icon-], .bubble li > button[class*=" icon-"],
  1127. .bubble li > a[class^=icon-],
  1128. .bubble li > a[class*=" icon-"],
  1129. .bubble li > .menuitem[class^=icon-],
  1130. .bubble li > .menuitem[class*=" icon-"],
  1131. .app-navigation-entry-menu li > button[class^=icon-],
  1132. .app-navigation-entry-menu li > button[class*=" icon-"],
  1133. .app-navigation-entry-menu li > a[class^=icon-],
  1134. .app-navigation-entry-menu li > a[class*=" icon-"],
  1135. .app-navigation-entry-menu li > .menuitem[class^=icon-],
  1136. .app-navigation-entry-menu li > .menuitem[class*=" icon-"],
  1137. .popovermenu li > button[class^=icon-],
  1138. .popovermenu li > button[class*=" icon-"],
  1139. .popovermenu li > a[class^=icon-],
  1140. .popovermenu li > a[class*=" icon-"],
  1141. .popovermenu li > .menuitem[class^=icon-],
  1142. .popovermenu li > .menuitem[class*=" icon-"] {
  1143. padding: 0 14px 0 44px !important;
  1144. }
  1145. .bubble li > button:hover, .bubble li > button:focus,
  1146. .bubble li > a:hover,
  1147. .bubble li > a:focus,
  1148. .bubble li > .menuitem:hover,
  1149. .bubble li > .menuitem:focus,
  1150. .app-navigation-entry-menu li > button:hover,
  1151. .app-navigation-entry-menu li > button:focus,
  1152. .app-navigation-entry-menu li > a:hover,
  1153. .app-navigation-entry-menu li > a:focus,
  1154. .app-navigation-entry-menu li > .menuitem:hover,
  1155. .app-navigation-entry-menu li > .menuitem:focus,
  1156. .popovermenu li > button:hover,
  1157. .popovermenu li > button:focus,
  1158. .popovermenu li > a:hover,
  1159. .popovermenu li > a:focus,
  1160. .popovermenu li > .menuitem:hover,
  1161. .popovermenu li > .menuitem:focus {
  1162. background-color: var(--color-background-hover);
  1163. }
  1164. .bubble li > button:focus, .bubble li > button:focus-visible,
  1165. .bubble li > a:focus,
  1166. .bubble li > a:focus-visible,
  1167. .bubble li > .menuitem:focus,
  1168. .bubble li > .menuitem:focus-visible,
  1169. .app-navigation-entry-menu li > button:focus,
  1170. .app-navigation-entry-menu li > button:focus-visible,
  1171. .app-navigation-entry-menu li > a:focus,
  1172. .app-navigation-entry-menu li > a:focus-visible,
  1173. .app-navigation-entry-menu li > .menuitem:focus,
  1174. .app-navigation-entry-menu li > .menuitem:focus-visible,
  1175. .popovermenu li > button:focus,
  1176. .popovermenu li > button:focus-visible,
  1177. .popovermenu li > a:focus,
  1178. .popovermenu li > a:focus-visible,
  1179. .popovermenu li > .menuitem:focus,
  1180. .popovermenu li > .menuitem:focus-visible {
  1181. box-shadow: 0 0 0 2px var(--color-primary-element);
  1182. }
  1183. .bubble li > button.active,
  1184. .bubble li > a.active,
  1185. .bubble li > .menuitem.active,
  1186. .app-navigation-entry-menu li > button.active,
  1187. .app-navigation-entry-menu li > a.active,
  1188. .app-navigation-entry-menu li > .menuitem.active,
  1189. .popovermenu li > button.active,
  1190. .popovermenu li > a.active,
  1191. .popovermenu li > .menuitem.active {
  1192. border-radius: var(--border-radius-pill);
  1193. background-color: var(--color-primary-light);
  1194. }
  1195. .bubble li > button.action,
  1196. .bubble li > a.action,
  1197. .bubble li > .menuitem.action,
  1198. .app-navigation-entry-menu li > button.action,
  1199. .app-navigation-entry-menu li > a.action,
  1200. .app-navigation-entry-menu li > .menuitem.action,
  1201. .popovermenu li > button.action,
  1202. .popovermenu li > a.action,
  1203. .popovermenu li > .menuitem.action {
  1204. padding: inherit !important;
  1205. }
  1206. .bubble li > button > span,
  1207. .bubble li > a > span,
  1208. .bubble li > .menuitem > span,
  1209. .app-navigation-entry-menu li > button > span,
  1210. .app-navigation-entry-menu li > a > span,
  1211. .app-navigation-entry-menu li > .menuitem > span,
  1212. .popovermenu li > button > span,
  1213. .popovermenu li > a > span,
  1214. .popovermenu li > .menuitem > span {
  1215. cursor: pointer;
  1216. white-space: nowrap;
  1217. }
  1218. .bubble li > button > p,
  1219. .bubble li > a > p,
  1220. .bubble li > .menuitem > p,
  1221. .app-navigation-entry-menu li > button > p,
  1222. .app-navigation-entry-menu li > a > p,
  1223. .app-navigation-entry-menu li > .menuitem > p,
  1224. .popovermenu li > button > p,
  1225. .popovermenu li > a > p,
  1226. .popovermenu li > .menuitem > p {
  1227. width: 150px;
  1228. line-height: 1.6em;
  1229. padding: 8px 0;
  1230. white-space: normal;
  1231. }
  1232. .bubble li > button > select,
  1233. .bubble li > a > select,
  1234. .bubble li > .menuitem > select,
  1235. .app-navigation-entry-menu li > button > select,
  1236. .app-navigation-entry-menu li > a > select,
  1237. .app-navigation-entry-menu li > .menuitem > select,
  1238. .popovermenu li > button > select,
  1239. .popovermenu li > a > select,
  1240. .popovermenu li > .menuitem > select {
  1241. margin: 0;
  1242. margin-left: 6px;
  1243. }
  1244. .bubble li > button:not(:empty),
  1245. .bubble li > a:not(:empty),
  1246. .bubble li > .menuitem:not(:empty),
  1247. .app-navigation-entry-menu li > button:not(:empty),
  1248. .app-navigation-entry-menu li > a:not(:empty),
  1249. .app-navigation-entry-menu li > .menuitem:not(:empty),
  1250. .popovermenu li > button:not(:empty),
  1251. .popovermenu li > a:not(:empty),
  1252. .popovermenu li > .menuitem:not(:empty) {
  1253. padding-right: 14px !important;
  1254. }
  1255. .bubble li > button > img,
  1256. .bubble li > a > img,
  1257. .bubble li > .menuitem > img,
  1258. .app-navigation-entry-menu li > button > img,
  1259. .app-navigation-entry-menu li > a > img,
  1260. .app-navigation-entry-menu li > .menuitem > img,
  1261. .popovermenu li > button > img,
  1262. .popovermenu li > a > img,
  1263. .popovermenu li > .menuitem > img {
  1264. width: 16px;
  1265. padding: 14px;
  1266. }
  1267. .bubble li > button > input.radio + label,
  1268. .bubble li > button > input.checkbox + label,
  1269. .bubble li > a > input.radio + label,
  1270. .bubble li > a > input.checkbox + label,
  1271. .bubble li > .menuitem > input.radio + label,
  1272. .bubble li > .menuitem > input.checkbox + label,
  1273. .app-navigation-entry-menu li > button > input.radio + label,
  1274. .app-navigation-entry-menu li > button > input.checkbox + label,
  1275. .app-navigation-entry-menu li > a > input.radio + label,
  1276. .app-navigation-entry-menu li > a > input.checkbox + label,
  1277. .app-navigation-entry-menu li > .menuitem > input.radio + label,
  1278. .app-navigation-entry-menu li > .menuitem > input.checkbox + label,
  1279. .popovermenu li > button > input.radio + label,
  1280. .popovermenu li > button > input.checkbox + label,
  1281. .popovermenu li > a > input.radio + label,
  1282. .popovermenu li > a > input.checkbox + label,
  1283. .popovermenu li > .menuitem > input.radio + label,
  1284. .popovermenu li > .menuitem > input.checkbox + label {
  1285. padding: 0 !important;
  1286. width: 100%;
  1287. }
  1288. .bubble li > button > input.checkbox + label::before,
  1289. .bubble li > a > input.checkbox + label::before,
  1290. .bubble li > .menuitem > input.checkbox + label::before,
  1291. .app-navigation-entry-menu li > button > input.checkbox + label::before,
  1292. .app-navigation-entry-menu li > a > input.checkbox + label::before,
  1293. .app-navigation-entry-menu li > .menuitem > input.checkbox + label::before,
  1294. .popovermenu li > button > input.checkbox + label::before,
  1295. .popovermenu li > a > input.checkbox + label::before,
  1296. .popovermenu li > .menuitem > input.checkbox + label::before {
  1297. margin: -2px 13px 0;
  1298. }
  1299. .bubble li > button > input.radio + label::before,
  1300. .bubble li > a > input.radio + label::before,
  1301. .bubble li > .menuitem > input.radio + label::before,
  1302. .app-navigation-entry-menu li > button > input.radio + label::before,
  1303. .app-navigation-entry-menu li > a > input.radio + label::before,
  1304. .app-navigation-entry-menu li > .menuitem > input.radio + label::before,
  1305. .popovermenu li > button > input.radio + label::before,
  1306. .popovermenu li > a > input.radio + label::before,
  1307. .popovermenu li > .menuitem > input.radio + label::before {
  1308. margin: -2px 12px 0;
  1309. }
  1310. .bubble li > button > input:not([type=radio]):not([type=checkbox]):not([type=image]),
  1311. .bubble li > a > input:not([type=radio]):not([type=checkbox]):not([type=image]),
  1312. .bubble li > .menuitem > input:not([type=radio]):not([type=checkbox]):not([type=image]),
  1313. .app-navigation-entry-menu li > button > input:not([type=radio]):not([type=checkbox]):not([type=image]),
  1314. .app-navigation-entry-menu li > a > input:not([type=radio]):not([type=checkbox]):not([type=image]),
  1315. .app-navigation-entry-menu li > .menuitem > input:not([type=radio]):not([type=checkbox]):not([type=image]),
  1316. .popovermenu li > button > input:not([type=radio]):not([type=checkbox]):not([type=image]),
  1317. .popovermenu li > a > input:not([type=radio]):not([type=checkbox]):not([type=image]),
  1318. .popovermenu li > .menuitem > input:not([type=radio]):not([type=checkbox]):not([type=image]) {
  1319. width: 150px;
  1320. }
  1321. .bubble li > button form,
  1322. .bubble li > a form,
  1323. .bubble li > .menuitem form,
  1324. .app-navigation-entry-menu li > button form,
  1325. .app-navigation-entry-menu li > a form,
  1326. .app-navigation-entry-menu li > .menuitem form,
  1327. .popovermenu li > button form,
  1328. .popovermenu li > a form,
  1329. .popovermenu li > .menuitem form {
  1330. display: flex;
  1331. flex: 1 1 auto;
  1332. /* put a small space between text and form
  1333. if there is an element before */
  1334. align-items: center;
  1335. }
  1336. .bubble li > button form:not(:first-child),
  1337. .bubble li > a form:not(:first-child),
  1338. .bubble li > .menuitem form:not(:first-child),
  1339. .app-navigation-entry-menu li > button form:not(:first-child),
  1340. .app-navigation-entry-menu li > a form:not(:first-child),
  1341. .app-navigation-entry-menu li > .menuitem form:not(:first-child),
  1342. .popovermenu li > button form:not(:first-child),
  1343. .popovermenu li > a form:not(:first-child),
  1344. .popovermenu li > .menuitem form:not(:first-child) {
  1345. margin-left: 5px;
  1346. }
  1347. .bubble li > button > span.hidden + form,
  1348. .bubble li > button > span[style*="display:none"] + form,
  1349. .bubble li > a > span.hidden + form,
  1350. .bubble li > a > span[style*="display:none"] + form,
  1351. .bubble li > .menuitem > span.hidden + form,
  1352. .bubble li > .menuitem > span[style*="display:none"] + form,
  1353. .app-navigation-entry-menu li > button > span.hidden + form,
  1354. .app-navigation-entry-menu li > button > span[style*="display:none"] + form,
  1355. .app-navigation-entry-menu li > a > span.hidden + form,
  1356. .app-navigation-entry-menu li > a > span[style*="display:none"] + form,
  1357. .app-navigation-entry-menu li > .menuitem > span.hidden + form,
  1358. .app-navigation-entry-menu li > .menuitem > span[style*="display:none"] + form,
  1359. .popovermenu li > button > span.hidden + form,
  1360. .popovermenu li > button > span[style*="display:none"] + form,
  1361. .popovermenu li > a > span.hidden + form,
  1362. .popovermenu li > a > span[style*="display:none"] + form,
  1363. .popovermenu li > .menuitem > span.hidden + form,
  1364. .popovermenu li > .menuitem > span[style*="display:none"] + form {
  1365. margin-left: 0;
  1366. }
  1367. .bubble li > button input,
  1368. .bubble li > a input,
  1369. .bubble li > .menuitem input,
  1370. .app-navigation-entry-menu li > button input,
  1371. .app-navigation-entry-menu li > a input,
  1372. .app-navigation-entry-menu li > .menuitem input,
  1373. .popovermenu li > button input,
  1374. .popovermenu li > a input,
  1375. .popovermenu li > .menuitem input {
  1376. min-width: 44px;
  1377. max-height: 40px; /* twice the element margin-y */
  1378. margin: 2px 0;
  1379. flex: 1 1 auto;
  1380. }
  1381. .bubble li > button input:not(:first-child),
  1382. .bubble li > a input:not(:first-child),
  1383. .bubble li > .menuitem input:not(:first-child),
  1384. .app-navigation-entry-menu li > button input:not(:first-child),
  1385. .app-navigation-entry-menu li > a input:not(:first-child),
  1386. .app-navigation-entry-menu li > .menuitem input:not(:first-child),
  1387. .popovermenu li > button input:not(:first-child),
  1388. .popovermenu li > a input:not(:first-child),
  1389. .popovermenu li > .menuitem input:not(:first-child) {
  1390. margin-left: 5px;
  1391. }
  1392. .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,
  1393. .app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):first-of-type > button > form,
  1394. .app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):first-of-type > button > input,
  1395. .app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):first-of-type > a > form,
  1396. .app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):first-of-type > a > input,
  1397. .app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):first-of-type > .menuitem > form,
  1398. .app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):first-of-type > .menuitem > input,
  1399. .popovermenu li:not(.hidden):not([style*="display:none"]):first-of-type > button > form,
  1400. .popovermenu li:not(.hidden):not([style*="display:none"]):first-of-type > button > input,
  1401. .popovermenu li:not(.hidden):not([style*="display:none"]):first-of-type > a > form,
  1402. .popovermenu li:not(.hidden):not([style*="display:none"]):first-of-type > a > input,
  1403. .popovermenu li:not(.hidden):not([style*="display:none"]):first-of-type > .menuitem > form,
  1404. .popovermenu li:not(.hidden):not([style*="display:none"]):first-of-type > .menuitem > input {
  1405. margin-top: 12px;
  1406. }
  1407. .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,
  1408. .app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):last-of-type > button > form,
  1409. .app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):last-of-type > button > input,
  1410. .app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):last-of-type > a > form,
  1411. .app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):last-of-type > a > input,
  1412. .app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):last-of-type > .menuitem > form,
  1413. .app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):last-of-type > .menuitem > input,
  1414. .popovermenu li:not(.hidden):not([style*="display:none"]):last-of-type > button > form,
  1415. .popovermenu li:not(.hidden):not([style*="display:none"]):last-of-type > button > input,
  1416. .popovermenu li:not(.hidden):not([style*="display:none"]):last-of-type > a > form,
  1417. .popovermenu li:not(.hidden):not([style*="display:none"]):last-of-type > a > input,
  1418. .popovermenu li:not(.hidden):not([style*="display:none"]):last-of-type > .menuitem > form,
  1419. .popovermenu li:not(.hidden):not([style*="display:none"]):last-of-type > .menuitem > input {
  1420. margin-bottom: 0px;
  1421. }
  1422. .bubble li > button,
  1423. .app-navigation-entry-menu li > button,
  1424. .popovermenu li > button {
  1425. padding: 0;
  1426. }
  1427. .bubble li > button span,
  1428. .app-navigation-entry-menu li > button span,
  1429. .popovermenu li > button span {
  1430. opacity: 1;
  1431. }
  1432. /* CONTENT LIST ------------------------------------------------------------ */
  1433. .app-content-list {
  1434. position: -webkit-sticky;
  1435. position: relative;
  1436. top: 0;
  1437. border-right: 1px solid var(--color-border);
  1438. display: flex;
  1439. flex-direction: column;
  1440. transition: transform 250ms ease-in-out;
  1441. min-height: 100%;
  1442. max-height: 100%;
  1443. overflow-y: auto;
  1444. overflow-x: hidden;
  1445. flex: 1 1 200px;
  1446. min-width: 200px;
  1447. max-width: 300px;
  1448. /* Default item */
  1449. }
  1450. .app-content-list .app-content-list-item {
  1451. position: relative;
  1452. height: 68px;
  1453. cursor: pointer;
  1454. padding: 10px 7px;
  1455. display: flex;
  1456. flex-wrap: wrap;
  1457. align-items: center;
  1458. flex: 0 0 auto;
  1459. /* Icon fixes */
  1460. }
  1461. .app-content-list .app-content-list-item > [class^=icon-],
  1462. .app-content-list .app-content-list-item > [class*=" icon-"],
  1463. .app-content-list .app-content-list-item > .app-content-list-item-menu > [class^=icon-],
  1464. .app-content-list .app-content-list-item > .app-content-list-item-menu > [class*=" icon-"] {
  1465. order: 4;
  1466. width: 24px;
  1467. height: 24px;
  1468. margin: -7px;
  1469. padding: 22px;
  1470. opacity: 0.3;
  1471. cursor: pointer;
  1472. }
  1473. .app-content-list .app-content-list-item > [class^=icon-]:hover, .app-content-list .app-content-list-item > [class^=icon-]:focus,
  1474. .app-content-list .app-content-list-item > [class*=" icon-"]:hover,
  1475. .app-content-list .app-content-list-item > [class*=" icon-"]:focus,
  1476. .app-content-list .app-content-list-item > .app-content-list-item-menu > [class^=icon-]:hover,
  1477. .app-content-list .app-content-list-item > .app-content-list-item-menu > [class^=icon-]:focus,
  1478. .app-content-list .app-content-list-item > .app-content-list-item-menu > [class*=" icon-"]:hover,
  1479. .app-content-list .app-content-list-item > .app-content-list-item-menu > [class*=" icon-"]:focus {
  1480. opacity: 0.7;
  1481. }
  1482. .app-content-list .app-content-list-item > [class^=icon-][class^=icon-star], .app-content-list .app-content-list-item > [class^=icon-][class*=" icon-star"],
  1483. .app-content-list .app-content-list-item > [class*=" icon-"][class^=icon-star],
  1484. .app-content-list .app-content-list-item > [class*=" icon-"][class*=" icon-star"],
  1485. .app-content-list .app-content-list-item > .app-content-list-item-menu > [class^=icon-][class^=icon-star],
  1486. .app-content-list .app-content-list-item > .app-content-list-item-menu > [class^=icon-][class*=" icon-star"],
  1487. .app-content-list .app-content-list-item > .app-content-list-item-menu > [class*=" icon-"][class^=icon-star],
  1488. .app-content-list .app-content-list-item > .app-content-list-item-menu > [class*=" icon-"][class*=" icon-star"] {
  1489. opacity: 0.7;
  1490. }
  1491. .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,
  1492. .app-content-list .app-content-list-item > [class*=" icon-"][class^=icon-star]:hover,
  1493. .app-content-list .app-content-list-item > [class*=" icon-"][class^=icon-star]:focus,
  1494. .app-content-list .app-content-list-item > [class*=" icon-"][class*=" icon-star"]:hover,
  1495. .app-content-list .app-content-list-item > [class*=" icon-"][class*=" icon-star"]:focus,
  1496. .app-content-list .app-content-list-item > .app-content-list-item-menu > [class^=icon-][class^=icon-star]:hover,
  1497. .app-content-list .app-content-list-item > .app-content-list-item-menu > [class^=icon-][class^=icon-star]:focus,
  1498. .app-content-list .app-content-list-item > .app-content-list-item-menu > [class^=icon-][class*=" icon-star"]:hover,
  1499. .app-content-list .app-content-list-item > .app-content-list-item-menu > [class^=icon-][class*=" icon-star"]:focus,
  1500. .app-content-list .app-content-list-item > .app-content-list-item-menu > [class*=" icon-"][class^=icon-star]:hover,
  1501. .app-content-list .app-content-list-item > .app-content-list-item-menu > [class*=" icon-"][class^=icon-star]:focus,
  1502. .app-content-list .app-content-list-item > .app-content-list-item-menu > [class*=" icon-"][class*=" icon-star"]:hover,
  1503. .app-content-list .app-content-list-item > .app-content-list-item-menu > [class*=" icon-"][class*=" icon-star"]:focus {
  1504. opacity: 1;
  1505. }
  1506. .app-content-list .app-content-list-item > [class^=icon-].icon-starred,
  1507. .app-content-list .app-content-list-item > [class*=" icon-"].icon-starred,
  1508. .app-content-list .app-content-list-item > .app-content-list-item-menu > [class^=icon-].icon-starred,
  1509. .app-content-list .app-content-list-item > .app-content-list-item-menu > [class*=" icon-"].icon-starred {
  1510. opacity: 1;
  1511. }
  1512. .app-content-list .app-content-list-item:hover, .app-content-list .app-content-list-item:focus, .app-content-list .app-content-list-item.active {
  1513. background-color: var(--color-background-dark);
  1514. }
  1515. .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 {
  1516. display: flex;
  1517. }
  1518. .app-content-list .app-content-list-item .app-content-list-item-checkbox.checkbox + label,
  1519. .app-content-list .app-content-list-item .app-content-list-item-star {
  1520. position: absolute;
  1521. height: 40px;
  1522. width: 40px;
  1523. z-index: 50;
  1524. }
  1525. .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 {
  1526. display: flex;
  1527. }
  1528. .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 {
  1529. opacity: 0.7;
  1530. }
  1531. .app-content-list .app-content-list-item .app-content-list-item-checkbox.checkbox + label {
  1532. top: 14px;
  1533. left: 7px;
  1534. display: none;
  1535. /* Hide the star, priority to the checkbox */
  1536. }
  1537. .app-content-list .app-content-list-item .app-content-list-item-checkbox.checkbox + label::before {
  1538. margin: 0;
  1539. }
  1540. .app-content-list .app-content-list-item .app-content-list-item-checkbox.checkbox + label ~ .app-content-list-item-star {
  1541. display: none;
  1542. }
  1543. .app-content-list .app-content-list-item .app-content-list-item-star {
  1544. display: flex;
  1545. top: 10px;
  1546. left: 32px;
  1547. background-size: 16px;
  1548. height: 20px;
  1549. width: 20px;
  1550. margin: 0;
  1551. padding: 0;
  1552. }
  1553. .app-content-list .app-content-list-item .app-content-list-item-icon {
  1554. position: absolute;
  1555. display: inline-block;
  1556. height: 40px;
  1557. width: 40px;
  1558. line-height: 40px;
  1559. border-radius: 50%;
  1560. vertical-align: middle;
  1561. margin-right: 10px;
  1562. color: #fff;
  1563. text-align: center;
  1564. font-size: 1.5em;
  1565. text-transform: capitalize;
  1566. object-fit: cover;
  1567. user-select: none;
  1568. cursor: pointer;
  1569. top: 50%;
  1570. margin-top: -20px;
  1571. }
  1572. .app-content-list .app-content-list-item .app-content-list-item-line-one,
  1573. .app-content-list .app-content-list-item .app-content-list-item-line-two {
  1574. display: block;
  1575. padding-left: 50px;
  1576. white-space: nowrap;
  1577. overflow: hidden;
  1578. text-overflow: ellipsis;
  1579. order: 1;
  1580. flex: 1 1 0px;
  1581. padding-right: 10px;
  1582. cursor: pointer;
  1583. }
  1584. .app-content-list .app-content-list-item .app-content-list-item-line-two {
  1585. opacity: 0.5;
  1586. order: 3;
  1587. flex: 1 0;
  1588. flex-basis: calc(100% - 44px);
  1589. }
  1590. .app-content-list .app-content-list-item .app-content-list-item-details {
  1591. order: 2;
  1592. white-space: nowrap;
  1593. overflow: hidden;
  1594. text-overflow: ellipsis;
  1595. max-width: 100px;
  1596. opacity: 0.5;
  1597. font-size: 80%;
  1598. user-select: none;
  1599. }
  1600. .app-content-list .app-content-list-item .app-content-list-item-menu {
  1601. order: 4;
  1602. position: relative;
  1603. }
  1604. .app-content-list .app-content-list-item .app-content-list-item-menu .popovermenu {
  1605. margin: 0;
  1606. right: -2px;
  1607. }
  1608. .app-content-list.selection .app-content-list-item-checkbox.checkbox + label {
  1609. display: flex;
  1610. }
  1611. /*# sourceMappingURL=apps.css.map */