/* PC 전용 스타일 (768px 이상) - Corporate Navy 테마 */

/* ========================================
   Corporate Navy 색상 변수
   ======================================== */
:root {
  --navy-deep: #0f2942;
  --navy: #1e3a5f;
  --action-blue: #0f62fe;
  --hover-blue: #0353e9;
  --active-blue: #002d9c;
  --success: #059669;
  --warning: #f59e0b;
  --danger: #dc2626;
  --text-primary: #1e293b;
  --text-muted: #64748b;
  --bg-light: #f8fafc;
  --border-light: #e2e8f0;
  --pc-header-height: 48px;
  --pc-footer-height: 52px;
}

/* PC 발주현황 숨은 개선형 표면: 조회 카드와 한 행 편집 모달만 소유한다. */
.parts-procurement-preview {
  container-type: inline-size;
  min-height: 0;
  height: 100%;
  overflow: hidden;
  padding: 12px 14px 28px;
  background: #f7f9fc;
}

.parts-procurement-preview:not(.hidden) {
  display: flex;
  flex-direction: column;
}

.parts-procurement-preview-toolbar,
.parts-procurement-preview-search-wrap,
.parts-procurement-preview-actions,
.parts-procurement-preview-badges,
.parts-procurement-preview-card-actions {
  display: flex;
  align-items: center;
}

.parts-procurement-preview-toolbar {
  flex-shrink: 0;
  justify-content: space-between;
  gap: 12px;
  padding: 8px;
  margin-bottom: 8px;
  border: 1px solid #d8e1ee;
  border-radius: 12px;
  background: #fff;
}

.parts-procurement-preview-search-wrap {
  flex: 1;
  min-width: 0;
  gap: 8px;
}

.parts-procurement-preview-sync {
  flex: 0 0 auto;
  min-width: 54px;
  color: #64748b;
  font-size: 11px;
  font-weight: 700;
}

.parts-procurement-preview-search-wrap input {
  width: min(440px, 100%);
  min-width: 160px;
  padding: 8px 38px 8px 12px;
  border: 1px solid #cbd5e1;
  border-radius: 9px;
  background: white;
  font-size: 13px;
}

.parts-procurement-preview-search-wrap [data-parts-preview-search-clear] {
  width: 30px;
  height: 30px;
  margin-left: -42px;
  display: grid;
  place-items: center;
  color: #64748b;
}

.parts-procurement-preview-search-wrap [data-parts-preview-filter] {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 102px;
  gap: 6px;
  padding: 8px;
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  background: #fff;
  color: #334155;
  font-size: 13px;
}

.parts-procurement-preview-search-wrap button svg {
  width: 16px;
  height: 16px;
}

.parts-procurement-preview-actions {
  gap: 6px;
}

.parts-procurement-preview-actions button,
.parts-procurement-preview-card-actions button,
.parts-procurement-preview-editor button {
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  background: #fff;
  color: #334155;
  font-size: 12px;
  font-weight: 700;
}

.parts-procurement-preview-actions button {
  padding: 7px 10px;
}

.parts-procurement-preview-actions [data-parts-preview-new],
.parts-procurement-preview-editor button.is-primary {
  border-color: #2563eb;
  background: #2563eb;
  color: #fff;
}

.parts-procurement-preview-list {
  flex: 1;
  min-height: 0;
  overflow: auto;
  overflow-anchor: none;
  scrollbar-gutter: stable;
  padding-bottom: 16px;
  display: grid;
  grid-template-columns: 1fr;
  grid-auto-rows: max-content;
  align-content: start;
  align-items: start;
  gap: 9px;
}

