1608 lines
40 KiB
CSS
1608 lines
40 KiB
CSS
@charset "UTF-8";
|
|
/**
|
|
* 반응형 폰트 크기 (responsive font)
|
|
* @param {number} $min-px - 최소 폰트 크기 (px)
|
|
* @param {number} $max-px - 최대 폰트 크기 (px)
|
|
* @param {number} $min-vw - 최소 뷰포트 너비 (기본값: 375px)
|
|
* @param {number} $max-vw - 최대 뷰포트 너비 (기본값: 1920px)
|
|
*/
|
|
/**
|
|
* 박스 그림자 (box-shadow)
|
|
* @param {number} $x - X 오프셋 (기본값: 0px)
|
|
* @param {number} $y - Y 오프셋 (기본값: 3px)
|
|
* @param {number} $blur - 블러 반경 (기본값: 6px)
|
|
* @param {number} $spread - 확산 반경 (기본값: 0px)
|
|
* @param {color} $color - 색상 (기본값: rgba(0, 0, 0, 0.25))
|
|
* @param {boolean} $important - !important 사용 여부 (기본값: false)
|
|
*/
|
|
/**
|
|
* 텍스트 그림자(text-shadow)
|
|
* @param {number} $x - X 오프셋 (기본값: 0px)
|
|
* @param {number} $y - Y 오프셋 (기본값: 1px)
|
|
* @param {number} $blur - 블러 반경 (기본값: 0px)
|
|
* @param {color} $color - 색상 (기본값: rgba(0, 0, 0, 0.25))
|
|
* @param {boolean} $important - !important 사용 여부 (기본값: false)
|
|
*/
|
|
/**
|
|
* 미디어 쿼리 mixin
|
|
* @param {string|number} $width - 브레이크포인트 이름 또는 픽셀 값
|
|
* @param {string} $type - 'min' 또는 'max'
|
|
* @example
|
|
* @include mq('desktop') { ... }
|
|
* @include mq(1920px) { ... }
|
|
* @include mq('tablet', 'max') { ... }
|
|
*/
|
|
:root {
|
|
/* background */
|
|
--bg-base: linear-gradient(180deg, #ece3d2 0%, #b7ac96 84.27%), #f3efea;
|
|
--bg-transparent: transparent;
|
|
--bg-section: #f3efea;
|
|
--bg-card: #fff;
|
|
--bg-chart: #fafafa;
|
|
--bg-title: linear-gradient(
|
|
180deg,
|
|
rgba(255, 255, 255, 0) 0%,
|
|
rgba(255, 255, 255, 0.2) 100%
|
|
),
|
|
#895d24;
|
|
--bg-calendar: #f6f3f0;
|
|
--bg-change: rgba(0, 0, 0, 0.08);
|
|
--bg-change-up: rgba(230, 4, 3, 0.08);
|
|
--bg-change-down: rgba(0, 47, 255, 0.08);
|
|
--bg-chart-highlight: rgba(255, 92, 0, 0.25);
|
|
--bg-chart-mixbullet: #d84101;
|
|
--bg-badge-year: rgba(220, 103, 0, 0.15);
|
|
--bg-badge-month: linear-gradient(
|
|
0deg,
|
|
rgba(255, 119, 0, 0.1) 0%,
|
|
rgba(255, 119, 0, 0.1) 100%
|
|
),
|
|
#fff;
|
|
--bg-badge-linearea01: linear-gradient(
|
|
0deg,
|
|
rgba(43, 143, 16, 0.1) 0%,
|
|
rgba(43, 143, 16, 0.1) 100%
|
|
),
|
|
#fff;
|
|
--bg-badge-linearea02: linear-gradient(
|
|
0deg,
|
|
rgba(124, 16, 143, 0.1) 0%,
|
|
rgba(124, 16, 143, 0.1) 100%
|
|
),
|
|
#fff;
|
|
--bg-chart-mixbar01: #4cae9b;
|
|
--bg-chart-mixbar02: #60b7a6;
|
|
--bg-chart-mixbar03: #389783;
|
|
--bg-chart-mixbar: linear-gradient(
|
|
90deg,
|
|
#4cae9b 0%,
|
|
#60b7a6 37.09%,
|
|
#389783 100%
|
|
);
|
|
--bg-chart-area01: rgba(43, 143, 16, 0.3);
|
|
--bg-chart-area02: rgba(124, 16, 143, 0.3);
|
|
--bg-chart-linearea01: #2b8f10;
|
|
--bg-chart-line01-bullet01: #89d774;
|
|
--bg-chart-line01-bullet02: #2b8f10;
|
|
--bg-chart-line01-bullet03: #257011;
|
|
--bg-chart-linearea02: #7c108f;
|
|
--bg-chart-line02-bullet01: #eda1fa;
|
|
--bg-chart-line02-bullet02: #831996;
|
|
--bg-chart-line02-bullet03: #490754;
|
|
--bg-individual01: rgba(43, 143, 16, 0.1);
|
|
--bg-individual02: rgba(124, 16, 143, 0.1);
|
|
/* border */
|
|
--border-base: rgba(0, 0, 0, 0.1);
|
|
--border-primary: rgba(0, 0, 0, 0.1);
|
|
--border-stat: #e7decd;
|
|
--border-person: #e3dac8;
|
|
--border-card-inner: rgba(0, 0, 0, 0.1);
|
|
--border-title: linear-gradient(180deg, #825822 0%, #9d704c 100%);
|
|
/* text color*/
|
|
--text-base: #000;
|
|
--text-primary: #555;
|
|
--text-secondary: #777;
|
|
--stat-base: #333;
|
|
--stat-primary: #d84101;
|
|
--stat-secondary: #99572c;
|
|
--stat-tertiary: #db6600;
|
|
--unit-primary: #2b8f10;
|
|
--unit-secondary: #7c108f;
|
|
--unit-tertiary: #0098df;
|
|
--text-weekly-title: #895d24;
|
|
--card-title: #fff;
|
|
--chart-base: #777;
|
|
--change-base: #555;
|
|
--change-label: #333;
|
|
--change-up: #b00;
|
|
--change-down: #00198b;
|
|
--stat-accrue: #d84101;
|
|
--stat-month: #f70;
|
|
--stat-sales: #885d1a;
|
|
--stat-unit-base: linear-gradient(180deg, #777 0%, #000 100%);
|
|
--stat-unit-accrue: linear-gradient(180deg, #ff5c00 0%, #b94300 100%);
|
|
--stat-unit-month: linear-gradient(180deg, #409d8a 0%, #1a4c45 100%);
|
|
--stat-unit-individual01: linear-gradient(180deg, #2b8f10 0%, #1b580b 100%);
|
|
--stat-unit-individual02: linear-gradient(180deg, #7c108f 0%, #41074c 100%);
|
|
--stat-unit-sales: linear-gradient(180deg, #c4964b 0%, #5f2f0e 100%);
|
|
/* chart color */
|
|
--grid-border-dashed: rgba(0, 0, 0, 0.2);
|
|
--chart-mixline: #d84101;
|
|
--chart-mixbar: #e76c00;
|
|
/* etc */
|
|
--title-stroke: drop-shadow(0 0 1px rgba(0, 0, 0, 0.5));
|
|
--title-shadow: -1px -1px 0 rgba(0, 0, 0, 0.5), 1px -1px 0 rgba(0, 0, 0, 0.5),
|
|
-1px 1px 0 rgba(0, 0, 0, 0.5), 1px 1px 0 rgba(0, 0, 0, 0.5);
|
|
}
|
|
|
|
/**
|
|
* 반응형 폰트 크기 (responsive font)
|
|
* @param {number} $min-px - 최소 폰트 크기 (px)
|
|
* @param {number} $max-px - 최대 폰트 크기 (px)
|
|
* @param {number} $min-vw - 최소 뷰포트 너비 (기본값: 375px)
|
|
* @param {number} $max-vw - 최대 뷰포트 너비 (기본값: 1920px)
|
|
*/
|
|
/**
|
|
* 박스 그림자 (box-shadow)
|
|
* @param {number} $x - X 오프셋 (기본값: 0px)
|
|
* @param {number} $y - Y 오프셋 (기본값: 3px)
|
|
* @param {number} $blur - 블러 반경 (기본값: 6px)
|
|
* @param {number} $spread - 확산 반경 (기본값: 0px)
|
|
* @param {color} $color - 색상 (기본값: rgba(0, 0, 0, 0.25))
|
|
* @param {boolean} $important - !important 사용 여부 (기본값: false)
|
|
*/
|
|
/**
|
|
* 텍스트 그림자(text-shadow)
|
|
* @param {number} $x - X 오프셋 (기본값: 0px)
|
|
* @param {number} $y - Y 오프셋 (기본값: 1px)
|
|
* @param {number} $blur - 블러 반경 (기본값: 0px)
|
|
* @param {color} $color - 색상 (기본값: rgba(0, 0, 0, 0.25))
|
|
* @param {boolean} $important - !important 사용 여부 (기본값: false)
|
|
*/
|
|
/**
|
|
* 미디어 쿼리 mixin
|
|
* @param {string|number} $width - 브레이크포인트 이름 또는 픽셀 값
|
|
* @param {string} $type - 'min' 또는 'max'
|
|
* @example
|
|
* @include mq('desktop') { ... }
|
|
* @include mq(1920px) { ... }
|
|
* @include mq('tablet', 'max') { ... }
|
|
*/
|
|
html {
|
|
scroll-behavior: smooth;
|
|
}
|
|
html.is-locked body {
|
|
height: calc(var(--window-inner-height) - 1px);
|
|
overflow: hidden;
|
|
box-sizing: border-box;
|
|
}
|
|
html body {
|
|
margin: 0;
|
|
padding: 0;
|
|
background: var(--bg-base);
|
|
}
|
|
|
|
.wrap {
|
|
min-height: var(--window-inner-height);
|
|
min-width: 1440px;
|
|
}
|
|
|
|
.header {
|
|
position: relative;
|
|
padding: 0 24px;
|
|
height: 64px;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
}
|
|
.header .logo {
|
|
position: absolute;
|
|
bottom: 12px;
|
|
left: 24px;
|
|
font-size: 28px;
|
|
font-weight: bold;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
margin-right: 4px;
|
|
padding: 0;
|
|
}
|
|
.header .logo .i-logo {
|
|
display: inline-block;
|
|
width: 38px;
|
|
height: 24px;
|
|
margin-top: 4px;
|
|
background: url(../images/favicon.svg);
|
|
background-position: center;
|
|
background-size: 100% auto;
|
|
}
|
|
.header h1 {
|
|
position: relative;
|
|
font-size: 32px;
|
|
font-weight: 700;
|
|
color: var(--text-base);
|
|
}
|
|
.header h1::before {
|
|
content: attr(data-text);
|
|
position: absolute;
|
|
inset: 0;
|
|
opacity: 0.7;
|
|
pointer-events: none;
|
|
color: transparent;
|
|
z-index: -1;
|
|
filter: drop-shadow(0 0 1px rgba(255, 255, 255, 0.5));
|
|
text-shadow: -1px -1px 0 rgba(255, 255, 255, 0.5),
|
|
1px -1px 0 rgba(255, 255, 255, 0.5), -1px 1px 0 rgba(255, 255, 255, 0.5),
|
|
1px 1px 0 rgba(255, 255, 255, 0.5);
|
|
}
|
|
.header .date {
|
|
position: absolute;
|
|
right: 24px;
|
|
bottom: 12px;
|
|
font-size: 20px;
|
|
font-weight: 500;
|
|
color: var(--text-secondary);
|
|
}
|
|
|
|
:root {
|
|
--header-height: 64px;
|
|
--footer-height: 48px;
|
|
--grid-gap: 24px;
|
|
--total-offset: calc(var(--header-height) + var(--footer-height));
|
|
--grid-height: 576px;
|
|
--card-height: 280px;
|
|
--weekly-height: calc(var(--window-inner-height) - 576px - 24px - 64px);
|
|
}
|
|
|
|
/*
|
|
$card-heights: (
|
|
"min": 280px,
|
|
"default": calc((var(--grid-height) - var(--card-gap)) / 2),
|
|
);*/
|
|
.main-contents {
|
|
display: grid;
|
|
min-height: calc(var(--window-inner-height) - var(--header-height));
|
|
grid-template-rows: var(--grid-height) auto;
|
|
gap: 24px;
|
|
}
|
|
.main-grid {
|
|
padding: 0 24px;
|
|
display: grid;
|
|
grid-template-columns: 418fr 335fr 247fr;
|
|
grid-template-rows: repeat(2, 2fr);
|
|
gap: 16px;
|
|
height: var(--grid-height);
|
|
}
|
|
.main-weekly {
|
|
position: relative;
|
|
border-radius: 16px 16px 0 0;
|
|
background-color: #fafafa;
|
|
height: var(--weekly-height);
|
|
box-shadow: 0 -4px 40px 0 rgba(0, 0, 0, 0.3);
|
|
overflow: hidden;
|
|
}
|
|
|
|
.card {
|
|
position: relative;
|
|
border-radius: 8px;
|
|
outline: 2px solid var(--border-base);
|
|
background: var(--bg-card);
|
|
overflow: hidden;
|
|
}
|
|
.card.individual,
|
|
.card.sales {
|
|
height: var(--grid-height);
|
|
min-height: 576px;
|
|
display: grid;
|
|
grid-template-columns: 100%;
|
|
grid-row: 1/3;
|
|
}
|
|
.card.individual {
|
|
grid-column-start: 2;
|
|
grid-template-rows:
|
|
clamp(348px, var(--grid-height) - 228px, var(--grid-height) - 228px)
|
|
228px;
|
|
}
|
|
.card.individual .chart-wrap {
|
|
display: grid;
|
|
grid-template-columns: 100%;
|
|
grid-template-rows: 38px calc(
|
|
clamp(348px, var(--grid-height) - 228px, var(--grid-height) - 228px) -
|
|
38px
|
|
);
|
|
}
|
|
.card.individual .card-body {
|
|
height: 228px;
|
|
}
|
|
.card.individual .stat-row [class^="change"] {
|
|
font-size: 10px;
|
|
}
|
|
.card.individual .stat-row [class^="change"] em {
|
|
font-size: 16px;
|
|
}
|
|
.card.individual .stat-row .big-num {
|
|
font-size: 5.2rem;
|
|
}
|
|
.card.sales {
|
|
grid-column-start: 3;
|
|
grid-template-rows: 38px 96fr 516fr;
|
|
}
|
|
.card.sales .card-body {
|
|
flex-direction: row-reverse;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
}
|
|
.card.sales .chart-wrap {
|
|
position: relative;
|
|
display: grid;
|
|
grid-template-columns: 100%;
|
|
grid-template-rows: repeat(
|
|
2,
|
|
clamp(
|
|
(538px - (var(--card-height) - 38px) / 3) / 2,
|
|
(var(--grid-height) - 38px - (var(--card-height) - 38px) / 3) / 2,
|
|
(var(--grid-height) - 38px - (var(--card-height) - 38px) / 3) / 2
|
|
)
|
|
);
|
|
width: 100%;
|
|
padding: 0 12px;
|
|
height: calc(
|
|
(var(--grid-height) - 38px - (var(--card-height) - 38px) / 3) / 2 * 2
|
|
);
|
|
min-height: calc((538px - (var(--card-height) - 38px) / 3) / 2 * 2);
|
|
border-top: 1px solid var(--border-base);
|
|
}
|
|
.card.sales .chart-wrap .legend {
|
|
position: absolute;
|
|
right: 12px;
|
|
top: 12px;
|
|
z-index: 1;
|
|
}
|
|
.card.sales .chart-wrap .chart-body {
|
|
padding: 0;
|
|
height: calc(
|
|
(var(--grid-height) - 38px - (var(--card-height) - 38px) / 3) / 2
|
|
);
|
|
min-height: calc((538px - (var(--card-height) - 38px) / 3) / 2);
|
|
}
|
|
.card.sales .chart-wrap .chart-body:not(:last-child) {
|
|
border-bottom: 1px dashed var(--border-base);
|
|
}
|
|
.card.sales .chart-wrap .chart-tit {
|
|
position: absolute;
|
|
left: 0px;
|
|
top: 10px;
|
|
font-size: 16px;
|
|
font-weight: 700;
|
|
line-height: 1;
|
|
}
|
|
.card-header {
|
|
position: relative;
|
|
width: 100%;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
}
|
|
.card-header h3 {
|
|
position: relative;
|
|
font-size: 20px;
|
|
font-weight: 700;
|
|
line-height: 1;
|
|
height: 38px;
|
|
padding: 0px 4px 0px 14px;
|
|
color: var(--card-title);
|
|
background: var(--bg-title);
|
|
display: inline-flex;
|
|
align-items: center;
|
|
filter: drop-shadow(0 0 1px rgba(0, 0, 0, 0.5));
|
|
text-shadow: -1px -1px 0 rgba(0, 0, 0, 0.5), 1px -1px 0 rgba(0, 0, 0, 0.5),
|
|
-1px 1px 0 rgba(0, 0, 0, 0.5), 1px 1px 0 rgba(0, 0, 0, 0.5);
|
|
}
|
|
.card-header h3 .tail::before,
|
|
.card-header h3 .tail::after {
|
|
content: "";
|
|
position: absolute;
|
|
top: 2px;
|
|
right: -48px;
|
|
width: 48px;
|
|
height: 34px;
|
|
background: var(--bg-title);
|
|
box-sizing: border-box;
|
|
-webkit-mask: url("../images/mask_tail.svg");
|
|
mask: url("../images/mask_tail.svg");
|
|
-webkit-mask-repeat: no-repeat;
|
|
mask-repeat: no-repeat;
|
|
-webkit-mask-size: contain;
|
|
mask-size: contain;
|
|
-webkit-mask-position: center left;
|
|
mask-position: center left;
|
|
}
|
|
.card-header h3 .tail::before {
|
|
top: 0;
|
|
height: 38px;
|
|
background: var(--border-title);
|
|
}
|
|
.card-header h3::after {
|
|
content: "";
|
|
position: absolute;
|
|
top: 0px;
|
|
left: 0;
|
|
width: 100%;
|
|
height: 100%;
|
|
background: var(--border-title);
|
|
inset: 0;
|
|
-webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
|
|
mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
|
|
-webkit-mask-composite: xor;
|
|
mask-composite: exclude;
|
|
pointer-events: none;
|
|
border-radius: inherit;
|
|
padding: 1px;
|
|
padding: 2px 0 2px;
|
|
}
|
|
.card-header .legend {
|
|
padding-top: 12px;
|
|
padding-right: 12px;
|
|
align-self: flex-start;
|
|
}
|
|
.card-body {
|
|
width: 100%;
|
|
}
|
|
.card.yearly,
|
|
.card.month {
|
|
display: grid;
|
|
grid-template-columns: repeat(2, 1fr);
|
|
grid-template-rows: 38px auto;
|
|
height: clamp(280px, var(--card-height), var(--card-height));
|
|
}
|
|
.card.yearly .chart-wrap,
|
|
.card.month .chart-wrap {
|
|
grid-column-start: 2;
|
|
grid-row-start: 1;
|
|
height: clamp(280px, var(--card-height), var(--card-height));
|
|
min-height: 280px;
|
|
padding: 12px;
|
|
border-left: 1px solid var(--border-base);
|
|
}
|
|
.card.yearly .chart-wrap .legend,
|
|
.card.month .chart-wrap .legend {
|
|
position: absolute;
|
|
top: 12px;
|
|
right: 12px;
|
|
}
|
|
.card.yearly .chart-body,
|
|
.card.month .chart-body {
|
|
height: calc(clamp(280px, var(--card-height), var(--card-height)) - 38px);
|
|
}
|
|
.card.yearly .card-body,
|
|
.card.month .card-body {
|
|
grid-column-start: 1;
|
|
grid-row-start: 2;
|
|
padding: 0 16px;
|
|
display: grid;
|
|
grid-template-columns: 100%;
|
|
grid-template-rows: repeat(3, 1fr);
|
|
}
|
|
|
|
.stat-row {
|
|
padding: 10px 0;
|
|
width: 100%;
|
|
white-space: nowrap;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
}
|
|
.stat-row:not(:last-child) {
|
|
border-bottom: 1px solid var(--border-base);
|
|
}
|
|
.stat-row.accrue {
|
|
/*
|
|
.label {
|
|
color: $color;
|
|
}*/
|
|
}
|
|
.stat-row.accrue .big-num {
|
|
font-weight: 700;
|
|
background: var(--stat-primary);
|
|
background-clip: text;
|
|
-webkit-background-clip: text;
|
|
-webkit-text-fill-color: transparent;
|
|
}
|
|
.stat-row.month {
|
|
/*
|
|
.label {
|
|
color: $color;
|
|
}*/
|
|
}
|
|
.stat-row.month .big-num {
|
|
font-weight: 700;
|
|
background: var(--stat-tertiary);
|
|
background-clip: text;
|
|
-webkit-background-clip: text;
|
|
-webkit-text-fill-color: transparent;
|
|
}
|
|
.stat-row.individual01 {
|
|
/*
|
|
.label {
|
|
color: $color;
|
|
}*/
|
|
}
|
|
.stat-row.individual01 .big-num {
|
|
font-weight: 700;
|
|
background: var(--unit-primary);
|
|
background-clip: text;
|
|
-webkit-background-clip: text;
|
|
-webkit-text-fill-color: transparent;
|
|
}
|
|
.stat-row.individual02 {
|
|
/*
|
|
.label {
|
|
color: $color;
|
|
}*/
|
|
}
|
|
.stat-row.individual02 .big-num {
|
|
font-weight: 700;
|
|
background: var(--unit-secondary);
|
|
background-clip: text;
|
|
-webkit-background-clip: text;
|
|
-webkit-text-fill-color: transparent;
|
|
}
|
|
.stat-row.sales {
|
|
justify-content: center;
|
|
gap: 40px;
|
|
/*
|
|
.label {
|
|
color: $color;
|
|
}*/
|
|
}
|
|
.stat-row.sales .big-num {
|
|
font-weight: 700;
|
|
background: var(--stat-secondary);
|
|
background-clip: text;
|
|
-webkit-background-clip: text;
|
|
-webkit-text-fill-color: transparent;
|
|
}
|
|
.stat-row.sales .unit {
|
|
width: auto;
|
|
}
|
|
.stat-row .label-box {
|
|
flex-direction: column;
|
|
gap: 8px;
|
|
display: flex;
|
|
align-items: flex-start;
|
|
justify-content: flex-start;
|
|
}
|
|
.stat-row .label {
|
|
font-size: 16px;
|
|
font-weight: 700;
|
|
line-height: 1;
|
|
color: var(--stat-base);
|
|
}
|
|
.stat-row [class^="change"] {
|
|
padding: 4px 8px;
|
|
height: 28px;
|
|
border-radius: 50px;
|
|
background: var(--bg-change);
|
|
font-size: 12px;
|
|
color: var(--change-base);
|
|
gap: 4px;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
}
|
|
.stat-row [class^="change"] em {
|
|
position: relative;
|
|
padding-left: 20px;
|
|
font-size: 20px;
|
|
font-weight: 700;
|
|
line-height: 1.2;
|
|
color: var(--text-base);
|
|
}
|
|
.stat-row [class^="change"] em::before {
|
|
content: " ";
|
|
position: absolute;
|
|
left: 6px;
|
|
top: calc(50% - 1px);
|
|
width: 8px;
|
|
height: 2px;
|
|
background: var(--text-base);
|
|
}
|
|
.stat-row [class^="change"][class*="down"] {
|
|
background: var(--bg-change-down);
|
|
}
|
|
.stat-row [class^="change"][class*="down"] em {
|
|
color: var(--change-down);
|
|
}
|
|
.stat-row [class^="change"][class*="down"] em::before {
|
|
left: 4px;
|
|
top: calc(50% - 5px);
|
|
width: 0;
|
|
height: 0;
|
|
background: none;
|
|
border-style: solid;
|
|
border-width: 10px 6px 0 6px;
|
|
border-color: var(--change-down) transparent transparent transparent;
|
|
}
|
|
.stat-row [class^="change"][class*="up"] {
|
|
background: var(--bg-change-up);
|
|
}
|
|
.stat-row [class^="change"][class*="up"] em {
|
|
color: var(--change-up);
|
|
}
|
|
.stat-row [class^="change"][class*="up"] em::before {
|
|
left: 4px;
|
|
top: calc(50% - 5px);
|
|
width: 0;
|
|
height: 0;
|
|
background: none;
|
|
border-style: solid;
|
|
border-width: 0 6px 10px 6px;
|
|
border-color: transparent transparent var(--change-up) transparent;
|
|
}
|
|
.stat-row .big-num {
|
|
font-size: 6.2rem;
|
|
line-height: 1;
|
|
}
|
|
.stat-row .unit {
|
|
display: inline-flex;
|
|
width: 3rem;
|
|
font-size: 1.8rem;
|
|
}
|
|
.stat-row .unit.copy {
|
|
font-size: 1.4rem;
|
|
}
|
|
.stat-row .big-num,
|
|
.stat-row .unit {
|
|
font-weight: 700;
|
|
/*background: var(--stat-unit-base);
|
|
background-clip: text;
|
|
-webkit-background-clip: text;
|
|
-webkit-text-fill-color: transparent;*/
|
|
color: var(--stat-base);
|
|
}
|
|
|
|
.chart-wrap {
|
|
background: var(--bg-chart);
|
|
width: 100%;
|
|
height: 100%;
|
|
}
|
|
.chart-header {
|
|
width: 100%;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
}
|
|
.chart-body {
|
|
position: relative;
|
|
flex-grow: 1;
|
|
width: 100%;
|
|
}
|
|
.chart-body .badge-box {
|
|
position: absolute;
|
|
top: 8px;
|
|
left: 48px;
|
|
}
|
|
|
|
[class^="badge"]:not([class*="box"]) {
|
|
display: inline-block;
|
|
padding: 4px;
|
|
border-radius: 4px;
|
|
border-width: 1px;
|
|
border-style: solid;
|
|
font-weight: 700;
|
|
line-height: 1;
|
|
overflow: hidden;
|
|
}
|
|
[class^="badge"][class*="box"] {
|
|
gap: 8px;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
}
|
|
[class^="badge"][class*="year"] {
|
|
border-color: var(--stat-accrue);
|
|
background: var(--bg-badge-year);
|
|
color: var(--stat-accrue);
|
|
font-size: 14px;
|
|
}
|
|
[class^="badge"][class*="month"] {
|
|
border-color: var(--stat-month);
|
|
background: var(--bg-badge-month);
|
|
color: var(--stat-month);
|
|
font-size: 14px;
|
|
}
|
|
[class^="badge"][class*="individual01"] {
|
|
border-color: var(--unit-primary);
|
|
background: var(--bg-badge-linearea01);
|
|
color: var(--unit-primary);
|
|
font-size: 14px;
|
|
}
|
|
[class^="badge"][class*="individual02"] {
|
|
border-color: var(---unit-secondary);
|
|
background: var(--bg-badge-linearea02);
|
|
color: var(--unit-secondary);
|
|
font-size: 14px;
|
|
}
|
|
|
|
/*개인별 판매실적 상단 목표량 뱃지 260105 sdi 추가 */
|
|
.card.individual .legend > span {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 3px;
|
|
line-height: 1;
|
|
}
|
|
|
|
.legend {
|
|
gap: 8px;
|
|
font-size: 14px;
|
|
color: var(--text-secondary);
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
}
|
|
.legend-dot {
|
|
display: inline-block;
|
|
width: 10px;
|
|
height: 10px;
|
|
border-radius: 2px;
|
|
margin-right: 2px;
|
|
}
|
|
.legend-dot.mix-bar {
|
|
background: var(--chart-mixbar);
|
|
}
|
|
.legend-dot.mix-line {
|
|
background: var(--chart-mixline);
|
|
}
|
|
.legend-dot.line-area01 {
|
|
background-color: var(--unit-primary);
|
|
}
|
|
.legend-dot.line-area02 {
|
|
background-color: var(--unit-secondary);
|
|
}
|
|
|
|
.individual .chart-body {
|
|
padding: 0 12px;
|
|
border-bottom: 1px solid var(--border-base);
|
|
}
|
|
.individual .card-body {
|
|
display: grid;
|
|
grid-template-columns: repeat(2, 1fr);
|
|
align-items: center;
|
|
}
|
|
.individual .card-body .person-box {
|
|
padding: 0 16px;
|
|
}
|
|
.individual .person-box {
|
|
position: relative;
|
|
}
|
|
.individual .person-box:nth-child(1):not(:last-child)::after {
|
|
content: "";
|
|
position: absolute;
|
|
right: 0;
|
|
top: 0;
|
|
height: 100%;
|
|
border-right: 1px solid var(--border-base);
|
|
}
|
|
.individual .person-box:nth-child(1) .person-name {
|
|
background-color: var(--bg-individual01);
|
|
}
|
|
.individual .person-box:nth-child(1) .person-name span,
|
|
.individual .person-box:nth-child(1) .person-name small {
|
|
background: var(--unit-primary);
|
|
background-clip: text;
|
|
-webkit-background-clip: text;
|
|
-webkit-text-fill-color: transparent;
|
|
}
|
|
.individual .person-box:nth-child(2) .person-name {
|
|
background-color: var(--bg-individual02);
|
|
}
|
|
.individual .person-box:nth-child(2) .person-name span,
|
|
.individual .person-box:nth-child(2) .person-name small {
|
|
background: var(--unit-secondary);
|
|
background-clip: text;
|
|
-webkit-background-clip: text;
|
|
-webkit-text-fill-color: transparent;
|
|
}
|
|
.individual .person-box .stat-row {
|
|
padding: 16px 0;
|
|
}
|
|
.individual .person-box .stat-row:last-child {
|
|
padding-bottom: 0;
|
|
}
|
|
.individual .person-name {
|
|
text-align: center;
|
|
height: 42px;
|
|
width: 100%;
|
|
border-radius: 8px;
|
|
font-size: 22px;
|
|
font-weight: 700;
|
|
gap: 4px;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
}
|
|
.individual .person-name small {
|
|
padding-top: 4px;
|
|
font-size: 16px;
|
|
}
|
|
|
|
.yearly_button {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
gap: 10px;
|
|
}
|
|
|
|
.yearly_button .year-nav-btn {
|
|
width: 26px;
|
|
height: 26px;
|
|
border-radius: 4px;
|
|
margin-top: 4px;
|
|
border: 1px solid rgba(0, 0, 0, 0.4);
|
|
background: linear-gradient(180deg, #f0f0f0 0%, #e1e0de 100%);
|
|
box-shadow: 0 0.3px 2px 1px rgba(0, 0, 0, 0.1);
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
}
|
|
|
|
.weekly-grid {
|
|
position: relative;
|
|
display: grid;
|
|
grid-template-columns: 260px auto;
|
|
height: calc(100% - 80px);
|
|
overflow: hidden;
|
|
z-index: 1;
|
|
}
|
|
.weekly-header {
|
|
padding: 18px 24px;
|
|
height: calc(var(--weekly-height) - 80px);
|
|
flex-direction: column;
|
|
display: flex;
|
|
align-items: flex-start;
|
|
justify-content: space-between;
|
|
border-right: 1px solid var(--border-base);
|
|
}
|
|
.weekly-title p {
|
|
font-size: 18px;
|
|
color: var(--text-primary);
|
|
font-weight: 500;
|
|
}
|
|
.weekly-title h3 {
|
|
color: var(--text-base);
|
|
font-size: 24px;
|
|
font-weight: 700;
|
|
line-height: 1.4;
|
|
}
|
|
.weekly .week-navigation {
|
|
gap: 10px;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: flex-start;
|
|
}
|
|
.weekly .week-nav-btn {
|
|
width: 26px;
|
|
height: 26px;
|
|
border-radius: 4px;
|
|
margin-top: 4px;
|
|
border: 1px solid rgba(0, 0, 0, 0.4);
|
|
background: linear-gradient(180deg, #f0f0f0 0%, #e1e0de 100%);
|
|
box-shadow: 0 0.3px 2px 1px rgba(0, 0, 0, 0.1);
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
}
|
|
.weekly .person-list {
|
|
gap: 2px;
|
|
flex-direction: column;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
}
|
|
.weekly .person-list .name {
|
|
font-size: 1.6rem;
|
|
font-weight: 500;
|
|
}
|
|
.weekly .person-list .name small {
|
|
font-size: 1.2rem;
|
|
font-weight: 500;
|
|
}
|
|
.weekly .person-list li {
|
|
gap: 6px;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
}
|
|
.weekly .person-list [class^="badge"] {
|
|
margin-top: 2px;
|
|
}
|
|
.weekly [class^="badge"] {
|
|
display: inline-block;
|
|
width: 1.8rem;
|
|
height: 1.8rem;
|
|
font-size: 1.2rem;
|
|
color: #fff;
|
|
border: none;
|
|
line-height: 1;
|
|
padding: 2px;
|
|
margin: 0px 2px;
|
|
text-align: center;
|
|
}
|
|
.weekly .badge-green {
|
|
background: var(--unit-primary);
|
|
}
|
|
.weekly .badge-purple {
|
|
background: var(--unit-secondary);
|
|
}
|
|
.weekly .badge-teal {
|
|
background: var(--unit-tertiary);
|
|
}
|
|
.weekly .badge-black {
|
|
background: #111;
|
|
}
|
|
.weekly .schedule {
|
|
display: grid;
|
|
grid-template-columns: repeat(5, 1fr);
|
|
height: calc(var(--weekly-height) - 80px);
|
|
}
|
|
|
|
/* .weekly .day dl {
|
|
display: grid;
|
|
grid-template-columns: 40px 1fr;
|
|
column-gap: 8px;
|
|
align-items: flex-start;
|
|
padding: 12px 0;
|
|
margin: 12px 0;
|
|
padding: 10px 12px;
|
|
background: #fafafa;
|
|
border-radius: 6px;
|
|
} */
|
|
|
|
.weekly .day dl dt {
|
|
display: block; /* 🔥 숨겨져 있던 거 다시 살림 */
|
|
font-size: 13px;
|
|
font-weight: 600;
|
|
color: #555;
|
|
line-height: 1.4;
|
|
white-space: nowrap;
|
|
margin-bottom: 6px;
|
|
}
|
|
|
|
.weekly .day dl dd.day-content {
|
|
margin: 0;
|
|
}
|
|
|
|
/* 일정 리스트 영역 */
|
|
.weekly .day-content {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 6px;
|
|
}
|
|
|
|
.weekly .day-card {
|
|
position: relative;
|
|
color: #555;
|
|
}
|
|
.weekly .day-card.today {
|
|
background-color: #f4e1d3;
|
|
color: #000;
|
|
}
|
|
.weekly .day-card.today .active {
|
|
background: rgba(255, 92, 0, 0.25);
|
|
font-weight: 700;
|
|
}
|
|
.weekly .day-title {
|
|
position: relative;
|
|
padding: 0 8px;
|
|
height: 48px;
|
|
font-size: 18px;
|
|
font-weight: 700;
|
|
border-bottom: 1px solid var(--border-base);
|
|
box-shadow: 0 1px 0 0 #fff;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
}
|
|
.weekly .day-title span {
|
|
font-weight: 400;
|
|
}
|
|
.weekly .day-list {
|
|
padding: 0 0 4px 0px;
|
|
height: calc(var(--weekly-height) - 48px - 80px);
|
|
overflow: auto;
|
|
}
|
|
.weekly .day-list li {
|
|
position: relative;
|
|
padding: 4px 8px 4px 32px;
|
|
font-size: 1.8rem;
|
|
word-break: keep-all;
|
|
}
|
|
.weekly .day-list li:first-child {
|
|
padding-top: 16px;
|
|
}
|
|
.weekly .day-list li:first-child::before {
|
|
top: 2.6rem;
|
|
}
|
|
.weekly .day-list li::before {
|
|
content: " ";
|
|
position: absolute;
|
|
left: 18px;
|
|
top: 1.6rem;
|
|
display: inline-block;
|
|
width: 4px;
|
|
height: 4px;
|
|
background-color: #555;
|
|
border-radius: 50%;
|
|
}
|
|
.weekly .day-list [class^="badge"] {
|
|
margin-bottom: 3px;
|
|
vertical-align: middle;
|
|
}
|
|
|
|
.weekly .day-card .day {
|
|
position: relative;
|
|
height: calc(var(--weekly-height) - 48px - 80px);
|
|
overflow: auto;
|
|
}
|
|
.weekly .day-card::after {
|
|
content: " ";
|
|
position: absolute;
|
|
width: 1px;
|
|
height: calc(var(--weekly-height) - 80px - 20px);
|
|
top: 50%;
|
|
right: 0;
|
|
translate: 0 -50%;
|
|
background: var(--border-base);
|
|
}
|
|
.weekly .day dl:has(.schedule-item) {
|
|
padding: 16px 8px;
|
|
gap: 8px;
|
|
display: flex;
|
|
align-items: flex-start;
|
|
justify-content: flex-start;
|
|
}
|
|
.weekly .day dl:has(.schedule-item) dt {
|
|
display: block;
|
|
font-size: 14px;
|
|
margin-top: 2px;
|
|
font-weight: 500;
|
|
white-space: nowrap;
|
|
}
|
|
.weekly .day dl:has(.schedule-item):not(:last-child) {
|
|
padding-top: 8px;
|
|
}
|
|
.weekly .day dl:has(.schedule-item):last-child {
|
|
border-top: 1px solid var(--border-base);
|
|
}
|
|
.weekly .day dl dt {
|
|
display: none;
|
|
}
|
|
.weekly .day .schedule-item {
|
|
vertical-align: middle;
|
|
position: relative;
|
|
display: block;
|
|
padding-left: 16px;
|
|
}
|
|
.weekly .day .schedule-item:before {
|
|
background-color: var(--text-primary);
|
|
border-radius: 50%;
|
|
content: " ";
|
|
display: inline-block;
|
|
height: 4px;
|
|
left: 8px;
|
|
position: absolute;
|
|
top: 1rem;
|
|
width: 4px;
|
|
}
|
|
.weekly .day .schedule-item [class^="badge"] {
|
|
position: relative;
|
|
top: 2px;
|
|
}
|
|
.weekly .main-issue {
|
|
height: 80px;
|
|
box-shadow: 0 -1px 0 0 #fff, 0 2px 0 0 #fff inset;
|
|
background: rgba(240, 237, 234, 0.5);
|
|
border-top: 1px solid rgba(0, 0, 0, 0.2);
|
|
display: grid;
|
|
grid-template-columns: 267px auto;
|
|
align-items: center;
|
|
}
|
|
.weekly .issue {
|
|
height: 80px;
|
|
padding: 4px 0;
|
|
}
|
|
.weekly .issue-header {
|
|
padding-left: 24px;
|
|
}
|
|
.weekly .issue-header h3 {
|
|
font-size: 24px;
|
|
}
|
|
.weekly .issue-list {
|
|
height: 72px;
|
|
overflow-y: auto;
|
|
flex-direction: column;
|
|
display: flex;
|
|
align-items: flex-start;
|
|
justify-content: center;
|
|
}
|
|
.weekly .issue-list li {
|
|
position: relative;
|
|
padding: 4px 8px 4px 32px;
|
|
font-size: 1.8rem;
|
|
color: var(--text-primary);
|
|
}
|
|
.weekly .issue-list li::before {
|
|
content: " ";
|
|
position: absolute;
|
|
left: 18px;
|
|
top: 1.6rem;
|
|
display: inline-block;
|
|
width: 4px;
|
|
height: 4px;
|
|
background-color: var(--text-primary);
|
|
border-radius: 50%;
|
|
}
|
|
|
|
.sales .person-list {
|
|
padding-top: 12px;
|
|
padding-right: 24px;
|
|
align-self: center;
|
|
flex-direction: column;
|
|
gap: 4px;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
}
|
|
.sales .person-list dl {
|
|
border-radius: 4px;
|
|
overflow: hidden;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
}
|
|
.sales .person-list dl dt {
|
|
width: 24px;
|
|
height: 24px;
|
|
color: #fff;
|
|
font-size: 12px;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
}
|
|
.sales .person-list dl dd {
|
|
width: 58px;
|
|
text-align: right;
|
|
padding: 0 8px;
|
|
font-weight: bold;
|
|
}
|
|
.sales .person-list dl dd small {
|
|
font-size: 10px;
|
|
}
|
|
.sales .person-list .individual01 {
|
|
background-color: var(--bg-individual01);
|
|
}
|
|
.sales .person-list .individual01 dt {
|
|
background: var(--unit-primary);
|
|
}
|
|
.sales .person-list .individual01 dd {
|
|
color: var(--unit-primary);
|
|
}
|
|
.sales .person-list .individual02 {
|
|
background-color: var(--bg-individual02);
|
|
}
|
|
.sales .person-list .individual02 dt {
|
|
background: var(--unit-secondary);
|
|
}
|
|
.sales .person-list .individual02 dd {
|
|
color: var(--unit-secondary);
|
|
}
|
|
|
|
.month .chart-legend {
|
|
position: absolute;
|
|
bottom: 5%;
|
|
width: 100%;
|
|
gap: 4px;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
}
|
|
.month .chart-legend li {
|
|
padding: 4px 8px;
|
|
gap: 4px;
|
|
white-space: nowrap;
|
|
border-radius: 2px;
|
|
font-size: 1.5rem;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
}
|
|
.month .chart-legend li.active {
|
|
border: 1px solid var(--border-base);
|
|
background: rgba(255, 92, 0, 0.25);
|
|
font-weight: 500;
|
|
}
|
|
.month .chart-legend li .legend-dot {
|
|
width: 12px;
|
|
height: 12px;
|
|
margin-top: 2px;
|
|
border: 1px solid var(--border-base);
|
|
}
|
|
.month .chart-wrap:has(.badge-month) canvas {
|
|
margin-top: 25px;
|
|
}
|
|
.month .chart-wrap canvas {
|
|
margin-top: 50px;
|
|
max-height: 180px;
|
|
}
|
|
|
|
.calendar.modal {
|
|
display: flex;
|
|
align-items: flex-end;
|
|
padding: 0;
|
|
}
|
|
.calendar.modal.closing {
|
|
animation: fadeIn 0.3s;
|
|
animation-iteration-count: 1;
|
|
}
|
|
.calendar.modal.closing .modal-content {
|
|
animation: slideDown 0.4s ease-out forwards;
|
|
}
|
|
.calendar .modal-content {
|
|
max-width: 100%;
|
|
max-height: calc(var(--window-inner-height) - 80px);
|
|
border-radius: 32px 32px 0 0;
|
|
border-top: 3px solid #fff;
|
|
background: var(--bg-calendar);
|
|
box-shadow: 0 -3px 30px 0 rgba(0, 0, 0, 0.8);
|
|
transform: translateY(100%);
|
|
overflow: hidden;
|
|
animation: slideUp 0.4s ease-out forwards;
|
|
}
|
|
.calendar .modal-header {
|
|
padding: 0 24px;
|
|
height: 80px;
|
|
}
|
|
.calendar .modal-body {
|
|
height: calc(var(--window-inner-height) - 160px);
|
|
}
|
|
.calendar .filter-options {
|
|
gap: 6px;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
}
|
|
.calendar .filter-options .checkbox-group {
|
|
border-radius: 4px;
|
|
padding: 8px 12px;
|
|
border: 1px solid rgba(0, 0, 0, 0.15);
|
|
font-size: 16px;
|
|
font-weight: 500;
|
|
gap: 8px;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
}
|
|
.calendar .filter-options .checkbox-group.green {
|
|
background: rgba(43, 143, 16, 0.05);
|
|
}
|
|
.calendar .filter-options .checkbox-group.green input[type="checkbox"]:checked {
|
|
border-color: #257a0e;
|
|
background-color: #2b8f10;
|
|
}
|
|
.calendar .filter-options .checkbox-group.purple {
|
|
background: rgba(124, 16, 143, 0.05);
|
|
}
|
|
.calendar
|
|
.filter-options
|
|
.checkbox-group.purple
|
|
input[type="checkbox"]:checked {
|
|
border-color: #6a0e7a;
|
|
background-color: #7c108f;
|
|
}
|
|
.calendar .filter-options .checkbox-group.teal {
|
|
background: rgba(4, 164, 175, 0.05);
|
|
}
|
|
.calendar .filter-options .checkbox-group.teal input[type="checkbox"]:checked {
|
|
border-color: #008b94;
|
|
background-color: #00a3ae;
|
|
}
|
|
.calendar .filter-options .checkbox-group.black {
|
|
background: rgba(0, 0, 0, 0.04);
|
|
}
|
|
.calendar .filter-options .checkbox-group.black input[type="checkbox"]:checked {
|
|
border-color: #000;
|
|
background-color: #111;
|
|
}
|
|
.calendar .filter-options .checkbox-group input[type="checkbox"] {
|
|
-moz-appearance: none;
|
|
appearance: none;
|
|
-webkit-appearance: none;
|
|
width: 16px;
|
|
height: 16px;
|
|
border-radius: 4px;
|
|
border: 1.5px solid rgba(0, 0, 0, 0.15);
|
|
background-color: #fff;
|
|
}
|
|
.calendar .filter-options .checkbox-group input[type="checkbox"]:checked {
|
|
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10' fill='none'%3E%3Cpath d='M3.67169 10C3.33979 10 3.03554 9.84159 2.84193 9.60398L0.186696 6.19818C0.10372 6.09258 0.0484027 5.98697 0.020744 5.85496C-0.00691467 5.72296 -0.00691467 5.59095 0.020744 5.45894C0.020744 5.32693 0.0760614 5.19493 0.159037 5.08932C0.242014 4.98371 0.32499 4.87811 0.435624 4.7989C0.546259 4.7197 0.656894 4.6669 0.795187 4.6405C0.933481 4.61409 1.07177 4.58769 1.21007 4.6405C1.34836 4.6405 1.48665 4.6933 1.59729 4.7725C1.70792 4.85171 1.81856 4.93091 1.90153 5.03652L3.64403 7.28064L8.06942 0.46906C8.20772 0.257848 8.45664 0.0994388 8.73323 0.0202343C9.00982 -0.0325687 9.28641 0.0202343 9.50768 0.152242C10.0055 0.442658 10.1438 1.04989 9.83958 1.52512L4.58443 9.52477C4.50145 9.65678 4.36316 9.78879 4.22486 9.86799C4.08657 9.9472 3.92062 10 3.75467 10C3.75467 10 3.72701 10 3.69935 10H3.67169Z' fill='white'/%3E%3C/svg%3E%0A");
|
|
background-position: center;
|
|
background-repeat: no-repeat;
|
|
background-size: 10px;
|
|
}
|
|
.calendar .date-navigation {
|
|
gap: 24px;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
}
|
|
.calendar .date-navigation .prev-btn,
|
|
.calendar .date-navigation .next-btn {
|
|
width: 32px;
|
|
height: 32px;
|
|
padding: 8px 12px;
|
|
gap: 8px;
|
|
border-radius: 50px;
|
|
border: 1px solid rgba(0, 0, 0, 0.4);
|
|
background: linear-gradient(180deg, #f0f0f0 0%, #e1e0de 100%);
|
|
background-position: center;
|
|
background-repeat: no-repeat;
|
|
background-size: 8px auto;
|
|
box-shadow: 0 1px 2px 1px rgba(0, 0, 0, 0.2);
|
|
text-indent: -9999px;
|
|
color: transparent;
|
|
font-size: 1px;
|
|
overflow: hidden;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
}
|
|
.calendar .date-navigation .prev-btn {
|
|
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='9' height='15' viewBox='0 0 9 15' fill='none'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M2.6859 7.5L9 1.45612L7.83532 -1.0182e-07L2.98003e-07 7.5L7.83532 15L9 13.5439L2.6859 7.5Z' fill='%23424242'/%3E%3C/svg%3E");
|
|
}
|
|
.calendar .date-navigation .next-btn {
|
|
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='9' height='15' viewBox='0 0 9 15' fill='none'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M6.3141 7.5L1.27298e-07 1.45612L1.16468 -1.0182e-07L9 7.5L1.16468 15L1.18404e-06 13.5439L6.3141 7.5Z' fill='%23424242'/%3E%3C/svg%3E");
|
|
}
|
|
.calendar .current-date {
|
|
position: relative;
|
|
font-size: 40px;
|
|
font-weight: 700;
|
|
background: linear-gradient(180deg, #777 0%, #000 100%);
|
|
background-clip: text;
|
|
-webkit-background-clip: text;
|
|
-webkit-text-fill-color: transparent;
|
|
}
|
|
.calendar .current-date:before {
|
|
content: attr(data-text);
|
|
position: absolute;
|
|
inset: 0;
|
|
pointer-events: none;
|
|
color: transparent;
|
|
z-index: -1;
|
|
filter: drop-shadow(0 0 1px rgb(255, 255, 255));
|
|
text-shadow: -1px -1px 0 rgb(255, 255, 255), 1px -1px 0 rgb(255, 255, 255),
|
|
-1px 1px 0 rgb(255, 255, 255), 1px 1px 0 rgb(255, 255, 255);
|
|
}
|
|
.calendar .flex {
|
|
gap: 38px;
|
|
padding-right: 16px;
|
|
}
|
|
.calendar .weekdays {
|
|
display: grid;
|
|
grid-template-columns: minmax(100px, 5.2083%) repeat(5, 1fr) minmax(
|
|
100px,
|
|
5.2083%
|
|
);
|
|
height: 32px;
|
|
background: linear-gradient(
|
|
180deg,
|
|
rgba(255, 255, 255, 0.2) 0%,
|
|
rgba(255, 255, 255, 0) 100%
|
|
),
|
|
#895d24;
|
|
border: 2px solid rgba(0, 0, 0, 0.05);
|
|
box-shadow: 0 -8px 16px 0 rgba(0, 0, 0, 0.2) inset;
|
|
font-size: 16px;
|
|
font-weight: 700;
|
|
text-align: center;
|
|
color: #fff;
|
|
filter: drop-shadow(0 0 1px rgba(0, 0, 0, 0.5));
|
|
text-shadow: -1px -1px 0 rgba(0, 0, 0, 0.5), 1px -1px 0 rgba(0, 0, 0, 0.5),
|
|
-1px 1px 0 rgba(0, 0, 0, 0.5), 1px 1px 0 rgba(0, 0, 0, 0.5);
|
|
}
|
|
.calendar .weekdays .weekday:not(:last-child) {
|
|
border-right: 0.5px solid rgba(0, 0, 0, 0.2);
|
|
}
|
|
.calendar .calendar-days {
|
|
height: calc(var(--window-inner-height) - 194px);
|
|
overflow-y: auto;
|
|
}
|
|
.calendar .days {
|
|
display: grid;
|
|
min-height: calc(var(--window-inner-height) - 194px);
|
|
}
|
|
.calendar .days.collapsed {
|
|
height: calc(var(--window-inner-height) - 194px);
|
|
max-height: none;
|
|
overflow: hidden;
|
|
}
|
|
.calendar .days.collapsed .week:not(.current-week-row) {
|
|
min-height: 0;
|
|
overflow: hidden;
|
|
}
|
|
.calendar .days.collapsed .week:not(.current-week-row) .day {
|
|
overflow: hidden;
|
|
}
|
|
.calendar .week {
|
|
display: grid;
|
|
grid-template-columns: minmax(100px, 5.2083%) repeat(5, 1fr) minmax(
|
|
100px,
|
|
5.2083%
|
|
);
|
|
min-height: 100px;
|
|
}
|
|
.calendar .week.current-week-row {
|
|
box-shadow: 0 0 32px 0 rgba(0, 0, 0, 0.15);
|
|
height: -moz-max-content;
|
|
height: max-content;
|
|
min-height: 100%;
|
|
}
|
|
.calendar .week .day {
|
|
padding: 8px 8px 16px 8px;
|
|
border-bottom: 1px solid rgba(0, 0, 0, 0.1);
|
|
color: var(--text-primary);
|
|
}
|
|
.calendar .week .day.other-month {
|
|
opacity: 0.5;
|
|
}
|
|
.calendar .week .day.current-week {
|
|
height: auto;
|
|
background: #fff;
|
|
}
|
|
.calendar .week .day.first-current-week {
|
|
position: relative;
|
|
}
|
|
.calendar .week .day.first-current-week::before {
|
|
content: " ";
|
|
display: block;
|
|
position: absolute;
|
|
left: 0;
|
|
top: 0;
|
|
width: 100vw;
|
|
height: 100%;
|
|
box-shadow: 0 0 32px 0 rgba(0, 0, 0, 0.15);
|
|
}
|
|
.calendar .week .day:not(:nth-child(7n + 1)) {
|
|
border-left: 1px solid rgba(0, 0, 0, 0.1);
|
|
}
|
|
.calendar .week .day:nth-child(7n) {
|
|
background: rgba(0, 107, 188, 0.03);
|
|
}
|
|
.calendar .week .day:nth-child(7n) .day-number {
|
|
color: #006bbc;
|
|
}
|
|
.calendar .week .day:nth-child(7n + 1) {
|
|
background: rgba(188, 0, 0, 0.03);
|
|
}
|
|
.calendar .week .day:nth-child(7n + 1) .day-number {
|
|
color: #bc0000;
|
|
}
|
|
.calendar .week .day.today {
|
|
color: var(--text-base);
|
|
font-weight: 500;
|
|
background: rgba(255, 92, 0, 0.25);
|
|
}
|
|
.calendar .week .day-content {
|
|
gap: 8px;
|
|
flex-direction: column;
|
|
display: flex;
|
|
align-items: flex-start;
|
|
justify-content: center;
|
|
}
|
|
.calendar .week .day-number {
|
|
font-size: 18px;
|
|
color: var(--text-primary);
|
|
}
|
|
.calendar .week .day dl {
|
|
padding: 16px 0;
|
|
gap: 8px;
|
|
display: flex;
|
|
align-items: flex-start;
|
|
justify-content: flex-start;
|
|
}
|
|
.calendar .week .day dl:has(.event-item) dt {
|
|
display: block;
|
|
font-size: 14px;
|
|
margin-bottom: 8px;
|
|
font-weight: 500;
|
|
white-space: nowrap;
|
|
}
|
|
.calendar .week .day dl:has(.event-item):not(:last-child) {
|
|
padding-top: 8px;
|
|
}
|
|
.calendar .week .day dl:has(.event-item):last-child {
|
|
border-top: 1px solid var(--border-base);
|
|
}
|
|
.calendar .week .day dl dt {
|
|
display: none;
|
|
}
|
|
.calendar .event-item {
|
|
position: relative;
|
|
gap: 4px;
|
|
padding: 0px 8px 0px 16px;
|
|
}
|
|
.calendar .event-item:before {
|
|
background-color: var(--text-primary);
|
|
border-radius: 50%;
|
|
content: " ";
|
|
display: inline-block;
|
|
height: 4px;
|
|
left: 8px;
|
|
position: absolute;
|
|
top: 1rem;
|
|
width: 4px;
|
|
}
|
|
.calendar .event-title em {
|
|
color: #f00;
|
|
}
|
|
.calendar .event-tag {
|
|
width: 20px;
|
|
height: 20px;
|
|
font-size: 14px;
|
|
line-height: 1;
|
|
font-weight: 500;
|
|
border-radius: 4px;
|
|
color: #fff;
|
|
margin: 0 2px;
|
|
padding: 2px;
|
|
display: inline-block;
|
|
text-align: center;
|
|
}
|
|
|
|
@keyframes fadeIn {
|
|
from {
|
|
opacity: 0;
|
|
}
|
|
to {
|
|
opacity: 1;
|
|
}
|
|
}
|
|
@keyframes slideUp {
|
|
from {
|
|
transform: translateY(100%);
|
|
}
|
|
to {
|
|
transform: translateY(0);
|
|
}
|
|
}
|
|
@keyframes slideDown {
|
|
from {
|
|
transform: translateY(0);
|
|
}
|
|
to {
|
|
transform: translateY(100%);
|
|
}
|
|
}
|
|
|
|
/*대시보드 헤더 누적수 표시 260128*/
|
|
/* 누적 배지 */
|
|
.cumulative-copy {
|
|
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 3px;
|
|
|
|
padding: 15px 20px;
|
|
border-radius: 6px;
|
|
position: absolute;
|
|
top: 8px;
|
|
left: 120px;
|
|
font-size: 20px;
|
|
font-weight: 600;
|
|
color: #737270;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.day-card.dimmed {
|
|
opacity: 0.35;
|
|
} |