/**
 * ITC ЛК — стиль как на it-corp.ru
 * cool slate + amber CTA + blue secondary
 * VERSION: 2026.10.03.24
 */

@font-face {
  font-family: 'SF UI Display';
  src: local('SF UI Display Regular'),
       url('../fonts/sf/SF-UI-Display-Regular.otf') format('opentype');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'SF UI Display';
  src: local('SF UI Display Medium'),
       url('../fonts/sf/SF-UI-Display-Medium.otf') format('opentype');
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'SF UI Display';
  src: local('SF UI Display Semibold'),
       url('../fonts/sf/SF-UI-Display-Semibold.otf') format('opentype');
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'SF UI Display';
  src: local('SF UI Display Bold'),
       url('../fonts/sf/SF-UI-Display-Bold.otf') format('opentype');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'SF UI Text';
  src: local('SF UI Text Regular'),
       url('../fonts/sf/SF-UI-Text-Regular.otf') format('opentype');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'SF UI Text';
  src: local('SF UI Text Medium'),
       url('../fonts/sf/SF-UI-Text-Medium.otf') format('opentype');
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'SF UI Text';
  src: local('SF UI Text Semibold'),
       url('../fonts/sf/SF-UI-Text-Semibold.otf') format('opentype');
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'SF UI Text';
  src: local('SF UI Text Bold'),
       url('../fonts/sf/SF-UI-Text-Bold.otf') format('opentype');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

:root,
[data-bs-theme="light"] {
  --color-accent: #E8943A;
  --color-accent-hover: #D47A2A;
  --color-accent-deep: #C56A1F;
  --color-accent-rgb: 232, 148, 58;
  --color-secondary: #1B6CA8;
  --color-secondary-hover: #155A8F;
  --color-secondary-rgb: 27, 108, 168;
  --color-brand: #3D4A5C;
  --color-brand-dark: #2F3A47;
  --color-brand-darker: #24303C;
  --color-brand-light: #5A6578;
  --color-bg: #F4F6F8;
  --color-surface: #FFFFFF;
  --color-surface-muted: #EEF1F4;
  --color-text: #1E293B;
  --color-text-muted: #64748B;
  --color-text-on-accent: #FFFFFF;
  --color-nav-text: #F1F5F9;
  --color-border: #E2E8F0;
  --radius-sm: 8px;
  --radius-md: 12px;
  --radius-lg: 16px;
  --shadow-sm: 0 1px 2px rgba(30, 41, 59, 0.06);
  --shadow-md: 0 8px 24px rgba(30, 41, 59, 0.08);
  --font-body: 'SF UI Text', 'SF Pro Text', -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Helvetica Neue', Arial, sans-serif;
  --font-heading: 'SF UI Display', 'SF Pro Display', -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Helvetica Neue', Arial, sans-serif;
  --gradient-nav: linear-gradient(180deg, #3D4A5C 0%, #4A5568 100%);
  --gradient-footer: linear-gradient(180deg, #2F3A47 0%, #3D4A5C 100%);
  --gradient-jumbotron: linear-gradient(160deg, #2F3A47 0%, #3D4A5C 55%, #4A5568 100%);
  --gradient-accent: linear-gradient(135deg, #E8943A 0%, #D47A2A 100%);
  --lk-bg: var(--color-bg);
  --lk-surface: var(--color-surface);
  --lk-border: var(--color-border);
  --lk-text: var(--color-text);
  --lk-muted: var(--color-text-muted);
}

[data-bs-theme="dark"] {
  --color-bg: #1a222c;
  --color-surface: #24303C;
  --color-surface-muted: #2F3A47;
  --color-text: #F1F5F9;
  --color-text-muted: #94A3B8;
  --color-border: #3D4A5C;
  --lk-bg: var(--color-bg);
  --lk-surface: var(--color-surface);
  --lk-border: var(--color-border);
  --lk-text: var(--color-text);
  --lk-muted: var(--color-text-muted);
  --bs-body-bg: var(--color-bg);
  --bs-body-color: var(--color-text);
  --bs-border-color: var(--color-border);
}

html, body {
  min-height: 100%;
}

body {
  font-family: var(--font-body);
  background: var(--color-bg);
  color: var(--color-text);
  display: flex;
  flex-direction: column;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

h1, h2, h3, h4, h5, h6, .btn, .navbar-brand {
  font-family: var(--font-heading);
}

a {
  color: var(--color-secondary);
}
a:hover {
  color: var(--color-secondary-hover);
}

.lk-main {
  flex: 1 0 auto;
}

/* —— Navbar как на it-corp.ru —— */
.lk-navbar {
  background: var(--gradient-nav);
  border: none !important;
  box-shadow: var(--shadow-sm);
}

.lk-navbar .navbar-brand {
  color: #fff !important;
  font-weight: 700;
  font-size: 1.25rem;
  letter-spacing: 1px;
  text-transform: uppercase;
  display: inline-flex;
  align-items: center;
  gap: 0;
}

.lk-navbar .navbar-brand .itc-nav-logo {
  display: block;
  width: 35px;
  height: 35px;
  object-fit: contain;
  margin-right: 12px;
  filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.3));
  transition: transform 0.35s cubic-bezier(0.34, 1.45, 0.64, 1);
}

.lk-navbar .navbar-brand:hover .itc-nav-logo {
  transform: scale(1.04);
}

.lk-brand-sep {
  margin: 0 0.4rem;
  opacity: 0.55;
  font-weight: 500;
  text-transform: none;
  letter-spacing: 0;
}

.lk-brand-sub {
  font-weight: 500;
  font-size: 0.95rem;
  letter-spacing: 0.02em;
  text-transform: none;
  opacity: 0.92;
}

.lk-navbar .nav-link {
  color: var(--color-nav-text) !important;
  font-weight: 500;
  font-size: 0.875rem;
  padding: 0.65rem 0.85rem !important;
  border-radius: 0;
  transition: background-color 0.2s ease;
}

.lk-navbar .nav-link:hover {
  background-color: rgba(255, 255, 255, 0.08);
}

.lk-navbar .nav-link.active {
  color: #fff !important;
  font-weight: 600;
  box-shadow: inset 0 -3px 0 var(--color-accent);
  background-color: transparent !important;
}

.lk-navbar .navbar-toggler {
  border-color: rgba(255, 255, 255, 0.35);
}

.lk-navbar .navbar-toggler-icon {
  filter: invert(1) grayscale(1) brightness(2);
}

.lk-navbar .form-select {
  background-color: rgba(255, 255, 255, 0.12);
  border-color: rgba(255, 255, 255, 0.2);
  color: #fff;
  font-size: 0.8125rem;
}

.lk-navbar .form-select option {
  color: var(--color-text);
  background: var(--color-surface);
}

.lk-navbar .btn-outline-light {
  --bs-btn-color: #fff;
  --bs-btn-border-color: rgba(255, 255, 255, 0.35);
  --bs-btn-hover-bg: rgba(255, 255, 255, 0.12);
  --bs-btn-hover-border-color: rgba(255, 255, 255, 0.5);
  --bs-btn-hover-color: #fff;
}

.lk-navbar .dropdown-menu {
  border: 1px solid var(--color-border);
  box-shadow: var(--shadow-md);
  border-radius: var(--radius-sm);
}

/* —— Buttons —— */
.btn-accent,
.btn-teal {
  --bs-btn-color: var(--color-text-on-accent);
  --bs-btn-bg: var(--color-accent);
  --bs-btn-border-color: var(--color-accent);
  --bs-btn-hover-bg: var(--color-accent-hover);
  --bs-btn-hover-border-color: var(--color-accent-hover);
  --bs-btn-hover-color: var(--color-text-on-accent);
  --bs-btn-active-bg: var(--color-accent-deep);
  --bs-btn-active-border-color: var(--color-accent-deep);
  --bs-btn-active-color: var(--color-text-on-accent);
  font-weight: 600;
}

.btn-outline-accent,
.btn-outline-teal {
  --bs-btn-color: var(--color-brand);
  --bs-btn-bg: transparent;
  --bs-btn-border-color: var(--color-brand);
  --bs-btn-hover-bg: var(--color-brand);
  --bs-btn-hover-border-color: var(--color-brand);
  --bs-btn-hover-color: #fff;
  --bs-btn-active-bg: var(--color-brand-dark);
  --bs-btn-active-border-color: var(--color-brand-dark);
  --bs-btn-active-color: #fff;
  font-weight: 500;
}

.btn-brand {
  --bs-btn-color: #fff;
  --bs-btn-bg: var(--color-brand);
  --bs-btn-border-color: var(--color-brand);
  --bs-btn-hover-bg: var(--color-brand-dark);
  --bs-btn-hover-border-color: var(--color-brand-dark);
  --bs-btn-hover-color: #fff;
}

.text-accent { color: var(--color-accent) !important; }
.text-brand { color: var(--color-brand) !important; }

/* —— Surfaces —— */
.lk-auth-page .lk-main {
  background: var(--gradient-jumbotron);
  color: #fff;
}

.lk-auth-page .lk-main .text-secondary {
  color: rgba(241, 245, 249, 0.75) !important;
}

.lk-auth-wrap {
  max-width: 440px;
  margin: 2.5rem auto;
}

.lk-auth-panel {
  background: var(--color-surface);
  color: var(--color-text);
  border: none;
  border-radius: var(--radius-md);
  padding: 2rem;
  box-shadow: var(--shadow-md);
}

.lk-auth-hero {
  height: 5px;
  border-radius: var(--radius-md) var(--radius-md) 0 0;
  background: var(--gradient-accent);
  margin: -2rem -2rem 1.5rem;
}

.lk-auth-brand {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 1.25rem;
}

.lk-auth-brand img {
  width: 40px;
  height: 40px;
}

.lk-auth-brand span {
  font-family: var(--font-heading);
  font-weight: 700;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: var(--color-brand);
}

.lk-table-wrap {
  background: var(--lk-surface);
  border: 1px solid var(--lk-border);
  border-radius: var(--radius-md);
  overflow: hidden;
  box-shadow: var(--shadow-sm);
}

.lk-table-wrap .table {
  margin-bottom: 0;
}

.lk-table-wrap thead th {
  background: var(--color-brand-dark);
  color: #fff;
  font-weight: 600;
  font-size: 0.8125rem;
  border-bottom: none;
  white-space: nowrap;
}

[data-bs-theme="dark"] .lk-table-wrap thead th {
  background: #1a222c;
}

.lk-stat {
  background: var(--lk-surface);
  border: 1px solid var(--lk-border);
  border-radius: var(--radius-md);
  padding: 1.25rem 1.35rem;
  box-shadow: var(--shadow-sm);
  border-top: 3px solid var(--color-accent);
}

.lk-stat .lk-stat-value {
  font-family: var(--font-heading);
  font-size: 1.75rem;
  font-weight: 700;
  color: var(--color-brand);
  line-height: 1.2;
}

[data-bs-theme="dark"] .lk-stat .lk-stat-value {
  color: #f8fafc;
}

.lk-stat .lk-stat-label {
  color: var(--lk-muted);
  font-size: 0.875rem;
}

.lk-license-card {
  background: var(--lk-surface);
  border: 1px solid var(--lk-border);
  border-radius: var(--radius-md);
  padding: 1.5rem;
  box-shadow: var(--shadow-sm);
}

.lk-code-box {
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 0.9rem;
  word-break: break-all;
  background: rgba(var(--color-secondary-rgb), 0.08);
  border: 1px dashed rgba(var(--color-secondary-rgb), 0.4);
  border-radius: var(--radius-sm);
  padding: 0.85rem 1rem;
}

.lk-product-select {
  min-width: 8rem;
}

.lk-page-title {
  font-family: var(--font-heading);
  font-weight: 700;
  color: var(--color-brand);
  margin-bottom: 0.25rem;
}

[data-bs-theme="dark"] .lk-page-title {
  color: #f1f5f9;
}

.lk-page-lead {
  color: var(--lk-muted);
  margin-bottom: 1.5rem;
}

/* —— Footer —— */
.lk-footer {
  background: var(--gradient-footer);
  color: rgba(241, 245, 249, 0.85);
  border: none !important;
}

.lk-footer a {
  color: #fff;
  text-decoration: none;
}

.lk-footer a:hover {
  color: var(--color-accent);
}

.lk-footer .text-secondary {
  color: rgba(241, 245, 249, 0.65) !important;
}

.form-control:focus,
.form-select:focus {
  border-color: var(--color-accent);
  box-shadow: 0 0 0 0.2rem rgba(var(--color-accent-rgb), 0.25);
}

.badge.text-bg-primary {
  background-color: var(--color-secondary) !important;
}

.alert {
  border-radius: var(--radius-sm);
}

/* Вкладки карточки лицензии */
.lk-tabs.nav-tabs {
  border-bottom-color: var(--color-border);
  gap: 0.15rem;
}

.lk-tabs .nav-link {
  color: var(--color-text-muted);
  border: none;
  border-bottom: 2px solid transparent;
  border-radius: 0;
  font-weight: 500;
  font-size: 0.875rem;
  padding: 0.55rem 0.85rem;
}

.lk-tabs .nav-link:hover {
  color: var(--color-brand);
  border-color: transparent;
}

.lk-tabs .nav-link.active {
  color: var(--color-brand) !important;
  background: transparent;
  border-color: transparent transparent var(--color-accent);
  font-weight: 600;
}

[data-bs-theme="dark"] .lk-tabs .nav-link.active {
  color: #f1f5f9 !important;
}

.modal-content {
  border: none;
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-md);
}

.modal-header {
  border-bottom-color: var(--color-border);
  background: var(--color-surface-muted);
}

.modal-footer {
  border-top-color: var(--color-border);
}

/* Список групп и строк лицензий */
.lk-group-row {
  cursor: pointer;
}

.lk-group-row:hover > * {
  background: rgba(var(--color-accent-rgb), 0.06);
}

.lk-lic-row {
  cursor: pointer;
}

.lk-lic-row:hover > * {
  background: rgba(var(--color-accent-rgb), 0.05);
}

.lk-group-name.is-valid {
  border-color: rgba(var(--color-accent-rgb), 0.8);
}