.parts-procurement-preview-card {
  position: relative;
  display: grid;
  grid-template-columns: 68px 160px minmax(150px, 0.9fr) minmax(200px, 1.1fr) 64px 44px;
  grid-template-areas: "status identity subject latest owner actions";
  align-items: stretch;
  column-gap: 10px;
  min-height: 78px;
  padding: 7px 4px 7px 8px;
  border: 1px solid #dbe3ee;
  border-left: 5px solid #dbe3ee;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}

.parts-procurement-preview-card:hover {
  border-color: #93c5fd;
  background: #fbfdff;
}

.parts-procurement-preview-card.is-schedule-assigned {
  border-left-color: #f59e0b;
}

.parts-procurement-preview-card.is-status-open {
  z-index: 8;
}

.parts-procurement-preview-card.notification-target-highlight {
  outline: 3px solid rgba(37, 99, 235, 0.34);
  outline-offset: -3px;
}

.parts-procurement-preview-card.has-ticket-badge {
  border: 3px solid #ef4444;
  box-shadow:
    0 0 0 3px rgba(239, 68, 68, 0.3),
    0 4px 12px rgba(0, 0, 0, 0.15);
  animation: border-pulse 2s ease-in-out infinite;
}

.parts-procurement-preview-company { display: flex; align-items: center; gap: 4px; min-width: 0; }
.parts-procurement-preview-company strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #0f172a; font-size: 14px; }
.parts-procurement-preview-linked { flex: none; padding: 2px 6px; border-radius: 999px; background: #dbeafe; color: #1d4ed8; font-size: 9px; font-weight: 900; white-space: nowrap; }

.parts-procurement-preview-card-actions svg {
  width: 15px;
  height: 15px;
}

.parts-procurement-preview-identity {
  grid-area: identity;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-content: center;
  min-width: 0;
  gap: 4px;
}

.parts-procurement-preview-identity > span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.parts-procurement-preview-identity > span { color: #475569; font-size: 12px; font-weight: 800; }

.parts-procurement-preview-badges {
  grid-column: 1 / -1;
  align-self: end;
  flex-wrap: wrap;
  gap: 3px;
}
.parts-procurement-preview-badges > span {
  padding: 3px 5px;
  min-width: 62px;
  text-align: center;
  border-radius: 999px;
  background: #eef2f7;
  color: #475569;
  font-size: 9px;
  font-weight: 800;
  white-space: nowrap;
}
.parts-procurement-preview-badges [data-preview-status="sale"][data-preview-value="AS출장"] { background: #dcfce7; color: #166534; }
.parts-procurement-preview-badges [data-preview-status="sale"][data-preview-value="고객발송"] { background: #dbeafe; color: #1d4ed8; }
.parts-procurement-preview-badges [data-preview-status="sale"][data-preview-value="미지정"] { background: #f1f5f9; color: #64748b; }
.parts-procurement-preview-badges [data-preview-status="receipt"][data-preview-value="수신"] { background: #ede9fe; color: #6d28d9; }
.parts-procurement-preview-badges [data-preview-status="receipt"][data-preview-value="미수신"] { background: #ffedd5; color: #9a3412; }
.parts-procurement-preview-status { position: relative; grid-area: status; align-self: center; }
.parts-procurement-preview-status > button { display: grid; grid-template-columns: 1fr 10px; grid-template-areas: "label arrow" "date arrow"; align-items: center; gap: 0 3px; width: 72px; min-height: 40px; padding: 3px 5px; border: 1px solid #bae6fd; border-radius: 7px; background: #e0f2fe; color: #075985; font-size: 11px; font-weight: 800; white-space: nowrap; }
.parts-procurement-preview-status > button > span { grid-area: label; }
.parts-procurement-preview-status > button > time { grid-area: date; min-height: 1.5em; }
.parts-procurement-preview-status time { font-weight: 700; font-variant-numeric: tabular-nums; }
.parts-procurement-preview-status > button svg { grid-area: arrow; width: 10px; height: 10px; transition: transform 160ms ease; }
.parts-procurement-preview-status > button[aria-expanded="true"] svg { transform: rotate(180deg); }
.parts-procurement-preview-delivery-date { display: block; width: 100%; margin-top: 3px; overflow: hidden; color: #64748b; font-size: 10px; font-weight: 700; line-height: 1.2; text-align: center; white-space: nowrap; }
.parts-procurement-preview-status-history { position: absolute; z-index: 4; top: calc(100% + 5px); left: 0; display: grid; grid-template-rows: 0fr; width: 122px; overflow: hidden; border-radius: 9px; background: #fff; box-shadow: 0 8px 22px rgba(15, 23, 42, 0.18); opacity: 0; transform: translateY(-4px); transition: grid-template-rows 160ms ease, opacity 160ms ease, transform 160ms ease; }
.parts-procurement-preview-status-history.is-open { grid-template-rows: 1fr; opacity: 1; transform: translateY(0); }
.parts-procurement-preview-status-history > div { min-height: 0; }
.parts-procurement-preview-status-history span { display: grid; grid-template-columns: 4em 5ch; justify-content: space-between; padding: 6px 8px; color: #334155; font-size: 12px; white-space: nowrap; }
.parts-procurement-preview-status-history span + span { border-top: 1px solid #e2e8f0; }
.parts-procurement-preview-status-history time { color: #64748b; }
.parts-procurement-preview-status [data-progress-status] { background: var(--progress-bg); color: var(--progress-color); border-color: var(--progress-border); }
.parts-procurement-preview-status [data-progress-status="접수"] { --progress-bg: #f1f5f9; --progress-color: #475569; --progress-border: #cbd5e1; }
.parts-procurement-preview-status [data-progress-status="문의중"] { --progress-bg: #fff7ed; --progress-color: #9a3412; --progress-border: #fed7aa; }
.parts-procurement-preview-status [data-progress-status="견적발행"] { --progress-bg: #e0f2fe; --progress-color: #075985; --progress-border: #7dd3fc; }
.parts-procurement-preview-status [data-progress-status="발주완료"] { --progress-bg: #f3e8ff; --progress-color: #7e22ce; --progress-border: #d8b4fe; }
.parts-procurement-preview-status [data-progress-status="입고"] { --progress-bg: #dcfce7; --progress-color: #166534; --progress-border: #86efac; }
.parts-procurement-preview-status [data-progress-status="출하완료"] { --progress-bg: #ccfbf1; --progress-color: #115e59; --progress-border: #5eead4; }

.parts-procurement-preview-subject {
  grid-area: subject;
  min-width: 0;
  display: grid;
  align-content: center;
  gap: 5px;
  padding: 0 8px;
  border-left: 1px solid #e2e8f0;
  border-right: 1px solid #e2e8f0;
}

.parts-procurement-preview-subject b {
  min-width: 0;
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  color: #24364b;
  font-size: 12px;
  line-height: 1.4;
}

.parts-procurement-preview-price { color: #1e3a8a; font-size: 12px; font-weight: 800; }
.parts-procurement-preview-latest { grid-area: latest; min-width: 0; align-self: center; }
.parts-thread-latest-entry { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 5px; min-width: 0; }
.parts-thread-latest-entry p,
.parts-thread-latest-entry .parts-thread-change-summary { min-width: 0; width: auto; overflow: hidden; margin: 0; color: #334155; font-size: 12px; line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; }
.parts-thread-latest-entry .parts-thread-change-text { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.parts-procurement-preview-latest small { overflow: hidden; color: #64748b; font-size: 10px; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }

.parts-procurement-preview-owner {
  grid-area: owner;
  min-width: 0;
  display: grid;
  align-content: center;
  gap: 2px;
}
.parts-procurement-preview-owner span { color: #64748b; font-size: 10px; font-weight: 700; }
.parts-procurement-preview-owner strong { overflow: hidden; color: #334155; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.parts-procurement-preview-owner[data-owner-state="empty"] strong { color: #94a3b8; }

.parts-procurement-preview-card-actions {
  grid-area: actions;
  align-content: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 4px;
}
.parts-procurement-preview-card-actions button { min-height: 30px; padding: 5px 8px; }

.parts-procurement-preview-detail {
  grid-area: detail;
  grid-column: 1 / -1;
  padding: 13px 8px 5px;
  border-top: 1px solid #e2e8f0;
  margin-top: 9px;
}

.parts-procurement-preview-card.is-expanded {
  grid-template-areas:
    "status identity subject latest owner actions"
    "detail detail detail detail detail detail";
}

.parts-procurement-preview-detail dl {
  display: grid;
  grid-template-columns: 1fr;
  gap: 6px;
}
.parts-procurement-preview-detail dl div { min-width: 0; display: grid; grid-template-columns: 72px minmax(0, 1fr); align-items: baseline; gap: 8px; }
.parts-procurement-preview-detail dt { color: #64748b; font-size: 11px; font-weight: 800; }
.parts-procurement-preview-detail dd { margin: 3px 0 0; color: #1e293b; font-size: 14px; line-height: 1.5; white-space: pre-wrap; }
.parts-procurement-preview-empty { padding: 48px 16px; text-align: center; color: #64748b; }
.parts-procurement-preview-discussion { margin-top: 12px; }
.parts-procurement-preview-discussion h4 { font-size: 14px; font-weight: 800; }
[data-parts-preview-thread-form] { display: grid; grid-template-columns: minmax(0, 1fr) 64px; gap: 8px; }
[data-parts-preview-thread-input] { padding: 10px; border: 1px solid #cbd5e1; border-radius: 8px; resize: vertical; font-size: 14px; }
[data-parts-preview-thread-form] button { align-self: end; padding: 10px; border-radius: 8px; background: #2563eb; color: white; }
[data-parts-preview-thread-state] { grid-column: 1 / -1; font-size: 12px; color: #64748b; }
@container (max-width: 900px) {
  .parts-procurement-preview-card {
    grid-template-columns: 72px minmax(100px, 1fr) 70px 48px;
    grid-template-areas: "status identity owner actions" "subject subject latest latest";
    row-gap: 12px;
  }
  .parts-procurement-preview-card.is-expanded {
    grid-template-areas: "status identity owner actions" "subject subject latest latest" "detail detail detail detail";
  }
}

/* 기본 폰트 설정 */
* {
  font-family:
    "Inter",
    -apple-system,
    BlinkMacSystemFont,
    sans-serif;
}

/* 바디 설정 - 밝은 배경 */
body {
  background-color: var(--bg-light) !important;
  margin: 0;
  padding: 0;
}

/* ========================================
   PC 2패널 레이아웃
   티켓차트(483px) + 스케줄차트(나머지)
   ======================================== */
/* PC 공통 헤더 (파트리스트와 동일) */
#pc-common-header {
  position: sticky;
  top: 0;
  z-index: 60;
  height: var(--pc-header-height);
  box-sizing: border-box;
}

/* 공통 헤더가 있으므로 left-panel 내 기존 타이틀/로고 행 숨김 */
#mobile-header-row {
  display: none !important;
}

#pc-layout-wrapper {
  display: flex;
  min-height: calc(100vh - var(--pc-header-height) - var(--pc-footer-height));
  min-height: calc(100dvh - var(--pc-header-height) - var(--pc-footer-height));
  gap: 0;
  margin-left: 0;
}

/* 티켓 패널 (좌측) - 420px * 1.15 = 483px */
#left-panel {
  width: 483px;
  min-width: 483px;
  max-width: 483px;
  background: var(--bg-light);
  border-right: 0;
  overflow-y: auto;
  height: calc(100vh - var(--pc-header-height) - var(--pc-footer-height));
  height: calc(100dvh - var(--pc-header-height) - var(--pc-footer-height));
  position: sticky;
  top: var(--pc-header-height);
  scrollbar-width: none;
  -ms-overflow-style: none;
}
#left-panel::-webkit-scrollbar {
  display: none;
}

/* 스케줄 패널 (우측) */
#right-panel {
  flex: 1;
  background: #ffffff;
  padding: 24px;
  overflow: hidden;
  height: calc(100vh - var(--pc-header-height) - var(--pc-footer-height));
  height: calc(100dvh - var(--pc-header-height) - var(--pc-footer-height));
  scrollbar-width: none;
  -ms-overflow-style: none;
  display: flex;
  flex-direction: column;
  min-width: 0;
  position: relative;
}
#right-panel::-webkit-scrollbar {
  display: none;
}

/* 오른쪽 패널 헤더 */
#right-panel .panel-header {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  gap: 16px;
  margin-bottom: 16px;
  padding-bottom: 16px;
  border-bottom: 0;
  flex-wrap: wrap;
  flex-shrink: 0;
  position: sticky;
  top: 0;
  z-index: 5;
  background: var(--ascp-surface-canvas, #f5f5f5);
}

#right-panel .panel-title {
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--text-primary);
  min-width: 0;
  white-space: nowrap;
}

#right-panel .panel-title .pc-stats-actions {
  display: inline-flex;
  align-items: center;
  gap: 1em;
  margin-left: 0.45em;
}

#right-panel .panel-title .pc-stats-print-btn {
  height: 30px;
  border-radius: 7px;
  font-size: 12px;
  line-height: 1;
  flex-shrink: 0;
}

#main-mode-switch-rail {
  display: none;
}

.schedule-actions {
  margin-left: auto;
  display: flex;
  gap: 8px;
}

.pc-mode-switch-rail {
  display: grid;
  grid-template-columns: repeat(6, 76px);
  gap: 4px;
  margin-left: auto;
  justify-content: end;
  background: #f1f5f9;
  padding: 3px;
  border-radius: 9px;
  border: 1px solid #e2e8f0;
}

.pc-mode-switch-btn {
  min-width: 0;
  height: 28px;
  border: 1px solid #d4dce5;
  border-radius: 6px;
  background: #e8edf2;
  color: #334155;
  font-size: 12px;
  font-weight: 600;
  line-height: 1;
  cursor: pointer;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  transition: all 150ms ease;
}

.pc-mode-switch-btn:hover {
  color: #0f172a;
}

.pc-mode-switch-btn.is-active {
  border-color: #315d82;
  background: #3f6f99;
  color: #ffffff;
  font-weight: 700;
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.08);
}

@media (min-width: 768px) and (max-width: 959px) {
  .pc-mode-switch-rail {
    flex: 1 1 100%;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    margin-left: 0;
    justify-content: start;
    overflow-x: auto;
    overflow-y: hidden;
    overscroll-behavior-x: contain;
  }
}

.schedule-action-btn {
  padding: 8px 12px;
  background: var(--action-blue);
  color: #fff;
  border: none;
  border-radius: 8px;
  font-weight: 600;
  font-size: 12px;
  cursor: pointer;
  transition:
    transform 0.15s ease,
    box-shadow 0.15s ease;
  box-shadow: 0 6px 14px rgba(15, 98, 254, 0.2);
}

.schedule-action-btn:hover {
  transform: translateY(-1px);
  box-shadow: 0 10px 18px rgba(15, 98, 254, 0.25);
}

.schedule-action-btn:active {
  transform: translateY(0);
}

/* 주차 네비게이션 */
.week-nav {
  display: flex;
  align-items: center;
  gap: 6px;
  line-height: 1.35;
}

.week-nav-controls {
  display: grid;
  grid-template-columns: 28px 72px 92px 42px 28px;
  align-items: center;
  gap: 6px;
  line-height: 1.35;
}

.week-nav-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border: 1px solid transparent;
  border-radius: 6px;
  background: transparent;
  cursor: pointer;
  color: var(--text-muted);
  transition: all 0.15s ease;
}

.week-nav-btn:hover {
  background: #ffffff;
  border-color: #cbd5e1;
  color: #0f2942;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.05);
}

#week-label {
  font-size: 13px;
  font-weight: 500;
  color: var(--text-primary);
  width: 72px;
  text-align: center;
  line-height: 1.35;
  white-space: nowrap;
}

.week-label-clickable {
  cursor: pointer;
  transition: color 0.2s;
}

.week-label-clickable:hover {
  color: var(--action-blue);
}

.week-dates {
  font-size: 12px;
  color: var(--text-muted);
  width: 92px;
  text-align: center;
  white-space: nowrap;
}

.week-number {
  font-size: 11px;
  font-weight: 500;
  color: var(--text-muted);
  background: var(--bg-light);
  padding: 2px 6px;
  border-radius: 4px;
  width: 42px;
  text-align: center;
  white-space: nowrap;
}

/* 인원별 스케줄 카드 컨테이너 */
.schedule-viewport {
  flex: 1;
  min-height: 0;
  overflow: auto;
  scrollbar-width: none;
  -ms-overflow-style: none;
}

.schedule-viewport::-webkit-scrollbar {
  display: none;
}

.schedule-cards {
  --pc-schedule-scale: 1;
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding-bottom: 300px;
  /* 하단 여백 - 드롭다운 공간 확보 */
  width: calc(var(--pc-schedule-scale) * 100%);
  min-height: calc(var(--pc-schedule-scale) * 100%);
  zoom: var(--pc-schedule-scale);
  transform-origin: top left;
}

.pc-schedule-scale-controls {
  position: absolute;
  right: 18px;
  bottom: 18px;
  z-index: 8;
  display: grid;
  grid-template-columns: 38px 58px 38px;
  gap: 4px;
  padding: 5px;
  border: 1px solid rgba(15, 23, 42, 0.16);
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.94);
  box-shadow: 0 10px 28px rgba(15, 23, 42, 0.18);
  backdrop-filter: blur(8px);
}

.pc-schedule-scale-controls[hidden] {
  display: none;
}

.pc-schedule-scale-controls button {
  height: 34px;
  border: 0;
  border-radius: 8px;
  background: #eef2f7;
  color: #1e293b;
  font-size: 18px;
  font-weight: 800;
  line-height: 1;
  cursor: pointer;
}

.pc-schedule-scale-controls button:hover {
  background: #dbeafe;
  color: #1d4ed8;
}

#btn-pc-schedule-scale-reset {
  background: #1e3a5f;
  color: #ffffff;
  font-size: 12px;
  font-variant-numeric: tabular-nums;
}

.pc-schedule-scale-controls button:disabled {
  cursor: default;
  opacity: 0.42;
}

.pc-stats-shell,
.pc-app-guide-shell,
.pc-daily-summary-shell,
.pc-manual-library-shell {
  flex: 1;
  min-height: 0;
  overflow: hidden;
  border: 1px solid #d6e0ee;
  border-radius: 10px;
  background: #eef3f8;
}

.pc-manual-library-shell {
  position: relative;
}

.pc-manual-library-fullscreen-btn {
  position: absolute;
  top: 10px;
  right: 10px;
  z-index: 3;
  width: 36px;
  height: 36px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(15, 23, 42, 0.14);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.94);
  color: #1f2937;
  box-shadow: 0 8px 18px rgba(15, 23, 42, 0.12);
}

.pc-manual-library-fullscreen-btn:hover {
  background: #ffffff;
  color: #0f62fe;
}

.pc-manual-library-fullscreen-btn svg {
  width: 18px;
  height: 18px;
}

body.manual-library-fullscreen-active {
  overflow: hidden;
}

.pc-manual-library-shell.is-expanded {
  position: fixed;
  inset: 0;
  z-index: 10000;
  border: 0;
  border-radius: 0;
  background: #eef3f8;
}

.pc-stats-shell iframe,
.pc-app-guide-shell iframe,
.pc-daily-summary-shell iframe,
.pc-manual-library-shell iframe {
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
  background: #eef3f8;
}

.parts-dashboard-view--pc {
  flex: 1;
  min-height: 0;
  overflow: auto;
  padding: 8px;
  border: 0;
  background: #f5f5f5;
  font-size: 12px;
}

.parts-dashboard-view--pc .parts-dashboard-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 6px;
}

.parts-dashboard-view--pc .parts-dashboard-status-tools {
  display: inline-flex;
  align-items: center;
  min-width: 0;
  gap: 8px;
}

.parts-dashboard-view--pc .parts-dashboard-toolbar h3 {
  margin: 0;
  color: #0f172a;
  font-size: 14px;
  font-weight: 800;
  line-height: 1.2;
}

.parts-dashboard-view--pc .parts-dashboard-toolbar p {
  margin: 2px 0 0;
  color: #64748b;
  font-size: 11px;
}

.parts-dashboard-view--pc .parts-dashboard-sync-state {
  display: inline-flex;
  align-items: center;
  min-height: 18px;
  margin-top: 4px;
  border: 1px solid #cbd5e1;
  border-radius: 999px;
  background: #f8fafc;
  color: #475569;
  font-size: 10px;
  font-weight: 900;
  line-height: 1;
  padding: 0 8px;
}

.parts-dashboard-view--pc .parts-dashboard-progress-search-wrap {
  position: relative;
  display: inline-flex;
  align-items: center;
  width: 174px;
}

.parts-dashboard-view--pc .parts-dashboard-progress-search-wrap.hidden {
  display: none;
}

.parts-dashboard-view--pc .parts-dashboard-progress-search {
  width: 100%;
  height: 30px;
  padding: 0 30px 0 10px;
  border: 1px solid #cbd5e1;
  border-radius: 6px;
  background: #ffffff;
  color: #172033;
  font-size: 12px;
  font-weight: 800;
}

.parts-dashboard-view--pc
  .parts-dashboard-progress-search-wrap.is-active
  .parts-dashboard-progress-search {
  border-color: #f59e0b;
  background: #fffdf3;
}

.parts-dashboard-view--pc .parts-dashboard-progress-search-clear {
  position: absolute;
  right: 4px;
  top: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: #64748b;
  transform: translateY(-50%);
  cursor: pointer;
}

.parts-dashboard-view--pc .parts-dashboard-progress-search-clear.hidden {
  display: none;
}

.parts-dashboard-view--pc .parts-dashboard-progress-search-clear svg {
  width: 14px;
  height: 14px;
}

.parts-dashboard-view--pc .parts-dashboard-sync-state[data-state="synced"] {
  border-color: #86efac;
  background: #dcfce7;
  color: #166534;
}

.parts-dashboard-view--pc .parts-dashboard-sync-state[data-state="saving"],
.parts-dashboard-view--pc .parts-dashboard-sync-state[data-state="checking"] {
  border-color: #bfdbfe;
  background: #eff6ff;
  color: #1d4ed8;
}

.parts-dashboard-view--pc .parts-dashboard-sync-state[data-state="error"] {
  border-color: #fecaca;
  background: #fef2f2;
  color: #b91c1c;
}

.parts-dashboard-view--pc .parts-dashboard-add-row {
  width: 76px;
  height: 32px;
  border: 1px solid #4f6f8f;
  border-radius: 4px;
  background: #4f6f8f;
  color: #ffffff;
  font-size: 20px;
  font-weight: 800;
  cursor: pointer;
}

.parts-dashboard-view--pc .parts-dashboard-toolbar-actions {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  margin-left: auto;
  gap: 6px;
}

.parts-dashboard-view--pc .parts-dashboard-trash-btn,
.parts-dashboard-view--pc .parts-dashboard-history-toggle,
.parts-dashboard-view--pc .parts-dashboard-action-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 76px;
  height: 32px;
  border: 1px solid #5f6f7f;
  border-radius: 4px;
  background: #5f6f7f;
  color: #ffffff;
  font-size: 12px;
  font-weight: 800;
  padding: 0;
  cursor: pointer;
}

.parts-dashboard-view--pc .parts-dashboard-history-toggle {
  border-color: #4f6f8f;
  background: #4f6f8f;
}

.parts-dashboard-view--pc .parts-dashboard-trash-btn {
  border-color: #8a555a;
  background: #8a555a;
}

.parts-dashboard-history-toggle {
  height: 30px;
  padding: 0 10px;
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  background: #f8fafc;
  color: #475569;
  font-size: 12px;
  font-weight: 800;
}

.parts-dashboard-history-toggle.is-active {
  border-color: #2563eb;
  background: #dbeafe;
  color: #1d4ed8;
}

.parts-dashboard-history-search {
  width: 150px;
  height: 30px;
  padding: 0 9px;
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  background: #fff;
  font-size: 12px;
}

.parts-dashboard-empty,
.parts-dashboard-history-empty {
  grid-column: 1 / -1;
  padding: 22px;
  text-align: center;
  font-size: 13px;
  color: #64748b;
}

.parts-dashboard-view--pc .parts-dashboard-card-table {
  min-width: max-content;
  padding-bottom: 180px;
  overflow: visible;
}

.parts-dashboard-view--pc .parts-dashboard-header,
.parts-dashboard-view--pc .parts-dashboard-row {
  display: grid;
  grid-template-columns: var(--parts-col-template, 148px 118px 112px 180px 104px 104px 128px 88px 104px 112px 104px 128px);
  gap: 0;
  align-items: stretch;
}

.parts-dashboard-view--pc .parts-dashboard-header {
  position: sticky;
  top: 0;
  z-index: 5;
  border-top: 1px solid #d7dde8;
  border-left: 1px solid #d7dde8;
  background: #eef1f4;
}

.parts-dashboard-view--pc .parts-dashboard-header-cell {
  position: relative;
  display: grid;
  grid-template-rows: minmax(17px, auto) 22px;
  align-items: center;
  justify-items: center;
  justify-content: center;
  min-width: 0;
  min-height: 46px;
  border-right: 1px solid #d7dde8;
  border-bottom: 1px solid #d7dde8;
  color: #111827;
  font-size: 12px;
  font-weight: 800;
  line-height: 1.1;
  text-align: center;
  white-space: nowrap;
  overflow: visible;
  row-gap: 1px;
  padding: 4px 4px 5px;
}

.parts-dashboard-view--pc .parts-dashboard-header-cell.has-active-filter {
  background: #eef6ff;
  box-shadow: inset 0 -2px 0 #60a5fa;
}

.parts-dashboard-view--pc .parts-dashboard-header-title-row {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 0;
  width: 100%;
}

.parts-dashboard-view--pc .parts-dashboard-header-label {
  display: block;
  min-width: 0;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.parts-dashboard-view--pc .parts-dashboard-header-tool-row {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 3px;
  height: 20px;
  min-width: 0;
  opacity: 0;
  pointer-events: none;
  transition: opacity 140ms ease;
}

.parts-dashboard-view--pc .parts-dashboard-header-cell:hover .parts-dashboard-header-tool-row,
.parts-dashboard-view--pc .parts-dashboard-header-cell:focus-within .parts-dashboard-header-tool-row {
  opacity: 1;
  pointer-events: auto;
}

.parts-dashboard-view--pc .parts-dashboard-header-filter-btn,
.parts-dashboard-view--pc .parts-dashboard-header-hide-btn {
  min-width: 34px;
  height: 18px;
  border: 1px solid #d5dfec;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.68);
  color: #64748b;
  padding: 0 5px;
  margin: 0;
  line-height: 1;
  font-size: 10px;
  font-weight: 800;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  opacity: 0.92;
  transition:
    background-color 140ms ease,
    border-color 140ms ease,
    color 140ms ease,
    box-shadow 140ms ease;
}

.parts-dashboard-view--pc .parts-dashboard-header-filter-btn:hover,
.parts-dashboard-view--pc .parts-dashboard-header-hide-btn:hover {
  border-color: #9db8e6;
  background: #eef6ff;
  color: #2563eb;
  box-shadow: 0 1px 4px rgba(37, 99, 235, 0.16);
  opacity: 1;
}

.parts-dashboard-view--pc .parts-dashboard-header-cell.has-active-filter .parts-dashboard-header-filter-btn {
  border-color: #7db0f5;
  background: #dbeafe;
  color: #1d4ed8;
}

.parts-dashboard-view--pc .parts-dashboard-header-filter-btn span,
.parts-dashboard-view--pc .parts-dashboard-header-hide-btn span {
  display: block;
  line-height: 1;
}

.parts-dashboard-view--pc .parts-dashboard-header-filter-popover {
  position: absolute;
  left: 4px;
  top: calc(100% + 6px);
  z-index: 20;
  width: 210px;
  background: #ffffff;
  border: 1px solid #d8e2f0;
  border-radius: 8px;
  padding: 8px;
  box-shadow: 0 14px 30px rgba(15, 23, 42, 0.16);
  text-align: left;
}

.parts-dashboard-view--pc .parts-dashboard-header-filter-popover.hidden {
  display: none;
}

.parts-dashboard-view--pc .parts-dashboard-header-filter-popover-inner {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.parts-dashboard-view--pc .parts-dashboard-header-filter-title {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
  color: #0f172a;
}

.parts-dashboard-view--pc .parts-dashboard-header-filter-title strong {
  font-size: 12px;
  font-weight: 900;
}

.parts-dashboard-view--pc .parts-dashboard-header-filter-title span,
.parts-dashboard-view--pc .parts-dashboard-header-filter-field span {
  font-size: 10px;
  font-weight: 800;
  color: #64748b;
}

.parts-dashboard-view--pc .parts-dashboard-header-filter-field {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.parts-dashboard-view--pc .parts-dashboard-header-filter-input {
  width: 100%;
  height: 30px;
  border: 1px solid #cbd5e1;
  border-radius: 6px;
  padding: 0 9px;
  font-size: 12px;
  font-weight: 700;
  color: #0f172a;
}

.parts-dashboard-view--pc .parts-dashboard-header-filter-input:focus {
  outline: 2px solid rgba(59, 130, 246, 0.18);
  border-color: #60a5fa;
}

.parts-dashboard-view--pc .parts-dashboard-header-filter-options {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 5px;
}

.parts-dashboard-view--pc .parts-dashboard-header-filter-options button {
  min-width: 0;
  min-height: 26px;
  border: 1px solid #d8e2f0;
  border-radius: 6px;
  background: #f8fafc;
  color: #334155;
  font-size: 11px;
  font-weight: 800;
  line-height: 1;
}

.parts-dashboard-view--pc .parts-dashboard-header-filter-options button:hover,
.parts-dashboard-view--pc .parts-dashboard-header-filter-options button.is-active {
  border-color: #8fb6ee;
  background: #eaf3ff;
  color: #1d4ed8;
}

.parts-dashboard-view--pc .parts-dashboard-header-filter-actions {
  display: flex;
  justify-content: flex-end;
  gap: 6px;
}

.parts-dashboard-view--pc .parts-dashboard-header-filter-clear {
  height: 26px;
  border: 1px solid #cbd5e1;
  border-radius: 6px;
  background: #f8fafc;
  color: #334155;
  font-size: 11px;
  font-weight: 800;
  line-height: 1;
  padding: 0 10px;
}

.parts-dashboard-view--pc .parts-dashboard-header-filter-apply {
  height: 26px;
  border: 1px solid #2563eb;
  border-radius: 6px;
  background: #2563eb;
  color: #ffffff;
  font-size: 11px;
  font-weight: 900;
  line-height: 1;
  padding: 0 12px;
}

.parts-dashboard-view--pc .parts-dashboard-column-hidden,
.parts-dashboard-view--pc .parts-dashboard-cell.parts-dashboard-column-hidden {
  display: none !important;
}

.parts-dashboard-column-resizer {
  position: absolute;
  top: 6px;
  right: -3px;
  width: 6px;
  height: calc(100% - 12px);
  border: 0;
  border-radius: 999px;
  background: transparent;
  cursor: col-resize;
  z-index: 2;
}

.parts-dashboard-column-resizer:hover,
.parts-dashboard-column-resizer:active {
  background: rgba(37, 99, 235, 0.35);
}

.parts-dashboard-view--pc .parts-dashboard-rows {
  display: grid;
  padding-bottom: 180px;
}

.parts-dashboard-view--pc .parts-dashboard-row {
  border-left: 1px solid #d7dde8;
}

.parts-dashboard-view--pc
  .parts-dashboard-row.parts-dashboard-row--vendor-match
  .parts-dashboard-cell {
  background: #fff7cc;
}

.parts-dashboard-view--pc
  .parts-dashboard-row.parts-dashboard-row--vendor-match
  .parts-dashboard-input,
.parts-dashboard-view--pc
  .parts-dashboard-row.parts-dashboard-row--vendor-match
  .parts-dashboard-owner-select,
.parts-dashboard-view--pc
  .parts-dashboard-row.parts-dashboard-row--vendor-match
  .parts-dashboard-price-trigger,
.parts-dashboard-view--pc
  .parts-dashboard-row.parts-dashboard-row--vendor-match
  .parts-dashboard-status-trigger,
.parts-dashboard-view--pc
  .parts-dashboard-row.parts-dashboard-row--vendor-match
  .parts-dashboard-receipt-trigger,
.parts-dashboard-view--pc
  .parts-dashboard-row.parts-dashboard-row--vendor-match
  .parts-dashboard-cycle-trigger {
  background: #fffbe6;
}

.parts-dashboard-view--pc .parts-dashboard-row:hover .parts-dashboard-cell {
  background: #dbeafe;
  box-shadow: inset 0 0 0 1px #93c5fd;
}

.parts-dashboard-view--pc
  .parts-dashboard-row.parts-dashboard-row--status-moved
  .parts-dashboard-cell,
.parts-dashboard-view--pc
  .parts-dashboard-row.parts-dashboard-row--status-moved
  .parts-dashboard-input,
.parts-dashboard-view--pc
  .parts-dashboard-row.parts-dashboard-row--status-moved
  .parts-dashboard-owner-select,
.parts-dashboard-view--pc
  .parts-dashboard-row.parts-dashboard-row--status-moved
  .parts-dashboard-price-trigger,
.parts-dashboard-view--pc
  .parts-dashboard-row.parts-dashboard-row--status-moved
  .parts-dashboard-status-trigger,
.parts-dashboard-view--pc
  .parts-dashboard-row.parts-dashboard-row--status-moved
  .parts-dashboard-receipt-trigger,
.parts-dashboard-view--pc
  .parts-dashboard-row.parts-dashboard-row--status-moved
  .parts-dashboard-cycle-trigger {
  animation: parts-dashboard-status-moved-fade 13s ease var(--parts-status-moved-highlight-delay, 0ms) both;
}

.parts-dashboard-view--pc
  .parts-dashboard-row.parts-dashboard-row--status-moved
  .parts-dashboard-cell {
  position: relative;
  isolation: isolate;
}

.parts-dashboard-view--pc
  .parts-dashboard-row.parts-dashboard-row--status-moved
  .parts-dashboard-cell::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background: #fef08a;
  animation: parts-dashboard-status-moved-overlay-fade 13s ease var(--parts-status-moved-highlight-delay, 0ms) both;
}

.parts-dashboard-view--pc
  .parts-dashboard-row.parts-dashboard-row--status-moved
  .parts-dashboard-cell
  > * {
  position: relative;
  z-index: 1;
}

@keyframes parts-dashboard-status-moved-fade {
  0%,
  76.923% {
    background-color: #fef08a;
  }

  100% {
    background-color: #ffffff;
  }
}

@keyframes parts-dashboard-status-moved-overlay-fade {
  0%,
  76.923% {
    opacity: 0.72;
  }

  100% {
    opacity: 0;
  }
}

.parts-dashboard-view--pc .parts-dashboard-row:hover .parts-dashboard-input,
.parts-dashboard-view--pc
  .parts-dashboard-row:hover
  .parts-dashboard-owner-select,
.parts-dashboard-view--pc
  .parts-dashboard-row:hover
  .parts-dashboard-price-trigger {
  background: #eff6ff;
}

.parts-dashboard-view--pc
  .parts-dashboard-row:hover
  .parts-dashboard-status-trigger,
.parts-dashboard-view--pc
  .parts-dashboard-row:hover
  .parts-dashboard-receipt-trigger,
.parts-dashboard-view--pc
  .parts-dashboard-row:hover
  .parts-dashboard-cycle-trigger,
.parts-dashboard-view--pc
  .parts-dashboard-row:hover
  .parts-dashboard-price-trigger {
  box-shadow:
    inset 0 0 0 1px #2563eb,
    0 0 0 1px rgba(37, 99, 235, 0.12);
}

.parts-dashboard-view--pc .parts-dashboard-mobile-label {
  display: none;
}

.parts-dashboard-view--pc .parts-dashboard-cell,
.parts-dashboard-view--pc .parts-dashboard-input-wrap,
.parts-dashboard-view--pc .parts-dashboard-status-cell {
  min-width: 0;
}

.parts-dashboard-view--pc .parts-dashboard-cell {
  border-right: 1px solid #d7dde8;
  border-bottom: 1px solid #d7dde8;
}

.parts-dashboard-view--pc .parts-dashboard-input,
.parts-dashboard-view--pc .parts-dashboard-status-trigger,
.parts-dashboard-view--pc .parts-dashboard-receipt-trigger,
.parts-dashboard-view--pc .parts-dashboard-cycle-trigger,
.parts-dashboard-view--pc .parts-dashboard-owner-select {
  width: 100%;
  min-width: 0;
  height: 27px;
  border: 0;
  border-radius: 3px;
  background: #ffffff;
  color: #0f172a;
  font-size: var(--parts-cell-font-size, 11px);
  font-weight: 600;
  line-height: 1.15;
  text-align: center;
  padding: 0 3px;
  outline: none;
  overflow: hidden;
  text-overflow: ellipsis;
}

.parts-dashboard-view--pc [data-column="customerName"] .parts-dashboard-input,
.parts-dashboard-view--pc
  [data-column="ownerName"]
  .parts-dashboard-owner-select,
.parts-dashboard-view--pc
  [data-column="arrivalStatus"]
  .parts-dashboard-status-trigger,
.parts-dashboard-view--pc
  [data-column="saleType"]
  .parts-dashboard-cycle-trigger,
.parts-dashboard-view--pc
  [data-column="purchaseReceipt"]
  .parts-dashboard-receipt-trigger,
.parts-dashboard-view--pc [data-column="note"] .parts-dashboard-input {
  padding-left: 3px;
  padding-right: 3px;
}

.parts-dashboard-view--pc .parts-dashboard-cell[data-column="arrivalStatus"],
.parts-dashboard-view--pc .parts-dashboard-cell[data-column="saleType"],
.parts-dashboard-view--pc .parts-dashboard-cell[data-column="purchaseReceipt"] {
  display: flex;
  align-items: center;
  justify-content: center;
}

.parts-dashboard-view--pc .parts-dashboard-receipt-trigger {
  cursor: pointer;
  width: 58px;
  height: 22px;
  border-width: 0.5px;
  border-radius: 3px;
  font-size: 9.5px;
  font-weight: 600;
  padding: 0 2px;
  white-space: nowrap;
}

.parts-dashboard-view--pc .parts-dashboard-cycle-trigger {
  cursor: pointer;
  width: 58px;
  height: 22px;
  border: 0.5px solid #0f766e;
  border-radius: 3px;
  background: #ccfbf1;
  color: #636363;
  font-size: 9.5px;
  font-weight: 600;
  padding: 0 2px;
  white-space: nowrap;
}

.parts-dashboard-view--pc .parts-dashboard-cycle-trigger.is-empty {
  border-color: #cbd5e1;
  background: #ffffff;
  color: #64748b;
}

.parts-dashboard-view--pc
  .parts-dashboard-cycle-trigger[data-value="고객발송"] {
  border-color: #2563eb;
  background: #dbeafe;
  color: #c20000;
}

.parts-dashboard-view--pc .parts-dashboard-cycle-trigger[data-value="AS출장"] {
  border-color: #0f766e;
  background: #d3eee8;
  color: #636363;
}

.parts-dashboard-view--pc
  .parts-dashboard-receipt-trigger[data-value="미수신"] {
  border: 0.5px solid #dc2626;
  background: #fee2e2;
  color: #991b1b;
}

.parts-dashboard-view--pc .parts-dashboard-receipt-trigger[data-value="수신"] {
  border: 0.5px solid #16a34a;
  background: #e8f2ec;
  color: #166534;
}

.parts-dashboard-view--pc .parts-dashboard-price-cell {
  position: relative;
  min-width: 0;
  height: 100%;
}

.parts-dashboard-view--pc .parts-dashboard-price-trigger {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  width: 100%;
  height: 100%;
  border: 0;
  border-radius: 0;
  background: #ffffff;
  color: #0f172a;
  font-size: var(--parts-cell-font-size, 11px);
  font-weight: 600;
  line-height: 1.15;
  padding: 0 3px;
  text-align: center;
}

.parts-dashboard-view--pc .parts-dashboard-price-trigger.has-labor-price {
  color: #9a3412;
}

.parts-dashboard-view--pc .parts-dashboard-price-trigger.has-quote-image::after {
  content: "";
  position: absolute;
  top: 3px;
  right: 3px;
  width: 6px;
  height: 6px;
  border-radius: 999px;
  background: #2563eb;
  box-shadow: 0 0 0 1px #ffffff;
}

.parts-dashboard-view--pc .parts-dashboard-price-total {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.parts-dashboard-view--pc .parts-dashboard-price-modal {
  position: absolute;
  z-index: 30;
  left: 0;
  top: calc(100% + 3px);
  width: 280px;
  border: 1px solid #fb923c;
  background: #ffffff;
  box-shadow: 0 16px 28px rgba(15, 23, 42, 0.18);
  padding: 9px;
}

.parts-dashboard-view--pc .parts-dashboard-price-modal label {
  display: grid;
  grid-template-columns: 56px minmax(0, 1fr);
  align-items: center;
  gap: 7px;
  margin-bottom: 7px;
  color: #475569;
  font-size: 12px;
  font-weight: 900;
}

.parts-dashboard-view--pc .parts-dashboard-price-modal input {
  width: 100%;
  height: 32px;
  border: 1px solid #cbd5e1;
  color: #0f172a;
  font-size: 13px;
  font-weight: 900;
  padding: 0 8px;
  text-align: right;
}

.parts-dashboard-view--pc .parts-dashboard-price-modal-total,
.parts-dashboard-view--pc .parts-dashboard-price-modal-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.parts-dashboard-view--pc .parts-dashboard-price-modal-total {
  border-top: 1px solid #fed7aa;
  margin-top: 4px;
  padding-top: 8px;
  color: #9a3412;
  font-size: 12px;
  font-weight: 900;
}

.parts-dashboard-view--pc .parts-dashboard-quote-image-tools {
  display: flex;
  align-items: center;
  gap: 8px;
  border-top: 1px solid #ede9fe;
  margin-top: 8px;
  padding-top: 8px;
  color: #64748b;
  font-size: 12px;
  font-weight: 800;
}

.parts-dashboard-view--pc .parts-dashboard-quote-image-view,
.parts-dashboard-view--pc .parts-dashboard-quote-image-delete {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  border: 1px solid #c4b5fd;
  background: #f5f3ff;
  color: #6d28d9;
}

.parts-dashboard-view--pc .parts-dashboard-quote-image-delete {
  border-color: #fecaca;
  background: #fef2f2;
  color: #dc2626;
}

.parts-dashboard-view--pc .parts-dashboard-quote-image-view svg,
.parts-dashboard-view--pc .parts-dashboard-quote-image-delete svg {
  width: 16px;
  height: 16px;
}

.parts-dashboard-view--pc .parts-dashboard-price-modal-actions {
  justify-content: flex-end;
  margin-top: 8px;
}

.parts-dashboard-view--pc .parts-dashboard-price-modal-actions button {
  height: 30px;
  border: 1px solid #cbd5e1;
  background: #ffffff;
  color: #334155;
  font-size: 12px;
  font-weight: 900;
  padding: 0 12px;
}

.parts-dashboard-view--pc
  .parts-dashboard-price-modal-actions
  [data-price-action="save"] {
  border-color: #f97316;
  background: #f97316;
  color: #ffffff;
}

.parts-dashboard-quote-image-viewer {
  position: fixed;
  inset: 0;
  z-index: 100060;
}

.parts-dashboard-quote-image-viewer.hidden {
  display: none;
}

.parts-dashboard-quote-image-viewer-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(15, 23, 42, 0.62);
}

.parts-dashboard-quote-image-viewer-dialog {
  position: absolute;
  inset: 18px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 10px;
  background: #0f172a;
  padding: 46px 14px 14px;
}

.parts-dashboard-quote-image-viewer-dialog img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  background: #ffffff;
}

.parts-dashboard-quote-image-close {
  position: absolute;
  right: 12px;
  top: 12px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border: 1px solid rgba(255, 255, 255, 0.35);
  border-radius: 8px;
  background: rgba(15, 23, 42, 0.85);
  color: #ffffff;
}

.parts-dashboard-view--pc [data-column="vendorName"] .parts-dashboard-input {
  font-weight: 900;
  padding-left: 30px;
  padding-right: 30px;
}

.parts-dashboard-view--pc [data-column="partName"] .parts-dashboard-input {
  padding-right: 30px;
}

.parts-dashboard-view--pc .parts-dashboard-status-trigger {
  background: #ffffff;
  min-width: 62px;
  width: auto;
  height: 24px;
  border-width: 0.5px;
  border-radius: 5px;
  font-size: 10px;
  font-weight: 800;
  line-height: 1;
  padding: 0 8px;
  white-space: nowrap;
}

.parts-dashboard-view--pc .parts-dashboard-status-trigger[data-status="접수"] {
  border: 0.5px solid #7c3aed;
  background: #eed3e9;
  color: #5b21b6;
}

.parts-dashboard-view--pc .parts-dashboard-status-trigger[data-status="입고"] {
  border: 0.5px solid #16a34a;
  background: #c6ddce;
  color: #166534;
}

.parts-dashboard-view--pc
  .parts-dashboard-status-trigger[data-status="견적발행"] {
  border: 0.5px solid #ea580c;
  background: #f5e8d6;
  color: #9a3412;
}

.parts-dashboard-view--pc
  .parts-dashboard-status-trigger[data-status="문의중"] {
  border: 0.5px solid #e11d48;
  background: #ffe4e6;
  color: #9f1239;
}

.parts-dashboard-view--pc
  .parts-dashboard-status-trigger[data-status="발주완료"] {
  border: 0.5px solid #2563eb;
  background: #cedced;
  color: #1e40af;
}

.parts-dashboard-view--pc
  .parts-dashboard-status-trigger[data-status="출하완료"] {
  border: 0.5px solid #475569;
  background: #e2e8f0;
  color: #1e293b;
}

.parts-dashboard-view--pc
  .parts-dashboard-status-menu
  button[data-status="삭제"] {
  border-color: #dc2626;
  background: #fee2e2;
  color: #991b1b;
}

.parts-dashboard-view--pc .parts-dashboard-input-wrap,
.parts-dashboard-view--pc .parts-dashboard-status-cell {
  position: relative;
}

.parts-dashboard-view--pc .parts-dashboard-date-wrap {
  display: flex;
  align-items: center;
}

.parts-dashboard-view--pc .parts-dashboard-date-value {
  padding-right: 28px;
}

.parts-dashboard-view--pc .parts-dashboard-native-date {
  position: absolute;
  left: 0;
  top: 100%;
  width: 1px;
  height: 1px;
  border: 0;
  opacity: 0;
}

.parts-dashboard-view--pc .parts-dashboard-date-trigger {
  position: absolute;
  top: 5px;
  right: 4px;
  z-index: 3;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  border: 0;
  border-radius: 4px;
  background: #eef2ff;
  color: #1d4ed8;
}

.parts-dashboard-view--pc .parts-dashboard-date-trigger svg {
  width: 14px;
  height: 14px;
}

.parts-dashboard-view--pc .parts-dashboard-autocomplete-dropdown,
.parts-dashboard-view--pc .parts-dashboard-status-menu,
.parts-dashboard-view--pc .parts-dashboard-ticket-link-dropdown {
  position: absolute;
  z-index: 20;
  left: 0;
  right: 0;
  top: calc(100% + 2px);
  max-height: 180px;
  overflow-y: auto;
  border: 1px solid #d7dde8;
  background: #ffffff;
  box-shadow: 0 12px 24px rgba(15, 23, 42, 0.16);
}

.parts-dashboard-view--pc .parts-dashboard-status-menu {
  right: auto;
  min-width: max-content;
  width: max-content;
  max-width: 180px;
}

.parts-dashboard-view--pc .parts-dashboard-autocomplete-dropdown button,
.parts-dashboard-view--pc .parts-dashboard-status-menu button,
.parts-dashboard-view--pc .parts-dashboard-ticket-link-dropdown button {
  display: block;
  width: 100%;
  border: 0;
  background: #ffffff;
  color: #0f172a;
  text-align: left;
  font-size: 12px;
  font-weight: 700;
  padding: 7px 8px;
}

.parts-dashboard-view--pc .parts-dashboard-status-menu button {
  min-width: 86px;
  white-space: nowrap;
}

.parts-dashboard-view--pc
  .parts-dashboard-autocomplete-dropdown
  button.parts-dashboard-autocomplete-active {
  background: #dbeafe;
  color: #1d4ed8;
}

.parts-dashboard-ticket-focus-btn,
.parts-dashboard-ticket-link-btn {
  position: absolute;
  top: 5px;
  z-index: 3;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 22px;
  width: 22px;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: #1d4ed8;
  font-size: 10px;
  font-weight: 900;
  line-height: 1;
  padding: 0;
}

.parts-dashboard-ticket-focus-btn {
  left: 4px;
}

.parts-dashboard-ticket-link-btn {
  right: 4px;
}

.parts-dashboard-ticket-focus-btn svg,
.parts-dashboard-ticket-link-btn svg {
  width: 13px;
  height: 13px;
}

.parts-dashboard-ticket-link-btn.is-linked {
  background: #dcfce7;
  color: #166534;
  box-shadow:
    inset 0 0 0 1px #86efac,
    0 1px 4px rgba(22, 101, 52, 0.18);
}

.parts-dashboard-ticket-focus-btn.is-targeted {
  background: #eff6ff;
  color: #1d4ed8;
  box-shadow:
    inset 0 0 0 1px #93c5fd,
    0 1px 4px rgba(29, 78, 216, 0.16);
}

.parts-dashboard-trash-modal {
  position: fixed;
  inset: 0;
  z-index: 100030;
}

.parts-dashboard-trash-modal.hidden {
  display: none !important;
}

.parts-dashboard-trash-modal {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 18px;
  background: rgba(15, 23, 42, 0.32);
}

.parts-dashboard-dialog {
  width: min(360px, 100%);
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 20px 44px rgba(15, 23, 42, 0.22);
  padding: 14px;
}

.parts-dashboard-trash-modal .parts-dashboard-dialog strong {
  display: block;
  margin-bottom: 8px;
  color: #0f172a;
  font-size: 13px;
  font-weight: 900;
}


.parts-dashboard-dialog-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.parts-dashboard-dialog-head [data-trash-close] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  border: 1px solid #cbd5e1;
  border-radius: 999px;
  background: #ffffff;
  color: #334155;
  font-size: 16px;
  font-weight: 900;
  line-height: 1;
}

.parts-dashboard-trash-list {
  display: grid;
  gap: 7px;
  max-height: min(360px, 70vh);
  overflow: auto;
}

.parts-dashboard-trash-item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  padding: 8px;
}

.parts-dashboard-trash-item strong,
.parts-dashboard-trash-item span {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.parts-dashboard-trash-item strong {
  color: #0f172a;
  font-size: 12px;
  font-weight: 900;
}

.parts-dashboard-trash-item span,
.parts-dashboard-trash-empty {
  color: #64748b;
  font-size: 11px;
  font-weight: 700;
}

.parts-dashboard-trash-item em {
  display: inline-flex;
  margin-top: 4px;
  color: #dc2626;
  font-size: 11px;
  font-style: normal;
  font-weight: 900;
}

.parts-dashboard-trash-actions {
  display: flex;
  align-items: center;
  gap: 6px;
}

.parts-dashboard-trash-item [data-restore-row-id],
.parts-dashboard-trash-item [data-hard-delete-row-id] {
  min-height: 30px;
  border-radius: 7px;
  padding: 0 10px;
  font-size: 12px;
  font-weight: 900;
}

.parts-dashboard-trash-item [data-restore-row-id] {
  border: 1px solid #2563eb;
  background: #2563eb;
  color: #ffffff;
}

.parts-dashboard-trash-item [data-hard-delete-row-id] {
  border: 1px solid #fecaca;
  background: #fef2f2;
  color: #dc2626;
}

.parts-dashboard-view--pc .parts-dashboard-request-doc-btn {
  position: absolute;
  top: 5px;
  right: 4px;
  z-index: 3;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  border: 0;
  background: transparent;
  color: #4f46e5;
  padding: 0;
}

.parts-dashboard-view--pc .parts-dashboard-request-doc-btn svg {
  width: 14px;
  height: 14px;
}

.parts-dashboard-view--pc .parts-dashboard-request-doc-modal {
  position: absolute;
  z-index: 50;
  left: 0;
  top: calc(100% + 4px);
  width: 280px;
  border: 1px solid #c7d2fe;
  border-radius: 7px;
  background: #ffffff;
  box-shadow: 0 16px 32px rgba(15, 23, 42, 0.18);
  padding: 9px;
}

.parts-dashboard-view--pc .parts-dashboard-request-doc-modal strong {
  display: block;
  margin-bottom: 5px;
  color: #3730a3;
  font-size: 12px;
  font-weight: 900;
}

.parts-dashboard-view--pc .parts-dashboard-request-doc-modal p {
  margin: 0;
  color: #1f2937;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.45;
  white-space: pre-wrap;
}

.parts-dashboard-view--pc .parts-dashboard-full-text-trigger {
  cursor: text;
}

.parts-dashboard-view--pc .parts-dashboard-full-text-panel {
  position: absolute;
  z-index: 50;
  left: 0;
  top: calc(100% + 4px);
  width: 320px;
  max-height: 260px;
  overflow: auto;
  border: 1px solid #94a3b8;
  border-radius: 7px;
  background: #ffffff;
  box-shadow: 0 16px 34px rgba(15, 23, 42, 0.18);
  padding: 9px;
}

.parts-dashboard-view--pc .parts-dashboard-full-text-panel strong {
  display: block;
  margin-bottom: 5px;
  color: #0f172a;
  font-size: 12px;
  font-weight: 900;
}

.parts-dashboard-view--pc .parts-dashboard-full-text-panel p {
  margin: 0;
  color: #1f2937;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.45;
  white-space: pre-wrap;
  word-break: break-word;
}

.parts-dashboard-ticket-link-dropdown {
  min-width: 260px;
}

.parts-dashboard-ticket-link-search-wrap {
  position: sticky;
  top: 0;
  z-index: 2;
  padding: 6px;
  border-bottom: 1px solid #cbd5e1;
  background: #ffffff;
}

.parts-dashboard-ticket-link-search {
  width: 100%;
  height: 28px;
  border: 1px solid #93c5fd;
  border-radius: 6px;
  color: #0f172a;
  font-size: 12px;
  font-weight: 700;
  padding: 0 8px;
  outline: none;
}

.parts-dashboard-ticket-link-dropdown button strong,
.parts-dashboard-ticket-link-dropdown button span,
.parts-dashboard-ticket-link-dropdown button em {
  display: block;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.parts-dashboard-ticket-link-section {
  position: sticky;
  top: 41px;
  z-index: 1;
  padding: 5px 8px;
  border-bottom: 1px solid #fed7aa;
  background: #fff7ed;
  color: #9a3412;
  font-size: 11px;
  font-weight: 900;
}

.parts-dashboard-ticket-link-dropdown button.is-quote-request {
  background: #fff7ed;
}

.parts-dashboard-ticket-link-dropdown button.is-quote-request:hover {
  background: #ffedd5;
}

.parts-dashboard-ticket-link-dropdown button.is-current-linked {
  box-shadow: inset 3px 0 0 #f97316;
}

.parts-dashboard-ticket-link-dropdown button strong {
  color: #0f172a;
  font-size: 12px;
  font-weight: 900;
}

.parts-dashboard-ticket-link-dropdown button span {
  margin-top: 2px;
  color: #334155;
  font-size: 11px;
  font-weight: 800;
}

.parts-dashboard-ticket-link-dropdown button em {
  margin-top: 2px;
  color: #64748b;
  font-size: 11px;
  font-style: normal;
  font-weight: 700;
}

.parts-dashboard-ticket-link-empty {
  padding: 8px;
  color: #64748b;
  font-size: 11px;
  font-weight: 800;
}

.parts-dashboard-view--pc .parts-dashboard-change-log-trigger {
  cursor: pointer;
}

.parts-dashboard-view--pc .parts-dashboard-change-log-panel {
  position: absolute;
  left: 0;
  top: calc(100% + 4px);
  z-index: 50;
  width: 320px;
  max-height: 280px;
  overflow: auto;
  border: 1px solid #64748b;
  border-radius: 7px;
  background: #ffffff;
  box-shadow: 0 18px 38px rgba(15, 23, 42, 0.2);
  padding: 9px;
}

.parts-dashboard-view--pc .parts-dashboard-change-log-title {
  margin-bottom: 7px;
  color: #0f172a;
  font-size: 12px;
  font-weight: 900;
}

.parts-dashboard-view--pc .parts-dashboard-change-log-item {
  display: grid;
  grid-template-columns: auto auto minmax(0, 1fr);
  align-items: center;
  gap: 7px;
  border-top: 1px solid #e2e8f0;
  padding: 7px 0;
}

.parts-dashboard-view--pc .parts-dashboard-change-log-item strong,
.parts-dashboard-view--pc .parts-dashboard-change-log-item time,
.parts-dashboard-view--pc .parts-dashboard-change-log-item span,
.parts-dashboard-view--pc .parts-dashboard-change-log-empty {
  min-width: 0;
  font-size: 11px;
  line-height: 1.35;
}

.parts-dashboard-view--pc .parts-dashboard-change-log-item strong {
  color: #0f172a;
  font-weight: 900;
}

.parts-dashboard-view--pc .parts-dashboard-change-log-item time {
  color: #64748b;
  font-weight: 800;
  white-space: nowrap;
}

.parts-dashboard-view--pc .parts-dashboard-change-log-item span {
  color: #334155;
  font-weight: 700;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.parts-dashboard-view--pc .parts-dashboard-change-log-empty {
  color: #64748b;
  font-weight: 800;
}

#right-panel.pc-stats-mode .schedule-viewport {
  display: none;
}

#right-panel.pc-stats-mode .pc-stats-shell {
  display: block;
}

#right-panel.pc-daily-summary-mode .schedule-viewport,
#right-panel.pc-daily-summary-mode .pc-stats-shell,
#right-panel.pc-daily-summary-mode .pc-app-guide-shell,
#right-panel.pc-daily-summary-mode .pc-manual-library-shell,
#right-panel.pc-daily-summary-mode .parts-dashboard-view--pc {
  display: none;
}

#right-panel.pc-daily-summary-mode .week-nav {
  display: none;
}

#right-panel.pc-daily-summary-mode .pc-daily-summary-shell {
  display: block;
}

#right-panel.pc-app-guide-mode .schedule-viewport,
#right-panel.pc-app-guide-mode .pc-stats-shell,
#right-panel.pc-app-guide-mode .pc-daily-summary-shell,
#right-panel.pc-app-guide-mode .pc-manual-library-shell,
#right-panel.pc-app-guide-mode .parts-dashboard-view--pc {
  display: none;
}

#right-panel.pc-app-guide-mode .week-nav {
  display: none;
}

#right-panel.pc-app-guide-mode .pc-app-guide-shell {
  display: block;
}

#right-panel.pc-manual-library-mode .schedule-viewport,
#right-panel.pc-manual-library-mode .pc-stats-shell,
#right-panel.pc-manual-library-mode .pc-app-guide-shell,
#right-panel.pc-manual-library-mode .pc-daily-summary-shell,
#right-panel.pc-manual-library-mode .parts-dashboard-view--pc {
  display: none;
}

#right-panel.pc-manual-library-mode .week-nav {
  display: none;
}

#right-panel.pc-manual-library-mode .pc-manual-library-shell {
  display: block;
}

#right-panel.pc-parts-dashboard-mode .schedule-viewport,
#right-panel.pc-parts-dashboard-mode .pc-stats-shell,
#right-panel.pc-parts-dashboard-mode .pc-app-guide-shell,
#right-panel.pc-parts-dashboard-mode .pc-daily-summary-shell,
#right-panel.pc-parts-dashboard-mode .pc-manual-library-shell {
  display: none;
}

#right-panel.pc-parts-dashboard-mode .week-nav {
  display: none;
}

#right-panel.pc-parts-dashboard-mode .parts-dashboard-view--pc {
  display: block;
}

