/**
 * ENTERPRISE DESIGN TOKENS
 * NỀN TẢNG HẠ TẦNG SỐ TÍCH HỢP THÔNG TIN CUNG - CẦU CÔNG NGHỆ
 * Selected Theme: PHƯƠNG ÁN B - MODERN TECHNOLOGY (Teal / Cyan / Deep Tech Navy)
 * Tuân thủ quy tắc: Tuyệt đối không dùng SVG, 100% CSS Variables & Web Font Icons (Bootstrap Icons)
 */

/* Fonts cục bộ (self-hosted, variable woff2) - Plus Jakarta Sans & JetBrains Mono */
/* vietnamese */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 100 800;
  font-display: swap;
  src: url('../fonts/JetBrainsMono-vietnamese.woff2') format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 100 800;
  font-display: swap;
  src: url('../fonts/JetBrainsMono-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 100 800;
  font-display: swap;
  src: url('../fonts/JetBrainsMono-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* vietnamese */
@font-face {
  font-family: 'Plus Jakarta Sans';
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
  src: url('../fonts/PlusJakartaSans-vietnamese.woff2') format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Plus Jakarta Sans';
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
  src: url('../fonts/PlusJakartaSans-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Plus Jakarta Sans';
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
  src: url('../fonts/PlusJakartaSans-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}



/* ==========================================================================
   1. THEME CHỦ ĐẠO ĐƯỢC CHỌN: PHƯƠNG ÁN B - MODERN TECHNOLOGY (:root)
   Đặc trưng: Deep Tech Navy + High-Tech Teal/Cyan + Cool Grey + Visual Depth
   ========================================================================== */
:root {
  /* Primitive Color Palette - High-Tech Teal & Electric Cyan */
  --teal-50:  #F0FDFA;
  --teal-100: #CCFBF1;
  --teal-200: #99F6E4;
  --teal-300: #5EEAD4;
  --teal-400: #2DD4BF;
  --teal-500: #14B8A6;
  --teal-600: #0D9488; /* Core Brand Primary */
  --teal-700: #0F766E;
  --teal-800: #115E59;
  --teal-900: #134E4A;
  --teal-950: #042F2C;

  --cyan-50:  #ECFEFF;
  --cyan-100: #CFFAFE;
  --cyan-200: #A5F3FC;
  --cyan-300: #67E8F9;
  --cyan-400: #22D3EE;
  --cyan-500: #06B6D4; /* Tech Accent Glow */
  --cyan-600: #0891B2;
  --cyan-700: #0E7490;

  /* Deep Tech Navy & Obsidian Dark */
  --navy-50:  #F4F7FB;
  --navy-100: #E6EDF5;
  --navy-200: #CDDBE8;
  --navy-300: #A4BFD5;
  --navy-500: #4B789F;
  --navy-700: #1E3A5F;
  --navy-800: #13243B;
  --navy-900: #0B132B; /* Dark Text */
  --navy-950: #050B18; /* Deepest Void */

  /* Neutral Cool Slate */
  --slate-50:  #F8FAFC;
  --slate-100: #F1F5F9;
  --slate-200: #E2E8F0;
  --slate-300: #CBD5E1;
  --slate-400: #94A3B8;
  --slate-500: #64748B;
  --slate-600: #475569;
  --slate-700: #334155;
  --slate-800: #1E293B;
  --slate-900: #0F172A;
  --slate-950: #090D16; /* Obsidian Sidebar */

  /* Status Colors */
  --success-50:  #ECFDF5;
  --success-500: #10B981;
  --success-600: #059669;
  --success-700: #047857;

  --warning-50:  #FFFBEB;
  --warning-500: #F59E0B;
  --warning-600: #D97706;
  --warning-700: #B45309;

  --danger-50:  #FEF2F2;
  --danger-500: #EF4444;
  --danger-600: #DC2626;
  --danger-700: #B91C1C;

  --info-50:  #F0FDFA;
  --info-500: #06B6D4;
  --info-600: #0D9488;

  /* Semantic Brand Variables */
  --color-primary: var(--teal-600);
  --color-primary-hover: var(--teal-700);
  --color-primary-active: var(--teal-800);
  --color-primary-subtle: var(--teal-50);
  --color-primary-border: var(--teal-200);

  --color-secondary: var(--slate-900);
  --color-secondary-hover: var(--slate-800);
  --color-secondary-subtle: var(--slate-100);

  --color-accent: var(--cyan-500);
  --color-accent-subtle: var(--cyan-50);
  --color-accent-hover: var(--cyan-600);

  /* ==========================================================================
     OVERRIDE BOOTSTRAP 5 CORE TOKENS WITH MODERN TECHNOLOGY THEME
     Triệt để loại bỏ màu xanh dương mặc định (#0d6efd) của Bootstrap
     ========================================================================== */
  --bs-primary: #0D9488;
  --bs-primary-rgb: 13, 148, 136;
  --bs-primary-hover-bg: #0F766E;
  --bs-primary-hover-border-color: #0F766E;
  --bs-primary-active-bg: #115E59;
  --bs-primary-active-border-color: #115E59;
  
  --bs-secondary: #0F172A;
  --bs-secondary-rgb: 15, 23, 42;
  
  --bs-link-color: #0D9488;
  --bs-link-hover-color: #0F766E;
  --bs-link-color-rgb: 13, 148, 136;
  
  --bs-focus-ring-color: rgba(13, 148, 136, 0.25);
  --bs-border-color: #CBD5E1;
  --bs-border-radius: 8px;
  --bs-border-radius-sm: 6px;
  --bs-border-radius-lg: 12px;

  --bg-body: #F4F7FB;               /* Crisp Cool Grey */
  --bg-surface: #FFFFFF;
  --bg-surface-elevated: #FFFFFF;
  --bg-surface-subtle: var(--slate-50);
  --bg-sidebar: #090D16;            /* Ultra Dark Obsidian */
  --bg-sidebar-active: rgba(13, 148, 136, 0.16);
  --text-sidebar: #E2E8F0;
  --text-sidebar-muted: #94A3B8;

  --text-main: var(--navy-900);
  --text-secondary: var(--slate-600);
  --text-muted: var(--slate-400);
  --text-inverse: #FFFFFF;

  --border-subtle: #F1F5F9;
  --border-default: var(--slate-200);
  --border-strong: var(--slate-300);

  /* Component Shadows & Glows */
  --shadow-xs: 0 1px 2px 0 rgba(11, 19, 43, 0.05);
  --shadow-sm: 0 1px 3px 0 rgba(13, 148, 136, 0.08), 0 1px 2px -1px rgba(11, 19, 43, 0.05);
  --shadow-md: 0 4px 6px -1px rgba(13, 148, 136, 0.1), 0 2px 4px -2px rgba(11, 19, 43, 0.06);
  --shadow-lg: 0 10px 15px -3px rgba(11, 19, 43, 0.08), 0 0 12px rgba(6, 182, 212, 0.12);
  --shadow-xl: 0 20px 25px -5px rgba(11, 19, 43, 0.1), 0 8px 10px -6px rgba(11, 19, 43, 0.05);

  /* Typography Scale */
  --font-family-base: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  --font-family-mono: 'JetBrains Mono', SFMono-Regular, Menlo, Monaco, Consolas, monospace;

  --font-size-xs:   0.75rem;    /* 12px */
  --font-size-sm:   0.875rem;   /* 14px */
  --font-size-base: 1rem;       /* 16px */
  --font-size-md:   1.125rem;   /* 18px */
  --font-size-lg:   1.25rem;    /* 20px */
  --font-size-xl:   1.5rem;     /* 24px */
  --font-size-2xl:  1.875rem;   /* 30px */
  --font-size-3xl:  2.25rem;    /* 36px */
  --font-size-4xl:  3rem;       /* 48px */

  --font-weight-regular:  400;
  --font-weight-medium:   500;
  --font-weight-semibold: 600;
  --font-weight-bold:     700;
  --font-weight-extrabold:800;

  --line-height-tight:  1.25;
  --line-height-base:   1.5;
  --line-height-relaxed:1.75;

  /* Spacing System (4px baseline) */
  --spacing-1:  0.25rem;  /* 4px */
  --spacing-2:  0.5rem;   /* 8px */
  --spacing-3:  0.75rem;  /* 12px */
  --spacing-4:  1rem;     /* 16px */
  --spacing-5:  1.25rem;  /* 20px */
  --spacing-6:  1.5rem;   /* 24px */
  --spacing-8:  2rem;     /* 32px */
  --spacing-10: 2.5rem;   /* 40px */
  --spacing-12: 3rem;     /* 48px */
  --spacing-16: 4rem;     /* 64px */

  /* Border Radii */
  --radius-xs: 0.25rem;  /* 4px */
  --radius-sm: 0.375rem; /* 6px */
  --radius-md: 0.5rem;   /* 8px */
  --radius-lg: 0.75rem;  /* 12px - Bento cards & Containers */
  --radius-xl: 1rem;     /* 16px */
  --radius-pill: 9999px; /* Status Badges */

  /* Layout Dimensions */
  --header-height: 80px;
  --sidebar-width: 260px;
  --sidebar-collapsed-width: 72px;

  /* Transitions */
  --transition-fast: 150ms cubic-bezier(0.4, 0, 0.2, 1);
  --transition-normal: 250ms cubic-bezier(0.4, 0, 0.2, 1);
  --transition-slow: 350ms cubic-bezier(0.4, 0, 0.2, 1);
}

/* ==========================================================================
   2. COMPONENT LEVEL TOKENS
   Áp dụng đồng nhất cho các thành phần UI
   ========================================================================== */

/* Cards & Bento Grid Widgets */
.tech-card {
  background: var(--bg-surface);
  border: 1px solid var(--border-default);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm);
  transition: transform var(--transition-fast), box-shadow var(--transition-fast), border-color var(--transition-fast);
}

.tech-card:hover {
  border-color: var(--color-accent);
  box-shadow: var(--shadow-lg);
}

.tech-card-elevated {
  background: var(--bg-surface-elevated);
  border: 1px solid var(--border-default);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-md);
}

/* Glassmorphism Header */
.tech-header-glass {
  background: rgba(255, 255, 255, 0.94);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--border-default);
  position: relative;
}

.tech-header-glass::after {
  content: '';
  position: absolute;
  bottom: -1px;
  left: 0;
  right: 0;
  height: 2px;
  background: linear-gradient(90deg, var(--teal-500) 0%, var(--cyan-400) 100%);
  opacity: 0.85;
}

/* Data-Dense Enterprise Table */
.tech-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  font-size: var(--font-size-sm);
}

.tech-table thead th {
  background-color: var(--bg-surface-subtle);
  color: var(--text-secondary);
  font-weight: var(--font-weight-semibold);
  font-size: var(--font-size-xs);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  padding: var(--spacing-3) var(--spacing-4);
  border-bottom: 1px solid var(--border-default);
  white-space: nowrap;
}

.tech-table tbody td {
  padding: var(--spacing-3) var(--spacing-4);
  border-bottom: 1px solid var(--border-subtle);
  color: var(--text-main);
  vertical-align: middle;
}

.tech-table tbody tr:hover td {
  background-color: var(--teal-50);
}

/* Buttons System */
.btn-tech-primary {
  background: linear-gradient(135deg, var(--teal-600) 0%, #0E7490 100%);
  color: var(--text-inverse);
  border: 1px solid transparent;
  font-weight: var(--font-weight-semibold);
  padding: 0.625rem 1.25rem;
  border-radius: var(--radius-md);
  transition: all var(--transition-fast);
  box-shadow: 0 1px 3px rgba(13, 148, 136, 0.2);
}

.btn-tech-primary:hover {
  background: linear-gradient(135deg, var(--teal-700) 0%, #0A5A70 100%);
  color: var(--text-inverse);
  box-shadow: 0 4px 10px rgba(13, 148, 136, 0.35);
  transform: translateY(-1px);
}

.btn-tech-secondary {
  background-color: var(--bg-surface);
  color: var(--text-main);
  border: 1px solid var(--border-default);
  font-weight: var(--font-weight-medium);
  padding: 0.625rem 1.25rem;
  border-radius: var(--radius-md);
  transition: all var(--transition-fast);
}

.btn-tech-secondary:hover {
  background-color: var(--slate-100);
  border-color: var(--border-strong);
  color: var(--text-main);
}

/* Badges & Tags */
.badge-tech {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-semibold);
  padding: 0.25rem 0.625rem;
  border-radius: var(--radius-pill);
  line-height: 1;
}

.badge-trl {
  background-color: var(--teal-50);
  color: var(--teal-800);
  border: 1px solid var(--teal-300);
  font-family: var(--font-family-mono);
  font-weight: var(--font-weight-bold);
}

.badge-match-score {
  background-color: var(--cyan-50);
  color: var(--cyan-700);
  border: 1px solid var(--cyan-300);
  font-family: var(--font-family-mono);
  font-weight: var(--font-weight-bold);
}

.badge-status-published {
  background-color: var(--success-50);
  color: var(--success-700);
  border: 1px solid #A7F3D0;
}

.badge-status-pending {
  background-color: var(--warning-50);
  color: var(--warning-700);
  border: 1px solid #FDE68A;
}

.badge-status-closed {
  background-color: var(--slate-100);
  color: var(--slate-600);
  border: 1px solid var(--slate-200);
}

/* Form Controls */
.form-tech-control {
  background-color: var(--bg-surface);
  border: 1px solid var(--border-default);
  border-radius: var(--radius-md);
  padding: 0.625rem 0.875rem;
  font-size: var(--font-size-sm);
  color: var(--text-main);
  transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
}

.form-tech-control:focus {
  outline: none;
  border-color: var(--color-primary);
  box-shadow: 0 0 0 3px rgba(13, 148, 136, 0.2);
}
