@font-face {
  font-family: 'Pretendard';
  src: url('/fonts/pretendard/Pretendard-Thin.woff2') format('woff2');
  font-style: normal;
  font-weight: 100;
  font-display: swap;
}

@font-face {
  font-family: 'Pretendard';
  src: url('/fonts/pretendard/Pretendard-ExtraLight.woff2') format('woff2');
  font-style: normal;
  font-weight: 200;
  font-display: swap;
}

@font-face {
  font-family: 'Pretendard';
  src: url('/fonts/pretendard/Pretendard-Light.woff2') format('woff2');
  font-style: normal;
  font-weight: 300;
  font-display: swap;
}

@font-face {
  font-family: 'Pretendard';
  src: url('/fonts/pretendard/Pretendard-Regular.woff2') format('woff2');
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

@font-face {
  font-family: 'Pretendard';
  src: url('/fonts/pretendard/Pretendard-Medium.woff2') format('woff2');
  font-style: normal;
  font-weight: 500;
  font-display: swap;
}

@font-face {
  font-family: 'Pretendard';
  src: url('/fonts/pretendard/Pretendard-SemiBold.woff2') format('woff2');
  font-style: normal;
  font-weight: 600;
  font-display: swap;
}

@font-face {
  font-family: 'Pretendard';
  src: url('/fonts/pretendard/Pretendard-Bold.woff2') format('woff2');
  font-style: normal;
  font-weight: 700;
  font-display: swap;
}

@font-face {
  font-family: 'Pretendard';
  src: url('/fonts/pretendard/Pretendard-ExtraBold.woff2') format('woff2');
  font-style: normal;
  font-weight: 800;
  font-display: swap;
}

@font-face {
  font-family: 'Pretendard';
  src: url('/fonts/pretendard/Pretendard-Black.woff2') format('woff2');
  font-style: normal;
  font-weight: 900;
  font-display: swap;
}

:root {
  --font-sans: 'Pretendard', sans-serif;
  --font-heading: 'Pretendard', sans-serif;
  --font-mono: 'Pretendard', sans-serif;
  --weight-thin: 100;
  --weight-extra-light: 200;
  --weight-light: 300;
  --weight-regular: 400;
  --weight-medium: 500;
  --weight-semi-bold: 600;
  --weight-bold: 700;
  --weight-extra-bold: 800;
  --weight-black: 900;
}
html, body, button, input, select, textarea, option, pre, code, kbd, samp, svg text {
  font-family: 'Pretendard', sans-serif;
}

/* Keep operational text legible; reserve the lightest faces for display use. */
body { font-weight: 400; }
input, select, textarea { font-weight: 500; }
button, label, th { font-weight: 600; }
strong, b { font-weight: 700; }
h1, h2 { font-weight: 800; }
h3, h4 { font-weight: 700; }
body .visual-copy h2 { font-weight: 300; }
body .visual-copy p { font-weight: 400; }
body .auth-card .login-title h1 { font-weight: 800; }
body .auth-card label { font-weight: 600; }
body .auth-card .auth-tab, body .auth-card .submit-button { font-weight: 700; }
body .auth-card .login-title small, body .auth-card .login-logo span { font-weight: 500; }
body .auth-card .remember-option, body .auth-card .account-link { font-weight: 500; }
body .app-header nav button, body .inventory-tabs button { font-weight: 600; }
body .inventory-heading h1 { font-weight: 800; }
body .inventory-heading small { font-weight: 500; }
body .inventory-summary article>strong { font-weight: 800; }
body .inventory-summary strong.inventory-sync { font-weight: 500; }
body .inventory-summary strong span { font-weight: 400; }
body .inventory-page .inventory-actions button { font-weight: 600; }
body .inventory-dialog h2 { font-weight: 800; }
body .inventory-stock-table th { font-weight: 600; }
body .inventory-stock-table th:nth-child(1),body .inventory-stock-table th:nth-child(3),body .inventory-stock-table th:nth-child(7),body .inventory-stock-table th:nth-child(8) { font-weight: 700; }

/* Operational text: readable at native FHD and QHD sizes without synthetic bold. */
html { font-synthesis: none; }
body { font-size: 14px; }
body .tree-caption, body .selector-block label { font-size: 12px; font-weight: 600; letter-spacing: .02em; }
body .tree-leading > span { font-size: 15px; font-weight: 600; }
body .tree-leading small, body .tree-year small { font-size: 12px; font-weight: 500; }
body .tree-year { font-size: 15px; font-weight: 600; min-height: 40px; }
body .task-tree > button { min-height: 56px; padding: 8px; }
body .task-tree > button > span { font-size: 15px; line-height: 1.5; font-weight: 500; gap: 2px; }
body .task-tree > button small { font-size: 12px; line-height: 1.5; font-weight: 500; color: #5c7488; }
body .task-tree > button.active small { color: #d2e8f8; }
body .variant-switch button { min-height: 38px; height: auto; padding: 7px 10px; font-size: 14px; font-weight: 600; line-height: 1.5; }
body .app-header nav button, body .inventory-tabs button { font-size: 14px; }
body .inventory-stock-table th { font-size: 14px; }
body .inventory-stock-table td:nth-child(1)>b,
body .inventory-stock-table .inventory-part-no,
body .inventory-stock-table .inventory-note>strong,
body .inventory-stock-table .inventory-updated>strong { font-weight: 700; }
body .auth-card label, body .auth-card input, body .auth-card select { font-size: 14px; }
body .auth-card .remember-option, body .auth-card .account-link { font-size: 13px; }
body .auth-card .auth-tab { font-size: 15px; font-weight: 600; }
body .auth-card .submit-button { font-size: 16px; font-weight: 600; }
body .auth-card .login-logo span { font-size: 12px; line-height: 1.5; letter-spacing: .06em; }
body .parts-table th { font-size: 13px; font-weight: 600; height: 40px !important; }
body .parts-table td { font-size: 14px; height: 42px; }
body .parts-table input { font-size: 14px; font-weight: 400; height: 34px; }
body .detail-workspace textarea { font-size: 14px; line-height: 1.65; font-weight: 400; }
body .mail-parts-head, body .task-parts-table-head { font-size: 13px; font-weight: 600; }
body .mail-parts-row, body .mail-part-note-cell input,
body .task-parts-table-row input, body .task-parts-table-row > strong { font-size: 14px; }
body .mail-part-note-cell input, body .task-parts-table-row input { font-weight: 400; }
body .audit-detail pre { font-size: 13px; line-height: 1.6; font-weight: 400; }
@media (max-width: 600px) {
  body .variant-switch button { min-height: 43px; }
}