#right-panel.pc-stats-mode .week-nav-controls {
  pointer-events: none;
  display: none;
}

#right-panel.pc-stats-mode .panel-title i {
  color: var(--action-blue);
}

/* 인원 추가 버튼 */
.add-personnel-btn {
  width: 100%;
  padding: 12px;
  border: 2px dashed var(--border-light);
  border-radius: 10px;
  background: transparent;
  color: var(--text-muted);
  font-size: 24px;
  font-weight: 300;
  cursor: pointer;
  transition: all 0.2s;
}

.add-personnel-btn:hover {
  border-color: var(--action-blue);
  color: var(--action-blue);
  background: #eff6ff;
}

/* 인원 삭제 버튼 */
.btn-delete-personnel {
  width: 24px;
  height: 24px;
  border: none;
  border-radius: 50%;
  background: transparent;
  color: var(--border-light);
  font-size: 18px;
  cursor: pointer;
  opacity: 0;
  transition: all 0.2s;
  display: flex;
  align-items: center;
  justify-content: center;
}

.personnel-card:hover .btn-delete-personnel {
  opacity: 1;
}

.btn-delete-personnel:hover {
  background: #fee2e2;
  color: var(--danger);
}

/* 인원 카드 */
.personnel-card {
  background: #f8f8f8;
  border: 1px solid var(--border-light);
  border-radius: 10px;
  padding: 10px;
  transition: all 0.2s;
  display: grid;
  grid-template-columns: 140px 1fr;
  gap: 8px;
  align-items: start;
}

