settings.css 40 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511
  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. /* Copyright (c) 2011, Jan-Christoph Borchardt, http://jancborchardt.net
  24. This file is licensed under the Affero General Public License version 3 or later.
  25. See the COPYING-README file. */
  26. /**
  27. * @copyright Copyright (c) 2018, John Molakvoæ (skjnldsv@protonmail.com)
  28. *
  29. * @author John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
  30. *
  31. * @license GNU AGPL version 3 or any later version
  32. *
  33. * This program is free software: you can redistribute it and/or modify
  34. * it under the terms of the GNU Affero General Public License as
  35. * published by the Free Software Foundation, either version 3 of the
  36. * License, or (at your option) any later version.
  37. *
  38. * This program is distributed in the hope that it will be useful,
  39. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  40. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  41. * GNU Affero General Public License for more details.
  42. *
  43. * You should have received a copy of the GNU Affero General Public License
  44. * along with this program. If not, see <http://www.gnu.org/licenses/>.
  45. *
  46. */
  47. /**
  48. * @see core/src/icons.js
  49. */
  50. /**
  51. * SVG COLOR API
  52. *
  53. * @param string $icon the icon filename
  54. * @param string $dir the icon folder within /core/img if $core or app name
  55. * @param string $color the desired color in hexadecimal
  56. * @param int $version the version of the file
  57. * @param bool [$core] search icon in core
  58. *
  59. * @returns A background image with the url to the set to the requested icon.
  60. */
  61. input#openid, input#webdav {
  62. width: 20em;
  63. }
  64. /* PERSONAL */
  65. .clear {
  66. clear: both;
  67. }
  68. /* icons for sidebar */
  69. .nav-icon-personal-settings {
  70. /* $dir is the app name, so we add this to the icon var to avoid conflicts between apps */
  71. background-image: var(--icon-personal-dark);
  72. }
  73. .nav-icon-security {
  74. /* $dir is the app name, so we add this to the icon var to avoid conflicts between apps */
  75. background-image: var(--icon-toggle-filelist-dark);
  76. }
  77. .nav-icon-clientsbox {
  78. /* $dir is the app name, so we add this to the icon var to avoid conflicts between apps */
  79. background-image: var(--icon-change-dark);
  80. }
  81. .nav-icon-federated-cloud {
  82. /* $dir is the app name, so we add this to the icon var to avoid conflicts between apps */
  83. background-image: var(--icon-share-dark);
  84. }
  85. .nav-icon-second-factor-backup-codes, .nav-icon-ssl-root-certificate {
  86. /* $dir is the app name, so we add this to the icon var to avoid conflicts between apps */
  87. background-image: var(--icon-password-dark);
  88. }
  89. #personal-settings-avatar-container {
  90. display: inline-grid;
  91. grid-template-columns: 1fr;
  92. grid-template-rows: 2fr 1fr 2fr;
  93. vertical-align: top;
  94. }
  95. .profile-settings-container {
  96. display: inline-grid;
  97. grid-template-columns: 1fr;
  98. grid-template-rows: 1fr 1fr 1fr 2fr;
  99. }
  100. .personal-show-container {
  101. width: 100%;
  102. }
  103. .personal-settings-setting-box .section {
  104. padding: 10px 30px;
  105. }
  106. .personal-settings-setting-box .section h3 {
  107. margin-bottom: 0;
  108. }
  109. .personal-settings-setting-box .section input[type=text], .personal-settings-setting-box .section input[type=email], .personal-settings-setting-box .section input[type=tel], .personal-settings-setting-box .section input[type=url] {
  110. width: 100%;
  111. }
  112. select#timezone {
  113. width: 100%;
  114. }
  115. #personal-settings {
  116. display: grid;
  117. padding: 20px;
  118. max-width: 1500px;
  119. grid-template-columns: 1fr 2fr 1fr;
  120. }
  121. #personal-settings .section {
  122. padding: 10px 10px;
  123. border: 0;
  124. }
  125. #personal-settings .section h2 {
  126. margin-bottom: 12px;
  127. }
  128. #personal-settings .personal-info {
  129. margin-right: 10%;
  130. margin-bottom: 12px;
  131. margin-top: 12px;
  132. }
  133. #personal-settings .personal-info[class^=icon-], #personal-settings .personal-info[class*=" icon-"] {
  134. background-position: 0px 2px;
  135. padding-left: 30px;
  136. opacity: 0.7;
  137. }
  138. .development-notice {
  139. text-align: center;
  140. }
  141. .development-notice a:not(.link-button) {
  142. text-decoration: underline;
  143. }
  144. .development-notice a:not(.link-button):hover {
  145. background-color: var(--color-primary-element-hover);
  146. }
  147. .link-button {
  148. display: inline-block;
  149. margin: 16px;
  150. padding: 14px 20px;
  151. background-color: var(--color-primary);
  152. color: #fff;
  153. border-radius: var(--border-radius-pill);
  154. border: 1px solid var(--color-primary);
  155. box-shadow: 0 2px 9px var(--color-box-shadow);
  156. }
  157. .link-button:active, .link-button:hover, .link-button:focus {
  158. color: var(--color-primary);
  159. background-color: var(--color-primary-text);
  160. border-color: var(--color-primary) !important;
  161. }
  162. .link-button.icon-file {
  163. padding-left: 48px;
  164. background-position: 24px;
  165. }
  166. @media (min-width: 1200px) and (max-width: 1400px) {
  167. #personal-settings {
  168. display: grid;
  169. grid-template-columns: 1fr 2fr;
  170. }
  171. #personal-settings #personal-settings-avatar-container {
  172. grid-template-columns: 1fr;
  173. grid-template-rows: 1fr;
  174. }
  175. #personal-settings .personal-settings-container {
  176. grid-template-columns: 1fr 1fr;
  177. grid-template-rows: 1fr 1fr 1fr 1fr;
  178. }
  179. #personal-settings .profile-settings-container {
  180. grid-template-columns: 1fr 1fr;
  181. grid-template-rows: 1fr;
  182. grid-column: 2;
  183. }
  184. }
  185. @media (max-width: 1200px) {
  186. #personal-settings {
  187. display: grid;
  188. grid-template-columns: 1fr;
  189. }
  190. #personal-settings #personal-settings-avatar-container {
  191. grid-template-rows: 1fr;
  192. }
  193. #personal-settings .personal-settings-container {
  194. grid-template-columns: 1fr 1fr;
  195. grid-template-rows: 1fr 1fr 1fr 1fr;
  196. }
  197. #personal-settings .profile-settings-container {
  198. grid-template-columns: 1fr 1fr;
  199. grid-template-rows: 1fr;
  200. }
  201. }
  202. @media (max-width: 560px) {
  203. #personal-settings {
  204. display: grid;
  205. grid-template-columns: 1fr;
  206. }
  207. #personal-settings #personal-settings-avatar-container {
  208. grid-template-rows: 1fr;
  209. }
  210. #personal-settings .personal-settings-container {
  211. grid-template-columns: 1fr;
  212. grid-template-rows: 1fr 1fr 1fr 1fr 1fr 1fr;
  213. }
  214. #personal-settings .profile-settings-container {
  215. grid-template-columns: 1fr;
  216. grid-template-rows: 1fr 1fr;
  217. }
  218. }
  219. .personal-settings-container {
  220. display: inline-grid;
  221. grid-template-columns: 1fr 1fr;
  222. grid-template-rows: 1fr 1fr 1fr 1fr 1fr;
  223. }
  224. .personal-settings-container:after {
  225. clear: both;
  226. }
  227. .personal-settings-container > div h3 {
  228. position: relative;
  229. display: inline-flex;
  230. flex-wrap: nowrap;
  231. justify-content: flex-start;
  232. width: 100%;
  233. align-items: center;
  234. gap: 8px;
  235. }
  236. .personal-settings-container > div h3 > label {
  237. white-space: nowrap;
  238. text-overflow: ellipsis;
  239. overflow: hidden;
  240. }
  241. .personal-settings-container > div > form span[class^=icon-checkmark], .personal-settings-container > div > form span[class^=icon-error] {
  242. position: relative;
  243. right: 8px;
  244. top: -28px;
  245. pointer-events: none;
  246. float: right;
  247. }
  248. .personal-settings-container .verify {
  249. position: relative;
  250. left: 100%;
  251. top: 0;
  252. height: 0;
  253. }
  254. .personal-settings-container .verify img {
  255. padding: 12px 7px 6px;
  256. }
  257. .personal-settings-container .verify-action {
  258. cursor: pointer;
  259. }
  260. .personal-settings-container input:disabled {
  261. background-color: white;
  262. color: black;
  263. border: none;
  264. opacity: 100;
  265. }
  266. /* verify accounts */
  267. /* only show pointer cursor when popup will be there */
  268. .verification-dialog {
  269. display: none;
  270. right: -9px;
  271. top: 40px;
  272. width: 275px;
  273. }
  274. .verification-dialog p {
  275. padding: 10px;
  276. }
  277. .verification-dialog .verificationCode {
  278. font-family: monospace;
  279. display: block;
  280. overflow-wrap: break-word;
  281. }
  282. .federation-menu {
  283. position: relative;
  284. cursor: pointer;
  285. width: 44px;
  286. height: 44px;
  287. padding: 10px;
  288. margin: 0;
  289. background: none;
  290. border: none;
  291. }
  292. .federation-menu:hover, .federation-menu:focus {
  293. background-color: var(--color-background-hover);
  294. border-radius: var(--border-radius-pill);
  295. }
  296. .federation-menu:hover .icon-federation-menu, .federation-menu:focus .icon-federation-menu {
  297. opacity: 0.8;
  298. }
  299. .federation-menu .icon-federation-menu {
  300. padding-left: 16px;
  301. background-size: 16px;
  302. background-position: left center;
  303. opacity: 0.3;
  304. cursor: inherit;
  305. }
  306. .federation-menu .icon-federation-menu .icon-triangle-s {
  307. display: inline-block;
  308. vertical-align: middle;
  309. cursor: inherit;
  310. }
  311. .federation-menu .federationScopeMenu {
  312. top: 44px;
  313. }
  314. .federation-menu .federationScopeMenu.popovermenu .menuitem {
  315. font-size: 12.8px;
  316. line-height: 1.6em;
  317. }
  318. .federation-menu .federationScopeMenu.popovermenu .menuitem .menuitem-text-detail {
  319. opacity: 0.75;
  320. }
  321. .federation-menu .federationScopeMenu.popovermenu .menuitem.active {
  322. box-shadow: inset 2px 0 var(--color-primary);
  323. }
  324. .federation-menu .federationScopeMenu.popovermenu .menuitem.active .menuitem-text {
  325. font-weight: bold;
  326. }
  327. .federation-menu .federationScopeMenu.popovermenu .menuitem.disabled {
  328. opacity: 0.5;
  329. cursor: default;
  330. }
  331. .federation-menu .federationScopeMenu.popovermenu .menuitem.disabled * {
  332. cursor: default;
  333. }
  334. .clientsbox img {
  335. height: 60px;
  336. }
  337. #sslCertificate tr.expired {
  338. background-color: rgba(255, 0, 0, 0.5);
  339. }
  340. #sslCertificate td {
  341. padding: 5px;
  342. }
  343. #displaynameerror,
  344. #displaynamechanged {
  345. display: none;
  346. }
  347. input#identity {
  348. width: 20em;
  349. }
  350. #showWizard {
  351. display: inline-block;
  352. }
  353. .msg.success {
  354. color: #fff;
  355. background-color: #47a447;
  356. padding: 3px;
  357. }
  358. .msg.error {
  359. color: #fff;
  360. background-color: #d2322d;
  361. padding: 3px;
  362. }
  363. table.nostyle label {
  364. margin-right: 2em;
  365. }
  366. table.nostyle td {
  367. padding: 0.2em 0;
  368. }
  369. #security-password #passwordform {
  370. display: flex;
  371. flex-wrap: wrap;
  372. flex-direction: column;
  373. gap: 1rem;
  374. }
  375. #security-password #passwordform .input-control {
  376. display: flex;
  377. flex-wrap: wrap;
  378. flex-direction: column;
  379. }
  380. #security-password #passwordform .input-control label {
  381. margin-bottom: 0.5rem;
  382. }
  383. #security-password #passwordform #pass1, #security-password #passwordform .personal-show-container {
  384. flex-shrink: 1;
  385. width: 300px;
  386. min-width: 150px;
  387. }
  388. #security-password #passwordform .personal-show-container #pass2 {
  389. position: relative;
  390. top: 0.5rem;
  391. }
  392. #security-password #passwordform .personal-show-container .personal-show-label {
  393. top: 34px !important;
  394. margin-right: 0;
  395. margin-top: 0 !important;
  396. right: 3px;
  397. }
  398. #security-password #passwordform #pass2 {
  399. width: 100%;
  400. }
  401. #security-password #passwordform .password-state {
  402. display: inline-block;
  403. }
  404. #security-password #passwordform .strengthify-wrapper {
  405. position: absolute;
  406. left: 0;
  407. width: 100%;
  408. border-radius: 0 0 2px 2px;
  409. margin-top: 5px;
  410. overflow: hidden;
  411. height: 3px;
  412. }
  413. /* Two-Factor Authentication (2FA) */
  414. #two-factor-auth h3 {
  415. margin-top: 24px;
  416. }
  417. #two-factor-auth li > div {
  418. margin-left: 20px;
  419. }
  420. #two-factor-auth .two-factor-provider-settings-icon {
  421. width: 16px;
  422. height: 16px;
  423. vertical-align: sub;
  424. filter: var(--background-invert-if-dark);
  425. }
  426. /* USERS */
  427. .isgroup .groupname {
  428. width: 85%;
  429. display: block;
  430. overflow: hidden;
  431. text-overflow: ellipsis;
  432. }
  433. .isgroup.active .groupname {
  434. width: 65%;
  435. }
  436. li.active .delete,
  437. li.active .rename {
  438. display: block;
  439. }
  440. .app-navigation-entry-utils .delete,
  441. .app-navigation-entry-utils .rename {
  442. display: none;
  443. }
  444. #usersearchform {
  445. position: absolute;
  446. top: 2px;
  447. right: 0;
  448. }
  449. #usersearchform input {
  450. width: 150px;
  451. }
  452. #usersearchform label {
  453. font-weight: bold;
  454. }
  455. /* display table at full width */
  456. table.grid {
  457. width: 100%;
  458. }
  459. table.grid th {
  460. height: 2em;
  461. color: #999;
  462. border-bottom: 1px solid var(--color-border);
  463. padding: 0 0.5em;
  464. padding-left: 0.8em;
  465. text-align: left;
  466. font-weight: normal;
  467. }
  468. table.grid td {
  469. border-bottom: 1px solid var(--color-border);
  470. padding: 0 0.5em;
  471. padding-left: 0.8em;
  472. text-align: left;
  473. font-weight: normal;
  474. }
  475. td.name, th.name {
  476. padding-left: 0.8em;
  477. min-width: 5em;
  478. max-width: 12em;
  479. text-overflow: ellipsis;
  480. overflow: hidden;
  481. }
  482. td.password, th.password {
  483. padding-left: 0.8em;
  484. }
  485. td.password > img, th.password > img {
  486. visibility: hidden;
  487. }
  488. td.displayName > img, th.displayName > img {
  489. visibility: hidden;
  490. }
  491. td.password, td.mailAddress, th.password, th.mailAddress {
  492. min-width: 5em;
  493. max-width: 12em;
  494. cursor: pointer;
  495. }
  496. td.password span, td.mailAddress span, th.password span, th.mailAddress span {
  497. width: 90%;
  498. display: inline-block;
  499. text-overflow: ellipsis;
  500. overflow: hidden;
  501. }
  502. td.mailAddress, th.mailAddress {
  503. cursor: pointer;
  504. }
  505. td.password > span, th.password > span {
  506. margin-right: 1.2em;
  507. color: #C7C7C7;
  508. }
  509. span.usersLastLoginTooltip {
  510. white-space: nowrap;
  511. }
  512. /* APPS */
  513. #app-content > svg.app-filter {
  514. float: left;
  515. height: 0;
  516. width: 0;
  517. }
  518. #app-category-app-bundles {
  519. margin-bottom: 20px;
  520. }
  521. .appinfo {
  522. margin: 1em 40px;
  523. }
  524. #app-navigation {
  525. /* Navigation icons */
  526. }
  527. #app-navigation img {
  528. margin-bottom: -3px;
  529. margin-right: 6px;
  530. width: 16px;
  531. }
  532. #app-navigation li span.no-icon {
  533. padding-left: 32px;
  534. }
  535. #app-navigation ul li.active > span.utils .delete, #app-navigation ul li.active > span.utils .rename {
  536. display: block;
  537. }
  538. #app-navigation .appwarning {
  539. background: #fcc;
  540. }
  541. #app-navigation.appwarning:hover {
  542. background: #fbb;
  543. }
  544. #app-navigation .app-external {
  545. color: var(--color-text-maxcontrast);
  546. }
  547. span.version {
  548. margin-left: 1em;
  549. margin-right: 1em;
  550. color: var(--color-text-maxcontrast);
  551. }
  552. .app-version {
  553. color: var(--color-text-maxcontrast);
  554. }
  555. .app-level span {
  556. color: var(--color-text-maxcontrast);
  557. background-color: transparent;
  558. border: 1px solid var(--color-text-maxcontrast);
  559. border-radius: var(--border-radius);
  560. padding: 3px 6px;
  561. }
  562. .app-level a {
  563. padding: 10px;
  564. margin: -6px;
  565. white-space: nowrap;
  566. }
  567. .app-level .official {
  568. background-position: left center;
  569. background-position: 5px center;
  570. padding-left: 25px;
  571. }
  572. .app-level .supported {
  573. border-color: var(--color-success);
  574. background-position: left center;
  575. background-position: 5px center;
  576. padding-left: 25px;
  577. color: var(--color-success);
  578. }
  579. .app-score {
  580. position: relative;
  581. top: 4px;
  582. opacity: 0.5;
  583. }
  584. .app-settings-content #searchresults {
  585. display: none;
  586. }
  587. #apps-list.store .section {
  588. border: 0;
  589. }
  590. #apps-list.store .app-name {
  591. display: block;
  592. margin: 5px 0;
  593. }
  594. #apps-list.store .app-name, #apps-list.store .app-image * {
  595. cursor: pointer;
  596. }
  597. #apps-list.store .app-summary {
  598. opacity: 0.7;
  599. }
  600. #apps-list.store .app-image-icon .icon-settings-dark {
  601. width: 100%;
  602. height: 150px;
  603. background-size: 45px;
  604. opacity: 0.5;
  605. }
  606. #apps-list.store .app-score-image {
  607. height: 14px;
  608. }
  609. #apps-list.store .actions {
  610. margin-top: 10px;
  611. }
  612. #app-sidebar #app-details-view h2 .icon-settings-dark,
  613. #app-sidebar #app-details-view h2 svg {
  614. display: inline-block;
  615. width: 16px;
  616. height: 16px;
  617. margin-right: 10px;
  618. opacity: 0.7;
  619. }
  620. #app-sidebar #app-details-view .app-level {
  621. clear: right;
  622. width: 100%;
  623. }
  624. #app-sidebar #app-details-view .app-level .supported,
  625. #app-sidebar #app-details-view .app-level .official {
  626. vertical-align: top;
  627. }
  628. #app-sidebar #app-details-view .app-level .app-score-image {
  629. float: right;
  630. }
  631. #app-sidebar #app-details-view .app-author, #app-sidebar #app-details-view .app-licence {
  632. color: var(--color-text-maxcontrast);
  633. }
  634. #app-sidebar #app-details-view .app-dependencies {
  635. margin: 10px 0;
  636. }
  637. #app-sidebar #app-details-view .app-description p {
  638. margin: 10px 0;
  639. }
  640. #app-sidebar #app-details-view .close {
  641. position: absolute;
  642. top: 0;
  643. right: 0;
  644. padding: 14px;
  645. opacity: 0.5;
  646. z-index: 1;
  647. width: 44px;
  648. height: 44px;
  649. }
  650. #app-sidebar #app-details-view .actions {
  651. display: flex;
  652. align-items: center;
  653. }
  654. #app-sidebar #app-details-view .actions .app-groups {
  655. padding: 5px;
  656. }
  657. #app-sidebar #app-details-view .appslink {
  658. text-decoration: underline;
  659. margin-right: 5px;
  660. }
  661. #app-sidebar #app-details-view .app-level,
  662. #app-sidebar #app-details-view .actions,
  663. #app-sidebar #app-details-view .documentation,
  664. #app-sidebar #app-details-view .app-dependencies,
  665. #app-sidebar #app-details-view .app-description {
  666. margin: 20px 0;
  667. }
  668. @media only screen and (min-width: 1601px) {
  669. .store .section {
  670. width: 25%;
  671. }
  672. .with-app-sidebar .store .section {
  673. width: 33%;
  674. }
  675. }
  676. @media only screen and (max-width: 1600px) {
  677. .store .section {
  678. width: 25%;
  679. }
  680. .with-app-sidebar .store .section {
  681. width: 33%;
  682. }
  683. }
  684. @media only screen and (max-width: 1400px) {
  685. .store .section {
  686. width: 33%;
  687. }
  688. .with-app-sidebar .store .section {
  689. width: 50%;
  690. }
  691. }
  692. @media only screen and (max-width: 900px) {
  693. .store .section {
  694. width: 50%;
  695. }
  696. .with-app-sidebar .store .section {
  697. width: 100%;
  698. }
  699. }
  700. @media only screen and (max-width: 1024px) {
  701. .store .section {
  702. width: 50%;
  703. }
  704. }
  705. @media only screen and (max-width: 480px) {
  706. .store .section {
  707. width: 100%;
  708. }
  709. }
  710. /* hide app version and level on narrower screens */
  711. @media only screen and (max-width: 900px) {
  712. .apps-list.installed .app-version, .apps-list.installed .app-level {
  713. display: none !important;
  714. }
  715. }
  716. @media only screen and (max-width: 500px) {
  717. .apps-list.installed .app-groups {
  718. display: none !important;
  719. }
  720. }
  721. .section {
  722. margin-bottom: 0;
  723. /* section divider lines, none needed for last one */
  724. /* correctly display help icons next to headings */
  725. }
  726. .section:not(:last-child) {
  727. border-bottom: 1px solid var(--color-border);
  728. }
  729. .section h2 {
  730. margin-bottom: 22px;
  731. }
  732. .section h2 .icon-info {
  733. padding: 6px 20px;
  734. vertical-align: text-bottom;
  735. display: inline-block;
  736. }
  737. .followupsection {
  738. display: block;
  739. padding: 0 30px 30px 30px;
  740. }
  741. .app-image {
  742. position: relative;
  743. height: 150px;
  744. opacity: 1;
  745. overflow: hidden;
  746. }
  747. .app-name, .app-version, .app-score, .app-level {
  748. display: inline-block;
  749. }
  750. .app-description-toggle-show, .app-description-toggle-hide {
  751. clear: both;
  752. padding: 7px 0;
  753. cursor: pointer;
  754. opacity: 0.5;
  755. }
  756. .app-description-container {
  757. clear: both;
  758. position: relative;
  759. top: 7px;
  760. }
  761. .app-description {
  762. clear: both;
  763. }
  764. #app-category-1 {
  765. margin-bottom: 18px;
  766. }
  767. /* capitalize 'Other' category */
  768. #app-category-925 {
  769. text-transform: capitalize;
  770. }
  771. .app-dependencies {
  772. color: #ce3702;
  773. }
  774. .missing-dependencies {
  775. list-style: initial;
  776. list-style-type: initial;
  777. list-style-position: inside;
  778. }
  779. .apps-list {
  780. display: flex;
  781. flex-wrap: wrap;
  782. align-content: flex-start;
  783. /* Bundle header */
  784. }
  785. .apps-list .section {
  786. cursor: pointer;
  787. }
  788. .apps-list .app-list-move {
  789. transition: transform 1s;
  790. }
  791. .apps-list #app-list-update-all {
  792. margin-left: 10px;
  793. }
  794. .apps-list .toolbar {
  795. height: 60px;
  796. padding: 8px;
  797. padding-left: 60px;
  798. width: 100%;
  799. background-color: var(--color-main-background);
  800. position: sticky;
  801. top: 0;
  802. z-index: 1;
  803. display: flex;
  804. align-items: center;
  805. }
  806. .apps-list.installed {
  807. margin-bottom: 100px;
  808. }
  809. .apps-list.installed .apps-list-container {
  810. display: table;
  811. width: 100%;
  812. height: auto;
  813. margin-top: 60px;
  814. }
  815. .apps-list.installed .section {
  816. display: table-row;
  817. padding: 0;
  818. margin: 0;
  819. }
  820. .apps-list.installed .section > * {
  821. display: table-cell;
  822. height: initial;
  823. vertical-align: middle;
  824. float: none;
  825. border-bottom: 1px solid var(--color-border);
  826. padding: 6px;
  827. box-sizing: border-box;
  828. }
  829. .apps-list.installed .section.selected {
  830. background-color: var(--color-background-dark);
  831. }
  832. .apps-list.installed .groups-enable {
  833. margin-top: 0;
  834. }
  835. .apps-list.installed .groups-enable label {
  836. margin-right: 3px;
  837. }
  838. .apps-list.installed .app-image {
  839. width: 44px;
  840. height: auto;
  841. text-align: right;
  842. }
  843. .apps-list.installed .app-image-icon svg,
  844. .apps-list.installed .app-image-icon .icon-settings-dark {
  845. margin-top: 5px;
  846. width: 20px;
  847. height: 20px;
  848. opacity: 0.5;
  849. background-size: cover;
  850. display: inline-block;
  851. }
  852. .apps-list.installed .actions {
  853. text-align: right;
  854. }
  855. .apps-list.installed .actions .icon-loading-small {
  856. display: inline-block;
  857. top: 4px;
  858. margin-right: 10px;
  859. }
  860. .apps-list:not(.installed) .app-image-icon svg {
  861. position: absolute;
  862. bottom: 43px;
  863. /* position halfway vertically */
  864. width: 64px;
  865. height: 64px;
  866. opacity: 0.1;
  867. }
  868. .apps-list.hidden {
  869. display: none;
  870. }
  871. .apps-list .section {
  872. position: relative;
  873. flex: 0 0 auto;
  874. }
  875. .apps-list .section h2.app-name {
  876. display: block;
  877. margin: 8px 0;
  878. }
  879. .apps-list .section:hover {
  880. background-color: var(--color-background-dark);
  881. }
  882. .apps-list .app-description p {
  883. margin: 10px 0;
  884. }
  885. .apps-list .app-description ul {
  886. list-style: disc;
  887. }
  888. .apps-list .app-description ol {
  889. list-style: decimal;
  890. }
  891. .apps-list .app-description ol ol, .apps-list .app-description ol ul {
  892. padding-left: 15px;
  893. }
  894. .apps-list .app-description > ul, .apps-list .app-description > ol {
  895. margin-left: 19px;
  896. }
  897. .apps-list .app-description ul ol, .apps-list .app-description ul ul {
  898. padding-left: 15px;
  899. }
  900. .apps-list .apps-header {
  901. display: table-row;
  902. position: relative;
  903. }
  904. .apps-list .apps-header div {
  905. display: table-cell;
  906. height: 70px;
  907. }
  908. .apps-list .apps-header h2 {
  909. display: table-cell;
  910. position: absolute;
  911. padding-left: 6px;
  912. padding-top: 15px;
  913. }
  914. .apps-list .apps-header h2 .enable {
  915. position: relative;
  916. top: -1px;
  917. margin-left: 12px;
  918. }
  919. .apps-list .apps-header h2 + .section {
  920. margin-top: 50px;
  921. }
  922. #apps-list-search .section h2 {
  923. margin-bottom: 0;
  924. }
  925. /* LOG */
  926. #log {
  927. white-space: normal;
  928. margin-bottom: 14px;
  929. }
  930. #lessLog {
  931. display: none;
  932. }
  933. table.grid td.date {
  934. white-space: nowrap;
  935. }
  936. #log-section p {
  937. margin-top: 20px;
  938. }
  939. #security-warning-state-ok span,
  940. #security-warning-state-warning span,
  941. #security-warning-state-failure span,
  942. #security-warning-state-loading span {
  943. vertical-align: middle;
  944. }
  945. #security-warning-state-ok span.message,
  946. #security-warning-state-warning span.message,
  947. #security-warning-state-failure span.message,
  948. #security-warning-state-loading span.message {
  949. padding: 12px;
  950. }
  951. #security-warning-state-ok span.icon,
  952. #security-warning-state-warning span.icon,
  953. #security-warning-state-failure span.icon,
  954. #security-warning-state-loading span.icon {
  955. width: 32px;
  956. height: 32px;
  957. background-position: center center;
  958. display: inline-block;
  959. border-radius: 50%;
  960. }
  961. #security-warning-state-ok span.icon-checkmark-white,
  962. #security-warning-state-warning span.icon-checkmark-white,
  963. #security-warning-state-failure span.icon-checkmark-white,
  964. #security-warning-state-loading span.icon-checkmark-white {
  965. background-color: var(--color-success);
  966. }
  967. #security-warning-state-ok span.icon-error-white,
  968. #security-warning-state-warning span.icon-error-white,
  969. #security-warning-state-failure span.icon-error-white,
  970. #security-warning-state-loading span.icon-error-white {
  971. background-color: var(--color-warning);
  972. }
  973. #security-warning-state-ok span.icon-close-white,
  974. #security-warning-state-warning span.icon-close-white,
  975. #security-warning-state-failure span.icon-close-white,
  976. #security-warning-state-loading span.icon-close-white {
  977. background-color: var(--color-error);
  978. }
  979. #shareAPI p {
  980. padding-bottom: 0.8em;
  981. }
  982. #shareAPI input#shareapiExpireAfterNDays {
  983. width: 40px;
  984. }
  985. #shareAPI .indent {
  986. padding-left: 28px;
  987. }
  988. #shareAPI .double-indent {
  989. padding-left: 56px;
  990. }
  991. #shareAPI .nocheckbox {
  992. padding-left: 20px;
  993. }
  994. #shareApiDefaultPermissionsSection label {
  995. margin-right: 20px;
  996. }
  997. #fileSharingSettings h3 {
  998. display: inline-block;
  999. }
  1000. #publicShareDisclaimerText {
  1001. width: calc(100% - 23px);
  1002. /* 20 px left margin, 3 px right margin */
  1003. max-width: 600px;
  1004. height: 150px;
  1005. margin-left: 20px;
  1006. box-sizing: border-box;
  1007. }
  1008. /* correctly display help icons next to headings */
  1009. .icon-info {
  1010. padding: 11px 20px;
  1011. vertical-align: text-bottom;
  1012. opacity: 0.5;
  1013. }
  1014. #two-factor-auth h2,
  1015. #shareAPI h2,
  1016. #mail_general_settings h2 {
  1017. display: inline-block;
  1018. }
  1019. .mail_settings p label:first-child {
  1020. display: inline-block;
  1021. width: 300px;
  1022. text-align: right;
  1023. }
  1024. .mail_settings p select:nth-child(2),
  1025. .mail_settings p input:not([type=button]) {
  1026. width: 143px;
  1027. }
  1028. #mail_smtpport {
  1029. width: 60px;
  1030. }
  1031. .cronlog {
  1032. margin-left: 10px;
  1033. }
  1034. .status {
  1035. display: inline-block;
  1036. height: 16px;
  1037. width: 16px;
  1038. vertical-align: text-bottom;
  1039. }
  1040. .status.success {
  1041. border-radius: 50%;
  1042. }
  1043. #selectGroups select {
  1044. box-sizing: border-box;
  1045. display: inline-block;
  1046. height: 36px;
  1047. padding: 7px 10px;
  1048. }
  1049. #log .log-message {
  1050. word-break: break-all;
  1051. min-width: 180px;
  1052. }
  1053. span.success {
  1054. background-color: var(--color-success);
  1055. border-radius: var(--border-radius);
  1056. }
  1057. span.error {
  1058. background-color: var(--color-error);
  1059. }
  1060. span.indeterminate {
  1061. background-color: var(--color-warning);
  1062. border-radius: 40% 0;
  1063. }
  1064. /* OPERA hack for strengthify*/
  1065. doesnotexist:-o-prefocus, .strengthify-wrapper {
  1066. left: 185px;
  1067. width: 129px;
  1068. }
  1069. .trusted-domain-warning {
  1070. color: #fff;
  1071. padding: 5px;
  1072. background: #ce3702;
  1073. border-radius: 5px;
  1074. font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace;
  1075. }
  1076. #postsetupchecks ul {
  1077. margin-left: 44px;
  1078. list-style: disc;
  1079. }
  1080. #postsetupchecks ul li {
  1081. margin: 10px 0;
  1082. }
  1083. #postsetupchecks ul ul {
  1084. list-style: circle;
  1085. }
  1086. #postsetupchecks .loading {
  1087. height: 50px;
  1088. background-position: left center;
  1089. }
  1090. #postsetupchecks .errors, #postsetupchecks .errors a {
  1091. color: var(--color-error);
  1092. }
  1093. #postsetupchecks .warnings, #postsetupchecks .warnings a {
  1094. color: var(--color-warning);
  1095. }
  1096. #postsetupchecks .hint {
  1097. margin: 20px 0;
  1098. }
  1099. #security-warning a {
  1100. text-decoration: underline;
  1101. }
  1102. #security-warning .extra-top-margin {
  1103. margin-top: 12px;
  1104. }
  1105. #admin-tips li {
  1106. list-style: initial;
  1107. }
  1108. #admin-tips li a {
  1109. display: inline-block;
  1110. padding: 3px 0;
  1111. }
  1112. #warning {
  1113. color: red;
  1114. }
  1115. .settings-hint {
  1116. margin-top: -12px;
  1117. margin-bottom: 12px;
  1118. opacity: 0.7;
  1119. }
  1120. /* USERS LIST -------------------------------------------------------------- */
  1121. #body-settings #app-content.user-list-grid {
  1122. display: grid;
  1123. grid-column-gap: 20px;
  1124. grid-auto-rows: minmax(60px, max-content);
  1125. }
  1126. #body-settings #app-content.user-list-grid .row {
  1127. display: flex;
  1128. display: grid;
  1129. min-height: 60px;
  1130. grid-row-start: span 1;
  1131. grid-gap: 3px;
  1132. align-items: center;
  1133. /* let's define the column until storage path,
  1134. what follows will be manually defined */
  1135. grid-template-columns: 44px minmax(190px, 1fr) minmax(160px, 1fr) minmax(160px, 1fr) minmax(240px, 1fr) minmax(240px, 1fr) repeat(auto-fit, minmax(160px, 1fr));
  1136. border-bottom: var(--color-border) 1px solid;
  1137. /* grid col width */
  1138. /* various */
  1139. }
  1140. #body-settings #app-content.user-list-grid .row.disabled {
  1141. opacity: 0.5;
  1142. }
  1143. #body-settings #app-content.user-list-grid .row .name,
  1144. #body-settings #app-content.user-list-grid .row .password,
  1145. #body-settings #app-content.user-list-grid .row .mailAddress,
  1146. #body-settings #app-content.user-list-grid .row .languages,
  1147. #body-settings #app-content.user-list-grid .row .storageLocation,
  1148. #body-settings #app-content.user-list-grid .row .userBackend,
  1149. #body-settings #app-content.user-list-grid .row .lastLogin {
  1150. min-width: 160px;
  1151. }
  1152. #body-settings #app-content.user-list-grid .row .name doesnotexist:-o-prefocus, #body-settings #app-content.user-list-grid .row .name .strengthify-wrapper,
  1153. #body-settings #app-content.user-list-grid .row .password doesnotexist:-o-prefocus,
  1154. #body-settings #app-content.user-list-grid .row .password .strengthify-wrapper,
  1155. #body-settings #app-content.user-list-grid .row .mailAddress doesnotexist:-o-prefocus,
  1156. #body-settings #app-content.user-list-grid .row .mailAddress .strengthify-wrapper,
  1157. #body-settings #app-content.user-list-grid .row .languages doesnotexist:-o-prefocus,
  1158. #body-settings #app-content.user-list-grid .row .languages .strengthify-wrapper,
  1159. #body-settings #app-content.user-list-grid .row .storageLocation doesnotexist:-o-prefocus,
  1160. #body-settings #app-content.user-list-grid .row .storageLocation .strengthify-wrapper,
  1161. #body-settings #app-content.user-list-grid .row .userBackend doesnotexist:-o-prefocus,
  1162. #body-settings #app-content.user-list-grid .row .userBackend .strengthify-wrapper,
  1163. #body-settings #app-content.user-list-grid .row .lastLogin doesnotexist:-o-prefocus,
  1164. #body-settings #app-content.user-list-grid .row .lastLogin .strengthify-wrapper {
  1165. color: var(--color-text-dark);
  1166. vertical-align: baseline;
  1167. text-overflow: ellipsis;
  1168. }
  1169. #body-settings #app-content.user-list-grid .row:not(.row--editable).name, #body-settings #app-content.user-list-grid .row:not(.row--editable).password, #body-settings #app-content.user-list-grid .row:not(.row--editable).displayName, #body-settings #app-content.user-list-grid .row:not(.row--editable).mailAddress, #body-settings #app-content.user-list-grid .row:not(.row--editable).userBackend, #body-settings #app-content.user-list-grid .row:not(.row--editable).languages {
  1170. overflow: hidden;
  1171. }
  1172. #body-settings #app-content.user-list-grid .row .groups,
  1173. #body-settings #app-content.user-list-grid .row .subadmins,
  1174. #body-settings #app-content.user-list-grid .row .quota {
  1175. min-width: 160px;
  1176. }
  1177. #body-settings #app-content.user-list-grid .row .groups .multiselect,
  1178. #body-settings #app-content.user-list-grid .row .subadmins .multiselect,
  1179. #body-settings #app-content.user-list-grid .row .quota .multiselect {
  1180. width: 100%;
  1181. color: var(--color-text-dark);
  1182. vertical-align: baseline;
  1183. }
  1184. #body-settings #app-content.user-list-grid .row .obfuscated {
  1185. width: 400px;
  1186. opacity: 0.7;
  1187. }
  1188. #body-settings #app-content.user-list-grid .row .userActions {
  1189. display: flex;
  1190. justify-content: flex-end;
  1191. position: sticky;
  1192. right: 0px;
  1193. min-width: 88px;
  1194. background-color: var(--color-main-background);
  1195. }
  1196. #body-settings #app-content.user-list-grid .row .subtitle {
  1197. color: var(--color-text-maxcontrast);
  1198. vertical-align: baseline;
  1199. }
  1200. #body-settings #app-content.user-list-grid .row#grid-header {
  1201. position: sticky;
  1202. align-self: normal;
  1203. background-color: var(--color-main-background);
  1204. z-index: 100;
  1205. /* above multiselect */
  1206. top: 0;
  1207. }
  1208. #body-settings #app-content.user-list-grid .row#grid-header.sticky {
  1209. box-shadow: 0 -2px 10px 1px var(--color-box-shadow);
  1210. }
  1211. #body-settings #app-content.user-list-grid .row#grid-header {
  1212. color: var(--color-text-maxcontrast);
  1213. border-bottom-width: thin;
  1214. }
  1215. #body-settings #app-content.user-list-grid .row#grid-header #headerDisplayName,
  1216. #body-settings #app-content.user-list-grid .row#grid-header #headerPassword,
  1217. #body-settings #app-content.user-list-grid .row#grid-header #headerAddress,
  1218. #body-settings #app-content.user-list-grid .row#grid-header #headerGroups,
  1219. #body-settings #app-content.user-list-grid .row#grid-header #headerSubAdmins,
  1220. #body-settings #app-content.user-list-grid .row#grid-header #theHeaderUserBackend,
  1221. #body-settings #app-content.user-list-grid .row#grid-header #theHeaderLastLogin,
  1222. #body-settings #app-content.user-list-grid .row#grid-header #headerQuota,
  1223. #body-settings #app-content.user-list-grid .row#grid-header #theHeaderStorageLocation,
  1224. #body-settings #app-content.user-list-grid .row#grid-header #headerLanguages {
  1225. /* Line up header text with column content for when there’s inputs */
  1226. padding-left: 7px;
  1227. text-transform: none;
  1228. color: var(--color-text-maxcontrast);
  1229. vertical-align: baseline;
  1230. }
  1231. #body-settings #app-content.user-list-grid .row:hover input:not([type=submit]):not(:focus):not(:active) {
  1232. border-color: var(--color-border) !important;
  1233. }
  1234. #body-settings #app-content.user-list-grid .row:hover:not(#grid-header) {
  1235. box-shadow: 5px 0 0 var(--color-primary-element) inset;
  1236. }
  1237. #body-settings #app-content.user-list-grid .row > form {
  1238. width: 100%;
  1239. }
  1240. #body-settings #app-content.user-list-grid .row > div,
  1241. #body-settings #app-content.user-list-grid .row > .displayName > form,
  1242. #body-settings #app-content.user-list-grid .row > form {
  1243. grid-row: 1;
  1244. display: inline-flex;
  1245. color: var(--color-text-lighter);
  1246. flex-grow: 1;
  1247. /* inputs like mail, username, password */
  1248. /* Fill the grid cell */
  1249. }
  1250. #body-settings #app-content.user-list-grid .row > div > input:not(:focus):not(:active),
  1251. #body-settings #app-content.user-list-grid .row > .displayName > form > input:not(:focus):not(:active),
  1252. #body-settings #app-content.user-list-grid .row > form > input:not(:focus):not(:active) {
  1253. border-color: transparent;
  1254. cursor: pointer;
  1255. }
  1256. #body-settings #app-content.user-list-grid .row > div > input:focus + .icon-confirm, #body-settings #app-content.user-list-grid .row > div > input:active + .icon-confirm,
  1257. #body-settings #app-content.user-list-grid .row > .displayName > form > input:focus + .icon-confirm,
  1258. #body-settings #app-content.user-list-grid .row > .displayName > form > input:active + .icon-confirm,
  1259. #body-settings #app-content.user-list-grid .row > form > input:focus + .icon-confirm,
  1260. #body-settings #app-content.user-list-grid .row > form > input:active + .icon-confirm {
  1261. display: block !important;
  1262. }
  1263. #body-settings #app-content.user-list-grid .row > div:not(.userActions) > input:not([type=submit]),
  1264. #body-settings #app-content.user-list-grid .row > .displayName > form:not(.userActions) > input:not([type=submit]),
  1265. #body-settings #app-content.user-list-grid .row > form:not(.userActions) > input:not([type=submit]) {
  1266. width: 100%;
  1267. min-width: 0;
  1268. }
  1269. #body-settings #app-content.user-list-grid .row > div.name,
  1270. #body-settings #app-content.user-list-grid .row > .displayName > form.name,
  1271. #body-settings #app-content.user-list-grid .row > form.name {
  1272. word-break: break-all;
  1273. }
  1274. #body-settings #app-content.user-list-grid .row > div.displayName > input, #body-settings #app-content.user-list-grid .row > div.mailAddress > input,
  1275. #body-settings #app-content.user-list-grid .row > .displayName > form.displayName > input,
  1276. #body-settings #app-content.user-list-grid .row > .displayName > form.mailAddress > input,
  1277. #body-settings #app-content.user-list-grid .row > form.displayName > input,
  1278. #body-settings #app-content.user-list-grid .row > form.mailAddress > input {
  1279. text-overflow: ellipsis;
  1280. flex-grow: 1;
  1281. }
  1282. #body-settings #app-content.user-list-grid .row > div.name, #body-settings #app-content.user-list-grid .row > div.userBackend,
  1283. #body-settings #app-content.user-list-grid .row > .displayName > form.name,
  1284. #body-settings #app-content.user-list-grid .row > .displayName > form.userBackend,
  1285. #body-settings #app-content.user-list-grid .row > form.name,
  1286. #body-settings #app-content.user-list-grid .row > form.userBackend {
  1287. /* better multi-line visual */
  1288. line-height: 1.3em;
  1289. max-height: 100%;
  1290. overflow: hidden;
  1291. /* not supported by all browsers
  1292. so we keep the overflow hidden
  1293. as a fallback */
  1294. text-overflow: ellipsis;
  1295. display: -webkit-box;
  1296. -webkit-line-clamp: 2;
  1297. -webkit-box-orient: vertical;
  1298. }
  1299. #body-settings #app-content.user-list-grid .row > div.name .subtitle,
  1300. #body-settings #app-content.user-list-grid .row > .displayName > form.name .subtitle,
  1301. #body-settings #app-content.user-list-grid .row > form.name .subtitle {
  1302. color: var(--color-main-text);
  1303. }
  1304. #body-settings #app-content.user-list-grid .row > div.quota,
  1305. #body-settings #app-content.user-list-grid .row > .displayName > form.quota,
  1306. #body-settings #app-content.user-list-grid .row > form.quota {
  1307. display: flex;
  1308. justify-content: left;
  1309. white-space: nowrap;
  1310. position: relative;
  1311. }
  1312. #body-settings #app-content.user-list-grid .row > div.quota progress,
  1313. #body-settings #app-content.user-list-grid .row > .displayName > form.quota progress,
  1314. #body-settings #app-content.user-list-grid .row > form.quota progress {
  1315. width: 150px;
  1316. margin-top: 35px;
  1317. height: 3px;
  1318. }
  1319. #body-settings #app-content.user-list-grid .row > div .icon-confirm,
  1320. #body-settings #app-content.user-list-grid .row > .displayName > form .icon-confirm,
  1321. #body-settings #app-content.user-list-grid .row > form .icon-confirm {
  1322. flex: 0 0 auto;
  1323. cursor: pointer;
  1324. }
  1325. #body-settings #app-content.user-list-grid .row > div .icon-confirm:not(:active),
  1326. #body-settings #app-content.user-list-grid .row > .displayName > form .icon-confirm:not(:active),
  1327. #body-settings #app-content.user-list-grid .row > form .icon-confirm:not(:active) {
  1328. display: none;
  1329. }
  1330. #body-settings #app-content.user-list-grid .row > div.avatar,
  1331. #body-settings #app-content.user-list-grid .row > .displayName > form.avatar,
  1332. #body-settings #app-content.user-list-grid .row > form.avatar {
  1333. height: 32px;
  1334. width: 32px;
  1335. margin: 6px;
  1336. }
  1337. #body-settings #app-content.user-list-grid .row > div.avatar img,
  1338. #body-settings #app-content.user-list-grid .row > .displayName > form.avatar img,
  1339. #body-settings #app-content.user-list-grid .row > form.avatar img {
  1340. display: block;
  1341. }
  1342. #body-settings #app-content.user-list-grid .row > div.userActions,
  1343. #body-settings #app-content.user-list-grid .row > .displayName > form.userActions,
  1344. #body-settings #app-content.user-list-grid .row > form.userActions {
  1345. display: flex;
  1346. justify-content: flex-end;
  1347. }
  1348. #body-settings #app-content.user-list-grid .row > div.userActions #newsubmit,
  1349. #body-settings #app-content.user-list-grid .row > .displayName > form.userActions #newsubmit,
  1350. #body-settings #app-content.user-list-grid .row > form.userActions #newsubmit {
  1351. width: 100%;
  1352. }
  1353. #body-settings #app-content.user-list-grid .row > div.userActions .toggleUserActions,
  1354. #body-settings #app-content.user-list-grid .row > .displayName > form.userActions .toggleUserActions,
  1355. #body-settings #app-content.user-list-grid .row > form.userActions .toggleUserActions {
  1356. position: relative;
  1357. display: flex;
  1358. align-items: center;
  1359. background-color: var(--color-main-background);
  1360. }
  1361. #body-settings #app-content.user-list-grid .row > div.userActions .toggleUserActions .icon-more,
  1362. #body-settings #app-content.user-list-grid .row > .displayName > form.userActions .toggleUserActions .icon-more,
  1363. #body-settings #app-content.user-list-grid .row > form.userActions .toggleUserActions .icon-more {
  1364. width: 44px;
  1365. height: 44px;
  1366. opacity: 0.5;
  1367. cursor: pointer;
  1368. }
  1369. #body-settings #app-content.user-list-grid .row > div.userActions .toggleUserActions .icon-more:focus, #body-settings #app-content.user-list-grid .row > div.userActions .toggleUserActions .icon-more:hover, #body-settings #app-content.user-list-grid .row > div.userActions .toggleUserActions .icon-more:active,
  1370. #body-settings #app-content.user-list-grid .row > .displayName > form.userActions .toggleUserActions .icon-more:focus,
  1371. #body-settings #app-content.user-list-grid .row > .displayName > form.userActions .toggleUserActions .icon-more:hover,
  1372. #body-settings #app-content.user-list-grid .row > .displayName > form.userActions .toggleUserActions .icon-more:active,
  1373. #body-settings #app-content.user-list-grid .row > form.userActions .toggleUserActions .icon-more:focus,
  1374. #body-settings #app-content.user-list-grid .row > form.userActions .toggleUserActions .icon-more:hover,
  1375. #body-settings #app-content.user-list-grid .row > form.userActions .toggleUserActions .icon-more:active {
  1376. opacity: 0.7;
  1377. background-color: var(--color-background-dark);
  1378. }
  1379. #body-settings #app-content.user-list-grid .row > div.userActions .feedback,
  1380. #body-settings #app-content.user-list-grid .row > .displayName > form.userActions .feedback,
  1381. #body-settings #app-content.user-list-grid .row > form.userActions .feedback {
  1382. display: flex;
  1383. align-items: center;
  1384. white-space: nowrap;
  1385. transition: opacity 200ms ease-in-out;
  1386. }
  1387. #body-settings #app-content.user-list-grid .row > div.userActions .feedback .icon-checkmark,
  1388. #body-settings #app-content.user-list-grid .row > .displayName > form.userActions .feedback .icon-checkmark,
  1389. #body-settings #app-content.user-list-grid .row > form.userActions .feedback .icon-checkmark {
  1390. opacity: 0.5;
  1391. margin-right: 5px;
  1392. }
  1393. #body-settings #app-content.user-list-grid .row > div .multiselect.multiselect-vue,
  1394. #body-settings #app-content.user-list-grid .row > .displayName > form .multiselect.multiselect-vue,
  1395. #body-settings #app-content.user-list-grid .row > form .multiselect.multiselect-vue {
  1396. width: 100%;
  1397. }
  1398. #body-settings #app-content.user-list-grid .infinite-loading-container {
  1399. display: flex;
  1400. align-items: center;
  1401. justify-content: center;
  1402. grid-row-start: span 4;
  1403. }
  1404. #body-settings #app-content.user-list-grid .users-list-end {
  1405. opacity: 0.5;
  1406. user-select: none;
  1407. }
  1408. .animated {
  1409. animation: blink-animation 1s steps(5, start) 4;
  1410. }
  1411. @keyframes blink-animation {
  1412. to {
  1413. opacity: 0.6;
  1414. }
  1415. }
  1416. @-webkit-keyframes blink-animation {
  1417. to {
  1418. opacity: 1;
  1419. }
  1420. }
  1421. /*# sourceMappingURL=settings.css.map */