/* === Theme variables === */
:root,
[data-theme="light"] {
  --mthor-bg: #f8f8f8;
  --mthor-surface: #ffffff;
  --mthor-surface-2: #f5f5f5;
  --mthor-border: #e7e7e7;
  --mthor-text: #333333;
  --mthor-text-muted: #777777;
  --mthor-code-bg: #f4f4f4;
  --mthor-code-border: #e0e0e0;
  --mthor-table-stripe: #f9f9f9;
  --mthor-table-hover: #f1f1f1;
  --mthor-input-bg: #ffffff;
  --mthor-input-border: #cccccc;
  --mthor-modal-bg: #ffffff;
  --mthor-iface-child: rgba(0, 0, 0, 0.02);
}

[data-theme="dark"] {
  --mthor-bg: #12151a;
  --mthor-surface: #1c2128;
  --mthor-surface-2: #252b33;
  --mthor-border: #3d4450;
  --mthor-text: #e6edf3;
  --mthor-text-muted: #8b949e;
  --mthor-code-bg: #2d333b;
  --mthor-code-border: #444c56;
  --mthor-table-stripe: #22272e;
  --mthor-table-hover: #2d333b;
  --mthor-input-bg: #0d1117;
  --mthor-input-border: #444c56;
  --mthor-modal-bg: #1c2128;
  --mthor-iface-child: rgba(255, 255, 255, 0.03);
}

html,
body,
.navbar,
.panel,
.table,
.form-control,
.btn,
.label,
.page-header,
.modal-title,
input,
select,
textarea,
code,
pre {
  font-family: 'JetBrains Mono', 'Cascadia Mono', 'Consolas', 'Monaco', 'Courier New', monospace;
}

body {
  font-size: 13px;
  letter-spacing: 0.02em;
  background-color: var(--mthor-bg);
  color: var(--mthor-text);
  transition: background-color 0.2s ease, color 0.2s ease;
}

#page-wrapper {
  background-color: var(--mthor-bg);
}

.page-header {
  color: var(--mthor-text);
  border-bottom-color: var(--mthor-border);
}

[data-theme="dark"] .panel-default {
  background-color: var(--mthor-surface);
  border-color: var(--mthor-border);
}

[data-theme="dark"] .panel-default > .panel-heading {
  background-color: var(--mthor-surface-2);
  border-color: var(--mthor-border);
  color: var(--mthor-text);
}

[data-theme="dark"] .panel-default > .panel-footer {
  background-color: var(--mthor-surface-2);
  border-color: var(--mthor-border);
  color: var(--mthor-text);
}

[data-theme="dark"] .panel-body {
  color: var(--mthor-text);
}

[data-theme="dark"] .table {
  color: var(--mthor-text);
  background-color: var(--mthor-surface);
}

[data-theme="dark"] .table > thead > tr > th {
  border-bottom-color: var(--mthor-border);
  background-color: var(--mthor-surface-2);
  color: var(--mthor-text);
}

[data-theme="dark"] .table > tbody > tr > td {
  border-top-color: var(--mthor-border);
}

[data-theme="dark"] .table-striped > tbody > tr:nth-of-type(odd) {
  background-color: var(--mthor-table-stripe);
}

[data-theme="dark"] .table-hover > tbody > tr:hover {
  background-color: var(--mthor-table-hover);
}

[data-theme="dark"] .form-control {
  background-color: var(--mthor-input-bg);
  border-color: var(--mthor-input-border);
  color: var(--mthor-text);
}

[data-theme="dark"] .form-control:focus {
  border-color: #58a6ff;
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(88, 166, 255, 0.35);
}

[data-theme="dark"] .input-group-addon {
  background-color: var(--mthor-surface-2);
  border-color: var(--mthor-input-border);
  color: var(--mthor-text-muted);
}

[data-theme="dark"] .modal-content {
  background-color: var(--mthor-modal-bg);
  border-color: var(--mthor-border);
  color: var(--mthor-text);
}