.personnel-card:hover {
  box-shadow: 0 4px 12px rgba(15, 41, 66, 0.08);
}

.personnel-header {
  display: flex;
  align-items: center;
  gap: 8px;
  grid-column: 1;
  grid-row: 1;
}

/* PC 카드 드래그 핸들 */
.personnel-header .card-drag-handle {
  width: 20px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #9ca3af;
  cursor: grab;
  flex-shrink: 0;
  transition: color 0.2s;
  margin-left: -4px;
}

.personnel-header .card-drag-handle:hover {
  color: #4f46e5;
}

.personnel-header .card-drag-handle:active {
  cursor: grabbing;
  color: #4f46e5;
}

/* PC 카드 드래그 상태 */
.personnel-card.card-dragging {
  opacity: 0.5;
  border: 2px dashed #4f46e5;
}

.personnel-card.card-drop-target {
  border: 2px dashed #d1d5db;
}

.personnel-card.card-drop-hover {
  border: 2px solid #4f46e5;
  background: #eef2ff;
}

.personnel-avatar {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: var(--navy);
  display: flex;
  align-items: center;
  justify-content: center;
  color: white;
  font-weight: 600;
  font-size: 13px;
  flex-shrink: 0;
}

.personnel-info {
  flex: 1;
  min-width: 0;
}

