main.css 37 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393
  1. /* classes attached to <body> */
  2. .fc-not-allowed,
  3. .fc-not-allowed .fc-event {
  4. /* override events' custom cursors */
  5. cursor: not-allowed;
  6. }
  7. .fc-unselectable {
  8. -webkit-user-select: none;
  9. -moz-user-select: none;
  10. -ms-user-select: none;
  11. user-select: none;
  12. -webkit-touch-callout: none;
  13. -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  14. }
  15. .fc {
  16. /* layout of immediate children */
  17. display: flex;
  18. flex-direction: column;
  19. font-size: 1em;
  20. }
  21. .fc,
  22. .fc *,
  23. .fc *:before,
  24. .fc *:after {
  25. box-sizing: border-box;
  26. }
  27. .fc table {
  28. border-collapse: collapse;
  29. border-spacing: 0;
  30. font-size: 1em; /* normalize cross-browser */
  31. }
  32. .fc th {
  33. text-align: center;
  34. }
  35. .fc th,
  36. .fc td {
  37. vertical-align: top;
  38. padding: 0;
  39. }
  40. .fc a[data-navlink] {
  41. cursor: pointer;
  42. }
  43. .fc a[data-navlink]:hover {
  44. text-decoration: underline;
  45. }
  46. .fc-direction-ltr {
  47. direction: ltr;
  48. text-align: left;
  49. }
  50. .fc-direction-rtl {
  51. direction: rtl;
  52. text-align: right;
  53. }
  54. .fc-theme-standard td,
  55. .fc-theme-standard th {
  56. border: 1px solid #ddd;
  57. border: 1px solid var(--fc-border-color, #ddd);
  58. }
  59. /* for FF, which doesn't expand a 100% div within a table cell. use absolute positioning */
  60. /* inner-wrappers are responsible for being absolute */
  61. /* TODO: best place for this? */
  62. .fc-liquid-hack td,
  63. .fc-liquid-hack th {
  64. position: relative;
  65. }
  66. @font-face {
  67. font-family: "fcicons";
  68. src: url("data:application/x-font-ttf;charset=utf-8;base64,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")
  69. format("truetype");
  70. font-weight: normal;
  71. font-style: normal;
  72. }
  73. .fc-icon {
  74. /* added for fc */
  75. display: inline-block;
  76. width: 1em;
  77. height: 1em;
  78. text-align: center;
  79. -webkit-user-select: none;
  80. -moz-user-select: none;
  81. -ms-user-select: none;
  82. user-select: none;
  83. /* use !important to prevent issues with browser extensions that change fonts */
  84. font-family: "fcicons" !important;
  85. speak: none;
  86. font-style: normal;
  87. font-weight: normal;
  88. font-variant: normal;
  89. text-transform: none;
  90. line-height: 1;
  91. /* Better Font Rendering =========== */
  92. -webkit-font-smoothing: antialiased;
  93. -moz-osx-font-smoothing: grayscale;
  94. }
  95. .fc-icon-chevron-left:before {
  96. content: "\e900";
  97. }
  98. .fc-icon-chevron-right:before {
  99. content: "\e901";
  100. }
  101. .fc-icon-chevrons-left:before {
  102. content: "\e902";
  103. }
  104. .fc-icon-chevrons-right:before {
  105. content: "\e903";
  106. }
  107. .fc-icon-minus-square:before {
  108. content: "\e904";
  109. }
  110. .fc-icon-plus-square:before {
  111. content: "\e905";
  112. }
  113. .fc-icon-x:before {
  114. content: "\e906";
  115. }
  116. /*
  117. Lots taken from Flatly (MIT): https://bootswatch.com/4/flatly/bootstrap.css
  118. These styles only apply when the standard-theme is activated.
  119. When it's NOT activated, the fc-button classes won't even be in the DOM.
  120. */
  121. .fc {
  122. /* reset */
  123. }
  124. .fc .fc-button {
  125. border-radius: 0;
  126. overflow: visible;
  127. text-transform: none;
  128. margin: 0;
  129. font-family: inherit;
  130. font-size: inherit;
  131. line-height: inherit;
  132. }
  133. .fc .fc-button:focus {
  134. outline: 1px dotted;
  135. outline: 5px auto -webkit-focus-ring-color;
  136. }
  137. .fc .fc-button {
  138. -webkit-appearance: button;
  139. }
  140. .fc .fc-button:not(:disabled) {
  141. cursor: pointer;
  142. }
  143. .fc .fc-button::-moz-focus-inner {
  144. padding: 0;
  145. border-style: none;
  146. }
  147. .fc {
  148. /* theme */
  149. }
  150. .fc .fc-button {
  151. display: inline-block;
  152. font-weight: 400;
  153. text-align: center;
  154. vertical-align: middle;
  155. -webkit-user-select: none;
  156. -moz-user-select: none;
  157. -ms-user-select: none;
  158. user-select: none;
  159. background-color: transparent;
  160. border: 1px solid transparent;
  161. padding: 0.4em 0.65em;
  162. font-size: 1em;
  163. line-height: 1.5;
  164. border-radius: 0.25em;
  165. }
  166. .fc .fc-button:hover {
  167. text-decoration: none;
  168. }
  169. .fc .fc-button:focus {
  170. outline: 0;
  171. box-shadow: 0 0 0 0.2rem rgba(44, 62, 80, 0.25);
  172. }
  173. .fc .fc-button:disabled {
  174. opacity: 0.65;
  175. }
  176. .fc {
  177. /* "primary" coloring */
  178. }
  179. .fc .fc-button-primary {
  180. color: #fff;
  181. color: var(--fc-button-text-color, #fff);
  182. background-color: #2c3e50;
  183. background-color: var(--fc-button-bg-color, #2c3e50);
  184. border-color: #2c3e50;
  185. border-color: var(--fc-button-border-color, #2c3e50);
  186. }
  187. .fc .fc-button-primary:hover {
  188. color: #fff;
  189. color: var(--fc-button-text-color, #fff);
  190. background-color: #1e2b37;
  191. background-color: var(--fc-button-hover-bg-color, #1e2b37);
  192. border-color: #1a252f;
  193. border-color: var(--fc-button-hover-border-color, #1a252f);
  194. }
  195. .fc .fc-button-primary:disabled {
  196. /* not DRY */
  197. color: #fff;
  198. color: var(--fc-button-text-color, #fff);
  199. background-color: #2c3e50;
  200. background-color: var(--fc-button-bg-color, #2c3e50);
  201. border-color: #2c3e50;
  202. border-color: var(--fc-button-border-color, #2c3e50); /* overrides :hover */
  203. }
  204. .fc .fc-button-primary:focus {
  205. box-shadow: 0 0 0 0.2rem rgba(76, 91, 106, 0.5);
  206. }
  207. .fc .fc-button-primary:not(:disabled):active,
  208. .fc .fc-button-primary:not(:disabled).fc-button-active {
  209. color: #fff;
  210. color: var(--fc-button-text-color, #fff);
  211. background-color: #1a252f;
  212. background-color: var(--fc-button-active-bg-color, #1a252f);
  213. border-color: #151e27;
  214. border-color: var(--fc-button-active-border-color, #151e27);
  215. }
  216. .fc .fc-button-primary:not(:disabled):active:focus,
  217. .fc .fc-button-primary:not(:disabled).fc-button-active:focus {
  218. box-shadow: 0 0 0 0.2rem rgba(76, 91, 106, 0.5);
  219. }
  220. .fc {
  221. /* icons within buttons */
  222. }
  223. .fc .fc-button .fc-icon {
  224. vertical-align: middle;
  225. font-size: 1.5em; /* bump up the size (but don't make it bigger than line-height of button, which is 1.5em also) */
  226. }
  227. .fc .fc-button-group {
  228. position: relative;
  229. display: inline-flex;
  230. vertical-align: middle;
  231. }
  232. .fc .fc-button-group > .fc-button {
  233. position: relative;
  234. flex: 1 1 auto;
  235. }
  236. .fc .fc-button-group > .fc-button:hover {
  237. z-index: 1;
  238. }
  239. .fc .fc-button-group > .fc-button:focus,
  240. .fc .fc-button-group > .fc-button:active,
  241. .fc .fc-button-group > .fc-button.fc-button-active {
  242. z-index: 1;
  243. }
  244. .fc-direction-ltr .fc-button-group > .fc-button:not(:first-child) {
  245. margin-left: -1px;
  246. border-top-left-radius: 0;
  247. border-bottom-left-radius: 0;
  248. }
  249. .fc-direction-ltr .fc-button-group > .fc-button:not(:last-child) {
  250. border-top-right-radius: 0;
  251. border-bottom-right-radius: 0;
  252. }
  253. .fc-direction-rtl .fc-button-group > .fc-button:not(:first-child) {
  254. margin-right: -1px;
  255. border-top-right-radius: 0;
  256. border-bottom-right-radius: 0;
  257. }
  258. .fc-direction-rtl .fc-button-group > .fc-button:not(:last-child) {
  259. border-top-left-radius: 0;
  260. border-bottom-left-radius: 0;
  261. }
  262. .fc .fc-toolbar {
  263. display: flex;
  264. justify-content: space-between;
  265. align-items: center;
  266. }
  267. .fc .fc-toolbar.fc-header-toolbar {
  268. margin-bottom: 1.5em;
  269. }
  270. .fc .fc-toolbar.fc-footer-toolbar {
  271. margin-top: 1.5em;
  272. }
  273. .fc .fc-toolbar-title {
  274. font-size: 1.75em;
  275. margin: 0;
  276. }
  277. .fc-direction-ltr .fc-toolbar > * > :not(:first-child) {
  278. margin-left: 0.75em; /* space between */
  279. }
  280. .fc-direction-rtl .fc-toolbar > * > :not(:first-child) {
  281. margin-right: 0.75em; /* space between */
  282. }
  283. .fc-direction-rtl .fc-toolbar-ltr {
  284. /* when the toolbar-chunk positioning system is explicitly left-to-right */
  285. flex-direction: row-reverse;
  286. }
  287. .fc .fc-scroller {
  288. -webkit-overflow-scrolling: touch;
  289. position: relative; /* for abs-positioned elements within */
  290. }
  291. .fc .fc-scroller-liquid {
  292. height: 100%;
  293. }
  294. .fc .fc-scroller-liquid-absolute {
  295. position: absolute;
  296. top: 0;
  297. right: 0;
  298. left: 0;
  299. bottom: 0;
  300. }
  301. .fc .fc-scroller-harness {
  302. position: relative;
  303. overflow: hidden;
  304. direction: ltr;
  305. /* hack for chrome computing the scroller's right/left wrong for rtl. undone below... */
  306. /* TODO: demonstrate in codepen */
  307. }
  308. .fc .fc-scroller-harness-liquid {
  309. height: 100%;
  310. }
  311. .fc-direction-rtl .fc-scroller-harness > .fc-scroller {
  312. /* undo above hack */
  313. direction: rtl;
  314. }
  315. .fc-theme-standard .fc-scrollgrid {
  316. border: 1px solid #ddd;
  317. border: 1px solid var(--fc-border-color, #ddd); /* bootstrap does this. match */
  318. }
  319. .fc .fc-scrollgrid,
  320. .fc .fc-scrollgrid table {
  321. /* all tables (self included) */
  322. width: 100%; /* because tables don't normally do this */
  323. table-layout: fixed;
  324. }
  325. .fc .fc-scrollgrid table {
  326. /* inner tables */
  327. border-top-style: hidden;
  328. border-left-style: hidden;
  329. border-right-style: hidden;
  330. }
  331. .fc .fc-scrollgrid {
  332. border-collapse: separate;
  333. border-right-width: 0;
  334. border-bottom-width: 0;
  335. }
  336. .fc .fc-scrollgrid-liquid {
  337. height: 100%;
  338. }
  339. .fc .fc-scrollgrid-section {
  340. /* a <tr> */
  341. height: 1px; /* better than 0, for firefox */
  342. }
  343. .fc .fc-scrollgrid-section > td {
  344. height: 1px; /* needs a height so inner div within grow. better than 0, for firefox */
  345. }
  346. .fc .fc-scrollgrid-section table {
  347. height: 1px;
  348. /* for most browsers, if a height isn't set on the table, can't do liquid-height within cells */
  349. /* serves as a min-height. harmless */
  350. }
  351. .fc .fc-scrollgrid-section-liquid {
  352. height: auto;
  353. }
  354. .fc .fc-scrollgrid-section-liquid > td {
  355. height: 100%; /* better than `auto`, for firefox */
  356. }
  357. .fc .fc-scrollgrid-section > * {
  358. border-top-width: 0;
  359. border-left-width: 0;
  360. }
  361. .fc .fc-scrollgrid-section-header > *,
  362. .fc .fc-scrollgrid-section-footer > * {
  363. border-bottom-width: 0;
  364. }
  365. .fc .fc-scrollgrid-section-body table,
  366. .fc .fc-scrollgrid-section-footer table {
  367. border-bottom-style: hidden; /* head keeps its bottom border tho */
  368. }
  369. .fc {
  370. /* stickiness */
  371. }
  372. .fc .fc-scrollgrid-section-sticky > * {
  373. background: #fff;
  374. background: var(--fc-page-bg-color, #fff);
  375. position: -webkit-sticky;
  376. position: sticky;
  377. z-index: 2; /* TODO: var */
  378. /* TODO: box-shadow when sticking */
  379. }
  380. .fc .fc-scrollgrid-section-header.fc-scrollgrid-section-sticky > * {
  381. top: 0; /* because border-sharing causes a gap at the top */
  382. /* TODO: give safari -1. has bug */
  383. }
  384. .fc .fc-scrollgrid-section-footer.fc-scrollgrid-section-sticky > * {
  385. bottom: 0; /* known bug: bottom-stickiness doesn't work in safari */
  386. }
  387. .fc .fc-scrollgrid-sticky-shim {
  388. /* for horizontal scrollbar */
  389. height: 1px; /* needs height to create scrollbars */
  390. margin-bottom: -1px;
  391. }
  392. .fc-sticky {
  393. /* no .fc wrap because used as child of body */
  394. position: -webkit-sticky;
  395. position: sticky;
  396. }
  397. .fc .fc-view-harness {
  398. flex-grow: 1; /* because this harness is WITHIN the .fc's flexbox */
  399. position: relative;
  400. }
  401. .fc {
  402. /* when the harness controls the height, make the view liquid */
  403. }
  404. .fc .fc-view-harness-active > .fc-view {
  405. position: absolute;
  406. top: 0;
  407. right: 0;
  408. bottom: 0;
  409. left: 0;
  410. }
  411. .fc .fc-col-header-cell-cushion {
  412. display: inline-block; /* x-browser for when sticky (when multi-tier header) */
  413. padding: 2px 4px;
  414. }
  415. .fc .fc-bg-event,
  416. .fc .fc-non-business,
  417. .fc .fc-highlight {
  418. /* will always have a harness with position:relative/absolute, so absolutely expand */
  419. position: absolute;
  420. top: 0;
  421. left: 0;
  422. right: 0;
  423. bottom: 0;
  424. }
  425. .fc .fc-non-business {
  426. background: rgba(215, 215, 215, 0.3);
  427. background: var(--fc-non-business-color, rgba(215, 215, 215, 0.3));
  428. }
  429. .fc .fc-bg-event {
  430. background: rgb(143, 223, 130);
  431. background: var(--fc-bg-event-color, rgb(143, 223, 130));
  432. opacity: 0.3;
  433. opacity: var(--fc-bg-event-opacity, 0.3);
  434. }
  435. .fc .fc-bg-event .fc-event-title {
  436. margin: 0.5em;
  437. font-size: 0.85em;
  438. font-size: var(--fc-small-font-size, 0.85em);
  439. font-style: italic;
  440. }
  441. .fc .fc-highlight {
  442. background: rgba(188, 232, 241, 0.3);
  443. background: var(--fc-highlight-color, rgba(188, 232, 241, 0.3));
  444. }
  445. .fc .fc-cell-shaded,
  446. .fc .fc-day-disabled {
  447. background: rgba(208, 208, 208, 0.3);
  448. background: var(--fc-neutral-bg-color, rgba(208, 208, 208, 0.3));
  449. }
  450. /* link resets */
  451. /* ---------------------------------------------------------------------------------------------------- */
  452. a.fc-event,
  453. a.fc-event:hover {
  454. text-decoration: none;
  455. }
  456. /* cursor */
  457. .fc-event[href],
  458. .fc-event.fc-event-draggable {
  459. cursor: pointer;
  460. }
  461. /* event text content */
  462. /* ---------------------------------------------------------------------------------------------------- */
  463. .fc-event .fc-event-main {
  464. position: relative;
  465. z-index: 2;
  466. }
  467. /* dragging */
  468. /* ---------------------------------------------------------------------------------------------------- */
  469. .fc-event-dragging:not(.fc-event-selected) {
  470. /* MOUSE */
  471. opacity: 0.75;
  472. }
  473. .fc-event-dragging.fc-event-selected {
  474. /* TOUCH */
  475. box-shadow: 0 2px 7px rgba(0, 0, 0, 0.3);
  476. }
  477. /* resizing */
  478. /* ---------------------------------------------------------------------------------------------------- */
  479. /* (subclasses should hone positioning for touch and non-touch) */
  480. .fc-event .fc-event-resizer {
  481. display: none;
  482. position: absolute;
  483. z-index: 4;
  484. }
  485. .fc-event:hover, /* MOUSE */
  486. .fc-event-selected {
  487. /* TOUCH */
  488. }
  489. .fc-event:hover .fc-event-resizer,
  490. .fc-event-selected .fc-event-resizer {
  491. display: block;
  492. }
  493. .fc-event-selected .fc-event-resizer {
  494. border-radius: 4px;
  495. border-radius: calc(var(--fc-event-resizer-dot-total-width, 8px) / 2);
  496. border-width: 1px;
  497. border-width: var(--fc-event-resizer-dot-border-width, 1px);
  498. width: 8px;
  499. width: var(--fc-event-resizer-dot-total-width, 8px);
  500. height: 8px;
  501. height: var(--fc-event-resizer-dot-total-width, 8px);
  502. border-style: solid;
  503. border-color: inherit;
  504. background: #fff;
  505. background: var(--fc-page-bg-color, #fff);
  506. /* expand hit area */
  507. }
  508. .fc-event-selected .fc-event-resizer:before {
  509. content: "";
  510. position: absolute;
  511. top: -20px;
  512. left: -20px;
  513. right: -20px;
  514. bottom: -20px;
  515. }
  516. /* selecting (always TOUCH) */
  517. /* ---------------------------------------------------------------------------------------------------- */
  518. .fc-event-selected {
  519. box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
  520. /* expand hit area (subclasses should expand) */
  521. }
  522. .fc-event-selected:before {
  523. content: "";
  524. position: absolute;
  525. z-index: 3;
  526. top: 0;
  527. left: 0;
  528. right: 0;
  529. bottom: 0;
  530. }
  531. .fc-event-selected {
  532. /* dimmer effect */
  533. }
  534. .fc-event-selected:after {
  535. content: "";
  536. background: rgba(0, 0, 0, 0.25);
  537. background: var(--fc-event-selected-overlay-color, rgba(0, 0, 0, 0.25));
  538. position: absolute;
  539. z-index: 1;
  540. /* assume there's a border on all sides. overcome it. */
  541. /* sometimes there's NOT a border, in which case the dimmer will go over */
  542. /* an adjacent border, which looks fine. */
  543. top: -1px;
  544. left: -1px;
  545. right: -1px;
  546. bottom: -1px;
  547. }
  548. /*
  549. A HORIZONTAL event
  550. */
  551. .fc-h-event {
  552. /* allowed to be top-level */
  553. display: block;
  554. border: 1px solid #3788d8;
  555. border: 1px solid var(--fc-event-border-color, #3788d8);
  556. background-color: #3788d8;
  557. background-color: var(--fc-event-bg-color, #3788d8);
  558. }
  559. .fc-h-event .fc-event-main {
  560. color: #fff;
  561. color: var(--fc-event-text-color, #fff);
  562. }
  563. .fc-h-event .fc-event-main-frame {
  564. display: flex; /* for make fc-event-title-container expand */
  565. }
  566. .fc-h-event .fc-event-time {
  567. max-width: 100%; /* clip overflow on this element */
  568. overflow: hidden;
  569. }
  570. .fc-h-event .fc-event-title-container {
  571. /* serves as a container for the sticky cushion */
  572. flex-grow: 1;
  573. flex-shrink: 1;
  574. min-width: 0; /* important for allowing to shrink all the way */
  575. }
  576. .fc-h-event .fc-event-title {
  577. display: inline-block; /* need this to be sticky cross-browser */
  578. vertical-align: top; /* for not messing up line-height */
  579. left: 0; /* for sticky */
  580. right: 0; /* for sticky */
  581. max-width: 100%; /* clip overflow on this element */
  582. overflow: hidden;
  583. }
  584. .fc-h-event.fc-event-selected:before {
  585. /* expand hit area */
  586. top: -10px;
  587. bottom: -10px;
  588. }
  589. /* adjust border and border-radius (if there is any) for non-start/end */
  590. .fc-direction-ltr .fc-daygrid-block-event:not(.fc-event-start),
  591. .fc-direction-rtl .fc-daygrid-block-event:not(.fc-event-end) {
  592. border-top-left-radius: 0;
  593. border-bottom-left-radius: 0;
  594. border-left-width: 0;
  595. }
  596. .fc-direction-ltr .fc-daygrid-block-event:not(.fc-event-end),
  597. .fc-direction-rtl .fc-daygrid-block-event:not(.fc-event-start) {
  598. border-top-right-radius: 0;
  599. border-bottom-right-radius: 0;
  600. border-right-width: 0;
  601. }
  602. /* resizers */
  603. .fc-h-event:not(.fc-event-selected) .fc-event-resizer {
  604. top: 0;
  605. bottom: 0;
  606. width: 8px;
  607. width: var(--fc-event-resizer-thickness, 8px);
  608. }
  609. .fc-direction-ltr .fc-h-event:not(.fc-event-selected) .fc-event-resizer-start,
  610. .fc-direction-rtl .fc-h-event:not(.fc-event-selected) .fc-event-resizer-end {
  611. cursor: w-resize;
  612. left: -4px;
  613. left: calc(var(--fc-event-resizer-thickness, 8px) / -2);
  614. }
  615. .fc-direction-ltr .fc-h-event:not(.fc-event-selected) .fc-event-resizer-end,
  616. .fc-direction-rtl .fc-h-event:not(.fc-event-selected) .fc-event-resizer-start {
  617. cursor: e-resize;
  618. right: -4px;
  619. right: calc(var(--fc-event-resizer-thickness, 8px) / -2);
  620. }
  621. /* resizers for TOUCH */
  622. .fc-h-event.fc-event-selected .fc-event-resizer {
  623. top: 50%;
  624. margin-top: -4px;
  625. margin-top: calc(var(--fc-event-resizer-dot-total-width, 8px) / -2);
  626. }
  627. .fc-direction-ltr .fc-h-event.fc-event-selected .fc-event-resizer-start,
  628. .fc-direction-rtl .fc-h-event.fc-event-selected .fc-event-resizer-end {
  629. left: -4px;
  630. left: calc(var(--fc-event-resizer-dot-total-width, 8px) / -2);
  631. }
  632. .fc-direction-ltr .fc-h-event.fc-event-selected .fc-event-resizer-end,
  633. .fc-direction-rtl .fc-h-event.fc-event-selected .fc-event-resizer-start {
  634. right: -4px;
  635. right: calc(var(--fc-event-resizer-dot-total-width, 8px) / -2);
  636. }
  637. :root {
  638. --fc-daygrid-event-dot-width: 8px;
  639. }
  640. .fc .fc-popover {
  641. position: fixed;
  642. top: 0; /* for when not positioned yet */
  643. box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);
  644. }
  645. .fc .fc-popover-header {
  646. display: flex;
  647. flex-direction: row;
  648. justify-content: space-between;
  649. align-items: center;
  650. padding: 3px 4px;
  651. }
  652. .fc .fc-popover-title {
  653. margin: 0 2px;
  654. }
  655. .fc .fc-popover-close {
  656. cursor: pointer;
  657. opacity: 0.65;
  658. font-size: 1.1em;
  659. }
  660. .fc-theme-standard .fc-popover {
  661. border: 1px solid #ddd;
  662. border: 1px solid var(--fc-border-color, #ddd);
  663. background: #fff;
  664. background: var(--fc-page-bg-color, #fff);
  665. }
  666. .fc-theme-standard .fc-popover-header {
  667. background: rgba(208, 208, 208, 0.3);
  668. background: var(--fc-neutral-bg-color, rgba(208, 208, 208, 0.3));
  669. }
  670. /* help things clear margins of inner content */
  671. .fc-daygrid-day-frame,
  672. .fc-daygrid-day-events,
  673. .fc-daygrid-event-harness {
  674. /* for event top/bottom margins */
  675. }
  676. .fc-daygrid-day-frame:before,
  677. .fc-daygrid-day-events:before,
  678. .fc-daygrid-event-harness:before {
  679. content: "";
  680. clear: both;
  681. display: table;
  682. }
  683. .fc-daygrid-day-frame:after,
  684. .fc-daygrid-day-events:after,
  685. .fc-daygrid-event-harness:after {
  686. content: "";
  687. clear: both;
  688. display: table;
  689. }
  690. .fc .fc-daygrid-body {
  691. /* a <div> that wraps the table */
  692. position: relative;
  693. z-index: 1; /* container inner z-index's because <tr>s can't do it */
  694. }
  695. .fc .fc-daygrid-day.fc-day-today {
  696. background-color: rgba(255, 220, 40, 0.15);
  697. background-color: var(--fc-today-bg-color, rgba(255, 220, 40, 0.15));
  698. }
  699. .fc .fc-daygrid-day-frame {
  700. position: relative;
  701. min-height: 100%; /* seems to work better than `height` because sets height after rows/cells naturally do it */
  702. }
  703. .fc {
  704. /* cell top */
  705. }
  706. .fc .fc-daygrid-day-top {
  707. display: flex;
  708. flex-direction: row-reverse;
  709. }
  710. .fc .fc-day-other .fc-daygrid-day-top {
  711. opacity: 0.3;
  712. }
  713. .fc {
  714. /* day number (within cell top) */
  715. }
  716. .fc .fc-daygrid-day-number {
  717. position: relative;
  718. z-index: 4;
  719. padding: 4px;
  720. }
  721. .fc {
  722. /* event container */
  723. }
  724. .fc .fc-daygrid-day-events {
  725. margin-top: 1px; /* needs to be margin, not padding, so that available cell height can be computed */
  726. }
  727. .fc {
  728. /* positioning for balanced vs natural */
  729. }
  730. .fc .fc-daygrid-body-balanced .fc-daygrid-day-events {
  731. position: absolute;
  732. left: 0;
  733. right: 0;
  734. }
  735. .fc .fc-daygrid-body-unbalanced .fc-daygrid-day-events {
  736. position: relative; /* for containing abs positioned event harnesses */
  737. min-height: 2em; /* in addition to being a min-height during natural height, equalizes the heights a little bit */
  738. }
  739. .fc .fc-daygrid-body-natural {
  740. /* can coexist with -unbalanced */
  741. }
  742. .fc .fc-daygrid-body-natural .fc-daygrid-day-events {
  743. margin-bottom: 1em;
  744. }
  745. .fc {
  746. /* event harness */
  747. }
  748. .fc .fc-daygrid-event-harness {
  749. position: relative;
  750. }
  751. .fc .fc-daygrid-event-harness-abs {
  752. position: absolute;
  753. top: 0; /* fallback coords for when cannot yet be computed */
  754. left: 0; /* */
  755. right: 0; /* */
  756. }
  757. .fc .fc-daygrid-bg-harness {
  758. position: absolute;
  759. top: 0;
  760. bottom: 0;
  761. }
  762. .fc {
  763. /* bg content */
  764. }
  765. .fc .fc-daygrid-day-bg .fc-non-business {
  766. z-index: 1;
  767. }
  768. .fc .fc-daygrid-day-bg .fc-bg-event {
  769. z-index: 2;
  770. }
  771. .fc .fc-daygrid-day-bg .fc-highlight {
  772. z-index: 3;
  773. }
  774. .fc {
  775. /* events */
  776. }
  777. .fc .fc-daygrid-event {
  778. z-index: 6;
  779. margin-top: 1px;
  780. }
  781. .fc .fc-daygrid-event.fc-event-mirror {
  782. z-index: 7;
  783. }
  784. .fc {
  785. /* cell bottom (within day-events) */
  786. }
  787. .fc .fc-daygrid-day-bottom {
  788. font-size: 0.85em;
  789. margin: 2px 3px 0;
  790. }
  791. .fc .fc-daygrid-more-link {
  792. position: relative;
  793. z-index: 4;
  794. cursor: pointer;
  795. }
  796. .fc {
  797. /* week number (within frame) */
  798. }
  799. .fc .fc-daygrid-week-number {
  800. position: absolute;
  801. z-index: 5;
  802. top: 0;
  803. padding: 2px;
  804. min-width: 1.5em;
  805. text-align: center;
  806. background-color: rgba(208, 208, 208, 0.3);
  807. background-color: var(--fc-neutral-bg-color, rgba(208, 208, 208, 0.3));
  808. color: #808080;
  809. color: var(--fc-neutral-text-color, #808080);
  810. }
  811. .fc {
  812. /* popover */
  813. }
  814. .fc .fc-more-popover {
  815. z-index: 8;
  816. }
  817. .fc .fc-more-popover .fc-popover-body {
  818. min-width: 220px;
  819. padding: 10px;
  820. }
  821. .fc-direction-ltr .fc-daygrid-event.fc-event-start,
  822. .fc-direction-rtl .fc-daygrid-event.fc-event-end {
  823. margin-left: 2px;
  824. }
  825. .fc-direction-ltr .fc-daygrid-event.fc-event-end,
  826. .fc-direction-rtl .fc-daygrid-event.fc-event-start {
  827. margin-right: 2px;
  828. }
  829. .fc-direction-ltr .fc-daygrid-week-number {
  830. left: 0;
  831. border-radius: 0 0 3px 0;
  832. }
  833. .fc-direction-rtl .fc-daygrid-week-number {
  834. right: 0;
  835. border-radius: 0 0 0 3px;
  836. }
  837. .fc-liquid-hack .fc-daygrid-day-frame {
  838. position: static; /* will cause inner absolute stuff to expand to <td> */
  839. }
  840. .fc-daygrid-event {
  841. /* make root-level, because will be dragged-and-dropped outside of a component root */
  842. position: relative; /* for z-indexes assigned later */
  843. white-space: nowrap;
  844. border-radius: 3px; /* dot event needs this to when selected */
  845. font-size: 0.85em;
  846. font-size: var(--fc-small-font-size, 0.85em);
  847. }
  848. /* --- the rectangle ("block") style of event --- */
  849. .fc-daygrid-block-event .fc-event-time {
  850. font-weight: bold;
  851. }
  852. .fc-daygrid-block-event .fc-event-time,
  853. .fc-daygrid-block-event .fc-event-title {
  854. padding: 1px;
  855. }
  856. /* --- the dot style of event --- */
  857. .fc-daygrid-dot-event {
  858. display: flex;
  859. align-items: center;
  860. padding: 2px 0;
  861. }
  862. .fc-daygrid-dot-event .fc-event-title {
  863. flex-grow: 1;
  864. flex-shrink: 1;
  865. min-width: 0; /* important for allowing to shrink all the way */
  866. overflow: hidden;
  867. font-weight: bold;
  868. white-space: normal;
  869. }
  870. .fc-daygrid-dot-event:hover,
  871. .fc-daygrid-dot-event.fc-event-mirror {
  872. background: rgba(0, 0, 0, 0.1);
  873. }
  874. .fc-daygrid-dot-event.fc-event-selected:before {
  875. /* expand hit area */
  876. top: -10px;
  877. bottom: -10px;
  878. }
  879. .fc-daygrid-event-dot {
  880. /* the actual dot */
  881. margin: 0 4px;
  882. box-sizing: content-box;
  883. width: 0;
  884. height: 0;
  885. border: 4px solid #3788d8;
  886. border: calc(var(--fc-daygrid-event-dot-width, 8px) / 2) solid var(--fc-event-border-color, #3788d8);
  887. border-radius: 4px;
  888. border-radius: calc(var(--fc-daygrid-event-dot-width, 8px) / 2);
  889. }
  890. /* --- spacing between time and title --- */
  891. .fc-direction-ltr .fc-daygrid-event .fc-event-time {
  892. margin-right: 3px;
  893. }
  894. .fc-direction-rtl .fc-daygrid-event .fc-event-time {
  895. margin-left: 3px;
  896. }
  897. /*
  898. A VERTICAL event
  899. */
  900. .fc-v-event {
  901. /* allowed to be top-level */
  902. display: block;
  903. border: 1px solid #3788d8;
  904. border: 1px solid var(--fc-event-border-color, #3788d8);
  905. background-color: #3788d8;
  906. background-color: var(--fc-event-bg-color, #3788d8);
  907. }
  908. .fc-v-event .fc-event-main {
  909. color: #fff;
  910. color: var(--fc-event-text-color, #fff);
  911. height: 100%;
  912. }
  913. .fc-v-event .fc-event-main-frame {
  914. height: 100%;
  915. display: flex;
  916. flex-direction: column;
  917. }
  918. .fc-v-event .fc-event-time {
  919. flex-grow: 0;
  920. flex-shrink: 0;
  921. max-height: 100%;
  922. overflow: hidden;
  923. }
  924. .fc-v-event .fc-event-title-container {
  925. /* a container for the sticky cushion */
  926. flex-grow: 1;
  927. flex-shrink: 1;
  928. min-height: 0; /* important for allowing to shrink all the way */
  929. }
  930. .fc-v-event .fc-event-title {
  931. /* will have fc-sticky on it */
  932. top: 0;
  933. bottom: 0;
  934. max-height: 100%; /* clip overflow */
  935. overflow: hidden;
  936. }
  937. .fc-v-event:not(.fc-event-start) {
  938. border-top-width: 0;
  939. border-top-left-radius: 0;
  940. border-top-right-radius: 0;
  941. }
  942. .fc-v-event:not(.fc-event-end) {
  943. border-bottom-width: 0;
  944. border-bottom-left-radius: 0;
  945. border-bottom-right-radius: 0;
  946. }
  947. .fc-v-event.fc-event-selected:before {
  948. /* expand hit area */
  949. left: -10px;
  950. right: -10px;
  951. }
  952. .fc-v-event {
  953. /* resizer (mouse AND touch) */
  954. }
  955. .fc-v-event .fc-event-resizer-start {
  956. cursor: n-resize;
  957. }
  958. .fc-v-event .fc-event-resizer-end {
  959. cursor: s-resize;
  960. }
  961. .fc-v-event {
  962. /* resizer for MOUSE */
  963. }
  964. .fc-v-event:not(.fc-event-selected) .fc-event-resizer {
  965. height: 8px;
  966. height: var(--fc-event-resizer-thickness, 8px);
  967. left: 0;
  968. right: 0;
  969. }
  970. .fc-v-event:not(.fc-event-selected) .fc-event-resizer-start {
  971. top: -4px;
  972. top: calc(var(--fc-event-resizer-thickness, 8px) / -2);
  973. }
  974. .fc-v-event:not(.fc-event-selected) .fc-event-resizer-end {
  975. bottom: -4px;
  976. bottom: calc(var(--fc-event-resizer-thickness, 8px) / -2);
  977. }
  978. .fc-v-event {
  979. /* resizer for TOUCH (when event is "selected") */
  980. }
  981. .fc-v-event.fc-event-selected .fc-event-resizer {
  982. left: 50%;
  983. margin-left: -4px;
  984. margin-left: calc(var(--fc-event-resizer-dot-total-width, 8px) / -2);
  985. }
  986. .fc-v-event.fc-event-selected .fc-event-resizer-start {
  987. top: -4px;
  988. top: calc(var(--fc-event-resizer-dot-total-width, 8px) / -2);
  989. }
  990. .fc-v-event.fc-event-selected .fc-event-resizer-end {
  991. bottom: -4px;
  992. bottom: calc(var(--fc-event-resizer-dot-total-width, 8px) / -2);
  993. }
  994. .fc .fc-timegrid .fc-daygrid-body {
  995. /* the all-day daygrid within the timegrid view */
  996. z-index: 2; /* put above the timegrid-body so that more-popover is above everything. TODO: better solution */
  997. }
  998. .fc .fc-timegrid-divider {
  999. padding: 0 0 2px; /* browsers get confused when you set height. use padding instead */
  1000. }
  1001. .fc .fc-timegrid-body {
  1002. position: relative;
  1003. z-index: 1; /* scope the z-indexes of slots and cols */
  1004. min-height: 100%; /* fill height always, even when slat table doesn't grow */
  1005. }
  1006. .fc .fc-timegrid-axis-chunk {
  1007. /* for advanced ScrollGrid */
  1008. position: relative; /* offset parent for now-indicator-container */
  1009. }
  1010. .fc .fc-timegrid-axis-chunk > table {
  1011. position: relative;
  1012. z-index: 1; /* above the now-indicator-container */
  1013. }
  1014. .fc .fc-timegrid-slots {
  1015. position: relative;
  1016. z-index: 1;
  1017. }
  1018. .fc .fc-timegrid-slot {
  1019. /* a <td> */
  1020. height: 1.5em;
  1021. border-bottom: 0; /* each cell owns its top border */
  1022. }
  1023. .fc .fc-timegrid-slot:empty:before {
  1024. content: "\00a0"; /* make sure there's at least an empty space to create height for height syncing */
  1025. }
  1026. .fc .fc-timegrid-slot-minor {
  1027. border-top-style: dotted;
  1028. }
  1029. .fc .fc-timegrid-slot-label-cushion {
  1030. display: inline-block;
  1031. white-space: nowrap;
  1032. }
  1033. .fc .fc-timegrid-slot-label {
  1034. vertical-align: middle; /* vertical align the slots */
  1035. }
  1036. .fc {
  1037. /* slots AND axis cells (top-left corner of view including the "all-day" text) */
  1038. }
  1039. .fc .fc-timegrid-axis-cushion,
  1040. .fc .fc-timegrid-slot-label-cushion {
  1041. padding: 0 4px;
  1042. }
  1043. .fc {
  1044. /* axis cells (top-left corner of view including the "all-day" text) */
  1045. /* vertical align is more complicated, uses flexbox */
  1046. }
  1047. .fc .fc-timegrid-axis-frame-liquid {
  1048. height: 100%; /* will need liquid-hack in FF */
  1049. }
  1050. .fc .fc-timegrid-axis-frame {
  1051. overflow: hidden;
  1052. display: flex;
  1053. align-items: center; /* vertical align */
  1054. justify-content: flex-end; /* horizontal align. matches text-align below */
  1055. }
  1056. .fc .fc-timegrid-axis-cushion {
  1057. max-width: 60px; /* limits the width of the "all-day" text */
  1058. flex-shrink: 0; /* allows text to expand how it normally would, regardless of constrained width */
  1059. }
  1060. .fc-direction-ltr .fc-timegrid-slot-label-frame {
  1061. text-align: right;
  1062. }
  1063. .fc-direction-rtl .fc-timegrid-slot-label-frame {
  1064. text-align: left;
  1065. }
  1066. .fc-liquid-hack .fc-timegrid-axis-frame-liquid {
  1067. height: auto;
  1068. position: absolute;
  1069. top: 0;
  1070. right: 0;
  1071. bottom: 0;
  1072. left: 0;
  1073. }
  1074. .fc .fc-timegrid-col.fc-day-today {
  1075. background-color: rgba(255, 220, 40, 0.15);
  1076. background-color: var(--fc-today-bg-color, rgba(255, 220, 40, 0.15));
  1077. }
  1078. .fc .fc-timegrid-col-frame {
  1079. min-height: 100%; /* liquid-hack is below */
  1080. position: relative;
  1081. }
  1082. .fc-liquid-hack .fc-timegrid-col-frame {
  1083. height: auto;
  1084. position: absolute;
  1085. top: 0;
  1086. right: 0;
  1087. bottom: 0;
  1088. left: 0;
  1089. }
  1090. .fc-media-screen .fc-timegrid-cols {
  1091. position: absolute; /* no z-index. children will decide and go above slots */
  1092. top: 0;
  1093. left: 0;
  1094. right: 0;
  1095. bottom: 0;
  1096. }
  1097. .fc-media-screen .fc-timegrid-cols > table {
  1098. height: 100%;
  1099. }
  1100. .fc-media-screen .fc-timegrid-col-bg,
  1101. .fc-media-screen .fc-timegrid-col-events,
  1102. .fc-media-screen .fc-timegrid-now-indicator-container {
  1103. position: absolute;
  1104. top: 0;
  1105. left: 0;
  1106. right: 0;
  1107. }
  1108. .fc-media-screen .fc-timegrid-event-harness {
  1109. position: absolute; /* top/left/right/bottom will all be set by JS */
  1110. }
  1111. .fc {
  1112. /* bg */
  1113. }
  1114. .fc .fc-timegrid-col-bg {
  1115. z-index: 2; /* TODO: kill */
  1116. }
  1117. .fc .fc-timegrid-col-bg .fc-non-business {
  1118. z-index: 1;
  1119. }
  1120. .fc .fc-timegrid-col-bg .fc-bg-event {
  1121. z-index: 2;
  1122. }
  1123. .fc .fc-timegrid-col-bg .fc-highlight {
  1124. z-index: 3;
  1125. }
  1126. .fc .fc-timegrid-bg-harness {
  1127. position: absolute; /* top/bottom will be set by JS */
  1128. left: 0;
  1129. right: 0;
  1130. }
  1131. .fc {
  1132. /* fg events */
  1133. /* (the mirror segs are put into a separate container with same classname, */
  1134. /* and they must be after the normal seg container to appear at a higher z-index) */
  1135. }
  1136. .fc .fc-timegrid-col-events {
  1137. z-index: 3;
  1138. /* child event segs have z-indexes that are scoped within this div */
  1139. }
  1140. .fc {
  1141. /* now indicator */
  1142. }
  1143. .fc .fc-timegrid-now-indicator-container {
  1144. bottom: 0;
  1145. overflow: hidden; /* don't let overflow of lines/arrows cause unnecessary scrolling */
  1146. /* z-index is set on the individual elements */
  1147. }
  1148. .fc-direction-ltr .fc-timegrid-col-events {
  1149. margin: 0 2.5% 0 2px;
  1150. }
  1151. .fc-direction-rtl .fc-timegrid-col-events {
  1152. margin: 0 2px 0 2.5%;
  1153. }
  1154. .fc-timegrid-event-harness-inset .fc-timegrid-event,
  1155. .fc-timegrid-event.fc-event-mirror {
  1156. box-shadow: 0px 0px 0px 1px #fff;
  1157. box-shadow: 0px 0px 0px 1px var(--fc-page-bg-color, #fff);
  1158. }
  1159. .fc-timegrid-event {
  1160. /* events need to be root */
  1161. font-size: 0.85em;
  1162. font-size: var(--fc-small-font-size, 0.85em);
  1163. border-radius: 3px;
  1164. }
  1165. .fc-timegrid-event .fc-event-main {
  1166. padding: 1px 1px 0;
  1167. }
  1168. .fc-timegrid-event .fc-event-time {
  1169. white-space: nowrap;
  1170. font-size: 0.85em;
  1171. font-size: var(--fc-small-font-size, 0.85em);
  1172. margin-bottom: 1px;
  1173. }
  1174. .fc-timegrid-event-condensed .fc-event-main-frame {
  1175. flex-direction: row;
  1176. overflow: hidden;
  1177. }
  1178. .fc-timegrid-event-condensed .fc-event-time:after {
  1179. content: "\00a0-\00a0"; /* dash surrounded by non-breaking spaces */
  1180. }
  1181. .fc-timegrid-event-condensed .fc-event-title {
  1182. font-size: 0.85em;
  1183. font-size: var(--fc-small-font-size, 0.85em);
  1184. }
  1185. .fc-media-screen .fc-timegrid-event {
  1186. position: absolute; /* absolute WITHIN the harness */
  1187. top: 0;
  1188. bottom: 1px; /* stay away from bottom slot line */
  1189. left: 0;
  1190. right: 0;
  1191. }
  1192. .fc {
  1193. /* line */
  1194. }
  1195. .fc .fc-timegrid-now-indicator-line {
  1196. position: absolute;
  1197. z-index: 4;
  1198. left: 0;
  1199. right: 0;
  1200. border-style: solid;
  1201. border-color: red;
  1202. border-color: var(--fc-now-indicator-color, red);
  1203. border-width: 1px 0 0;
  1204. }
  1205. .fc {
  1206. /* arrow */
  1207. }
  1208. .fc .fc-timegrid-now-indicator-arrow {
  1209. position: absolute;
  1210. z-index: 4;
  1211. margin-top: -5px; /* vertically center on top coordinate */
  1212. border-style: solid;
  1213. border-color: red;
  1214. border-color: var(--fc-now-indicator-color, red);
  1215. }
  1216. .fc-direction-ltr .fc-timegrid-now-indicator-arrow {
  1217. left: 0;
  1218. /* triangle pointing right. TODO: mixin */
  1219. border-width: 5px 0 5px 6px;
  1220. border-top-color: transparent;
  1221. border-bottom-color: transparent;
  1222. }
  1223. .fc-direction-rtl .fc-timegrid-now-indicator-arrow {
  1224. right: 0;
  1225. /* triangle pointing left. TODO: mixin */
  1226. border-width: 5px 6px 5px 0;
  1227. border-top-color: transparent;
  1228. border-bottom-color: transparent;
  1229. }
  1230. :root {
  1231. --fc-list-event-dot-width: 10px;
  1232. --fc-list-event-hover-bg-color: #f5f5f5;
  1233. }
  1234. .fc-theme-standard .fc-list {
  1235. border: 1px solid #ddd;
  1236. border: 1px solid var(--fc-border-color, #ddd);
  1237. }
  1238. .fc {
  1239. /* message when no events */
  1240. }
  1241. .fc .fc-list-empty {
  1242. background-color: rgba(208, 208, 208, 0.3);
  1243. background-color: var(--fc-neutral-bg-color, rgba(208, 208, 208, 0.3));
  1244. height: 100%;
  1245. display: flex;
  1246. justify-content: center;
  1247. align-items: center; /* vertically aligns fc-list-empty-inner */
  1248. }
  1249. .fc .fc-list-empty-cushion {
  1250. margin: 5em 0;
  1251. }
  1252. .fc {
  1253. /* table within the scroller */
  1254. /* ---------------------------------------------------------------------------------------------------- */
  1255. }
  1256. .fc .fc-list-table {
  1257. width: 100%;
  1258. border-style: hidden; /* kill outer border on theme */
  1259. }
  1260. .fc .fc-list-table tr > * {
  1261. border-left: 0;
  1262. border-right: 0;
  1263. }
  1264. .fc .fc-list-sticky .fc-list-day > * {
  1265. /* the cells */
  1266. position: -webkit-sticky;
  1267. position: sticky;
  1268. top: 0;
  1269. background: #fff;
  1270. background: var(--fc-page-bg-color, #fff); /* for when headers are styled to be transparent and sticky */
  1271. }
  1272. .fc .fc-list-table th {
  1273. padding: 0; /* uses an inner-wrapper instead... */
  1274. }
  1275. .fc .fc-list-table td,
  1276. .fc .fc-list-day-cushion {
  1277. padding: 8px 14px;
  1278. }
  1279. .fc {
  1280. /* date heading rows */
  1281. /* ---------------------------------------------------------------------------------------------------- */
  1282. }
  1283. .fc .fc-list-day-cushion:after {
  1284. content: "";
  1285. clear: both;
  1286. display: table; /* clear floating */
  1287. }
  1288. .fc-theme-standard .fc-list-day-cushion {
  1289. background-color: rgba(208, 208, 208, 0.3);
  1290. background-color: var(--fc-neutral-bg-color, rgba(208, 208, 208, 0.3));
  1291. }
  1292. .fc-direction-ltr .fc-list-day-text,
  1293. .fc-direction-rtl .fc-list-day-side-text {
  1294. float: left;
  1295. }
  1296. .fc-direction-ltr .fc-list-day-side-text,
  1297. .fc-direction-rtl .fc-list-day-text {
  1298. float: right;
  1299. }
  1300. /* make the dot closer to the event title */
  1301. .fc-direction-ltr .fc-list-table .fc-list-event-graphic {
  1302. padding-right: 0;
  1303. }
  1304. .fc-direction-rtl .fc-list-table .fc-list-event-graphic {
  1305. padding-left: 0;
  1306. }
  1307. .fc .fc-list-event.fc-event-forced-url {
  1308. cursor: pointer; /* whole row will seem clickable */
  1309. }
  1310. .fc .fc-list-event:hover td {
  1311. background-color: #f5f5f5;
  1312. background-color: var(--fc-list-event-hover-bg-color, #f5f5f5);
  1313. }
  1314. .fc {
  1315. /* shrink certain cols */
  1316. }
  1317. .fc .fc-list-event-graphic,
  1318. .fc .fc-list-event-time {
  1319. white-space: nowrap;
  1320. width: 1px;
  1321. }
  1322. .fc .fc-list-event-dot {
  1323. display: inline-block;
  1324. box-sizing: content-box;
  1325. width: 0;
  1326. height: 0;
  1327. border: 5px solid #3788d8;
  1328. border: calc(var(--fc-list-event-dot-width, 10px) / 2) solid var(--fc-event-border-color, #3788d8);
  1329. border-radius: 5px;
  1330. border-radius: calc(var(--fc-list-event-dot-width, 10px) / 2);
  1331. }
  1332. .fc {
  1333. /* reset <a> styling */
  1334. }
  1335. .fc .fc-list-event-title a {
  1336. color: inherit;
  1337. text-decoration: none;
  1338. }
  1339. .fc {
  1340. /* underline link when hovering over any part of row */
  1341. }
  1342. .fc .fc-list-event.fc-event-forced-url:hover a {
  1343. text-decoration: underline;
  1344. }
  1345. .fc-theme-bootstrap a:not([href]) {
  1346. color: inherit; /* natural color for navlinks */
  1347. }