[data-theme="dark"] .modal-header {
  border-bottom-color: var(--mthor-border);
}

[data-theme="dark"] .modal-footer {
  border-top-color: var(--mthor-border);
}

[data-theme="dark"] .close {
  color: var(--mthor-text);
  opacity: 0.7;
}

[data-theme="dark"] .dl-horizontal dt {
  color: var(--mthor-text-muted);
}

[data-theme="dark"] .dl-horizontal dd {
  color: var(--mthor-text);
}

[data-theme="dark"] .text-muted {
  color: var(--mthor-text-muted) !important;
}

[data-theme="dark"] .text-danger {
  color: #f85149 !important;
}

code,
.table code,
.panel-body code {
  font-size: 12px;
  background: var(--mthor-code-bg);
  padding: 2px 6px;
  border-radius: 3px;
  border: 1px solid var(--mthor-code-border);
  color: var(--mthor-text);
}

[data-theme="dark"] .swal2-popup {
  background: var(--mthor-modal-bg) !important;
  color: var(--mthor-text) !important;
  border: 1px solid var(--mthor-border);
}

[data-theme="dark"] .swal2-title,
[data-theme="dark"] .swal2-html-container {
  color: var(--mthor-text) !important;
}

.swal2-popup,
.swal2-title,
.swal2-html-container {
  font-family: 'JetBrains Mono', 'Cascadia Mono', 'Consolas', 'Monaco', 'Courier New', monospace !important;
}

#theme-toggle-label {
  margin-left: 4px;
}

.pulse-dot {
  animation: pulse 1.5s infinite;
  font-size: 0.5rem;
  vertical-align: middle;
}

@keyframes pulse {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.3; }
}

#traffic-table td, #traffic-table th {
  vertical-align: middle;
}

.iface-child td {
  background-color: var(--mthor-iface-child);
}

#traffic-table .iface-child td:first-child {
  border-left: none;
}

.iface-color-dot {
  display: inline-block;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  vertical-align: middle;
  margin-right: 4px;
}

#traffic-table tr[data-iface] {
  border-left-width: 4px;
  border-left-style: solid;
}

.color-swatch {
  width: 24px;
  height: 24px;
  border-radius: 3px;
  border: 1px solid var(--mthor-border);
  display: inline-block;
  vertical-align: middle;
}

.iface-rx, .iface-tx {
  font-weight: bold;
}

.mthor-footer {
  padding: 15px 0;
  margin-top: 20px;
  border-top: 1px solid var(--mthor-border);
  color: var(--mthor-text-muted);
}

#page-wrapper.no-sidebar {
  margin-left: 0;
}

@media (min-width: 768px) {
  #page-wrapper.no-sidebar {
    margin-left: 0;
  }
}

.sidebar {
  display: none !important;
}

.fa-rotate-90 {
  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1);
  transform: rotate(90deg);
}

#page-wrapper .dl-horizontal dt {
  width: 140px;
}

#page-wrapper .dl-horizontal dd {
  margin-left: 160px;
}

@media (max-width: 768px) {
  #page-wrapper .dl-horizontal dt {
    width: auto;
    text-align: left;
  }
  #page-wrapper .dl-horizontal dd {
    margin-left: 0;
  }
}

.panel-heading .pull-right .label {
  margin-left: 8px;
}

[data-theme="dark"] .alert-warning {
  background-color: #3d2e00;
  border-color: #6b5200;
  color: #f0c040;
}

[data-theme="dark"] .btn-default {
  background-color: var(--mthor-surface-2);
  border-color: var(--mthor-border);
  color: var(--mthor-text);
}

[data-theme="dark"] .btn-default:hover {
  background-color: var(--mthor-table-hover);
  border-color: var(--mthor-border);
  color: var(--mthor-text);
}

[data-theme="dark"] .label-default {
  background-color: #484f58;
}