.personnel-name {
  font-weight: 600;
  font-size: 12px;
  color: var(--text-primary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.personnel-count {
  font-size: 10px;
  color: var(--text-muted);
  margin-top: 2px;
}

/* 주간 그리드 */
.weekly-grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  grid-template-rows: auto minmax(132px, 1fr);
  gap: 3px;
  grid-column: 2;
  grid-row: 1;
}

.day-header {
  text-align: center;
  font-size: 11px;
  font-weight: 600;
  color: var(--text-primary);
  padding: 3px 0;
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  gap: 2px;
  line-height: 1.35;
}

.day-header .day-date {
  font-size: 10px;
  font-weight: 500;
  color: var(--text-muted);
  line-height: 1.35;
}

.day-cell {
  min-height: 60px;
  background: #fafafa;
  border: 2px dashed var(--border-light);
  border-radius: 7px;
  padding: 6px;
  transition: all 0.2s;
  display: flex;
  flex-direction: column;
  gap: 2px;
  overflow: hidden;
  line-height: 1.35;
  justify-content: flex-start;
}

.day-cell.drop-zone {
  cursor: pointer;
  position: relative;
}

.day-cell.drop-zone:hover {
  border-color: #93c5fd;
  background: #eff6ff;
}

.day-cell.drop-zone.schedule-order-pending {
  opacity: 0.68;
  cursor: progress;
}

.user-select-popup.personnel-rename-pending .user-option {
  pointer-events: none;
  opacity: 0.55;
}

.day-cell.drag-over {
  border-color: var(--action-blue) !important;
  background: #dbeafe !important;
  border-style: solid;
}

.day-cell.group-copy-valid {
  border-color: #14b8a6;
  background: #f0fdfa;
}

.day-cell.group-copy-invalid {
  cursor: not-allowed;
  opacity: 0.58;
}

.day-cell.group-copy-hover {
  border-color: #0f766e !important;
  border-style: solid;
  background: #ccfbf1 !important;
  box-shadow: inset 0 0 0 2px rgba(13, 148, 136, 0.18);
}

/* 드롭존 +배지 (항상 표시, 우측 상단) */
.day-cell.drop-zone .add-task-badge {
  position: absolute;
  top: 2px;
  right: 2px;
  width: 16px;
  height: 16px;
  background: var(--border-light);
  color: var(--text-muted);
  border-radius: 4px;
  font-size: 12px;
  font-weight: 600;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  opacity: 0;
  transition: all 0.15s;
  z-index: 10;
}

.day-cell.drop-zone:hover .add-task-badge {
  opacity: 1;
}

.day-cell.drop-zone .add-task-badge:hover {
  background: var(--action-blue);
  color: white;
  transform: scale(1.1);
}

/* 별도업무 추가 모달 - 스케줄 패널(오른쪽) 중앙 */
.custom-task-modal-overlay {
  position: fixed;
  top: 0;
  left: 483px;
  /* 티켓패널 오른쪽 */
  right: 0;
  bottom: 0;
  background: rgba(15, 41, 66, 0.25);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1000;
}

.custom-task-modal-content {
  background: white;
  border-radius: 10px;
  box-shadow: 0 10px 40px rgba(15, 41, 66, 0.2);
  width: 220px;
}

/* 드롭된 티켓 타일 */
.ticket-tile {
  font-size: 10px;
  padding: 5px 7px;
  background: var(--ascp-surface-raised, #fbfbfb);
  border-radius: 4px;
  border-left: 3px solid var(--action-blue);
  box-shadow: 0 1px 2px rgba(15, 41, 66, 0.1);
  cursor: grab;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  gap: 2px;
  position: relative;
}

.ticket-tile:active {
  cursor: grabbing;
}

.ticket-tile.pc-tile-selected {
  outline: 2px solid #2563eb;
  outline-offset: 1px;
  background: #dbeafe;
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.18);
}

.pc-schedule-selection-actions {
  min-height: 38px;
  margin: 0 8px 6px;
  padding: 6px 8px;
  display: flex;
  align-items: center;
  gap: 8px;
  border: 1px solid #bfdbfe;
  border-radius: 8px;
  background: #eff6ff;
  color: #1e3a8a;
  box-shadow: 0 4px 12px rgba(30, 64, 175, 0.08);
  font-size: 11px;
  font-weight: 700;
}

.pc-schedule-selection-actions[hidden] {
  display: none;
}

.pc-schedule-selection-count {
  white-space: nowrap;
}

.pc-schedule-selection-count strong {
  font-size: 13px;
}

.pc-schedule-selection-hint {
  min-width: 0;
  flex: 1;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: #475569;
  font-weight: 600;
}

.pc-schedule-selection-actions button {
  min-height: 28px;
  padding: 0 10px;
  border-radius: 6px;
  font-size: 11px;
  font-weight: 800;
  white-space: nowrap;
}

.pc-schedule-selection-delete {
  border: 1px solid #dc2626;
  background: #dc2626;
  color: #ffffff;
}

.pc-schedule-selection-delete:hover:not(:disabled) {
  background: #b91c1c;
}

.pc-schedule-selection-delete:disabled {
  cursor: wait;
  opacity: 0.56;
}

.pc-schedule-selection-clear {
  border: 1px solid #94a3b8;
  background: #ffffff;
  color: #475569;
}

.pc-schedule-selection-clear:hover {
  border-color: #64748b;
  color: #1e293b;
}

#right-panel.pc-stats-mode .pc-schedule-selection-actions,
#right-panel.pc-daily-summary-mode .pc-schedule-selection-actions,
#right-panel.pc-manual-library-mode .pc-schedule-selection-actions,
#right-panel.pc-parts-dashboard-mode .pc-schedule-selection-actions {
  display: none;
}

.pc-schedule-selection-box {
  position: fixed;
  z-index: 10020;
  pointer-events: none;
  border: 1px solid #2563eb;
  background: rgba(59, 130, 246, 0.16);
  box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.7) inset;
}

body.pc-schedule-marquee-active {
  cursor: crosshair;
  user-select: none;
}

.pc-schedule-group-copy-ghost {
  position: fixed;
  top: -500px;
  left: -500px;
  z-index: 10021;
  padding: 8px 12px;
  border: 1px solid #0f766e;
  border-radius: 8px;
  background: #ffffff;
  color: #0f766e;
  font-size: 12px;
  font-weight: 800;
  box-shadow: 0 8px 24px rgba(15, 118, 110, 0.24);
  pointer-events: none;
}

/* 타일 첫째줄: 업체명 + 기종 */
.ticket-tile .tile-row1 {
  font-weight: 600;
  color: var(--text-primary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  line-height: 1.4;
}

/* 타일 둘째줄: 증상 */
.ticket-tile .tile-row2 {
  color: var(--text-muted);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  line-height: 1.4;
}

.ticket-tile.has-schedule-lock-control .tile-row2 {
  padding-right: 15px;
}

.ticket-tile .tile-row2.tile-install-day-label {
  color: #dc2626;
  font-weight: 800;
}

.ticket-tile.progress {
  border-left-color: var(--warning);
}

.ticket-tile.done {
  border-left-color: var(--success);
  opacity: 0.7;
}

.ticket-tile.dragging {
  opacity: 0.5;
  transform: scale(0.95);
}

/* 타일 순서 변경 삽입 인디케이터 */
.tile-drop-indicator {
  height: 2px;
  background: var(--action-blue);
  border-radius: 1px;
  margin: 1px 0;
}

.ticket-tile.move-mode {
  border-color: var(--danger);
  box-shadow: 0 0 8px rgba(220, 38, 38, 0.4);
}

/* 커스텀 타일 (생산자에서 만든 타일) */
.ticket-tile.custom-tile {
  border-left-color: var(--navy);
}

/* 설치시운전 타일 (그린) */
.ticket-tile.install-tile {
  border-left-color: var(--success);
  background: #ecfdf5;
}

/* 완료/디밍 타일 (배지용 포지셔닝 포함) */
.ticket-tile.completed-tile,
.ticket-tile.dimmed-tile {
  opacity: 1;
  position: relative;
}

.ticket-tile.completed-tile .tile-row1,
.ticket-tile.completed-tile .tile-row2,
.ticket-tile.dimmed-tile .tile-row1,
.ticket-tile.dimmed-tile .tile-row2 {
  opacity: 0.5;
}

.ticket-tile .completed-badge {
  position: absolute;
  top: 2px;
  right: 2px;
  background: #047857;
  color: white;
  font-size: 10px;
  font-weight: 600;
  padding: 1px 5px;
  border-radius: 3px;
  z-index: 5;
}

.ticket-tile .tile-badge-stack {
  position: absolute;
  top: 2px;
  right: 2px;
  z-index: 6;
  display: flex;
  gap: 2px;
  align-items: center;
}

.ticket-tile .tile-badge-stack .completed-badge {
  position: static;
}

.ticket-tile .completed-badge.missed-badge {
  background: #b91c1c;
}

.ticket-tile .completed-badge.future-date-badge {
  background: #1d4ed8;
}

.ticket-tile .inprogress-badge {
  background: #92400e;
}

.ticket-tile .install-complete-badge {
  background: #1d4ed8;
}

/* ========================================
   타일 생산자 카드
   ======================================== */
.tile-producer-card {
  background: white;
  border-radius: 10px;
  border: 2px dashed var(--navy);
  padding: 10px 14px;
  transition: all 0.3s ease;
}

/* 접힌 상태 */
.tile-producer-card.collapsed {
  padding: 0;
}

.tile-producer-card.collapsed .producer-content {
  display: none;
}

.tile-producer-card.collapsed .producer-toggle-icon {
  transform: rotate(-90deg);
}

/* 헤더 (클릭 영역) */
.producer-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 14px;
  cursor: pointer;
  transition: background 0.2s;
  border-radius: 8px;
}

.producer-header:hover {
  background: #eff6ff;
}

.producer-title {
  font-size: 13px;
  font-weight: 600;
  color: var(--navy);
}

.producer-toggle-icon {
  font-size: 10px;
  color: var(--navy);
  transition: transform 0.3s ease;
}

/* 펼쳐진 상태 */
.tile-producer-card:not(.collapsed) .producer-header {
  border-bottom: 1px solid var(--border-light);
  margin-bottom: 10px;
}

.producer-content {
  display: flex;
  gap: 14px;
  padding: 0 4px 4px;
}

.producer-form-area {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 126px;
}

.producer-input {
  width: 100%;
  padding: 7px 9px;
  border: 1px solid var(--border-light);
  border-radius: 5px;
  font-size: 11px;
  outline: none;
  transition: border-color 0.2s;
}

.producer-input:focus {
  border-color: var(--action-blue);
}

.producer-input::placeholder {
  color: var(--text-muted);
}

.producer-btn {
  padding: 7px 14px;
  background: var(--navy);
  color: white;
  border: none;
  border-radius: 5px;
  font-size: 11px;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.2s;
  margin-top: 3px;
}

.producer-btn:hover {
  background: var(--navy-deep);
}

/* 생산된 타일 컨테이너 - 오른쪽 스택 */
.produced-tiles {
  flex: 1;
  display: flex;
  flex-wrap: wrap;
  align-content: flex-start;
  gap: 6px;
  min-height: 90px;
  background: var(--bg-light);
  border-radius: 7px;
  padding: 7px;
}

.produced-tiles:empty::before {
  content: "생성된 타일이 여기에 표시됩니다";
  color: var(--text-muted);
  font-size: 10px;
  font-style: italic;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
}

/* 삭제 확인 팝업 */
.delete-confirm-toast .confirm-message {
  font-size: 14px;
  font-weight: 500;
  color: var(--text-primary);
  margin-bottom: 16px;
}

.delete-confirm-toast .confirm-buttons {
  display: flex;
  gap: 12px;
  justify-content: center;
}

