diff --git a/src/frontend/src/screens/auction/AuctionDetailPage.tsx b/src/frontend/src/screens/auction/AuctionDetailPage.tsx
index 035c87b..021ddd9 100644
--- a/src/frontend/src/screens/auction/AuctionDetailPage.tsx
+++ b/src/frontend/src/screens/auction/AuctionDetailPage.tsx
@@ -268,13 +268,13 @@ export function AuctionDetailPage() {
diff --git a/src/frontend/src/screens/auction/AwardComparePage.tsx b/src/frontend/src/screens/auction/AwardComparePage.tsx
index 240a887..b0efb94 100644
--- a/src/frontend/src/screens/auction/AwardComparePage.tsx
+++ b/src/frontend/src/screens/auction/AwardComparePage.tsx
@@ -158,24 +158,24 @@ export function AwardComparePage() {
| 비교 항목 | +비교 항목 | {quotes.map((qc2) => (- {qc2.recommended && 최적 추천} + {qc2.recommended && 최적 추천} | ))} @@ -183,14 +183,14 @@ export function AwardComparePage() {|
|---|---|---|---|
| 총액 (VAT 별도) | +총액 (VAT 별도) | {quotes.map((qc2) => ( -- + | + {formatWon(qc2.totalPrice)} {qc2.isLowestPrice ? '최저가' : `+${qc2.priceDeltaPct}% 차이`} @@ -198,24 +198,24 @@ export function AwardComparePage() { ))} |
| 납기 (시공 완료) | +납기 (시공 완료) | {quotes.map((qc2) => ( -+ | {qc2.leadDays}일 {qc2.isShortestLead && ( - 최단 납기 + 최단 납기 )} | ))}
| 업체 평판 (최근 1년) | +업체 평판 (최근 1년) | {quotes.map((qc2) => { const best = qc2.reputation === Math.max(...quotes.map((x) => x.reputation)); return ( -- + |
+
|
| 종합 점수 | +종합 점수 | {quotes.map((qc2) => ( -+ |
{qc2.recommended ? (
-
+
{qc2.score.toFixed(1)}
) : (
{qc2.score.toFixed(1)}
diff --git a/src/frontend/src/screens/auction/auction.css b/src/frontend/src/screens/auction/auction.css
index 3d94a51..9de0811 100644
--- a/src/frontend/src/screens/auction/auction.css
+++ b/src/frontend/src/screens/auction/auction.css
@@ -291,7 +291,7 @@
gap: var(--space-3);
}
/* 비교표 컬럼 선택 버튼(낙찰 대상 선택) — 헤더 텍스트 스택을 버튼으로 감싼다. */
-.kx-compare__co-select {
+.kx-bidcmp__co-select {
display: flex;
flex-direction: column;
align-items: center;
@@ -302,7 +302,7 @@
cursor: pointer;
padding: 0;
}
-.kx-compare__co-select[aria-pressed='true'] .kx-compare__co-name {
+.kx-bidcmp__co-select[aria-pressed='true'] .kx-bidcmp__co-name {
color: var(--color-primary, var(--color-ai-accent));
}
@@ -579,7 +579,7 @@
@media (prefers-reduced-motion: reduce) {
.kx-rank__ws.is-live { animation: none; }
}
-.kx-toggle {
+.kx-atoggle {
display: inline-flex;
align-items: center;
gap: 8px;
@@ -589,7 +589,7 @@
border: none;
cursor: pointer;
}
-.kx-toggle__track {
+.kx-atoggle__track {
width: 38px;
height: 20px;
border-radius: var(--radius-pill);
@@ -597,10 +597,10 @@
position: relative;
transition: background 0.15s ease;
}
-.kx-toggle__track.is-on {
+.kx-atoggle__track.is-on {
background: var(--color-primary-600);
}
-.kx-toggle__knob {
+.kx-atoggle__knob {
position: absolute;
top: 2px;
left: 2px;
@@ -610,7 +610,7 @@
background: var(--color-white);
transition: transform 0.15s ease;
}
-.kx-toggle__track.is-on .kx-toggle__knob {
+.kx-atoggle__track.is-on .kx-atoggle__knob {
transform: translateX(18px);
}
@@ -771,48 +771,48 @@
}
/* 비교 매트릭스 */
-.kx-compare {
+.kx-bidcmp {
width: 100%;
border-collapse: collapse;
font-size: var(--fs-body);
}
-.kx-compare th,
-.kx-compare td {
+.kx-bidcmp th,
+.kx-bidcmp td {
padding: var(--space-4);
border-bottom: var(--border-card);
text-align: center;
}
-.kx-compare thead th {
+.kx-bidcmp thead th {
background: var(--color-neutral-050);
font-weight: var(--fw-bold);
color: var(--color-neutral-900);
}
-.kx-compare thead th.kx-compare__metric-col,
-.kx-compare td.kx-compare__metric-col {
+.kx-bidcmp thead th.kx-bidcmp__metric-col,
+.kx-bidcmp td.kx-bidcmp__metric-col {
text-align: left;
width: 22%;
font-weight: var(--fw-semibold);
color: var(--color-neutral-700);
}
-.kx-compare__co {
+.kx-bidcmp__co {
position: relative;
}
-.kx-compare__co-name {
+.kx-bidcmp__co-name {
font-size: var(--fs-h3);
font-weight: var(--fw-bold);
color: var(--color-neutral-900);
}
-.kx-compare__co--rec .kx-compare__co-name {
+.kx-bidcmp__co--rec .kx-bidcmp__co-name {
color: var(--color-primary-700);
}
-.kx-compare__co-sub {
+.kx-bidcmp__co-sub {
display: block;
font-size: var(--fs-micro);
font-weight: var(--fw-regular);
color: var(--color-neutral-500);
margin-top: 2px;
}
-.kx-compare__rec-tag {
+.kx-bidcmp__rec-tag {
display: inline-block;
margin-bottom: 6px;
font-size: var(--fs-nano);
@@ -822,33 +822,33 @@
padding: 2px 8px;
border-radius: var(--radius-pill);
}
-.kx-compare__best {
+.kx-bidcmp__best {
background: #f0fbf6;
color: var(--color-success);
font-weight: var(--fw-bold);
}
-.kx-compare__val-strong {
+.kx-bidcmp__val-strong {
font-size: var(--fs-h3);
font-weight: var(--fw-bold);
}
-.kx-compare__note {
+.kx-bidcmp__note {
display: block;
font-size: var(--fs-micro);
color: var(--color-neutral-500);
margin-top: 2px;
}
-.kx-compare__note--best {
+.kx-bidcmp__note--best {
color: var(--color-success);
}
-.kx-compare__score {
+.kx-bidcmp__score {
background: var(--color-ai-surface);
}
-.kx-compare__score-val {
+.kx-bidcmp__score-val {
font-size: var(--fs-display);
font-weight: var(--fw-bold);
color: var(--color-ai-accent);
}
-.kx-compare__star {
+.kx-bidcmp__star {
color: var(--color-warning);
}
diff --git a/src/frontend/src/screens/contractor/contractor.css b/src/frontend/src/screens/contractor/contractor.css
index e615e61..6ae9196 100644
--- a/src/frontend/src/screens/contractor/contractor.css
+++ b/src/frontend/src/screens/contractor/contractor.css
@@ -116,13 +116,13 @@
}
/* 시공 스테퍼 */
-.kx-stepper {
+.kx-cstepper {
position: relative;
display: flex;
justify-content: space-between;
margin: var(--space-5) var(--space-2) var(--space-5);
}
-.kx-stepper::before {
+.kx-cstepper::before {
content: '';
position: absolute;
top: 16px;
diff --git a/src/frontend/src/screens/floorplan/BoothLayoutEditorPage.tsx b/src/frontend/src/screens/floorplan/BoothLayoutEditorPage.tsx
index b508385..448f655 100644
--- a/src/frontend/src/screens/floorplan/BoothLayoutEditorPage.tsx
+++ b/src/frontend/src/screens/floorplan/BoothLayoutEditorPage.tsx
@@ -501,13 +501,13 @@ export function BoothLayoutEditorPage() {
{summary && (
<>
부스 {summary.boothCount} / {summary.targetBoothCount}
-
+
판매면적 {summary.salesAreaM2.toLocaleString()}㎡
>
)}
{localBooths.length > 0 && (
<>
-
+
신규 배치 {localBooths.length}개(미저장)
);
diff --git a/src/frontend/src/screens/floorplan/editor.css b/src/frontend/src/screens/floorplan/editor.css
index ca4e21c..7f1a558 100644
--- a/src/frontend/src/screens/floorplan/editor.css
+++ b/src/frontend/src/screens/floorplan/editor.css
@@ -208,7 +208,7 @@
font-size: var(--fs-body);
color: var(--color-neutral-700);
}
-.kx-switch {
+.kx-eswitch {
width: 34px;
height: 18px;
border-radius: var(--radius-pill);
@@ -217,10 +217,10 @@
position: relative;
transition: background 0.15s ease;
}
-.kx-switch.is-on {
+.kx-eswitch.is-on {
background: var(--color-primary-600);
}
-.kx-switch__knob {
+.kx-eswitch__knob {
position: absolute;
top: 2px;
left: 2px;
@@ -230,7 +230,7 @@
background: var(--color-white);
transition: left 0.15s ease;
}
-.kx-switch.is-on .kx-switch__knob {
+.kx-eswitch.is-on .kx-eswitch__knob {
left: 18px;
}
@@ -352,7 +352,7 @@
background: var(--color-ai-surface, #efeaff);
color: var(--color-ai-accent, #6d4aff);
}
-.kx-dot {
+.kx-edot {
width: 3px;
height: 3px;
border-radius: 50%;
diff --git a/src/frontend/src/screens/gallery/VisualizationGalleryPage.tsx b/src/frontend/src/screens/gallery/VisualizationGalleryPage.tsx
index 3196943..80ad7f7 100644
--- a/src/frontend/src/screens/gallery/VisualizationGalleryPage.tsx
+++ b/src/frontend/src/screens/gallery/VisualizationGalleryPage.tsx
@@ -133,15 +133,15 @@ export function VisualizationGalleryPage() {
{lightbox && (
setLightbox(null)} />
-
+
-
@@ -218,7 +218,7 @@ export function VisitorRegistrationDashboardPage() {
+
diff --git a/src/frontend/src/screens/gallery/gallery.css b/src/frontend/src/screens/gallery/gallery.css
index 5756d66..904ad2d 100644
--- a/src/frontend/src/screens/gallery/gallery.css
+++ b/src/frontend/src/screens/gallery/gallery.css
@@ -112,7 +112,7 @@
}
/* 라이트박스 */
-.kx-lightbox {
+.kx-glightbox {
position: relative;
z-index: 1;
width: min(880px, 94vw);
@@ -123,7 +123,7 @@
padding: var(--space-5);
box-shadow: var(--shadow-level2);
}
-.kx-lightbox__close {
+.kx-glightbox__close {
position: absolute;
top: var(--space-3);
right: var(--space-3);
@@ -134,25 +134,25 @@
height: 32px;
color: var(--color-neutral-700);
}
-.kx-lightbox__stage {
+.kx-glightbox__stage {
margin-bottom: var(--space-4);
}
-.kx-lightbox__dl {
+.kx-glightbox__dl {
display: grid;
grid-template-columns: 1fr 1fr 1fr;
gap: var(--space-3);
font-size: var(--fs-caption);
}
-.kx-lightbox__dl dt {
+.kx-glightbox__dl dt {
color: var(--color-neutral-500);
margin-bottom: 2px;
}
-.kx-lightbox__dl dd {
+.kx-glightbox__dl dd {
margin: 0;
color: var(--color-neutral-900);
word-break: break-all;
}
-.kx-lightbox__notice {
+.kx-glightbox__notice {
margin-top: var(--space-3);
font-size: var(--fs-micro);
color: var(--color-neutral-500);
diff --git a/src/frontend/src/screens/visitor/LeadScoringPage.tsx b/src/frontend/src/screens/visitor/LeadScoringPage.tsx
index 58da43e..184376f 100644
--- a/src/frontend/src/screens/visitor/LeadScoringPage.tsx
+++ b/src/frontend/src/screens/visitor/LeadScoringPage.tsx
@@ -311,7 +311,7 @@ function LeadDetail({
{lightbox.shotPreset === 'S5' ? (
-
-
+
{lightbox.notice} +{lightbox.notice}
|