:root {
  --sw-bg: #162630;
  --sw-bg-dark: #0f1c25;
  --sw-bg-deep: #0f1c25;
  --sw-surface: #223643;
  --sw-surface-alt: #2a3f4d;
  --sw-surface-2: #2a3f4d;
  --sw-market: #5b758d;
  --sw-odds: #1b2934;
  --sw-yellow: #ffe500;
  --sw-green: #00c764;
  --sw-red: #f42c56;
  --sw-text: #ffffff;
  --sw-muted: #aebdcc;
  --sw-border: #39505f;
}

* { box-sizing: border-box; }
html { background: var(--sw-bg-deep); }
body.sw-body {
  margin: 0;
  background: var(--sw-bg);
  color: var(--sw-text);
  font-family: Inter, Arial, sans-serif;
  font-size: 14px;
  font-weight: 450;
  letter-spacing: 0;
  overflow-x: hidden;
}
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button {
  border: 0;
  background: transparent;
  color: inherit;
  cursor: pointer;
}
button:disabled {
  cursor: not-allowed;
  opacity: .58;
}
img { max-width: 100%; }
i::before { text-rendering: auto; }

.sw-page { min-height: 100vh; background: var(--sw-bg); }
.sw-preloader {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: grid;
  place-items: center;
  background: var(--sw-bg-deep);
  transition: opacity .18s ease, visibility .18s ease;
}
.sw-preloader.is-hidden { opacity: 0; visibility: hidden; }
.sw-preloader img { width: 86px; height: auto; }