.delete-confirm-toast .confirm-yes {
  padding: 8px 20px;
  background: var(--danger);
  color: white;
  border: none;
  border-radius: 6px;
  font-weight: 500;
  cursor: pointer;
}

.delete-confirm-toast .confirm-yes:hover {
  background: #b91c1c;
}

.delete-confirm-toast .confirm-no {
  padding: 8px 20px;
  background: var(--bg-light);
  color: var(--text-primary);
  border: none;
  border-radius: 6px;
  font-weight: 500;
  cursor: pointer;
}

.delete-confirm-toast .confirm-no:hover {
  background: var(--border-light);
}

/* 사용자 선택 팝업 */
.user-select-popup .popup-header {
  padding: 12px 16px;
  font-weight: 600;
  font-size: 13px;
  color: var(--text-primary);
  border-bottom: 1px solid var(--border-light);
}

.user-select-popup .user-list {
  padding: 4px 0;
}

.user-select-popup .user-option {
  padding: 10px 16px;
  font-size: 14px;
  color: var(--text-primary);
  cursor: pointer;
  transition: background 0.15s;
}

.user-select-popup .user-option:hover {
  background: var(--bg-light);
}

/* 인원 이름 호버 효과 */
.personnel-name {
  transition: color 0.15s;
}

.personnel-name:hover {
  color: var(--action-blue);
  text-decoration: underline;
}

/* ========================================
   드래그 관련 스타일
   ======================================== */
.ticket-card.dragging {
  opacity: 0.5;
  transform: scale(0.98);
}

.ticket-card[draggable="true"] {
  cursor: grab;
}

.ticket-card[draggable="true"]:active {
  cursor: grabbing;
}

/* 드래그 고스트 */
.drag-ghost {
  position: fixed;
  pointer-events: none;
  z-index: 9999;
  opacity: 0.9;
  transform: rotate(3deg);
  box-shadow: 0 8px 24px rgba(15, 41, 66, 0.2);
}

/* ========================================
   기존 스타일 수정 (왼쪽 패널 내부)
   ======================================== */

/* 네비게이션 바 - PC용 레이아웃 */
nav {
  box-shadow: 0 2px 8px rgba(15, 41, 66, 0.1);
  width: 100%;
}

nav .flex {
  max-width: 100%;
  margin: 0;
  padding-left: 16px;
  padding-right: 16px;
}

/* PC 상단 헤더의 취소 버튼 숨김 */
#btn-cancel-selection {
  display: none !important;
}

/* 일괄처리 플로팅 버튼 PC에서도 항상 노출 가능 */
#bulk-fab {
  position: fixed !important; /* absolute → fixed (JS와 일치) */
  bottom: 24px !important;
  right: 16px !important;
  left: auto !important;
  z-index: 9999 !important;
  display: none;
}

#bulk-fab button {
  background: var(--action-blue, #0f62fe) !important;
  color: #ffffff !important;
  border: none !important;
  border-radius: 9999px !important;
  padding: 12px 16px !important;
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.18) !important;
  font-weight: 600 !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  cursor: pointer !important;
  opacity: 1 !important;
}

/* 대시보드 - 왼쪽 패널에 맞게 조정 */
.dashboard-fixed {
  position: sticky !important;
  top: 0;
  z-index: 50;
  max-width: 100%;
  width: 100%;
  margin: 0;
  padding: 8px 12px !important;
  background: var(--ascp-surface-canvas, #f5f5f5);
  border-radius: 0;
  box-shadow: none;
}

/* 대시보드 내부 여백 */
.dashboard-fixed .px-4 {
  padding-left: 12px !important;
  padding-right: 12px !important;
}

.dashboard-fixed .py-3\.5 {
  padding-top: 8px !important;
  padding-bottom: 8px !important;
}

.dashboard-fixed .pt-1 {
  padding-top: 4px !important;
}

.dashboard-fixed .pb-3 {
  padding-bottom: 8px !important;
}

.dashboard-fixed .mb-2\.5 {
  margin-bottom: 8px !important;
}

.dashboard-fixed .mb-3 {
  margin-bottom: 8px !important;
}

/* 통계 카드 - 균등 분할 */
.dashboard-fixed .grid.grid-cols-3 {
  display: flex !important;
  gap: 8px !important;
}

.dashboard-fixed .grid.grid-cols-3 > div {
  flex: 1 !important;
  padding: 8px !important;
}

/* 통계 카드 텍스트 */
.dashboard-fixed .text-xs {
  font-size: 0.7rem !important;
}

.dashboard-fixed .text-xl {
  font-size: 1.1rem !important;
}

.dashboard-fixed .text-lg {
  font-size: 1rem !important;
}

/* 기능 버튼 그리드 - 균등 분할 */
.dashboard-fixed .grid.grid-cols-4 {
  display: flex !important;
  gap: 6px !important;
}

.dashboard-fixed .grid.grid-cols-4 > button {
  flex: 1 !important;
  padding: 8px 4px !important;
  font-size: 0.75rem !important;
  min-width: 0 !important;
}

.dashboard-fixed h1 {
  font-size: 1.1rem !important;
}

/* 검색창 조정 */
.dashboard-fixed #search-input {
  padding-left: 43px !important;
  padding-right: 43px !important;
  min-height: 38px !important;
}

/* 티켓 리스트 - 왼쪽 패널에 맞게 조정 */
#ticket-list {
  max-width: 100%;
  width: 100%;
  margin: 0;
  padding: 12px;
  padding-bottom: 20px;
  /* 사이드바로 전환되어 하단 공간 불필요 */
}

/* 카드 컨테이너 - 1열 그리드 */
#cards-container {
  display: grid;
  grid-template-columns: 1fr;
  gap: 3px;
}

/* Tailwind space-y와 단독 카드 구분 여백이 겹치지 않게 한다. */
#cards-container > :not([hidden]) ~ :not([hidden]) {
  margin-top: 0;
  margin-bottom: 0;
}

#cards-container > .mt-2 {
  margin-top: 8px !important;
}

/* 티켓 카드 - 정보 밀도 높이기 */
.ticket-card {
  position: relative;
  cursor: pointer;
  transition: all 0.2s ease;
  user-select: none;
  -webkit-user-select: none;
  margin-bottom: 0 !important;
  /* mb-2 제거 */
}

.ticket-report-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 48px;
  height: 24px;
  padding: 0 10px;
  border-radius: 6px;
  background: #059669;
  color: #fff;
  font-size: 11px;
  font-weight: 800;
  line-height: 1;
  white-space: nowrap;
  box-shadow: 0 1px 2px rgba(16, 185, 129, 0.18);
}

.ticket-report-button:hover {
  background: #047857;
}

.ticket-report-mail-failure-badge {
  display: inline-flex;
  align-items: center;
  height: 24px;
  padding: 0 8px;
  border: 1px solid #fecaca;
  border-radius: 6px;
  background: #fef2f2;
  color: #b91c1c;
  font-size: 10px;
  font-weight: 800;
  line-height: 1;
  white-space: nowrap;
}

/* 카드 내부 패딩 축소 (p-3 -> 더 작게) */
.ticket-card .swipe-wrapper {
  padding: 6px 10px !important;
  /* 0.75rem 12px -> 6px 10px */
}

/* 카드 컴팩트 레이아웃 간격 축소 */
.ticket-card .card-compact {
  gap: 8px !important;
  /* gap-2.5 (10px) -> 8px */
}

/* 모든 여백 축소 */
.ticket-card .mb-1\.5 {
  margin-bottom: 4px !important;
  /* 6px -> 4px */
}

.ticket-card .mb-1 {
  margin-bottom: 2px !important;
  /* 4px -> 2px */
}

/* 배지 패딩 축소 */
.ticket-card .px-2 {
  padding-left: 4px !important;
  padding-right: 4px !important;
  /* 8px -> 4px */
}

.ticket-card .py-0\.5 {
  padding-top: 1px !important;
  padding-bottom: 1px !important;
  /* 2px -> 1px */
}

/* 텍스트 라인 높이 축소 */
.ticket-card {
  line-height: 1.2 !important;
}

/* [최적화] 확장된 버전에서는 기본 영역의 메모를 숨김 */
.ticket-card.expanded .memo-compact {
  display: none;
}

.ticket-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 16px rgba(15, 41, 66, 0.12);
}

.ticket-card:active {
  transform: translateY(0);
}

/* 카드 내부 텍스트 크기 */
.ticket-card .text-sm {
  font-size: 0.82rem;
}

.ticket-card .text-xs {
  font-size: 0.75rem;
}

.ticket-card .text-lg {
  font-size: 1.1rem;
}

/* 업체명 폰트 축소 */
.ticket-card .text-base {
  font-size: 0.95rem;
}

.ticket-card .text-xl {
  font-size: 1.2rem;
}

.ticket-card .text-2xl {
  font-size: 1.5rem;
}

/* 티켓 카드 높이 축소 (10%) */
.ticket-card .flex.gap-2.p-3 {
  padding: 6px 10px !important;
}

/* 오른쪽 영역: 2x2 그리드 배치 (접수일+접수자 / 버튼+버튼) */
.ticket-card .flex.flex-col.items-center.gap-1\.5.w-16 {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  grid-template-rows: auto auto !important;
  gap: 4px 6px !important;
  width: auto !important;
  min-width: 90px !important;
}

/* 접수일+접수자 텍스트 조정 */
.ticket-card .flex.flex-col.items-center.gap-1\.5.w-16 > .text-\[10px\],
.ticket-card .flex.flex-col.items-center.gap-1\.5.w-16 > .text-\[9px\] {
  white-space: nowrap;
  text-align: center;
}

/* 버튼 크기 축소 */
.ticket-card .flex.flex-col.items-center.gap-1\.5.w-16 > button {
  padding: 4px 6px !important;
  font-size: 10px !important;
  width: 100% !important;
}

/* 카드 전환 애니메이션 */
.card-detail {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s ease;
}

.card-detail.expanded {
  max-height: 2000px;
}

.ticket-detail-actions {
  display: grid;
  gap: 8px;
  padding-top: 12px;
}

.ticket-detail-actions--one {
  grid-template-columns: 1fr;
}

.ticket-detail-actions--two {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.ticket-detail-actions--three {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.ticket-detail-action {
  min-height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  border: 0;
  border-radius: 9px;
  color: #fff;
  font-size: 13px;
  font-weight: 900;
  line-height: 1;
}

.ticket-detail-action svg {
  width: 16px;
  height: 16px;
}

.ticket-detail-action-move {
  background: #6366f1;
}

.ticket-detail-action-process {
  background: #0f62fe;
}

.ticket-detail-action-start {
  background: #0f766e;
}

.ticket-detail-action-start.is-started {
  background: #14b8a6;
}

.ticket-detail-action-start.is-running {
  background: #0d9488;
}

.ticket-detail-action-start.is-paused {
  background: #64748b;
}

.ticket-detail-action-restore {
  background: #f59e0b;
}

/* 선택된 카드 스타일 - 토글 스위치로만 표시 (테두리 강조 없음) */

/* 버튼 호버 효과 */
button {
  transition: all 0.2s ease;
}

button:hover:not(:disabled) {
  transform: translateY(-1px);
  box-shadow: 0 4px 8px rgba(15, 41, 66, 0.15);
}

button:active:not(:disabled) {
  transform: translateY(0);
}

/* ========================================
   푸터바 (PC에서도 하단에 유지)
   ======================================== */
#footer-bar {
  position: fixed !important;
  bottom: 0 !important;
  left: 0 !important;
  right: 0 !important;
  height: var(--pc-footer-height) !important;
}

#footerFabToggle {
  display: none !important;
}

/* 푸터 그룹 구분선 */
#footer-bar .footer-divider {
  width: 1px;
  height: 28px;
  background: rgba(255, 255, 255, 0.25);
  flex-shrink: 0;
}

/* 푸터 버튼 - 아이콘+라벨 가로 배치 */
#footer-bar .footer-btn {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 6px 12px;
  color: white;
  border-radius: 8px;
  background: transparent;
  transition: all 0.15s;
  white-space: nowrap;
  font-size: 13px;
  font-weight: 500;
  letter-spacing: -0.02em;
}

#footer-bar .footer-btn:hover {
  background: rgba(255, 255, 255, 0.15);
}

#footer-bar .footer-btn:active {
  transform: scale(0.96);
}

#footer-bar .footer-btn .footer-label {
  opacity: 0.85;
}

#footer-bar .footer-btn:hover .footer-label {
  opacity: 1;
}

#footer-bar .footer-btn.hidden {
  display: none !important;
}

/* ========================================
   모달 - 티켓 패널 영역에 풀스크린 피팅
   위치: 화면 왼쪽, 폭: 483px, 푸터(52px) 위
   ======================================== */
.modal {
  display: none;
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  right: auto !important;
  bottom: 52px !important;
  /* 푸터 높이만큼 여백 */
  height: calc(100vh - 52px) !important;
  /* mobile-styles의 height:100% !important 덮어쓰기 */
  width: 483px !important;
  /* 티켓 패널과 동일한 폭 */
  max-width: 483px !important;
  padding: 0 !important;
  z-index: 100001 !important;
}

.modal.active {
  display: flex;
  flex-direction: column;
}

.modal > div {
  max-width: 100% !important;
  width: 100% !important;
  max-height: calc(100vh - 52px) !important;
  /* 푸터 높이 제외 */
  height: calc(100vh - 52px) !important;
  border-radius: 0 !important;
  overflow-y: auto;
  box-shadow: none;
}

.ascp-workflow-modal > div {
  overflow: hidden !important;
}

/* 채팅/업무현황/알림설정 모달 - 기본 .modal 규칙 따름 (왼쪽패널 풀스크린) */

/* 토글 스위치 스타일 */
.toggle-switch {
  position: relative;
  display: inline-block;
  width: 24px;
  height: 14px;
  flex-shrink: 0;
}

.toggle-input {
  opacity: 0;
  width: 0;
  height: 0;
}

.toggle-slider {
  position: absolute;
  cursor: pointer;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: var(--border-light);
  transition: 0.2s;
  border-radius: 14px;
}

.toggle-slider:before {
  position: absolute;
  content: "";
  height: 10px;
  width: 10px;
  left: 2px;
  bottom: 2px;
  background-color: white;
  transition:
    transform 0.2s ease,
    background-color 0.2s ease;
  border-radius: 50%;
  transform: translateX(0);
}

.toggle-input:checked + .toggle-slider {
  background-color: var(--action-blue);
}

.toggle-input:checked + .toggle-slider:before {
  transform: translateX(10px);
}

/* 로딩 스피너 */
.spinner {
  border: 3px solid var(--bg-light);
  border-top: 3px solid var(--action-blue);
  border-radius: 50%;
  width: 40px;
  height: 40px;
  animation: spin 1s linear infinite;
}

@keyframes spin {
  0% {
    transform: rotate(0deg);
  }

  100% {
    transform: rotate(360deg);
  }
}

/* 입력 필드 - 더 큰 사이즈 */
input[type="text"],
input[type="tel"],
input[type="date"],
input[type="number"],
textarea,
select {
  transition: all 0.2s ease;
}

input[type="text"]:focus,
input[type="tel"]:focus,
input[type="date"]:focus,
input[type="number"]:focus,
textarea:focus,
select:focus {
  box-shadow: 0 0 0 3px rgba(15, 98, 254, 0.1);
}

/* 스크롤바 스타일 (PC만) */
::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}

::-webkit-scrollbar-track {
  background: var(--bg-light);
  border-radius: 4px;
}

::-webkit-scrollbar-thumb {
  background: var(--border-light);
  border-radius: 4px;
}

::-webkit-scrollbar-thumb:hover {
  background: var(--text-muted);
}

