You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1870 lines
31 KiB

  1. @use 'sass:math';
  2. $no-columns-breakpoint: 600px;
  3. $sidebar-width: 240px;
  4. $content-width: 840px;
  5. .admin-wrapper {
  6. display: flex;
  7. justify-content: center;
  8. width: 100%;
  9. min-height: 100vh;
  10. .sidebar-wrapper {
  11. min-height: 100vh;
  12. overflow: hidden;
  13. pointer-events: none;
  14. flex: 1 1 auto;
  15. &__inner {
  16. display: flex;
  17. justify-content: flex-end;
  18. background: $ui-base-color;
  19. height: 100%;
  20. }
  21. }
  22. .sidebar {
  23. width: $sidebar-width;
  24. padding: 0;
  25. pointer-events: auto;
  26. &__toggle {
  27. display: none;
  28. background: darken($ui-base-color, 4%);
  29. border-bottom: 1px solid lighten($ui-base-color, 4%);
  30. align-items: center;
  31. &__logo {
  32. flex: 1 1 auto;
  33. a {
  34. display: block;
  35. padding: 15px;
  36. }
  37. }
  38. &__icon {
  39. display: block;
  40. color: $darker-text-color;
  41. text-decoration: none;
  42. flex: 0 0 auto;
  43. font-size: 18px;
  44. padding: 10px;
  45. margin: 5px 10px;
  46. border-radius: 4px;
  47. &:focus {
  48. background: $ui-base-color;
  49. }
  50. .fa-times {
  51. display: none;
  52. }
  53. &.active {
  54. .fa-times {
  55. display: block;
  56. }
  57. .fa-bars {
  58. display: none;
  59. }
  60. }
  61. }
  62. }
  63. .logo {
  64. display: block;
  65. margin: 40px auto;
  66. width: 100px;
  67. height: 100px;
  68. }
  69. .logo--wordmark {
  70. display: inherit;
  71. margin: inherit;
  72. width: inherit;
  73. height: 25px;
  74. }
  75. @media screen and (max-width: $no-columns-breakpoint) {
  76. & > a:first-child {
  77. display: none;
  78. }
  79. }
  80. ul {
  81. list-style: none;
  82. border-radius: 4px 0 0 4px;
  83. overflow: hidden;
  84. margin-bottom: 20px;
  85. @media screen and (max-width: $no-columns-breakpoint) {
  86. margin-bottom: 0;
  87. }
  88. a {
  89. display: block;
  90. padding: 15px;
  91. color: $darker-text-color;
  92. text-decoration: none;
  93. transition: all 200ms linear;
  94. transition-property: color, background-color;
  95. border-radius: 4px 0 0 4px;
  96. white-space: nowrap;
  97. overflow: hidden;
  98. text-overflow: ellipsis;
  99. i.fa {
  100. margin-right: 5px;
  101. }
  102. &:hover {
  103. color: $primary-text-color;
  104. background-color: darken($ui-base-color, 5%);
  105. transition: all 100ms linear;
  106. transition-property: color, background-color;
  107. }
  108. &.selected {
  109. background: darken($ui-base-color, 2%);
  110. border-radius: 4px 0 0;
  111. }
  112. }
  113. ul {
  114. background: darken($ui-base-color, 4%);
  115. border-radius: 0 0 0 4px;
  116. margin: 0;
  117. a {
  118. border: 0;
  119. padding: 15px 35px;
  120. }
  121. }
  122. .simple-navigation-active-leaf a {
  123. color: $primary-text-color;
  124. background-color: darken($ui-highlight-color, 2%);
  125. border-bottom: 0;
  126. border-radius: 0;
  127. &:hover {
  128. background-color: $ui-highlight-color;
  129. }
  130. }
  131. }
  132. & > ul > .simple-navigation-active-leaf a {
  133. border-radius: 4px 0 0 4px;
  134. }
  135. }
  136. .content-wrapper {
  137. box-sizing: border-box;
  138. width: 100%;
  139. max-width: $content-width;
  140. flex: 1 1 auto;
  141. }
  142. @media screen and (max-width: $content-width + $sidebar-width) {
  143. .sidebar-wrapper--empty {
  144. display: none;
  145. }
  146. .sidebar-wrapper {
  147. width: $sidebar-width;
  148. flex: 0 0 auto;
  149. }
  150. }
  151. @media screen and (max-width: $no-columns-breakpoint) {
  152. .sidebar-wrapper {
  153. width: 100%;
  154. }
  155. }
  156. .content {
  157. padding: 55px 15px 20px 25px;
  158. @media screen and (max-width: $no-columns-breakpoint) {
  159. max-width: none;
  160. padding: 15px;
  161. padding-top: 30px;
  162. }
  163. &__heading {
  164. margin-bottom: 45px;
  165. &__row {
  166. display: flex;
  167. flex-wrap: wrap;
  168. align-items: center;
  169. justify-content: space-between;
  170. margin: -15px -15px 0 0;
  171. & > * {
  172. margin-top: 15px;
  173. margin-right: 15px;
  174. }
  175. }
  176. &__tabs {
  177. margin-top: 30px;
  178. width: 100%;
  179. & > div {
  180. display: flex;
  181. flex-wrap: wrap;
  182. gap: 5px;
  183. }
  184. a {
  185. font-size: 14px;
  186. display: inline-flex;
  187. align-items: center;
  188. padding: 7px 10px;
  189. border-radius: 4px;
  190. color: $darker-text-color;
  191. text-decoration: none;
  192. font-weight: 500;
  193. gap: 5px;
  194. white-space: nowrap;
  195. &:hover,
  196. &:focus,
  197. &:active {
  198. background: lighten($ui-base-color, 4%);
  199. }
  200. &.selected {
  201. font-weight: 700;
  202. color: $primary-text-color;
  203. background: $ui-highlight-color;
  204. &:hover,
  205. &:focus,
  206. &:active {
  207. background: lighten($ui-highlight-color, 4%);
  208. }
  209. }
  210. }
  211. }
  212. &__actions {
  213. display: inline-flex;
  214. flex-flow: wrap;
  215. gap: 5px;
  216. }
  217. h2 small {
  218. font-size: 12px;
  219. display: block;
  220. font-weight: 500;
  221. color: $darker-text-color;
  222. line-height: 18px;
  223. }
  224. @media screen and (max-width: $no-columns-breakpoint) {
  225. border-bottom: 0;
  226. padding-bottom: 0;
  227. }
  228. }
  229. h2 {
  230. color: $secondary-text-color;
  231. font-size: 24px;
  232. line-height: 36px;
  233. font-weight: 700;
  234. }
  235. h3 {
  236. color: $secondary-text-color;
  237. font-size: 20px;
  238. line-height: 28px;
  239. font-weight: 400;
  240. margin-bottom: 30px;
  241. }
  242. h4 {
  243. text-transform: uppercase;
  244. font-size: 13px;
  245. font-weight: 700;
  246. color: $darker-text-color;
  247. padding-bottom: 8px;
  248. margin-bottom: 8px;
  249. border-bottom: 1px solid lighten($ui-base-color, 8%);
  250. }
  251. h6 {
  252. font-size: 16px;
  253. color: $secondary-text-color;
  254. line-height: 28px;
  255. font-weight: 500;
  256. }
  257. .fields-group h6 {
  258. color: $primary-text-color;
  259. font-weight: 500;
  260. }
  261. .directory__tag > a,
  262. .directory__tag > div {
  263. box-shadow: none;
  264. }
  265. .directory__tag .table-action-link .fa {
  266. color: inherit;
  267. }
  268. .directory__tag h4 {
  269. font-size: 18px;
  270. font-weight: 700;
  271. color: $primary-text-color;
  272. text-transform: none;
  273. padding-bottom: 0;
  274. margin-bottom: 0;
  275. border-bottom: 0;
  276. }
  277. & > p {
  278. font-size: 14px;
  279. line-height: 21px;
  280. color: $secondary-text-color;
  281. margin-bottom: 20px;
  282. strong {
  283. color: $primary-text-color;
  284. font-weight: 500;
  285. @each $lang in $cjk-langs {
  286. &:lang(#{$lang}) {
  287. font-weight: 700;
  288. }
  289. }
  290. }
  291. }
  292. hr {
  293. width: 100%;
  294. height: 0;
  295. border: 0;
  296. border-bottom: 1px solid rgba($ui-base-lighter-color, 0.6);
  297. margin: 20px 0;
  298. &.spacer {
  299. height: 1px;
  300. border: 0;
  301. }
  302. }
  303. }
  304. @media screen and (max-width: $no-columns-breakpoint) {
  305. display: block;
  306. .sidebar-wrapper {
  307. min-height: 0;
  308. }
  309. .sidebar {
  310. width: 100%;
  311. padding: 0;
  312. height: auto;
  313. &__toggle {
  314. display: flex;
  315. }
  316. & > ul {
  317. display: none;
  318. &.visible {
  319. display: block;
  320. position: fixed;
  321. z-index: 10;
  322. width: 100%;
  323. height: calc(100vh - 56px);
  324. left: 0;
  325. bottom: 0;
  326. overflow-y: auto;
  327. background: $ui-base-color;
  328. }
  329. }
  330. ul a,
  331. ul ul a {
  332. border-radius: 0;
  333. border-bottom: 1px solid lighten($ui-base-color, 4%);
  334. transition: none;
  335. &:hover {
  336. transition: none;
  337. }
  338. }
  339. ul ul {
  340. border-radius: 0;
  341. }
  342. ul .simple-navigation-active-leaf a {
  343. border-bottom-color: $ui-highlight-color;
  344. }
  345. }
  346. }
  347. }
  348. hr.spacer {
  349. width: 100%;
  350. border: 0;
  351. margin: 20px 0;
  352. height: 1px;
  353. }
  354. body,
  355. .admin-wrapper .content {
  356. .muted-hint {
  357. color: $darker-text-color;
  358. a {
  359. color: $highlight-text-color;
  360. }
  361. }
  362. .positive-hint,
  363. .negative-hint,
  364. .neutral-hint {
  365. a {
  366. color: inherit;
  367. text-decoration: underline;
  368. &:focus,
  369. &:hover,
  370. &:active {
  371. text-decoration: none;
  372. }
  373. }
  374. }
  375. .positive-hint {
  376. color: $valid-value-color;
  377. font-weight: 500;
  378. }
  379. .negative-hint {
  380. color: $error-value-color;
  381. font-weight: 500;
  382. }
  383. .neutral-hint {
  384. color: $dark-text-color;
  385. font-weight: 500;
  386. }
  387. .warning-hint {
  388. color: $gold-star;
  389. font-weight: 500;
  390. }
  391. }
  392. .filters {
  393. display: flex;
  394. flex-wrap: wrap;
  395. .filter-subset {
  396. flex: 0 0 auto;
  397. margin: 0 40px 20px 0;
  398. &:last-child {
  399. margin-bottom: 30px;
  400. }
  401. ul {
  402. margin-top: 5px;
  403. list-style: none;
  404. li {
  405. display: inline-block;
  406. margin-right: 5px;
  407. }
  408. }
  409. & > div {
  410. display: flex;
  411. gap: 5px;
  412. }
  413. strong {
  414. font-weight: 500;
  415. text-transform: uppercase;
  416. font-size: 12px;
  417. @each $lang in $cjk-langs {
  418. &:lang(#{$lang}) {
  419. font-weight: 700;
  420. }
  421. }
  422. }
  423. &--with-select strong {
  424. display: block;
  425. margin-bottom: 10px;
  426. }
  427. a {
  428. display: inline-block;
  429. color: $darker-text-color;
  430. text-decoration: none;
  431. text-transform: uppercase;
  432. font-size: 12px;
  433. font-weight: 500;
  434. border-bottom: 2px solid $ui-base-color;
  435. &:hover {
  436. color: $primary-text-color;
  437. border-bottom: 2px solid lighten($ui-base-color, 5%);
  438. }
  439. &.selected {
  440. color: $highlight-text-color;
  441. border-bottom: 2px solid $ui-highlight-color;
  442. }
  443. }
  444. }
  445. }
  446. .flavour-screen {
  447. display: block;
  448. margin: 10px auto;
  449. max-width: 100%;
  450. }
  451. .flavour-description {
  452. display: block;
  453. font-size: 16px;
  454. margin: 10px 0;
  455. & > p {
  456. margin: 10px 0;
  457. }
  458. }
  459. .report-accounts {
  460. display: flex;
  461. flex-wrap: wrap;
  462. margin-bottom: 20px;
  463. }
  464. .report-accounts__item {
  465. display: flex;
  466. flex: 250px;
  467. flex-direction: column;
  468. margin: 0 5px;
  469. & > strong {
  470. display: block;
  471. margin: 0 0 10px -5px;
  472. font-weight: 500;
  473. font-size: 14px;
  474. line-height: 18px;
  475. color: $secondary-text-color;
  476. @each $lang in $cjk-langs {
  477. &:lang(#{$lang}) {
  478. font-weight: 700;
  479. }
  480. }
  481. }
  482. .account-card {
  483. flex: 1 1 auto;
  484. }
  485. }
  486. .report-status,
  487. .account-status {
  488. display: flex;
  489. margin-bottom: 10px;
  490. .activity-stream {
  491. flex: 2 0 0;
  492. margin-right: 20px;
  493. max-width: calc(100% - 60px);
  494. .entry {
  495. border-radius: 4px;
  496. }
  497. }
  498. }
  499. .report-status__actions,
  500. .account-status__actions {
  501. flex: 0 0 auto;
  502. display: flex;
  503. flex-direction: column;
  504. .icon-button {
  505. font-size: 24px;
  506. width: 24px;
  507. text-align: center;
  508. margin-bottom: 10px;
  509. }
  510. }
  511. .simple_form.new_report_note,
  512. .simple_form.new_account_moderation_note {
  513. max-width: 100%;
  514. }
  515. .simple_form {
  516. .actions {
  517. margin-top: 15px;
  518. }
  519. .button {
  520. font-size: 15px;
  521. }
  522. }
  523. .batch-form-box {
  524. display: flex;
  525. flex-wrap: wrap;
  526. margin-bottom: 5px;
  527. #form_status_batch_action {
  528. margin: 0 5px 5px 0;
  529. font-size: 14px;
  530. }
  531. input.button {
  532. margin: 0 5px 5px 0;
  533. }
  534. .media-spoiler-toggle-buttons {
  535. margin-left: auto;
  536. .button {
  537. overflow: visible;
  538. margin: 0 0 5px 5px;
  539. float: right;
  540. }
  541. }
  542. }
  543. .back-link {
  544. margin-bottom: 10px;
  545. font-size: 14px;
  546. a {
  547. color: $highlight-text-color;
  548. text-decoration: none;
  549. &:hover {
  550. text-decoration: underline;
  551. }
  552. }
  553. }
  554. .special-action-button,
  555. .back-link {
  556. text-align: right;
  557. flex: 1 1 auto;
  558. }
  559. .action-buttons {
  560. display: flex;
  561. overflow: hidden;
  562. justify-content: space-between;
  563. }
  564. .spacer {
  565. flex: 1 1 auto;
  566. }
  567. .log-entry {
  568. display: block;
  569. line-height: 20px;
  570. padding: 15px;
  571. padding-left: 15px * 2 + 40px;
  572. background: $ui-base-color;
  573. border-bottom: 1px solid darken($ui-base-color, 8%);
  574. position: relative;
  575. text-decoration: none;
  576. color: $darker-text-color;
  577. font-size: 14px;
  578. &:first-child {
  579. border-top-left-radius: 4px;
  580. border-top-right-radius: 4px;
  581. }
  582. &:last-child {
  583. border-bottom-left-radius: 4px;
  584. border-bottom-right-radius: 4px;
  585. border-bottom: 0;
  586. }
  587. &:hover,
  588. &:focus,
  589. &:active {
  590. background: lighten($ui-base-color, 4%);
  591. }
  592. &__avatar {
  593. position: absolute;
  594. left: 15px;
  595. top: 15px;
  596. .avatar {
  597. border-radius: 4px;
  598. width: 40px;
  599. height: 40px;
  600. }
  601. }
  602. &__title {
  603. word-wrap: break-word;
  604. }
  605. &__timestamp {
  606. color: $dark-text-color;
  607. }
  608. a,
  609. .username,
  610. .target {
  611. color: $secondary-text-color;
  612. text-decoration: none;
  613. font-weight: 500;
  614. }
  615. a {
  616. &:hover,
  617. &:focus,
  618. &:active {
  619. text-decoration: underline;
  620. }
  621. }
  622. }
  623. a.name-tag,
  624. .name-tag,
  625. a.inline-name-tag,
  626. .inline-name-tag {
  627. text-decoration: none;
  628. color: $secondary-text-color;
  629. .username {
  630. font-weight: 500;
  631. }
  632. &.suspended {
  633. .username {
  634. text-decoration: line-through;
  635. color: lighten($error-red, 12%);
  636. }
  637. .avatar {
  638. filter: grayscale(100%);
  639. opacity: 0.8;
  640. }
  641. }
  642. }
  643. a.name-tag,
  644. .name-tag {
  645. display: inline-flex;
  646. align-items: center;
  647. vertical-align: top;
  648. .avatar {
  649. display: block;
  650. margin: 0;
  651. margin-right: 5px;
  652. border-radius: 50%;
  653. }
  654. &.suspended {
  655. .avatar {
  656. filter: grayscale(100%);
  657. opacity: 0.8;
  658. }
  659. }
  660. }
  661. .speech-bubble {
  662. margin-bottom: 20px;
  663. border-left: 4px solid $ui-highlight-color;
  664. &.positive {
  665. border-left-color: $success-green;
  666. }
  667. &.negative {
  668. border-left-color: lighten($error-red, 12%);
  669. }
  670. &.warning {
  671. border-left-color: $gold-star;
  672. }
  673. &__bubble {
  674. padding: 16px;
  675. padding-left: 14px;
  676. font-size: 15px;
  677. line-height: 20px;
  678. border-radius: 4px 4px 4px 0;
  679. position: relative;
  680. font-weight: 500;
  681. a {
  682. color: $darker-text-color;
  683. }
  684. }
  685. &__owner {
  686. padding: 8px;
  687. padding-left: 12px;
  688. }
  689. time {
  690. color: $dark-text-color;
  691. }
  692. }
  693. .report-card {
  694. background: $ui-base-color;
  695. border-radius: 4px;
  696. margin-bottom: 20px;
  697. &__profile {
  698. display: flex;
  699. justify-content: space-between;
  700. align-items: center;
  701. padding: 15px;
  702. .account {
  703. padding: 0;
  704. border: 0;
  705. &__avatar-wrapper {
  706. margin-left: 0;
  707. }
  708. }
  709. &__stats {
  710. flex: 0 0 auto;
  711. font-weight: 500;
  712. color: $darker-text-color;
  713. text-transform: uppercase;
  714. text-align: right;
  715. a {
  716. color: inherit;
  717. text-decoration: none;
  718. &:focus,
  719. &:hover,
  720. &:active {
  721. color: lighten($darker-text-color, 8%);
  722. }
  723. }
  724. .red {
  725. color: $error-value-color;
  726. }
  727. }
  728. }
  729. &__summary {
  730. &__item {
  731. display: flex;
  732. justify-content: flex-start;
  733. border-top: 1px solid darken($ui-base-color, 4%);
  734. &:hover {
  735. background: lighten($ui-base-color, 2%);
  736. }
  737. &__reported-by,
  738. &__assigned {
  739. padding: 15px;
  740. flex: 0 0 auto;
  741. box-sizing: border-box;
  742. width: 150px;
  743. color: $darker-text-color;
  744. &,
  745. .username {
  746. white-space: nowrap;
  747. overflow: hidden;
  748. text-overflow: ellipsis;
  749. }
  750. }
  751. &__content {
  752. flex: 1 1 auto;
  753. max-width: calc(100% - 300px);
  754. &__icon {
  755. color: $dark-text-color;
  756. margin-right: 4px;
  757. font-weight: 500;
  758. }
  759. }
  760. &__content a {
  761. display: block;
  762. box-sizing: border-box;
  763. width: 100%;
  764. padding: 15px;
  765. text-decoration: none;
  766. color: $darker-text-color;
  767. }
  768. }
  769. }
  770. }
  771. .one-line {
  772. white-space: nowrap;
  773. overflow: hidden;
  774. text-overflow: ellipsis;
  775. }
  776. .ellipsized-ip {
  777. display: inline-block;
  778. max-width: 120px;
  779. overflow: hidden;
  780. text-overflow: ellipsis;
  781. vertical-align: middle;
  782. }
  783. .admin-account-bio {
  784. display: flex;
  785. flex-wrap: wrap;
  786. margin: 0 -5px;
  787. margin-top: 20px;
  788. > div {
  789. box-sizing: border-box;
  790. padding: 0 5px;
  791. margin-bottom: 10px;
  792. flex: 1 0 50%;
  793. max-width: 100%;
  794. }
  795. .account__header__fields,
  796. .account__header__content {
  797. background: lighten($ui-base-color, 8%);
  798. border-radius: 4px;
  799. height: 100%;
  800. }
  801. .account__header__fields {
  802. margin: 0;
  803. border: 0;
  804. a {
  805. color: $highlight-text-color;
  806. }
  807. dl:first-child .verified {
  808. border-radius: 0 4px 0 0;
  809. }
  810. .verified a {
  811. color: $valid-value-color;
  812. }
  813. }
  814. .account__header__content {
  815. box-sizing: border-box;
  816. padding: 20px;
  817. color: $primary-text-color;
  818. }
  819. }
  820. .center-text {
  821. text-align: center;
  822. }
  823. .applications-list__item,
  824. .filters-list__item {
  825. padding: 15px 0;
  826. background: $ui-base-color;
  827. border: 1px solid lighten($ui-base-color, 4%);
  828. border-radius: 4px;
  829. margin-top: 15px;
  830. }
  831. .user-role {
  832. color: var(--user-role-accent);
  833. }
  834. .announcements-list,
  835. .filters-list {
  836. border: 1px solid lighten($ui-base-color, 4%);
  837. border-radius: 4px;
  838. &__item {
  839. padding: 15px 0;
  840. background: $ui-base-color;
  841. border-bottom: 1px solid lighten($ui-base-color, 4%);
  842. &__title {
  843. padding: 0 15px;
  844. display: block;
  845. font-weight: 500;
  846. font-size: 18px;
  847. line-height: 1.5;
  848. color: $secondary-text-color;
  849. text-decoration: none;
  850. margin-bottom: 10px;
  851. .account-role {
  852. vertical-align: middle;
  853. }
  854. }
  855. a.announcements-list__item__title {
  856. &:hover,
  857. &:focus,
  858. &:active {
  859. color: $primary-text-color;
  860. }
  861. }
  862. &__meta {
  863. padding: 0 15px;
  864. color: $dark-text-color;
  865. a {
  866. color: inherit;
  867. text-decoration: underline;
  868. &:hover,
  869. &:focus,
  870. &:active {
  871. text-decoration: none;
  872. }
  873. }
  874. }
  875. &__action-bar {
  876. display: flex;
  877. justify-content: space-between;
  878. align-items: center;
  879. }
  880. &__permissions {
  881. margin-top: 10px;
  882. }
  883. &:last-child {
  884. border-bottom: 0;
  885. }
  886. }
  887. }
  888. .filters-list__item {
  889. &__title {
  890. display: flex;
  891. justify-content: space-between;
  892. margin-bottom: 0;
  893. }
  894. &__permissions {
  895. margin-top: 0;
  896. margin-bottom: 10px;
  897. }
  898. .expiration {
  899. font-size: 13px;
  900. }
  901. &.expired {
  902. .expiration {
  903. color: lighten($error-red, 12%);
  904. }
  905. .permissions-list__item__icon {
  906. color: $dark-text-color;
  907. }
  908. }
  909. }
  910. .dashboard__counters.admin-account-counters {
  911. margin-top: 10px;
  912. }
  913. .account-badges {
  914. margin: -2px 0;
  915. }
  916. .retention {
  917. overflow: auto;
  918. > h4 {
  919. position: sticky;
  920. left: 0;
  921. }
  922. &__table {
  923. &__number {
  924. color: $secondary-text-color;
  925. padding: 10px;
  926. }
  927. &__date {
  928. white-space: nowrap;
  929. padding: 10px 0;
  930. text-align: left;
  931. min-width: 120px;
  932. &.retention__table__average {
  933. font-weight: 700;
  934. }
  935. }
  936. &__size {
  937. text-align: center;
  938. padding: 10px;
  939. }
  940. &__label {
  941. font-weight: 700;
  942. color: $darker-text-color;
  943. }
  944. &__box {
  945. box-sizing: border-box;
  946. background: $ui-highlight-color;
  947. padding: 10px;
  948. font-weight: 500;
  949. color: $primary-text-color;
  950. width: 52px;
  951. margin: 1px;
  952. @for $i from 0 through 10 {
  953. &--#{10 * $i} {
  954. background-color: rgba(
  955. $ui-highlight-color,
  956. 1 * (math.div(max(1, $i), 10))
  957. );
  958. }
  959. }
  960. }
  961. }
  962. }
  963. .sparkline {
  964. display: block;
  965. text-decoration: none;
  966. background: lighten($ui-base-color, 4%);
  967. border-radius: 4px;
  968. padding: 0;
  969. position: relative;
  970. padding-bottom: 55px + 20px;
  971. overflow: hidden;
  972. &__value {
  973. display: flex;
  974. line-height: 33px;
  975. align-items: flex-end;
  976. padding: 20px;
  977. padding-bottom: 10px;
  978. &__total {
  979. display: block;
  980. margin-right: 10px;
  981. font-weight: 500;
  982. font-size: 28px;
  983. color: $primary-text-color;
  984. }
  985. &__change {
  986. display: block;
  987. font-weight: 500;
  988. font-size: 18px;
  989. color: $darker-text-color;
  990. margin-bottom: -3px;
  991. &.positive {
  992. color: $valid-value-color;
  993. }
  994. &.negative {
  995. color: $error-value-color;
  996. }
  997. }
  998. }
  999. &__label {
  1000. padding: 0 20px;
  1001. padding-bottom: 10px;
  1002. text-transform: uppercase;
  1003. color: $darker-text-color;
  1004. font-weight: 500;
  1005. }
  1006. &__graph {
  1007. position: absolute;
  1008. bottom: 0;
  1009. width: 100%;
  1010. svg {
  1011. display: block;
  1012. margin: 0;
  1013. }
  1014. path:first-child {
  1015. fill: rgba($highlight-text-color, 0.25) !important;
  1016. fill-opacity: 100% !important;
  1017. }
  1018. path:last-child {
  1019. stroke: lighten($highlight-text-color, 6%) !important;
  1020. fill: none !important;
  1021. }
  1022. }
  1023. }
  1024. a.sparkline {
  1025. &:hover,
  1026. &:focus,
  1027. &:active {
  1028. background: lighten($ui-base-color, 6%);
  1029. }
  1030. }
  1031. .skeleton {
  1032. background-color: lighten($ui-base-color, 8%);
  1033. background-image: linear-gradient(
  1034. 90deg,
  1035. lighten($ui-base-color, 8%),
  1036. lighten($ui-base-color, 12%),
  1037. lighten($ui-base-color, 8%)
  1038. );
  1039. background-size: 200px 100%;
  1040. background-repeat: no-repeat;
  1041. border-radius: 4px;
  1042. display: inline-block;
  1043. line-height: 1;
  1044. width: 100%;
  1045. animation: skeleton 1.2s ease-in-out infinite;
  1046. }
  1047. @keyframes skeleton {
  1048. 0% {
  1049. background-position: -200px 0;
  1050. }
  1051. 100% {
  1052. background-position: calc(200px + 100%) 0;
  1053. }
  1054. }
  1055. .dimension {
  1056. table {
  1057. width: 100%;
  1058. }
  1059. &__item {
  1060. border-bottom: 1px solid lighten($ui-base-color, 4%);
  1061. &__key {
  1062. font-weight: 500;
  1063. padding: 11px 10px;
  1064. }
  1065. &__value {
  1066. text-align: right;
  1067. color: $darker-text-color;
  1068. padding: 11px 10px;
  1069. }
  1070. &__indicator {
  1071. display: inline-block;
  1072. width: 8px;
  1073. height: 8px;
  1074. border-radius: 50%;
  1075. background: $ui-highlight-color;
  1076. margin-right: 10px;
  1077. @for $i from 0 through 10 {
  1078. &--#{10 * $i} {
  1079. background-color: rgba(
  1080. $ui-highlight-color,
  1081. 1 * (math.div(max(1, $i), 10))
  1082. );
  1083. }
  1084. }
  1085. }
  1086. &:last-child {
  1087. border-bottom: 0;
  1088. }
  1089. }
  1090. }
  1091. .report-reason-selector {
  1092. border-radius: 4px;
  1093. background: $ui-base-color;
  1094. margin-bottom: 20px;
  1095. &__category {
  1096. cursor: pointer;
  1097. border-bottom: 1px solid darken($ui-base-color, 8%);
  1098. &:last-child {
  1099. border-bottom: 0;
  1100. }
  1101. &__label {
  1102. padding: 15px;
  1103. }
  1104. &__rules {
  1105. margin-left: 30px;
  1106. }
  1107. }
  1108. &__rule {
  1109. cursor: pointer;
  1110. padding: 15px;
  1111. }
  1112. }
  1113. .report-header {
  1114. display: grid;
  1115. grid-gap: 15px;
  1116. grid-template-columns: minmax(0, 1fr) 300px;
  1117. &__details {
  1118. &__item {
  1119. border-bottom: 1px solid lighten($ui-base-color, 8%);
  1120. padding: 15px 0;
  1121. &:last-child {
  1122. border-bottom: 0;
  1123. }
  1124. &__header {
  1125. font-weight: 600;
  1126. padding: 4px 0;
  1127. }
  1128. }
  1129. &--horizontal {
  1130. display: grid;
  1131. grid-auto-columns: minmax(0, 1fr);
  1132. grid-auto-flow: column;
  1133. .report-header__details__item {
  1134. border-bottom: 0;
  1135. }
  1136. }
  1137. }
  1138. @media screen and (max-width: 930px) {
  1139. grid-template-columns: minmax(0, 1fr);
  1140. }
  1141. }
  1142. .account-card {
  1143. background: $ui-base-color;
  1144. border-radius: 4px;
  1145. &__permalink {
  1146. color: inherit;
  1147. text-decoration: none;
  1148. }
  1149. &__header {
  1150. padding: 4px;
  1151. border-radius: 4px;
  1152. height: 128px;
  1153. img {
  1154. display: block;
  1155. margin: 0;
  1156. width: 100%;
  1157. height: 100%;
  1158. object-fit: cover;
  1159. background: darken($ui-base-color, 8%);
  1160. }
  1161. }
  1162. &__title {
  1163. margin-top: -(15px + 8px);
  1164. display: flex;
  1165. align-items: flex-end;
  1166. &__avatar {
  1167. padding: 14px;
  1168. img,
  1169. .account__avatar {
  1170. display: block;
  1171. margin: 0;
  1172. width: 56px;
  1173. height: 56px;
  1174. background-color: darken($ui-base-color, 8%);
  1175. border-radius: 8px;
  1176. border: 1px solid $ui-base-color;
  1177. }
  1178. }
  1179. .display-name {
  1180. color: $darker-text-color;
  1181. padding-bottom: 15px;
  1182. font-size: 15px;
  1183. line-height: 20px;
  1184. bdi {
  1185. display: block;
  1186. color: $primary-text-color;
  1187. font-weight: 700;
  1188. }
  1189. }
  1190. }
  1191. &__bio {
  1192. padding: 0 15px;
  1193. margin: 8px 0;
  1194. overflow: hidden;
  1195. text-overflow: ellipsis;
  1196. word-wrap: break-word;
  1197. max-height: 21px * 2;
  1198. position: relative;
  1199. font-size: 15px;
  1200. line-height: 21px;
  1201. &::after {
  1202. display: block;
  1203. content: '';
  1204. width: 50px;
  1205. height: 21px;
  1206. position: absolute;
  1207. bottom: 0;
  1208. right: 15px;
  1209. background: linear-gradient(to left, $ui-base-color, transparent);
  1210. pointer-events: none;
  1211. }
  1212. a {
  1213. color: $secondary-text-color;
  1214. text-decoration: none;
  1215. unicode-bidi: isolate;
  1216. &:hover {
  1217. text-decoration: underline;
  1218. }
  1219. &.mention {
  1220. &:hover {
  1221. text-decoration: none;
  1222. span {
  1223. text-decoration: underline;
  1224. }
  1225. }
  1226. }
  1227. }
  1228. }
  1229. &__actions {
  1230. display: flex;
  1231. justify-content: space-between;
  1232. align-items: center;
  1233. &__button {
  1234. flex-shrink: 1;
  1235. padding: 0 15px;
  1236. overflow: hidden;
  1237. .button {
  1238. min-width: 0;
  1239. white-space: nowrap;
  1240. text-overflow: ellipsis;
  1241. overflow: hidden;
  1242. max-width: 100%;
  1243. }
  1244. }
  1245. }
  1246. &__counters {
  1247. flex: 1 1 auto;
  1248. display: grid;
  1249. grid-auto-columns: minmax(0, 1fr);
  1250. grid-auto-flow: column;
  1251. max-width: 340px;
  1252. min-width: 65px * 3;
  1253. &__item {
  1254. padding: 15px 0;
  1255. text-align: center;
  1256. color: $primary-text-color;
  1257. font-weight: 600;
  1258. font-size: 15px;
  1259. line-height: 21px;
  1260. small {
  1261. display: block;
  1262. color: $darker-text-color;
  1263. font-weight: 400;
  1264. font-size: 13px;
  1265. line-height: 18px;
  1266. }
  1267. }
  1268. }
  1269. }
  1270. .report-notes {
  1271. margin-bottom: 20px;
  1272. &__item {
  1273. background: $ui-base-color;
  1274. position: relative;
  1275. padding: 15px;
  1276. padding-left: 15px * 2 + 40px;
  1277. border-bottom: 1px solid darken($ui-base-color, 8%);
  1278. &:first-child {
  1279. border-top-left-radius: 4px;
  1280. border-top-right-radius: 4px;
  1281. }
  1282. &:last-child {
  1283. border-bottom-left-radius: 4px;
  1284. border-bottom-right-radius: 4px;
  1285. border-bottom: 0;
  1286. }
  1287. &:hover {
  1288. background-color: lighten($ui-base-color, 4%);
  1289. }
  1290. &__avatar {
  1291. position: absolute;
  1292. left: 15px;
  1293. top: 15px;
  1294. border-radius: 4px;
  1295. width: 40px;
  1296. height: 40px;
  1297. }
  1298. &__header {
  1299. color: $darker-text-color;
  1300. font-size: 15px;
  1301. line-height: 20px;
  1302. margin-bottom: 4px;
  1303. .username {
  1304. color: $primary-text-color;
  1305. font-weight: 500;
  1306. margin-right: 5px;
  1307. a {
  1308. color: inherit;
  1309. text-decoration: none;
  1310. &:hover,
  1311. &:focus,
  1312. &:active {
  1313. text-decoration: underline;
  1314. }
  1315. }
  1316. }
  1317. time {
  1318. margin-left: 5px;
  1319. vertical-align: baseline;
  1320. }
  1321. }
  1322. &__content {
  1323. font-size: 15px;
  1324. line-height: 20px;
  1325. word-wrap: break-word;
  1326. font-weight: 400;
  1327. color: $primary-text-color;
  1328. p {
  1329. margin-bottom: 20px;
  1330. white-space: pre-wrap;
  1331. unicode-bidi: plaintext;
  1332. &:last-child {
  1333. margin-bottom: 0;
  1334. }
  1335. }
  1336. a {
  1337. color: $highlight-text-color;
  1338. text-decoration: none;
  1339. &:hover {
  1340. text-decoration: underline;
  1341. }
  1342. }
  1343. }
  1344. &__actions {
  1345. position: absolute;
  1346. top: 15px;
  1347. right: 15px;
  1348. text-align: right;
  1349. }
  1350. }
  1351. }
  1352. .report-actions {
  1353. border: 1px solid darken($ui-base-color, 8%);
  1354. &__item {
  1355. display: flex;
  1356. align-items: center;
  1357. line-height: 18px;
  1358. border-bottom: 1px solid darken($ui-base-color, 8%);
  1359. &:last-child {
  1360. border-bottom: 0;
  1361. }
  1362. &__button {
  1363. box-sizing: border-box;
  1364. flex: 0 0 auto;
  1365. width: 200px;
  1366. padding: 15px;
  1367. padding-right: 0;
  1368. .button {
  1369. display: block;
  1370. width: 100%;
  1371. }
  1372. }
  1373. &__description {
  1374. padding: 15px;
  1375. font-size: 14px;
  1376. color: $dark-text-color;
  1377. }
  1378. }
  1379. @media screen and (max-width: 800px) {
  1380. border: 0;
  1381. &__item {
  1382. flex-direction: column;
  1383. border: 0;
  1384. &__button {
  1385. width: 100%;
  1386. padding: 15px 0;
  1387. }
  1388. &__description {
  1389. padding: 0;
  1390. padding-bottom: 15px;
  1391. }
  1392. }
  1393. }
  1394. }
  1395. .section-skip-link {
  1396. float: right;
  1397. a {
  1398. color: $ui-highlight-color;
  1399. text-decoration: none;
  1400. &:hover,
  1401. &:focus,
  1402. &:active {
  1403. text-decoration: underline;
  1404. }
  1405. }
  1406. }
  1407. .strike-card {
  1408. padding: 15px;
  1409. border-radius: 4px;
  1410. background: $ui-base-color;
  1411. font-size: 15px;
  1412. line-height: 20px;
  1413. word-wrap: break-word;
  1414. font-weight: 400;
  1415. color: $primary-text-color;
  1416. box-sizing: border-box;
  1417. min-height: 100%;
  1418. a {
  1419. color: $highlight-text-color;
  1420. text-decoration: none;
  1421. &:hover {
  1422. text-decoration: underline;
  1423. }
  1424. }
  1425. p {
  1426. margin-bottom: 20px;
  1427. unicode-bidi: plaintext;
  1428. &:last-child {
  1429. margin-bottom: 0;
  1430. }
  1431. strong {
  1432. font-weight: 700;
  1433. }
  1434. }
  1435. &__rules {
  1436. list-style: disc;
  1437. padding-left: 15px;
  1438. margin-bottom: 20px;
  1439. color: $darker-text-color;
  1440. &:last-child {
  1441. margin-bottom: 0;
  1442. }
  1443. &__text {
  1444. color: $primary-text-color;
  1445. }
  1446. }
  1447. &__statuses-list {
  1448. border-radius: 4px;
  1449. border: 1px solid darken($ui-base-color, 8%);
  1450. font-size: 13px;
  1451. line-height: 18px;
  1452. overflow: hidden;
  1453. &__item {
  1454. padding: 16px;
  1455. background: lighten($ui-base-color, 2%);
  1456. border-bottom: 1px solid darken($ui-base-color, 8%);
  1457. &:last-child {
  1458. border-bottom: 0;
  1459. }
  1460. &__meta {
  1461. color: $darker-text-color;
  1462. }
  1463. a {
  1464. color: inherit;
  1465. text-decoration: none;
  1466. &:hover,
  1467. &:focus,
  1468. &:active {
  1469. text-decoration: underline;
  1470. }
  1471. }
  1472. }
  1473. }
  1474. }
  1475. .availability-indicator {
  1476. display: flex;
  1477. align-items: center;
  1478. margin-bottom: 30px;
  1479. font-size: 14px;
  1480. line-height: 21px;
  1481. &__hint {
  1482. padding: 0 15px;
  1483. }
  1484. &__graphic {
  1485. display: flex;
  1486. margin: 0 -2px;
  1487. &__item {
  1488. display: block;
  1489. flex: 0 0 auto;
  1490. width: 4px;
  1491. height: 21px;
  1492. background: lighten($ui-base-color, 8%);
  1493. margin: 0 2px;
  1494. border-radius: 2px;
  1495. &.positive {
  1496. background: $valid-value-color;
  1497. }
  1498. &.negative {
  1499. background: $error-value-color;
  1500. }
  1501. }
  1502. }
  1503. }
  1504. .history {
  1505. counter-reset: step 0;
  1506. font-size: 15px;
  1507. line-height: 22px;
  1508. li {
  1509. counter-increment: step 1;
  1510. padding-left: 2.5rem;
  1511. padding-bottom: 8px;
  1512. position: relative;
  1513. margin-bottom: 8px;
  1514. &::before {
  1515. position: absolute;
  1516. content: counter(step);
  1517. font-size: 0.625rem;
  1518. font-weight: 500;
  1519. left: 0;
  1520. display: flex;
  1521. justify-content: center;
  1522. align-items: center;
  1523. width: calc(1.375rem + 1px);
  1524. height: calc(1.375rem + 1px);
  1525. background: $ui-base-color;
  1526. border: 1px solid $highlight-text-color;
  1527. color: $highlight-text-color;
  1528. border-radius: 8px;
  1529. }
  1530. &::after {
  1531. position: absolute;
  1532. content: '';
  1533. width: 1px;
  1534. background: $highlight-text-color;
  1535. bottom: 0;
  1536. top: calc(1.875rem + 1px);
  1537. left: 0.6875rem;
  1538. }
  1539. &:last-child {
  1540. margin-bottom: 0;
  1541. &::after {
  1542. display: none;
  1543. }
  1544. }
  1545. }
  1546. &__entry {
  1547. h5 {
  1548. font-weight: 500;
  1549. color: $primary-text-color;
  1550. line-height: 25px;
  1551. margin-bottom: 16px;
  1552. }
  1553. .status {
  1554. border: 1px solid lighten($ui-base-color, 4%);
  1555. background: $ui-base-color;
  1556. border-radius: 4px;
  1557. }
  1558. }
  1559. }