*{margin:0;padding:0;box-sizing:border-box}

/* Manager 포털과 동일한 Pretendard 적용 — Element Plus 내부 컴포넌트까지 강제 */
html, body,
input, button, select, textarea,
.el-input__inner, .el-textarea__inner, .el-select__wrapper, .el-select__placeholder,
.el-button, .el-menu, .el-menu-item, .el-sub-menu__title,
.el-table, .el-form-item__label, .el-dialog, .el-message-box,
.el-dropdown-menu, .el-checkbox__label, .el-radio__label,
.el-tag, .el-pagination, .el-card, .el-tabs,
.el-message, .el-notification {
  font-family: 'Pretendard', -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Noto Sans KR', 'Malgun Gothic', sans-serif !important;
}

body{background:#f0f2f5;color:#333;font-size:14px}

/* ── 글자 크기 체계 (사용자 요청) ──────────────────
   사이드바 상단 제품명/고객사명 20px
   상위 메뉴 15px, 하위 메뉴 13px
   본문 기본 13px, 제목(h1~h3) 16px, 버튼 14px
   ---------------------------------------------- */

/* 사이드바 상단 로고 텍스트 */
.logo-product { font-size: 15px !important; font-weight: 600 !important; line-height:1.35 !important; }
.logo-version { font-size: 15px !important; font-weight: 600 !important; color: rgba(255,255,255,0.85) !important; }
.logo-tenant  { font-size: 20px !important; font-weight: 700 !important; color: #4fc3f7 !important; }

/* 상위 메뉴 (el-menu-item · el-sub-menu__title) */
.sidebar-menu > .el-menu-item,
.sidebar-menu > .el-sub-menu > .el-sub-menu__title,
.sidebar-menu.el-menu > .el-menu-item,
.sidebar-menu.el-menu > .el-sub-menu > .el-sub-menu__title {
  font-size: 15px !important;
}
/* 하위 메뉴 — 이전 12px/13px !important 보다 우선하도록 구체도 + !important */
.sidebar-menu .el-sub-menu .el-menu-item,
.sidebar-menu.el-menu .el-sub-menu .el-menu-item,
aside.sidebar .sidebar-menu .el-sub-menu .el-menu-item {
  font-size: 14px !important;
}

/* 본문 기본 14px */
.page, .page *:not(h1):not(h2):not(h3):not(h4):not(.el-dialog__title):not(.el-button):not(button):not(.logo-product):not(.logo-version):not(.logo-tenant) {
  font-size: 14px;
}
/* 제목 16px */
.page h1, .page h2, .page h3, .page h4,
.form-box h3, .table-box h3, .el-dialog__title, .el-card__header {
  font-size: 16px !important;
  font-weight: 700;
}
/* 버튼 14px — Element Plus 기본 > size="small" 까지 포함 */
.el-button,
.el-button--default,
.el-button--primary,
.el-button--success,
.el-button--warning,
.el-button--danger,
.el-button--info {
  font-size: 14px !important;
}
.el-button--small { font-size: 14px !important; }

/* ── 로그인 ──────────────────────────────── */
.login-wrapper{display:flex;justify-content:center;align-items:center;min-height:100vh;background:linear-gradient(135deg,#1a3a5c 0%,#0d7377 100%)}
.login-box{background:white;padding:32px;border-radius:14px;box-shadow:0 8px 32px rgba(0,0,0,0.2);width:380px;max-width:90vw}
.login-logo{text-align:center;margin-bottom:12px}
.login-logo-img{width:180px;height:auto}
.login-tenant-name{text-align:center;font-size:24px;font-weight:700;color:#1a3a5c;margin-bottom:20px;letter-spacing:-0.5px}

/* ── 레이아웃 ────────────────────────────── */
.layout{display:flex;height:100vh;overflow:hidden}

/* ── 사이드바 ────────────────────────────── */
.sidebar{width:210px;background:#092D46;color:white;flex-shrink:0;display:flex;flex-direction:column;transition:width 0.25s ease;overflow:hidden;height:100vh}
.sidebar-menu.el-menu{background:#092D46 !important}
.sidebar-menu .el-sub-menu .el-menu{background:#092D46 !important}
.sidebar.sidebar-collapsed{width:56px}

/* 로고 영역 */
.logo-area{padding:16px 12px 10px;text-align:center;flex-shrink:0}
.logo-area .logo-img{width:130px;height:auto;margin-bottom:8px}
.logo-letter{font-size:24px;font-weight:700;color:#4fc3f7}
.logo-sub{margin-top:2px}
.logo-product{font-size:15px;font-weight:600;color:rgba(255,255,255,0.9);letter-spacing:0.2px;line-height:1.35}
.logo-version{font-size:15px;color:rgba(255,255,255,0.85);margin-top:2px}
.logo-tenant{font-size:13px;font-weight:600;color:#4fc3f7;margin-top:6px;padding-top:6px;border-top:1px solid rgba(255,255,255,0.12);letter-spacing:-0.2px}

/* 구분선 */
.sidebar-divider{height:1px;background:rgba(255,255,255,0.12);margin:0 16px 4px}

/* 메뉴 아이콘 — Font Awesome 단색 (Manager 와 동일한 스타일) */
.menu-icon{display:inline-block;width:22px;text-align:center;margin-right:8px;font-size:14px;color:rgba(255,255,255,0.85)}
.sidebar-menu .is-active .menu-icon{color:#4fc3f7}

/* el-menu 사이드바 */
.sidebar-menu{border-right:none!important;flex:1;overflow-y:auto;overflow-x:hidden}
.sidebar-menu:not(.el-menu--collapse){width:210px}
.sidebar-menu > .el-menu-item,
.sidebar-menu .el-sub-menu__title{height:36px;line-height:36px;font-size:15px!important;font-weight:600!important;color:rgba(255,255,255,0.95)!important}
.sidebar-menu .el-sub-menu .el-menu-item{padding-left:46px!important;height:32px;line-height:32px;font-size:14px!important;font-weight:400!important;color:rgba(255,255,255,0.65)!important}
.sidebar-menu .el-menu-item.is-active{background:rgba(79,195,247,0.15)!important;border-right:3px solid #4fc3f7}

/* 사이드바 하단 */
.sidebar-footer{padding:6px 0;border-top:1px solid rgba(255,255,255,0.1);display:flex;flex-direction:column;align-items:center;gap:2px;flex-shrink:0}
.sidebar-copyright{text-align:center;color:rgba(255,255,255,0.3);font-size:9px;padding:2px 0}
.collapse-toggle{cursor:pointer;color:rgba(255,255,255,0.4);padding:4px;transition:color 0.2s}
.collapse-toggle:hover{color:white}

/* ── 메인 영역 ────────────────────────────── */
.main{flex:1;display:flex;flex-direction:column;overflow:hidden}
.header{background:white;padding:10px 20px;display:flex;justify-content:space-between;align-items:center;box-shadow:0 1px 4px rgba(0,0,0,0.1);flex-shrink:0}
.header h2{font-size:16px;color:#1a3a5c}
.header-right{display:flex;align-items:center;gap:10px;font-size:12px;color:#666}
.page{padding:16px 20px;overflow-y:auto;flex:1}

/* ── KPI 카드 ─────────────────────────────── */
.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}
.kpi-card{background:white;padding:14px;border-radius:8px;box-shadow:0 2px 6px rgba(0,0,0,0.08);border-left:4px solid #1a3a5c}
.kpi-card.success{border-left-color:#2ecc71}
.kpi-card.warning{border-left-color:#f39c12}
.kpi-card.danger{border-left-color:#e74c3c}
.kpi-label{font-size:11px;color:#888;margin-bottom:4px}
.kpi-value{font-size:24px;font-weight:700;color:#1a3a5c}

/* ── 차트/테이블 ──────────────────────────── */
.chart-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:16px}
.chart-box{background:white;padding:14px;border-radius:8px;box-shadow:0 2px 6px rgba(0,0,0,0.08);min-height:280px}
.chart-box h3{font-size:16px;color:#555;margin-bottom:12px}
.chart-box canvas{max-height:240px !important;width:100% !important}
.table-box{background:white;padding:14px;border-radius:8px;box-shadow:0 2px 6px rgba(0,0,0,0.08)}
.table-box h3{font-size:16px;color:#555;margin-bottom:12px}

/* ── 폼 ──────────────────────────────────── */
.form-box{background:white;padding:16px;border-radius:8px;box-shadow:0 2px 6px rgba(0,0,0,0.08);max-width:600px}
.form-box h3{font-size:14px;color:#1a3a5c;margin-bottom:14px}

/* ── Element Plus 글자 크기 (13px 기준) ──────────────── */
.el-input__inner,
.el-input__wrapper input,
.el-textarea__inner,
.el-select__wrapper,
.el-select__placeholder,
.el-select-dropdown__item,
.el-input-number__decrease,
.el-input-number__increase,
.el-button,
.el-button--small,
.el-button--default,
.el-form-item__label,
.el-checkbox__label,
.el-radio__label,
.el-tag,
.el-message-box__message,
.el-message-box__title,
.el-dialog__title,
.el-tabs__item,
.el-menu-item,
.el-sub-menu__title,
.el-dropdown-menu__item,
.el-date-editor .el-range-input,
.el-picker__popper .el-picker-panel__content,
.el-empty__description {
  font-size: 14px !important;
}

/* 표 헤더 / 셀 */
.el-table,
.el-table th.el-table__cell,
.el-table td.el-table__cell,
.el-table .cell {
  font-size: 14px !important;
}
.el-table th.el-table__cell {
  font-weight: 600 !important;
}

/* 페이지네이션 */
.el-pagination,
.el-pagination .el-pagination__total,
.el-pagination button,
.el-pagination .el-pager li {
  font-size: 14px !important;
}

/* 입력 필드 높이 */
.el-input--small .el-input__wrapper,
.el-select--small .el-select__wrapper {
  min-height: 30px;
}
.el-button--small {
  min-height: 28px;
  padding: 4px 12px;
}

/* 헤더 우측 사용자 정보 */
.header-right { font-size: 12px !important; }

/* ── Manager 포털과 동일한 테이블 디자인 (Element Plus el-table) ───────── */
.el-table {
  --el-table-border-color: #e4e6eb;
  --el-table-header-bg-color: #1a3b61;
  --el-table-header-text-color: #ffffff;
  --el-table-row-hover-bg-color: rgba(229, 231, 233, 0.55);
  --el-table-current-row-bg-color: #f3f6fb;
  border: 1px solid var(--el-table-border-color);
  border-radius: 6px;
  overflow: hidden;
}
.el-table th.el-table__cell {
  background: var(--el-table-header-bg-color) !important;
  color: var(--el-table-header-text-color) !important;
  font-weight: 600;
  border-bottom: none !important;
}
.el-table th.el-table__cell .cell { color: inherit; }
.el-table th.el-table__cell > .cell { color: #fff; }
.el-table__header-wrapper tr th.el-table__cell:not(:last-child) {
  border-right: 1px solid rgba(255, 255, 255, 0.15) !important;
}
.el-table__body tr.el-table__row:hover > td.el-table__cell,
.el-table__body tr.hover-row > td.el-table__cell {
  background-color: var(--el-table-row-hover-bg-color) !important;
}
.el-table__body tr.current-row > td.el-table__cell {
  background-color: var(--el-table-current-row-bg-color) !important;
}

/* 선택된 회차 — 강한 파란색 대신 은은한 배경 + 왼쪽 네이비 바로만 강조 */
.el-table tr.selected-round-row > td.el-table__cell {
  background-color: #f3f6fb !important;
}
.el-table tr.selected-round-row > td.el-table__cell:first-child {
  box-shadow: inset 3px 0 0 #1a3a5c;
}
/* 완료 회차 — 연한 회색 톤 + 취소선 느낌 (조회 전용 안내) */
.el-table tr.round-done > td.el-table__cell {
  background-color: #fafafa !important;
  color: #909399 !important;
}
.el-table tr.round-done > td.el-table__cell .el-tag:not(.el-tag--info) {
  opacity: 0.7;
}

/* el-form-item 간격 축소 */
.el-form-item { margin-bottom: 12px; }

/* el-card 패딩 축소 */
.el-card__body { padding: 14px; }
.el-card__header { padding: 10px 14px; }

/* ── 반응형 ──────────────────────────────── */
@media (max-width:768px) {
  .kpi-grid{grid-template-columns:repeat(2,1fr)}
  .chart-grid{grid-template-columns:1fr}
  .sidebar{width:56px}
  .sidebar .logo-img{display:none}
  .sidebar .logo-letter{display:block}
}