/* 필터 버튼 그룹 - PC 레이아웃 */
.dashboard-fixed .flex.gap-2 {
  gap: 12px;
}

.main-action-grid {
  box-sizing: border-box !important;
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  width: 100% !important;
  max-width: 100% !important;
  gap: 10px !important;
  align-items: stretch;
}

.main-action-grid > .mobile-action-menu-wrap,
.main-action-grid > button {
  box-sizing: border-box !important;
  min-width: 0 !important;
  max-width: 100% !important;
  width: 100% !important;
}

.main-action-grid > #btn-schedule-mode {
  display: none !important;
}

.main-action-grid > .mobile-action-menu-wrap > button,
.main-action-grid > button {
  box-sizing: border-box !important;
  display: flex !important;
  width: 100% !important;
  max-width: 100% !important;
  height: 38px !important;
  min-height: 38px !important;
  padding: 0 10px !important;
  border: 1px solid #bfcbda !important;
  align-items: center !important;
  justify-content: center !important;
  border-radius: 8px !important;
  background-color: #dcecff !important;
  color: #111827 !important;
  font-size: 0.875rem !important;
  font-weight: 600 !important;
  line-height: 1 !important;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.06) !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

.main-action-grid #btn-schedule-mode {
  display: none !important;
}

/* 신규 상단 기능 버튼/2차 버튼 - PC에서도 모바일 CSS 없이 독립 렌더링 */
.mobile-action-menu-wrap {
  position: relative;
  min-width: 0;
}

.mobile-top-filter-btn {
  width: 100%;
  min-height: 38px;
  padding: 10px 8px;
  border: 1px solid #bfcbda;
  border-radius: 8px;
  background-color: #dcecff;
  color: #111827;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.06);
  font-size: 0.875rem;
  font-weight: 600;
  line-height: 1;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.mobile-top-filter-btn--incomplete {
  background-color: #dcecff;
}

.mobile-top-filter-btn--all {
  background-color: #dcecff;
}

.mobile-top-filter-btn--install {
  background-color: #dcecff;
}

.mobile-top-filter-btn--parts {
  background-color: #dcecff;
}

.mobile-top-filter-btn.is-active {
  background-color: #cfe3fb;
  border-color: #aabbd1;
}

#btn-reception {
  border-color: #8fb3df !important;
}

#btn-ticket-mode-filter {
  border-color: #9fb0c8 !important;
}

#btn-incomplete {
  border-color: #94a0ba !important;
}

#btn-schedule-mode {
  border-color: #9ca7c7 !important;
}

#btn-ops-menu {
  border-color: #88a8b6 !important;
}

.mobile-action-popover {
  position: absolute;
  top: calc(100% + 8px);
  left: 0;
  z-index: 100010;
  display: flex;
  width: 100%;
  min-width: 100%;
  transform: none;
  flex-direction: column;
  gap: 7px;
  pointer-events: auto;
}

.mobile-action-popover.hidden {
  display: none !important;
}

.mobile-action-pop {
  width: 100%;
  min-height: 36px;
  border: 1px solid #cfd6df;
  border-radius: 10px;
  background-color: #f3f6fa;
  box-shadow: 0 12px 24px rgba(15, 23, 42, 0.14);
  color: #111827;
  font-size: 12px;
  font-weight: 800;
  line-height: 1;
  transform-origin: top center;
  animation: desktop-action-pop 280ms cubic-bezier(0.2, 1.25, 0.36, 1) both;
}

.mobile-action-pop[data-top-filter="incomplete"] {
  background-color: #f3f6fa;
}

.mobile-action-pop[data-top-filter="all"] {
  background-color: #f3f6fa;
}

.mobile-action-pop[data-top-filter="install"] {
  background-color: #f3f6fa;
}

.mobile-action-pop[data-top-filter="parts:접수"] {
  background-color: #f3f6fa;
}

.mobile-action-pop[data-top-filter="parts:견적발행"] {
  background-color: #f3f6fa;
}

.mobile-action-pop[data-top-filter="parts:발주완료"] {
  background-color: #f3f6fa;
}

.mobile-action-pop[data-top-filter="parts:입고"] {
  background-color: #f3f6fa;
}

.mobile-action-pop[data-ops-action="ops"] {
  background-color: #4f9f8b;
}

.mobile-action-pop[data-ops-action="stats"] {
  background-color: #4f8fbc;
}

.mobile-action-pop[data-ops-action="parts-dashboard"] {
  background-color: #6d7fc3;
}

.mobile-action-pop[data-ops-action="manual-library"] {
  background-color: #64748b;
}

.mobile-action-pop:nth-child(2) {
  animation-delay: 35ms;
}

.mobile-action-pop:nth-child(3) {
  animation-delay: 70ms;
}

.mobile-action-pop:nth-child(4) {
  animation-delay: 105ms;
}

.mobile-action-pop:nth-child(5) {
  animation-delay: 140ms;
}

.mobile-action-pop:nth-child(6) {
  animation-delay: 175ms;
}

@keyframes desktop-action-pop {
  0% {
    opacity: 0;
    transform: translateY(-6px) scale(0.78);
  }
  64% {
    opacity: 1;
    transform: translateY(1px) scale(1.04);
  }
  100% {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

/* 남은 기능 버튼은 PC에서도 균등폭으로 재분배 */
.dashboard-fixed button#btn-reception,
.dashboard-fixed button#btn-incomplete,
.dashboard-fixed button#btn-stats,
.dashboard-fixed .mobile-action-menu-wrap {
  flex: 1;
  min-width: auto;
}

.dashboard-fixed button#btn-reception,
.dashboard-fixed button#btn-incomplete,
.dashboard-fixed button#btn-stats {
  padding: 10px 16px;
  font-size: 0.875rem;
}

/* 다른 버튼들 */
.dashboard-fixed
  button:not(#btn-reception):not(#btn-incomplete):not(#btn-stats):not(
    .mobile-action-pop
  ) {
  min-width: 120px;
  padding: 10px 16px;
  font-size: 0.875rem;
}

#ticket-filter-bar .main-action-grid {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  width: 100% !important;
  max-width: 100% !important;
  gap: 10px !important;
}

/* 상단 기능/검색 영역의 좌우선을 티켓 카드와 맞춘다. */
#ticket-filter-bar {
  padding-left: 0 !important;
  padding-right: 0 !important;
}

#ticket-filter-bar .main-action-grid > .mobile-action-menu-wrap,
#ticket-filter-bar .main-action-grid > button {
  min-width: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
}

#ticket-filter-bar .main-action-grid > .mobile-action-menu-wrap > button,
#ticket-filter-bar .main-action-grid > button {
  min-width: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  padding-right: 10px !important;
  padding-left: 10px !important;
}

#ticket-filter-bar #realtime-search-surface {
  width: 100%;
  max-width: 100%;
}

/* 모바일 전용 버튼은 PC에서 숨김 */
#ticket-filter-bar #btn-schedule-mode {
  display: none !important;
}


/* 활동 콘솔 - PC에서는 좌측 티켓 패널 위에 뜨고 처리모달보다 한 단계 아래 */
.activity-sheet {
  position: fixed;
  top: 0;
  left: 0;
  right: auto;
  bottom: 52px;
  z-index: 100000;
  display: flex;
  width: 483px;
  height: calc(100vh - 52px);
  align-items: stretch;
  background: #f8fafc;
  box-shadow: 18px 0 45px rgba(15, 23, 42, 0.18);
}

.activity-sheet.hidden {
  display: none !important;
}

.activity-panel {
  box-sizing: border-box;
  width: 483px;
  height: calc(100vh - 52px);
  max-height: none;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  background: #f8fafc;
  border-right: 1px solid #cbd5e1;
  box-shadow: none;
}

.activity-grabber {
  display: none;
}

.activity-worker-strip {
  display: flex;
  gap: 6px;
  padding: 9px 12px 7px;
  overflow-x: auto;
  flex-shrink: 0;
  scrollbar-width: none;
}

.activity-worker-strip::-webkit-scrollbar {
  display: none;
}

.activity-worker-chip {
  height: 25px;
  min-width: 44px;
  padding: 0 9px;
  border: 1px solid #cbd5e1;
  border-radius: 6px;
  background: #e2e8f0;
  color: #475569;
  font-size: 11px;
  font-weight: 800;
  white-space: nowrap;
}

.activity-worker-chip.active {
  background: #334155;
  border-color: #334155;
  color: #fff;
}

.activity-header {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) 34px 40px;
  gap: 6px;
  align-items: center;
  padding: 10px 12px 9px;
  border-bottom: 1px solid #e2e8f0;
  flex-shrink: 0;
}

.activity-nav,
.activity-close {
  width: 34px;
  height: 30px;
  border-radius: 8px;
  background: #e2e8f0;
  color: #334155;
  font-size: 16px;
  font-weight: 900;
}

.activity-close {
  width: 40px;
  background: #334155;
  color: #fff;
  font-size: 12px;
}

.activity-title {
  text-align: center;
  min-width: 0;
}

.activity-title-main {
  font-size: 13px;
  font-weight: 900;
  color: #0f172a;
  line-height: 1.1;
}

.activity-title-sub {
  margin-top: 3px;
  font-size: 10px;
  font-weight: 700;
  color: #64748b;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.activity-body {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: 9px 10px 16px;
}

.activity-section-title {
  display: flex;
  justify-content: space-between;
  padding: 4px 2px 7px;
  color: #475569;
  font-size: 11px;
  font-weight: 900;
}

.activity-ticket-list {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.activity-ticket {
  display: grid;
  grid-template-columns: 30px minmax(0, 1fr) auto;
  gap: 6px;
  align-items: stretch;
  padding: 6px;
  border: 1px solid #dbe3ef;
  border-left: 4px solid #4f46e5;
  border-radius: 8px;
  background: #fff;
}

.activity-ticket.is-readonly {
  grid-template-columns: minmax(0, 1fr) auto;
  border-left-color: #94a3b8;
}

.activity-ticket.is-install {
  border-left-color: #059669;
}

.activity-ticket.is-expanded {
  background: #f8fafc;
}

.activity-handle {
  width: 30px;
  min-height: 42px;
  border-radius: 7px;
  background: #e2e8f0;
  color: #475569;
  cursor: grab;
  touch-action: none;
  user-select: none;
}

.activity-handle svg {
  width: 15px;
  height: 15px;
  margin: auto;
}

.activity-handle.is-recent {
  color: #2563eb;
  background: #dbeafe;
}

.activity-ticket-copy {
  min-width: 0;
  text-align: left;
  padding: 3px 0;
}

.activity-company {
  font-size: 13px;
  font-weight: 900;
  color: #0f172a;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.activity-company-line {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 5px;
}

.activity-meta-line {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 4px;
  margin-top: 3px;
}

.activity-meta-line .activity-meta {
  min-width: 0;
  flex: 1 1 auto;
  margin-top: 0;
}

.activity-meta {
  margin-top: 3px;
  font-size: 10px;
  font-weight: 700;
  color: #64748b;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.activity-process {
  min-height: 36px;
  appearance: none;
  border: 0;
  border-radius: 7px;
  background: #334155;
  color: #fff;
  font-size: 11px;
  font-weight: 900;
}

.activity-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  width: 110px;
  min-width: 110px;
  gap: 4px;
  align-items: stretch;
}

.activity-actions.has-start {
  grid-template-columns: 1fr 1fr 1fr;
}

.activity-actions.is-completed {
  grid-template-columns: 1fr;
  width: 56px;
  min-width: 56px;
}

.activity-status-badge {
  align-self: center;
  min-width: 56px;
  min-height: 30px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 0;
  border-radius: 7px;
  background: #4338ca;
  color: #fff;
  font-size: 11px;
  font-weight: 900;
}

.activity-status-badge.is-moving {
  animation: activity-move-blink 1s ease-in-out infinite;
}

.activity-status-badge.is-completed {
  background: #16a34a;
}

.activity-move {
  min-height: 36px;
  appearance: none;
  border: 0;
  border-radius: 7px;
  background: #6366f1;
  color: #fff;
  font-size: 11px;
  font-weight: 900;
}

.activity-start {
  min-height: 36px;
  appearance: none;
  border: 0;
  border-radius: 7px;
  background: #0f766e;
  color: #fff;
  font-size: 11px;
  font-weight: 900;
}

.activity-start.is-started {
  background: #14b8a6;
}

.activity-start.is-running {
  background: #0d9488;
}

.activity-start.is-paused {
  background: #64748b;
}

.activity-move.is-moving {
  background: #4338ca;
  animation: activity-move-blink 1s ease-in-out infinite;
}

.activity-move.is-locked,
.activity-move:disabled {
  background: #cbd5e1;
  color: #64748b;
  cursor: not-allowed;
  animation: none;
  opacity: 0.82;
}

.activity-process.is-completed {
  background: #16a34a;
}

@keyframes activity-move-blink {
  0%,
  100% {
    opacity: 1;
    box-shadow: 0 0 0 rgba(67, 56, 202, 0);
  }
  50% {
    opacity: 0.58;
    box-shadow: 0 0 0 3px rgba(67, 56, 202, 0.14);
  }
}

.activity-detail {
  grid-column: 2 / 4;
  display: grid;
  gap: 4px;
  padding: 6px 4px 2px;
}

.activity-ticket.is-readonly .activity-detail {
  grid-column: 1 / -1;
}

.activity-ticket-history {
  grid-column: 1 / -1;
  margin-top: 7px;
  padding-top: 7px;
  border-top: 1px solid #cbd5e1;
}

.activity-ticket-history-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 4px;
  color: #475569;
  font-size: 12px;
  font-weight: 900;
}

.activity-ticket-history-list {
  display: grid;
  gap: 5px;
}

.activity-ticket-history-row {
  padding: 6px 7px;
  border: 1px solid #e2e8f0;
  border-radius: 7px;
  background: #fff;
}

.activity-ticket-history-meta {
  display: flex;
  align-items: center;
  gap: 6px;
  color: #64748b;
  font-size: 11px;
  font-weight: 800;
}

.activity-ticket-history-text {
  margin-top: 4px;
  color: #0f172a;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.45;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  word-break: keep-all;
}

.activity-detail-row {
  display: grid;
  grid-template-columns: 52px minmax(0, 1fr);
  gap: 6px;
  align-items: start;
  font-size: 11px;
  line-height: 1.35;
}

.activity-detail-label {
  width: 52px;
  color: #64748b;
  font-weight: 900;
  text-align: justify;
  text-align-last: justify;
}

.activity-detail-value {
  min-width: 0;
  color: #0f172a;
  font-weight: 700;
  overflow-wrap: anywhere;
  word-break: keep-all;
}

.activity-phone {
  color: #0f62fe;
}

.activity-log-block {
  margin-top: 8px;
}

.activity-log-heading {
  display: flex;
  justify-content: space-between;
  padding: 3px 2px 6px;
  color: #475569;
  font-size: 10.5px;
  font-weight: 900;
}

.activity-log-list {
  display: grid;
  gap: 0;
  border-top: 1px solid #e2e8f0;
  border-bottom: 1px solid #e2e8f0;
}

.activity-log-row {
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr) 18px;
  gap: 6px;
  align-items: start;
  padding: 6px 4px;
  border-radius: 0;
  background: #fff;
  border: 0;
  border-top: 1px solid #f1f5f9;
  font-size: 11px;
}

.activity-log-row:first-child {
  border-top: 0;
}

.activity-log-row.is-readonly {
  grid-template-columns: 48px minmax(0, 1fr);
}

.activity-log-lead {
  display: grid;
  justify-items: start;
  gap: 3px;
}

.activity-log-time {
  color: #64748b;
  font-weight: 900;
  line-height: 1.35;
}

