layouts.css 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933
  1. * {
  2. -webkit-box-sizing: unset;
  3. box-sizing: unset;
  4. }
  5. /* Fixed missing 'import nib' stylesheet reset and extra li bullet points
  6. * https://github.com/wekan/wekan/issues/4512#issuecomment-1129347536
  7. */
  8. a, abbr, acronym, address, applet, big, blockquote, body, caption, cite,
  9. code, dd, del, dfn, div, dl, dt, em, fieldset, form, h1, h2, h3, h4, h5,
  10. h6, html, iframe, img, ins, kbd, label, legend, li, object, ol, p, pre,
  11. q, s, samp, small, span, strike, strong, sub, sup,
  12. table, tbody, td, tfoot, th, thread, tr, tt, ul, var {
  13. margin: 0;
  14. padding: 0;
  15. outline: 0;
  16. font-weight: inherit;
  17. font-style: inherit;
  18. font-family: inherit;
  19. font-size: 100%;
  20. vertical-align: baseline;
  21. }
  22. .note-popover .popover-content .note-color-palette div .note-color-btn,
  23. .panel-heading.note-toolbar .note-color-palette div .note-color-btn {
  24. background: none;
  25. }
  26. a:focus {
  27. outline: unset;
  28. outline-offset: unset;
  29. }
  30. a:hover,
  31. a:focus {
  32. color: unset;
  33. text-decoration: unset;
  34. }
  35. .badge {
  36. display: unset;
  37. min-width: unset;
  38. padding: unset;
  39. font-size: unset;
  40. font-weight: unset;
  41. line-height: unset;
  42. color: unset;
  43. text-align: unset;
  44. white-space: unset;
  45. vertical-align: unset;
  46. background-color: unset;
  47. border-radius: unset;
  48. }
  49. html,
  50. body,
  51. input,
  52. select,
  53. textarea,
  54. button {
  55. font: clamp(14px, 2.5vw, 18px) Roboto, Poppins, "Helvetica Neue", Arial, Helvetica, sans-serif;
  56. line-height: 1.4;
  57. color: #4d4d4d;
  58. /* Improve text rendering */
  59. -webkit-font-smoothing: antialiased;
  60. -moz-osx-font-smoothing: grayscale;
  61. /* Better text selection */
  62. -webkit-user-select: text;
  63. user-select: text;
  64. }
  65. html {
  66. font-size: 100%;
  67. max-height: 100%;
  68. -webkit-user-select: text;
  69. user-select: text;
  70. -webkit-text-size-adjust: 100%;
  71. text-size-adjust: 100%;
  72. }
  73. body {
  74. background: #dedede;
  75. margin: 0;
  76. position: relative;
  77. z-index: 0;
  78. overflow-y: auto;
  79. display: flex;
  80. flex-direction: column;
  81. height: 100vh;
  82. }
  83. #content {
  84. position: relative;
  85. flex: 1;
  86. overflow-x: hidden;
  87. }
  88. #content .sk-spinner {
  89. margin-top: 30vh;
  90. }
  91. #content > .wrapper {
  92. margin-top: 1vh;
  93. padding: 2vh 2vw;
  94. }
  95. #modal {
  96. position: absolute;
  97. top: 0;
  98. bottom: 0;
  99. left: 0;
  100. right: 0;
  101. background: rgba(0,0,0,0.6);
  102. z-index: 100;
  103. overflow-y: auto;
  104. }
  105. #modal .modal-content {
  106. width: min(500px, 90vw);
  107. min-height: 20vh;
  108. margin: 5vh auto;
  109. padding: 2vh 2vw;
  110. border-radius: 0.5vw;
  111. background: #dedede;
  112. z-index: 110;
  113. }
  114. #modal .modal-content h2 {
  115. margin-bottom: 3vh;
  116. }
  117. #modal .modal-content .modal-close-btn {
  118. display: block;
  119. float: right;
  120. font-size: clamp(18px, 4vw, 24px);
  121. }
  122. #modal .modal-content-wide {
  123. width: min(800px, 95vw);
  124. min-height: 0px;
  125. margin: 5vh auto;
  126. padding: 2vh 2vw;
  127. border-radius: 0.5vw;
  128. background: #dedede;
  129. z-index: 110;
  130. }
  131. #modal .modal-content-wide h2 {
  132. margin-bottom: 3vh;
  133. }
  134. #modal .modal-content-wide .modal-close-btn {
  135. display: block;
  136. float: right;
  137. font-size: clamp(18px, 4vw, 24px);
  138. }
  139. h1 {
  140. font-size: clamp(18px, 4vw, 24px);
  141. line-height: 1.2em;
  142. margin: 0 0 1vh;
  143. }
  144. h2 {
  145. font-size: clamp(16px, 3.5vw, 20px);
  146. line-height: 1.2em;
  147. margin: 0 0 0.8vh;
  148. }
  149. h3,
  150. h4,
  151. h5,
  152. h6 {
  153. font-size: clamp(14px, 3vw, 18px);
  154. line-height: 1.25em;
  155. margin: 0 0 0.6vh;
  156. }
  157. .quiet,
  158. .quiet a {
  159. color: #8c8c8c;
  160. }
  161. .error,
  162. .error a {
  163. color: #eb3800;
  164. }
  165. .no-items-message {
  166. color: #666;
  167. margin: 4vh 0;
  168. text-align: center;
  169. }
  170. .warning {
  171. background: #f0ecdb;
  172. border-radius: 0.4vw;
  173. color: #aa8f09;
  174. padding: 1vh 1.2vw;
  175. }
  176. .warning a {
  177. color: #aa8f09;
  178. }
  179. .small {
  180. font-size: 0.8em;
  181. }
  182. a {
  183. color: inherit;
  184. cursor: pointer;
  185. text-decoration: none;
  186. }
  187. a.is-disabled,
  188. a.is-disabled:hover {
  189. cursor: default;
  190. text-decoration: none;
  191. }
  192. span a {
  193. text-decoration: underline;
  194. }
  195. strong {
  196. font-weight: bold;
  197. }
  198. p {
  199. -webkit-user-select: text;
  200. user-select: text;
  201. }
  202. p a {
  203. text-decoration: underline;
  204. word-wrap: break-word;
  205. }
  206. table,
  207. p {
  208. margin-bottom: 1vh;
  209. }
  210. pre {
  211. margin: 2vh 0;
  212. white-space: pre;
  213. max-height: 60vh;
  214. }
  215. pre,
  216. code,
  217. tt {
  218. font-family: lucida console, monospace;
  219. line-height: 1.3em;
  220. }
  221. blockquote {
  222. margin: 1vh 0 1vh 1vw;
  223. border-left: 1px solid #ccc;
  224. color: #666;
  225. padding: 0 0 0 1vw;
  226. }
  227. hr {
  228. height: 1px;
  229. border: 0;
  230. border: none;
  231. width: 100%;
  232. background: #dbdbdb;
  233. color: #dbdbdb;
  234. margin: 2vh 0;
  235. padding: 0;
  236. }
  237. table,
  238. td,
  239. th {
  240. vertical-align: top;
  241. border-top: 1px solid #ccc;
  242. border-left: 1px solid #ccc;
  243. }
  244. td,
  245. th {
  246. padding: 0.8vh 0.8vw;
  247. border-right: 1px solid #ccc;
  248. border-bottom: 1px solid #ccc;
  249. }
  250. th {
  251. font-weight: 700;
  252. }
  253. thead {
  254. background: #fff;
  255. background: linear-gradient(to bottom, #fff 0, #f0f0f0 100%);
  256. }
  257. tbody {
  258. background-color: #fff;
  259. }
  260. dl,
  261. dt {
  262. margin-bottom: 1vh;
  263. }
  264. dd {
  265. margin: 0 0 2vh 3vw;
  266. }
  267. kbd {
  268. padding: 0.2vh 0.5vw;
  269. margin: 0.5vh;
  270. font-weight: bold;
  271. background: #fafafa;
  272. border-radius: 0.4vw;
  273. border: 1px solid #e6e6e6;
  274. color: unset;
  275. box-shadow: 0px 0.3vh 0.5vh rgba(0,0,0,0.15);
  276. }
  277. .clear {
  278. clear: both;
  279. }
  280. .hide {
  281. display: none;
  282. }
  283. .show {
  284. display: block;
  285. }
  286. .bold {
  287. font-weight: 700;
  288. }
  289. .center {
  290. text-align: center;
  291. }
  292. .left {
  293. float: left;
  294. }
  295. .right {
  296. float: right;
  297. }
  298. .first {
  299. margin-left: 0;
  300. padding-left: 0;
  301. }
  302. .last {
  303. margin-right: 0;
  304. padding-right: 0;
  305. }
  306. .top {
  307. margin-top: 0;
  308. padding-top: 0;
  309. }
  310. .bottom {
  311. margin-bottom: 0;
  312. padding-bottom: 0;
  313. }
  314. .wrapper {
  315. width: calc(100% - 2vw);
  316. margin: 0 auto;
  317. }
  318. .relative {
  319. position: relative;
  320. }
  321. .block {
  322. display: block;
  323. }
  324. .inline {
  325. display: inline;
  326. }
  327. .inline-block {
  328. display: inline-block;
  329. }
  330. .pointer {
  331. cursor: pointer;
  332. }
  333. .ellip {
  334. overflow: hidden;
  335. text-overflow: ellipsis;
  336. white-space: nowrap;
  337. }
  338. .underline {
  339. text-decoration: underline;
  340. }
  341. .lowercase {
  342. text-transform: lowercase;
  343. }
  344. .invisible {
  345. visibility: hidden;
  346. }
  347. .wrapword {
  348. word-wrap: break-word;
  349. }
  350. .grab {
  351. cursor: grab;
  352. }
  353. .grabbing {
  354. cursor: grabbing;
  355. }
  356. .textcomplete-dropdown {
  357. z-index: 2000 !important;
  358. }
  359. .fa.fa-times-thin:before {
  360. content: '\00d7';
  361. }
  362. .fa.fa-globe.colorful,
  363. .fa.fa-bell.colorful {
  364. color: #4caf50;
  365. }
  366. .fa.fa-lock.colorful,
  367. .fa.fa-bell-slash.colorful {
  368. color: #f44336;
  369. }
  370. .fa.fa-eye.colorful {
  371. color: #4336f4;
  372. }
  373. .pop-over .pop-over-list li a:not(.disabled):hover .fa,
  374. .pop-over .pop-over-list li a:not(.disabled):hover .fa.colorful {
  375. color: #fff;
  376. }
  377. .pop-over .pop-over-list li a:not(.disabled):hover .fa:hover,
  378. .pop-over .pop-over-list li a:not(.disabled):hover .fa.colorful:hover {
  379. color: #fff;
  380. }
  381. a.fa,
  382. a i.fa {
  383. color: #a6a6a6;
  384. }
  385. a:not(.disabled):hover.fa,
  386. a:not(.disabled).is-active.fa,
  387. a:not(.disabled):hover i.fa,
  388. a:not(.disabled).is-active i.fa {
  389. color: #666;
  390. }
  391. .ui-draggable-dragging {
  392. z-index: 200;
  393. }
  394. .atMention {
  395. background: #dbdbdb;
  396. border-radius: 3px;
  397. padding: 1px 4px;
  398. margin: -1px 0;
  399. display: inline-block;
  400. }
  401. .atMention.me {
  402. background: #cfdfe8;
  403. }
  404. .big-message {
  405. display: block;
  406. margin: 10vh auto;
  407. text-align: center;
  408. max-width: min(600px, 90vw);
  409. }
  410. .big-message h1 {
  411. font-size: clamp(20px, 5vw, 28px);
  412. margin-bottom: 3vh;
  413. }
  414. .big-message p {
  415. font-size: clamp(16px, 3.5vw, 20px);
  416. line-height: 1.3;
  417. }
  418. .gutter {
  419. margin-left: 5vw;
  420. }
  421. .viewer {
  422. min-height: 2.5vh;
  423. display: block;
  424. word-wrap: break-word;
  425. }
  426. .viewer table {
  427. word-wrap: normal;
  428. word-break: normal;
  429. }
  430. .viewer ol {
  431. list-style-type: decimal;
  432. padding-left: 3vw;
  433. padding-bottom: 1.5vh;
  434. }
  435. .viewer ul {
  436. list-style-type: initial;
  437. padding-left: 3vw;
  438. padding-bottom: 1.5vh;
  439. }
  440. .viewer em {
  441. font-style: italic;
  442. }
  443. .viewer pre,
  444. .viewer code {
  445. padding: 10px 12px 7px;
  446. background: #dedede;
  447. overflow-y: auto;
  448. }
  449. .viewer a {
  450. text-decoration: underline;
  451. }
  452. .viewer a:hover {
  453. color: #333;
  454. }
  455. .basicTabs-container .tabs-content-container {
  456. padding: 0;
  457. padding-top: 15px;
  458. }
  459. .no-scrollbars {
  460. scrollbar-width: none;
  461. }
  462. .no-scrollbars::-webkit-scrollbar {
  463. display: none !important;
  464. }
  465. /* ========================================
  466. MOBILE & TABLET RESPONSIVE IMPROVEMENTS
  467. ======================================== */
  468. /* Mobile devices (up to 800px) and all iPhone models */
  469. @media screen and (max-width: 800px),
  470. screen and (max-device-width: 932px) and (-webkit-min-device-pixel-ratio: 3) and (orientation: landscape),
  471. screen and (max-device-width: 932px) and (-webkit-min-device-pixel-ratio: 3) and (orientation: portrait) {
  472. #content {
  473. margin: 1px 0px 0px 0px;
  474. height: calc(100% - 0px);
  475. /* Improve touch scrolling */
  476. -webkit-overflow-scrolling: touch;
  477. }
  478. #content > .wrapper {
  479. margin-top: 0px;
  480. padding: 8px;
  481. }
  482. .wrapper {
  483. height: calc(100% - 31px);
  484. margin: 0px;
  485. padding: 8px;
  486. }
  487. .panel-default {
  488. width: 95vw;
  489. max-width: 95vw;
  490. margin: 0 auto;
  491. }
  492. /* Improve touch targets */
  493. button, .btn, .js-toggle, .js-color-choice, .js-reaction, .close {
  494. min-height: 44px;
  495. min-width: 44px;
  496. padding: 12px 16px;
  497. font-size: 16px; /* Prevent zoom on iOS */
  498. touch-action: manipulation;
  499. }
  500. /* Form elements */
  501. input, select, textarea {
  502. font-size: 16px; /* Prevent zoom on iOS */
  503. padding: 12px;
  504. min-height: 44px;
  505. touch-action: manipulation;
  506. }
  507. /* Cards and lists */
  508. .minicard {
  509. min-height: 48px;
  510. padding: 12px;
  511. margin-bottom: 8px;
  512. touch-action: manipulation;
  513. }
  514. .list {
  515. margin: 0 8px;
  516. min-width: 280px;
  517. }
  518. /* Board canvas */
  519. .board-canvas {
  520. padding: 8px;
  521. overflow-x: auto;
  522. -webkit-overflow-scrolling: touch;
  523. }
  524. /* Header mobile layout */
  525. #header {
  526. padding: 8px;
  527. /* Keep top bar on a single row on small screens */
  528. flex-wrap: nowrap;
  529. align-items: center;
  530. gap: 8px;
  531. }
  532. #header-quick-access {
  533. /* Keep quick-access items in one row */
  534. display: flex;
  535. flex-direction: row;
  536. align-items: center;
  537. gap: 8px;
  538. width: 100%;
  539. }
  540. /* Hide elements that should move to the hamburger menu on mobile */
  541. #header-quick-access .header-quick-access-list,
  542. #header-quick-access #header-help {
  543. display: none !important;
  544. }
  545. /* Show only the home icon (hide the trailing text) on mobile */
  546. #header-quick-access .home-icon a {
  547. display: inline-flex;
  548. align-items: center;
  549. max-width: 28px; /* enough to display the icon */
  550. overflow: hidden;
  551. white-space: nowrap;
  552. }
  553. /* Hide text in home icon on mobile, show only icon */
  554. #header-quick-access .home-icon a span:not(.fa) {
  555. display: none !important;
  556. }
  557. /* Ensure proper spacing for mobile header elements */
  558. #header-quick-access .zoom-controls {
  559. margin-left: auto;
  560. margin-right: 8px;
  561. }
  562. .mobile-mode-toggle {
  563. margin-right: 8px;
  564. }
  565. #header-user-bar {
  566. margin-left: auto;
  567. }
  568. /* Ensure header elements don't wrap on very small screens */
  569. #header-quick-access {
  570. min-width: 0; /* Allow flexbox to shrink */
  571. }
  572. /* Make sure logo doesn't take too much space on mobile */
  573. #header-quick-access img {
  574. max-height: 24px;
  575. max-width: 120px;
  576. }
  577. /* Ensure zoom controls are compact on mobile */
  578. .zoom-controls .zoom-level {
  579. padding: 4px 8px;
  580. font-size: 12px;
  581. }
  582. /* Modal mobile optimization */
  583. #modal .modal-content,
  584. #modal .modal-content-wide {
  585. width: 95vw;
  586. max-width: 95vw;
  587. margin: 2vh auto;
  588. padding: 16px;
  589. max-height: 90vh;
  590. overflow-y: auto;
  591. }
  592. /* Table mobile optimization */
  593. table {
  594. font-size: 14px;
  595. width: 100%;
  596. display: block;
  597. overflow-x: auto;
  598. white-space: nowrap;
  599. -webkit-overflow-scrolling: touch;
  600. }
  601. /* Admin panel mobile optimization */
  602. .setting-content .content-body {
  603. flex-direction: column;
  604. gap: 16px;
  605. padding: 8px;
  606. }
  607. .setting-content .content-body .side-menu {
  608. width: 100%;
  609. order: 2;
  610. }
  611. .setting-content .content-body .main-body {
  612. order: 1;
  613. min-height: 60vh;
  614. overflow-x: auto;
  615. -webkit-overflow-scrolling: touch;
  616. }
  617. }
  618. /* Tablet devices (768px - 1024px) */
  619. @media screen and (min-width: 768px) and (max-width: 1024px) {
  620. #content > .wrapper {
  621. padding: 12px;
  622. }
  623. .wrapper {
  624. padding: 12px;
  625. }
  626. .panel-default {
  627. width: 90vw;
  628. max-width: 90vw;
  629. }
  630. /* Touch-friendly but more compact */
  631. button, .btn, .js-toggle, .js-color-choice, .js-reaction, .close {
  632. min-height: 48px;
  633. min-width: 48px;
  634. padding: 10px 14px;
  635. }
  636. .minicard {
  637. min-height: 40px;
  638. padding: 10px;
  639. }
  640. .list {
  641. margin: 0 12px;
  642. min-width: 300px;
  643. }
  644. .board-canvas {
  645. padding: 12px;
  646. }
  647. #header {
  648. padding: 12px 16px;
  649. }
  650. #modal .modal-content {
  651. width: 80vw;
  652. max-width: 600px;
  653. }
  654. #modal .modal-content-wide {
  655. width: 90vw;
  656. max-width: 800px;
  657. }
  658. .setting-content .content-body {
  659. gap: 20px;
  660. }
  661. .setting-content .content-body .side-menu {
  662. width: 250px;
  663. }
  664. }
  665. /* Large displays and digital signage (1920px+) */
  666. @media screen and (min-width: 1920px) {
  667. body {
  668. font-size: 18px;
  669. }
  670. button, .btn, .js-toggle, .js-color-choice, .js-reaction, .close {
  671. min-height: 56px;
  672. min-width: 56px;
  673. padding: 16px 20px;
  674. font-size: 18px;
  675. }
  676. .minicard {
  677. min-height: 56px;
  678. padding: 16px;
  679. font-size: 18px;
  680. }
  681. .list {
  682. margin: 0 8px;
  683. min-width: 360px;
  684. }
  685. .board-canvas {
  686. padding: 0;
  687. }
  688. #header {
  689. padding: 0 8px;
  690. }
  691. #content > .wrapper {
  692. padding: 0;
  693. }
  694. #modal .modal-content {
  695. width: 600px;
  696. }
  697. #modal .modal-content-wide {
  698. width: 1000px;
  699. }
  700. .setting-content .content-body {
  701. gap: 32px;
  702. }
  703. .setting-content .content-body .side-menu {
  704. width: 320px;
  705. }
  706. }
  707. .inline-input {
  708. height: 37px;
  709. margin: 8px 10px 0 0;
  710. width: 50px;
  711. }
  712. .select-authentication {
  713. width: 100%;
  714. }
  715. .textBelowCustomLoginLogo,
  716. .auth-layout {
  717. display: flex;
  718. flex-direction: column;
  719. align-items: center;
  720. justify-content: center;
  721. }
  722. .auth-layout .auth-dialog {
  723. margin: 0 !important;
  724. }
  725. .loadingText {
  726. text-align: center;
  727. }
  728. .lds-roller {
  729. display: block;
  730. margin: auto;
  731. position: relative;
  732. width: 64px;
  733. height: 64px;
  734. }
  735. .lds-roller div {
  736. animation: lds-roller 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite;
  737. transform-origin: 32px 32px;
  738. }
  739. .lds-roller div:after {
  740. content: " ";
  741. display: block;
  742. position: absolute;
  743. width: 6px;
  744. height: 6px;
  745. border-radius: 50%;
  746. background: #dedede;
  747. margin: -3px 0 0 -3px;
  748. }
  749. .lds-roller div:nth-child(1) {
  750. animation-delay: -0.036s;
  751. }
  752. .lds-roller div:nth-child(1):after {
  753. top: 50px;
  754. left: 50px;
  755. }
  756. .lds-roller div:nth-child(2) {
  757. animation-delay: -0.072s;
  758. }
  759. .lds-roller div:nth-child(2):after {
  760. top: 54px;
  761. left: 45px;
  762. }
  763. .lds-roller div:nth-child(3) {
  764. animation-delay: -0.108s;
  765. }
  766. .lds-roller div:nth-child(3):after {
  767. top: 57px;
  768. left: 39px;
  769. }
  770. .lds-roller div:nth-child(4) {
  771. animation-delay: -0.144s;
  772. }
  773. .lds-roller div:nth-child(4):after {
  774. top: 58px;
  775. left: 32px;
  776. }
  777. .lds-roller div:nth-child(5) {
  778. animation-delay: -0.18s;
  779. }
  780. .lds-roller div:nth-child(5):after {
  781. top: 57px;
  782. left: 25px;
  783. }
  784. .lds-roller div:nth-child(6) {
  785. animation-delay: -0.216s;
  786. }
  787. .lds-roller div:nth-child(6):after {
  788. top: 54px;
  789. left: 19px;
  790. }
  791. .lds-roller div:nth-child(7) {
  792. animation-delay: -0.252s;
  793. }
  794. .lds-roller div:nth-child(7):after {
  795. top: 50px;
  796. left: 14px;
  797. }
  798. .lds-roller div:nth-child(8) {
  799. animation-delay: -0.288s;
  800. }
  801. .lds-roller div:nth-child(8):after {
  802. top: 45px;
  803. left: 10px;
  804. }
  805. .at-link {
  806. color: #17683a;
  807. text-decoration: underline;
  808. text-decoration-color: #17683a;
  809. }
  810. .at-pwd-form, .at-sep, .at-oauth {
  811. display: none;
  812. }
  813. @-moz-keyframes fadeIn {
  814. from {
  815. opacity: 0;
  816. }
  817. }
  818. @-webkit-keyframes fadeIn {
  819. from {
  820. opacity: 0;
  821. }
  822. }
  823. @-o-keyframes fadeIn {
  824. from {
  825. opacity: 0;
  826. }
  827. }
  828. @keyframes fadeIn {
  829. from {
  830. opacity: 0;
  831. }
  832. }
  833. @-moz-keyframes flexGrowIn {
  834. from {
  835. height: 100%;
  836. }
  837. }
  838. @-webkit-keyframes flexGrowIn {
  839. from {
  840. height: 100%;
  841. }
  842. }
  843. @-o-keyframes flexGrowIn {
  844. from {
  845. height: 100%;
  846. }
  847. }
  848. @keyframes flexGrowIn {
  849. from {
  850. height: 100%;
  851. }
  852. }
  853. @-moz-keyframes lds-roller {
  854. 0% {
  855. transform: rotate(0deg);
  856. }
  857. 100% {
  858. transform: rotate(360deg);
  859. }
  860. }
  861. @-webkit-keyframes lds-roller {
  862. 0% {
  863. transform: rotate(0deg);
  864. }
  865. 100% {
  866. transform: rotate(360deg);
  867. }
  868. }
  869. @-o-keyframes lds-roller {
  870. 0% {
  871. transform: rotate(0deg);
  872. }
  873. 100% {
  874. transform: rotate(360deg);
  875. }
  876. }
  877. @keyframes lds-roller {
  878. 0% {
  879. transform: rotate(0deg);
  880. }
  881. 100% {
  882. transform: rotate(360deg);
  883. }
  884. }