admin.scss 28 KB

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