.activity-log-type {
  display: inline-flex;
  min-width: 30px;
  justify-content: center;
  padding: 2px 4px;
  border-radius: 999px;
  background: #f1f5f9;
  color: #475569;
  font-size: 8px;
  font-weight: 900;
  line-height: 1.2;
}

.activity-log-type.is-reception { background: #fff7ed; color: #c2410c; }
.activity-log-type.is-move { background: #eef2ff; color: #4338ca; }
.activity-log-type.is-process,
.activity-log-type.is-action { background: #eff6ff; color: #1d4ed8; }
.activity-log-type.is-complete { background: #dcfce7; color: #15803d; }
.activity-log-type.is-memo { background: #f5f3ff; color: #7c3aed; }
.activity-log-type.is-custom { background: #fef3c7; color: #a16207; }

.activity-log-copy {
  color: #0f172a;
  line-height: 1.38;
  overflow-wrap: anywhere;
  word-break: keep-all;
}

.activity-log-main {
  min-width: 0;
}

.activity-event-name {
  margin-left: 7px;
  color: #475569;
  font-weight: 900;
}

.activity-log-meta {
  margin-top: 3px;
  color: #64748b;
  font-size: 9.5px;
  font-weight: 700;
}

.activity-log-attached {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 4px;
  margin-top: 3px;
  color: #64748b;
  font-size: 10px;
  line-height: 1.35;
}

.activity-log-attached span {
  min-width: 0;
}

.activity-log-delete {
  width: 18px;
  height: 18px;
  min-width: 18px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  appearance: none;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: #cbd5e1;
  font-family: inherit;
  font-size: 11px;
  font-weight: 900;
  line-height: 1;
  padding: 0;
  text-align: center;
  cursor: pointer;
}

.activity-log-attached .activity-log-delete {
  width: 16px;
  height: 16px;
  min-width: 16px;
  font-size: 10px;
  line-height: 1;
  margin-left: auto;
}

.activity-log-delete:hover,
.activity-log-delete:active {
  background: #fee2e2;
  color: #b91c1c;
}

.activity-empty {
  padding: 16px 8px;
  text-align: center;
  color: #94a3b8;
  font-size: 12px;
  font-weight: 800;
}

.activity-empty.is-compact {
  padding: 9px 8px;
  border: 1px dashed #cbd5e1;
  background: #fff;
  font-size: 11px;
}

.activity-custom-log {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 48px;
  gap: 6px;
  margin-top: 8px;
}

.activity-custom-log-input {
  min-width: 0;
  min-height: 34px;
  appearance: none;
  border: 1px solid #dbe3ef;
  border-radius: 8px;
  background: #fff;
  color: #0f172a;
  font-size: 12px;
  font-weight: 800;
  padding: 0 9px;
}

.activity-custom-log-input:focus {
  border-color: #2563eb;
  outline: none;
  box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.12);
}

.activity-custom-log-submit {
  min-height: 34px;
  appearance: none;
  border: 0;
  border-radius: 8px;
  background: #334155;
  color: #fff;
  font-size: 11px;
  font-weight: 900;
}

.activity-custom-log-submit:disabled {
  opacity: 0.55;
}

/* 활동 모달 가독성: 기존 크기에서 한 단계 확대 */
.activity-worker-chip { height: 27px; font-size: 12px; }
.activity-nav,
.activity-close { font-size: 17px; }
.activity-close { font-size: 13px; }
.activity-title-main { font-size: 14px; }
.activity-title-sub { font-size: 11px; }
.activity-section-title { font-size: 12px; }
.activity-company { font-size: 14px; }
.activity-meta { font-size: 11px; }
.activity-process,
.activity-move,
.activity-start { min-height: 36px; min-width: 51px; padding: 0 5px; font-size: 12px; }
.activity-status-badge { font-size: 12px; }
.activity-detail-row { font-size: 12px; }
.activity-log-heading { font-size: 11.5px; }
.activity-log-row { font-size: 12px; }
.activity-log-time { font-size: 12px; }
.activity-log-type { font-size: 9px; }
.activity-log-copy { font-size: 12px; }
.activity-log-meta { font-size: 10.5px; }
.activity-log-attached { font-size: 11px; }
.activity-empty { font-size: 13px; }
.activity-empty.is-compact { font-size: 12px; }
.activity-custom-log-input,
.activity-custom-log-submit { font-size: 13px; }

/* 반응형 조정 - 모든 화면에서 1열 유지 */
@media (min-width: 1200px) {
  #cards-container {
    grid-template-columns: 1fr;
  }

  .dashboard-fixed .grid {
    grid-template-columns: repeat(6, 1fr);
  }
}

/* 반응형 조정 - 중간 화면 (992px ~ 1199px) */
@media (min-width: 992px) and (max-width: 1199px) {
  #cards-container {
    grid-template-columns: 1fr;
  }
}

/* 반응형 조정 - 태블릿 (768px ~ 991px) */
@media (min-width: 768px) and (max-width: 991px) {
  #cards-container {
    grid-template-columns: 1fr;
    gap: 3px;
  }

  .dashboard-fixed {
    padding: 16px;
  }
}

/* 터치 하이라이트 제거 (PC에서 불필요) */
* {
  -webkit-tap-highlight-color: transparent;
}

/* 스와이프 기능 제거 (PC에서 불필요) */
.swipe-container {
  position: static;
  overflow: visible;
}

.swipe-wrapper {
  transition: none;
}

.swipe-actions {
  display: none;
}

/* ========================================
   PC에서 비활성화할 기능들
   ======================================== */

/* PC에서 숨길 요소들 */
.pc-hide,
#bottom-bar,
#btn-bulk-process,
#bulk-selection-bar,
#dashboard-stats {
  display: none !important;
}

/* 티켓 카드 롱클릭 비활성화 (pointer-events 유지하되 터치 이벤트만 무시) */
.ticket-card {
  position: relative;
  touch-action: manipulation;
  -webkit-touch-callout: none;
  border-left: 3px solid var(--action-blue) !important;
  box-shadow: none;
}

/* 설치시운전 티켓 카드 (그린 톤) */
.ticket-card.install-card {
  background: #fff !important;
  border-left: 3px solid var(--success) !important;
  box-shadow: none;
}

/* ========================================
   통계 모달 - PC에서 좌측 티켓 패널 영역에 오버레이
   위치: 화면 왼쪽, 폭: 483px (티켓 패널과 동일)
   ======================================== */
#stats-modal {
  left: 0 !important;
  right: auto !important;
  top: var(--pc-header-height) !important;
  /* pc-common-header 아래에서 시작 */
  bottom: var(--pc-footer-height) !important;
  /* footer-bar 높이 위에서 끝 */
  height: auto !important;
  width: 483px !important;
  max-width: 483px !important;
  border-radius: 0 !important;
}

/* 부품 원가 모달 - 티켓 패널 영역 중앙 */
#parts-cost-modal {
  left: 0 !important;
  right: auto !important;
  width: 483px !important;
}

/* ========================================
   배정된 티켓 강조 (주황색 테두리)
   ======================================== */
.ticket-card.scheduled {
  border-left: 5px solid #f59e0b !important;
}

/* 설치시운전 + 배정: 주황색 테두리 (설치 그린보다 배정 우선) */
.ticket-card.install-card.scheduled {
  border-left: 5px solid #f59e0b !important;
}

/* 완료 티켓: 흐림 처리 없이 빨간 좌측선으로만 구분 */
.ticket-card.completed-card,
.ticket-card.install-card.completed-card,
.ticket-card.scheduled.completed-card,
.ticket-card[data-status="완료"] {
  opacity: 1 !important;
  border-left: 5px solid #ef4444 !important;
}

/* ========================================
   Lucide 아이콘 기본 스타일
   ======================================== */
.lucide {
  width: 1em;
  height: 1em;
  vertical-align: middle;
}

.lucide-sm {
  width: 16px;
  height: 16px;
}

.lucide-md {
  width: 20px;
  height: 20px;
}

.lucide-lg {
  width: 24px;
  height: 24px;
}

/* ===== 타일 클릭 시 티켓 테두리 강조 ===== */
.ticket-card.has-tile-badge {
  border: 3px solid #ef4444 !important;
  box-shadow:
    0 0 0 3px rgba(239, 68, 68, 0.3),
    0 4px 12px rgba(0, 0, 0, 0.15) !important;
  animation: border-pulse 2s ease-in-out infinite;
}

@keyframes border-pulse {
  0%,
  100% {
    box-shadow:
      0 0 0 3px rgba(239, 68, 68, 0.3),
      0 4px 12px rgba(0, 0, 0, 0.15);
  }
  50% {
    box-shadow:
      0 0 0 6px rgba(239, 68, 68, 0.5),
      0 4px 16px rgba(239, 68, 68, 0.3);
  }
}

/* ===== 일괄처리 FAB - left-panel 우하단 ===== */
#bulk-fab {
  /* left-panel width(483px) 안쪽 우하단, footer-bar(52px) 위 */
  right: calc(100vw - 483px - 24px) !important;
  bottom: 68px !important; /* 52px footer + 16px 여백 */
  left: auto !important;
}

#left-panel #ticket-search-condition-sheet.main-search-sheet {
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
  overflow: hidden;
  border: 1px solid #dce5f2;
  border-radius: 8px;
  background: rgba(248, 250, 252, 0.98);
  padding: 7px;
}

#left-panel #realtime-search-surface {
  min-height: 38px;
}

#left-panel #realtime-search-surface .main-search-icon-btn {
  position: absolute;
  top: 50%;
  width: 30px !important;
  height: 30px !important;
  min-width: 30px !important;
  max-width: 30px !important;
  padding: 0 !important;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #d8e0ec;
  border-radius: 8px;
  background: #f8fafc;
  color: #334155;
  transform: translateY(-50%);
  transition:
    background-color 140ms ease,
    border-color 140ms ease,
    transform 120ms ease;
}

#left-panel #realtime-search-surface #btn-search-conditions {
  width: 32px !important;
  height: 32px !important;
  max-width: 32px !important;
}

#left-panel #realtime-search-surface .main-search-icon-btn.hidden {
  display: none;
}

#left-panel #realtime-search-surface .main-search-icon-btn:active {
  background: #eef2f7;
  border-color: #cbd5e1;
  transform: translateY(-50%) scale(0.94);
}

#left-panel #realtime-search-surface .main-search-icon-btn svg {
  width: 16px !important;
  height: 16px !important;
  stroke-width: 2.4;
}

#left-panel #realtime-search-surface .main-search-condition-trigger {
  left: 4px;
}

#left-panel #realtime-search-surface .main-search-clear {
  right: 4px;
  border-radius: 999px;
}

.dashboard-fixed #search-input {
  padding-left: 43px !important;
  padding-right: 43px !important;
  line-height: 1.35;
}

#left-panel #ticket-search-condition-sheet .main-search-sheet-head {
  display: grid !important;
  grid-template-columns: auto minmax(0, 1fr) 44px !important;
  align-items: center;
  gap: 8px;
  margin-bottom: 6px;
  color: #475569;
  font-size: 11px;
  font-weight: 800;
}

#left-panel #ticket-search-condition-sheet .main-search-sheet-head button {
  width: 44px !important;
  min-width: 44px !important;
  max-width: 44px !important;
  height: 24px !important;
  border: 1px solid #d5dce8;
  border-radius: 7px;
  background: #fff;
  color: #475569;
  padding: 0 !important;
  font-size: 10px;
  font-weight: 800;
}

#left-panel #ticket-search-condition-sheet .main-search-status {
  min-width: 0;
  color: #64748b;
  font-size: 10px;
  font-weight: 700;
  text-align: right;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

#left-panel
  #ticket-search-condition-sheet
  .main-search-status[data-state="loading"] {
  color: #0f62fe;
}

#left-panel
  #ticket-search-condition-sheet
  .main-search-status[data-state="done"] {
  color: #059669;
}

#left-panel
  #ticket-search-condition-sheet
  .main-search-status[data-state="fallback"] {
  color: #b45309;
}

#left-panel #ticket-search-condition-sheet .main-search-condition-list {
  display: grid;
  gap: 5px;
}

#left-panel #ticket-search-condition-sheet .main-search-condition-row {
  box-sizing: border-box;
  display: grid !important;
  grid-template-columns: 90px minmax(0, 1fr) 28px !important;
  gap: 5px;
  align-items: center;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  overflow: hidden;
}

#left-panel #ticket-search-condition-sheet .main-search-condition-row select,
#left-panel #ticket-search-condition-sheet .main-search-condition-row input {
  box-sizing: border-box;
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  height: 30px !important;
  border: 1px solid #d8e0ec;
  border-radius: 7px;
  background: #fff;
  padding: 0 7px !important;
  color: #334155;
  font-size: 11px;
  font-weight: 700;
}

#left-panel #ticket-search-condition-sheet .main-search-condition-value {
  min-width: 0 !important;
  max-width: 100%;
  overflow: hidden;
}

#left-panel #ticket-search-condition-sheet .main-search-date-range {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) !important;
  gap: 4px;
  align-items: center;
  min-width: 0;
  max-width: 100%;
}

#left-panel
  #ticket-search-condition-sheet
  .main-search-date-range
  input[type="text"] {
  color: #94a3b8;
}

#left-panel #ticket-search-condition-sheet .main-search-date-range span {
  color: #94a3b8;
  font-size: 11px;
  font-weight: 800;
}

#left-panel #ticket-search-condition-sheet .main-search-condition-remove,
#left-panel #ticket-search-condition-sheet .main-search-add-condition {
  height: 30px !important;
  border: 0;
  border-radius: 7px;
  font-weight: 900;
}

#left-panel #ticket-search-condition-sheet .main-search-condition-remove {
  width: 28px !important;
  min-width: 28px !important;
  max-width: 28px !important;
  padding: 0 !important;
  display: flex !important;
  align-items: center;
  justify-content: center;
  background: #eef2f7;
  color: #64748b;
  font-size: 15px;
}

#left-panel #ticket-search-condition-sheet .main-search-add-condition {
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  margin-top: 6px;
  padding: 0 8px !important;
  background: #1f2937;
  color: #fff;
  font-size: 12px;
}

#left-panel #ticket-search-condition-sheet button:hover {
  transform: none !important;
  box-shadow: none !important;
}


#reception-modal .reception-date-mode-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(240px, 0.85fr);
  gap: 12px;
  align-items: end;
}

#reception-modal .reception-date-field {
  min-width: 0;
}

#reception-modal .reception-mode-buttons {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 6px;
  align-items: end;
}

#reception-modal .reception-mode-btn {
  box-sizing: border-box;
  min-width: 0;
  height: 42px;
  border: 1px solid #cbd5e1;
  border-radius: 10px;
  background: #fff;
  color: #334155;
  padding: 0 8px;
  font-size: 14px;
  font-weight: 800;
  line-height: 1;
  text-align: center;
  white-space: nowrap;
}

#reception-modal .reception-mode-btn:hover {
  transform: none;
  box-shadow: none;
  background: #f8fafc;
}

#reception-modal .reception-mode-btn.is-active {
  border-color: #2563eb;
  background: #eff6ff;
  color: #1d4ed8;
}

#reception-modal .reception-mode-btn[data-reception-toggle="quote"].is-active {
  border-color: #f59e0b;
  background: #fff7ed;
  color: #c2410c;
}

#reception-modal .reception-mode-btn[data-reception-toggle="urgent"].is-active {
  border-color: #fb923c;
  background: #fff7ed;
  color: #ea580c;
}

#reception-modal
  .reception-mode-btn[data-reception-toggle="relocation"].is-active {
  border-color: #10b981;
  background: #ecfdf5;
  color: #047857;
}

#reception-modal .reception-mode-btn[data-reception-toggle="test"].is-active {
  border-color: #0284c7;
  background: #f0f9ff;
  color: #0369a1;
}
