448 lines
9.9 KiB
SCSS
448 lines
9.9 KiB
SCSS
.fclk-planner {
|
|
min-height: 100%;
|
|
background: var(--fclk-planner-page, #f3f4f6);
|
|
color: var(--fclk-planner-text, #1f2937);
|
|
display: flex;
|
|
flex-direction: column;
|
|
}
|
|
|
|
.fclk-planner__toolbar {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
gap: 16px;
|
|
padding: 16px 20px;
|
|
background: var(--fclk-planner-card, #ffffff);
|
|
border-bottom: 1px solid var(--fclk-planner-border, #d8dadd);
|
|
box-shadow: 0 1px 3px var(--fclk-planner-shadow, rgba(15, 23, 42, 0.08));
|
|
}
|
|
|
|
.fclk-planner__title {
|
|
margin: 0;
|
|
font-size: 20px;
|
|
font-weight: 650;
|
|
line-height: 1.2;
|
|
}
|
|
|
|
.fclk-planner__subtitle {
|
|
color: var(--fclk-planner-muted, #6b7280);
|
|
font-size: 13px;
|
|
margin-top: 3px;
|
|
}
|
|
|
|
.fclk-planner__actions {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: flex-end;
|
|
flex-wrap: wrap;
|
|
gap: 8px;
|
|
}
|
|
|
|
.fclk-planner__warning {
|
|
margin: 12px 16px 0;
|
|
padding: 10px 12px;
|
|
background: #fff7ed;
|
|
border: 1px solid #fed7aa;
|
|
border-radius: 6px;
|
|
color: #9a3412;
|
|
font-size: 13px;
|
|
}
|
|
|
|
.fclk-planner__loading {
|
|
display: flex;
|
|
flex: 1;
|
|
align-items: center;
|
|
justify-content: center;
|
|
gap: 12px;
|
|
min-height: 340px;
|
|
color: var(--fclk-planner-muted, #6b7280);
|
|
}
|
|
|
|
.fclk-planner__table-wrap {
|
|
flex: 1;
|
|
margin: 16px;
|
|
overflow: auto;
|
|
background: var(--fclk-planner-panel, #eef1f4);
|
|
border: 1px solid var(--fclk-planner-border, #d8dadd);
|
|
border-radius: 6px;
|
|
box-shadow: 0 6px 20px var(--fclk-planner-shadow, rgba(15, 23, 42, 0.08));
|
|
}
|
|
|
|
.fclk-planner__table {
|
|
--fclk-planner-shift-width: 135px;
|
|
--fclk-planner-hours-width: 55px;
|
|
--fclk-planner-days-width: 1330px;
|
|
width: 100%;
|
|
min-width: 1600px;
|
|
border-collapse: separate;
|
|
border-spacing: 0;
|
|
table-layout: fixed;
|
|
background: var(--fclk-planner-card, #ffffff);
|
|
font-size: 13px;
|
|
}
|
|
|
|
.fclk-planner__employee-col {
|
|
width: calc(100% - var(--fclk-planner-days-width));
|
|
}
|
|
|
|
.fclk-planner__shift-col {
|
|
width: var(--fclk-planner-shift-width);
|
|
}
|
|
|
|
.fclk-planner__hours-col {
|
|
width: var(--fclk-planner-hours-width);
|
|
}
|
|
|
|
.fclk-planner__table th,
|
|
.fclk-planner__table td {
|
|
border-right: 1px solid var(--fclk-planner-border-strong, #9ca3af);
|
|
border-bottom: 1px solid var(--fclk-planner-border-strong, #9ca3af);
|
|
}
|
|
|
|
.fclk-planner__employee-head,
|
|
.fclk-planner__day-head,
|
|
.fclk-planner__sub-head {
|
|
position: sticky;
|
|
top: 0;
|
|
z-index: 6;
|
|
color: var(--fclk-planner-text, #1f2937);
|
|
}
|
|
|
|
.fclk-planner__employee-head {
|
|
left: 0;
|
|
z-index: 8;
|
|
width: calc(100% - var(--fclk-planner-days-width));
|
|
background: var(--fclk-planner-day, #b7dff5);
|
|
text-align: left;
|
|
padding: 10px 12px;
|
|
border-left: 1px solid var(--fclk-planner-border-strong, #9ca3af);
|
|
}
|
|
|
|
.fclk-planner__day-head {
|
|
background: var(--fclk-planner-day, #b7dff5);
|
|
text-align: center;
|
|
padding: 6px 8px;
|
|
font-weight: 700;
|
|
}
|
|
|
|
.fclk-planner__sub-head {
|
|
top: 47px;
|
|
background: var(--fclk-planner-subhead, #d8e9bd);
|
|
text-align: left;
|
|
padding: 5px 8px;
|
|
font-weight: 650;
|
|
}
|
|
|
|
.fclk-planner__hours-head {
|
|
width: var(--fclk-planner-hours-width);
|
|
text-align: center;
|
|
padding-left: 2px;
|
|
padding-right: 2px;
|
|
}
|
|
|
|
.fclk-planner__weekday {
|
|
font-size: 14px;
|
|
line-height: 1.1;
|
|
}
|
|
|
|
.fclk-planner__date {
|
|
font-size: 12px;
|
|
font-weight: 500;
|
|
margin-top: 2px;
|
|
}
|
|
|
|
.fclk-planner__department-row td {
|
|
background: var(--fclk-planner-panel, #eef1f4);
|
|
padding: 0;
|
|
position: sticky;
|
|
left: 0;
|
|
z-index: 5;
|
|
}
|
|
|
|
.fclk-planner__department-toggle {
|
|
width: 100%;
|
|
min-height: 34px;
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 8px;
|
|
border: 0;
|
|
background: transparent;
|
|
color: var(--fclk-planner-text, #1f2937);
|
|
font-weight: 650;
|
|
padding: 7px 12px;
|
|
text-align: left;
|
|
}
|
|
|
|
.fclk-planner__department-count {
|
|
color: var(--fclk-planner-muted, #6b7280);
|
|
font-weight: 500;
|
|
font-size: 12px;
|
|
}
|
|
|
|
.fclk-planner__employee-row {
|
|
background: var(--fclk-planner-card, #ffffff);
|
|
}
|
|
|
|
.fclk-planner__employee-row:hover {
|
|
background: var(--fclk-planner-row-hover, #f9fafb);
|
|
}
|
|
|
|
.fclk-planner__employee-cell {
|
|
position: sticky;
|
|
left: 0;
|
|
z-index: 4;
|
|
width: calc(100% - var(--fclk-planner-days-width));
|
|
background: inherit;
|
|
padding: 8px 12px;
|
|
border-left: 1px solid var(--fclk-planner-border-strong, #9ca3af);
|
|
}
|
|
|
|
.fclk-planner__employee-name {
|
|
font-weight: 650;
|
|
line-height: 1.2;
|
|
}
|
|
|
|
.fclk-planner__employee-role {
|
|
margin-top: 2px;
|
|
color: var(--fclk-planner-muted, #6b7280);
|
|
font-size: 12px;
|
|
white-space: nowrap;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
}
|
|
|
|
.fclk-planner__shift-cell {
|
|
width: var(--fclk-planner-shift-width);
|
|
min-height: 42px;
|
|
padding: 4px;
|
|
vertical-align: top;
|
|
background: var(--fclk-planner-card, #ffffff);
|
|
}
|
|
|
|
.fclk-planner__shift-cell--fallback {
|
|
background: var(--fclk-planner-fallback, #fff8e5);
|
|
}
|
|
|
|
.fclk-planner__shift-cell--error {
|
|
background: #fef2f2;
|
|
}
|
|
|
|
.fclk-planner__shift-cell--active {
|
|
box-shadow: inset 0 0 0 2px var(--fclk-planner-focus, #2563eb);
|
|
}
|
|
|
|
.fclk-planner__shift-input {
|
|
width: 100%;
|
|
height: 32px;
|
|
border: 1px solid transparent;
|
|
border-radius: 4px;
|
|
background: transparent;
|
|
color: var(--fclk-planner-text, #1f2937);
|
|
padding: 4px 6px;
|
|
font-size: 13px;
|
|
line-height: 1.2;
|
|
outline: none;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.fclk-planner__shift-input:focus {
|
|
background: var(--fclk-planner-card, #ffffff);
|
|
border-color: var(--fclk-planner-focus, #2563eb);
|
|
box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.16);
|
|
}
|
|
|
|
.fclk-planner__cell-error {
|
|
color: var(--fclk-planner-error, #dc2626);
|
|
font-size: 11px;
|
|
line-height: 1.2;
|
|
padding: 3px 5px 0;
|
|
}
|
|
|
|
.fclk-planner__hours-cell {
|
|
width: var(--fclk-planner-hours-width);
|
|
background: var(--fclk-planner-hours, #f5d39b);
|
|
text-align: center;
|
|
font-variant-numeric: tabular-nums;
|
|
font-weight: 650;
|
|
vertical-align: middle;
|
|
padding: 6px 2px;
|
|
}
|
|
|
|
.fclk-planner__cell-editor {
|
|
position: fixed;
|
|
z-index: 1080;
|
|
width: calc(100vw - 16px);
|
|
max-width: 380px;
|
|
padding: 14px;
|
|
color: var(--fclk-planner-editor-text, #f9fafb);
|
|
background: var(--fclk-planner-editor, #111827);
|
|
border: 1px solid var(--fclk-planner-editor-border, #374151);
|
|
border-radius: 8px;
|
|
box-shadow: 0 18px 45px rgba(0, 0, 0, 0.32);
|
|
}
|
|
|
|
.fclk-planner__cell-editor::before {
|
|
content: "";
|
|
position: absolute;
|
|
top: -7px;
|
|
left: 28px;
|
|
width: 14px;
|
|
height: 14px;
|
|
background: var(--fclk-planner-editor, #111827);
|
|
border-left: 1px solid var(--fclk-planner-editor-border, #374151);
|
|
border-top: 1px solid var(--fclk-planner-editor-border, #374151);
|
|
transform: rotate(45deg);
|
|
}
|
|
|
|
.fclk-planner__editor-head {
|
|
position: relative;
|
|
z-index: 1;
|
|
display: flex;
|
|
align-items: flex-start;
|
|
justify-content: space-between;
|
|
gap: 12px;
|
|
margin-bottom: 12px;
|
|
}
|
|
|
|
.fclk-planner__editor-name {
|
|
font-size: 14px;
|
|
font-weight: 700;
|
|
line-height: 1.2;
|
|
}
|
|
|
|
.fclk-planner__editor-day {
|
|
margin-top: 2px;
|
|
color: var(--fclk-planner-editor-muted, #cbd5e1);
|
|
font-size: 12px;
|
|
}
|
|
|
|
.fclk-planner__editor-hours {
|
|
min-width: 56px;
|
|
padding: 5px 8px;
|
|
text-align: center;
|
|
color: #111827;
|
|
background: var(--fclk-planner-hours, #f5d39b);
|
|
border-radius: 6px;
|
|
font-weight: 700;
|
|
font-variant-numeric: tabular-nums;
|
|
}
|
|
|
|
.fclk-planner__quick-grid {
|
|
position: relative;
|
|
z-index: 1;
|
|
display: grid;
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
gap: 8px;
|
|
}
|
|
|
|
.fclk-planner__quick-chip {
|
|
min-height: 46px;
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: flex-start;
|
|
justify-content: center;
|
|
gap: 2px;
|
|
padding: 7px 9px;
|
|
color: var(--fclk-planner-editor-text, #f9fafb);
|
|
background: var(--fclk-planner-editor-chip, #1f2937);
|
|
border: 1px solid var(--fclk-planner-editor-border, #374151);
|
|
border-radius: 6px;
|
|
text-align: left;
|
|
}
|
|
|
|
.fclk-planner__quick-chip:hover,
|
|
.fclk-planner__quick-chip:focus {
|
|
background: var(--fclk-planner-editor-chip-hover, #334155);
|
|
outline: none;
|
|
}
|
|
|
|
.fclk-planner__quick-label {
|
|
width: 100%;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
font-size: 13px;
|
|
font-weight: 650;
|
|
line-height: 1.15;
|
|
}
|
|
|
|
.fclk-planner__quick-detail {
|
|
width: 100%;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
color: var(--fclk-planner-editor-muted, #cbd5e1);
|
|
font-size: 11px;
|
|
line-height: 1.15;
|
|
}
|
|
|
|
.fclk-planner__time-row {
|
|
position: relative;
|
|
z-index: 1;
|
|
display: grid;
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
gap: 10px;
|
|
margin-top: 12px;
|
|
}
|
|
|
|
.fclk-planner__time-field {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 5px;
|
|
margin: 0;
|
|
color: var(--fclk-planner-editor-muted, #cbd5e1);
|
|
font-size: 12px;
|
|
font-weight: 650;
|
|
}
|
|
|
|
.fclk-planner__time-field select {
|
|
width: 100%;
|
|
height: 34px;
|
|
color: var(--fclk-planner-editor-control-text, #111827);
|
|
background: var(--fclk-planner-editor-control, #ffffff);
|
|
border: 1px solid var(--fclk-planner-editor-border, #374151);
|
|
border-radius: 6px;
|
|
padding: 4px 8px;
|
|
font-size: 13px;
|
|
}
|
|
|
|
.fclk-planner__editor-error {
|
|
position: relative;
|
|
z-index: 1;
|
|
margin-top: 10px;
|
|
padding: 7px 8px;
|
|
color: #991b1b;
|
|
background: #fee2e2;
|
|
border-radius: 6px;
|
|
font-size: 12px;
|
|
line-height: 1.25;
|
|
}
|
|
|
|
.fclk-planner__editor-actions {
|
|
position: relative;
|
|
z-index: 1;
|
|
display: flex;
|
|
justify-content: flex-end;
|
|
gap: 8px;
|
|
margin-top: 12px;
|
|
}
|
|
|
|
@media (max-width: 900px) {
|
|
.fclk-planner__toolbar {
|
|
align-items: flex-start;
|
|
flex-direction: column;
|
|
}
|
|
|
|
.fclk-planner__actions {
|
|
justify-content: flex-start;
|
|
}
|
|
|
|
.fclk-planner__table-wrap {
|
|
margin: 10px;
|
|
}
|
|
|
|
.fclk-planner__cell-editor {
|
|
width: calc(100vw - 16px);
|
|
}
|
|
}
|