.sw-header {
  position: sticky;
  top: 0;
  z-index: 90;
  background: var(--sw-bg-deep);
  border-bottom: 1px solid #20313c;
}
.sw-header__top {
  min-height: 48px;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 12px;
  padding: 6px 28px;
}
.sw-header__left, .sw-header__actions { display: flex; align-items: center; gap: 8px; }
.sw-header__actions { justify-content: flex-end; }
.sw-logo { display: inline-flex; align-items: center; justify-content: center; min-width: 150px; }
.sw-logo img { width: 150px; max-height: 50px; object-fit: contain; }
.sw-icon-btn {
  width: 58px;
  height: 38px;
  border: 0;
  background: transparent;
  color: var(--sw-text);
  display: inline-grid;
  place-items: center;
  gap: 0;
  font-size: 20px;
}
.sw-icon-btn span { font-size: 10px; line-height: 1; font-weight: 700; }
.sw-btn, .btn {
  min-height: 36px;
  border: 0;
  border-radius: 4px;
  padding: 8px 14px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  font-weight: 700;
  color: var(--sw-bg-deep);
}
.sw-btn--yellow, .btn--base, .btn-outline--base { background: var(--sw-yellow) !important; color: #101820 !important; border-color: var(--sw-yellow) !important; }
.sw-btn--green, .btn--success, .btn-success { background: var(--sw-green) !important; color: #052313 !important; border-color: var(--sw-green) !important; }
.sw-btn--muted, .btn--dark, .btn-dark, .btn-light { background: #314456 !important; color: var(--sw-text) !important; border-color: #314456 !important; }
.btn--danger, .btn-danger { background: var(--sw-red) !important; color: #fff !important; border-color: var(--sw-red) !important; }
.btn:hover, .sw-btn:hover { filter: brightness(1.04); }
.sw-balance-pill {
  min-height: 36px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 10px;
  border-radius: 4px;
  background: #20313e;
  color: var(--sw-text);
  font-weight: 800;
}
.sw-product-nav {
  display: flex;
  align-items: center;
  gap: 22px;
  min-height: 42px;
  padding: 0 28px;
  overflow-x: auto;
  scrollbar-width: none;
  border-top: 1px solid #1d2d38;
}
.sw-product-nav::-webkit-scrollbar { display: none; }
.sw-product-nav a {
  height: 42px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  white-space: nowrap;
  color: var(--sw-text);
  font-weight: 900;
  text-transform: uppercase;
  font-size: 13px;
  border-bottom: 3px solid transparent;
}
.sw-product-nav a.active { color: var(--sw-yellow); border-bottom-color: var(--sw-green); }
.sw-product-nav i { color: var(--sw-yellow); font-size: 18px; }
.sw-product-next {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  border: 0;
  background: var(--sw-yellow);
  color: #111;
  flex: 0 0 auto;
  font-weight: 1000;
}
.sw-product-next span { display: block; transform: translateX(1px); }
.sw-search-panel {
  display: none;
  grid-template-columns: auto 1fr auto;
  gap: 8px;
  align-items: center;
  padding: 10px 18px;
  background: var(--sw-surface);
}
.sw-search-panel.active { display: grid; }
.sw-search-panel input {
  height: 38px;
  border: 1px solid var(--sw-border);
  background: var(--sw-odds);
  color: var(--sw-text);
  border-radius: 4px;
  padding: 0 10px;
}
.sw-search-panel button {
  height: 38px;
  border: 0;
  border-radius: 4px;
  background: var(--sw-yellow);
  font-weight: 900;
}

.sw-cookie {
  position: fixed;
  right: 18px;
  bottom: 18px;
  z-index: 100;
  max-width: 360px;
  padding: 14px;
  background: var(--sw-surface);
  border: 1px solid var(--sw-border);
  border-radius: 6px;
}
.sw-cookie.hide { display: none; }
.sw-cookie p { margin: 0 0 10px; color: var(--sw-muted); }

.sw-modal .modal-content, .custom--modal .modal-content, .modal-content {
  background: var(--sw-surface);
  color: var(--sw-text);
  border: 1px solid var(--sw-border);
  border-radius: 8px;
  box-shadow: 0 24px 80px rgba(0,0,0,.45);
}
.modal-backdrop { background: #02080d; }
.modal-backdrop.show { opacity: .72; }
.modal-dialog { max-width: min(720px, calc(100vw - 24px)); }
.modal-body { padding: 18px; }
.modal-title { color: var(--sw-text); font-weight: 750; }
.close, .btn-close {
  width: 34px;
  height: 34px;
  display: inline-grid;
  place-items: center;
  border: 0;
  border-radius: 50%;
  background: #314456 !important;
  color: var(--sw-text) !important;
  opacity: 1;
}
.sw-modal__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 18px; }
.sw-modal__head h4 { margin: 0; font-size: 20px; font-weight: 900; }
.sw-modal__head button {
  width: 32px;
  height: 32px;
  border: 0;
  border-radius: 50%;
  background: #20303b;
  color: var(--sw-text);
}
.sw-modal__note { color: var(--sw-muted); font-size: 13px; }
.sw-modal__actions { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.sw-review {
  display: grid;
  gap: 8px;
  padding: 12px;
  background: var(--sw-odds);
  border-radius: 6px;
}
.sw-review span { display: flex; justify-content: space-between; color: var(--sw-muted); }
.sw-review strong { color: var(--sw-text); }

.sw-form { display: grid; gap: 14px; }
.sw-form--narrow { max-width: 680px; }
.sw-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.sw-form-group, .form-group { margin-bottom: 14px; }
.sw-label, .form-label, label { color: var(--sw-text); font-weight: 650; margin-bottom: 6px; }
.sw-input, .sw-select, .sw-textarea, .form-control, .form-select, .form--control {
  min-height: 44px;
  background: var(--sw-odds) !important;
  border: 1px solid var(--sw-border) !important;
  color: var(--sw-text) !important;
  border-radius: 4px !important;
  padding: 10px 12px;
  width: 100%;
}
.sw-textarea, textarea.form-control, textarea.form--control {
  min-height: 112px;
  resize: vertical;
  background: var(--sw-odds) !important;
  color: var(--sw-text) !important;
}
.form-control[type="file"] { padding: 8px 10px; }
.form-control::file-selector-button {
  border: 0;
  border-radius: 4px;
  margin-right: 10px;
  padding: 7px 10px;
  background: #314456;
  color: var(--sw-text);
  font-weight: 700;
}
.sw-input::placeholder, .form-control::placeholder, .form--control::placeholder { color: #788b99; opacity: 1; }
.sw-input:focus, .sw-select:focus, .sw-textarea:focus,
.form-control:focus, .form-select:focus, .form--control:focus {
  border-color: var(--sw-yellow) !important;
  box-shadow: 0 0 0 3px rgba(255,229,0,.12) !important;
  outline: 0;
}
.input-group-text {
  background: #314353 !important;
  border: 1px solid var(--sw-border) !important;
  color: var(--sw-muted) !important;
}
.select2-container--default .select2-selection--single,
.select2-container--default .select2-selection--multiple {
  min-height: 44px;
  border: 1px solid var(--sw-border) !important;
  background: var(--sw-odds) !important;
  color: var(--sw-text) !important;
  border-radius: 4px;
}
.select2-container--default .select2-selection--single .select2-selection__rendered {
  color: var(--sw-text) !important;
  line-height: 42px;
}
.select2-dropdown {
  background: var(--sw-surface) !important;
  border-color: var(--sw-border) !important;
  color: var(--sw-text) !important;
}
.select2-container--default .select2-results__option--highlighted[aria-selected] {
  background: var(--sw-yellow) !important;
  color: #111 !important;
}
.sw-help, .form-text, .text-muted { color: var(--sw-muted) !important; }
.sw-error, .invalid-feedback { color: var(--sw-red); font-size: 12px; margin-top: 5px; }
.sw-input-group { display: grid; grid-template-columns: 1fr auto; }
.sw-field-action {
  min-width: 44px;
  min-height: 44px;
  border: 1px solid var(--sw-border);
  background: #314456;
  color: var(--sw-text);
  border-radius: 4px;
}
.sw-checkbox, .sw-radio { display: inline-flex; align-items: center; gap: 8px; color: var(--sw-muted); }
.sw-checkbox input, .sw-radio input { width: 18px; height: 18px; accent-color: var(--sw-green); }
.text--danger, .is-danger { color: var(--sw-red) !important; }
.text--success, .is-good { color: var(--sw-green) !important; }
.text--base, .t-link--base { color: var(--sw-yellow) !important; }
.badge { border-radius: 4px; font-weight: 750; }
.badge--danger { background: var(--sw-red); color: white; }
.badge--success, .bg-success { background: var(--sw-green) !important; color: #062313 !important; }
.badge--warning, .bg-warning { background: var(--sw-yellow) !important; color: #111 !important; }
.badge--dark, .bg-dark { background: #314456 !important; color: var(--sw-text) !important; }
.alert, .sw-alert {
  border: 1px solid var(--sw-border);
  border-radius: 6px;
  background: var(--sw-surface);
  color: var(--sw-text);
}
.alert-success, .sw-alert-success { border-color: rgba(0,199,100,.45); background: rgba(0,199,100,.12); color: #baffda; }
.alert-warning, .sw-alert-warning { border-color: rgba(255,229,0,.45); background: rgba(255,229,0,.12); color: #fff4a8; }
.alert-danger, .sw-alert-error { border-color: rgba(244,44,86,.48); background: rgba(244,44,86,.13); color: #ffd0da; }
.alert-info, .sw-alert-info { border-color: rgba(91,117,141,.6); background: rgba(91,117,141,.16); color: #d5e6f3; }
.sw-empty-state {
  min-height: 180px;
  display: grid;
  place-items: center;
  gap: 4px;
  text-align: center;
  color: var(--sw-muted);
  background: var(--sw-surface);
  border: 1px solid var(--sw-border);
  border-radius: 6px;
  padding: 28px;
}
.sw-empty-state i { color: var(--sw-yellow); font-size: 32px; }
.sw-empty-state strong { color: var(--sw-text); font-size: 18px; }
.sw-empty-inline { color: var(--sw-muted); padding: 12px; }

.card, .custom--card, .list-group-item {
  background: var(--sw-surface) !important;
  color: var(--sw-text) !important;
  border-color: var(--sw-border) !important;
}
.card, .custom--card { border-radius: 6px; border: 1px solid var(--sw-border); }
.card-body { padding: 16px; }
.card-title { color: var(--sw-text); font-weight: 750; }
.list-group, .list-group-flush { background: transparent; }
.table-responsive { border: 1px solid var(--sw-border); border-radius: 6px; background: var(--sw-surface); overflow: auto; }
.custom--table, .table { margin: 0; color: var(--sw-text); border-color: var(--sw-border); }
.custom--table thead th, .table thead th {
  background: var(--sw-market);
  color: var(--sw-text);
  border-color: var(--sw-border);
  font-weight: 700;
  white-space: nowrap;
}
.custom--table tbody td, .table tbody td {
  background: var(--sw-surface);
  color: var(--sw-text);
  border-color: var(--sw-border);
  vertical-align: middle;
}
.custom--table tbody tr:nth-child(even) td, .table tbody tr:nth-child(even) td { background: #21313d; }
.pagination { gap: 6px; flex-wrap: wrap; }
.page-link {
  background: var(--sw-surface) !important;
  border-color: var(--sw-border) !important;
  color: var(--sw-text) !important;
  border-radius: 4px !important;
}
.page-item.active .page-link { background: var(--sw-yellow) !important; color: #111 !important; border-color: var(--sw-yellow) !important; }
