OneBot: Leantime 改造版源码(BOM/Univer 表格/AI 接管/品牌替换等)
BIN
public/assets/audio/calm_alarm.wav
Normal file
BIN
public/assets/audio/one_bell.mp3
Normal file
BIN
public/assets/audio/one_chime.mp3
Normal file
BIN
public/assets/audio/three_beeps.mp3
Normal file
BIN
public/assets/audio/three_boops.mp3
Normal file
63
public/assets/css/components/accessibility.css
Normal file
@@ -0,0 +1,63 @@
|
||||
/**
|
||||
* Accessibility Enhancement Styles
|
||||
* Provides support for user preferences and assistive technologies
|
||||
*/
|
||||
|
||||
/* High contrast mode support for Windows High Contrast users */
|
||||
@media (prefers-contrast: high) {
|
||||
a {
|
||||
text-decoration: underline;
|
||||
font-weight: var(--font-weight-medium);
|
||||
}
|
||||
|
||||
a:focus-visible {
|
||||
outline-width: 3px;
|
||||
outline-offset: 4px;
|
||||
}
|
||||
|
||||
.latest-todos a,
|
||||
.sortableTicketList a {
|
||||
font-weight: var(--font-weight-semibold);
|
||||
}
|
||||
|
||||
button,
|
||||
.btn {
|
||||
border-width: 2px;
|
||||
}
|
||||
}
|
||||
|
||||
/* Reduced motion for users with vestibular disorders */
|
||||
@media (prefers-reduced-motion: reduce) {
|
||||
*,
|
||||
*::before,
|
||||
*::after {
|
||||
animation-duration: 0.01ms !important;
|
||||
animation-iteration-count: 1 !important;
|
||||
transition-duration: 0.01ms !important;
|
||||
scroll-behavior: auto !important;
|
||||
}
|
||||
}
|
||||
|
||||
/* Forced colors mode - respects user's color overrides (Windows High Contrast) */
|
||||
@media (forced-colors: active) {
|
||||
a:focus-visible {
|
||||
outline: 2px solid currentColor;
|
||||
outline-offset: 2px;
|
||||
}
|
||||
|
||||
button:focus-visible,
|
||||
input:focus-visible,
|
||||
select:focus-visible,
|
||||
textarea:focus-visible {
|
||||
outline: 2px solid currentColor;
|
||||
}
|
||||
}
|
||||
|
||||
/* Increased line height for dyslexic users using specific fonts */
|
||||
.font-atkinson,
|
||||
.font-shantell,
|
||||
[style*="font-family: 'Atkinson"],
|
||||
[style*="font-family: 'Shantell"] {
|
||||
line-height: var(--line-height-relaxed);
|
||||
letter-spacing: 0.02em;
|
||||
}
|
||||
457
public/assets/css/components/calendar.css
Normal file
@@ -0,0 +1,457 @@
|
||||
.day-selector {
|
||||
overflow-x: auto;
|
||||
-webkit-overflow-scrolling: touch;
|
||||
}
|
||||
|
||||
.day-button {
|
||||
border:none;
|
||||
background:var(--secondary-background);
|
||||
box-shadow: var(--min-shadow);
|
||||
}
|
||||
|
||||
.day-button.today {
|
||||
background-color: var(--interactive-icon-color);
|
||||
}
|
||||
|
||||
.day-button:hover {
|
||||
background-color: var(--interactive-icon-color);
|
||||
}
|
||||
|
||||
.day-button.active {
|
||||
background-color: var(--main-action-bg);
|
||||
color: var(--main-action-hover-color);
|
||||
}
|
||||
|
||||
/*#calendar {*/
|
||||
/* padding-top: 10px;*/
|
||||
/* position: relative;*/
|
||||
/* z-index: 5;*/
|
||||
/* flex: 1;*/
|
||||
/* min-height: 0;*/
|
||||
/* display: flex;*/
|
||||
/* flex-direction: column;*/
|
||||
/* height: calc(100% - 40px);*/
|
||||
/* display: flex;*/
|
||||
/* flex-direction: column;*/
|
||||
/*}*/
|
||||
|
||||
/*.fc {*/
|
||||
/* height: calc(100% - 40px);*/
|
||||
/* display: flex;*/
|
||||
/* flex-direction: column;*/
|
||||
/*}*/
|
||||
|
||||
/*.fc-view > .fc-scrollgrid > tbody {*/
|
||||
/* height:100%;*/
|
||||
/* display:flex;*/
|
||||
/* flex-direction: column;*/
|
||||
/* overflow-y: auto;*/
|
||||
/*}*/
|
||||
|
||||
/*.fc-view > .fc-scrollgrid > tbody .fc-scrollgrid-section-body:last-child {*/
|
||||
/* height:100%;*/
|
||||
/*}*/
|
||||
|
||||
/*.fc .fc-view-harness {*/
|
||||
/* flex: 1 1 auto !important;*/
|
||||
/* min-height: 0 !important;*/
|
||||
/*}*/
|
||||
|
||||
/*.fc-scrollgrid {*/
|
||||
/* display: flex !important;*/
|
||||
/* flex-direction: column !important;*/
|
||||
/* height: 100% !important;*/
|
||||
/*}*/
|
||||
|
||||
/*.fc .fc-toolbar-title {*/
|
||||
/* font-size: var(--font-size-xl);*/
|
||||
/*}*/
|
||||
|
||||
/*.fc .fc-multimonth {*/
|
||||
/* height:100%;*/
|
||||
/*}*/
|
||||
|
||||
/*.fc .fc-multimonth,*/
|
||||
/*.fc-theme-standard td, .fc-theme-standard th{*/
|
||||
/* border:none;*/
|
||||
/*}*/
|
||||
|
||||
/*.fc .fc-daygrid-day-top {*/
|
||||
/* flex-direction: column;*/
|
||||
/* text-align:center;*/
|
||||
/*}*/
|
||||
|
||||
/*.fc .fc-daygrid-day-bottom {*/
|
||||
/* text-align:center;*/
|
||||
/* margin-top:-10px !important;*/
|
||||
/*}*/
|
||||
|
||||
/*.fc .fc-daygrid-more-link {*/
|
||||
/* font-size:0px;*/
|
||||
/* float:none;*/
|
||||
/*}*/
|
||||
|
||||
/*.fc .fc-daygrid-more-link:after {*/
|
||||
/* content: "•";*/
|
||||
/* font-size:30px;*/
|
||||
/*}*/
|
||||
|
||||
/*.fc .fc-multimonth-title {*/
|
||||
/* padding:0px 0px 10px 0px;*/
|
||||
/* text-align:left;*/
|
||||
/* font-size: var(--font-size-xl);*/
|
||||
/* font-weight:normal;*/
|
||||
/* display:none;*/
|
||||
/*}*/
|
||||
|
||||
/*.fc .fc-multimonth-singlecol .fc-multimonth-header {*/
|
||||
/* background:none;*/
|
||||
/*}*/
|
||||
|
||||
/*.fc-theme-standard th.fc-col-header-cell:first-child {*/
|
||||
/* border-radius:10px 0px 0px 0px;*/
|
||||
/*}*/
|
||||
|
||||
/*.fc-theme-standard th.fc-col-header-cell:last-child {*/
|
||||
/* border-radius:0px 10px 0px 0px;*/
|
||||
/*}*/
|
||||
|
||||
/*.fc-theme-standard .fc-popover {*/
|
||||
/* border-radius:var(--box-radius);*/
|
||||
/* max-width: 60%;*/
|
||||
/*}*/
|
||||
|
||||
/*.fc-popover-body .fc-h-event .fc-event-title-container {*/
|
||||
/* padding-left:5px;*/
|
||||
/*}*/
|
||||
|
||||
/*.fc-popover-body .fc-event {*/
|
||||
/* margin-bottom:2px;*/
|
||||
/* margin-left:0px !important;*/
|
||||
/*}*/
|
||||
|
||||
/*.fc-popover-body .fc-daygrid-event {*/
|
||||
/* border-radius:0px !important;*/
|
||||
/*}*/
|
||||
|
||||
/*.fc .fc-daygrid-day.fc-day-today {*/
|
||||
/* border-radius:var(--element-radius);*/
|
||||
/*}*/
|
||||
|
||||
/*.fc .fc-multimonth-daygrid {*/
|
||||
/* background:var(--layered-background);*/
|
||||
/*}*/
|
||||
|
||||
/*.fc-multimonth-daygrid-table .fc-daygrid-day-events .fc-daygrid-event-harness {*/
|
||||
|
||||
/*}*/
|
||||
|
||||
/*.fc-scrollgrid-section-body > td {*/
|
||||
/* height: 100% !important;*/
|
||||
/*}*/
|
||||
|
||||
/*.fc-scroller {*/
|
||||
/* height: auto !important;*/
|
||||
/*}*/
|
||||
|
||||
/*.fc-scrollgrid-section-header {*/
|
||||
/* position: sticky;*/
|
||||
/* top: 0;*/
|
||||
/* z-index: 2;*/
|
||||
/* box-shadow:0px 2px 2px var(--neutral);*/
|
||||
/*}*/
|
||||
|
||||
/*.maincontent .fc .fc-timegrid-col.fc-day-today,*/
|
||||
/*.maincontent .fc .fc-daygrid-day.fc-day-today,*/
|
||||
/*.maincontent .fc .fc-button-primary {*/
|
||||
/* background-color: var(--col-title-bg);*/
|
||||
/* color:var(--primary-font-color);*/
|
||||
/* border-radius: var(--element-radius) !important;*/
|
||||
/*}*/
|
||||
|
||||
/*.maincontent .fc .fc-day-today .fc-daygrid-day-number {*/
|
||||
/* color:var(--main-action-color);*/
|
||||
/* background:var(--accent1);*/
|
||||
/* border-radius: var(--element-radius) !important;*/
|
||||
/*}*/
|
||||
|
||||
|
||||
/*.maincontent .fc .fc-button-primary:focus,*/
|
||||
/*.maincontent .fc .fc-button-primary:active {*/
|
||||
/* box-shadow: none;*/
|
||||
/*}*/
|
||||
|
||||
/*.maincontent .fc .fc-button-primary:not(:disabled).fc-button-active,*/
|
||||
/*.maincontent .fc .fc-button-primary:not(:disabled):active,*/
|
||||
/*.maincontent .fc .fc-button-primary:not(:disabled):hover {*/
|
||||
/* background:var(--secondary-action-hover-bg);*/
|
||||
/* color:var(--secondary-action-hover-color);*/
|
||||
/*}*/
|
||||
|
||||
/*.maincontent .fc-multimonth-header-table .fc-col-header-cell {*/
|
||||
/* padding:5px;*/
|
||||
/*}*/
|
||||
|
||||
/*.maincontent .fc-list-event {*/
|
||||
/* background:var(--secondary-background);*/
|
||||
|
||||
/*}*/
|
||||
|
||||
/*.maincontent .fc-list-event td {*/
|
||||
/* padding:5px;*/
|
||||
/*}*/
|
||||
|
||||
/*.maincontent .fc-list-event td.fc-list-event-time {*/
|
||||
/* padding-left:15px;*/
|
||||
/*}*/
|
||||
|
||||
/*.maincontent .fc-v-event {*/
|
||||
/* border:none;*/
|
||||
/* border-left:5px solid var(--fc-event-border-color);*/
|
||||
/*}*/
|
||||
|
||||
/*.maincontent .fc-v-event .fc-event-main-frame {*/
|
||||
/* padding-left:5px;*/
|
||||
/*}*/
|
||||
|
||||
/*.fc-v-event .fc-event-main-frame {*/
|
||||
|
||||
/*}*/
|
||||
|
||||
|
||||
|
||||
/*.maincontent .fc-timegrid-event {*/
|
||||
/* border-radius: 8px;*/
|
||||
/*}*/
|
||||
|
||||
/*.maincontent .fc-timegrid-event-harness-inset .fc-timegrid-event,*/
|
||||
/*.maincontent .fc-timegrid-event.fc-event-mirror,*/
|
||||
/*.fc-h-event .fc-event-main {*/
|
||||
/* font-weight:normal;*/
|
||||
/*}*/
|
||||
|
||||
/*.maincontent .fc-timegrid-event .fc-event-main {*/
|
||||
/* padding: 3px 1px 0px;*/
|
||||
/*}*/
|
||||
|
||||
/*.maincontent .fc-event.locked:after {*/
|
||||
/* content: "🔒";*/
|
||||
/* background:var(--layered-background);*/
|
||||
/* padding: 1px 4px;*/
|
||||
/* top: 2px;*/
|
||||
/* border-radius: 50%;*/
|
||||
/* position: absolute;*/
|
||||
/* right: 2px;*/
|
||||
/*}*/
|
||||
|
||||
/*.maincontent tr.fc-event {*/
|
||||
/* position:relative;*/
|
||||
/*}*/
|
||||
|
||||
|
||||
/*.fc-list-event,*/
|
||||
/*.fc .fc-multimonth-daygrid,*/
|
||||
/*.fc-view,*/
|
||||
/*.fc .fc-scrollgrid-section-sticky > *,*/
|
||||
/*.fc-timegrid-slot-label,*/
|
||||
/*.fc .fc-timegrid-col.fc-day-today,*/
|
||||
/*.fc .fc-daygrid-day.fc-day-today,*/
|
||||
/*.fc .fc-button-primary,*/
|
||||
/*table.fc-col-header th {*/
|
||||
/* background:transparent !important;*/
|
||||
/*}*/
|
||||
|
||||
/*.fc-view,*/
|
||||
/*.fc .fc-scrollgrid {*/
|
||||
/* border:none;*/
|
||||
/* height:100%*/
|
||||
/*}*/
|
||||
|
||||
/*.fc-col-header {*/
|
||||
/* border-top-right-radius: var(--element-radius);*/
|
||||
/* border-top-left-radius: var(--element-radius);*/
|
||||
/* background:var(--secondary-background);*/
|
||||
/*}*/
|
||||
|
||||
/*.maincontentinner .fc .fc-scrollgrid {*/
|
||||
/* border:none;*/
|
||||
/*}*/
|
||||
|
||||
/*.maincontentinner table.fc-scrollgrid td,*/
|
||||
/*.maincontentinner table.fc-scrollgrid th{*/
|
||||
/* padding:0px;*/
|
||||
/*}*/
|
||||
|
||||
/*.maincontentinner table.fc-scrollgrid th.fc-col-header-cell {*/
|
||||
/* background: var(--col-title-bg);*/
|
||||
/* overflow:hidden;*/
|
||||
/*}*/
|
||||
|
||||
/*.maincontentinner table.fc-scrollgrid th.fc-col-header-cell:first-child {*/
|
||||
/* border-top-left-radius:var(--box-radius);*/
|
||||
/*}*/
|
||||
|
||||
/*.maincontentinner table.fc-scrollgrid th.fc-col-header-cell:last-child {*/
|
||||
/* border-top-right-radius:var(--box-radius);*/
|
||||
/*}*/
|
||||
|
||||
|
||||
/*.maincontentinner table.fc-scrollgrid th {*/
|
||||
/* padding:0px;*/
|
||||
/* border-radius: 5px 5px 0px 0px;*/
|
||||
/*}*/
|
||||
|
||||
/*.maincontentinner table.fc-scrollgrid th .fc-scrollgrid-sync-inner {*/
|
||||
/* padding:5px 0px;*/
|
||||
/*}*/
|
||||
|
||||
:root {
|
||||
--fc-small-font-size: .85em;
|
||||
--fc-page-bg-color: var(--secondary-background);
|
||||
--fc-neutral-bg-color: var(--layered-background);
|
||||
--fc-neutral-text-color: var(--neutral);
|
||||
--fc-border-color: var(--main-border-color);
|
||||
--fc-button-text-color: var(--secondary-background);
|
||||
--fc-button-bg-color: #2c3e50;
|
||||
--fc-button-border-color: #2c3e50;
|
||||
--fc-button-hover-bg-color: #1e2b37;
|
||||
--fc-button-hover-border-color: #1a252f;
|
||||
--fc-button-active-bg-color: #1a252f;
|
||||
--fc-button-active-border-color: #151e27;
|
||||
--fc-event-bg-color: var(--accent1);
|
||||
--fc-event-border-color: var(--accent1);
|
||||
--fc-event-text-color:var(--main-action-color);
|
||||
--fc-event-selected-overlay-color: rgba(0, 0, 0, .25);
|
||||
--fc-more-link-bg-color: #d0d0d0;
|
||||
--fc-more-link-text-color: inherit;
|
||||
--fc-event-resizer-thickness: 8px;
|
||||
--fc-event-resizer-dot-total-width: 8px;
|
||||
--fc-event-resizer-dot-border-width: 1px;
|
||||
--fc-non-business-color: hsla(0, 0%, 84%, .3);
|
||||
--fc-bg-event-color: var(--accent2);
|
||||
--fc-bg-event-opacity: 0.3;
|
||||
--fc-highlight-color: rgba(188, 232, 241, .3);
|
||||
--fc-today-bg-color: var(--dropdown-link-hover-bg);
|
||||
--fc-now-indicator-color: var(--dark-red);
|
||||
}
|
||||
|
||||
/* Resetting styles from tables */
|
||||
.maincontentinner .fc td,
|
||||
.maincontentinner .fc th {
|
||||
padding: 0px;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
.maincontentinner .fc-theme-standard td {
|
||||
border-color:var(--fc-border-color);
|
||||
|
||||
}
|
||||
|
||||
.maincontentinner .fc-theme-standard td,
|
||||
.maincontentinner .fc-theme-standard th {
|
||||
|
||||
}
|
||||
|
||||
.maincontentinner .fc th .fc-scroller {
|
||||
padding:5px;
|
||||
}
|
||||
|
||||
.fc .fc-col-header-cell-cushion {
|
||||
color:var(--primary-font-color);
|
||||
}
|
||||
|
||||
.maincontentinner .fc-theme-standard .fc-scrollgrid {
|
||||
border:0px;
|
||||
}
|
||||
|
||||
.fc .fc-view-harness {
|
||||
overflow:hidden;
|
||||
border-radius:var(--box-radius);
|
||||
}
|
||||
|
||||
.fc-timegrid-event,
|
||||
.fc-timegrid-more-link {
|
||||
border-radius: 5px;
|
||||
font-size: var(--fc-small-font-size);
|
||||
}
|
||||
|
||||
.fc-timegrid-event .fc-event-main {
|
||||
padding:2px 4px 0px;
|
||||
}
|
||||
|
||||
.fc-v-event {
|
||||
border:0px;
|
||||
}
|
||||
|
||||
.fc .fc-scrollgrid-section-header.fc-scrollgrid-section-sticky > * {
|
||||
box-shadow:var(--regular-shadow);
|
||||
}
|
||||
|
||||
.fc .fc-timegrid-now-indicator-line {
|
||||
border:2px 0px 0px;
|
||||
}
|
||||
|
||||
.fc .fc-timegrid-now-indicator-line::before {
|
||||
content: " ";
|
||||
position: absolute;
|
||||
top: -5px;
|
||||
/* bottom: -2px; */
|
||||
left: -5px;
|
||||
right: 0;
|
||||
background: var(--fc-now-indicator-color);
|
||||
width: 10px;
|
||||
border-radius: 5px;
|
||||
height: 10px;
|
||||
}
|
||||
|
||||
.fc .fc-timegrid-slot-minor {
|
||||
border:none;
|
||||
}
|
||||
|
||||
.maincontentinner .fc-list-event td {
|
||||
padding: 5px 10px;
|
||||
}
|
||||
|
||||
.maincontentinner .fc-theme-standard .fc-list {
|
||||
border:none;
|
||||
}
|
||||
|
||||
.maincontentinner .fc-theme-standard .fc-list-day-cushion {
|
||||
background-color: var(--fc-neutral-bg-color);
|
||||
box-shadow: var(--regular-shadow);
|
||||
}
|
||||
|
||||
.maincontentinner .fc-theme-standard .fc-list-day-cushion a {
|
||||
color: var(--primary-font-color);
|
||||
}
|
||||
|
||||
|
||||
.maincontentinner .widgetContent .fc .fc-timegrid-col.fc-day-today,
|
||||
.maincontentinner .widgetContent .fc .fc-scrollgrid-section-sticky > *,
|
||||
.maincontentinner .widgetContent .fc td, .maincontentinner .widgetContent .fc th{
|
||||
background:none;
|
||||
}
|
||||
|
||||
.maincontentinner .widgetContent .fc-scroller table {
|
||||
}
|
||||
|
||||
.maincontentinner .fc-theme-standard td,
|
||||
.maincontentinner .fc-theme-standard th {
|
||||
border-left: 0px;
|
||||
}
|
||||
|
||||
.maincontentinner .fc-theme-standard th {
|
||||
border-top:0px;
|
||||
}
|
||||
|
||||
.maincontentinner .fc-daygrid-body table td {
|
||||
border-bottom:0px;
|
||||
}
|
||||
|
||||
.maincontentinner .fc-timegrid-divider {
|
||||
border-bottom:0px;
|
||||
}
|
||||
|
||||
.fc-scrollgrid .fc-scrollgrid-section:first-child .fc-scroller-harness {
|
||||
box-shadow: var(--regular-shadow);
|
||||
}
|
||||
706
public/assets/css/components/dropdowns.css
Normal file
@@ -0,0 +1,706 @@
|
||||
/* Ticket Labelled dropdowns */
|
||||
|
||||
.dropdown-menu {
|
||||
margin-top: 0;
|
||||
border-radius: var(--box-radius);
|
||||
border:0px;
|
||||
padding: 8px 0;
|
||||
box-shadow: var(--regular-shadow);
|
||||
background:var(--secondary-background);
|
||||
}
|
||||
|
||||
.bigMenu ul li {
|
||||
list-style-type: none;
|
||||
}
|
||||
|
||||
.dropdown-menu > li > a,
|
||||
.bigMenu ul li a,
|
||||
.dropdown-menu > li > .dropdown-item-wrapper {
|
||||
font-size: var(--base-font-size);
|
||||
color:var(--primary-font-color);
|
||||
margin: 0;
|
||||
padding: 5px 10px;
|
||||
border-radius: 0px;
|
||||
}
|
||||
.pagetitle .dropdown-menu > li > a {
|
||||
color:var(--primary-font-color);
|
||||
text-decoration:none;
|
||||
}
|
||||
|
||||
|
||||
.dropdown-menu>.active>a,
|
||||
.dropdown-menu>.active>a:hover,
|
||||
.dropdown-menu>.active>a:focus {
|
||||
color: var(--dropdown-link-hover-color);
|
||||
background:var(--dropdown-link-hover-bg);
|
||||
}
|
||||
|
||||
.dropdownTabs {
|
||||
padding:5px;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
|
||||
justify-content: space-around;
|
||||
flex-wrap: wrap;
|
||||
|
||||
align-content: space-between;
|
||||
border-bottom:1px solid var(--main-border-color);
|
||||
}
|
||||
|
||||
.dropdownTabs a {
|
||||
|
||||
}
|
||||
|
||||
.dropdownTabs a:hover {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
|
||||
|
||||
.maincontentinner .viewDropDown .dropdown-menu > li > a:hover .muted,
|
||||
body .maincontentinner .viewDropDown .dropdown-menu li a.active,
|
||||
.dropdown-menu > li > a.active,
|
||||
.dropdown ul li.active a{
|
||||
color: var(--dropdown-link-hover-color);
|
||||
background:var(--dropdown-link-hover-bg);
|
||||
}
|
||||
|
||||
.dropdown-menu > li > a:hover,
|
||||
.dropdown-menu > li > a:focus,
|
||||
.dropdown-submenu:hover > a,
|
||||
.dropdown-submenu:focus > a,
|
||||
.bigMenu ul li a,
|
||||
.bigMenu ul li a:hover,
|
||||
.bigMenu ul li a:focus {
|
||||
color: var(--dropdown-link-hover-color) !important;
|
||||
background:var(--dropdown-link-hover-bg) !important;
|
||||
}
|
||||
|
||||
.dropdown-menu > li > a:hover small,
|
||||
.dropdown-menu > li > a:focus small,
|
||||
.dropdown-submenu:hover > a small,
|
||||
.dropdown-submenu:focus > a small,
|
||||
.bigMenu ul li a small,
|
||||
.bigMenu ul li a:hover small,
|
||||
.bigMenu ul li a:focus small {
|
||||
color: var(--dropdown-link-hover-color) !important;
|
||||
}
|
||||
|
||||
|
||||
.dropdown-menu .nav-header {
|
||||
padding-left: 10px;
|
||||
padding-right: 10px;
|
||||
padding-top:10px;
|
||||
padding-bottom:5px;
|
||||
font-size:var(--font-size-m);
|
||||
color:var(--interactive-icon-color);
|
||||
text-transform:none;
|
||||
}
|
||||
|
||||
.ticketDropdown.show {
|
||||
display:inline-block;
|
||||
}
|
||||
|
||||
.ticketDropdown {
|
||||
font-size:var(--font-size-m);
|
||||
|
||||
}
|
||||
|
||||
.ticketDropdown ul,
|
||||
.ticketDropdown ul li a{
|
||||
top: 22px;
|
||||
font-size:var(--font-size-m);
|
||||
}
|
||||
|
||||
.ticketDropdown.userDropdown {
|
||||
margin-top:-2px;
|
||||
}
|
||||
|
||||
.ticketDropdown.userDropdown ul {
|
||||
top: 33px;
|
||||
left: 6px;
|
||||
}
|
||||
|
||||
.dropRight ul,
|
||||
.ticketDropdown.userDropdown.dropRight ul{
|
||||
right:0px;
|
||||
left:auto;
|
||||
}
|
||||
|
||||
.maincontent .ticketDropdown > a,
|
||||
.maincontent .ticketDropdown > a:link,
|
||||
.nyroModalCont .ticketDropdown > a,
|
||||
.nyroModalCont .ticketDropdown > a:link{
|
||||
color:#fff;
|
||||
padding:0px 10px;
|
||||
white-space: nowrap;
|
||||
border-radius:var(--box-radius-large);
|
||||
margin-left:0px;
|
||||
box-shadow:var(--min-shadow);
|
||||
}
|
||||
|
||||
.maincontent .ticketDropdown.userDropdown > a,
|
||||
.maincontent .ticketDropdown.userDropdown > a:link,
|
||||
.nyroModalCont .ticketDropdown.userDropdown > a,
|
||||
.nyroModalCont .ticketDropdown.userDropdown > a:link {
|
||||
padding-left:0px;
|
||||
}
|
||||
|
||||
.maincontent .ticketDropdown.firstDropdown > a {
|
||||
margin-left:0px;
|
||||
}
|
||||
|
||||
.maincontent .ticketDropdown.lastDropdown > a {
|
||||
padding-right:0px;
|
||||
}
|
||||
|
||||
.maincontent .ticketDropdown > a:hover,
|
||||
.maincontent .ticketDropdown > a:focus {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
|
||||
.maincontent .ticketDropdown.colorized li a,
|
||||
.nyroModalCont .ticketDropdown.colorized li a{
|
||||
color:#fff;
|
||||
}
|
||||
|
||||
.maincontent .ticketDropdown.noBg {
|
||||
background:transparent;
|
||||
|
||||
|
||||
}
|
||||
|
||||
.maincontent .ticketDropdown.noBg a {
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
.maincontent .ticketDropdown.noBg >a img {
|
||||
margin-top:-1px;
|
||||
}
|
||||
|
||||
.maincontent .dropdown img {
|
||||
width:23px;
|
||||
border-radius: 12px;
|
||||
border: 1px solid var(--neutral);
|
||||
margin-top:1px;
|
||||
padding:1px;
|
||||
}
|
||||
|
||||
|
||||
.maincontent .ticketDropdown.noBg >a:hover {
|
||||
color:#000;
|
||||
}
|
||||
|
||||
.maincontent .ticketDropdown.noBg >a:hover img {
|
||||
border-color:var(--dropdown-link-hover-bg) !important
|
||||
}
|
||||
|
||||
.maincontent .ticketDropdown ul li a[class*="label-"],
|
||||
.nyroModalCont .ticketDropdown ul li a[class*="label-"] {
|
||||
padding: 5px 10px;
|
||||
display:block;
|
||||
}
|
||||
|
||||
.chosen-results li[class*=" label-"] {
|
||||
color:#fff;
|
||||
}
|
||||
|
||||
.chosen-results li[class*=" label-"]:hover {
|
||||
color:#555;
|
||||
}
|
||||
|
||||
.chosen-results li.label-warning,
|
||||
.maincontent .ticketDropdown a.label-warning,
|
||||
.nyroModalCont .ticketDropdown a.label-warning,
|
||||
.label-warning,
|
||||
.label-yellow{
|
||||
background:var(--yellow);
|
||||
color:var(--yellow-text-color);
|
||||
}
|
||||
|
||||
.chosen-results li.label-info,
|
||||
.maincontent .ticketDropdown a.label-info,
|
||||
.nyroModalCont .ticketDropdown a.label-info{
|
||||
background:var(--dark-blue);
|
||||
color:var(--dark-blue-text-color);
|
||||
}
|
||||
|
||||
.chosen-results li.label-important,
|
||||
.maincontent .ticketDropdown a.label-important,
|
||||
.nyroModalCont .ticketDropdown a.label-important,
|
||||
.label-important{
|
||||
background:var(--red);
|
||||
color:var(--red-text-color);
|
||||
}
|
||||
|
||||
.chosen-results li.label-danger,
|
||||
.maincontent .ticketDropdown a.label-danger,
|
||||
.nyroModalCont .ticketDropdown a.label-danger,
|
||||
.label-danger,
|
||||
.label-red{
|
||||
background:var(--dark-red);
|
||||
color:var(--dark-red-text-color);
|
||||
}
|
||||
|
||||
.chosen-results li.label-success,
|
||||
.maincontent .ticketDropdown a.label-success,
|
||||
.nyroModalCont .ticketDropdown a.label-success,
|
||||
.label-success,
|
||||
.label-green {
|
||||
background:var(--green);
|
||||
color:var(--green-text-color);
|
||||
}
|
||||
|
||||
.chosen-results li.label-default,
|
||||
.maincontent .ticketDropdown a.label-default,
|
||||
.nyroModalCont .ticketDropdown a.label-default,
|
||||
.label-default{
|
||||
background: var(--grey);
|
||||
color:var(--grey-text-color);
|
||||
}
|
||||
|
||||
.chosen-results li.label-default.milestone,
|
||||
.maincontent .ticketDropdown a.label-default.milestone,
|
||||
.nyroModalCont .ticketDropdown a.label-default.milestone {
|
||||
color:var(--blue-text-color);
|
||||
}
|
||||
|
||||
.chosen-results li.label-purple,
|
||||
.maincontent .ticketDropdown a.label-purple,
|
||||
.nyroModalCont .ticketDropdown a.label-purple{
|
||||
background:var(--purple);
|
||||
color:var(--purple-text-color);
|
||||
}
|
||||
|
||||
.chosen-results li.label-pink,
|
||||
.maincontent .ticketDropdown a.label-pink,
|
||||
.nyroModalCont .ticketDropdown a.label-pink{
|
||||
background:var(--pink);
|
||||
color:var(--pink-text-color);
|
||||
}
|
||||
|
||||
.chosen-results li.label-brown,
|
||||
.maincontent .ticketDropdown a.label-brown,
|
||||
.nyroModalCont .ticketDropdown a.label-brown{
|
||||
background:var(--brown);
|
||||
color:var(--brown-text-color);
|
||||
}
|
||||
|
||||
.chosen-results li.label-blue,
|
||||
.maincontent .ticketDropdown a.label-blue,
|
||||
.nyroModalCont .ticketDropdown a.label-blue{
|
||||
background:var(--blue);
|
||||
color:var(--blue-text-color);
|
||||
}
|
||||
|
||||
.chosen-results li.label-dark-blue,
|
||||
.maincontent .ticketDropdown a.label-dark-blue,
|
||||
.nyroModalCont .ticketDropdown a.label-dark-blue{
|
||||
background:var(--dark-blue);
|
||||
color:var(--dark-blue-text-color);
|
||||
}
|
||||
|
||||
.chosen-results li.label-darker-blue,
|
||||
.maincontent .ticketDropdown a.label-darker-blue,
|
||||
.nyroModalCont .ticketDropdown a.label-darker-blue{
|
||||
background:var(--darker-blue);
|
||||
color:var(--darker-blue-text-color);
|
||||
}
|
||||
|
||||
.chosen-results li.label-green,
|
||||
.maincontent .ticketDropdown a.label-green,
|
||||
.nyroModalCont .ticketDropdown a.label-green{
|
||||
background:var(--green);
|
||||
color:var(--green-text-color);
|
||||
}
|
||||
|
||||
.chosen-results li.label-dark-green,
|
||||
.maincontent .ticketDropdown a.label-dark-green,
|
||||
.nyroModalCont .ticketDropdown a.label-dark-green{
|
||||
background:var(--dark-green);
|
||||
color:var(--dark-green-text-color);
|
||||
}
|
||||
|
||||
.chosen-results li.label-red,
|
||||
.maincontent .ticketDropdown a.label-red,
|
||||
.nyroModalCont .ticketDropdown a.label-red{
|
||||
background:var(--red);
|
||||
color:var(--red-text-color);
|
||||
}
|
||||
|
||||
.chosen-results li.label-dark-red,
|
||||
.maincontent .ticketDropdown a.label-dark-red,
|
||||
.nyroModalCont .ticketDropdown a.label-dark-red{
|
||||
background:var(--dark-red);
|
||||
color:var(--dark-red-text-color);
|
||||
}
|
||||
|
||||
.chosen-results li.label-grey,
|
||||
.maincontent .ticketDropdown a.label-grey,
|
||||
.nyroModalCont .ticketDropdown a.label-grey{
|
||||
background:var(--grey);
|
||||
color:var(--grey-text-color);
|
||||
}
|
||||
|
||||
.maincontent .ticketDropdown a.label-default.effort,
|
||||
.nyroModalCont .ticketDropdown a.label-default.effort{
|
||||
background:var(--secondary-background);
|
||||
color:var(--primary-font-color);
|
||||
}
|
||||
|
||||
.maincontent .ticketDropdown ul li,
|
||||
.nyroModalCont .ticketDropdown ul li {
|
||||
margin-bottom:1px;
|
||||
padding:0px 10px;
|
||||
}
|
||||
|
||||
.maincontent .ticketDropdown.milestoneDropdown li a:hover{
|
||||
background: var(--dropdown-link-hover-bg) !important;
|
||||
color: var(--dropdown-link-hover-color) !important;
|
||||
}
|
||||
|
||||
.maincontent .accordionTitle {
|
||||
font-size: var(--font-size-l);
|
||||
color: var(--primary-font-color);
|
||||
margin-bottom: 10px;
|
||||
font-weight:bold;
|
||||
margin-left:0px;
|
||||
border-radius: var(--accordion-header-radius);
|
||||
padding: 5px 0px;
|
||||
}
|
||||
|
||||
.maincontent .noBackground .accordionTitle {
|
||||
color: var(--main-titles-color);
|
||||
}
|
||||
|
||||
.maincontent .accordionTitle i {
|
||||
display:inline-block;
|
||||
width:15px;
|
||||
text-align:center;
|
||||
margin-right:5px;
|
||||
border-radius:5px;
|
||||
}
|
||||
|
||||
.maincontent .accordionTitle:hover i,
|
||||
.maincontent .accordionTitle i:hover {
|
||||
background:var(--col-hover-bg);
|
||||
color:var(--interactive-icon-color);
|
||||
}
|
||||
|
||||
.maincontent .accordionTitle[class*="label-"] {
|
||||
margin-left:0px;
|
||||
border-radius: var(--accordion-header-radius);
|
||||
padding: 5px 0px;
|
||||
background: none;
|
||||
}
|
||||
|
||||
.maincontent .accordionTitle.label-warning a{
|
||||
background:none;
|
||||
color:var(--yellow);
|
||||
}
|
||||
|
||||
.maincontent .accordionTitle.label-important a {
|
||||
background:none;
|
||||
color:var(--red);
|
||||
}
|
||||
|
||||
.maincontent .accordionTitle.label-info a {
|
||||
background:none;
|
||||
color:var(--dark-blue);
|
||||
}
|
||||
|
||||
.maincontent .accordionTitle.label-danger a {
|
||||
background:none;
|
||||
color:var(--dark-red);
|
||||
}
|
||||
|
||||
.maincontent .accordionTitle.label-success a {
|
||||
background:none;
|
||||
color:var(--green);
|
||||
}
|
||||
|
||||
.maincontent .accordionTitle.label-default a {
|
||||
background:none;
|
||||
color:var(--grey);
|
||||
}
|
||||
|
||||
.simpleAccordionContainer {
|
||||
margin-bottom:15px;
|
||||
padding-left: 20px;
|
||||
}
|
||||
|
||||
.simpleAccordionContainer.kanban {
|
||||
padding-left:0px;
|
||||
}
|
||||
|
||||
.maincontent .accordionTitle .accordion-toggle i.fa:first-child {
|
||||
width: 15px;
|
||||
margin-top: 0px;
|
||||
margin-right: 5px;
|
||||
height: 15px;
|
||||
line-height: 15px;
|
||||
text-align: center;
|
||||
border-radius: var(--element-radius);
|
||||
font-size: var(--font-size-m);
|
||||
}
|
||||
|
||||
.maincontent .accordionTitle .accordion-toggle i.fa:first-child:hover {
|
||||
background: var(--main-menu-link-active-bg);
|
||||
}
|
||||
|
||||
|
||||
.ticketDropdown ul::after {
|
||||
position: absolute;
|
||||
top:-6px;
|
||||
left: 10px;
|
||||
transform: rotate(0deg);
|
||||
display: inline-block;
|
||||
border-right: 7px solid transparent;
|
||||
border-bottom: 7px solid white;
|
||||
border-left: 7px solid transparent;
|
||||
content: '';
|
||||
}
|
||||
|
||||
.dropdown-menu.pull-right::after {
|
||||
right: 10px;
|
||||
left:auto;
|
||||
}
|
||||
|
||||
.tabbedwidget .dropdown-menu.pull-left,
|
||||
.mainwrapper .dropdown-menu.pull-left {
|
||||
left: 10px;
|
||||
right:auto;
|
||||
}
|
||||
|
||||
.viewDropDown .dropdown-menu {
|
||||
right:0px;
|
||||
left:auto;
|
||||
}
|
||||
|
||||
.viewDropDown .dropdown-menu li a.active{
|
||||
|
||||
}
|
||||
|
||||
.viewDropDown .dropdown-menu li a.active:hover {
|
||||
color:#fff;
|
||||
}
|
||||
|
||||
.dropdown-menu span.radio input[type="radio"] {
|
||||
float:left;
|
||||
vertical-align: middle;
|
||||
margin-top: 9px;
|
||||
margin-right:5px;
|
||||
}
|
||||
|
||||
.dropdown-menu span.radio {
|
||||
display:block;
|
||||
font-size: 12px;
|
||||
color: var(--main-menu-link-color);
|
||||
margin: 0px;
|
||||
padding: 5px 10px;
|
||||
}
|
||||
|
||||
.dropdown-menu span.radio:hover {
|
||||
color: var(--dropdown-link-hover-color);
|
||||
background:var(--dropdown-link-hover-bg);
|
||||
}
|
||||
|
||||
.dropdown-menu span.radio label {
|
||||
display:inline-block;
|
||||
width:100%;
|
||||
}
|
||||
|
||||
.wikiSelect {
|
||||
margin-bottom:5px;
|
||||
}
|
||||
|
||||
.dropdown-menu.iconpicker-container,
|
||||
.iconpicker-popover.popover {
|
||||
width:215px;
|
||||
min-width:215px;
|
||||
}
|
||||
|
||||
.iconpicker-popover .popover-title {
|
||||
display:none;
|
||||
}
|
||||
|
||||
.btn-group .btn.titleIconPicker {
|
||||
font-size: var(--font-size-xl);
|
||||
line-height: 21px;
|
||||
padding: 5px 6px;
|
||||
color: var(--primary-font-color);
|
||||
background-color: var(--secondary-background);
|
||||
border: 1px solid var(--secondary-background);
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
.btn-group .btn.titleIconPicker:hover {
|
||||
border: 1px solid var(--main-border-color);
|
||||
}
|
||||
|
||||
.btn-group .btn.titleIconPicker .caret,
|
||||
.btn-group .btn.titleIconPicker .caret,
|
||||
.btn-group .btn.titleIconPicker:last-child .caret,
|
||||
.btn-group >.btn.titleIconPicker.dropdown-toggle .caret {
|
||||
border-top-color: var(--primary-font-color);
|
||||
}
|
||||
|
||||
.btn-group .btn.titleIconPicker:hover .caret,
|
||||
.btn-group .btn.titleIconPicker:hover .caret,
|
||||
.btn-group .btn.titleIconPicker:last-child:hover .caret,
|
||||
.btn-group >.btn.titleIconPicker.dropdown-toggle:hover .caret {
|
||||
border-top-color: var(--secondary-action-hover-color);
|
||||
}
|
||||
|
||||
.inlineDropDownContainerLeft {
|
||||
float:left;
|
||||
display:inline-block;
|
||||
}
|
||||
|
||||
/* Subject switcher toggle — a subtle pill on the white header card (was
|
||||
underlined white text, which is near-invisible since the header became a
|
||||
light card). Dark text, soft pill background, caret. */
|
||||
.pagetitle .header-title-dropdown {
|
||||
display:inline-flex;
|
||||
align-items:center;
|
||||
gap:6px;
|
||||
width:auto;
|
||||
color: var(--primary-font-color);
|
||||
text-decoration:none;
|
||||
background: rgba(0, 0, 0, 0.05);
|
||||
border: 1px solid transparent;
|
||||
padding: 3px 12px;
|
||||
border-radius: 100px;
|
||||
transition: background .12s, border-color .12s;
|
||||
}
|
||||
|
||||
.pagetitle .header-title-dropdown .fa {
|
||||
padding-left:4px;
|
||||
font-size:.8em;
|
||||
opacity:.55;
|
||||
}
|
||||
|
||||
.pagetitle .header-title-dropdown:hover {
|
||||
background: rgba(0, 0, 0, 0.09);
|
||||
border-color: transparent;
|
||||
}
|
||||
|
||||
/* Meta/metrics line under the title (subjectSwitcher subline slot). */
|
||||
.pagetitle .subjectSwitcher-subline {
|
||||
font-size: var(--font-size-s);
|
||||
color: var(--main-titles-color-subtle, var(--primary-font-color));
|
||||
opacity: .6;
|
||||
margin-top: 4px;
|
||||
}
|
||||
|
||||
.dropdownWrapper {
|
||||
position:relative;
|
||||
}
|
||||
|
||||
.dropdownWrapper .border {
|
||||
border-top:1px solid var(--neutral);
|
||||
}
|
||||
|
||||
.headerEditDropdown {
|
||||
float:right;
|
||||
padding-top:20px;
|
||||
}
|
||||
|
||||
/* Header action ⋮ — plain dark icon on the white header card (no circle,
|
||||
was a bordered white button that read as an empty circle on the light box). */
|
||||
.pagetitle .btn-transparent {
|
||||
background:transparent;
|
||||
color:var(--primary-font-color);
|
||||
border:none;
|
||||
font-size:var(--font-size-l);
|
||||
}
|
||||
.pagetitle .btn-transparent:hover {
|
||||
color:var(--accent1);
|
||||
background:rgba(0, 0, 0, 0.05);
|
||||
border-radius:6px;
|
||||
}
|
||||
|
||||
.headerEditDropdown .dropdown-toggle {
|
||||
padding:4px 13px;
|
||||
}
|
||||
|
||||
.editCanvasDropdown {
|
||||
right:0px;
|
||||
left:auto;
|
||||
}
|
||||
|
||||
|
||||
.dropdown-menu>.active>a,
|
||||
.dropdown-menu>.active>a:hover,
|
||||
.dropdown-menu>.active>a:focus {
|
||||
background:var(--main-menu-link-active-bg);
|
||||
color:var(--main-menu-link-active-color);
|
||||
}
|
||||
|
||||
.dropdown-menu .scroll-wrapper {
|
||||
height:700px;
|
||||
overflow:scroll;
|
||||
}
|
||||
|
||||
.inlineDropDownContainer {
|
||||
float:right;
|
||||
position:relative;
|
||||
}
|
||||
|
||||
.inlineDropDownContainer > a {
|
||||
color: #aaa;
|
||||
width: 24px;
|
||||
line-height: 20px;
|
||||
text-align: center;
|
||||
padding-top: 1px;
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
.inlineDropDownContainer > a.btn {
|
||||
width:auto;
|
||||
}
|
||||
|
||||
.inlineDropDownContainer > a:last-child {
|
||||
margin-right:-5px;
|
||||
}
|
||||
|
||||
.inlineDropDownContainer > a:hover {
|
||||
color: var(--accent1);
|
||||
background: var(--col-hover-bg);
|
||||
}
|
||||
|
||||
.inlineDropDownContainer .ticketDropDown {
|
||||
float:right;
|
||||
font-size: var(--font-size-xl);
|
||||
color: var(--interactive-icon-color);
|
||||
margin-right:-5px;
|
||||
}
|
||||
|
||||
.inlineDropDownContainer .dropdown-menu {
|
||||
right:0px;
|
||||
left:auto;
|
||||
}
|
||||
|
||||
.inlineDropDownContainer.dropright .dropdown-menu {
|
||||
|
||||
left:-5px;
|
||||
}
|
||||
|
||||
.inlineDropDownContainer .dropdown-menu .border {
|
||||
border-top:1px solid var(--neutral);
|
||||
}
|
||||
|
||||
.inlineDropDownContainer .dropdown-menu li>span {
|
||||
padding-left:15px;
|
||||
}
|
||||
|
||||
.grid-stack-item-content .inlineDropDownContainer .ticketDropDown,
|
||||
.grid-stack-item-content .grid-handler-top{
|
||||
color:var(--main-action-color);
|
||||
}
|
||||
|
||||
.grid-stack-item-content.maincontentinner .inlineDropDownContainer .ticketDropDown,
|
||||
.grid-stack-item-content.maincontentinner .grid-handler-top {
|
||||
color: var(--interactive-icon-color);
|
||||
}
|
||||
2129
public/assets/css/components/forms.css
Normal file
116
public/assets/css/components/gantt-overwrites.css
Normal file
@@ -0,0 +1,116 @@
|
||||
body .gantt-container {
|
||||
font-size: var(--base-font-size);
|
||||
overflow-x:visible;
|
||||
height:calc(100vh - 375px);
|
||||
height:calc(100dvh - 375px);
|
||||
}
|
||||
|
||||
.gantt-wrapper {
|
||||
margin-top:10px;
|
||||
border-radius: var(--box-radius);
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
|
||||
.gantt .bar-label {
|
||||
text-anchor: start;
|
||||
}
|
||||
|
||||
body .gantt .bar-label,
|
||||
body .gantt .lower-text,
|
||||
body .gantt .upper-text {
|
||||
font-size: var(--base-font-size);
|
||||
}
|
||||
|
||||
body .gantt .upper-text {
|
||||
fill:var(--kanban-col-title-color);
|
||||
opacity:var(--opacity-subdued);
|
||||
}
|
||||
|
||||
body .gantt .lower-text,
|
||||
body .gantt .upper-text {
|
||||
font-weight:var(--font-weight-bold);
|
||||
}
|
||||
|
||||
body .gantt #details .details-container p {
|
||||
font-size: var(--base-font-size);
|
||||
}
|
||||
|
||||
|
||||
body .gantt #details .details-container {
|
||||
border-radius:var(--box-radius);
|
||||
}
|
||||
|
||||
.gantt-container .popup-wrapper {
|
||||
background-color:var(--secondary-background);
|
||||
padding:16px;
|
||||
box-shadow:var(--regular-shadow);
|
||||
margin-left: -10px;
|
||||
opacity:0;
|
||||
min-width:100px;
|
||||
max-width:300px;
|
||||
border-radius:var(--box-radius);
|
||||
}
|
||||
|
||||
.gantt-container .bar-wrapper {
|
||||
outline:none;
|
||||
}
|
||||
|
||||
.gantt .bar-wrapper.active .bar {
|
||||
fill:var(--main-action-hover-bg);
|
||||
}
|
||||
|
||||
.gantt .bar-wrapper.active .bar-label {
|
||||
fill:var(--main-action-hover-color);
|
||||
}
|
||||
|
||||
.gantt-container .popup-wrapper .pointer {
|
||||
margin:10px 0 0 -12px;
|
||||
height:10px;
|
||||
border: 10px solid transparent;
|
||||
border-top-color:var(--secondary-background);
|
||||
}
|
||||
|
||||
.gantt .grid-header {
|
||||
fill:var(--col-title-bg) !important;
|
||||
stroke:none;
|
||||
filter: drop-shadow(var(--regular-shadow));
|
||||
}
|
||||
|
||||
.gantt .grid-header-line {
|
||||
fill:var(--neutral) !important;
|
||||
filter: drop-shadow(var(--regular-shadow));
|
||||
}
|
||||
|
||||
.gantt .grid-row:nth-child(even) {
|
||||
fill:var(--col-row-striped);
|
||||
}
|
||||
|
||||
.gantt .handle {
|
||||
fill:var(--col-title-bg);
|
||||
width:10px;
|
||||
}
|
||||
|
||||
.gantt .handle.progress {
|
||||
display:none;
|
||||
}
|
||||
|
||||
|
||||
.gantt .today-highlight {
|
||||
fill:var(--accent1);
|
||||
}
|
||||
|
||||
.today-highlight-label-bg {
|
||||
fill:var(--main-action-bg);
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.today-highlight-label {
|
||||
fill:var(--main-action-color);
|
||||
font-size:var(--font-size-s);
|
||||
text-anchor: middle;
|
||||
}
|
||||
|
||||
.gantt .grid-row {
|
||||
fill: transparent;
|
||||
}
|
||||
32
public/assets/css/components/glass.css
Normal file
@@ -0,0 +1,32 @@
|
||||
/* ── Glass Utility Classes ────────────────────────────────────────────
|
||||
Frosted-glass surfaces for the Leantime design system. All values
|
||||
come from CSS custom properties defined in the theme files
|
||||
(default/minimal × light/dark).
|
||||
──────────────────────────────────────────────────────────────────── */
|
||||
|
||||
/* Full glass surface */
|
||||
.lt-glass {
|
||||
background: var(--glass-bg);
|
||||
backdrop-filter: var(--glass-blur);
|
||||
-webkit-backdrop-filter: var(--glass-blur);
|
||||
border: 1px solid var(--glass-border);
|
||||
box-shadow: var(--glass-inset), var(--shadow-sm);
|
||||
}
|
||||
|
||||
/* Subtle glass surface (less blur, more opaque) */
|
||||
.lt-glass-subtle {
|
||||
background: var(--glass-bg-subtle);
|
||||
backdrop-filter: var(--glass-blur-subtle);
|
||||
-webkit-backdrop-filter: var(--glass-blur-subtle);
|
||||
border: 1px solid var(--glass-border);
|
||||
}
|
||||
|
||||
/* Fallback for browsers without backdrop-filter (prefixed or unprefixed) */
|
||||
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
|
||||
.lt-glass,
|
||||
.lt-glass-subtle {
|
||||
background: var(--color-bg-card);
|
||||
backdrop-filter: none;
|
||||
-webkit-backdrop-filter: none;
|
||||
}
|
||||
}
|
||||
1
public/assets/css/components/index.html
Normal file
@@ -0,0 +1 @@
|
||||
<html><body></body></html>
|
||||
1460
public/assets/css/components/kanban.css
Normal file
33
public/assets/css/components/masonwall.css
Normal file
@@ -0,0 +1,33 @@
|
||||
#ideaMason .ticketBox {
|
||||
width: 250px;
|
||||
cursor:move;
|
||||
|
||||
position:absolute;
|
||||
}
|
||||
|
||||
#ideaMason .ticketBox .ticketBox {
|
||||
position:relative;
|
||||
width:auto;
|
||||
cursor:auto;
|
||||
}
|
||||
|
||||
#ideaMason .ticketBox:hover {
|
||||
background:var(--kanban-card-hover);
|
||||
}
|
||||
|
||||
.packery-drop-placeholder {
|
||||
background: var(--main-border-color);
|
||||
opacity:var(--opacity-faint);
|
||||
border: 2px dotted var(--main-border-color);
|
||||
visibility:visible;
|
||||
|
||||
|
||||
}
|
||||
|
||||
#ideaMason .sortableTicketList .ticketBox {
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
.mainIdeaContent {
|
||||
padding-top:10px;
|
||||
}
|
||||
150
public/assets/css/components/mediamanager.css
Normal file
@@ -0,0 +1,150 @@
|
||||
|
||||
.mediamgr {
|
||||
position: relative;
|
||||
min-height: 400px;
|
||||
}
|
||||
|
||||
.mediamgr .mediamgr_right {
|
||||
position: absolute;
|
||||
width: 250px;
|
||||
top: 62px;
|
||||
right: 0;
|
||||
}
|
||||
|
||||
.mediamgr .mediamgr_rightinner {
|
||||
margin: 20px 0;
|
||||
padding-left: 20px;
|
||||
}
|
||||
|
||||
.mediamgr .mediamgr_rightinner h4 {
|
||||
font-size: var(--base-font-size);
|
||||
text-transform: uppercase;
|
||||
padding: 10px;
|
||||
background: var(--primary-color);
|
||||
color: var(--primary-background);
|
||||
}
|
||||
|
||||
.mediamgr_head {
|
||||
padding: 10px;
|
||||
background: var(--secondary-background);
|
||||
border: 1px solid var(--main-border-color);
|
||||
overflow: visible;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.mediamgr_menu {
|
||||
list-style: none;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.mediamgr_menu li {
|
||||
display: inline-block;
|
||||
float: left;
|
||||
}
|
||||
|
||||
.mediamgr_menu li.right {
|
||||
float: right;
|
||||
}
|
||||
|
||||
.mediamgr_menu li a {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.mediamgr_menu li a:hover {
|
||||
cursor: pointer;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.mediamgr_menu li a.prev {
|
||||
border-right: 0;
|
||||
}
|
||||
|
||||
.mediamgr_menu li a.prev_disabled {
|
||||
opacity: var(--opacity-muted);
|
||||
}
|
||||
|
||||
.mediamgr_menu li a.preview_disabled {
|
||||
opacity: var(--opacity-muted);
|
||||
}
|
||||
|
||||
.mediamgr_menu form input.filekeyword {
|
||||
padding: 4px 8px;
|
||||
width: 200px;
|
||||
background: var(--primary-background);
|
||||
color: var(--secondary-font-color);
|
||||
margin: 0;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.mediamgr_content {
|
||||
padding: 20px 0;
|
||||
margin-right: 250px;
|
||||
}
|
||||
|
||||
.mediamgr_category {
|
||||
padding: 10px 0;
|
||||
border-bottom: 1px dashed var(--main-border-color);
|
||||
}
|
||||
|
||||
.mediamgr_category ul {
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
.mediamgr_category ul li {
|
||||
display: inline-block;
|
||||
margin-right: 4px;
|
||||
}
|
||||
|
||||
.mediamgr_category ul li.right {
|
||||
float: right;
|
||||
}
|
||||
|
||||
.mediamgr_category ul li a {
|
||||
display: block;
|
||||
padding: 4px 10px;
|
||||
color: var(--secondary-font-color);
|
||||
}
|
||||
|
||||
.mediamgr_category ul li a:hover, .mediamgr_category ul li.current a {
|
||||
background: var(--primary-font-color);
|
||||
color: var(--primary-background);
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.mediamgr_category ul li .pagenuminfo {
|
||||
display: inline-block;
|
||||
margin-top: 4px;
|
||||
}
|
||||
|
||||
.mediamgr_menu li a.newfilebutton {
|
||||
display: block;
|
||||
padding: 4px 10px 4px 10px;
|
||||
text-align: center;
|
||||
border: 1px solid var(--accent1);
|
||||
background: var(--accent1);
|
||||
color: var(--primary-background);
|
||||
font-weight: var(--font-weight-bold);
|
||||
font-size: var(--base-font-size);
|
||||
-moz-box-shadow: inset 0 1px 0 rgba(250, 250, 250, 0.3);
|
||||
-webkit-box-shadow: inset 0 1px 0 rgba(250, 250, 250, 0.3);
|
||||
box-shadow: inset 0 1px 0 rgba(250, 250, 250, 0.3);
|
||||
}
|
||||
|
||||
.mediamgr_menu li a.newfilebutton:hover {
|
||||
background: var(--primary-color);
|
||||
border: 1px solid var(--primary-color);
|
||||
}
|
||||
|
||||
.mediamgr_category {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
#mediafilter {
|
||||
right: 0 !important;
|
||||
left: auto !important;
|
||||
}
|
||||
|
||||
.mediamgr_category ul li {
|
||||
display: block !important;
|
||||
}
|
||||
39
public/assets/css/components/mermaid.css
Normal file
@@ -0,0 +1,39 @@
|
||||
/* Mermaid diagram styling for Copilot */
|
||||
.mermaid-diagram {
|
||||
margin: 16px 0;
|
||||
padding: 10px;
|
||||
background-color: var(--color-bg-muted);
|
||||
border-radius: var(--box-radius-large);
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
.mermaid {
|
||||
font-family: inherit;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
/* Make sure SVG diagrams are responsive */
|
||||
.mermaid svg {
|
||||
max-width: 100%;
|
||||
height: auto !important;
|
||||
}
|
||||
|
||||
/* Improve visibility of diagram elements */
|
||||
.mermaid .node rect,
|
||||
.mermaid .node circle,
|
||||
.mermaid .node ellipse,
|
||||
.mermaid .node polygon,
|
||||
.mermaid .node path {
|
||||
fill: var(--primary-background);
|
||||
stroke: var(--accent1);
|
||||
stroke-width: 1px;
|
||||
}
|
||||
|
||||
.mermaid .edgePath .path {
|
||||
stroke: var(--primary-font-color);
|
||||
stroke-width: 1.5px;
|
||||
}
|
||||
|
||||
.mermaid .label {
|
||||
color: var(--primary-font-color);
|
||||
}
|
||||
2885
public/assets/css/components/mobile.css
Normal file
1389
public/assets/css/components/nav.css
Normal file
177
public/assets/css/components/nyroModal.css
Normal file
@@ -0,0 +1,177 @@
|
||||
|
||||
.nyroModalCont, .nyroModalBg {
|
||||
z-index: 100;
|
||||
overflow-x: hidden !important;
|
||||
padding: 34px 40px 20px 35px
|
||||
}
|
||||
|
||||
.nyroModalBg {
|
||||
position: fixed;
|
||||
overflow: auto;
|
||||
top: 0;
|
||||
left: 0;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
background: rgba(0, 0, 0, 0.6);
|
||||
backdrop-filter: blur(3px);
|
||||
}
|
||||
.nmReposition {
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
.nyroModalCloseButton:hover {
|
||||
|
||||
}
|
||||
|
||||
.nyroModalLink, .nyroModalDom, .nyroModalForm, .nyroModalFormFile {
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
.nyroModalTitle {
|
||||
top: -26px;
|
||||
left: 0;
|
||||
margin: 0;
|
||||
font-size: 1.1em;
|
||||
color: #ddd;
|
||||
}
|
||||
.nyroModalCont {
|
||||
position: relative;
|
||||
/*box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.3);*/
|
||||
background: var(--secondary-background);
|
||||
border-radius:20px;
|
||||
margin-bottom:50px;
|
||||
}
|
||||
.nyroModalCont iframe {
|
||||
}
|
||||
.nyroModalError {
|
||||
border: 4px solid var(--red);
|
||||
color: var(--red);
|
||||
width: 250px;
|
||||
height: 250px;
|
||||
}
|
||||
.nyroModalError div {
|
||||
min-width: 0;
|
||||
min-height: 0;
|
||||
padding: 10px;
|
||||
}
|
||||
.nyroModalLink, .nyroModalDom, .nyroModalForm, .nyroModalFormFile {
|
||||
position: relative;
|
||||
min-height: 100px;
|
||||
min-width: 250px;
|
||||
}
|
||||
.nyroModalImage, .nyroModalSwf, .nyroModalIframe, .nyroModalIframeForm {
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
}
|
||||
.nyroModalImage img {
|
||||
vertical-align: top;
|
||||
}
|
||||
.nyroModalHidden {
|
||||
left: -9999em;
|
||||
top: -9999em;
|
||||
}
|
||||
.nyroModalLoad {
|
||||
position: absolute;
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
background: transparent url(../../images/svg/loading-animation.svg) no-repeat center;
|
||||
padding: 0;
|
||||
background-size: 100px 100px;
|
||||
}
|
||||
.nyroModalPrev, .nyroModalNext {
|
||||
outline: none;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
height: 60%;
|
||||
width: 150px;
|
||||
min-height: 50px;
|
||||
max-height: 300px;
|
||||
cursor: pointer;
|
||||
text-indent: -9999em;
|
||||
background: transparent url('data:image/gif;base64,AAAA') left 20% no-repeat;
|
||||
}
|
||||
.nyroModalImage .nyroModalPrev, .nyroModalImage .nyroModalNext {
|
||||
height: 100%;
|
||||
width: 40%;
|
||||
max-height: none;
|
||||
}
|
||||
.nyroModalPrev {
|
||||
left: 0;
|
||||
}
|
||||
.nyroModalPrev:hover {
|
||||
}
|
||||
.nyroModalNext {
|
||||
right: 0;
|
||||
}
|
||||
.nyroModalNext:hover {
|
||||
}
|
||||
|
||||
.nyroModalCont textarea,
|
||||
.nyroModalCont input[type="text"],
|
||||
.nyroModalCont select {
|
||||
/*width:100%;*/
|
||||
}
|
||||
|
||||
.nyroModalCont select {
|
||||
max-width:100%;
|
||||
}
|
||||
|
||||
.nyroModalLink, .nyroModalDom, .nyroModalForm, .nyroModalFormFile {
|
||||
|
||||
}
|
||||
|
||||
.nyroModalCont h1 {
|
||||
font-size:var(--font-size-xxl);
|
||||
color:var(--primary-font-color);
|
||||
margin-bottom:20px;
|
||||
}
|
||||
|
||||
.nyroModalCont .row .regLeft {
|
||||
display:none;
|
||||
}
|
||||
|
||||
.nyroModalCont .row .regRight {
|
||||
min-width:500px;
|
||||
}
|
||||
|
||||
.modal-icons {
|
||||
float:right;
|
||||
margin-top:1px;
|
||||
margin-right:30px;
|
||||
|
||||
}
|
||||
|
||||
.nyroModalCont .modal-icons a {
|
||||
display:inline-block;
|
||||
line-height:23px;
|
||||
border:0px solid var(--main-border-color);
|
||||
border-radius:var(--box-radius-small);
|
||||
width: 25px;
|
||||
text-align: center;
|
||||
color:var(--primary-font-color);
|
||||
font-size: var(--font-size-m);
|
||||
}
|
||||
|
||||
.nyroModalCloseButton {
|
||||
border:0px solid var(--main-border-color);
|
||||
font-size: var(--font-size-xl);
|
||||
text-indent: 0;
|
||||
color: var(--primary-font-color) !important;
|
||||
border-radius:var(--box-radius-small);
|
||||
height: 25px;
|
||||
line-height: 25px;
|
||||
right: 40px;
|
||||
text-align: center;
|
||||
top: 35px;
|
||||
width: 25px;
|
||||
z-index: 1000010;
|
||||
}
|
||||
|
||||
.nyroModalCloseButton:hover,
|
||||
.modal-icons a:hover {
|
||||
text-decoration: none;
|
||||
background:var(--main-border-color-hover) !important;
|
||||
color:var(--primary-font-color);
|
||||
}
|
||||
412
public/assets/css/components/overwrites.css
Normal file
@@ -0,0 +1,412 @@
|
||||
|
||||
/* login */
|
||||
.inputwrapper button { background: var(--main-action-bg); border-color: var(--main-border-color) }
|
||||
.inputwrapper button:hover { background: var(--main-action-hover-bg); border-color: var(--main-border-color) }
|
||||
|
||||
/* background */
|
||||
.leftmenu .nav-tabs.nav-stacked > li.active > a,
|
||||
.leftmenu .nav-tabs.nav-stacked > li.active > a:hover,
|
||||
.shortcuts li a,
|
||||
.widgettitle,
|
||||
.mediamgr .mediamgr_rightinner h4,
|
||||
.messagemenu, .msglist li.selected,
|
||||
.wizard .hormenu li a.done,
|
||||
.wizard .hormenu li a.selected,
|
||||
.actionBar a:hover, .actionBar a:hover,
|
||||
.wizard .tabbedmenu, .nav-tabs > .active > a:focus,
|
||||
.tabbable > .nav-tabs,
|
||||
.nav-tabs > li > a:hover,
|
||||
.nav-tabs > li > a:focus,
|
||||
.nav-pills > .active > a,
|
||||
.nav-pills > .active > a:hover,
|
||||
.nav-pills > .active > a:focus,
|
||||
.tabs-right .nav-tabs,
|
||||
.tabs-right > .nav-tabs > li > a,
|
||||
.tabs-left .nav-tabs,
|
||||
.tabs-left > .nav-tabs > li > a,
|
||||
.progress-primary .bar,
|
||||
.ui-datepicker-calendar td.ui-datepicker-today a,
|
||||
.nav-tabs > .active > a,
|
||||
.nav-tabs > .active > a:hover,
|
||||
.nav-tabs > .active > a:focus,
|
||||
.nav-list > .active > a,
|
||||
.nav-list > .active > a:hover,
|
||||
.nav-list > .active > a:focus,
|
||||
.fc-widget-header, .fc-widget-header.fc-agenda-gutter.fc-last, .chosen-container-multi .chosen-choices .search-choice,
|
||||
div.tagsinput span.tag, .chosen-container .chosen-results .highlighted
|
||||
{ background-color: var(--primary-color) }
|
||||
|
||||
|
||||
|
||||
.loginpanelinner,
|
||||
.leftpanel .leftmenu .nav-tabs ul.projectselector li.active a{
|
||||
background-color: var(--primary-color) !important;
|
||||
color:var(--main-action-color);
|
||||
}
|
||||
|
||||
.header .logo {
|
||||
|
||||
}
|
||||
|
||||
.boxedHighlight{
|
||||
background:var(--accent1);
|
||||
}
|
||||
|
||||
/* color */
|
||||
|
||||
a,a:hover,a:link,a:active,a:focus,
|
||||
.userlist li .uinfo h5,
|
||||
.messagemenu ul li.active a,
|
||||
.msglist li h4,
|
||||
.actionBar a,
|
||||
.actionBar a.buttonDisabled,
|
||||
.wizard .tabbedmenu li a.selected,
|
||||
.wizard .tabbedmenu li a.done,
|
||||
.tabbable > .nav-tabs > li.active > a,
|
||||
.btn-circle.btn-primary, .btn-circle.btn-primary:hover, .btn-circle.btn-primary:focus,
|
||||
.btn-circle.btn-primary:active, .btn-circle.btn-primary.active,
|
||||
.btn-circle.btn-primary.disabled, .btn-circle.btn-primary[disabled],
|
||||
.tabs-right > .nav-tabs .active > a,
|
||||
.tabs-right > .nav-tabs .active > a:hover,
|
||||
.tabs-right > .nav-tabs .active > a:focus,
|
||||
.tabs-left > .nav-tabs .active > a,
|
||||
.tabs-left > .nav-tabs .active > a:hover,
|
||||
.tabs-left > .nav-tabs .active > a:focus,
|
||||
.ticketBox a.userPopover:hover,
|
||||
.primaryColor,
|
||||
.optionLink,
|
||||
.inlineDropDownContainer .ticketDropDown:hover,
|
||||
.leftpanel .leftmenu .nav-tabs ul.projectselector li.intro a,
|
||||
.maincontentinner .ticketDropdown.noBg >a,
|
||||
.maincontentinner .ticketDropdown.noBg >a:link,
|
||||
.viewDropDown .dropdown-menu li a.active
|
||||
{ color: var(--primary-color); }
|
||||
|
||||
|
||||
input[type='submit'],
|
||||
button
|
||||
{ background-color: var(--main-action-bg); }
|
||||
|
||||
input[type='submit']:hover,
|
||||
button:hover {
|
||||
background-color: var(--main-action-hover-bg);
|
||||
color:#fff;
|
||||
}
|
||||
|
||||
.chosen-container-multi .chosen-choices .search-choice {
|
||||
color:#fff;
|
||||
}
|
||||
|
||||
.btn-white {
|
||||
background:#fff;
|
||||
}
|
||||
|
||||
span.btn-white:hover{
|
||||
background:#fff;
|
||||
}
|
||||
|
||||
|
||||
/* border color */
|
||||
.widgetcontent,
|
||||
.messagemenu ul li.active,
|
||||
.messageleft,
|
||||
.messageright,
|
||||
.messagesearch,
|
||||
.msgreply,
|
||||
.wizard .hormenu li a,
|
||||
.wizard .hormenu li:first-child a,
|
||||
.stepContainer,
|
||||
.actionBar,
|
||||
.actionBar a,
|
||||
.actionBar a.buttonDisabled,
|
||||
.tabbable > .nav-tabs,
|
||||
.tabbable > .tab-content,
|
||||
.nav-tabs.nav-stacked > li > a:focus,
|
||||
.btn-circle.btn-primary, .btn-circle.btn-primary:hover, .btn-circle.btn-primary:focus,
|
||||
.btn-circle.btn-primary:active, .btn-circle.btn-primary.active,
|
||||
.btn-circle.btn-primary.disabled, .btn-circle.btn-primary[disabled],
|
||||
.nav-tabs,
|
||||
.nav-tabs > li > a:hover, .nav-tabs > li > a:focus,
|
||||
.tabs-below .tab-content,
|
||||
.tabs-below > .nav-tabs > li.active > a,
|
||||
.tabs-right,
|
||||
.tabs-left,
|
||||
.tab-primary.ui-tabs,
|
||||
.nav-tabs.nav-stacked > li > a,
|
||||
.nav-tabs.nav-stacked > li > a:hover,
|
||||
.nav-tabs.nav-stacked > li > a:hover,
|
||||
.nav-tabs.nav-stacked > li > a:focus,
|
||||
.nav-tabs > .active > a,
|
||||
.nav-tabs > .active > a:hover,
|
||||
.nav-tabs > .active > a:focus,
|
||||
div.tagsinput span.tag
|
||||
{ border-color: var(--main-border-color) }
|
||||
|
||||
|
||||
.ui-datepicker-header { background-color: var(--primary-color) !important; }
|
||||
.ui-datepicker { border-color: var(--main-border-color) !important; }
|
||||
|
||||
|
||||
/* extras */
|
||||
|
||||
.tabs-below > .nav-tabs > li.active > a { border-bottom: 1px solid var(--main-border-color) !important; }
|
||||
.nav-list > li > a { color: #666; }
|
||||
.tabs-left > .nav-tabs > li,
|
||||
.tabs-right > .nav-tabs > li { border-color: var(--main-border-color); }
|
||||
.leftmenu .nav-tabs.nav-stacked > li > a { border-color: var(--main-border-color) !important; }
|
||||
.leftmenu .nav-tabs.nav-stacked > li.active > a { border-color: var(--main-border-color) !important; }
|
||||
|
||||
|
||||
@media screen and (max-width: 480px) {
|
||||
|
||||
.userloggedinfo ul li a:hover { background-color: var(--primary-color); }
|
||||
|
||||
.userloggedinfo .userinfo,
|
||||
.wizard .hormenu li,
|
||||
.messageright { border-color: var(--main-border-color); }
|
||||
|
||||
}
|
||||
|
||||
.timesheetTable {
|
||||
|
||||
}
|
||||
|
||||
.timesheetTable input {
|
||||
width:70%;
|
||||
}
|
||||
|
||||
.week-picker {
|
||||
width:100px;
|
||||
}
|
||||
|
||||
.timesheetTable select {
|
||||
width:90%;
|
||||
}
|
||||
|
||||
|
||||
.ui-weekpicker td a.ui-state-hover{
|
||||
background:#eee;
|
||||
}
|
||||
|
||||
.ui-weekpicker td a.ui-state-highlight {
|
||||
background-color: var(--primary-color);
|
||||
}
|
||||
|
||||
|
||||
.ui-state-highlight {
|
||||
background:#eee;
|
||||
}
|
||||
|
||||
.companyProject,
|
||||
.companyProject a{
|
||||
color:#999;
|
||||
font-weight:normal
|
||||
}
|
||||
|
||||
.filterBar {
|
||||
|
||||
border:0px solid var(--main-border-color);
|
||||
padding:10px;
|
||||
margin-bottom:5px;
|
||||
padding-top:5px;
|
||||
margin-top: 10px;
|
||||
background:var(--secondary-background);
|
||||
border-radius:var(--box-radius);
|
||||
z-index: 10;
|
||||
position: absolute;
|
||||
left: 0px;
|
||||
box-shadow: var(--large-shadow);
|
||||
}
|
||||
|
||||
.filterBar label {
|
||||
font-weight:normal;
|
||||
}
|
||||
|
||||
.headtitle {
|
||||
background:var(--kanban-col-bg);
|
||||
border:0px solid var(--main-border-color);
|
||||
border-radius:var(--box-radius);
|
||||
}
|
||||
|
||||
.filterBar .filterBoxLeft {
|
||||
float:left;
|
||||
margin-right:15px;
|
||||
min-width:50px;
|
||||
}
|
||||
|
||||
.filterBar .filterBoxLeft input,
|
||||
.filterBar .filterBoxLeft select {
|
||||
float:left;
|
||||
}
|
||||
|
||||
label.inline {
|
||||
float:left;
|
||||
margin-right:5px;
|
||||
padding-top:6px;
|
||||
}
|
||||
|
||||
.loading {
|
||||
position:absolute;
|
||||
width:100%;
|
||||
height:40px;
|
||||
}
|
||||
|
||||
body .widgettitle.title-light {
|
||||
color:var(--primary-color);
|
||||
padding-left:0px;
|
||||
background-color: transparent !important;
|
||||
border-left:0px !important;
|
||||
border-top:0px !important;
|
||||
border-right:0px !important;
|
||||
border-bottom:0px solid #ccc;
|
||||
margin-bottom:15px;
|
||||
font-size:var(--font-size-l);
|
||||
box-shadow: none;
|
||||
|
||||
}
|
||||
|
||||
.nyroModalCont .widgettitle.title-light {
|
||||
padding-top: 5px;
|
||||
font-size:var(--font-size-l);
|
||||
}
|
||||
|
||||
div.tagsinput {
|
||||
border:1px solid var(--main-border-color);
|
||||
}
|
||||
|
||||
|
||||
body .tox .tox-edit-area__iframe,
|
||||
body .tox .tox-toolbar-overlord{
|
||||
background-color:transparent;
|
||||
}
|
||||
|
||||
|
||||
.ui-datepicker-next {
|
||||
cursor: pointer;
|
||||
position: absolute;
|
||||
top: 8px;
|
||||
right: 5px;
|
||||
background: url(~images/calarrow.png) no-repeat 3px 1px;
|
||||
}
|
||||
|
||||
.ui-datepicker-prev {
|
||||
cursor: pointer;
|
||||
position: absolute;
|
||||
top: 8px;
|
||||
left: 5px;
|
||||
background: url(~images/calarrow.png) no-repeat 3px -39px;
|
||||
}
|
||||
|
||||
.ui-datepicker-header {
|
||||
position: relative;
|
||||
text-align: center;
|
||||
padding: 5px;
|
||||
color: #fff;
|
||||
background: var(--primary-color);
|
||||
text-transform: uppercase;
|
||||
border-top-left-radius: 5px;
|
||||
border-top-right-radius: 5px;
|
||||
}
|
||||
|
||||
.ui-datepicker {
|
||||
border-radius:5px;
|
||||
}
|
||||
|
||||
|
||||
div.growl,
|
||||
div.growl.growl-default,
|
||||
div.growl div.growl-closer {
|
||||
background:var(--secondary-background);
|
||||
color:var(--primary-font-color);
|
||||
padding:20px;
|
||||
font-size:var(--base-font-size);
|
||||
width:250px;
|
||||
opacity:1;
|
||||
border-radius:var(--box-radius);
|
||||
box-shadow: var(--regular-shadow);
|
||||
border:0px;
|
||||
|
||||
}
|
||||
|
||||
div.growl growl-close {
|
||||
color:var(--primary-font-color);
|
||||
font-size:var(--base-font-size);
|
||||
}
|
||||
|
||||
div.growl.growl-default,
|
||||
div.growl.growl-success{
|
||||
border-left:5px solid var(--green);
|
||||
}
|
||||
|
||||
div.growl.growl-notice {
|
||||
border-left:5px solid var(--blue);
|
||||
}
|
||||
|
||||
div.growl.growl-error {
|
||||
border-left:5px solid var(--dark-red);
|
||||
}
|
||||
|
||||
div.growl .growl-title {
|
||||
font-size: 18px;
|
||||
line-height: 24px;
|
||||
display:none;
|
||||
}
|
||||
|
||||
div.growl .growl-message {
|
||||
font-size: var(--base-font-size);
|
||||
line-height: 18px;
|
||||
font-family: var(--primary-font-family);
|
||||
}
|
||||
|
||||
div.growl.growl-medium {
|
||||
width: 250px;
|
||||
padding: 20px;
|
||||
margin: 10px;
|
||||
}
|
||||
|
||||
/* Playing with header */
|
||||
|
||||
|
||||
:not(pre)>code[class*=language-], pre[class*=language-] {
|
||||
}
|
||||
|
||||
code[class*=language-], pre[class*=language-] {
|
||||
text-shadow:0px 1px var(--secondary-background);
|
||||
}
|
||||
|
||||
|
||||
element.style {
|
||||
margin-top: 5px;
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
body hr {
|
||||
margin: 20px 0;
|
||||
border: 0;
|
||||
border-bottom: 1px solid var(--main-border-color);
|
||||
}
|
||||
|
||||
/* tippy overrides
|
||||
*/
|
||||
|
||||
.tippy-content {
|
||||
font-size:var(--font-size-s);
|
||||
color: var(--secondary-action-hover-color);
|
||||
}
|
||||
|
||||
.tippy-box {
|
||||
background: var(--secondary-action-hover-bg);
|
||||
}
|
||||
|
||||
.tippy-arrow {
|
||||
color:var(--secondary-action-hover-bg);
|
||||
}
|
||||
|
||||
|
||||
.ui-resizable-se {
|
||||
opaciy:0.5
|
||||
}
|
||||
|
||||
#freshworks-container,
|
||||
#freshworks-container #launcher-frame{
|
||||
z-index:90 !important;
|
||||
}
|
||||
159
public/assets/css/components/print.css
Normal file
@@ -0,0 +1,159 @@
|
||||
@media print {
|
||||
|
||||
@page {
|
||||
size:landscape;
|
||||
}
|
||||
|
||||
* {
|
||||
-webkit-print-color-adjust:exact;
|
||||
overflow:hidden;
|
||||
}
|
||||
|
||||
html, body {
|
||||
width:100%;
|
||||
mso-page-orientation: landscape;
|
||||
}
|
||||
.mainwrapper.menuopen .rightpanel {
|
||||
margin-left:0px;
|
||||
padding-top:0px;
|
||||
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.dropdown .fa-caret-down {
|
||||
display:none;
|
||||
}
|
||||
|
||||
.dropdown a {
|
||||
text-decoration:none !important;
|
||||
}
|
||||
|
||||
.btn-group {
|
||||
display:none;
|
||||
}
|
||||
|
||||
a[href]:after {
|
||||
content: '' !important;
|
||||
}
|
||||
|
||||
.maincontent {
|
||||
padding:0px;
|
||||
}
|
||||
|
||||
.maincontentinner {
|
||||
padding-top:0px;
|
||||
}
|
||||
|
||||
.sortableTicketList .row-fluid {
|
||||
overflow:hidden !important;
|
||||
}
|
||||
|
||||
.column {
|
||||
min-width:auto !important;
|
||||
}
|
||||
|
||||
.header-title-dropdown {
|
||||
vertical-align:middle;
|
||||
}
|
||||
|
||||
.btn {
|
||||
display:none !important;
|
||||
}
|
||||
|
||||
.popup-wrapper {
|
||||
display:none !important;
|
||||
}
|
||||
|
||||
.footer {
|
||||
position: fixed;
|
||||
right: 10px;
|
||||
padding: 0px !important;
|
||||
bottom: 10px;
|
||||
}
|
||||
|
||||
/*
|
||||
* When a modal (e.g. a single to-do) is open, print only the modal's
|
||||
* content instead of the underlying page. nyroModal appends .nyroModalBg
|
||||
* (overlay) and .nyroModalCont (content) to the body, so we can hide the
|
||||
* rest of the app and let the modal flow onto the page.
|
||||
*/
|
||||
body:has(.nyroModalCont) .mainwrapper,
|
||||
body:has(.nyroModalCont) .nyroModalBg,
|
||||
.nyroModalCont .nyroModalClose,
|
||||
.nyroModalCont .modalCloseButton {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
body:has(.nyroModalCont) .nyroModalCont {
|
||||
position: static !important;
|
||||
width: 100% !important;
|
||||
max-width: 100% !important;
|
||||
height: auto !important;
|
||||
margin: 0 !important;
|
||||
padding: 0 !important;
|
||||
box-shadow: none !important;
|
||||
overflow: visible !important;
|
||||
page-break-inside: avoid;
|
||||
}
|
||||
|
||||
body:has(.nyroModalCont) .nyroModalCont * {
|
||||
overflow: visible !important;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Report screens (project / plan / strategy): keep board-packet output clean.
|
||||
*/
|
||||
@media print {
|
||||
|
||||
.periodPicker .btn-group,
|
||||
.periodPicker .periodPickerCustom,
|
||||
.hideOnPrint {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
.reportMilestone,
|
||||
.reportStatusUpdate,
|
||||
.reportGoalTable tr,
|
||||
.reportNeedsAttention,
|
||||
.reportSlippage,
|
||||
.programMatrixTable tr {
|
||||
page-break-inside: avoid;
|
||||
}
|
||||
|
||||
/* Expand drill-down task lists so the packet is complete on paper. */
|
||||
.reportKeyTasks {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.reportKeyTasks[open] summary,
|
||||
.reportKeyTasks summary {
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
.reportKeyTasks > ul {
|
||||
display: block !important;
|
||||
}
|
||||
|
||||
/* Status colors must survive printer color handling. */
|
||||
.reportStatusPill span,
|
||||
.reportStatusNarrative .reportStatusUpdate,
|
||||
.reportNeedsAttention {
|
||||
print-color-adjust: exact;
|
||||
-webkit-print-color-adjust: exact;
|
||||
}
|
||||
|
||||
/* Milestone links read as text in the packet. */
|
||||
.hideLinkOnPrint {
|
||||
color: inherit !important;
|
||||
text-decoration: none !important;
|
||||
}
|
||||
}
|
||||
|
||||
@media print {
|
||||
/* Chromium hides closed <details> content via content-visibility. */
|
||||
.reportKeyTasks::details-content {
|
||||
content-visibility: visible !important;
|
||||
display: block !important;
|
||||
}
|
||||
}
|
||||
698
public/assets/css/components/progressbars.css
Normal file
@@ -0,0 +1,698 @@
|
||||
.progress {
|
||||
height: 16px;
|
||||
}
|
||||
|
||||
.progress .bar {
|
||||
-moz-box-shadow: none;
|
||||
-webkit-box-shadow: none;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
.progress-primary .bar {
|
||||
background: var(--element-gradient);
|
||||
}
|
||||
|
||||
.progress-info .bar {
|
||||
background: var(--element-gradient);
|
||||
}
|
||||
|
||||
.progress-success .bar {
|
||||
background: var(--element-gradient);
|
||||
}
|
||||
|
||||
.progress-warnng .bar {
|
||||
background: var(--element-gradient);
|
||||
}
|
||||
|
||||
.progress {
|
||||
height: 16px;
|
||||
margin-bottom: 0px;
|
||||
border-radius: var(--element-radius);
|
||||
overflow: hidden;
|
||||
background-color: var(--layered-background);
|
||||
box-shadow: var(--input-shadow);
|
||||
}
|
||||
|
||||
.progress-wrapper .percent-label {
|
||||
font-size:var(--font-size-s);
|
||||
}
|
||||
|
||||
.progress-bar {
|
||||
float: left;
|
||||
width: 0;
|
||||
height: 100%;
|
||||
font-size: var(--base-font-size);
|
||||
color: var(--accent1-color);
|
||||
text-align: center;
|
||||
background-color: var(--accent1);
|
||||
-webkit-box-shadow: var(--min-shadow);
|
||||
box-shadow: var(--min-shadow);
|
||||
-webkit-transition: width 0.6s ease;
|
||||
transition: width 0.6s ease;
|
||||
}
|
||||
|
||||
.progress-striped .progress-bar {
|
||||
background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));
|
||||
background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
|
||||
background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
|
||||
background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
|
||||
background-size: 40px 40px;
|
||||
}
|
||||
|
||||
.progress.active .progress-bar {
|
||||
-webkit-animation: progress-bar-stripes 2s linear infinite;
|
||||
-moz-animation: progress-bar-stripes 2s linear infinite;
|
||||
-ms-animation: progress-bar-stripes 2s linear infinite;
|
||||
-o-animation: progress-bar-stripes 2s linear infinite;
|
||||
animation: progress-bar-stripes 2s linear infinite;
|
||||
}
|
||||
|
||||
.progress-bar-success {
|
||||
background: var(--element-gradient);
|
||||
}
|
||||
|
||||
.progress-striped .progress-bar-success {
|
||||
background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));
|
||||
background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
|
||||
background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
|
||||
background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
|
||||
}
|
||||
|
||||
.progress-bar-info {
|
||||
background-color: var(--blue);
|
||||
}
|
||||
|
||||
.progress-striped .progress-bar-info {
|
||||
background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));
|
||||
background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
|
||||
background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
|
||||
background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
|
||||
}
|
||||
|
||||
.progress-bar-warning {
|
||||
background-color: var(--yellow);
|
||||
}
|
||||
|
||||
.progress-striped .progress-bar-warning {
|
||||
background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));
|
||||
background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
|
||||
background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
|
||||
background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
|
||||
}
|
||||
|
||||
.progress-bar-danger {
|
||||
background-color: var(--red);
|
||||
}
|
||||
|
||||
.progress-striped .progress-bar-danger {
|
||||
background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));
|
||||
background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
|
||||
background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
|
||||
background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
|
||||
}
|
||||
|
||||
|
||||
.progressWrapper {
|
||||
position:relative;
|
||||
height: 44px;
|
||||
}
|
||||
|
||||
.progressWrapper .step {
|
||||
position: absolute;
|
||||
display: block;
|
||||
top: -10px;
|
||||
margin-left: -16px;
|
||||
}
|
||||
|
||||
.progressWrapper .step .innerCircle {
|
||||
display:block;
|
||||
width: 30px;
|
||||
height: 30px;
|
||||
border: 5px solid var(--layered-background);
|
||||
border-radius: 20px;
|
||||
background: var(--solid-neutral);
|
||||
margin-top: 4px;
|
||||
}
|
||||
|
||||
.progressWrapper .step .title {
|
||||
margin-left:calc(-50% + 36px);
|
||||
padding-top: 4px;
|
||||
display: inline-block;
|
||||
color:var(--primary-font-color);
|
||||
opacity:var(--opacity-disabled);
|
||||
font-size:var(--font-size-m);
|
||||
}
|
||||
|
||||
.progressWrapper .step .title:hover {
|
||||
color:var(--primary-font-color) !important;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@-webkit-keyframes breathing {
|
||||
0% {
|
||||
-webkit-transform: scale(0.9);
|
||||
transform: scale(0.9);
|
||||
}
|
||||
|
||||
25% {
|
||||
-webkit-transform: scale(1);
|
||||
transform: scale(1);
|
||||
}
|
||||
|
||||
50% {
|
||||
-webkit-transform: scale(1.2);
|
||||
transform: scale(1.2);
|
||||
}
|
||||
|
||||
75% {
|
||||
-webkit-transform: scale(1);
|
||||
transform: scale(1);
|
||||
}
|
||||
|
||||
100% {
|
||||
-webkit-transform: scale(0.9);
|
||||
transform: scale(0.9);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes breathing {
|
||||
0% {
|
||||
-webkit-transform: scale(0.9);
|
||||
-ms-transform: scale(0.9);
|
||||
transform: scale(0.9);
|
||||
}
|
||||
|
||||
25% {
|
||||
-webkit-transform: scale(1);
|
||||
-ms-transform: scale(1);
|
||||
transform: scale(1);
|
||||
}
|
||||
|
||||
50% {
|
||||
-webkit-transform: scale(1.2);
|
||||
-ms-transform: scale(1.2);
|
||||
transform: scale(1.2);
|
||||
}
|
||||
|
||||
75% {
|
||||
-webkit-transform: scale(1);
|
||||
-ms-transform: scale(1);
|
||||
transform: scale(1);
|
||||
}
|
||||
|
||||
100% {
|
||||
-webkit-transform: scale(0.9);
|
||||
-ms-transform: scale(0.9);
|
||||
transform: scale(0.9);
|
||||
}
|
||||
}
|
||||
|
||||
.progressWrapper .step.complete .innerCircle {
|
||||
background:var(--accent1);
|
||||
color:var(--accent1);
|
||||
|
||||
}
|
||||
|
||||
.progressWrapper .step.complete .title{
|
||||
color:var(--accent1);
|
||||
opacity:1;
|
||||
}
|
||||
|
||||
.progressWrapper .step.current .innerCircle {
|
||||
-webkit-animation: breathing 2s ease-out infinite normal;
|
||||
animation: breathing 2s ease-out infinite normal;
|
||||
background:var(--accent2);
|
||||
}
|
||||
|
||||
.progressWrapper .step.current .title{
|
||||
color:var(--accent1);
|
||||
font-weight:var(--font-weight-bold);
|
||||
opacity:1;
|
||||
}
|
||||
|
||||
.progressWrapper .step .dropdown-menu {
|
||||
padding:10px;
|
||||
min-width:360px;
|
||||
}
|
||||
|
||||
.progressWrapper .step .dropdown-menu li {
|
||||
display:block;
|
||||
clear:both;
|
||||
padding:0px 10px 4px 10px;
|
||||
border-color:var(--accent1);
|
||||
border:1px solid var(--accent1);
|
||||
border-radius:var(--box-radius);
|
||||
margin-bottom:4px;
|
||||
}
|
||||
|
||||
.progressWrapper .step .dropdown-menu li label {
|
||||
color:var(--accent1);
|
||||
}
|
||||
|
||||
.progressWrapper .step .dropdown-menu li.done {
|
||||
opacity:var(--opacity-muted);
|
||||
}
|
||||
|
||||
.progressWrapper .step .dropdown-menu li:hover {
|
||||
background:var(--main-menu-link-hover-bg);
|
||||
}
|
||||
|
||||
.progressWrapper .step .dropdown-menu li.done label{
|
||||
text-decoration: line-through;
|
||||
color:var(--primary-font-color);
|
||||
}
|
||||
|
||||
.progressWrapper .step .dropdown-menu li input {
|
||||
float:left;
|
||||
margin-right:4px;
|
||||
}
|
||||
|
||||
.progressWrapper .step li.checklistDescription {
|
||||
padding:4px;
|
||||
font-style:italic;
|
||||
border:none;
|
||||
}
|
||||
|
||||
|
||||
.progressWrapper .step li .taskDescription {
|
||||
font-size: var(--font-size-s);
|
||||
}
|
||||
|
||||
|
||||
.full-width-loader {
|
||||
opacity: 0;
|
||||
position: fixed;
|
||||
z-index: var(--zlayer-7);
|
||||
top: 0px;
|
||||
left: 0px;
|
||||
height: 4px;
|
||||
width: 100%;
|
||||
background-color: transparent;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
|
||||
.full-width-loader .indeterminate {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
background-color: transparent;
|
||||
height: 4px;
|
||||
}
|
||||
|
||||
.full-width-loader .indeterminate::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
height: 100%;
|
||||
background: var(--element-gradient);
|
||||
animation: indeterminate 1.5s infinite ease-in-out;
|
||||
width: 70%;
|
||||
left: -70%;
|
||||
box-shadow: var(--regular-shadow);
|
||||
}
|
||||
|
||||
@keyframes indeterminate {
|
||||
0% {
|
||||
left: -70%;
|
||||
}
|
||||
100% {
|
||||
left: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
.full-width-loader.htmx-request {
|
||||
display: block;
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
/* Singleton top-of-page HTMX progress bar (driven by leantime.htmxProgress in app.js).
|
||||
One fixed element for the whole app; position:fixed means it never affects layout. */
|
||||
#lt-htmx-progress {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
height: 3px;
|
||||
z-index: var(--zlayer-9, 9999);
|
||||
pointer-events: none;
|
||||
opacity: 0;
|
||||
transition: opacity 150ms ease;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
#lt-htmx-progress.active {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
#lt-htmx-progress .bar {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
width: 40%;
|
||||
left: -40%;
|
||||
background: var(--element-gradient, var(--accent1, #006d9f));
|
||||
animation: lt-htmx-progress-slide 1.1s infinite ease-in-out;
|
||||
}
|
||||
|
||||
@keyframes lt-htmx-progress-slide {
|
||||
0% { left: -40%; width: 40%; }
|
||||
50% { left: 30%; width: 55%; }
|
||||
100% { left: 100%; width: 40%; }
|
||||
}
|
||||
|
||||
/* ----------------------------------------------
|
||||
* Generated by Animista on 2025-3-4 12:23:18
|
||||
* Licensed under FreeBSD License.
|
||||
* See http://animista.net/license for more info.
|
||||
* w: http://animista.net, t: @cssanimista
|
||||
* ---------------------------------------------- */
|
||||
|
||||
/**
|
||||
* ----------------------------------------
|
||||
* animation color-change-2x
|
||||
* ----------------------------------------
|
||||
*/
|
||||
@-webkit-keyframes color-change-2x {
|
||||
0% {
|
||||
color: var(--accent1);
|
||||
}
|
||||
50% {
|
||||
color: var(--accent2);
|
||||
}
|
||||
100% {
|
||||
color: var(--accent1);
|
||||
}
|
||||
}
|
||||
@keyframes color-change-2x {
|
||||
0% {
|
||||
color: var(--accent1);
|
||||
}
|
||||
50% {
|
||||
color: var(--accent2);
|
||||
}
|
||||
100% {
|
||||
color: var(--accent1);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes pulse {
|
||||
0% {
|
||||
transform: scale(1);
|
||||
}
|
||||
|
||||
50% {
|
||||
transform: scale(1.1);
|
||||
}
|
||||
|
||||
100% {
|
||||
transform: scale(1);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes circle-pulse {
|
||||
0%{
|
||||
transform: rotate(0deg);
|
||||
border-color: var(--accent1);
|
||||
} 100% {
|
||||
transform: rotate(360deg);
|
||||
border-color: var(--accent2);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* Animations */
|
||||
@keyframes startPulse {
|
||||
0% { transform: scale(1); }
|
||||
50% { transform: scale(0.95); }
|
||||
75% { transform: scale(1.05); }
|
||||
100% { transform: scale(1); }
|
||||
}
|
||||
|
||||
@keyframes rippleOut {
|
||||
0% { transform: translate(-50%, -50%) scale(0); opacity: 1; }
|
||||
100% { transform: translate(-50%, -50%) scale(1.5); opacity: 0; }
|
||||
}
|
||||
|
||||
@keyframes glowIn {
|
||||
0% { opacity: 0; }
|
||||
100% { opacity: 1; }
|
||||
}
|
||||
|
||||
/* Animations */
|
||||
@keyframes completePulse {
|
||||
0% { transform: scale(1); }
|
||||
50% { transform: scale(1.1); }
|
||||
100% { transform: scale(1); }
|
||||
}
|
||||
|
||||
@keyframes glowPulse {
|
||||
0% { transform: translate(-50%, -50%) scale(0.8); opacity: 0.8; }
|
||||
50% { opacity: 0.6; }
|
||||
100% { transform: translate(-50%, -50%) scale(2.5); opacity: 0; }
|
||||
}
|
||||
|
||||
@keyframes fadeInCheck {
|
||||
0% { opacity: 0; transform: scale(0.8); }
|
||||
100% { opacity: 1; transform: scale(1); }
|
||||
}
|
||||
|
||||
@keyframes circleAppear {
|
||||
0% { transform: translate(-50%, -50%) scale(0); opacity: 0; }
|
||||
100% { transform: translate(-50%, -50%) scale(1); opacity: 1; }
|
||||
}
|
||||
|
||||
/* Particle animations - each one goes in a different direction */
|
||||
@keyframes particleAnimation1 {
|
||||
0% { transform: translate(0, 0); opacity: 1; }
|
||||
100% { transform: translate(-30px, -30px); opacity: 0; }
|
||||
}
|
||||
|
||||
@keyframes particleAnimation2 {
|
||||
0% { transform: translate(0, 0); opacity: 1; }
|
||||
100% { transform: translate(30px, -30px); opacity: 0; }
|
||||
}
|
||||
|
||||
@keyframes particleAnimation3 {
|
||||
0% { transform: translate(0, 0); opacity: 1; }
|
||||
100% { transform: translate(40px, 0); opacity: 0; }
|
||||
}
|
||||
|
||||
@keyframes particleAnimation4 {
|
||||
0% { transform: translate(0, 0); opacity: 1; }
|
||||
100% { transform: translate(30px, 30px); opacity: 0; }
|
||||
}
|
||||
|
||||
@keyframes particleAnimation5 {
|
||||
0% { transform: translate(0, 0); opacity: 1; }
|
||||
100% { transform: translate(-30px, 30px); opacity: 0; }
|
||||
}
|
||||
|
||||
@keyframes particleAnimation6 {
|
||||
0% { transform: translate(0, 0); opacity: 1; }
|
||||
100% { transform: translate(-40px, 0); opacity: 0; }
|
||||
}
|
||||
|
||||
@keyframes particleAnimation7 {
|
||||
0% { transform: translate(0, 0); opacity: 1; }
|
||||
100% { transform: translate(-20px, -40px); opacity: 0; }
|
||||
}
|
||||
|
||||
@keyframes particleAnimation8 {
|
||||
0% { transform: translate(0, 0); opacity: 1; }
|
||||
100% { transform: translate(20px, 40px); opacity: 0; }
|
||||
}
|
||||
|
||||
.pulse {
|
||||
-webkit-animation: pulse 1s infinite linear both;
|
||||
animation: pulse 1s infinite linear both;
|
||||
}
|
||||
|
||||
.color-change-2x {
|
||||
-webkit-animation: color-change-2x 1s infinite linear both;
|
||||
animation: color-change-2x 1s infinite linear both;
|
||||
}
|
||||
|
||||
.pulse-click.starting {
|
||||
animation: startPulse 0.5s cubic-bezier(0.22, 0.61, 0.36, 1);
|
||||
}
|
||||
|
||||
.pulse-click.starting::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background-color: rgba(82, 113, 255, 0.3);
|
||||
border-radius: 50%;
|
||||
transform: translate(-50%, -50%) scale(0);
|
||||
animation: rippleOut 0.5s ease-out;
|
||||
}
|
||||
|
||||
.pulse-click.starting::after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
border-radius: 20px;
|
||||
box-shadow: inset 0 0 10px rgba(255, 255, 255, 0.5);
|
||||
opacity: 0;
|
||||
animation: glowIn 0.4s ease-out forwards;
|
||||
}
|
||||
|
||||
|
||||
|
||||
.circle-pulse {
|
||||
-webkit-animation: circle-pulse 1s infinite linear both;
|
||||
animation: circle-pulse 1s infinite linear both;
|
||||
}
|
||||
|
||||
.timerContainer.stopped {
|
||||
animation: pulse 0.4s ease-out;
|
||||
}
|
||||
|
||||
.timerContainer .stopped::after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background-image: radial-gradient(circle, rgba(0,0,0,0.6) 0%, rgba(0,0,0,0.0) 70%);
|
||||
border-radius: 50%;
|
||||
opacity: 0;
|
||||
animation: burst 0.8s ease-out forwards;
|
||||
}
|
||||
|
||||
/* Stopped state with celebrations */
|
||||
.timerContainer .stopped {
|
||||
animation: completePulse 0.4s ease-out;
|
||||
}
|
||||
|
||||
/* Glow effect behind the button */
|
||||
.timerContainer .stopped::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background: radial-gradient(circle, rgba(0,0,0,0.6) 0%, rgba(0,0,0,0.0) 70%);
|
||||
border-radius: 50%;
|
||||
z-index: -1;
|
||||
opacity: 0;
|
||||
animation: glowPulse 0.8s ease-out forwards;
|
||||
}
|
||||
|
||||
/* Checkmark that appears */
|
||||
.timerContainer .stopped::after {
|
||||
content: '✓';
|
||||
color: white;
|
||||
font-size: var(--font-size-xxl);
|
||||
position: absolute;
|
||||
z-index: var(--zlayer-2);
|
||||
opacity: 0;
|
||||
animation: fadeInCheck 0.3s 0.2s ease-out forwards;
|
||||
}
|
||||
|
||||
/* Success circle that appears */
|
||||
.timerContainer .success-circle {
|
||||
position: absolute;
|
||||
display:none;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
transform: translate(-50%, -50%) scale(0);
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
border-color: var(--grey);
|
||||
border-width: 1px;
|
||||
border-style: solid;
|
||||
border-radius: 50%;
|
||||
z-index: var(--zlayer-1);
|
||||
opacity: 0;
|
||||
|
||||
}
|
||||
|
||||
.timerContainer .stopped .success-circle {
|
||||
display:block;
|
||||
animation: circleAppear 0.3s 0.1s ease-out forwards;
|
||||
}
|
||||
|
||||
/* Container for all the particles */
|
||||
.particles-container {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
z-index: 0;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
/* Individual particles with different colors */
|
||||
.particle {
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
width: 8px;
|
||||
height: 8px;
|
||||
border-radius: 50%;
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
.timerContainer .stopped .particle-1 {
|
||||
background-color: var(--accent1);
|
||||
animation: particleAnimation1 0.8s ease-out;
|
||||
}
|
||||
|
||||
.timerContainer .stopped .particle-2 {
|
||||
background-color: var(--accent2);
|
||||
animation: particleAnimation2 0.8s ease-out;
|
||||
}
|
||||
|
||||
.timerContainer .stopped .particle-3 {
|
||||
background-color: var(--accent4);
|
||||
animation: particleAnimation3 0.8s ease-out;
|
||||
}
|
||||
|
||||
.timerContainer .stopped .particle-4 {
|
||||
background-color: var(--accent1);
|
||||
animation: particleAnimation4 0.8s ease-out;
|
||||
}
|
||||
|
||||
.timerContainer .stopped .particle-5 {
|
||||
background-color: var(--accent2);
|
||||
animation: particleAnimation5 0.8s ease-out;
|
||||
}
|
||||
|
||||
.timerContainer .stopped .particle-6 {
|
||||
background-color: var(--accent4);
|
||||
animation: particleAnimation6 0.8s ease-out;
|
||||
}
|
||||
|
||||
.timerContainer .stopped .particle-7 {
|
||||
background-color: var(--accent1);
|
||||
animation: particleAnimation7 0.8s ease-out;
|
||||
}
|
||||
|
||||
.timerContainer .stopped .particle-8 {
|
||||
background-color: var(--accent2);
|
||||
animation: particleAnimation8 0.8s ease-out;
|
||||
}
|
||||
|
||||
@keyframes rotate {
|
||||
from {
|
||||
transform: rotate(0);
|
||||
}
|
||||
|
||||
to {
|
||||
transform: rotate(360deg);
|
||||
}
|
||||
}
|
||||
196
public/assets/css/components/quickadd.less
Normal file
@@ -0,0 +1,196 @@
|
||||
/* Quick-add form styles */
|
||||
|
||||
.quickaddContainer {
|
||||
margin-bottom: 10px;
|
||||
width: 100%;
|
||||
box-sizing: border-box;
|
||||
|
||||
&.quickaddContainer--empty {
|
||||
padding: 6px;
|
||||
}
|
||||
}
|
||||
|
||||
.quickAddLink {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 6px;
|
||||
color: var(--main-action-color);
|
||||
text-decoration: none;
|
||||
padding: 8px;
|
||||
border-radius: var(--box-radius);
|
||||
transition: color 0.2s ease;
|
||||
font-size: var(--font-size-s);
|
||||
|
||||
&:hover {
|
||||
color: var(--accent1);
|
||||
}
|
||||
|
||||
&.empty-state {
|
||||
justify-content: flex-start;
|
||||
padding: 10px;
|
||||
color: var(--primary-font-color);
|
||||
opacity: 0.7;
|
||||
|
||||
&:hover {
|
||||
color: var(--accent1);
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
i {
|
||||
font-size: 14px;
|
||||
}
|
||||
}
|
||||
|
||||
form.quickAddForm {
|
||||
position: relative;
|
||||
display: block;
|
||||
width: 100%;
|
||||
padding: 12px;
|
||||
box-sizing: border-box;
|
||||
margin: 0;
|
||||
|
||||
&.active {
|
||||
animation: fadeIn 0.2s ease;
|
||||
}
|
||||
|
||||
.quickaddContainer--empty & {
|
||||
padding: 12px;
|
||||
}
|
||||
}
|
||||
|
||||
.quickAddForm .form-group {
|
||||
position: relative;
|
||||
margin-bottom: 0;
|
||||
width: 100%;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
/* Help icon positioned in top-right corner of form */
|
||||
.quickAddHelp {
|
||||
position: absolute;
|
||||
top: 8px;
|
||||
right: 8px;
|
||||
font-size: 14px;
|
||||
color: var(--primary-font-color);
|
||||
opacity: 0.4;
|
||||
cursor: help;
|
||||
transition: opacity 0.2s ease, color 0.2s ease;
|
||||
padding: 4px;
|
||||
z-index: 5;
|
||||
|
||||
&:hover,
|
||||
&:focus {
|
||||
opacity: 1;
|
||||
color: var(--accent1);
|
||||
outline: none;
|
||||
}
|
||||
|
||||
&:focus-visible {
|
||||
outline: 2px solid var(--accent1);
|
||||
outline-offset: 2px;
|
||||
border-radius: 50%;
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
.quickAddInput {
|
||||
width: 100%;
|
||||
max-width: 100%;
|
||||
height: 36px;
|
||||
border: 1px solid var(--main-border-color);
|
||||
border-radius: var(--box-radius);
|
||||
padding: 8px 12px;
|
||||
font-family: var(--primary-font-family);
|
||||
font-size: var(--font-size-s);
|
||||
color: var(--primary-font-color);
|
||||
background: var(--main-bg);
|
||||
line-height: 1.4;
|
||||
display: block;
|
||||
box-sizing: border-box;
|
||||
|
||||
&:focus {
|
||||
border-color: var(--accent1);
|
||||
outline: none;
|
||||
box-shadow: 0 0 0 2px color-mix(in srgb, var(--accent1) 15%, transparent);
|
||||
}
|
||||
|
||||
&.error {
|
||||
border-color: var(--red);
|
||||
}
|
||||
|
||||
&::placeholder {
|
||||
color: var(--primary-font-color);
|
||||
opacity: 0.5;
|
||||
}
|
||||
}
|
||||
|
||||
.error-message {
|
||||
color: var(--red);
|
||||
font-size: var(--font-size-s);
|
||||
margin-top: 4px;
|
||||
padding: 4px 8px;
|
||||
background: color-mix(in srgb, var(--red) 10%, transparent);
|
||||
border-radius: var(--box-radius);
|
||||
}
|
||||
|
||||
.formButtonContainer {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
margin-top: 10px;
|
||||
|
||||
.btn {
|
||||
padding: 6px 14px;
|
||||
font-size: var(--font-size-s);
|
||||
}
|
||||
|
||||
.btn-primary {
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
.btn-secondary {
|
||||
flex-shrink: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.sr-only {
|
||||
position: absolute;
|
||||
width: 1px;
|
||||
height: 1px;
|
||||
padding: 0;
|
||||
margin: -1px;
|
||||
overflow: hidden;
|
||||
clip: rect(0, 0, 0, 0);
|
||||
white-space: nowrap;
|
||||
border: 0;
|
||||
}
|
||||
|
||||
@keyframes fadeIn {
|
||||
from {
|
||||
opacity: 0;
|
||||
transform: translateY(-5px);
|
||||
}
|
||||
to {
|
||||
opacity: 1;
|
||||
transform: translateY(0);
|
||||
}
|
||||
}
|
||||
|
||||
/* Respect reduced motion */
|
||||
@media (prefers-reduced-motion: reduce) {
|
||||
.quickAddForm {
|
||||
animation: none;
|
||||
}
|
||||
|
||||
@keyframes fadeIn {
|
||||
from {
|
||||
opacity: 1;
|
||||
transform: translateY(0);
|
||||
}
|
||||
to {
|
||||
opacity: 1;
|
||||
transform: translateY(0);
|
||||
}
|
||||
}
|
||||
}
|
||||
1057
public/assets/css/components/report-deck.css
Normal file
242
public/assets/css/components/reports.css
Normal file
@@ -0,0 +1,242 @@
|
||||
/*
|
||||
* Report screens (project / plan / strategy).
|
||||
* Quiet, packet-like: card surfaces, muted labels, tabular numbers. The only loud
|
||||
* elements are the status dots and the needs-attention accent border.
|
||||
*/
|
||||
|
||||
/* ── stat tiles ─────────────────────────────────────────────────────── */
|
||||
|
||||
.reportStatTiles {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
|
||||
gap: 12px;
|
||||
margin-bottom: 24px;
|
||||
}
|
||||
|
||||
.reportStatTile {
|
||||
background: var(--card-bg, var(--secondary-background));
|
||||
border: 1px solid var(--card-border, var(--main-border-color));
|
||||
border-radius: var(--card-radius, var(--box-radius));
|
||||
padding: 14px 16px;
|
||||
}
|
||||
|
||||
.reportStatTile .tileLabel {
|
||||
display: block;
|
||||
font-size: var(--font-size-s);
|
||||
color: var(--secondary-font-color);
|
||||
margin-bottom: 4px;
|
||||
}
|
||||
|
||||
.reportStatTile .tileValue {
|
||||
display: block;
|
||||
font-size: var(--font-size-xxxl);
|
||||
font-weight: 600;
|
||||
line-height: 1.15;
|
||||
color: var(--primary-font-color);
|
||||
}
|
||||
|
||||
.reportStatTile .tileValue.tileValueDanger {
|
||||
color: var(--red);
|
||||
}
|
||||
|
||||
.reportStatTile .tileDelta {
|
||||
display: block;
|
||||
font-size: var(--font-size-s);
|
||||
color: var(--secondary-font-color);
|
||||
margin-top: 4px;
|
||||
}
|
||||
|
||||
.reportStatTile .tileDelta.deltaGood { color: var(--green); }
|
||||
.reportStatTile .tileDelta.deltaBad { color: var(--red); }
|
||||
|
||||
/* ── sections ───────────────────────────────────────────────────────── */
|
||||
|
||||
.reportSection {
|
||||
margin-bottom: 32px;
|
||||
}
|
||||
|
||||
.reportSection h5.subtitle {
|
||||
display: flex;
|
||||
align-items: baseline;
|
||||
gap: 8px;
|
||||
padding-bottom: 6px;
|
||||
margin-bottom: 12px;
|
||||
border-bottom: 1px solid var(--main-border-color);
|
||||
}
|
||||
|
||||
.reportSection h5.subtitle .sectionCount {
|
||||
font-size: var(--font-size-s);
|
||||
font-weight: normal;
|
||||
color: var(--secondary-font-color);
|
||||
}
|
||||
|
||||
/* ── needs attention ────────────────────────────────────────────────── */
|
||||
|
||||
.reportNeedsAttention {
|
||||
background: var(--card-bg, var(--secondary-background));
|
||||
border: 1px solid var(--card-border, var(--main-border-color));
|
||||
border-left: 3px solid var(--red);
|
||||
border-radius: var(--card-radius, var(--box-radius));
|
||||
padding: 14px 16px;
|
||||
margin-bottom: 24px;
|
||||
}
|
||||
|
||||
.reportNeedsAttention h5.subtitle {
|
||||
border-bottom: 0;
|
||||
padding-bottom: 0;
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
|
||||
.reportNeedsAttention ul li {
|
||||
padding: 3px 0;
|
||||
font-size: var(--font-size-m);
|
||||
}
|
||||
|
||||
/* ── milestone list ─────────────────────────────────────────────────── */
|
||||
|
||||
.reportMilestoneList {
|
||||
list-style: none;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.reportMilestoneList .reportMilestone {
|
||||
background: var(--card-bg, var(--secondary-background));
|
||||
border: 1px solid var(--card-border, var(--main-border-color));
|
||||
border-radius: var(--card-radius, var(--box-radius));
|
||||
padding: 10px 14px;
|
||||
margin: 0 0 8px 0;
|
||||
}
|
||||
|
||||
.reportMilestone .milestoneTitleRow {
|
||||
display: flex;
|
||||
align-items: baseline;
|
||||
gap: 8px;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.reportMilestone .milestoneProject {
|
||||
font-size: var(--font-size-s);
|
||||
color: var(--secondary-font-color);
|
||||
}
|
||||
|
||||
.reportMilestone .milestoneMeta {
|
||||
margin-left: auto;
|
||||
font-size: var(--font-size-s);
|
||||
color: var(--secondary-font-color);
|
||||
white-space: nowrap;
|
||||
font-variant-numeric: tabular-nums;
|
||||
}
|
||||
|
||||
.reportMilestone .milestoneOutcome .outcomeText {
|
||||
margin-top: 4px;
|
||||
font-size: var(--font-size-m);
|
||||
}
|
||||
|
||||
.reportMilestone .reportKeyTasks summary {
|
||||
font-size: var(--font-size-s);
|
||||
color: var(--secondary-font-color);
|
||||
cursor: pointer;
|
||||
margin-top: 4px;
|
||||
}
|
||||
|
||||
.reportMilestone .progress {
|
||||
height: 6px;
|
||||
margin: 0;
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
/* ── tables ─────────────────────────────────────────────────────────── */
|
||||
|
||||
.reportTable {
|
||||
width: 100%;
|
||||
border-collapse: collapse;
|
||||
}
|
||||
|
||||
.reportTable thead th {
|
||||
font-size: var(--font-size-s);
|
||||
font-weight: 600;
|
||||
color: var(--secondary-font-color);
|
||||
text-align: left;
|
||||
padding: 6px 12px;
|
||||
border-bottom: 1px solid var(--main-border-color);
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.reportTable tbody td {
|
||||
padding: 10px 12px;
|
||||
border-bottom: 1px solid var(--main-border-color);
|
||||
vertical-align: top;
|
||||
font-size: var(--font-size-m);
|
||||
}
|
||||
|
||||
.reportTable tbody tr:last-child td {
|
||||
border-bottom: 0;
|
||||
}
|
||||
|
||||
.reportTable th.numCol,
|
||||
.reportTable td.numCol {
|
||||
text-align: right;
|
||||
white-space: nowrap;
|
||||
font-variant-numeric: tabular-nums;
|
||||
}
|
||||
|
||||
.reportTable td .cellNote {
|
||||
display: block;
|
||||
font-size: var(--font-size-s);
|
||||
color: var(--secondary-font-color);
|
||||
margin-top: 2px;
|
||||
}
|
||||
|
||||
.reportTable .table-group-row td {
|
||||
font-weight: 600;
|
||||
color: var(--secondary-font-color);
|
||||
font-size: var(--font-size-s);
|
||||
padding-top: 14px;
|
||||
border-bottom: 0;
|
||||
}
|
||||
|
||||
/* ── narrative & slippage ───────────────────────────────────────────── */
|
||||
|
||||
.reportStatusUpdate {
|
||||
padding: 6px 0 6px 12px;
|
||||
}
|
||||
|
||||
.reportSlippage {
|
||||
border: 1px dashed var(--main-border-color);
|
||||
border-radius: var(--card-radius, var(--box-radius));
|
||||
padding: 10px 14px;
|
||||
margin-top: 12px;
|
||||
font-size: var(--font-size-s);
|
||||
color: var(--secondary-font-color);
|
||||
}
|
||||
|
||||
.reportSlippage strong {
|
||||
color: var(--primary-font-color);
|
||||
}
|
||||
|
||||
/* ── period picker & header band ────────────────────────────────────── */
|
||||
|
||||
.reportHeaderBand {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 20px;
|
||||
flex-wrap: wrap;
|
||||
margin-bottom: 16px;
|
||||
font-size: var(--font-size-m);
|
||||
}
|
||||
|
||||
.reportStatusPill {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 6px;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.statusDot {
|
||||
display: inline-block;
|
||||
width: 9px;
|
||||
height: 9px;
|
||||
border-radius: 50%;
|
||||
flex: none;
|
||||
}
|
||||
0
public/assets/css/components/reset.css
Normal file
2542
public/assets/css/components/resource-allocation.css
Normal file
956
public/assets/css/components/reverse-wizard.css
Normal file
@@ -0,0 +1,956 @@
|
||||
/*
|
||||
* Reverse wizard + intercept modal + review + source-chip styles.
|
||||
*
|
||||
* Consumed by the StrategyPro plugin's reverse-engineering flow, but loaded
|
||||
* from the CORE bundle (imported via main.less, like report-deck.css) because
|
||||
* the wizard never renders on "its own page": the intercept modal is echoed by
|
||||
* a register.php hook onto arbitrary pages, the stage screens arrive as HTMX
|
||||
* swaps, and the source-chip is procedurally rendered by the board hook —
|
||||
* so the styles must already be in the head everywhere.
|
||||
*
|
||||
* Extracted from per-template <style> blocks (plugins PR #79 cleanup); CSS
|
||||
* lives in CSS files, never in blade templates.
|
||||
*
|
||||
* Scopes: .reverse-modal (intercept), .rev-wiz (stages; .rev-wiz--outcomes /
|
||||
* .rev-wiz--step carry the four per-stage divergences), .rev-review (review),
|
||||
* .sp-source-chip (colors computed per program stay inline).
|
||||
*/
|
||||
|
||||
/* Scoped design tokens — derived from the global theme tokens so the
|
||||
* light/dark CSS swap re-skins the wizard automatically (nyroModal pattern).
|
||||
* Literals below have no global equivalent; the [data-theme="dark"]/.dark
|
||||
* block (tiptap pattern) retunes them when a theme attribute is stamped.
|
||||
* The source-chip's computed per-program colors are self-contained tinted
|
||||
* pills (AA inside the pill) and deliberately theme-independent. */
|
||||
.reverse-modal, .rev-wiz, .rev-review {
|
||||
--rw-panel: var(--secondary-background);
|
||||
--rw-text: var(--primary-font-color);
|
||||
--rw-text-2: #5a6a72;
|
||||
--rw-muted: #8996a0;
|
||||
--rw-faint: #b3bdc4;
|
||||
--rw-border: var(--main-border-color);
|
||||
--rw-border-soft: #f0f3f4;
|
||||
--rw-accent: var(--accent2);
|
||||
--rw-accent-deep: #008062;
|
||||
--rw-primary: var(--primary-color);
|
||||
--rw-tgt: #8E6AAD;
|
||||
}
|
||||
[data-theme="dark"] .reverse-modal, .dark .reverse-modal,
|
||||
[data-theme="dark"] .rev-wiz, .dark .rev-wiz,
|
||||
[data-theme="dark"] .rev-review, .dark .rev-review {
|
||||
--rw-text-2: #b6bec4;
|
||||
--rw-muted: #97a1a8;
|
||||
--rw-faint: #6a747c;
|
||||
--rw-border-soft: #3a3f44;
|
||||
--rw-accent-deep: #57b598;
|
||||
--rw-tgt: #b79ad1;
|
||||
}
|
||||
|
||||
/* ── Intercept modal ─────────────────────────────────────────────── */
|
||||
|
||||
/* Scoped to the intercept modal — reverse-* prefix so nothing collides
|
||||
with the canvas view CSS underneath. */
|
||||
|
||||
.reverse-modal-backdrop {
|
||||
position:fixed;
|
||||
inset:0;
|
||||
background:rgba(24,40,49,0.45);
|
||||
backdrop-filter:blur(3px);
|
||||
z-index:var(--zlayer-9, 9999);
|
||||
display:flex;
|
||||
align-items:center;
|
||||
justify-content:center;
|
||||
padding:28px;
|
||||
overflow:hidden;
|
||||
}
|
||||
|
||||
/* Modal itself scrolls internally when the step content is taller than
|
||||
the viewport. Without this, long steps (Activities with two altitudes
|
||||
+ textarea + helper hint) push the Continue/Cancel foot below the
|
||||
viewport with no way to reach it. */
|
||||
|
||||
.reverse-modal {
|
||||
width:100%;
|
||||
max-width:720px;
|
||||
max-height:calc(100vh - 56px);
|
||||
background:var(--rw-panel);
|
||||
border-radius:18px;
|
||||
box-shadow:0 20px 56px rgba(20,40,50,.18);
|
||||
overflow-y:auto;
|
||||
overflow-x:hidden;
|
||||
font-family:'Hanken Grotesk',sans-serif;
|
||||
color:var(--rw-text);
|
||||
-webkit-overflow-scrolling:touch;
|
||||
}
|
||||
|
||||
.reverse-modal .rm-hd {
|
||||
padding:24px 28px 6px;
|
||||
text-align:center;
|
||||
}
|
||||
|
||||
.reverse-modal .rm-hd .ic {
|
||||
width:52px;
|
||||
height:52px;
|
||||
border-radius:14px;
|
||||
background:#eef4f3;
|
||||
color:var(--rw-primary);
|
||||
display:flex;
|
||||
align-items:center;
|
||||
justify-content:center;
|
||||
font-size:22px;
|
||||
margin:0 auto 14px;
|
||||
}
|
||||
|
||||
.reverse-modal .rm-hd h1 {
|
||||
font-size:22px;
|
||||
font-weight:600;
|
||||
letter-spacing:-.3px;
|
||||
margin:0;
|
||||
}
|
||||
|
||||
.reverse-modal .rm-hd p {
|
||||
font-size:13.5px;
|
||||
color:#7a8791;
|
||||
margin-top:6px;
|
||||
max-width:440px;
|
||||
margin-left:auto;
|
||||
margin-right:auto;
|
||||
line-height:1.5;
|
||||
}
|
||||
|
||||
.reverse-modal .rm-found {
|
||||
margin:0 28px 20px;
|
||||
padding:11px 15px;
|
||||
background:#f6f8f7;
|
||||
border-radius:11px;
|
||||
font-size:12.5px;
|
||||
color:#4a5a63;
|
||||
display:flex;
|
||||
align-items:center;
|
||||
gap:9px;
|
||||
line-height:1.4;
|
||||
}
|
||||
|
||||
.reverse-modal .rm-found i {
|
||||
color:var(--rw-accent);
|
||||
}
|
||||
|
||||
.reverse-modal .rm-found b {
|
||||
color:var(--rw-text);
|
||||
}
|
||||
|
||||
.reverse-modal .rm-body {
|
||||
padding:16px 28px 26px;
|
||||
display:flex;
|
||||
flex-direction:column;
|
||||
gap:11px;
|
||||
}
|
||||
|
||||
.reverse-modal .rm-opt {
|
||||
display:flex;
|
||||
align-items:center;
|
||||
gap:15px;
|
||||
padding:16px 18px;
|
||||
border:1.5px solid #e3e8ea;
|
||||
border-radius:14px;
|
||||
cursor:pointer;
|
||||
transition:all .15s;
|
||||
text-decoration:none;
|
||||
color:inherit;
|
||||
background:var(--rw-panel);
|
||||
}
|
||||
|
||||
.reverse-modal .rm-opt:hover {
|
||||
border-color:var(--rw-accent);
|
||||
background:#f8fbfa;
|
||||
}
|
||||
|
||||
.reverse-modal .rm-opt.primary {
|
||||
border-color:#bfe0d4;
|
||||
background:#f4fbf8;
|
||||
}
|
||||
|
||||
.reverse-modal .rm-opt .oic {
|
||||
width:42px;
|
||||
height:42px;
|
||||
border-radius:11px;
|
||||
display:flex;
|
||||
align-items:center;
|
||||
justify-content:center;
|
||||
font-size:17px;
|
||||
color:#fff;
|
||||
flex:none;
|
||||
}
|
||||
|
||||
.reverse-modal .rm-opt .ot {
|
||||
font-size:15px;
|
||||
font-weight:600;
|
||||
display:flex;
|
||||
align-items:center;
|
||||
gap:9px;
|
||||
line-height:1.3;
|
||||
}
|
||||
|
||||
.reverse-modal .rm-opt .obadge {
|
||||
font-size:10px;
|
||||
font-weight:600;
|
||||
background:#e7f5ee;
|
||||
color:#1a7d52;
|
||||
border-radius:20px;
|
||||
padding:2px 9px;
|
||||
}
|
||||
|
||||
.reverse-modal .rm-opt .od {
|
||||
font-size:12.5px;
|
||||
color:#7a8791;
|
||||
margin-top:2px;
|
||||
line-height:1.45;
|
||||
}
|
||||
|
||||
.reverse-modal .rm-opt .arr {
|
||||
margin-left:auto;
|
||||
color:#aab4bb;
|
||||
font-size:15px;
|
||||
}
|
||||
|
||||
.reverse-modal .rm-opt.is-loading {
|
||||
opacity:.6;
|
||||
pointer-events:none;
|
||||
}
|
||||
|
||||
.reverse-modal .htmx-indicator {
|
||||
display:none;
|
||||
}
|
||||
|
||||
.reverse-modal .htmx-request .htmx-indicator {
|
||||
display:inline-block;
|
||||
}
|
||||
|
||||
/* When the intercept is up, hide the underlying stage flow so the modal
|
||||
reads as a takeover, not an overlay on active work. */
|
||||
|
||||
body.reverse-intercept-open .lmCanvas-stages, body.reverse-intercept-open .lm-stages, body.reverse-intercept-open [data-lm-stages] {
|
||||
visibility:hidden;
|
||||
}
|
||||
|
||||
/* ── Wizard stages: shared chrome (outcomes + step) ─────────────── */
|
||||
|
||||
.rev-wiz {
|
||||
font-family:'Hanken Grotesk',sans-serif;
|
||||
color:var(--rw-text);
|
||||
}
|
||||
|
||||
.rev-wiz .rw-hd {
|
||||
padding:26px 30px 0;
|
||||
text-align:center;
|
||||
}
|
||||
|
||||
.rev-wiz .rw-hd .ey {
|
||||
font-size:11px;
|
||||
font-weight:600;
|
||||
letter-spacing:1.4px;
|
||||
text-transform:uppercase;
|
||||
color:var(--rw-accent);
|
||||
margin-bottom:8px;
|
||||
}
|
||||
|
||||
.rev-wiz .rw-hd h1 {
|
||||
font-size:21px;
|
||||
font-weight:600;
|
||||
letter-spacing:-.3px;
|
||||
margin:0;
|
||||
}
|
||||
|
||||
.rev-wiz .rw-hd p {
|
||||
font-size:13.5px;
|
||||
color:var(--rw-muted);
|
||||
margin-top:7px;
|
||||
max-width:470px;
|
||||
margin-left:auto;
|
||||
margin-right:auto;
|
||||
line-height:1.5;
|
||||
}
|
||||
|
||||
.rev-wiz .rw-rail {
|
||||
display:flex;
|
||||
align-items:flex-start;
|
||||
justify-content:center;
|
||||
padding:20px 30px 30px;
|
||||
}
|
||||
|
||||
.rev-wiz .rw-node {
|
||||
display:flex;
|
||||
align-items:center;
|
||||
}
|
||||
|
||||
.rev-wiz .rw-dot {
|
||||
width:9px;
|
||||
height:9px;
|
||||
border-radius:50%;
|
||||
background:var(--rw-border);
|
||||
position:relative;
|
||||
}
|
||||
|
||||
.rev-wiz .rw-node.done .rw-dot {
|
||||
background:var(--rw-accent);
|
||||
}
|
||||
|
||||
.rev-wiz .rw-node.on .rw-dot {
|
||||
background:var(--rw-tgt);
|
||||
box-shadow:0 0 0 4px #f2edf8;
|
||||
}
|
||||
|
||||
.rev-wiz .rw-seg {
|
||||
width:36px;
|
||||
height:2px;
|
||||
background:var(--rw-border);
|
||||
}
|
||||
|
||||
.rev-wiz .rw-seg.done {
|
||||
background:var(--rw-accent);
|
||||
}
|
||||
|
||||
.rev-wiz .rw-lab {
|
||||
position:absolute;
|
||||
top:15px;
|
||||
left:50%;
|
||||
transform:translateX(-50%);
|
||||
font-size:10.5px;
|
||||
white-space:nowrap;
|
||||
color:var(--rw-tgt);
|
||||
font-weight:600;
|
||||
}
|
||||
|
||||
.rev-wiz .rw-scope {
|
||||
display:flex;
|
||||
align-items:center;
|
||||
gap:9px;
|
||||
margin:0 30px 18px;
|
||||
padding:11px 15px;
|
||||
background:#f7f9f9;
|
||||
border-radius:12px;
|
||||
font-size:12.5px;
|
||||
color:var(--rw-text-2);
|
||||
}
|
||||
|
||||
.rev-wiz .rw-scope i.si {
|
||||
color:var(--rw-primary);
|
||||
opacity:.7;
|
||||
}
|
||||
|
||||
.rev-wiz .rw-scope b {
|
||||
color:var(--rw-text);
|
||||
font-weight:600;
|
||||
}
|
||||
|
||||
.rev-wiz .rw-body {
|
||||
padding:0 30px 6px;
|
||||
}
|
||||
|
||||
.rev-wiz .rw-row {
|
||||
display:flex;
|
||||
align-items:center;
|
||||
gap:14px;
|
||||
padding:15px 16px;
|
||||
border:1px solid var(--rw-border-soft);
|
||||
border-radius:14px;
|
||||
margin-bottom:9px;
|
||||
cursor:pointer;
|
||||
transition:border-color .15s,background .15s;
|
||||
background:var(--rw-panel);
|
||||
}
|
||||
|
||||
.rev-wiz .rw-row:hover {
|
||||
border-color:#d6e3de;
|
||||
background:#fbfdfc;
|
||||
}
|
||||
|
||||
.rev-wiz .rw-row.is-sel {
|
||||
border-color:#bfe3d6;
|
||||
background:#f5fbf9;
|
||||
}
|
||||
|
||||
.rev-wiz .rw-ck {
|
||||
width:20px;
|
||||
height:20px;
|
||||
border-radius:6px;
|
||||
border:1.5px solid var(--rw-border);
|
||||
display:flex;
|
||||
align-items:center;
|
||||
justify-content:center;
|
||||
flex:none;
|
||||
color:#fff;
|
||||
font-size:10px;
|
||||
transition:.15s;
|
||||
background:var(--rw-panel);
|
||||
}
|
||||
|
||||
.rev-wiz .rw-row.is-sel .rw-ck {
|
||||
background:var(--rw-accent);
|
||||
border-color:var(--rw-accent);
|
||||
}
|
||||
|
||||
.rev-wiz .rw-main {
|
||||
min-width:0;
|
||||
flex:1;
|
||||
}
|
||||
|
||||
.rev-wiz .rw-name {
|
||||
font-size:14px;
|
||||
font-weight:600;
|
||||
line-height:1.3;
|
||||
color:var(--rw-text);
|
||||
}
|
||||
|
||||
.rev-wiz .rw-meta .dot {
|
||||
margin:0 6px;
|
||||
opacity:.5;
|
||||
}
|
||||
|
||||
.rev-wiz .rw-reveal {
|
||||
display:flex;
|
||||
align-items:center;
|
||||
gap:10px;
|
||||
width:100%;
|
||||
padding:13px 16px;
|
||||
margin-top:4px;
|
||||
background:none;
|
||||
border:1px dashed var(--rw-border);
|
||||
border-radius:14px;
|
||||
cursor:pointer;
|
||||
font-family:inherit;
|
||||
font-size:12.5px;
|
||||
color:var(--rw-text-2);
|
||||
}
|
||||
|
||||
.rev-wiz .rw-reveal:hover {
|
||||
border-color:#cdd6db;
|
||||
background:#fafbfb;
|
||||
}
|
||||
|
||||
.rev-wiz .rw-reveal i.lead {
|
||||
color:var(--rw-faint);
|
||||
}
|
||||
|
||||
.rev-wiz .rw-reveal .rc {
|
||||
margin-left:auto;
|
||||
color:var(--rw-faint);
|
||||
font-size:11px;
|
||||
}
|
||||
|
||||
.rev-wiz .rw-hidden {
|
||||
display:none;
|
||||
}
|
||||
|
||||
.rev-wiz .rw-hidden.open {
|
||||
display:block;
|
||||
margin-top:9px;
|
||||
}
|
||||
|
||||
.rev-wiz .rw-prov {
|
||||
font-size:11.5px;
|
||||
color:var(--rw-faint);
|
||||
margin:14px 2px 4px;
|
||||
display:flex;
|
||||
align-items:center;
|
||||
gap:7px;
|
||||
}
|
||||
|
||||
.rev-wiz .rw-foot {
|
||||
display:flex;
|
||||
align-items:center;
|
||||
gap:12px;
|
||||
padding:18px 30px 22px;
|
||||
border-top:1px solid var(--rw-border-soft);
|
||||
margin-top:12px;
|
||||
}
|
||||
|
||||
.rev-wiz .rw-foot .cnt {
|
||||
font-size:12.5px;
|
||||
color:var(--rw-muted);
|
||||
}
|
||||
|
||||
.rev-wiz .rw-foot .cnt b {
|
||||
color:var(--rw-text);
|
||||
}
|
||||
|
||||
.rev-wiz .rw-foot .sp {
|
||||
margin-left:auto;
|
||||
}
|
||||
|
||||
.rev-wiz .rw-btn-skip {
|
||||
border:none;
|
||||
background:none;
|
||||
color:var(--rw-muted);
|
||||
}
|
||||
|
||||
/* ── Outcomes-stage specifics ────────────────────────────────────── */
|
||||
|
||||
.rev-wiz.rev-wiz--outcomes .rw-seclab {
|
||||
font-size:12px;
|
||||
color:var(--rw-muted);
|
||||
margin:0 2px 11px;
|
||||
}
|
||||
|
||||
.rev-wiz.rev-wiz--outcomes .rw-meta {
|
||||
font-size:11.5px;
|
||||
color:var(--rw-muted);
|
||||
margin-top:5px;
|
||||
display:flex;
|
||||
align-items:center;
|
||||
flex-wrap:wrap;
|
||||
gap:2px;
|
||||
}
|
||||
|
||||
.rev-wiz.rev-wiz--outcomes .rw-btn {
|
||||
font-family:inherit;
|
||||
font-size:13px;
|
||||
font-weight:500;
|
||||
border-radius:22px;
|
||||
padding:10px 17px;
|
||||
cursor:pointer;
|
||||
border:1px solid var(--rw-border);
|
||||
background:var(--rw-panel);
|
||||
color:var(--rw-text-2);
|
||||
}
|
||||
|
||||
.rev-wiz.rev-wiz--outcomes .rw-btn-next {
|
||||
background:var(--rw-primary);
|
||||
color:#fff;
|
||||
border-color:var(--rw-primary);
|
||||
font-weight:600;
|
||||
display:inline-flex;
|
||||
align-items:center;
|
||||
gap:8px;
|
||||
}
|
||||
|
||||
.rev-wiz .rw-meta .tgt {
|
||||
color:var(--rw-tgt);
|
||||
font-weight:600;
|
||||
}
|
||||
|
||||
.rev-wiz .rw-source-note {
|
||||
font-size:12px;
|
||||
color:#54636b;
|
||||
margin:16px 2px 2px;
|
||||
padding-top:13px;
|
||||
border-top:1px dashed var(--rw-border-soft);
|
||||
display:flex;
|
||||
align-items:flex-start;
|
||||
gap:8px;
|
||||
line-height:1.55;
|
||||
}
|
||||
|
||||
.rev-wiz .rw-source-note i {
|
||||
color:var(--rw-accent-deep);
|
||||
margin-top:2px;
|
||||
flex:none;
|
||||
font-size:11px;
|
||||
}
|
||||
|
||||
.rev-wiz .rw-btn-next[disabled] {
|
||||
opacity:.5;
|
||||
cursor:not-allowed;
|
||||
}
|
||||
|
||||
/* ── Step-stage specifics ────────────────────────────────────────── */
|
||||
|
||||
.rev-wiz.rev-wiz--step .rw-seclab {
|
||||
font-size:12px;
|
||||
color:var(--rw-muted);
|
||||
margin:14px 2px 11px;
|
||||
text-transform:uppercase;
|
||||
letter-spacing:.5px;
|
||||
font-weight:600;
|
||||
}
|
||||
|
||||
.rev-wiz.rev-wiz--step .rw-meta {
|
||||
font-size:11.5px;
|
||||
color:var(--rw-muted);
|
||||
margin-top:3px;
|
||||
}
|
||||
|
||||
.rev-wiz.rev-wiz--step .rw-btn {
|
||||
font-family:inherit;
|
||||
font-size:13px;
|
||||
font-weight:500;
|
||||
border-radius:22px;
|
||||
padding:10px 17px;
|
||||
cursor:pointer;
|
||||
border:1px solid var(--rw-border);
|
||||
background:var(--rw-panel);
|
||||
color:var(--rw-text-2);
|
||||
text-decoration:none;
|
||||
display:inline-flex;
|
||||
align-items:center;
|
||||
gap:8px;
|
||||
}
|
||||
|
||||
.rev-wiz.rev-wiz--step .rw-btn-next {
|
||||
background:var(--rw-primary);
|
||||
color:#fff;
|
||||
border-color:var(--rw-primary);
|
||||
font-weight:600;
|
||||
}
|
||||
|
||||
.rev-wiz .rw-seclab:first-child {
|
||||
margin-top:0;
|
||||
}
|
||||
|
||||
.rev-wiz .rw-grouplab {
|
||||
font-size:12.5px;
|
||||
color:var(--rw-text-2);
|
||||
margin:12px 2px 8px;
|
||||
font-weight:600;
|
||||
}
|
||||
|
||||
.rev-wiz .rw-groupmeta {
|
||||
font-size:11.5px;
|
||||
color:var(--rw-muted);
|
||||
font-weight:400;
|
||||
margin-left:6px;
|
||||
font-style:italic;
|
||||
}
|
||||
|
||||
.rev-wiz .rw-tail {
|
||||
font-size:11.5px;
|
||||
color:var(--rw-muted);
|
||||
margin:6px 2px;
|
||||
font-style:italic;
|
||||
}
|
||||
|
||||
.rev-wiz .rw-guide {
|
||||
padding:0 4px 8px;
|
||||
}
|
||||
|
||||
.rev-wiz .rw-guide h2 {
|
||||
font-size:16px;
|
||||
font-weight:600;
|
||||
color:var(--rw-text);
|
||||
margin:0 0 6px;
|
||||
letter-spacing:-.1px;
|
||||
}
|
||||
|
||||
.rev-wiz .rw-guide p {
|
||||
font-size:14px;
|
||||
color:var(--rw-text-2);
|
||||
line-height:1.55;
|
||||
margin:0 0 14px;
|
||||
}
|
||||
|
||||
.rev-wiz .rw-guide .rw-guide-sub {
|
||||
margin-top:8px;
|
||||
color:var(--rw-muted);
|
||||
font-size:12.5px;
|
||||
}
|
||||
|
||||
.rev-wiz .rw-guide .rw-guide-lbl {
|
||||
display:block;
|
||||
font-size:11px;
|
||||
font-weight:600;
|
||||
letter-spacing:.5px;
|
||||
text-transform:uppercase;
|
||||
color:var(--rw-muted);
|
||||
margin:16px 2px 8px;
|
||||
}
|
||||
|
||||
.rev-wiz .rw-guide textarea {
|
||||
width:100%;
|
||||
padding:14px 16px;
|
||||
border:1.5px solid var(--rw-border);
|
||||
border-radius:14px;
|
||||
font-family:inherit;
|
||||
font-size:14.5px;
|
||||
line-height:1.6;
|
||||
color:var(--rw-text);
|
||||
resize:vertical;
|
||||
min-height:140px;
|
||||
box-sizing:border-box;
|
||||
}
|
||||
|
||||
.rev-wiz .rw-guide textarea:focus {
|
||||
outline:none;
|
||||
border-color:var(--rw-accent);
|
||||
box-shadow:0 0 0 3px rgba(0,184,147,.08);
|
||||
}
|
||||
|
||||
.rev-wiz .rw-guide textarea::placeholder {
|
||||
color:var(--rw-faint);
|
||||
font-style:normal;
|
||||
}
|
||||
|
||||
/* ── Review screen ───────────────────────────────────────────────── */
|
||||
|
||||
.rev-review {
|
||||
font-family:'Hanken Grotesk',sans-serif;
|
||||
color:var(--rw-text);
|
||||
}
|
||||
|
||||
.rev-review .rr-hd {
|
||||
padding:26px 30px 6px;
|
||||
text-align:center;
|
||||
}
|
||||
|
||||
.rev-review .rr-hd .ey {
|
||||
font-size:11px;
|
||||
font-weight:600;
|
||||
letter-spacing:1.4px;
|
||||
text-transform:uppercase;
|
||||
color:var(--rw-accent);
|
||||
margin-bottom:8px;
|
||||
}
|
||||
|
||||
.rev-review .rr-hd h1 {
|
||||
font-size:21px;
|
||||
font-weight:600;
|
||||
letter-spacing:-.3px;
|
||||
margin:0;
|
||||
}
|
||||
|
||||
.rev-review .rr-hd p {
|
||||
font-size:13.5px;
|
||||
color:var(--rw-muted);
|
||||
margin-top:7px;
|
||||
max-width:470px;
|
||||
margin-left:auto;
|
||||
margin-right:auto;
|
||||
line-height:1.5;
|
||||
}
|
||||
|
||||
.rev-review .rr-body {
|
||||
padding:14px 30px 6px;
|
||||
}
|
||||
|
||||
.rev-review .rr-stage {
|
||||
border:1px solid var(--rw-border-soft);
|
||||
border-radius:14px;
|
||||
margin-bottom:9px;
|
||||
background:var(--rw-panel);
|
||||
overflow:hidden;
|
||||
}
|
||||
|
||||
.rev-review .rr-stage.is-empty {
|
||||
background:#fafbfc;
|
||||
border-color:#f4f6f7;
|
||||
}
|
||||
|
||||
.rev-review .rr-stage summary {
|
||||
padding:13px 16px;
|
||||
cursor:pointer;
|
||||
display:flex;
|
||||
align-items:center;
|
||||
gap:14px;
|
||||
list-style:none;
|
||||
user-select:none;
|
||||
}
|
||||
|
||||
.rev-review .rr-stage summary::-webkit-details-marker {
|
||||
display:none;
|
||||
}
|
||||
|
||||
.rev-review .rr-stage summary:hover {
|
||||
background:#fbfdfc;
|
||||
}
|
||||
|
||||
.rev-review .rr-stage .rr-icon {
|
||||
width:28px;
|
||||
height:28px;
|
||||
border-radius:8px;
|
||||
background:#f3f5f6;
|
||||
color:var(--rw-text-2);
|
||||
display:inline-flex;
|
||||
align-items:center;
|
||||
justify-content:center;
|
||||
font-size:13px;
|
||||
flex:none;
|
||||
}
|
||||
|
||||
.rev-review .rr-stage[data-count="0"] .rr-icon {
|
||||
background:#f7f9f9;
|
||||
color:var(--rw-faint);
|
||||
}
|
||||
|
||||
.rev-review .rr-stage .rr-title {
|
||||
font-size:14px;
|
||||
font-weight:600;
|
||||
color:var(--rw-text);
|
||||
flex:1;
|
||||
min-width:0;
|
||||
}
|
||||
|
||||
.rev-review .rr-stage .rr-count {
|
||||
font-size:12px;
|
||||
font-weight:500;
|
||||
color:var(--rw-text-2);
|
||||
background:var(--rw-border-soft);
|
||||
border-radius:20px;
|
||||
padding:3px 10px;
|
||||
}
|
||||
|
||||
.rev-review .rr-stage[data-count="0"] .rr-count {
|
||||
background:#f7f9f9;
|
||||
color:var(--rw-faint);
|
||||
font-style:italic;
|
||||
}
|
||||
|
||||
.rev-review .rr-stage .rr-badge {
|
||||
font-size:10px;
|
||||
font-weight:600;
|
||||
text-transform:uppercase;
|
||||
letter-spacing:.5px;
|
||||
padding:2px 8px;
|
||||
border-radius:20px;
|
||||
}
|
||||
|
||||
.rev-review .rr-stage .rr-badge.seeded {
|
||||
background:#e7f5ee;
|
||||
color:#1a7d52;
|
||||
}
|
||||
|
||||
.rev-review .rr-stage .rr-badge.authored {
|
||||
background:#fdf2e6;
|
||||
color:#9A6A11;
|
||||
}
|
||||
|
||||
.rev-review .rr-stage .rr-badge.mixed {
|
||||
background:#eef2f8;
|
||||
color:#3F5D80;
|
||||
}
|
||||
|
||||
.rev-review .rr-details .rr-source {
|
||||
color:var(--rw-faint);
|
||||
font-size:11px;
|
||||
font-weight:500;
|
||||
text-transform:uppercase;
|
||||
letter-spacing:.4px;
|
||||
margin-left:6px;
|
||||
font-style:normal;
|
||||
}
|
||||
|
||||
.rev-review .rr-stage summary .arr {
|
||||
margin-left:8px;
|
||||
color:var(--rw-faint);
|
||||
font-size:12px;
|
||||
transition:transform .15s;
|
||||
}
|
||||
|
||||
.rev-review .rr-stage[open] summary .arr {
|
||||
transform:rotate(90deg);
|
||||
}
|
||||
|
||||
.rev-review .rr-details {
|
||||
padding:2px 16px 14px 60px;
|
||||
}
|
||||
|
||||
.rev-review .rr-details ul {
|
||||
margin:0;
|
||||
padding:0;
|
||||
list-style:none;
|
||||
font-size:13px;
|
||||
color:var(--rw-text);
|
||||
line-height:1.65;
|
||||
}
|
||||
|
||||
.rev-review .rr-details li {
|
||||
padding:2px 0;
|
||||
}
|
||||
|
||||
.rev-review .rr-details li::before {
|
||||
content:"·";
|
||||
color:var(--rw-faint);
|
||||
margin-right:8px;
|
||||
}
|
||||
|
||||
.rev-review .rr-details .empty {
|
||||
font-style:italic;
|
||||
color:var(--rw-muted);
|
||||
font-size:12.5px;
|
||||
}
|
||||
|
||||
.rev-review .rr-details .impact-text {
|
||||
background:#fdf9f2;
|
||||
border-left:2px solid #d4a44c;
|
||||
padding:10px 12px;
|
||||
border-radius:8px;
|
||||
font-size:14px;
|
||||
color:var(--rw-text);
|
||||
line-height:1.55;
|
||||
font-weight:500;
|
||||
}
|
||||
|
||||
.rev-review .rr-emptyall {
|
||||
background:#fdf6e3;
|
||||
border:1px solid #f2e5b5;
|
||||
color:#5a4a10;
|
||||
padding:14px 18px;
|
||||
border-radius:12px;
|
||||
font-size:13px;
|
||||
margin:14px 0;
|
||||
}
|
||||
|
||||
.rev-review .rr-foot {
|
||||
display:flex;
|
||||
align-items:center;
|
||||
gap:12px;
|
||||
padding:18px 30px 22px;
|
||||
border-top:1px solid var(--rw-border-soft);
|
||||
margin-top:14px;
|
||||
}
|
||||
|
||||
.rev-review .rr-note {
|
||||
font-size:12.5px;
|
||||
color:var(--rw-muted);
|
||||
line-height:1.5;
|
||||
flex:1;
|
||||
}
|
||||
|
||||
.rev-review .rr-note b {
|
||||
color:var(--rw-text);
|
||||
}
|
||||
|
||||
.rev-review .rr-btn {
|
||||
font-family:inherit;
|
||||
font-size:13px;
|
||||
font-weight:500;
|
||||
border-radius:22px;
|
||||
padding:10px 17px;
|
||||
cursor:pointer;
|
||||
border:1px solid var(--rw-border);
|
||||
background:var(--rw-panel);
|
||||
color:var(--rw-text-2);
|
||||
text-decoration:none;
|
||||
display:inline-flex;
|
||||
align-items:center;
|
||||
gap:8px;
|
||||
}
|
||||
|
||||
.rev-review .rr-btn-primary {
|
||||
background:var(--rw-primary);
|
||||
color:#fff;
|
||||
border-color:var(--rw-primary);
|
||||
font-weight:600;
|
||||
}
|
||||
|
||||
.rev-review .rr-btn-primary[disabled] {
|
||||
opacity:.5;
|
||||
cursor:not-allowed;
|
||||
}
|
||||
|
||||
/* ── Source/altitude chip (colors are computed per program inline) ── */
|
||||
|
||||
.sp-source-chip {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 5px;
|
||||
font-size: 11px;
|
||||
font-weight: 600;
|
||||
line-height: 1.4;
|
||||
border-radius: 20px;
|
||||
padding: 2px 9px;
|
||||
border: 1px solid;
|
||||
}
|
||||
|
||||
.sp-source-chip i {
|
||||
font-size: 9px;
|
||||
opacity: .85;
|
||||
}
|
||||
261
public/assets/css/components/sortableList.css
Normal file
@@ -0,0 +1,261 @@
|
||||
/* Sortable list styles */
|
||||
.sortable-list {
|
||||
border: 0px solid transparent;
|
||||
background: transparent;
|
||||
overflow: visible;
|
||||
min-height: 0px;
|
||||
}
|
||||
|
||||
.sortable-item {
|
||||
cursor: grab;
|
||||
position: relative;
|
||||
padding-top: 0;
|
||||
padding-bottom: 0;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.sortable-item .sortable-list {
|
||||
padding-top: 4px;
|
||||
padding-bottom: 4px;
|
||||
}
|
||||
|
||||
.sortable-list .sortable-item:last-child {
|
||||
padding-top: 0;
|
||||
padding-bottom: 0;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.sortable-list .sortable-item .sortable-list {
|
||||
margin-left: 40px;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.sortable-list .sortable-item .sortable-list:has(.sortable-list) {
|
||||
padding-bottom:0px;
|
||||
}
|
||||
|
||||
.sortable-list .sortable-item .sortable-list .sortable-item:first-child {
|
||||
margin-top:4px;
|
||||
}
|
||||
|
||||
.sortable-item .ticketBox {
|
||||
margin-bottom:0px;
|
||||
}
|
||||
|
||||
/* Connection lines for hierarchy */
|
||||
.sortable-list .sortable-list::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
left: -20px;
|
||||
top: 0px;
|
||||
bottom: 0;
|
||||
width: 2px;
|
||||
background-color: var(--interactive-icon-color);
|
||||
height: calc(100% - 45px);
|
||||
}
|
||||
|
||||
.sortable-item:has(.accordion-toggle .fa-angle-right) {
|
||||
margin-bottom:10px;
|
||||
}
|
||||
|
||||
.sortable-list .sortable-list .sortable-list::before {
|
||||
height: calc(100% - 50px);
|
||||
}
|
||||
|
||||
/* Horizontal connector line from vertical line to each item */
|
||||
.sortable-list .sortable-list > .sortable-item::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
left: -10px;
|
||||
top: 30px;
|
||||
width: 10px;
|
||||
height: 2px;
|
||||
background-color: var(--interactive-icon-color);
|
||||
}
|
||||
|
||||
/* Rounded corner for the connection */
|
||||
.sortable-list .sortable-list > .sortable-item::after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
left: -20px;
|
||||
top: 32px;
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
border-bottom-left-radius: 10px;
|
||||
border: 0 solid transparent;
|
||||
border-bottom: 2px solid var(--interactive-icon-color);
|
||||
border-left: 2px solid var(--interactive-icon-color);
|
||||
background-color: transparent;
|
||||
transform: translate(0, -10px);
|
||||
}
|
||||
|
||||
|
||||
/* Highlight styles for drop targets */
|
||||
.highlight-drop {
|
||||
position: relative;
|
||||
&::after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: 4px;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
background: hsla(var(--accent2-hsl), 0.1);
|
||||
border: 2px dashed hsla(var(--accent2-hsl), 0.3);
|
||||
pointer-events: none;
|
||||
border-radius: var(--box-radius-small);
|
||||
}
|
||||
min-height: 62px !important;
|
||||
}
|
||||
|
||||
.highlight-drop-error {
|
||||
position: relative;
|
||||
&::after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: 4px;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
background: hsla(0, 100%, 50%, 0.1);
|
||||
border: 2px dashed hsla(0, 100%, 50%, 0.3);
|
||||
pointer-events: none;
|
||||
border-radius: var(--box-radius-small);
|
||||
}
|
||||
min-height: 62px !important;
|
||||
}
|
||||
|
||||
.sortable-ghost {
|
||||
opacity: var(--opacity-subdued);
|
||||
box-shadow: 0 0 8px hsla(var(--accent2-hsl), 0.3);
|
||||
}
|
||||
|
||||
.sortable-ghost .sortable-list:empty {
|
||||
background: transparent;
|
||||
min-height: 0px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
.sortable-item.sortable-chosen {
|
||||
cursor: grabbing;
|
||||
}
|
||||
|
||||
.ui-sortable-helper {
|
||||
z-index: 99999 !important;
|
||||
}
|
||||
|
||||
/* Placeholder styling */
|
||||
.sortable-placeholder {
|
||||
background: rgba(0, 0, 0, 0.05);
|
||||
border: 1px dashed rgba(0, 0, 0, 0.1);
|
||||
border-radius: var(--box-radius-small);
|
||||
margin-bottom: 4px;
|
||||
height: 60px;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Task collapse toggle styles */
|
||||
|
||||
.task-collapse-toggle {
|
||||
position: absolute;
|
||||
left: -24px;
|
||||
top: 20px;
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
cursor: pointer;
|
||||
z-index: var(--zlayer-4);
|
||||
text-align: center;
|
||||
border-radius: 50%;
|
||||
background: var(--secondary-background);
|
||||
}
|
||||
|
||||
.milestone-box .task-collapse-toggle {
|
||||
top:24px;
|
||||
}
|
||||
|
||||
.sortable-list .sortable-list .task-collapse-toggle {
|
||||
left: -32px;
|
||||
top: 18px;
|
||||
|
||||
}
|
||||
|
||||
.task-collapse-toggle:hover {
|
||||
background-color: var(--neutral);
|
||||
}
|
||||
|
||||
.task-collapse-toggle i {
|
||||
}
|
||||
|
||||
.ticketBox.has-children {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
/* Collapsed children styles */
|
||||
.task-children.closed {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.task-children.open {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.task-collapse-toggle i.fa-chevron-right {
|
||||
color: var(--neutral);
|
||||
}
|
||||
|
||||
/* Quick Add Form Styles */
|
||||
.add-task-button {
|
||||
display: inline-block;
|
||||
margin-left: 10px;
|
||||
color: var(--primary-font-color);
|
||||
}
|
||||
|
||||
.add-task-button:hover {
|
||||
opacity: 1;
|
||||
color: var(--accent1);
|
||||
}
|
||||
|
||||
.quickAddForm {
|
||||
background: var(--secondary-background);
|
||||
border-radius: var(--box-radius);
|
||||
padding: 16px;
|
||||
margin-top: 10px;
|
||||
box-shadow: var(--regular-shadow);
|
||||
}
|
||||
|
||||
.main-title-input {
|
||||
width: 100%;
|
||||
padding: 8px;
|
||||
border-radius: var(--element-radius);
|
||||
border: 1px solid var(--main-border-color);
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
/* Milestone box styling for My Work dashboard */
|
||||
.milestone-box {
|
||||
background-color: var(--secondary-background);
|
||||
border-left: 0px;
|
||||
border-right:0px;
|
||||
border-radius: var(--box-radius);
|
||||
padding: 16px;
|
||||
margin-bottom: 10px;
|
||||
box-shadow: var(--regular-shadow);
|
||||
}
|
||||
|
||||
.milestone-box .tw-flex {
|
||||
/*color: var(--main-titles-color);*/
|
||||
}
|
||||
|
||||
.milestone-box .progress-wrapper .percent-label {
|
||||
font-size: var(--base-font-size);
|
||||
/*color: var(--main-titles-color);*/
|
||||
}
|
||||
|
||||
.milestone-box h4 {
|
||||
font-weight: var(--font-weight-bold);
|
||||
color: var(--primary-font-color);
|
||||
margin-top: 0;
|
||||
}
|
||||
630
public/assets/css/components/structure.css
Normal file
@@ -0,0 +1,630 @@
|
||||
/***** RESET BROWSER STYLE *****/
|
||||
/*******************************/
|
||||
|
||||
html, body, div, span, applet, object, iframe,
|
||||
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
|
||||
a, abbr, acronym, address, big, cite, code,
|
||||
del, dfn, em, font, img, ins, kbd, q, s, samp,
|
||||
small, strike, strong, sub, sup, tt, var,
|
||||
b, u, i, center, ol, ul, li,
|
||||
fieldset, form, label, legend,
|
||||
table, caption, tbody, tfoot, thead, tr, th, td {
|
||||
background: transparent;
|
||||
border: 0;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
vertical-align: baseline;
|
||||
line-height: 1.5;
|
||||
outline: none;
|
||||
}
|
||||
|
||||
html {
|
||||
-webkit-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
-ms-overflow-style: scrollbar
|
||||
}
|
||||
|
||||
body {
|
||||
color:var(--primary-font-color);
|
||||
}
|
||||
|
||||
*, ::after, ::before {
|
||||
-webkit-box-sizing: inherit;
|
||||
box-sizing: inherit
|
||||
}
|
||||
|
||||
.container {
|
||||
position: relative;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
padding-right: 15px;
|
||||
padding-left: 15px
|
||||
}
|
||||
|
||||
.container-fluid {
|
||||
position: relative;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
padding-right: 15px;
|
||||
padding-left: 15px
|
||||
}
|
||||
|
||||
.row {
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: -ms-flexbox;
|
||||
display: flex;
|
||||
-webkit-flex-wrap: wrap;
|
||||
-ms-flex-wrap: wrap;
|
||||
flex-wrap: wrap;
|
||||
margin-right: -5px;
|
||||
margin-left: -5px
|
||||
}
|
||||
|
||||
.no-gutters {
|
||||
margin-right: 0;
|
||||
margin-left: 0
|
||||
}
|
||||
|
||||
.no-gutters > .col, .no-gutters > [class*=col-] {
|
||||
padding-right: 0;
|
||||
padding-left: 0
|
||||
}
|
||||
|
||||
.col, .col-1, .col-10, .col-11, .col-12, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-lg, .col-lg-1, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-md, .col-md-1, .col-md-10, .col-md-11, .col-md-12, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-sm, .col-sm-1, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-xl, .col-xl-1, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9 {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
min-height: 1px;
|
||||
padding-right: 10px;
|
||||
padding-left: 10px;
|
||||
}
|
||||
|
||||
.col {
|
||||
-webkit-flex-basis: 0;
|
||||
flex-basis: 200px;
|
||||
-webkit-box-flex: 1;
|
||||
-webkit-flex-grow: 1;
|
||||
flex-grow: 1;
|
||||
max-width: 100%
|
||||
}
|
||||
|
||||
.col-auto {
|
||||
-webkit-box-flex: 0;
|
||||
-webkit-flex: 0 0 auto;
|
||||
-ms-flex: 0 0 auto;
|
||||
flex: 0 0 auto;
|
||||
width: auto
|
||||
}
|
||||
|
||||
.col-1 {
|
||||
-webkit-box-flex: 0;
|
||||
-webkit-flex: 0 0 8.555555%;
|
||||
-ms-flex: 0 0 8.555555%;
|
||||
flex: 0 0 8.555555%;
|
||||
max-width: 8.555555%
|
||||
}
|
||||
|
||||
.col-2 {
|
||||
-webkit-box-flex: 0;
|
||||
-webkit-flex: 0 0 16.666667%;
|
||||
-ms-flex: 0 0 16.666667%;
|
||||
flex: 0 0 16.666667%;
|
||||
max-width: 16.666667%
|
||||
}
|
||||
|
||||
.col-3 {
|
||||
-webkit-box-flex: 0;
|
||||
-webkit-flex: 0 0 25%;
|
||||
-ms-flex: 0 0 25%;
|
||||
flex: 0 0 25%;
|
||||
max-width: 25%
|
||||
}
|
||||
|
||||
.col-4 {
|
||||
-webkit-box-flex: 0;
|
||||
-webkit-flex: 0 0 33.555555%;
|
||||
-ms-flex: 0 0 33.555555%;
|
||||
flex: 0 0 33.555555%;
|
||||
max-width: 33.555555%
|
||||
}
|
||||
|
||||
.col-5 {
|
||||
-webkit-box-flex: 0;
|
||||
-webkit-flex: 0 0 41.666667%;
|
||||
-ms-flex: 0 0 41.666667%;
|
||||
flex: 0 0 41.666667%;
|
||||
max-width: 41.666667%
|
||||
}
|
||||
|
||||
.col-6 {
|
||||
-webkit-box-flex: 0;
|
||||
-webkit-flex: 0 0 50%;
|
||||
-ms-flex: 0 0 50%;
|
||||
flex: 0 0 50%;
|
||||
max-width: 50%
|
||||
}
|
||||
|
||||
.col-7 {
|
||||
-webkit-box-flex: 0;
|
||||
-webkit-flex: 0 0 58.555555%;
|
||||
-ms-flex: 0 0 58.555555%;
|
||||
flex: 0 0 58.555555%;
|
||||
max-width: 58.555555%
|
||||
}
|
||||
|
||||
.col-8 {
|
||||
-webkit-box-flex: 0;
|
||||
-webkit-flex: 0 0 66.666667%;
|
||||
-ms-flex: 0 0 66.666667%;
|
||||
flex: 0 0 66.666667%;
|
||||
max-width: 66.666667%
|
||||
}
|
||||
|
||||
.col-9 {
|
||||
-webkit-box-flex: 0;
|
||||
-webkit-flex: 0 0 75%;
|
||||
-ms-flex: 0 0 75%;
|
||||
flex: 0 0 75%;
|
||||
max-width: 75%
|
||||
}
|
||||
|
||||
.col-10 {
|
||||
-webkit-box-flex: 0;
|
||||
-webkit-flex: 0 0 83.555555%;
|
||||
-ms-flex: 0 0 83.555555%;
|
||||
flex: 0 0 83.555555%;
|
||||
max-width: 83.555555%
|
||||
}
|
||||
|
||||
.col-11 {
|
||||
-webkit-box-flex: 0;
|
||||
-webkit-flex: 0 0 91.666667%;
|
||||
-ms-flex: 0 0 91.666667%;
|
||||
flex: 0 0 91.666667%;
|
||||
max-width: 91.666667%
|
||||
}
|
||||
|
||||
.col-12 {
|
||||
-webkit-box-flex: 0;
|
||||
-webkit-flex: 0 0 100%;
|
||||
-ms-flex: 0 0 100%;
|
||||
flex: 0 0 100%;
|
||||
max-width: 100%
|
||||
}
|
||||
|
||||
.pull-0 {
|
||||
right: auto
|
||||
}
|
||||
|
||||
.pull-1 {
|
||||
right: 8.555555%
|
||||
}
|
||||
|
||||
.pull-2 {
|
||||
right: 16.666667%
|
||||
}
|
||||
|
||||
.pull-3 {
|
||||
right: 25%
|
||||
}
|
||||
|
||||
.pull-4 {
|
||||
right: 33.555555%
|
||||
}
|
||||
|
||||
.pull-5 {
|
||||
right: 41.666667%
|
||||
}
|
||||
|
||||
.pull-6 {
|
||||
right: 50%
|
||||
}
|
||||
|
||||
.pull-7 {
|
||||
right: 58.555555%
|
||||
}
|
||||
|
||||
.pull-8 {
|
||||
right: 66.666667%
|
||||
}
|
||||
|
||||
.pull-9 {
|
||||
right: 75%
|
||||
}
|
||||
|
||||
.pull-10 {
|
||||
right: 83.555555%
|
||||
}
|
||||
|
||||
.pull-11 {
|
||||
right: 91.666667%
|
||||
}
|
||||
|
||||
.pull-12 {
|
||||
right: 100%
|
||||
}
|
||||
|
||||
.push-0 {
|
||||
left: auto
|
||||
}
|
||||
|
||||
.push-1 {
|
||||
left: 8.555555%
|
||||
}
|
||||
|
||||
.push-2 {
|
||||
left: 16.666667%
|
||||
}
|
||||
|
||||
.push-3 {
|
||||
left: 25%
|
||||
}
|
||||
|
||||
.push-4 {
|
||||
left: 33.555555%
|
||||
}
|
||||
|
||||
.push-5 {
|
||||
left: 41.666667%
|
||||
}
|
||||
|
||||
.push-6 {
|
||||
left: 50%
|
||||
}
|
||||
|
||||
.push-7 {
|
||||
left: 58.555555%
|
||||
}
|
||||
|
||||
|
||||
.push-8 {
|
||||
left: 66.666667%
|
||||
}
|
||||
|
||||
.push-9 {
|
||||
left: 75%
|
||||
}
|
||||
|
||||
.push-10 {
|
||||
left: 83.555555%
|
||||
}
|
||||
|
||||
.push-11 {
|
||||
left: 91.666667%
|
||||
}
|
||||
|
||||
.push-12 {
|
||||
left: 100%
|
||||
}
|
||||
|
||||
.offset-1 {
|
||||
margin-left: 8.555555%
|
||||
}
|
||||
|
||||
.offset-2 {
|
||||
margin-left: 16.666667%
|
||||
}
|
||||
|
||||
.offset-3 {
|
||||
margin-left: 25%
|
||||
}
|
||||
|
||||
.offset-4 {
|
||||
margin-left: 33.555555%
|
||||
}
|
||||
|
||||
.offset-5 {
|
||||
margin-left: 41.666667%
|
||||
}
|
||||
|
||||
.offset-6 {
|
||||
margin-left: 50%
|
||||
}
|
||||
|
||||
.offset-7 {
|
||||
margin-left: 58.555555%
|
||||
}
|
||||
|
||||
.offset-8 {
|
||||
margin-left: 66.666667%
|
||||
}
|
||||
|
||||
.offset-9 {
|
||||
margin-left: 75%
|
||||
}
|
||||
|
||||
.offset-10 {
|
||||
margin-left: 83.555555%
|
||||
}
|
||||
|
||||
.offset-11 {
|
||||
margin-left: 91.666667%
|
||||
}
|
||||
|
||||
.mainwrapper {
|
||||
background:var(--header-gradient);
|
||||
background-size: 100vw 100vh;
|
||||
background-attachment: fixed;
|
||||
}
|
||||
|
||||
.rightpanel {
|
||||
background-size: contain;
|
||||
background-position: bottom;
|
||||
min-height: 100vh;
|
||||
|
||||
}
|
||||
|
||||
.rightpanel:before {
|
||||
|
||||
position: absolute;
|
||||
height: calc(100% + 50px);
|
||||
width: 100%;
|
||||
left: 0;
|
||||
top: -50px;
|
||||
content: " ";
|
||||
opacity: .5;
|
||||
mix-blend-mode: multiply;
|
||||
background-size:cover;
|
||||
background-image:url(/dist/images/backgrounds/bg5.png);
|
||||
background-repeat:no-repeat;
|
||||
background-position:center;
|
||||
background-attachment: fixed;
|
||||
pointer-events: none !important;
|
||||
}
|
||||
|
||||
.rightpanel.personal:before {
|
||||
|
||||
}
|
||||
|
||||
.rightpanel.project:before {
|
||||
|
||||
}
|
||||
|
||||
.rightpanel.company:before {
|
||||
|
||||
}
|
||||
|
||||
.rightpanel {
|
||||
padding-top:50px;
|
||||
}
|
||||
|
||||
.rightpanel::after {
|
||||
clear: both;
|
||||
content: '';
|
||||
display: block;
|
||||
pointer-events: none !important;
|
||||
}
|
||||
|
||||
.overlay::after {
|
||||
pointer-events: none !important;
|
||||
}
|
||||
|
||||
|
||||
.primaryContent {
|
||||
min-height:calc(100vh - 50px);
|
||||
padding-top:10px;
|
||||
padding-bottom:10px;
|
||||
position: relative;
|
||||
overflow-x: hidden;
|
||||
}
|
||||
|
||||
|
||||
|
||||
.leftpanel {
|
||||
width: 240px;
|
||||
color: #fff;
|
||||
float: left;
|
||||
clear: both;
|
||||
background:var(--left-panel-bg);
|
||||
position:sticky;
|
||||
height:calc(100vh - 70px);
|
||||
z-index: 9;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
top:70px;
|
||||
margin-top:20px;
|
||||
left:10px;
|
||||
border-radius: var(--box-radius-large);
|
||||
|
||||
overflow:hidden;
|
||||
}
|
||||
|
||||
.header {
|
||||
clear: both;
|
||||
height: 50px;
|
||||
position: fixed;
|
||||
top:0px;
|
||||
z-index: 15;
|
||||
width: 100%;
|
||||
box-shadow: var(--large-shadow);
|
||||
backdrop-filter: var(--glass-blur);
|
||||
/*background:var(--header-bg-color);*/
|
||||
}
|
||||
|
||||
/* Pageheader is a glass card matching the content card below it, floating on
|
||||
the app's gradient background (which lives on .rightpanel, untouched). The
|
||||
old design used a 150px invisible cushion + a -95px content overlap to make
|
||||
the header float transparently on the gradient; that's replaced by a proper
|
||||
boxed header. Applied globally so every page's header is consistent. */
|
||||
.pageheader {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
/* Allow the right cluster (meta/summary + actions) to wrap below the title
|
||||
on narrow viewports instead of forcing horizontal overflow — mobile.css
|
||||
only adjusts padding/min-height, not the flex behavior. */
|
||||
flex-wrap: wrap;
|
||||
gap: 12px;
|
||||
padding: 8px 18px;
|
||||
height: auto;
|
||||
line-height: 1.3;
|
||||
position: relative;
|
||||
/* Above the nav bar (z-index 11) so the breadcrumb + sprint ⋮ dropdowns,
|
||||
which open downward into the nav bar's area, render on top of it. */
|
||||
z-index: 12;
|
||||
/* Match the content card exactly (same bg, NO backdrop blur) so the header
|
||||
and content read as one cohesive surface, not mismatched cards. */
|
||||
background: var(--glass-background);
|
||||
border: var(--glass-border);
|
||||
border-radius: var(--box-radius);
|
||||
box-shadow: var(--large-shadow);
|
||||
/* Horizontal margin matches .maincontent's 15px padding so the header card
|
||||
lines up with the content card below it (was full-width → stuck out
|
||||
wider, which read as a box-inside-a-box). No bottom margin: the gap to the
|
||||
next block comes solely from .maincontent's 10px padding-top, so the
|
||||
vertical rhythm (top-nav→header, header→nav/content) is an even 10px
|
||||
everywhere (was 8px margin + 10px padding = an uneven 18px). */
|
||||
margin: 0 15px 0 15px;
|
||||
}
|
||||
|
||||
.pageheader .pagetitle {
|
||||
flex: 1 1 auto;
|
||||
min-width: 0;
|
||||
/* Must be visible, not hidden — the breadcrumb switcher's dropdown menu
|
||||
lives inside here and overflow:hidden would clip it shut. */
|
||||
overflow: visible;
|
||||
}
|
||||
|
||||
/* Header content must be able to shrink so it never forces the card wider than
|
||||
the viewport (flex children need min-width:0 to shrink below content size). */
|
||||
.pageheader .pagetitle > * {
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
/* Right cluster on the header: secondary metadata (board stats, "updated …")
|
||||
plus optional actions (the sprint ⋮ menu), on ONE line with the title — so
|
||||
the header stays compact instead of adding a sub-line row. Shared by Tasks +
|
||||
the report header. */
|
||||
.pageheader-right {
|
||||
flex: 0 0 auto;
|
||||
margin-left: auto;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 12px;
|
||||
padding-left: 16px;
|
||||
}
|
||||
.pageheader-meta {
|
||||
font-size: var(--font-size-s);
|
||||
color: var(--primary-font-color);
|
||||
/* .75 (was .6): review feedback — the meta text was hard to read. */
|
||||
opacity: .75;
|
||||
}
|
||||
/* Muted crumb separator — the "/" between orientation segments in a page
|
||||
title ("Resources / Plan", "Docs / Default"), matching the report header.
|
||||
Opacity (not --secondary-font-color, which is #000 in the default theme)
|
||||
so it reads as muted on every theme. */
|
||||
.pagetitle h1 .crumb-sep,
|
||||
.subjectSwitcher-sep {
|
||||
color: var(--primary-font-color);
|
||||
opacity: .45;
|
||||
}
|
||||
/* Sprint edit/delete ⋮ menu — a subtle icon button inline in the right cluster
|
||||
(only rendered for a real sprint view). */
|
||||
.pageheader-right .headerEditDropdown {
|
||||
padding: 0;
|
||||
line-height: 1;
|
||||
}
|
||||
.pageheader-right .headerEditDropdown > .btn-transparent {
|
||||
color: var(--primary-font-color);
|
||||
opacity: .5;
|
||||
border: none;
|
||||
background: transparent;
|
||||
padding: 4px 8px;
|
||||
box-shadow: none;
|
||||
}
|
||||
.pageheader-right .headerEditDropdown > .btn-transparent:hover {
|
||||
opacity: .9;
|
||||
}
|
||||
|
||||
.maincontent {
|
||||
float: left;
|
||||
width: 100%;
|
||||
padding: 10px 15px;
|
||||
margin-top: 0;
|
||||
position:relative;
|
||||
z-index:5;
|
||||
}
|
||||
|
||||
.maincontentinner {
|
||||
border-radius:var(--box-radius);
|
||||
background:var(--glass-background);
|
||||
position:relative;
|
||||
padding:14px; /* account for 1px border */
|
||||
margin-bottom:10px;
|
||||
box-shadow: var(--large-shadow);
|
||||
|
||||
border: var(--glass-border);
|
||||
}
|
||||
|
||||
.footer {
|
||||
border-radius:var(--box-radius);
|
||||
background: var(--glass-background);
|
||||
backdrop-filter: var(--glass-blur);
|
||||
-webkit-backdrop-filter: var(--glass-blur);
|
||||
position:relative;
|
||||
|
||||
margin-bottom:20px;
|
||||
box-shadow: var(--large-shadow);
|
||||
|
||||
border: var(--glass-border);
|
||||
|
||||
font-size: var(--font-size-s);
|
||||
|
||||
color: var(--primary-font-color);
|
||||
padding:10px 20px;
|
||||
|
||||
overflow: hidden;
|
||||
clear: both;
|
||||
margin: 10px 15px;
|
||||
margin-bottom:40px;
|
||||
}
|
||||
|
||||
.footer .footer-left {
|
||||
float: left;
|
||||
}
|
||||
|
||||
.footer .footer-right {
|
||||
float: right;
|
||||
}
|
||||
|
||||
.announcementBanner{
|
||||
background:linear-gradient(170deg, var(--accent1) 20%,var(--accent2) 90%);
|
||||
height:40px;
|
||||
width:100%;
|
||||
text-align:center;
|
||||
line-height:40px;
|
||||
color:var(--main-action-color);
|
||||
position: fixed;
|
||||
bottom:0px;
|
||||
z-index: 100;
|
||||
}
|
||||
|
||||
.announcementBanner:before {
|
||||
|
||||
}
|
||||
|
||||
/* ── Document-page mode ──────────────────────────────────────────────
|
||||
body.lt-doc-page: for pages whose content card renders its OWN doc-shell
|
||||
header (the stakeholder reports' .rd-hdr — see report-deck.css). The shared
|
||||
teal pageheader collapses (kept in the DOM so its lifecycle hooks still
|
||||
fire) and the content shell goes flush/transparent so the document card IS
|
||||
the page. ONE implementation for every doc-shell page — never re-create
|
||||
this per page in a template. Specificity (body + class) outranks the plain
|
||||
.pageheader/.maincontentinner base rules, so no !important is needed.
|
||||
(RA's body.ra-page-active predates this mode and should converge onto it
|
||||
in the tab-component rollout follow-ups.) */
|
||||
body.lt-doc-page .pageheader {
|
||||
display: none;
|
||||
}
|
||||
body.lt-doc-page .maincontent {
|
||||
margin-top: 0;
|
||||
padding-top: 14px;
|
||||
}
|
||||
body.lt-doc-page .maincontentinner {
|
||||
background: transparent;
|
||||
border: none;
|
||||
box-shadow: none;
|
||||
border-radius: 0;
|
||||
padding: 0;
|
||||
backdrop-filter: none;
|
||||
-webkit-backdrop-filter: none;
|
||||
}
|
||||
3094
public/assets/css/components/style.default.css
Normal file
307
public/assets/css/components/tab-group.css
Normal file
@@ -0,0 +1,307 @@
|
||||
/*
|
||||
* Shared tab-group (x-global::navigation.tabs) — the ONE tablist skin.
|
||||
*
|
||||
* Consolidates the four hand-rolled copies of the same visual (board tabs in
|
||||
* nav.css, report deck .rd-tabs, goal-dialog .gv-tabs, Resource Allocation
|
||||
* .ra-tabs) into a single component stylesheet. Two variants:
|
||||
*
|
||||
* .lt-tabs--attached gradient accent band + translucent framed segment
|
||||
* group + white active pill (board/report look). Uses
|
||||
* the theme accents with the conditional --nav-scrim
|
||||
* (0 for dark accents; raised per-theme where white
|
||||
* controls would fail WCAG AA on light accents).
|
||||
* .lt-tabs--floating free-floating fully-rounded glass pills (Resource
|
||||
* Allocation look); .lt-tabs--dark for dark headers.
|
||||
*
|
||||
* Behavior (ARIA, keyboard, persistence) lives in the component's script.
|
||||
*/
|
||||
|
||||
/* ── Shared structure ─────────────────────────────────────────────── */
|
||||
.lt-tabs {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
.lt-tabs-group {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
.lt-tabs-actions {
|
||||
margin-left: auto;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 6px;
|
||||
}
|
||||
|
||||
.lt-tab {
|
||||
font-family: inherit;
|
||||
font-size: 13px;
|
||||
font-weight: 500;
|
||||
color: rgba(255, 255, 255, 0.9);
|
||||
cursor: pointer;
|
||||
border: none;
|
||||
background: transparent;
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
white-space: nowrap;
|
||||
transition: all .14s ease;
|
||||
letter-spacing: .1px;
|
||||
}
|
||||
.lt-tab i {
|
||||
font-size: 12px;
|
||||
opacity: .9;
|
||||
}
|
||||
.lt-tab:hover:not(.on) {
|
||||
color: #fff;
|
||||
background: rgba(255, 255, 255, 0.14);
|
||||
}
|
||||
.lt-tab:focus-visible {
|
||||
outline: 2px solid #fff;
|
||||
outline-offset: -2px;
|
||||
}
|
||||
.lt-tab.on {
|
||||
color: var(--primary-font-color);
|
||||
background: #fff;
|
||||
font-weight: 600;
|
||||
}
|
||||
.lt-tab.on i {
|
||||
color: var(--accent1);
|
||||
opacity: 1;
|
||||
}
|
||||
.lt-tab.on:focus-visible {
|
||||
outline: 2px solid var(--accent1);
|
||||
outline-offset: -2px;
|
||||
}
|
||||
|
||||
/* Count badge */
|
||||
.lt-tab .ct {
|
||||
font-size: 11px;
|
||||
font-weight: 600;
|
||||
background: rgba(255, 255, 255, 0.2);
|
||||
color: #fff;
|
||||
border-radius: 100px;
|
||||
padding: 1px 8px;
|
||||
line-height: 1.5;
|
||||
}
|
||||
.lt-tab.on .ct {
|
||||
background: rgba(0, 0, 0, 0.08);
|
||||
color: var(--accent1);
|
||||
}
|
||||
|
||||
/* ── Attached variant: gradient band (board/report family) ────────── */
|
||||
.lt-tabs--attached {
|
||||
padding: 7px 10px;
|
||||
margin-bottom: 10px;
|
||||
border-radius: 14px;
|
||||
background:
|
||||
linear-gradient(rgba(0, 0, 0, var(--nav-scrim, 0)), rgba(0, 0, 0, var(--nav-scrim, 0))),
|
||||
linear-gradient(90deg, var(--accent1), var(--accent2));
|
||||
/* Flat, no shadow — the bar must read as one system with the content
|
||||
below it, not a separate floating element (Marcel, nav redesign). */
|
||||
box-shadow: none;
|
||||
}
|
||||
.lt-tabs--attached .lt-tabs-group {
|
||||
background: rgba(255, 255, 255, 0.14);
|
||||
border: 1px solid rgba(255, 255, 255, 0.3);
|
||||
border-radius: 11px;
|
||||
padding: 3px;
|
||||
gap: 2px;
|
||||
}
|
||||
.lt-tabs--attached .lt-tab {
|
||||
padding: 7px 14px;
|
||||
border-radius: 9px;
|
||||
}
|
||||
/* Action-less pages hug the band to its tabs (compact nav, not an empty bar). */
|
||||
.lt-tabs--attached:not(:has(.lt-tabs-actions)) {
|
||||
width: fit-content;
|
||||
}
|
||||
|
||||
/* ── Floating variant: glass pills (Resource Allocation family) — THE
|
||||
standard look for horizontal tab navs (design call 2026-08-03). The
|
||||
glass container lives on the GROUP so page-level actions (period
|
||||
pickers, New/Filter/Group By) sit inline on the same row, borderless,
|
||||
on the page background. ─────────────────────────────────────────── */
|
||||
.lt-tabs--floating {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin: 0 0 8px;
|
||||
position: relative;
|
||||
}
|
||||
.lt-tabs--floating .lt-tabs-group {
|
||||
gap: 2px;
|
||||
padding: 4px;
|
||||
background: rgba(255, 255, 255, 0.14);
|
||||
border: 1px solid rgba(255, 255, 255, 0.2);
|
||||
border-radius: 100px;
|
||||
backdrop-filter: blur(6px);
|
||||
-webkit-backdrop-filter: blur(6px);
|
||||
}
|
||||
.lt-tabs--floating .lt-tab {
|
||||
padding: 8px 16px;
|
||||
border-radius: 100px;
|
||||
}
|
||||
.lt-tabs--floating .lt-tab.on,
|
||||
.lt-tabs--floating .lt-tab.is-active {
|
||||
box-shadow: 0 2px 6px rgba(20, 40, 50, .12);
|
||||
}
|
||||
|
||||
/* Link flavor — server-side-active nav tabs (board/timeline views): same
|
||||
pills, <ul><li class="active"><a> structure. */
|
||||
.lt-tabs--links .lt-tabs-group ul {
|
||||
list-style: none;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 2px;
|
||||
}
|
||||
.lt-tabs--links .lt-tabs-group li {
|
||||
list-style: none;
|
||||
margin: 0;
|
||||
}
|
||||
.lt-tabs--links .lt-tabs-group li a {
|
||||
font-family: inherit;
|
||||
font-size: 13px;
|
||||
font-weight: 500;
|
||||
color: rgba(255, 255, 255, 0.9);
|
||||
text-decoration: none;
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
white-space: nowrap;
|
||||
transition: all .14s ease;
|
||||
letter-spacing: .1px;
|
||||
padding: 8px 16px;
|
||||
border-radius: 100px;
|
||||
}
|
||||
.lt-tabs--links .lt-tabs-group li:not(.active) a:hover {
|
||||
color: #fff;
|
||||
background: rgba(255, 255, 255, 0.14);
|
||||
}
|
||||
.lt-tabs--links .lt-tabs-group li a:focus-visible {
|
||||
outline: 2px solid #fff;
|
||||
outline-offset: -2px;
|
||||
}
|
||||
.lt-tabs--links .lt-tabs-group li.active a {
|
||||
color: var(--primary-font-color);
|
||||
background: #fff;
|
||||
font-weight: 600;
|
||||
box-shadow: 0 2px 6px rgba(20, 40, 50, .12);
|
||||
}
|
||||
.lt-tabs--links .lt-tabs-group li.active a:focus-visible {
|
||||
outline: 2px solid var(--accent1);
|
||||
outline-offset: -2px;
|
||||
}
|
||||
|
||||
/* Light-surface flavor — floating pills inside white cards/modals (goal
|
||||
dialog): same shape, ink adapted so the glass doesn't vanish on white. */
|
||||
.lt-tabs--onlight .lt-tabs-group {
|
||||
background: rgba(0, 0, 0, 0.05);
|
||||
border-color: rgba(0, 0, 0, 0.08);
|
||||
backdrop-filter: none;
|
||||
-webkit-backdrop-filter: none;
|
||||
}
|
||||
.lt-tabs--onlight .lt-tab {
|
||||
color: var(--primary-font-color);
|
||||
opacity: .75;
|
||||
}
|
||||
.lt-tabs--onlight .lt-tab:hover:not(.on):not(.is-active) {
|
||||
color: var(--primary-font-color);
|
||||
opacity: 1;
|
||||
background: rgba(0, 0, 0, 0.05);
|
||||
}
|
||||
.lt-tabs--onlight .lt-tab.on,
|
||||
.lt-tabs--onlight .lt-tab.is-active {
|
||||
color: var(--accent1);
|
||||
opacity: 1;
|
||||
background: #fff;
|
||||
}
|
||||
.lt-tabs--onlight .lt-tab:focus-visible {
|
||||
outline-color: var(--accent1);
|
||||
}
|
||||
|
||||
/* Inline actions (right cluster) — borderless on the page background.
|
||||
Ported from the retired band (.maincontentinner.tabs .tabs-actions). */
|
||||
.lt-tabs-actions .btn {
|
||||
line-height: 1.2;
|
||||
height: auto;
|
||||
min-height: 0;
|
||||
margin: 0;
|
||||
font-size: 13px;
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 6px;
|
||||
}
|
||||
.lt-tabs-actions .btn .badge {
|
||||
line-height: 1;
|
||||
padding: 3px 6px;
|
||||
font-size: 10px;
|
||||
height: auto;
|
||||
align-self: center;
|
||||
}
|
||||
/* Filter / Group By match the report period-picker: white pill, dark text
|
||||
(design call 2026-08-03 — one filter style everywhere). Three classes so
|
||||
this outranks forms.css `body .btn.btn-link` (0-2-1), which otherwise
|
||||
flattens the pill back to transparent text. */
|
||||
.lt-tabs .lt-tabs-actions .btn-link {
|
||||
color: var(--primary-font-color);
|
||||
opacity: 1;
|
||||
background: #fff;
|
||||
border: 1px solid var(--main-border-color);
|
||||
border-radius: 22px;
|
||||
padding: 7px 14px;
|
||||
box-shadow: 0 1px 3px rgba(20, 40, 50, .06);
|
||||
transition: border-color .12s ease;
|
||||
}
|
||||
.lt-tabs .lt-tabs-actions .btn-link:hover {
|
||||
border-color: var(--accent1);
|
||||
background: #fff;
|
||||
color: var(--primary-font-color);
|
||||
}
|
||||
.lt-tabs .lt-tabs-actions .btn-link:focus-visible {
|
||||
outline: 2px solid var(--accent1);
|
||||
outline-offset: 2px;
|
||||
}
|
||||
.lt-tabs-actions .btn:focus-visible {
|
||||
outline: 2px solid #fff;
|
||||
outline-offset: 2px;
|
||||
}
|
||||
.lt-tabs-actions form {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
margin: 0;
|
||||
}
|
||||
.lt-tabs-actions .filterWrapper {
|
||||
margin-bottom: 0 !important;
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
}
|
||||
/* Right-edge actions: panels/menus open LEFTWARD or they fall off screen. */
|
||||
.lt-tabs-actions .filterBar,
|
||||
.lt-tabs-actions .dropdown-menu {
|
||||
left: auto !important;
|
||||
right: 0;
|
||||
}
|
||||
.lt-tabs-actions .btn-group {
|
||||
float: none;
|
||||
margin: 0 !important;
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
/* Floating on a dark header (server-stamped by the caller) */
|
||||
.lt-tabs--dark {
|
||||
background: rgba(255, 255, 255, 0.1);
|
||||
border-color: rgba(255, 255, 255, 0.16);
|
||||
}
|
||||
.lt-tabs--dark .lt-tab.on {
|
||||
color: #182831;
|
||||
}
|
||||
|
||||
/* ── Print: tabs are navigation, not content ──────────────────────── */
|
||||
@media print {
|
||||
.lt-tabs {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
582
public/assets/css/components/tables.css
Normal file
@@ -0,0 +1,582 @@
|
||||
.table thead th.right, .table tr td.right {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.table th {
|
||||
font-weight: normal;
|
||||
text-transform: uppercase;
|
||||
font-size: var(--font-size-s);
|
||||
border-top: 0;
|
||||
color: var(--kanban-col-title-color);
|
||||
background:var(--col-content-bg);
|
||||
|
||||
}
|
||||
|
||||
.table th.centeralign, .table td.centeralign {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
|
||||
.table.table-bordered th {
|
||||
border-color: var(--neutral);
|
||||
}
|
||||
|
||||
.table .con0 {
|
||||
}
|
||||
|
||||
.table .con1 {
|
||||
}
|
||||
|
||||
.table tr.even {
|
||||
background:var(--col-row-striped);
|
||||
}
|
||||
|
||||
.table-bordered th,
|
||||
.table-bordered td {
|
||||
border-right: 0px solid var(--neutral);
|
||||
border-left:0px;
|
||||
box-shadow: 0px 1px 1px var(--neutral);
|
||||
}
|
||||
|
||||
.table-bordered th:last-child,
|
||||
.table-bordered td:last-child {
|
||||
border-right: 0px solid var(--neutral);
|
||||
}
|
||||
|
||||
|
||||
.dataTable {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.dataTable th,
|
||||
.dataTable td {
|
||||
font-size: var(--base-font-size);
|
||||
}
|
||||
|
||||
.dataTables_wrapper {
|
||||
position: relative;
|
||||
padding-bottom: 20px;
|
||||
}
|
||||
|
||||
.simpleAccordionContainer .dataTables_wrapper{
|
||||
padding-bottom:20px
|
||||
}
|
||||
|
||||
.dataTables_length, .dataTables_info {
|
||||
padding: 10px;
|
||||
font-size: var(--font-size-s);
|
||||
border: 0px solid var(--neutral);
|
||||
}
|
||||
|
||||
.dataTables_length {
|
||||
border-bottom: 0;
|
||||
padding-bottom: 20px;
|
||||
}
|
||||
|
||||
.dataTables_info {
|
||||
border-top: 0;
|
||||
}
|
||||
|
||||
.dataTables_filter {
|
||||
position: absolute;
|
||||
margin-top: -45px;
|
||||
right: 10px;
|
||||
}
|
||||
|
||||
.dataTables_filter input {
|
||||
width: 150px;
|
||||
margin: 0 0 0 10px;
|
||||
}
|
||||
|
||||
.dataTables_paginate {
|
||||
position: absolute;
|
||||
bottom: 10px;
|
||||
right: 10px;
|
||||
}
|
||||
|
||||
.dataTables_paginate .first, .dataTables_paginate .previous, .dataTables_paginate .paginate_active,
|
||||
.dataTables_paginate .paginate_button, .dataTables_paginate .next, .dataTables_paginate .last {
|
||||
padding: 5px 10px;
|
||||
border: 0px solid var(--neutral);
|
||||
font-size: var(--font-size-s);
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.dataTables_paginate span:hover {
|
||||
background-color: var(--secondary-action-hover-bg);
|
||||
}
|
||||
|
||||
.dataTables_paginate .first {
|
||||
border-left: 0px solid var(--neutral);
|
||||
}
|
||||
|
||||
.dataTables_paginate .paginate_active,
|
||||
.paginate_button.current {
|
||||
background-color: var(--col-title-bg);
|
||||
font-weight:bold;
|
||||
}
|
||||
|
||||
.dataTables_paginate .paginate_button:hover {
|
||||
background: var(--kanban-col-title-bg);
|
||||
}
|
||||
|
||||
.dataTables_paginate .paginate_button_disabled {
|
||||
cursor: default;
|
||||
color: var(--neutral);
|
||||
background: var(--kanban-col-title-bg);
|
||||
}
|
||||
|
||||
.dataTables_paginate a {
|
||||
color: var(--primary-font-color);
|
||||
font-size:var(--font-size-s);
|
||||
}
|
||||
|
||||
.dataTables_paginate a:hover {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.dataTables_length select {
|
||||
width: auto !important;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.dataTables_scrollHead {
|
||||
background: var(--primary-font-color);
|
||||
}
|
||||
|
||||
.dataTables_scrollHead table {
|
||||
border-bottom: 0;
|
||||
}
|
||||
|
||||
.dataTable thead th.sorting,
|
||||
.dataTable thead th.sorting_asc,
|
||||
.dataTable thead th.sorting_desc {
|
||||
cursor: pointer;
|
||||
|
||||
}
|
||||
|
||||
.dataTable thead th.sorting:hover,
|
||||
.dataTable thead th.sorting_asc:hover,
|
||||
.dataTable thead th.sorting_desc:hover {
|
||||
background: var(--dropdown-link-hover-bg);
|
||||
color:var(--dropdown-link-hover-color);
|
||||
|
||||
}
|
||||
|
||||
.dataTable thead th.sorting:after {
|
||||
font-family: FontAwesome;
|
||||
content: "\00a0\00a0\f0dc";
|
||||
font-size:var(--font-size-s);
|
||||
}
|
||||
|
||||
.dataTable thead th.sorting_asc:after {
|
||||
font-family: FontAwesome;
|
||||
content: "\00a0\00a0\f0de";
|
||||
|
||||
}
|
||||
|
||||
.dataTable thead th.sorting_desc:after {
|
||||
font-family: FontAwesome;
|
||||
content: "\00a0\00a0\f0dd";
|
||||
}
|
||||
|
||||
.maincontentinner .table,
|
||||
.maincontentinner table{
|
||||
border:1px solid var(--col-content-bg);
|
||||
|
||||
}
|
||||
|
||||
.table-bordered {
|
||||
border-top-left-radius:var(--box-radius);
|
||||
border-top-right-radius:var(--box-radius);
|
||||
}
|
||||
|
||||
.maincontentinner .table th,
|
||||
.maincontentinner table th,
|
||||
.maincontentinner table thead td,
|
||||
.maincontentinner .table.table-bordered th,
|
||||
.maincontentinner .table tr.dtrg-group td{
|
||||
font-weight: normal;
|
||||
text-transform:none;
|
||||
font-size: var(--base-font-size);
|
||||
border-top: 0;
|
||||
|
||||
font-weight: normal;
|
||||
text-rendering: optimizelegibility;
|
||||
padding: 7px 10px 5px 10px;
|
||||
|
||||
border:0px;
|
||||
border-right:0px solid var(--neutral);
|
||||
border-color:var(--neutral);
|
||||
line-height: 17px;
|
||||
|
||||
color: var(--kanban-col-title-color);
|
||||
background:var(--secondary-background);
|
||||
}
|
||||
|
||||
.maincontentinner .table th,
|
||||
.maincontentinner table thead td,
|
||||
.maincontentinner .table.table-bordered th,
|
||||
.maincontentinner table th {
|
||||
background:var(--col-title-bg);
|
||||
padding: 10px 10px;
|
||||
font-weight:bold;
|
||||
}
|
||||
|
||||
.table-bordered colgroup+thead tr:first-child th:first-child {
|
||||
border-top-left-radius:var(--box-radius);
|
||||
}
|
||||
|
||||
.table-bordered colgroup+thead tr:last-child th:last-child {
|
||||
border-top-right-radius:var(--box-radius);
|
||||
}
|
||||
|
||||
.maincontentinner .table th:last-child,
|
||||
.maincontentinner .table.table-bordered th:last-child {
|
||||
border-right:0px;
|
||||
}
|
||||
|
||||
|
||||
.maincontentinner .table th.sorting_desc,
|
||||
.maincontentinner .table th.sorting_asc {
|
||||
}
|
||||
|
||||
|
||||
.maincontentinner .table tr.dtrg-group td {
|
||||
color: var(--kanban-col-title-color);
|
||||
padding: 5px 10px;
|
||||
padding-top:25px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.maincontentinner .table {
|
||||
margin-top:10px;
|
||||
}
|
||||
|
||||
.maincontentinner .table td,
|
||||
.maincontentinner table td{
|
||||
padding:5px 10px 3px 10px;
|
||||
vertical-align: middle;
|
||||
min-height:17px;
|
||||
border-right:1px solid var(--secondary-background);
|
||||
}
|
||||
|
||||
.maincontentinner .listStyleTable td {
|
||||
border-right:0px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
.dataTable tr:hover {
|
||||
box-shadow:var(--regular-shadow);
|
||||
}
|
||||
|
||||
.dataTable tr:hover td {
|
||||
background:var(--col-title-bg);
|
||||
|
||||
}
|
||||
|
||||
.maincontentinner .table td .small-input {
|
||||
width:40px;
|
||||
}
|
||||
|
||||
.maincontentinner .dataTables_wrapper .bottom {
|
||||
position:relative;
|
||||
border: 0px solid var(--main-border-color);
|
||||
border-top:0px;
|
||||
height:30px;
|
||||
}
|
||||
|
||||
.maincontentinner .dataTables_wrapper .dataTables_info {
|
||||
position:absolute;
|
||||
left:0px;
|
||||
top:10px;
|
||||
border:0px;
|
||||
font-size:12px;
|
||||
}
|
||||
|
||||
.maincontentinner .dataTables_wrapper .dataTables_length{
|
||||
position:absolute;
|
||||
left:50%;
|
||||
top:10px;
|
||||
margin-left:-65px;
|
||||
border:0px;
|
||||
padding:5px;
|
||||
font-size:var(--font-size-s);
|
||||
}
|
||||
|
||||
.maincontentinner .dataTables_wrapper .dataTables_length label,
|
||||
.maincontentinner .dataTables_wrapper .dataTables_length select {
|
||||
font-size:var(--font-size-s);
|
||||
}
|
||||
|
||||
.maincontentinner .dataTables_wrapper .dataTables_paginate{
|
||||
position:absolute;
|
||||
right:0px;
|
||||
bottom:10px;
|
||||
border:0px;
|
||||
padding:10px 10px;
|
||||
font-size:12px;
|
||||
}
|
||||
|
||||
.maincontentinner .table tr.dt-rowReorder-moving {
|
||||
outline:2px solid var(--neutral);
|
||||
}
|
||||
|
||||
.maincontentinner .dt-buttons .dt-button-collection {
|
||||
position:absolute;
|
||||
z-index:3;
|
||||
float: left;
|
||||
padding: 5px 0;
|
||||
margin: 2px 0 0;
|
||||
list-style: none;
|
||||
background-color: var(--secondary-background);
|
||||
margin-top: 10px;
|
||||
-moz-border-radius: 3px;
|
||||
-webkit-border-radius: 3px;
|
||||
border-radius: 3px;
|
||||
border: 0px;
|
||||
-webkit-box-shadow: 0 2px 10px rgba(0, 0, 0, 0.4);
|
||||
-moz-box-shadow: 0 2px 10px rgba(0, 0, 0, 0.4);
|
||||
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.4);
|
||||
}
|
||||
|
||||
.maincontentinner .dt-buttons .dt-button-collection button {
|
||||
display:block;
|
||||
width:100%;
|
||||
margin:0px;
|
||||
background:var(--secondary-background);
|
||||
color: var(--main-menu-link-color);
|
||||
padding: 5px 10px;
|
||||
border:0px;
|
||||
text-align:left;
|
||||
}
|
||||
|
||||
.maincontentinner .dt-buttons .dt-button-collection button:before {
|
||||
font-family: "Font Awesome 6 Free";
|
||||
content: "\f204";
|
||||
margin-right:5px;
|
||||
}
|
||||
|
||||
.maincontentinner .dt-buttons .dt-button-collection button. dt-button-active{
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.maincontentinner .dt-buttons .dt-button-collection button.dt-button-active:before {
|
||||
font-family: "Font Awesome 6 Free";
|
||||
content: "\f205";
|
||||
color:var(--accent1);
|
||||
}
|
||||
|
||||
.maincontentinner .dt-buttons .dt-button-collection button:hover,
|
||||
.maincontentinner .dt-buttons .dt-button-collection button.active:hover{
|
||||
color: var(--dropdown-link-hover-color);
|
||||
background:var(--dropdown-link-hover-bg);
|
||||
}
|
||||
|
||||
.maincontentinner .dt-buttons>.dt-button {
|
||||
display: inline-block;
|
||||
-moz-box-shadow: none;
|
||||
-webkit-box-shadow: none;
|
||||
box-shadow: none;
|
||||
border-color: var(--neutral);
|
||||
border: 1px solid var(--secondary-action-bg);
|
||||
margin: 0 0 9px;
|
||||
padding: 4px 14px;
|
||||
line-height: 21px;
|
||||
text-align: center;
|
||||
vertical-align: baseline;
|
||||
cursor: pointer;
|
||||
color: var(--secondary-action-color);
|
||||
background: var(--secondary-action-bg);
|
||||
text-shadow: none;
|
||||
}
|
||||
|
||||
.maincontentinner .dt-buttons>.dt-button span {
|
||||
}
|
||||
|
||||
.maincontentinner .dt-buttons>.dt-button:hover {
|
||||
background:var(--secondary-action-hover-bg);
|
||||
color:var(--secondary-action-hover-color);
|
||||
}
|
||||
.maincontentinner .dt-buttons .dt-button-collection button {
|
||||
border-radius:0px;
|
||||
}
|
||||
|
||||
.maincontentinner .dt-buttons .dt-button-collection button:hover {
|
||||
background:var(--main-menu-link-hover-bg);
|
||||
color:var(--main-menu-link-hover-color);
|
||||
}
|
||||
|
||||
|
||||
.timesheetTable td.active,
|
||||
.timesheetTable th.active{
|
||||
background:var(--col-title-bg);
|
||||
}
|
||||
|
||||
.maincontentinner .timesheetTable td input {
|
||||
margin-bottom:5px;
|
||||
}
|
||||
|
||||
.maincontentinner .timesheetTable tfoot td {
|
||||
padding:10px;
|
||||
}
|
||||
|
||||
.maincontentinner .headtitle table,
|
||||
.maincontentinner .headtitle .table th,
|
||||
.maincontentinner .headtitle .table td{
|
||||
border:none;
|
||||
margin-top:0px;
|
||||
}
|
||||
|
||||
.table th,
|
||||
.table td,
|
||||
table td{
|
||||
border-top:1px solid var(--col-title-bg);
|
||||
}
|
||||
|
||||
|
||||
.articleBody table thead td{
|
||||
background:var(--neutral);
|
||||
}
|
||||
|
||||
.articleBody table td {
|
||||
border:1px solid var(--neutral);
|
||||
}
|
||||
|
||||
/*fake height to allow divs in tds to fill out space */
|
||||
.table tr {
|
||||
height:1px;
|
||||
}
|
||||
|
||||
.table td.dropdown-cell {
|
||||
padding:0px;
|
||||
font-weight: 400;
|
||||
height: inherit;
|
||||
}
|
||||
|
||||
.table td.dropdown-cell .dropdown {
|
||||
width:100%;
|
||||
height:100%;
|
||||
border-radius:0px !important;
|
||||
display:block;
|
||||
|
||||
}
|
||||
|
||||
.table td.dropdown-cell .dropdown > a {
|
||||
width:100%;
|
||||
height:100%;
|
||||
border-radius:0px !important;
|
||||
padding: 5px 10px 3px 10px !important;
|
||||
line-height: 32px;
|
||||
font-size:var(--base-font-size);
|
||||
box-shadow:none;
|
||||
display:inline-block;
|
||||
}
|
||||
|
||||
.table td.dropdown-cell .dropdown > a .text {
|
||||
}
|
||||
.table td.dropdown-cell .dropdown > a i {
|
||||
float:right;
|
||||
line-height:31px;
|
||||
}
|
||||
|
||||
.table td.dropdown-cell .dropdown.ticketDropdown ul {
|
||||
top:35px;
|
||||
}
|
||||
|
||||
.listStyleTable td {
|
||||
|
||||
}
|
||||
|
||||
.maincontentinner .table.listStyleTable {
|
||||
border:0px;
|
||||
}
|
||||
|
||||
.maincontentinner .table.listStyleTable td {
|
||||
padding:5px 10px 5px 10px;
|
||||
}
|
||||
|
||||
.maincontentinner .table.listStyleTable td.dropdown-cell {
|
||||
padding:0px;
|
||||
}
|
||||
|
||||
.maincontentinner .table.listStyleTable td.dropdown-cell .dropdown > a {
|
||||
padding:0px 10px 0px 10px !important;
|
||||
|
||||
}
|
||||
|
||||
.maincontentinner .table.listStyleTable .dtrg-group td {
|
||||
border:0px;
|
||||
}
|
||||
|
||||
.maincontentinner .table.listStyleTable tr:hover {
|
||||
box-shadow: none;
|
||||
cursor:pointer;
|
||||
}
|
||||
|
||||
.maincontentinner .table.listStyleTable tr.active td {
|
||||
background: var(--col-title-bg);
|
||||
}
|
||||
|
||||
|
||||
|
||||
.maincontentinner .table.listStyleTable td.roundStatusBtn .statusDropdown > a {
|
||||
border-radius: 15px;
|
||||
padding: 0px;
|
||||
width: 30px;
|
||||
height: 30px;
|
||||
display: inline-block;
|
||||
line-height: 30px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.maincontentinner .dataTables_wrapper .center .dataTables_paginate {
|
||||
left: auto;
|
||||
right: auto;
|
||||
|
||||
text-align: center;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
|
||||
.maincontentinner .table.listStyleTable td.roundStatusBtn .f-left {
|
||||
float:none !important;
|
||||
}
|
||||
|
||||
.maincontentinner .table.listStyleTable .dtrg-start:first-child td{
|
||||
padding-top:0px
|
||||
}
|
||||
|
||||
.maincontentinner .table tfoot td,
|
||||
.maincontentinner table tfoot td {
|
||||
font-weight: bold;
|
||||
border-top: 1px solid var(--neutral);
|
||||
/* text-align: center; */
|
||||
/* min-height: 41px; */
|
||||
padding: 8px 5px 8px 20px;
|
||||
}
|
||||
|
||||
.ticketTable .ticketModal {
|
||||
font-weight:bold;
|
||||
}
|
||||
|
||||
.dt-button-down-arrow {
|
||||
font-size:0px;
|
||||
}
|
||||
|
||||
.dt-button-down-arrow:before {
|
||||
font-family: "Font Awesome 6 Free";
|
||||
content: "\f0d7";
|
||||
font-size: var(--font-size-m);
|
||||
margin-left: 5px;
|
||||
}
|
||||
|
||||
table.fc-multimonth-header-table {
|
||||
border:0px;
|
||||
}
|
||||
|
||||
.dataTable .progress-wrapper {
|
||||
display:none;
|
||||
}
|
||||
|
||||
197
public/assets/css/components/text-styles.css
Normal file
@@ -0,0 +1,197 @@
|
||||
/* Base link styles - outline removed for mouse interaction only */
|
||||
a, a:hover, a:link, a:active {
|
||||
outline: none;
|
||||
color: var(--primary-color);
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
/* Accessible keyboard focus indicator - WCAG 2.1 AA compliant */
|
||||
a:focus {
|
||||
color: var(--primary-color);
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
a:focus-visible {
|
||||
outline: 2px solid var(--primary-color);
|
||||
outline-offset: 2px;
|
||||
border-radius: var(--element-radius);
|
||||
}
|
||||
|
||||
body a:hover {
|
||||
text-decoration: underline;
|
||||
text-decoration-thickness: 2px;
|
||||
text-underline-offset: 2px;
|
||||
color: var(--primary-font-color);
|
||||
}
|
||||
|
||||
/* Focus styles for interactive elements */
|
||||
button:focus-visible,
|
||||
input:focus-visible,
|
||||
select:focus-visible,
|
||||
textarea:focus-visible,
|
||||
[role="button"]:focus-visible,
|
||||
[tabindex]:focus-visible {
|
||||
outline: 2px solid var(--primary-color);
|
||||
outline-offset: 2px;
|
||||
}
|
||||
|
||||
label, input, textarea, select, button {
|
||||
font-size: var(--base-font-size);
|
||||
}
|
||||
|
||||
h1, h2, h3, h4, h5 {
|
||||
font-weight: var(--font-weight-body);
|
||||
line-height: normal;
|
||||
}
|
||||
|
||||
h1 { font-size:var(--font-size-xxl);}
|
||||
h2 { font-size:var(--font-size-xl);}
|
||||
h3 { font-size:var(--font-size-xl); font-weight:var(--font-weight-bold);}
|
||||
h4 { font-size:var(--base-font-size); font-weight:var(--font-weight-bold);}
|
||||
h5 { font-size:var(--base-font-size); font-weight:var(--font-weight-bold);}
|
||||
|
||||
h1 small {
|
||||
font-size: var(--font-size-s);
|
||||
color:var(--primary-font-color);
|
||||
}
|
||||
|
||||
|
||||
.label-default {
|
||||
background: var(--neutral);
|
||||
color:var(--primary-font-color);
|
||||
}
|
||||
|
||||
.label-important, .label-warning,
|
||||
.label-success, .label-info, .label-inverse,
|
||||
.label-default, .label-primary, .label-danger {
|
||||
padding: 2px 8px;
|
||||
color: #fff;
|
||||
margin-left: 4px;
|
||||
border-radius: var(--element-radius);
|
||||
}
|
||||
|
||||
|
||||
.dropdown [class*="label-"]:hover {
|
||||
background: var(--dropdown-link-hover-bg) !important;
|
||||
color:var(--dropdown-link-hover-color) !important;
|
||||
}
|
||||
|
||||
a .label:after,
|
||||
a .label-important:after, a .label-warning:after,
|
||||
a .label-success:after, a .label-info:after, .label-inverse:after,
|
||||
a .label-default:after, a .label-primary:after {
|
||||
display: inline-block;
|
||||
width: 0;
|
||||
height: 0;
|
||||
vertical-align: middle;
|
||||
border-top: 4px solid #fff;
|
||||
border-right: 4px solid transparent;
|
||||
border-left: 4px solid transparent;
|
||||
content: "";
|
||||
margin-left: 2px;
|
||||
}
|
||||
|
||||
a .label.feature-label {
|
||||
background: var(--element-gradient);
|
||||
margin-top: 4px;
|
||||
display: block;
|
||||
position:absolute;
|
||||
top:4px;
|
||||
right:0px;
|
||||
border-radius: var(--element-radius);
|
||||
padding: 1px 4px;
|
||||
color:var(--main-action-color);
|
||||
}
|
||||
|
||||
a .label.feature-label:after {
|
||||
border:none;
|
||||
margin:0px;
|
||||
}
|
||||
|
||||
.nav .label.feature-label {
|
||||
}
|
||||
|
||||
.pagetitle {
|
||||
}
|
||||
|
||||
.pagetitle h1 {
|
||||
font-size: var(--font-size-xl);
|
||||
/* Dark text now that the header is a white/glass card (was white on the
|
||||
gradient). --primary-font-color adapts in dark mode. */
|
||||
color: var(--primary-font-color);
|
||||
line-height: 1.2;
|
||||
/* Reset the Bootstrap default h1 margin (0.67em 0); the auto-height header
|
||||
card owns the vertical rhythm via its own padding. */
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.pagetitle h1 a {
|
||||
color: var(--primary-font-color);
|
||||
text-decoration:underline;
|
||||
}
|
||||
|
||||
.pagetitle h5 {
|
||||
text-transform: uppercase;
|
||||
font-size: var(--font-size-xs);
|
||||
color: var(--secondary-font-color);
|
||||
/* Reset the Bootstrap default heading margin so the subtitle sits tight
|
||||
under the title inside the auto-height header card. */
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.maincontentinner .subtitle,
|
||||
.stickyHeader .subtitle {
|
||||
|
||||
font-size: var(--font-size-xl);
|
||||
color: var(--primary-font-color);
|
||||
font-weight: var(--font-weight-medium);
|
||||
}
|
||||
|
||||
.maincontentinner .subtitle {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.grid-stack-item-content .stickyHeader .subtitle {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
.subtitle {
|
||||
font-size: var(--base-font-size);
|
||||
color: var(--secondary-font-color);
|
||||
margin-bottom: 4px;
|
||||
}
|
||||
|
||||
.subtitle2 {
|
||||
font-size: var(--base-font-size);
|
||||
text-transform: uppercase;
|
||||
color: var(--primary-font-color);
|
||||
margin-bottom: 4px;
|
||||
}
|
||||
|
||||
|
||||
blockquote {
|
||||
font-family: 'PT Serif', Georgia, "Times New Roman", Times, serif;
|
||||
font-style: italic;
|
||||
padding-left: 40px;
|
||||
}
|
||||
|
||||
blockquote p {
|
||||
margin: 0 !important;
|
||||
}
|
||||
|
||||
blockquote.pull-right {
|
||||
background-position: right 5px;
|
||||
padding: 0 40px 0 0;
|
||||
border-right: 0;
|
||||
}
|
||||
|
||||
.maincontent > h2 {
|
||||
color:var(--main-action-color);
|
||||
}
|
||||
|
||||
a.danger,
|
||||
a.delete {
|
||||
color:var(--red) !important;
|
||||
}
|
||||
3910
public/assets/css/components/tiptap-editor.css
Normal file
107
public/assets/css/components/toast-notifications.css
Normal file
@@ -0,0 +1,107 @@
|
||||
/* Toast Notifications */
|
||||
.toast-notification {
|
||||
position: fixed;
|
||||
top: 1.5rem;
|
||||
right: 1.5rem;
|
||||
z-index: 9999;
|
||||
display: flex;
|
||||
align-items: flex-start;
|
||||
gap: 0.75rem;
|
||||
padding: 0.875rem 1rem;
|
||||
min-width: 300px;
|
||||
max-width: 500px;
|
||||
background: var(--main-bg);
|
||||
border: 1px solid var(--main-border-color);
|
||||
border-radius: var(--box-radius);
|
||||
box-shadow: var(--large-shadow);
|
||||
opacity: 0;
|
||||
transform: translateY(-10px);
|
||||
transition: opacity 0.3s ease, transform 0.3s ease;
|
||||
}
|
||||
|
||||
.toast-notification.toast-visible {
|
||||
opacity: 1;
|
||||
transform: translateY(0);
|
||||
}
|
||||
|
||||
.toast-notification--success {
|
||||
border-left: 4px solid var(--accent1);
|
||||
}
|
||||
|
||||
.toast-notification--error {
|
||||
border-left: 4px solid var(--red);
|
||||
}
|
||||
|
||||
.toast-notification--info {
|
||||
border-left: 4px solid var(--blue);
|
||||
}
|
||||
|
||||
.toast-notification__content {
|
||||
display: flex;
|
||||
align-items: flex-start;
|
||||
gap: 0.5rem;
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.toast-notification__icon {
|
||||
flex-shrink: 0;
|
||||
color: var(--accent1);
|
||||
}
|
||||
|
||||
.toast-notification--error .toast-notification__icon {
|
||||
color: var(--red);
|
||||
}
|
||||
|
||||
.toast-notification--info .toast-notification__icon {
|
||||
color: var(--blue);
|
||||
}
|
||||
|
||||
.toast-notification__message {
|
||||
margin: 0;
|
||||
flex: 1;
|
||||
font-size: var(--font-size-s);
|
||||
color: var(--primary-font-color);
|
||||
line-height: 1.5;
|
||||
}
|
||||
|
||||
.toast-notification__dismiss {
|
||||
background: none;
|
||||
border: none;
|
||||
font-size: 24px;
|
||||
line-height: 1;
|
||||
color: var(--primary-font-color);
|
||||
cursor: pointer;
|
||||
padding: 0 0.5rem;
|
||||
margin-left: 0.5rem;
|
||||
opacity: 0.5;
|
||||
flex-shrink: 0;
|
||||
min-width: 44px;
|
||||
min-height: 44px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.toast-notification__dismiss:hover {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.toast-notification__dismiss:focus-visible {
|
||||
outline: 2px solid var(--accent1);
|
||||
outline-offset: 2px;
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
/* Hide animation */
|
||||
.toast-notification--hiding {
|
||||
opacity: 0;
|
||||
transform: translateY(-10px);
|
||||
}
|
||||
|
||||
/* Respect reduced motion */
|
||||
@media (prefers-reduced-motion: reduce) {
|
||||
.toast-notification,
|
||||
.toast-notification--hiding {
|
||||
transition: none;
|
||||
}
|
||||
}
|
||||
77
public/assets/css/components/tourBoxes.css
Normal file
@@ -0,0 +1,77 @@
|
||||
.shepherd-header,
|
||||
.shepherd-content {
|
||||
background:var(--secondary-background);
|
||||
padding: 0px;
|
||||
|
||||
}
|
||||
|
||||
.shepherd-element,
|
||||
.shepherd-content {
|
||||
border-radius:var(--box-radius);
|
||||
}
|
||||
|
||||
.shepherd-element.shepherd-has-title[data-popper-placement^=bottom]>.shepherd-arrow:before,
|
||||
.shepherd-element.shepherd-has-title[data-popper-placement^=top]>.shepherd-arrow:before,
|
||||
.shepherd-element.shepherd-has-title[data-popper-placement^=left]>.shepherd-arrow:before,
|
||||
.shepherd-element.shepherd-has-title[data-popper-placement^=right]>.shepherd-arrow:before,
|
||||
.shepherd-arrow:before {
|
||||
background:var(--secondary-background);
|
||||
}
|
||||
|
||||
.shepherd-title,
|
||||
.shepherd-text {
|
||||
font-size: var(--font-size-l);
|
||||
line-height: var(--line-height-normal);
|
||||
padding:16px;
|
||||
color:var(--primary-font-color);
|
||||
}
|
||||
|
||||
.shepherd-title {
|
||||
font-size:var(--font-size-l);
|
||||
font-weight:var(--font-weight-bold);
|
||||
color:var(--main-action-color);
|
||||
}
|
||||
|
||||
.shepherd-has-title .shepherd-content .shepherd-header {
|
||||
padding:0px;
|
||||
background:var(--element-gradient);
|
||||
border-top-left-radius: var(--box-radius);
|
||||
border-top-right-radius: var(--box-radius);
|
||||
}
|
||||
|
||||
.shepherd-button {
|
||||
background:var(--main-action-bg);
|
||||
color:var(--main-action-color);
|
||||
border-radius: var(--input-radius);
|
||||
padding: 4px 12px;
|
||||
font-weight:var(--font-weight-bold);
|
||||
line-height:20px;
|
||||
border: 1px solid var(--main-action-bg);
|
||||
}
|
||||
|
||||
.shepherd-button.shepherd-button-secondary {
|
||||
border-radius: var(--input-radius);
|
||||
border:1px solid var(--secondary-action-bg);
|
||||
}
|
||||
|
||||
.shepherd-enabled.shepherd-element {
|
||||
box-shadow:var(--large-shadow);
|
||||
-webkit-filter: drop-shadow(0 0px 15px rgba(0, 0, 0, 0.4));
|
||||
filter: drop-shadow(0 0px 15px rgba(0, 0, 0, 0.4));
|
||||
}
|
||||
|
||||
.shepherd-button:not(:disabled):hover {
|
||||
background:var(--main-action-hover-bg);
|
||||
color:var(--main-action-hover-color);
|
||||
}
|
||||
|
||||
.shepherd-has-title .shepherd-content .shepherd-cancel-icon {
|
||||
color:var(--main-action-color);
|
||||
width:16px;
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
.shepherd-has-title .shepherd-content .shepherd-cancel-icon:hover {
|
||||
background: none;
|
||||
opacity:var(--opacity-subtle);
|
||||
}
|
||||
48
public/assets/css/components/tree-overwrites.css
Normal file
@@ -0,0 +1,48 @@
|
||||
|
||||
body .jstree-default .jstree-wholerow-hovered,
|
||||
body .jstree-default .jstree-wholerow-clicked{
|
||||
background:var(--main-menu-overlayed-link-hover-bg);
|
||||
border-radius: var(--box-radius);
|
||||
}
|
||||
|
||||
body .jstree-default .jstree-clicked {
|
||||
color:var(--main-menu-link-hover-color);
|
||||
}
|
||||
|
||||
.jstree-default .jstree-node {
|
||||
line-height:34px;
|
||||
min-height:34px;
|
||||
}
|
||||
|
||||
body .jstree-default .jstree-node a{
|
||||
padding-top:4px;
|
||||
padding-bottom:4px;
|
||||
}
|
||||
|
||||
|
||||
body .jstree-default .jstree-node .jstree-wholerow {
|
||||
height:34px;
|
||||
}
|
||||
|
||||
#article-toc-wrapper {
|
||||
|
||||
}
|
||||
|
||||
body .jstree-default > .jstree-no-dots .jstree-closed > .jstree-ocl {
|
||||
background-position: -9px 1px;
|
||||
}
|
||||
|
||||
.jstree-default > .jstree-no-dots .jstree-open > .jstree-ocl {
|
||||
background-position: -40px 1px;
|
||||
}
|
||||
|
||||
.jstree-default .jstree-icon:empty {
|
||||
width:20px;
|
||||
padding-right:4px;
|
||||
opacity: var(--opacity-muted);
|
||||
}
|
||||
|
||||
.jstree-wholerow-ul {
|
||||
max-width:100%;
|
||||
overflow:hidden;
|
||||
}
|
||||
1181
public/assets/css/components/wiki.css
Normal file
1
public/assets/css/index.html
Normal file
@@ -0,0 +1 @@
|
||||
<html><body></body></html>
|
||||
BIN
public/assets/css/jqueryUi/images/ui-bg_flat_0_aaaaaa_40x100.png
Normal file
|
After Width: | Height: | Size: 86 B |
|
After Width: | Height: | Size: 86 B |
|
After Width: | Height: | Size: 120 B |
|
After Width: | Height: | Size: 120 B |
|
After Width: | Height: | Size: 99 B |
|
After Width: | Height: | Size: 111 B |
|
After Width: | Height: | Size: 110 B |
|
After Width: | Height: | Size: 86 B |
|
After Width: | Height: | Size: 123 B |
BIN
public/assets/css/jqueryUi/images/ui-icons_222222_256x240.png
Normal file
|
After Width: | Height: | Size: 4.1 KiB |
BIN
public/assets/css/jqueryUi/images/ui-icons_2e83ff_256x240.png
Normal file
|
After Width: | Height: | Size: 4.1 KiB |
BIN
public/assets/css/jqueryUi/images/ui-icons_454545_256x240.png
Normal file
|
After Width: | Height: | Size: 4.1 KiB |
BIN
public/assets/css/jqueryUi/images/ui-icons_888888_256x240.png
Normal file
|
After Width: | Height: | Size: 4.1 KiB |
BIN
public/assets/css/jqueryUi/images/ui-icons_cd0a0a_256x240.png
Normal file
|
After Width: | Height: | Size: 4.1 KiB |
1
public/assets/css/jqueryUi/index.html
Normal file
@@ -0,0 +1 @@
|
||||
<html><body></body></html>
|
||||
1577
public/assets/css/jqueryUi/jquery-ui-1.7.2.custom.css
vendored
Normal file
1579
public/assets/css/jqueryUi/mobil.jquery-ui-1.7.2.custom.css
Normal file
394
public/assets/css/libs/animate.delay.css
Normal file
@@ -0,0 +1,394 @@
|
||||
.animate0 {
|
||||
-webkit-animation-duration: .8s;
|
||||
-webkit-animation-delay: 0s;
|
||||
-webkit-animation-timing-function: ease;
|
||||
-webkit-animation-fill-mode: both;
|
||||
-moz-animation-duration: .8s;
|
||||
-moz-animation-delay: 0s;
|
||||
-moz-animation-timing-function: ease;
|
||||
-moz-animation-fill-mode: both;
|
||||
-ms-animation-duration: .8s;
|
||||
-ms-animation-delay: 0s;
|
||||
-ms-animation-timing-function: ease;
|
||||
-ms-animation-fill-mode: both;
|
||||
animation-duration: .8s;
|
||||
animation-delay: 0s;
|
||||
animation-timing-function: ease;
|
||||
animation-fill-mode: both;
|
||||
}
|
||||
|
||||
.animate1{
|
||||
-webkit-animation-duration: .8s;
|
||||
-webkit-animation-delay: .2s;
|
||||
-webkit-animation-timing-function: ease;
|
||||
-webkit-animation-fill-mode: both;
|
||||
-moz-animation-duration: .8s;
|
||||
-moz-animation-delay: .2s;
|
||||
-moz-animation-timing-function: ease;
|
||||
-moz-animation-fill-mode: both;
|
||||
-ms-animation-duration: .8s;
|
||||
-ms-animation-delay: .2s;
|
||||
-ms-animation-timing-function: ease;
|
||||
-ms-animation-fill-mode: both;
|
||||
animation-duration: .8s;
|
||||
animation-delay: .2s;
|
||||
animation-timing-function: ease;
|
||||
animation-fill-mode: both;
|
||||
}
|
||||
|
||||
.animate2{
|
||||
-webkit-animation-duration: .8s;
|
||||
-webkit-animation-delay: .4s;
|
||||
-webkit-animation-timing-function: ease;
|
||||
-webkit-animation-fill-mode: both;
|
||||
-moz-animation-duration: .8s;
|
||||
-moz-animation-delay: .4s;
|
||||
-moz-animation-timing-function: ease;
|
||||
-moz-animation-fill-mode: both;
|
||||
-ms-animation-duration: .8s;
|
||||
-ms-animation-delay: .4s;
|
||||
-ms-animation-timing-function: ease;
|
||||
-ms-animation-fill-mode: both;
|
||||
animation-duration: .8s;
|
||||
animation-delay: .4s;
|
||||
animation-timing-function: ease;
|
||||
animation-fill-mode: both;
|
||||
}
|
||||
|
||||
.animate3{
|
||||
-webkit-animation-duration: .8s;
|
||||
-webkit-animation-delay: .6s;
|
||||
-webkit-animation-timing-function: ease;
|
||||
-webkit-animation-fill-mode: both;
|
||||
-moz-animation-duration: .8s;
|
||||
-moz-animation-delay: .6s;
|
||||
-moz-animation-timing-function: ease;
|
||||
-moz-animation-fill-mode: both;
|
||||
-ms-animation-duration: .8s;
|
||||
-ms-animation-delay: .6s;
|
||||
-ms-animation-timing-function: ease;
|
||||
-ms-animation-fill-mode: both;
|
||||
animation-duration: .8s;
|
||||
animation-delay: .6s;
|
||||
animation-timing-function: ease;
|
||||
animation-fill-mode: both;
|
||||
}
|
||||
|
||||
.animate4{
|
||||
-webkit-animation-duration: .8s;
|
||||
-webkit-animation-delay: .8s;
|
||||
-webkit-animation-timing-function: ease;
|
||||
-webkit-animation-fill-mode: both;
|
||||
-moz-animation-duration: .8s;
|
||||
-moz-animation-delay: .8s;
|
||||
-moz-animation-timing-function: ease;
|
||||
-moz-animation-fill-mode: both;
|
||||
-ms-animation-duration: .8s;
|
||||
-ms-animation-delay: .8s;
|
||||
-ms-animation-timing-function: ease;
|
||||
-ms-animation-fill-mode: both;
|
||||
animation-duration: .8s;
|
||||
animation-delay: .8s;
|
||||
animation-timing-function: ease;
|
||||
animation-fill-mode: both;
|
||||
}
|
||||
|
||||
.animate5{
|
||||
-webkit-animation-duration: .8s;
|
||||
-webkit-animation-delay: 1s;
|
||||
-webkit-animation-timing-function: ease;
|
||||
-webkit-animation-fill-mode: both;
|
||||
-moz-animation-duration: .8s;
|
||||
-moz-animation-delay: 1s;
|
||||
-moz-animation-timing-function: ease;
|
||||
-moz-animation-fill-mode: both;
|
||||
-ms-animation-duration: .8s;
|
||||
-ms-animation-delay: 1s;
|
||||
-ms-animation-timing-function: ease;
|
||||
-ms-animation-fill-mode: both;
|
||||
animation-duration: .8s;
|
||||
animation-delay: 1s;
|
||||
animation-timing-function: ease;
|
||||
animation-fill-mode: both;
|
||||
}
|
||||
.animate6{
|
||||
-webkit-animation-duration: .8s;
|
||||
-webkit-animation-delay: 1.2s;
|
||||
-webkit-animation-timing-function: ease;
|
||||
-webkit-animation-fill-mode: both;
|
||||
-moz-animation-duration: .8s;
|
||||
-moz-animation-delay: 1.2s;
|
||||
-moz-animation-timing-function: ease;
|
||||
-moz-animation-fill-mode: both;
|
||||
-ms-animation-duration: .8s;
|
||||
-ms-animation-delay: 1.2s;
|
||||
-ms-animation-timing-function: ease;
|
||||
-ms-animation-fill-mode: both;
|
||||
animation-duration: .8s;
|
||||
animation-delay: 1.2s;
|
||||
animation-timing-function: ease;
|
||||
animation-fill-mode: both;
|
||||
}
|
||||
.animate7{
|
||||
-webkit-animation-duration: .8s;
|
||||
-webkit-animation-delay: 1.4s;
|
||||
-webkit-animation-timing-function: ease;
|
||||
-webkit-animation-fill-mode: both;
|
||||
-moz-animation-duration: .8s;
|
||||
-moz-animation-delay: 1.4s;
|
||||
-moz-animation-timing-function: ease;
|
||||
-moz-animation-fill-mode: both;
|
||||
-ms-animation-duration: .8s;
|
||||
-ms-animation-delay: 1.4s;
|
||||
-ms-animation-timing-function: ease;
|
||||
-ms-animation-fill-mode: both;
|
||||
animation-duration: .8s;
|
||||
animation-delay: 1.4s;
|
||||
animation-timing-function: ease;
|
||||
animation-fill-mode: both;
|
||||
}
|
||||
|
||||
.animate8{
|
||||
-webkit-animation-duration: .8s;
|
||||
-webkit-animation-delay: 1.8s;
|
||||
-webkit-animation-timing-function: ease;
|
||||
-webkit-animation-fill-mode: both;
|
||||
-moz-animation-duration: .8s;
|
||||
-moz-animation-delay: 1.8s;
|
||||
-moz-animation-timing-function: ease;
|
||||
-moz-animation-fill-mode: both;
|
||||
-ms-animation-duration: .8s;
|
||||
-ms-animation-delay: 1.8s;
|
||||
-ms-animation-timing-function: ease;
|
||||
-ms-animation-fill-mode: both;
|
||||
animation-duration: .8s;
|
||||
animation-delay: 1.8s;
|
||||
animation-timing-function: ease;
|
||||
animation-fill-mode: both;
|
||||
}
|
||||
|
||||
.animate9{
|
||||
-webkit-animation-duration: .8s;
|
||||
-webkit-animation-delay: 1.8s;
|
||||
-webkit-animation-timing-function: ease;
|
||||
-webkit-animation-fill-mode: both;
|
||||
-moz-animation-duration: .8s;
|
||||
-moz-animation-delay: 1.8s;
|
||||
-moz-animation-timing-function: ease;
|
||||
-moz-animation-fill-mode: both;
|
||||
-ms-animation-duration: .8s;
|
||||
-ms-animation-delay: 1.8s;
|
||||
-ms-animation-timing-function: ease;
|
||||
-ms-animation-fill-mode: both;
|
||||
animation-duration: .8s;
|
||||
animation-delay: 1.8s;
|
||||
animation-timing-function: ease;
|
||||
animation-fill-mode: both;
|
||||
}
|
||||
|
||||
.animate10{
|
||||
-webkit-animation-duration: .8s;
|
||||
-webkit-animation-delay: 2.0s;
|
||||
-webkit-animation-timing-function: ease;
|
||||
-webkit-animation-fill-mode: both;
|
||||
-moz-animation-duration: .8s;
|
||||
-moz-animation-delay: 2.0s;
|
||||
-moz-animation-timing-function: ease;
|
||||
-moz-animation-fill-mode: both;
|
||||
-ms-animation-duration: .8s;
|
||||
-ms-animation-delay: 2.0s;
|
||||
-ms-animation-timing-function: ease;
|
||||
-ms-animation-fill-mode: both;
|
||||
animation-duration: .8s;
|
||||
animation-delay: 2.0s;
|
||||
animation-timing-function: ease;
|
||||
animation-fill-mode: both;
|
||||
}
|
||||
|
||||
.animate11{
|
||||
-webkit-animation-duration: .8s;
|
||||
-webkit-animation-delay: 2.2s;
|
||||
-webkit-animation-timing-function: ease;
|
||||
-webkit-animation-fill-mode: both;
|
||||
-moz-animation-duration: .8s;
|
||||
-moz-animation-delay: 2.2s;
|
||||
-moz-animation-timing-function: ease;
|
||||
-moz-animation-fill-mode: both;
|
||||
-ms-animation-duration: .8s;
|
||||
-ms-animation-delay: 2.2s;
|
||||
-ms-animation-timing-function: ease;
|
||||
-ms-animation-fill-mode: both;
|
||||
animation-duration: .8s;
|
||||
animation-delay: 2.2s;
|
||||
animation-timing-function: ease;
|
||||
animation-fill-mode: both;
|
||||
}
|
||||
|
||||
.animate12{
|
||||
-webkit-animation-duration: .8s;
|
||||
-webkit-animation-delay: 2.4s;
|
||||
-webkit-animation-timing-function: ease;
|
||||
-webkit-animation-fill-mode: both;
|
||||
-moz-animation-duration: .8s;
|
||||
-moz-animation-delay: 2.4s;
|
||||
-moz-animation-timing-function: ease;
|
||||
-moz-animation-fill-mode: both;
|
||||
-ms-animation-duration: .8s;
|
||||
-ms-animation-delay: 2.4s;
|
||||
-ms-animation-timing-function: ease;
|
||||
-ms-animation-fill-mode: both;
|
||||
animation-duration: .8s;
|
||||
animation-delay: 2.4s;
|
||||
animation-timing-function: ease;
|
||||
animation-fill-mode: both;
|
||||
}
|
||||
|
||||
.animate13{
|
||||
-webkit-animation-duration: .8s;
|
||||
-webkit-animation-delay: 2.8s;
|
||||
-webkit-animation-timing-function: ease;
|
||||
-webkit-animation-fill-mode: both;
|
||||
-moz-animation-duration: .8s;
|
||||
-moz-animation-delay: 2.8s;
|
||||
-moz-animation-timing-function: ease;
|
||||
-moz-animation-fill-mode: both;
|
||||
-ms-animation-duration: .8s;
|
||||
-ms-animation-delay: 2.8s;
|
||||
-ms-animation-timing-function: ease;
|
||||
-ms-animation-fill-mode: both;
|
||||
animation-duration: .8s;
|
||||
animation-delay: 2.8s;
|
||||
animation-timing-function: ease;
|
||||
animation-fill-mode: both;
|
||||
}
|
||||
|
||||
.animate14{
|
||||
-webkit-animation-duration: .8s;
|
||||
-webkit-animation-delay: 2.8s;
|
||||
-webkit-animation-timing-function: ease;
|
||||
-webkit-animation-fill-mode: both;
|
||||
-moz-animation-duration: .8s;
|
||||
-moz-animation-delay: 2.8s;
|
||||
-moz-animation-timing-function: ease;
|
||||
-moz-animation-fill-mode: both;
|
||||
-ms-animation-duration: .8s;
|
||||
-ms-animation-delay: 2.8s;
|
||||
-ms-animation-timing-function: ease;
|
||||
-ms-animation-fill-mode: both;
|
||||
animation-duration: .8s;
|
||||
animation-delay: 2.8s;
|
||||
animation-timing-function: ease;
|
||||
animation-fill-mode: both;
|
||||
}
|
||||
|
||||
.animate15{
|
||||
-webkit-animation-duration: .8s;
|
||||
-webkit-animation-delay: 3.0s;
|
||||
-webkit-animation-timing-function: ease;
|
||||
-webkit-animation-fill-mode: both;
|
||||
-moz-animation-duration: .8s;
|
||||
-moz-animation-delay: 3.0s;
|
||||
-moz-animation-timing-function: ease;
|
||||
-moz-animation-fill-mode: both;
|
||||
-ms-animation-duration: .8s;
|
||||
-ms-animation-delay: 3.0s;
|
||||
-ms-animation-timing-function: ease;
|
||||
-ms-animation-fill-mode: both;
|
||||
animation-duration: .8s;
|
||||
animation-delay: 3.0s;
|
||||
animation-timing-function: ease;
|
||||
animation-fill-mode: both;
|
||||
}
|
||||
|
||||
.animate16{
|
||||
-webkit-animation-duration: .8s;
|
||||
-webkit-animation-delay: 3.2s;
|
||||
-webkit-animation-timing-function: ease;
|
||||
-webkit-animation-fill-mode: both;
|
||||
-moz-animation-duration: .8s;
|
||||
-moz-animation-delay: 3.2s;
|
||||
-moz-animation-timing-function: ease;
|
||||
-moz-animation-fill-mode: both;
|
||||
-ms-animation-duration: .8s;
|
||||
-ms-animation-delay: 3.2s;
|
||||
-ms-animation-timing-function: ease;
|
||||
-ms-animation-fill-mode: both;
|
||||
animation-duration: .8s;
|
||||
animation-delay: 3.2s;
|
||||
animation-timing-function: ease;
|
||||
animation-fill-mode: both;
|
||||
}
|
||||
|
||||
.animate17{
|
||||
-webkit-animation-duration: .8s;
|
||||
-webkit-animation-delay: 3.4s;
|
||||
-webkit-animation-timing-function: ease;
|
||||
-webkit-animation-fill-mode: both;
|
||||
-moz-animation-duration: .8s;
|
||||
-moz-animation-delay: 3.4s;
|
||||
-moz-animation-timing-function: ease;
|
||||
-moz-animation-fill-mode: both;
|
||||
-ms-animation-duration: .8s;
|
||||
-ms-animation-delay: 3.4s;
|
||||
-ms-animation-timing-function: ease;
|
||||
-ms-animation-fill-mode: both;
|
||||
animation-duration: .8s;
|
||||
animation-delay: 3.4s;
|
||||
animation-timing-function: ease;
|
||||
animation-fill-mode: both;
|
||||
}
|
||||
.animate18{
|
||||
-webkit-animation-duration: .8s;
|
||||
-webkit-animation-delay: 3.6s;
|
||||
-webkit-animation-timing-function: ease;
|
||||
-webkit-animation-fill-mode: both;
|
||||
-moz-animation-duration: .8s;
|
||||
-moz-animation-delay: 3.6s;
|
||||
-moz-animation-timing-function: ease;
|
||||
-moz-animation-fill-mode: both;
|
||||
-ms-animation-duration: .8s;
|
||||
-ms-animation-delay: 3.6s;
|
||||
-ms-animation-timing-function: ease;
|
||||
-ms-animation-fill-mode: both;
|
||||
animation-duration: .8s;
|
||||
animation-delay: 3.6s;
|
||||
animation-timing-function: ease;
|
||||
animation-fill-mode: both;
|
||||
}
|
||||
.animate19{
|
||||
-webkit-animation-duration: .8s;
|
||||
-webkit-animation-delay: 3.8s;
|
||||
-webkit-animation-timing-function: ease;
|
||||
-webkit-animation-fill-mode: both;
|
||||
-moz-animation-duration: .8s;
|
||||
-moz-animation-delay: 3.8s;
|
||||
-moz-animation-timing-function: ease;
|
||||
-moz-animation-fill-mode: both;
|
||||
-ms-animation-duration: .8s;
|
||||
-ms-animation-delay: 3.8s;
|
||||
-ms-animation-timing-function: ease;
|
||||
-ms-animation-fill-mode: both;
|
||||
animation-duration: .8s;
|
||||
animation-delay: 3.8s;
|
||||
animation-timing-function: ease;
|
||||
animation-fill-mode: both;
|
||||
}
|
||||
|
||||
.animate20{
|
||||
-webkit-animation-duration: .8s;
|
||||
-webkit-animation-delay: 4.0s;
|
||||
-webkit-animation-timing-function: ease;
|
||||
-webkit-animation-fill-mode: both;
|
||||
-moz-animation-duration: .8s;
|
||||
-moz-animation-delay: 4.0s;
|
||||
-moz-animation-timing-function: ease;
|
||||
-moz-animation-fill-mode: both;
|
||||
-ms-animation-duration: .8s;
|
||||
-ms-animation-delay: 4.0s;
|
||||
-ms-animation-timing-function: ease;
|
||||
-ms-animation-fill-mode: both;
|
||||
animation-duration: .8s;
|
||||
animation-delay: 4.0s;
|
||||
animation-timing-function: ease;
|
||||
animation-fill-mode: both;
|
||||
}
|
||||
1
public/assets/css/libs/animate.min.css
vendored
Normal file
39
public/assets/css/libs/atkinson.css
Normal file
@@ -0,0 +1,39 @@
|
||||
@font-face {
|
||||
font-family: 'Atkinson Hyperlegible';
|
||||
src: url('~fonts/atkinson/Atkinson-Hyperlegible-Regular-102.ttf') format('truetype'),
|
||||
url('~fonts/atkinson/Atkinson-Hyperlegible-Regular-102a.woff2') format('woff2');
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Atkinson Hyperlegible';
|
||||
src: url('~fonts/atkinson/Atkinson-Hyperlegible-BoldItalic-102.ttf') format('truetype'),
|
||||
url('~fonts/atkinson/Atkinson-Hyperlegible-BoldItalic-102a.woff2') format('woff2');
|
||||
font-weight: bold;
|
||||
font-style: italic;
|
||||
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Atkinson Hyperlegible';
|
||||
src: url('~fonts/atkinson/Atkinson-Hyperlegible-Bold-102.ttf') format('truetype'),
|
||||
url('~fonts/atkinson/Atkinson-Hyperlegible-Bold-102a.woff2') format('woff2');
|
||||
font-weight: bold;
|
||||
font-style: normal;
|
||||
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Atkinson Hyperlegible';
|
||||
src: url('~fonts/atkinson/Atkinson-Hyperlegible-Italic-102.ttf') format('truetype'),
|
||||
url('~fonts/atkinson/Atkinson-Hyperlegible-Italic-102a.woff2') format('woff2');
|
||||
|
||||
font-weight: normal;
|
||||
font-style: italic;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
31
public/assets/css/libs/bootstrap-fileupload.min.css
vendored
Normal file
@@ -0,0 +1,31 @@
|
||||
/*!
|
||||
* Bootstrap v2.3.0-j4
|
||||
*
|
||||
* Copyright 2012 Twitter, Inc
|
||||
* Licensed under the Apache License v2.0
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Designed and built with all the love in the world by @mdo and @fat, extended by @ArnoldDaniels.
|
||||
*/
|
||||
.clearfix{*zoom:1;}.clearfix:before,.clearfix:after{display:table;content:"";line-height:0;}
|
||||
.clearfix:after{clear:both;}
|
||||
.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0;}
|
||||
.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;}
|
||||
.btn-file{overflow:hidden;position:relative;vertical-align:middle;}.btn-file>input{position:absolute;top:0;right:0;margin:0;opacity:0;filter:alpha(opacity=0);transform:translate(-300px, 0) scale(4);font-size:23px;direction:ltr;cursor:pointer;}
|
||||
.fileupload{margin-bottom:9px;}.fileupload .uneditable-input{display:inline-block;margin-bottom:0px;vertical-align:middle;cursor:text;}
|
||||
.fileupload .thumbnail{overflow:hidden;display:inline-block;margin-bottom:5px;vertical-align:middle;text-align:center;}.fileupload .thumbnail>img{display:inline-block;vertical-align:middle;max-height:100%;}
|
||||
.fileupload .btn{vertical-align:middle;}
|
||||
.fileupload-exists .fileupload-new,.fileupload-new .fileupload-exists{display:none;}
|
||||
.fileupload-inline .fileupload-controls{display:inline;}
|
||||
.fileupload-new .input-append .btn-file{-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0;}
|
||||
.thumbnail-borderless .thumbnail{border:none;padding:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;}
|
||||
.fileupload-new.thumbnail-borderless .thumbnail{border:1px solid #ddd;}
|
||||
.control-group.warning .fileupload .uneditable-input{color:#a47e3c;border-color:#a47e3c;}
|
||||
.control-group.warning .fileupload .fileupload-preview{color:#a47e3c;}
|
||||
.control-group.warning .fileupload .thumbnail{border-color:#a47e3c;}
|
||||
.control-group.error .fileupload .uneditable-input{color:#b94a48;border-color:#b94a48;}
|
||||
.control-group.error .fileupload .fileupload-preview{color:#b94a48;}
|
||||
.control-group.error .fileupload .thumbnail{border-color:#b94a48;}
|
||||
.control-group.success .fileupload .uneditable-input{color:#468847;border-color:#468847;}
|
||||
.control-group.success .fileupload .fileupload-preview{color:#468847;}
|
||||
.control-group.success .fileupload .thumbnail{border-color:#468847;}
|
||||
1
public/assets/css/libs/bootstrap-grid.min.css
vendored
Normal file
9
public/assets/css/libs/bootstrap-responsive.min.css
vendored
Normal file
10
public/assets/css/libs/bootstrap-timepicker.min.css
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
/*!
|
||||
* Timepicker Component for Twitter Bootstrap
|
||||
*
|
||||
* Copyright 2013 Joris de Wit
|
||||
*
|
||||
* Contributors https://github.com/jdewit/bootstrap-timepicker/graphs/contributors
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/.bootstrap-timepicker{position:relative}.bootstrap-timepicker.pull-right .bootstrap-timepicker-widget.dropdown-menu{left:auto;right:0}.bootstrap-timepicker.pull-right .bootstrap-timepicker-widget.dropdown-menu:before{left:auto;right:12px}.bootstrap-timepicker.pull-right .bootstrap-timepicker-widget.dropdown-menu:after{left:auto;right:13px}.bootstrap-timepicker .add-on{cursor:pointer}.bootstrap-timepicker .add-on i{display:inline-block;width:16px;height:16px}.bootstrap-timepicker-widget.dropdown-menu{padding:2px 3px 2px 2px}.bootstrap-timepicker-widget.dropdown-menu.open{display:inline-block}.bootstrap-timepicker-widget.dropdown-menu:before{border-bottom:7px solid rgba(0,0,0,0.2);border-left:7px solid transparent;border-right:7px solid transparent;content:"";display:inline-block;left:9px;position:absolute;top:-7px}.bootstrap-timepicker-widget.dropdown-menu:after{border-bottom:6px solid #fff;border-left:6px solid transparent;border-right:6px solid transparent;content:"";display:inline-block;left:10px;position:absolute;top:-6px}.bootstrap-timepicker-widget a.btn,.bootstrap-timepicker-widget input{border-radius:4px}.bootstrap-timepicker-widget table{width:100%;margin:0}.bootstrap-timepicker-widget table td{text-align:center;height:30px;margin:0;padding:2px}.bootstrap-timepicker-widget table td:not(.separator){min-width:30px}.bootstrap-timepicker-widget table td span{width:100%}.bootstrap-timepicker-widget table td a{border:1px transparent solid;width:100%;display:inline-block;margin:0;padding:8px 0;outline:0;color:#333}.bootstrap-timepicker-widget table td a:hover{text-decoration:none;background-color:#eee;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;border-color:#ddd}.bootstrap-timepicker-widget table td a i{margin-top:2px}.bootstrap-timepicker-widget table td input{width:25px;margin:0;text-align:center}.bootstrap-timepicker-widget .modal-content{padding:4px}@media(min-width:767px){.bootstrap-timepicker-widget.modal{width:200px;margin-left:-100px}}@media(max-width:767px){.bootstrap-timepicker{width:100%}.bootstrap-timepicker .dropdown-menu{width:100%}}
|
||||
6782
public/assets/css/libs/bootstrap.css
vendored
Normal file
873
public/assets/css/libs/bootstrap.min.css
vendored
Normal file
BIN
public/assets/css/libs/chosen-sprite-light.png
Normal file
|
After Width: | Height: | Size: 538 B |
BIN
public/assets/css/libs/chosen-sprite-light@2x.png
Normal file
|
After Width: | Height: | Size: 738 B |
250
public/assets/css/libs/croppie.css
Normal file
@@ -0,0 +1,250 @@
|
||||
.croppie-container {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.croppie-container .cr-image {
|
||||
z-index: -1;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
transform-origin: 0 0;
|
||||
max-height: none;
|
||||
max-width: none;
|
||||
}
|
||||
|
||||
.croppie-container .cr-boundary {
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
margin: 0 auto;
|
||||
z-index: 1;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.croppie-container .cr-viewport,
|
||||
.croppie-container .cr-resizer {
|
||||
position: absolute;
|
||||
border: 2px solid #fff;
|
||||
margin: auto;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
left: 0;
|
||||
box-shadow: 0 0 2000px 2000px rgba(0, 0, 0, 0.5);
|
||||
z-index: 0;
|
||||
}
|
||||
|
||||
.croppie-container .cr-resizer {
|
||||
z-index: 2;
|
||||
box-shadow: none;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.croppie-container .cr-resizer-vertical,
|
||||
.croppie-container .cr-resizer-horisontal {
|
||||
position: absolute;
|
||||
pointer-events: all;
|
||||
}
|
||||
|
||||
.croppie-container .cr-resizer-vertical::after,
|
||||
.croppie-container .cr-resizer-horisontal::after {
|
||||
display: block;
|
||||
position: absolute;
|
||||
box-sizing: border-box;
|
||||
border: 1px solid black;
|
||||
background: #fff;
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
content: '';
|
||||
}
|
||||
|
||||
.croppie-container .cr-resizer-vertical {
|
||||
bottom: -5px;
|
||||
cursor: row-resize;
|
||||
width: 100%;
|
||||
height: 10px;
|
||||
}
|
||||
|
||||
.croppie-container .cr-resizer-vertical::after {
|
||||
left: 50%;
|
||||
margin-left: -5px;
|
||||
}
|
||||
|
||||
.croppie-container .cr-resizer-horisontal {
|
||||
right: -5px;
|
||||
cursor: col-resize;
|
||||
width: 10px;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.croppie-container .cr-resizer-horisontal::after {
|
||||
top: 50%;
|
||||
margin-top: -5px;
|
||||
}
|
||||
|
||||
.croppie-container .cr-original-image {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.croppie-container .cr-vp-circle {
|
||||
border-radius: 50%;
|
||||
}
|
||||
|
||||
.croppie-container .cr-overlay {
|
||||
z-index: 1;
|
||||
position: absolute;
|
||||
cursor: move;
|
||||
touch-action: none;
|
||||
}
|
||||
|
||||
.croppie-container .cr-slider-wrap {
|
||||
width: 75%;
|
||||
margin: 15px auto;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.croppie-result {
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.croppie-result img {
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
.croppie-container .cr-image,
|
||||
.croppie-container .cr-overlay,
|
||||
.croppie-container .cr-viewport {
|
||||
-webkit-transform: translateZ(0);
|
||||
-moz-transform: translateZ(0);
|
||||
-ms-transform: translateZ(0);
|
||||
transform: translateZ(0);
|
||||
}
|
||||
|
||||
/*************************************/
|
||||
/***** STYLING RANGE INPUT ***********/
|
||||
/*************************************/
|
||||
/*http://brennaobrien.com/blog/2014/05/style-input-type-range-in-every-browser.html */
|
||||
/*************************************/
|
||||
|
||||
.cr-slider {
|
||||
-webkit-appearance: none;
|
||||
/*removes default webkit styles*/
|
||||
/*border: 1px solid white; *//*fix for FF unable to apply focus style bug */
|
||||
width: 300px;
|
||||
/*required for proper track sizing in FF*/
|
||||
max-width: 100%;
|
||||
padding-top: 8px;
|
||||
padding-bottom: 8px;
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
.cr-slider::-webkit-slider-runnable-track {
|
||||
width: 100%;
|
||||
height: 3px;
|
||||
background: rgba(0, 0, 0, 0.5);
|
||||
border: 0;
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
.cr-slider::-webkit-slider-thumb {
|
||||
-webkit-appearance: none;
|
||||
border: none;
|
||||
height: 16px;
|
||||
width: 16px;
|
||||
border-radius: 50%;
|
||||
background: #ddd;
|
||||
margin-top: -6px;
|
||||
}
|
||||
|
||||
.cr-slider:focus {
|
||||
outline: none;
|
||||
}
|
||||
/*
|
||||
.cr-slider:focus::-webkit-slider-runnable-track {
|
||||
background: #ccc;
|
||||
}
|
||||
*/
|
||||
|
||||
.cr-slider::-moz-range-track {
|
||||
width: 100%;
|
||||
height: 3px;
|
||||
background: rgba(0, 0, 0, 0.5);
|
||||
border: 0;
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
.cr-slider::-moz-range-thumb {
|
||||
border: none;
|
||||
height: 16px;
|
||||
width: 16px;
|
||||
border-radius: 50%;
|
||||
background: #ddd;
|
||||
margin-top: -6px;
|
||||
}
|
||||
|
||||
/*hide the outline behind the border*/
|
||||
.cr-slider:-moz-focusring {
|
||||
outline: 1px solid white;
|
||||
outline-offset: -1px;
|
||||
}
|
||||
|
||||
.cr-slider::-ms-track {
|
||||
width: 100%;
|
||||
height: 5px;
|
||||
background: transparent;
|
||||
/*remove bg colour from the track, we'll use ms-fill-lower and ms-fill-upper instead */
|
||||
border-color: transparent;/*leave room for the larger thumb to overflow with a transparent border */
|
||||
border-width: 6px 0;
|
||||
color: transparent;/*remove default tick marks*/
|
||||
}
|
||||
.cr-slider::-ms-fill-lower {
|
||||
background: rgba(0, 0, 0, 0.5);
|
||||
border-radius: 10px;
|
||||
}
|
||||
.cr-slider::-ms-fill-upper {
|
||||
background: rgba(0, 0, 0, 0.5);
|
||||
border-radius: 10px;
|
||||
}
|
||||
.cr-slider::-ms-thumb {
|
||||
border: none;
|
||||
height: 16px;
|
||||
width: 16px;
|
||||
border-radius: 50%;
|
||||
background: #ddd;
|
||||
margin-top:1px;
|
||||
}
|
||||
.cr-slider:focus::-ms-fill-lower {
|
||||
background: rgba(0, 0, 0, 0.5);
|
||||
}
|
||||
.cr-slider:focus::-ms-fill-upper {
|
||||
background: rgba(0, 0, 0, 0.5);
|
||||
}
|
||||
/*******************************************/
|
||||
|
||||
/***********************************/
|
||||
/* Rotation Tools */
|
||||
/***********************************/
|
||||
.cr-rotate-controls {
|
||||
position: absolute;
|
||||
bottom: 5px;
|
||||
left: 5px;
|
||||
z-index: 1;
|
||||
}
|
||||
.cr-rotate-controls button {
|
||||
border: 0;
|
||||
background: none;
|
||||
}
|
||||
.cr-rotate-controls i:before {
|
||||
display: inline-block;
|
||||
font-style: normal;
|
||||
font-weight: 900;
|
||||
font-size: 22px;
|
||||
}
|
||||
.cr-rotate-l i:before {
|
||||
content: '↺';
|
||||
}
|
||||
.cr-rotate-r i:before {
|
||||
content: '↻';
|
||||
}
|
||||
22650
public/assets/css/libs/emojione/extras/css/emojione-awesome.css
Normal file
19
public/assets/css/libs/emojione/extras/css/emojione.css
Normal file
@@ -0,0 +1,19 @@
|
||||
.emojione {
|
||||
/* Emoji Sizing */
|
||||
font-size: inherit;
|
||||
height: 3ex;
|
||||
width: 3.1ex;
|
||||
min-height: 20px;
|
||||
min-width: 20px;
|
||||
|
||||
/* Inline alignment adjust the margins */
|
||||
display: inline-block;
|
||||
margin: -.2ex .15em .2ex;
|
||||
line-height: normal;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
img.emojione {
|
||||
/* prevent img stretch */
|
||||
width: auto;
|
||||
}
|
||||
1
public/assets/css/libs/emojione/extras/css/emojione.min.css
vendored
Normal file
@@ -0,0 +1 @@
|
||||
.emojione{font-size:inherit;height:3ex;width:3.1ex;min-height:20px;min-width:20px;display:inline-block;margin:-.2ex .15em .2ex;line-height:normal;vertical-align:middle}img.emojione{width:auto}
|
||||
165
public/assets/css/libs/fontawesome-free/LICENSE.txt
Normal file
@@ -0,0 +1,165 @@
|
||||
Fonticons, Inc. (https://fontawesome.com)
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
Font Awesome Free License
|
||||
|
||||
Font Awesome Free is free, open source, and GPL friendly. You can use it for
|
||||
commercial projects, open source projects, or really almost whatever you want.
|
||||
Full Font Awesome Free license: https://fontawesome.com/license/free.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
# Icons: CC BY 4.0 License (https://creativecommons.org/licenses/by/4.0/)
|
||||
|
||||
The Font Awesome Free download is licensed under a Creative Commons
|
||||
Attribution 4.0 International License and applies to all icons packaged
|
||||
as SVG and JS file types.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
# Fonts: SIL OFL 1.1 License
|
||||
|
||||
In the Font Awesome Free download, the SIL OFL license applies to all icons
|
||||
packaged as web and desktop font files.
|
||||
|
||||
Copyright (c) 2022 Fonticons, Inc. (https://fontawesome.com)
|
||||
with Reserved Font Name: "Font Awesome".
|
||||
|
||||
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
||||
This license is copied below, and is also available with a FAQ at:
|
||||
http://scripts.sil.org/OFL
|
||||
|
||||
SIL OPEN FONT LICENSE
|
||||
Version 1.1 - 26 February 2007
|
||||
|
||||
PREAMBLE
|
||||
The goals of the Open Font License (OFL) are to stimulate worldwide
|
||||
development of collaborative font projects, to support the font creation
|
||||
efforts of academic and linguistic communities, and to provide a free and
|
||||
open framework in which fonts may be shared and improved in partnership
|
||||
with others.
|
||||
|
||||
The OFL allows the licensed fonts to be used, studied, modified and
|
||||
redistributed freely as long as they are not sold by themselves. The
|
||||
fonts, including any derivative works, can be bundled, embedded,
|
||||
redistributed and/or sold with any software provided that any reserved
|
||||
names are not used by derivative works. The fonts and derivatives,
|
||||
however, cannot be released under any other type of license. The
|
||||
requirement for fonts to remain under this license does not apply
|
||||
to any document created using the fonts or their derivatives.
|
||||
|
||||
DEFINITIONS
|
||||
"Font Software" refers to the set of files released by the Copyright
|
||||
Holder(s) under this license and clearly marked as such. This may
|
||||
include source files, build scripts and documentation.
|
||||
|
||||
"Reserved Font Name" refers to any names specified as such after the
|
||||
copyright statement(s).
|
||||
|
||||
"Original Version" refers to the collection of Font Software components as
|
||||
distributed by the Copyright Holder(s).
|
||||
|
||||
"Modified Version" refers to any derivative made by adding to, deleting,
|
||||
or substituting — in part or in whole — any of the components of the
|
||||
Original Version, by changing formats or by porting the Font Software to a
|
||||
new environment.
|
||||
|
||||
"Author" refers to any designer, engineer, programmer, technical
|
||||
writer or other person who contributed to the Font Software.
|
||||
|
||||
PERMISSION & CONDITIONS
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
||||
redistribute, and sell modified and unmodified copies of the Font
|
||||
Software, subject to the following conditions:
|
||||
|
||||
1) Neither the Font Software nor any of its individual components,
|
||||
in Original or Modified Versions, may be sold by itself.
|
||||
|
||||
2) Original or Modified Versions of the Font Software may be bundled,
|
||||
redistributed and/or sold with any software, provided that each copy
|
||||
contains the above copyright notice and this license. These can be
|
||||
included either as stand-alone text files, human-readable headers or
|
||||
in the appropriate machine-readable metadata fields within text or
|
||||
binary files as long as those fields can be easily viewed by the user.
|
||||
|
||||
3) No Modified Version of the Font Software may use the Reserved Font
|
||||
Name(s) unless explicit written permission is granted by the corresponding
|
||||
Copyright Holder. This restriction only applies to the primary font name as
|
||||
presented to the users.
|
||||
|
||||
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
||||
Software shall not be used to promote, endorse or advertise any
|
||||
Modified Version, except to acknowledge the contribution(s) of the
|
||||
Copyright Holder(s) and the Author(s) or with their explicit written
|
||||
permission.
|
||||
|
||||
5) The Font Software, modified or unmodified, in part or in whole,
|
||||
must be distributed entirely under this license, and must not be
|
||||
distributed under any other license. The requirement for fonts to
|
||||
remain under this license does not apply to any document created
|
||||
using the Font Software.
|
||||
|
||||
TERMINATION
|
||||
This license becomes null and void if any of the above conditions are
|
||||
not met.
|
||||
|
||||
DISCLAIMER
|
||||
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
||||
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
||||
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
||||
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
||||
OTHER DEALINGS IN THE FONT SOFTWARE.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
# Code: MIT License (https://opensource.org/licenses/MIT)
|
||||
|
||||
In the Font Awesome Free download, the MIT license applies to all non-font and
|
||||
non-icon files.
|
||||
|
||||
Copyright 2022 Fonticons, Inc.
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
this software and associated documentation files (the "Software"), to deal in the
|
||||
Software without restriction, including without limitation the rights to use, copy,
|
||||
modify, merge, publish, distribute, sublicense, and/or sell copies of the Software,
|
||||
and to permit persons to whom the Software is furnished to do so, subject to the
|
||||
following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
||||
INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
|
||||
PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
# Attribution
|
||||
|
||||
Attribution is required by MIT, SIL OFL, and CC BY licenses. Downloaded Font
|
||||
Awesome Free files already contain embedded comments with sufficient
|
||||
attribution, so you shouldn't need to do anything additional when using these
|
||||
files normally.
|
||||
|
||||
We've kept attribution comments terse, so we ask that you do not actively work
|
||||
to remove them from files, especially code. They're a great way for folks to
|
||||
learn about Font Awesome.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
# Brand Icons
|
||||
|
||||
All brand icons are trademarks of their respective owners. The use of these
|
||||
trademarks does not indicate endorsement of the trademark holder by Font
|
||||
Awesome, nor vice versa. **Please do not use brand logos for any purpose except
|
||||
to represent the company, product, or service to which they refer.**
|
||||
4
public/assets/css/libs/fontawesome-free/attribution.js
Normal file
@@ -0,0 +1,4 @@
|
||||
console.log(`Font Awesome Free 6.2.0 by @fontawesome - https://fontawesome.com
|
||||
License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
|
||||
Copyright 2022 Fonticons, Inc.
|
||||
`)
|
||||
7937
public/assets/css/libs/fontawesome-free/css/all.css
Normal file
6
public/assets/css/libs/fontawesome-free/css/all.min.css
vendored
Normal file
1516
public/assets/css/libs/fontawesome-free/css/brands.css
Normal file
6
public/assets/css/libs/fontawesome-free/css/brands.min.css
vendored
Normal file
6360
public/assets/css/libs/fontawesome-free/css/fontawesome.css
vendored
Normal file
6
public/assets/css/libs/fontawesome-free/css/fontawesome.min.css
vendored
Normal file
19
public/assets/css/libs/fontawesome-free/css/regular.css
Normal file
@@ -0,0 +1,19 @@
|
||||
/*!
|
||||
* Font Awesome Free 6.2.0 by @fontawesome - https://fontawesome.com
|
||||
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
|
||||
* Copyright 2022 Fonticons, Inc.
|
||||
*/
|
||||
:root, :host {
|
||||
--fa-style-family-classic: 'Font Awesome 6 Free';
|
||||
--fa-font-regular: normal 400 1em/1 'Font Awesome 6 Free'; }
|
||||
|
||||
@font-face {
|
||||
font-family: 'Font Awesome 6 Free';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
font-display: block;
|
||||
src: url("../webfonts/fa-regular-400.woff2") format("woff2"), url("../webfonts/fa-regular-400.ttf") format("truetype"); }
|
||||
|
||||
.far,
|
||||
.fa-regular {
|
||||
font-weight: 400; }
|
||||
6
public/assets/css/libs/fontawesome-free/css/regular.min.css
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
/*!
|
||||
* Font Awesome Free 6.2.0 by @fontawesome - https://fontawesome.com
|
||||
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
|
||||
* Copyright 2022 Fonticons, Inc.
|
||||
*/
|
||||
:host,:root{--fa-style-family-classic:"Font Awesome 6 Free";--fa-font-regular:normal 400 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:400;font-display:block;src:url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.ttf) format("truetype")}.fa-regular,.far{font-weight:400}
|
||||
19
public/assets/css/libs/fontawesome-free/css/solid.css
Normal file
@@ -0,0 +1,19 @@
|
||||
/*!
|
||||
* Font Awesome Free 6.2.0 by @fontawesome - https://fontawesome.com
|
||||
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
|
||||
* Copyright 2022 Fonticons, Inc.
|
||||
*/
|
||||
:root, :host {
|
||||
--fa-style-family-classic: 'Font Awesome 6 Free';
|
||||
--fa-font-solid: normal 900 1em/1 'Font Awesome 6 Free'; }
|
||||
|
||||
@font-face {
|
||||
font-family: 'Font Awesome 6 Free';
|
||||
font-style: normal;
|
||||
font-weight: 900;
|
||||
font-display: block;
|
||||
src: url("../webfonts/fa-solid-900.woff2") format("woff2"), url("../webfonts/fa-solid-900.ttf") format("truetype"); }
|
||||
|
||||
.fas,
|
||||
.fa-solid {
|
||||
font-weight: 900; }
|
||||
6
public/assets/css/libs/fontawesome-free/css/solid.min.css
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
/*!
|
||||
* Font Awesome Free 6.2.0 by @fontawesome - https://fontawesome.com
|
||||
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
|
||||
* Copyright 2022 Fonticons, Inc.
|
||||
*/
|
||||
:host,:root{--fa-style-family-classic:"Font Awesome 6 Free";--fa-font-solid:normal 900 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:900;font-display:block;src:url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.ttf) format("truetype")}.fa-solid,.fas{font-weight:900}
|
||||
635
public/assets/css/libs/fontawesome-free/css/svg-with-js.css
Normal file
@@ -0,0 +1,635 @@
|
||||
/*!
|
||||
* Font Awesome Free 6.2.0 by @fontawesome - https://fontawesome.com
|
||||
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
|
||||
* Copyright 2022 Fonticons, Inc.
|
||||
*/
|
||||
:root, :host {
|
||||
--fa-font-solid: normal 900 1em/1 'Font Awesome 6 Solid';
|
||||
--fa-font-regular: normal 400 1em/1 'Font Awesome 6 Regular';
|
||||
--fa-font-light: normal 300 1em/1 'Font Awesome 6 Light';
|
||||
--fa-font-thin: normal 100 1em/1 'Font Awesome 6 Thin';
|
||||
--fa-font-duotone: normal 900 1em/1 'Font Awesome 6 Duotone';
|
||||
--fa-font-sharp-solid: normal 900 1em/1 'Font Awesome 6 Sharp';
|
||||
--fa-font-brands: normal 400 1em/1 'Font Awesome 6 Brands'; }
|
||||
|
||||
svg:not(:root).svg-inline--fa, svg:not(:host).svg-inline--fa {
|
||||
overflow: visible;
|
||||
box-sizing: content-box; }
|
||||
|
||||
.svg-inline--fa {
|
||||
display: var(--fa-display, inline-block);
|
||||
height: 1em;
|
||||
overflow: visible;
|
||||
vertical-align: -.125em; }
|
||||
.svg-inline--fa.fa-2xs {
|
||||
vertical-align: 0.1em; }
|
||||
.svg-inline--fa.fa-xs {
|
||||
vertical-align: 0em; }
|
||||
.svg-inline--fa.fa-sm {
|
||||
vertical-align: -0.07143em; }
|
||||
.svg-inline--fa.fa-lg {
|
||||
vertical-align: -0.2em; }
|
||||
.svg-inline--fa.fa-xl {
|
||||
vertical-align: -0.25em; }
|
||||
.svg-inline--fa.fa-2xl {
|
||||
vertical-align: -0.3125em; }
|
||||
.svg-inline--fa.fa-pull-left {
|
||||
margin-right: var(--fa-pull-margin, 0.3em);
|
||||
width: auto; }
|
||||
.svg-inline--fa.fa-pull-right {
|
||||
margin-left: var(--fa-pull-margin, 0.3em);
|
||||
width: auto; }
|
||||
.svg-inline--fa.fa-li {
|
||||
width: var(--fa-li-width, 2em);
|
||||
top: 0.25em; }
|
||||
.svg-inline--fa.fa-fw {
|
||||
width: var(--fa-fw-width, 1.25em); }
|
||||
|
||||
.fa-layers svg.svg-inline--fa {
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
margin: auto;
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 0; }
|
||||
|
||||
.fa-layers-text, .fa-layers-counter {
|
||||
display: inline-block;
|
||||
position: absolute;
|
||||
text-align: center; }
|
||||
|
||||
.fa-layers {
|
||||
display: inline-block;
|
||||
height: 1em;
|
||||
position: relative;
|
||||
text-align: center;
|
||||
vertical-align: -.125em;
|
||||
width: 1em; }
|
||||
.fa-layers svg.svg-inline--fa {
|
||||
-webkit-transform-origin: center center;
|
||||
transform-origin: center center; }
|
||||
|
||||
.fa-layers-text {
|
||||
left: 50%;
|
||||
top: 50%;
|
||||
-webkit-transform: translate(-50%, -50%);
|
||||
transform: translate(-50%, -50%);
|
||||
-webkit-transform-origin: center center;
|
||||
transform-origin: center center; }
|
||||
|
||||
.fa-layers-counter {
|
||||
background-color: var(--fa-counter-background-color, #ff253a);
|
||||
border-radius: var(--fa-counter-border-radius, 1em);
|
||||
box-sizing: border-box;
|
||||
color: var(--fa-inverse, #fff);
|
||||
line-height: var(--fa-counter-line-height, 1);
|
||||
max-width: var(--fa-counter-max-width, 5em);
|
||||
min-width: var(--fa-counter-min-width, 1.5em);
|
||||
overflow: hidden;
|
||||
padding: var(--fa-counter-padding, 0.25em 0.5em);
|
||||
right: var(--fa-right, 0);
|
||||
text-overflow: ellipsis;
|
||||
top: var(--fa-top, 0);
|
||||
-webkit-transform: scale(var(--fa-counter-scale, 0.25));
|
||||
transform: scale(var(--fa-counter-scale, 0.25));
|
||||
-webkit-transform-origin: top right;
|
||||
transform-origin: top right; }
|
||||
|
||||
.fa-layers-bottom-right {
|
||||
bottom: var(--fa-bottom, 0);
|
||||
right: var(--fa-right, 0);
|
||||
top: auto;
|
||||
-webkit-transform: scale(var(--fa-layers-scale, 0.25));
|
||||
transform: scale(var(--fa-layers-scale, 0.25));
|
||||
-webkit-transform-origin: bottom right;
|
||||
transform-origin: bottom right; }
|
||||
|
||||
.fa-layers-bottom-left {
|
||||
bottom: var(--fa-bottom, 0);
|
||||
left: var(--fa-left, 0);
|
||||
right: auto;
|
||||
top: auto;
|
||||
-webkit-transform: scale(var(--fa-layers-scale, 0.25));
|
||||
transform: scale(var(--fa-layers-scale, 0.25));
|
||||
-webkit-transform-origin: bottom left;
|
||||
transform-origin: bottom left; }
|
||||
|
||||
.fa-layers-top-right {
|
||||
top: var(--fa-top, 0);
|
||||
right: var(--fa-right, 0);
|
||||
-webkit-transform: scale(var(--fa-layers-scale, 0.25));
|
||||
transform: scale(var(--fa-layers-scale, 0.25));
|
||||
-webkit-transform-origin: top right;
|
||||
transform-origin: top right; }
|
||||
|
||||
.fa-layers-top-left {
|
||||
left: var(--fa-left, 0);
|
||||
right: auto;
|
||||
top: var(--fa-top, 0);
|
||||
-webkit-transform: scale(var(--fa-layers-scale, 0.25));
|
||||
transform: scale(var(--fa-layers-scale, 0.25));
|
||||
-webkit-transform-origin: top left;
|
||||
transform-origin: top left; }
|
||||
|
||||
.fa-1x {
|
||||
font-size: 1em; }
|
||||
|
||||
.fa-2x {
|
||||
font-size: 2em; }
|
||||
|
||||
.fa-3x {
|
||||
font-size: 3em; }
|
||||
|
||||
.fa-4x {
|
||||
font-size: 4em; }
|
||||
|
||||
.fa-5x {
|
||||
font-size: 5em; }
|
||||
|
||||
.fa-6x {
|
||||
font-size: 6em; }
|
||||
|
||||
.fa-7x {
|
||||
font-size: 7em; }
|
||||
|
||||
.fa-8x {
|
||||
font-size: 8em; }
|
||||
|
||||
.fa-9x {
|
||||
font-size: 9em; }
|
||||
|
||||
.fa-10x {
|
||||
font-size: 10em; }
|
||||
|
||||
.fa-2xs {
|
||||
font-size: 0.625em;
|
||||
line-height: 0.1em;
|
||||
vertical-align: 0.225em; }
|
||||
|
||||
.fa-xs {
|
||||
font-size: 0.75em;
|
||||
line-height: 0.08333em;
|
||||
vertical-align: 0.125em; }
|
||||
|
||||
.fa-sm {
|
||||
font-size: 0.875em;
|
||||
line-height: 0.07143em;
|
||||
vertical-align: 0.05357em; }
|
||||
|
||||
.fa-lg {
|
||||
font-size: 1.25em;
|
||||
line-height: 0.05em;
|
||||
vertical-align: -0.075em; }
|
||||
|
||||
.fa-xl {
|
||||
font-size: 1.5em;
|
||||
line-height: 0.04167em;
|
||||
vertical-align: -0.125em; }
|
||||
|
||||
.fa-2xl {
|
||||
font-size: 2em;
|
||||
line-height: 0.03125em;
|
||||
vertical-align: -0.1875em; }
|
||||
|
||||
.fa-fw {
|
||||
text-align: center;
|
||||
width: 1.25em; }
|
||||
|
||||
.fa-ul {
|
||||
list-style-type: none;
|
||||
margin-left: var(--fa-li-margin, 2.5em);
|
||||
padding-left: 0; }
|
||||
.fa-ul > li {
|
||||
position: relative; }
|
||||
|
||||
.fa-li {
|
||||
left: calc(var(--fa-li-width, 2em) * -1);
|
||||
position: absolute;
|
||||
text-align: center;
|
||||
width: var(--fa-li-width, 2em);
|
||||
line-height: inherit; }
|
||||
|
||||
.fa-border {
|
||||
border-color: var(--fa-border-color, #eee);
|
||||
border-radius: var(--fa-border-radius, 0.1em);
|
||||
border-style: var(--fa-border-style, solid);
|
||||
border-width: var(--fa-border-width, 0.08em);
|
||||
padding: var(--fa-border-padding, 0.2em 0.25em 0.15em); }
|
||||
|
||||
.fa-pull-left {
|
||||
float: left;
|
||||
margin-right: var(--fa-pull-margin, 0.3em); }
|
||||
|
||||
.fa-pull-right {
|
||||
float: right;
|
||||
margin-left: var(--fa-pull-margin, 0.3em); }
|
||||
|
||||
.fa-beat {
|
||||
-webkit-animation-name: fa-beat;
|
||||
animation-name: fa-beat;
|
||||
-webkit-animation-delay: var(--fa-animation-delay, 0s);
|
||||
animation-delay: var(--fa-animation-delay, 0s);
|
||||
-webkit-animation-direction: var(--fa-animation-direction, normal);
|
||||
animation-direction: var(--fa-animation-direction, normal);
|
||||
-webkit-animation-duration: var(--fa-animation-duration, 1s);
|
||||
animation-duration: var(--fa-animation-duration, 1s);
|
||||
-webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);
|
||||
animation-iteration-count: var(--fa-animation-iteration-count, infinite);
|
||||
-webkit-animation-timing-function: var(--fa-animation-timing, ease-in-out);
|
||||
animation-timing-function: var(--fa-animation-timing, ease-in-out); }
|
||||
|
||||
.fa-bounce {
|
||||
-webkit-animation-name: fa-bounce;
|
||||
animation-name: fa-bounce;
|
||||
-webkit-animation-delay: var(--fa-animation-delay, 0s);
|
||||
animation-delay: var(--fa-animation-delay, 0s);
|
||||
-webkit-animation-direction: var(--fa-animation-direction, normal);
|
||||
animation-direction: var(--fa-animation-direction, normal);
|
||||
-webkit-animation-duration: var(--fa-animation-duration, 1s);
|
||||
animation-duration: var(--fa-animation-duration, 1s);
|
||||
-webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);
|
||||
animation-iteration-count: var(--fa-animation-iteration-count, infinite);
|
||||
-webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1));
|
||||
animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1)); }
|
||||
|
||||
.fa-fade {
|
||||
-webkit-animation-name: fa-fade;
|
||||
animation-name: fa-fade;
|
||||
-webkit-animation-delay: var(--fa-animation-delay, 0s);
|
||||
animation-delay: var(--fa-animation-delay, 0s);
|
||||
-webkit-animation-direction: var(--fa-animation-direction, normal);
|
||||
animation-direction: var(--fa-animation-direction, normal);
|
||||
-webkit-animation-duration: var(--fa-animation-duration, 1s);
|
||||
animation-duration: var(--fa-animation-duration, 1s);
|
||||
-webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);
|
||||
animation-iteration-count: var(--fa-animation-iteration-count, infinite);
|
||||
-webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));
|
||||
animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); }
|
||||
|
||||
.fa-beat-fade {
|
||||
-webkit-animation-name: fa-beat-fade;
|
||||
animation-name: fa-beat-fade;
|
||||
-webkit-animation-delay: var(--fa-animation-delay, 0s);
|
||||
animation-delay: var(--fa-animation-delay, 0s);
|
||||
-webkit-animation-direction: var(--fa-animation-direction, normal);
|
||||
animation-direction: var(--fa-animation-direction, normal);
|
||||
-webkit-animation-duration: var(--fa-animation-duration, 1s);
|
||||
animation-duration: var(--fa-animation-duration, 1s);
|
||||
-webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);
|
||||
animation-iteration-count: var(--fa-animation-iteration-count, infinite);
|
||||
-webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));
|
||||
animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); }
|
||||
|
||||
.fa-flip {
|
||||
-webkit-animation-name: fa-flip;
|
||||
animation-name: fa-flip;
|
||||
-webkit-animation-delay: var(--fa-animation-delay, 0s);
|
||||
animation-delay: var(--fa-animation-delay, 0s);
|
||||
-webkit-animation-direction: var(--fa-animation-direction, normal);
|
||||
animation-direction: var(--fa-animation-direction, normal);
|
||||
-webkit-animation-duration: var(--fa-animation-duration, 1s);
|
||||
animation-duration: var(--fa-animation-duration, 1s);
|
||||
-webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);
|
||||
animation-iteration-count: var(--fa-animation-iteration-count, infinite);
|
||||
-webkit-animation-timing-function: var(--fa-animation-timing, ease-in-out);
|
||||
animation-timing-function: var(--fa-animation-timing, ease-in-out); }
|
||||
|
||||
.fa-shake {
|
||||
-webkit-animation-name: fa-shake;
|
||||
animation-name: fa-shake;
|
||||
-webkit-animation-delay: var(--fa-animation-delay, 0s);
|
||||
animation-delay: var(--fa-animation-delay, 0s);
|
||||
-webkit-animation-direction: var(--fa-animation-direction, normal);
|
||||
animation-direction: var(--fa-animation-direction, normal);
|
||||
-webkit-animation-duration: var(--fa-animation-duration, 1s);
|
||||
animation-duration: var(--fa-animation-duration, 1s);
|
||||
-webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);
|
||||
animation-iteration-count: var(--fa-animation-iteration-count, infinite);
|
||||
-webkit-animation-timing-function: var(--fa-animation-timing, linear);
|
||||
animation-timing-function: var(--fa-animation-timing, linear); }
|
||||
|
||||
.fa-spin {
|
||||
-webkit-animation-name: fa-spin;
|
||||
animation-name: fa-spin;
|
||||
-webkit-animation-delay: var(--fa-animation-delay, 0s);
|
||||
animation-delay: var(--fa-animation-delay, 0s);
|
||||
-webkit-animation-direction: var(--fa-animation-direction, normal);
|
||||
animation-direction: var(--fa-animation-direction, normal);
|
||||
-webkit-animation-duration: var(--fa-animation-duration, 2s);
|
||||
animation-duration: var(--fa-animation-duration, 2s);
|
||||
-webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);
|
||||
animation-iteration-count: var(--fa-animation-iteration-count, infinite);
|
||||
-webkit-animation-timing-function: var(--fa-animation-timing, linear);
|
||||
animation-timing-function: var(--fa-animation-timing, linear); }
|
||||
|
||||
.fa-spin-reverse {
|
||||
--fa-animation-direction: reverse; }
|
||||
|
||||
.fa-pulse,
|
||||
.fa-spin-pulse {
|
||||
-webkit-animation-name: fa-spin;
|
||||
animation-name: fa-spin;
|
||||
-webkit-animation-direction: var(--fa-animation-direction, normal);
|
||||
animation-direction: var(--fa-animation-direction, normal);
|
||||
-webkit-animation-duration: var(--fa-animation-duration, 1s);
|
||||
animation-duration: var(--fa-animation-duration, 1s);
|
||||
-webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);
|
||||
animation-iteration-count: var(--fa-animation-iteration-count, infinite);
|
||||
-webkit-animation-timing-function: var(--fa-animation-timing, steps(8));
|
||||
animation-timing-function: var(--fa-animation-timing, steps(8)); }
|
||||
|
||||
@media (prefers-reduced-motion: reduce) {
|
||||
.fa-beat,
|
||||
.fa-bounce,
|
||||
.fa-fade,
|
||||
.fa-beat-fade,
|
||||
.fa-flip,
|
||||
.fa-pulse,
|
||||
.fa-shake,
|
||||
.fa-spin,
|
||||
.fa-spin-pulse {
|
||||
-webkit-animation-delay: -1ms;
|
||||
animation-delay: -1ms;
|
||||
-webkit-animation-duration: 1ms;
|
||||
animation-duration: 1ms;
|
||||
-webkit-animation-iteration-count: 1;
|
||||
animation-iteration-count: 1;
|
||||
transition-delay: 0s;
|
||||
transition-duration: 0s; } }
|
||||
|
||||
@-webkit-keyframes fa-beat {
|
||||
0%, 90% {
|
||||
-webkit-transform: scale(1);
|
||||
transform: scale(1); }
|
||||
45% {
|
||||
-webkit-transform: scale(var(--fa-beat-scale, 1.25));
|
||||
transform: scale(var(--fa-beat-scale, 1.25)); } }
|
||||
|
||||
@keyframes fa-beat {
|
||||
0%, 90% {
|
||||
-webkit-transform: scale(1);
|
||||
transform: scale(1); }
|
||||
45% {
|
||||
-webkit-transform: scale(var(--fa-beat-scale, 1.25));
|
||||
transform: scale(var(--fa-beat-scale, 1.25)); } }
|
||||
|
||||
@-webkit-keyframes fa-bounce {
|
||||
0% {
|
||||
-webkit-transform: scale(1, 1) translateY(0);
|
||||
transform: scale(1, 1) translateY(0); }
|
||||
10% {
|
||||
-webkit-transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);
|
||||
transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0); }
|
||||
30% {
|
||||
-webkit-transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));
|
||||
transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em)); }
|
||||
50% {
|
||||
-webkit-transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);
|
||||
transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0); }
|
||||
57% {
|
||||
-webkit-transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));
|
||||
transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em)); }
|
||||
64% {
|
||||
-webkit-transform: scale(1, 1) translateY(0);
|
||||
transform: scale(1, 1) translateY(0); }
|
||||
100% {
|
||||
-webkit-transform: scale(1, 1) translateY(0);
|
||||
transform: scale(1, 1) translateY(0); } }
|
||||
|
||||
@keyframes fa-bounce {
|
||||
0% {
|
||||
-webkit-transform: scale(1, 1) translateY(0);
|
||||
transform: scale(1, 1) translateY(0); }
|
||||
10% {
|
||||
-webkit-transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);
|
||||
transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0); }
|
||||
30% {
|
||||
-webkit-transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));
|
||||
transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em)); }
|
||||
50% {
|
||||
-webkit-transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);
|
||||
transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0); }
|
||||
57% {
|
||||
-webkit-transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));
|
||||
transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em)); }
|
||||
64% {
|
||||
-webkit-transform: scale(1, 1) translateY(0);
|
||||
transform: scale(1, 1) translateY(0); }
|
||||
100% {
|
||||
-webkit-transform: scale(1, 1) translateY(0);
|
||||
transform: scale(1, 1) translateY(0); } }
|
||||
|
||||
@-webkit-keyframes fa-fade {
|
||||
50% {
|
||||
opacity: var(--fa-fade-opacity, 0.4); } }
|
||||
|
||||
@keyframes fa-fade {
|
||||
50% {
|
||||
opacity: var(--fa-fade-opacity, 0.4); } }
|
||||
|
||||
@-webkit-keyframes fa-beat-fade {
|
||||
0%, 100% {
|
||||
opacity: var(--fa-beat-fade-opacity, 0.4);
|
||||
-webkit-transform: scale(1);
|
||||
transform: scale(1); }
|
||||
50% {
|
||||
opacity: 1;
|
||||
-webkit-transform: scale(var(--fa-beat-fade-scale, 1.125));
|
||||
transform: scale(var(--fa-beat-fade-scale, 1.125)); } }
|
||||
|
||||
@keyframes fa-beat-fade {
|
||||
0%, 100% {
|
||||
opacity: var(--fa-beat-fade-opacity, 0.4);
|
||||
-webkit-transform: scale(1);
|
||||
transform: scale(1); }
|
||||
50% {
|
||||
opacity: 1;
|
||||
-webkit-transform: scale(var(--fa-beat-fade-scale, 1.125));
|
||||
transform: scale(var(--fa-beat-fade-scale, 1.125)); } }
|
||||
|
||||
@-webkit-keyframes fa-flip {
|
||||
50% {
|
||||
-webkit-transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));
|
||||
transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg)); } }
|
||||
|
||||
@keyframes fa-flip {
|
||||
50% {
|
||||
-webkit-transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));
|
||||
transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg)); } }
|
||||
|
||||
@-webkit-keyframes fa-shake {
|
||||
0% {
|
||||
-webkit-transform: rotate(-15deg);
|
||||
transform: rotate(-15deg); }
|
||||
4% {
|
||||
-webkit-transform: rotate(15deg);
|
||||
transform: rotate(15deg); }
|
||||
8%, 24% {
|
||||
-webkit-transform: rotate(-18deg);
|
||||
transform: rotate(-18deg); }
|
||||
12%, 28% {
|
||||
-webkit-transform: rotate(18deg);
|
||||
transform: rotate(18deg); }
|
||||
16% {
|
||||
-webkit-transform: rotate(-22deg);
|
||||
transform: rotate(-22deg); }
|
||||
20% {
|
||||
-webkit-transform: rotate(22deg);
|
||||
transform: rotate(22deg); }
|
||||
32% {
|
||||
-webkit-transform: rotate(-12deg);
|
||||
transform: rotate(-12deg); }
|
||||
36% {
|
||||
-webkit-transform: rotate(12deg);
|
||||
transform: rotate(12deg); }
|
||||
40%, 100% {
|
||||
-webkit-transform: rotate(0deg);
|
||||
transform: rotate(0deg); } }
|
||||
|
||||
@keyframes fa-shake {
|
||||
0% {
|
||||
-webkit-transform: rotate(-15deg);
|
||||
transform: rotate(-15deg); }
|
||||
4% {
|
||||
-webkit-transform: rotate(15deg);
|
||||
transform: rotate(15deg); }
|
||||
8%, 24% {
|
||||
-webkit-transform: rotate(-18deg);
|
||||
transform: rotate(-18deg); }
|
||||
12%, 28% {
|
||||
-webkit-transform: rotate(18deg);
|
||||
transform: rotate(18deg); }
|
||||
16% {
|
||||
-webkit-transform: rotate(-22deg);
|
||||
transform: rotate(-22deg); }
|
||||
20% {
|
||||
-webkit-transform: rotate(22deg);
|
||||
transform: rotate(22deg); }
|
||||
32% {
|
||||
-webkit-transform: rotate(-12deg);
|
||||
transform: rotate(-12deg); }
|
||||
36% {
|
||||
-webkit-transform: rotate(12deg);
|
||||
transform: rotate(12deg); }
|
||||
40%, 100% {
|
||||
-webkit-transform: rotate(0deg);
|
||||
transform: rotate(0deg); } }
|
||||
|
||||
@-webkit-keyframes fa-spin {
|
||||
0% {
|
||||
-webkit-transform: rotate(0deg);
|
||||
transform: rotate(0deg); }
|
||||
100% {
|
||||
-webkit-transform: rotate(360deg);
|
||||
transform: rotate(360deg); } }
|
||||
|
||||
@keyframes fa-spin {
|
||||
0% {
|
||||
-webkit-transform: rotate(0deg);
|
||||
transform: rotate(0deg); }
|
||||
100% {
|
||||
-webkit-transform: rotate(360deg);
|
||||
transform: rotate(360deg); } }
|
||||
|
||||
.fa-rotate-90 {
|
||||
-webkit-transform: rotate(90deg);
|
||||
transform: rotate(90deg); }
|
||||
|
||||
.fa-rotate-180 {
|
||||
-webkit-transform: rotate(180deg);
|
||||
transform: rotate(180deg); }
|
||||
|
||||
.fa-rotate-270 {
|
||||
-webkit-transform: rotate(270deg);
|
||||
transform: rotate(270deg); }
|
||||
|
||||
.fa-flip-horizontal {
|
||||
-webkit-transform: scale(-1, 1);
|
||||
transform: scale(-1, 1); }
|
||||
|
||||
.fa-flip-vertical {
|
||||
-webkit-transform: scale(1, -1);
|
||||
transform: scale(1, -1); }
|
||||
|
||||
.fa-flip-both,
|
||||
.fa-flip-horizontal.fa-flip-vertical {
|
||||
-webkit-transform: scale(-1, -1);
|
||||
transform: scale(-1, -1); }
|
||||
|
||||
.fa-rotate-by {
|
||||
-webkit-transform: rotate(var(--fa-rotate-angle, none));
|
||||
transform: rotate(var(--fa-rotate-angle, none)); }
|
||||
|
||||
.fa-stack {
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
height: 2em;
|
||||
position: relative;
|
||||
width: 2.5em; }
|
||||
|
||||
.fa-stack-1x,
|
||||
.fa-stack-2x {
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
margin: auto;
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 0;
|
||||
z-index: var(--fa-stack-z-index, auto); }
|
||||
|
||||
.svg-inline--fa.fa-stack-1x {
|
||||
height: 1em;
|
||||
width: 1.25em; }
|
||||
|
||||
.svg-inline--fa.fa-stack-2x {
|
||||
height: 2em;
|
||||
width: 2.5em; }
|
||||
|
||||
.fa-inverse {
|
||||
color: var(--fa-inverse, #fff); }
|
||||
|
||||
.sr-only,
|
||||
.fa-sr-only {
|
||||
position: absolute;
|
||||
width: 1px;
|
||||
height: 1px;
|
||||
padding: 0;
|
||||
margin: -1px;
|
||||
overflow: hidden;
|
||||
clip: rect(0, 0, 0, 0);
|
||||
white-space: nowrap;
|
||||
border-width: 0; }
|
||||
|
||||
.sr-only-focusable:not(:focus),
|
||||
.fa-sr-only-focusable:not(:focus) {
|
||||
position: absolute;
|
||||
width: 1px;
|
||||
height: 1px;
|
||||
padding: 0;
|
||||
margin: -1px;
|
||||
overflow: hidden;
|
||||
clip: rect(0, 0, 0, 0);
|
||||
white-space: nowrap;
|
||||
border-width: 0; }
|
||||
|
||||
.svg-inline--fa .fa-primary {
|
||||
fill: var(--fa-primary-color, currentColor);
|
||||
opacity: var(--fa-primary-opacity, 1); }
|
||||
|
||||
.svg-inline--fa .fa-secondary {
|
||||
fill: var(--fa-secondary-color, currentColor);
|
||||
opacity: var(--fa-secondary-opacity, 0.4); }
|
||||
|
||||
.svg-inline--fa.fa-swap-opacity .fa-primary {
|
||||
opacity: var(--fa-secondary-opacity, 0.4); }
|
||||
|
||||
.svg-inline--fa.fa-swap-opacity .fa-secondary {
|
||||
opacity: var(--fa-primary-opacity, 1); }
|
||||
|
||||
.svg-inline--fa mask .fa-primary,
|
||||
.svg-inline--fa mask .fa-secondary {
|
||||
fill: black; }
|
||||
|
||||
.fad.fa-inverse,
|
||||
.fa-duotone.fa-inverse {
|
||||
color: var(--fa-inverse, #fff); }
|
||||
6
public/assets/css/libs/fontawesome-free/css/svg-with-js.min.css
vendored
Normal file
26
public/assets/css/libs/fontawesome-free/css/v4-font-face.css
Normal file
@@ -0,0 +1,26 @@
|
||||
/*!
|
||||
* Font Awesome Free 6.2.0 by @fontawesome - https://fontawesome.com
|
||||
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
|
||||
* Copyright 2022 Fonticons, Inc.
|
||||
*/
|
||||
@font-face {
|
||||
font-family: 'FontAwesome';
|
||||
font-display: block;
|
||||
src: url("../webfonts/fa-solid-900.woff2") format("woff2"), url("../webfonts/fa-solid-900.ttf") format("truetype"); }
|
||||
|
||||
@font-face {
|
||||
font-family: 'FontAwesome';
|
||||
font-display: block;
|
||||
src: url("../webfonts/fa-brands-400.woff2") format("woff2"), url("../webfonts/fa-brands-400.ttf") format("truetype"); }
|
||||
|
||||
@font-face {
|
||||
font-family: 'FontAwesome';
|
||||
font-display: block;
|
||||
src: url("../webfonts/fa-regular-400.woff2") format("woff2"), url("../webfonts/fa-regular-400.ttf") format("truetype");
|
||||
unicode-range: U+F003,U+F006,U+F014,U+F016-F017,U+F01A-F01B,U+F01D,U+F022,U+F03E,U+F044,U+F046,U+F05C-F05D,U+F06E,U+F070,U+F087-F088,U+F08A,U+F094,U+F096-F097,U+F09D,U+F0A0,U+F0A2,U+F0A4-F0A7,U+F0C5,U+F0C7,U+F0E5-F0E6,U+F0EB,U+F0F6-F0F8,U+F10C,U+F114-F115,U+F118-F11A,U+F11C-F11D,U+F133,U+F147,U+F14E,U+F150-F152,U+F185-F186,U+F18E,U+F190-F192,U+F196,U+F1C1-F1C9,U+F1D9,U+F1DB,U+F1E3,U+F1EA,U+F1F7,U+F1F9,U+F20A,U+F247-F248,U+F24A,U+F24D,U+F255-F25B,U+F25D,U+F271-F274,U+F278,U+F27B,U+F28C,U+F28E,U+F29C,U+F2B5,U+F2B7,U+F2BA,U+F2BC,U+F2BE,U+F2C0-F2C1,U+F2C3,U+F2D0,U+F2D2,U+F2D4,U+F2DC; }
|
||||
|
||||
@font-face {
|
||||
font-family: 'FontAwesome';
|
||||
font-display: block;
|
||||
src: url("../webfonts/fa-v4compatibility.woff2") format("woff2"), url("../webfonts/fa-v4compatibility.ttf") format("truetype");
|
||||
unicode-range: U+F041,U+F047,U+F065-F066,U+F07D-F07E,U+F080,U+F08B,U+F08E,U+F090,U+F09A,U+F0AC,U+F0AE,U+F0B2,U+F0D0,U+F0D6,U+F0E4,U+F0EC,U+F10A-F10B,U+F123,U+F13E,U+F148-F149,U+F14C,U+F156,U+F15E,U+F160-F161,U+F163,U+F175-F178,U+F195,U+F1F8,U+F219,U+F27A; }
|
||||
6
public/assets/css/libs/fontawesome-free/css/v4-font-face.min.css
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
/*!
|
||||
* Font Awesome Free 6.2.0 by @fontawesome - https://fontawesome.com
|
||||
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
|
||||
* Copyright 2022 Fonticons, Inc.
|
||||
*/
|
||||
@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.ttf) format("truetype");unicode-range:u+f003,u+f006,u+f014,u+f016-f017,u+f01a-f01b,u+f01d,u+f022,u+f03e,u+f044,u+f046,u+f05c-f05d,u+f06e,u+f070,u+f087-f088,u+f08a,u+f094,u+f096-f097,u+f09d,u+f0a0,u+f0a2,u+f0a4-f0a7,u+f0c5,u+f0c7,u+f0e5-f0e6,u+f0eb,u+f0f6-f0f8,u+f10c,u+f114-f115,u+f118-f11a,u+f11c-f11d,u+f133,u+f147,u+f14e,u+f150-f152,u+f185-f186,u+f18e,u+f190-f192,u+f196,u+f1c1-f1c9,u+f1d9,u+f1db,u+f1e3,u+f1ea,u+f1f7,u+f1f9,u+f20a,u+f247-f248,u+f24a,u+f24d,u+f255-f25b,u+f25d,u+f271-f274,u+f278,u+f27b,u+f28c,u+f28e,u+f29c,u+f2b5,u+f2b7,u+f2ba,u+f2bc,u+f2be,u+f2c0-f2c1,u+f2c3,u+f2d0,u+f2d2,u+f2d4,u+f2dc}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-v4compatibility.woff2) format("woff2"),url(../webfonts/fa-v4compatibility.ttf) format("truetype");unicode-range:u+f041,u+f047,u+f065-f066,u+f07d-f07e,u+f080,u+f08b,u+f08e,u+f090,u+f09a,u+f0ac,u+f0ae,u+f0b2,u+f0d0,u+f0d6,u+f0e4,u+f0ec,u+f10a-f10b,u+f123,u+f13e,u+f148-f149,u+f14c,u+f156,u+f15e,u+f160-f161,u+f163,u+f175-f178,u+f195,u+f1f8,u+f219,u+f27a}
|
||||
2194
public/assets/css/libs/fontawesome-free/css/v4-shims.css
Normal file
6
public/assets/css/libs/fontawesome-free/css/v4-shims.min.css
vendored
Normal file
22
public/assets/css/libs/fontawesome-free/css/v5-font-face.css
Normal file
@@ -0,0 +1,22 @@
|
||||
/*!
|
||||
* Font Awesome Free 6.2.0 by @fontawesome - https://fontawesome.com
|
||||
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
|
||||
* Copyright 2022 Fonticons, Inc.
|
||||
*/
|
||||
@font-face {
|
||||
font-family: 'Font Awesome 5 Brands';
|
||||
font-display: block;
|
||||
font-weight: 400;
|
||||
src: url("../webfonts/fa-brands-400.woff2") format("woff2"), url("../webfonts/fa-brands-400.ttf") format("truetype"); }
|
||||
|
||||
@font-face {
|
||||
font-family: 'Font Awesome 5 Free';
|
||||
font-display: block;
|
||||
font-weight: 900;
|
||||
src: url("../webfonts/fa-solid-900.woff2") format("woff2"), url("../webfonts/fa-solid-900.ttf") format("truetype"); }
|
||||
|
||||
@font-face {
|
||||
font-family: 'Font Awesome 5 Free';
|
||||
font-display: block;
|
||||
font-weight: 400;
|
||||
src: url("../webfonts/fa-regular-400.woff2") format("woff2"), url("../webfonts/fa-regular-400.ttf") format("truetype"); }
|
||||
6
public/assets/css/libs/fontawesome-free/css/v5-font-face.min.css
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
/*!
|
||||
* Font Awesome Free 6.2.0 by @fontawesome - https://fontawesome.com
|
||||
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
|
||||
* Copyright 2022 Fonticons, Inc.
|
||||
*/
|
||||
@font-face{font-family:"Font Awesome 5 Brands";font-display:block;font-weight:400;src:url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.ttf) format("truetype")}@font-face{font-family:"Font Awesome 5 Free";font-display:block;font-weight:900;src:url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.ttf) format("truetype")}@font-face{font-family:"Font Awesome 5 Free";font-display:block;font-weight:400;src:url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.ttf) format("truetype")}
|
||||