/* ===================================================
   autosecure.net Branding - WireGuard VPN Management
   =================================================== */

@import url("https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap");

:root {
  --as-bg:        #0a0e1a;
  --as-surface:   #111827;
  --as-card:      #1a2035;
  --as-border:    #1e2d4d;
  --as-teal:      #00c9a7;
  --as-teal-dark: #009e85;
  --as-blue:      #3b82f6;
  --as-text:      #e2e8f0;
  --as-muted:     #64748b;
  --as-danger:    #ef4444;
}

/* Base */
body, html {
  font-family: "Inter", "Source Sans Pro", sans-serif !important;
  background: var(--as-bg) !important;
  color: var(--as-text) !important;
}

/* ---- LOGIN PAGE ---- */
.login-page {
  background: var(--as-bg) !important;
  background-image:
    radial-gradient(ellipse at 20% 50%, rgba(0,201,167,0.06) 0%, transparent 60%),
    radial-gradient(ellipse at 80% 20%, rgba(59,130,246,0.06) 0%, transparent 60%) !important;
  min-height: 100vh !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

.login-box {
  width: 380px !important;
}

.login-logo {
  text-align: center !important;
  margin-bottom: 28px !important;
}

.login-logo a {
  font-size: 2rem !important;
  font-weight: 700 !important;
  color: #fff !important;
  text-decoration: none !important;
  letter-spacing: -0.5px !important;
}

.login-logo a::before {
  content: "autosecure" !important;
  color: #fff !important;
}

.login-logo a::after {
  content: ".net" !important;
  color: var(--as-teal) !important;
}

/* Hide original text */
.login-logo a * { display: none !important; }

.login-logo-subtitle {
  display: block;
  font-size: 0.78rem;
  color: var(--as-muted);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  margin-top: 4px;
}

/* Login card */
.login-card-body, .card.login-card-body {
  background: var(--as-card) !important;
  border: 1px solid var(--as-border) !important;
  border-radius: 12px !important;
  padding: 2rem !important;
  box-shadow: 0 20px 60px rgba(0,0,0,0.5) !important;
}

.login-box-msg {
  color: var(--as-muted) !important;
  font-size: 0.875rem !important;
  text-align: center !important;
  margin-bottom: 1.5rem !important;
}

/* Inputs */
.form-control {
  background: var(--as-surface) !important;
  border: 1px solid var(--as-border) !important;
  color: var(--as-text) !important;
  border-radius: 8px !important;
  padding: 10px 14px !important;
  font-size: 0.9rem !important;
  transition: border-color 0.2s !important;
}

.form-control:focus {
  border-color: var(--as-teal) !important;
  box-shadow: 0 0 0 3px rgba(0,201,167,0.15) !important;
  background: var(--as-surface) !important;
  color: var(--as-text) !important;
  outline: none !important;
}

.form-control::placeholder { color: var(--as-muted) !important; }

.input-group-text {
  background: var(--as-border) !important;
  border: 1px solid var(--as-border) !important;
  color: var(--as-muted) !important;
  border-radius: 0 8px 8px 0 !important;
}

/* Sign in button */
.btn-primary {
  background: linear-gradient(135deg, var(--as-teal), var(--as-teal-dark)) !important;
  border: none !important;
  border-radius: 8px !important;
  font-weight: 600 !important;
  font-size: 0.9rem !important;
  letter-spacing: 0.02em !important;
  padding: 10px 0 !important;
  width: 100% !important;
  color: #0a0e1a !important;
  transition: opacity 0.2s, transform 0.1s !important;
  box-shadow: 0 4px 15px rgba(0,201,167,0.3) !important;
}

.btn-primary:hover {
  opacity: 0.9 !important;
  transform: translateY(-1px) !important;
  box-shadow: 0 6px 20px rgba(0,201,167,0.4) !important;
}

.btn-primary:active { transform: translateY(0) !important; }

/* Remember me */
.icheck-primary > input:first-child:checked + label::before,
.icheck-primary > input:first-child:checked + * > label::before {
  background-color: var(--as-teal) !important;
  border-color: var(--as-teal) !important;
}

a { color: var(--as-teal) !important; }
a:hover { color: var(--as-teal-dark) !important; }

/* ---- MAIN APP (AdminLTE) ---- */
.wrapper {
  background: var(--as-bg) !important;
}

/* Sidebar */
.main-sidebar, .sidebar {
  background: var(--as-surface) !important;
  border-right: 1px solid var(--as-border) !important;
}

.brand-link {
  background: var(--as-surface) !important;
  border-bottom: 1px solid var(--as-border) !important;
  padding: 14px 16px !important;
}

.brand-link .brand-text {
  font-weight: 700 !important;
  font-size: 1.1rem !important;
  letter-spacing: -0.3px !important;
}

.brand-link .brand-text::before {
  content: "autosecure" !important;
  color: #fff !important;
}
.brand-link .brand-text::after {
  content: ".net" !important;
  color: var(--as-teal) !important;
}
.brand-link .brand-text * { display: none !important; }

.brand-link img { display: none !important; }

/* Nav items */
.nav-sidebar .nav-item .nav-link {
  color: #94a3b8 !important;
  border-radius: 8px !important;
  margin: 2px 8px !important;
  padding: 9px 12px !important;
  transition: all 0.15s !important;
}

.nav-sidebar .nav-item .nav-link:hover,
.nav-sidebar .nav-item .nav-link.active {
  color: #fff !important;
  background: rgba(0,201,167,0.12) !important;
}

.nav-sidebar .nav-item .nav-link.active {
  border-left: 3px solid var(--as-teal) !important;
}

.nav-sidebar .nav-item .nav-link .nav-icon {
  color: var(--as-muted) !important;
}

.nav-sidebar .nav-item .nav-link.active .nav-icon,
.nav-sidebar .nav-item .nav-link:hover .nav-icon {
  color: var(--as-teal) !important;
}

/* Top navbar */
.main-header.navbar {
  background: var(--as-surface) !important;
  border-bottom: 1px solid var(--as-border) !important;
  box-shadow: none !important;
}

.navbar-light .navbar-nav .nav-link {
  color: #94a3b8 !important;
}

/* Content area */
.content-wrapper {
  background: var(--as-bg) !important;
}

.content-header h1 {
  color: var(--as-text) !important;
  font-weight: 600 !important;
}

/* Cards */
.card {
  background: var(--as-card) !important;
  border: 1px solid var(--as-border) !important;
  border-radius: 12px !important;
  box-shadow: 0 4px 20px rgba(0,0,0,0.3) !important;
}

.card-header {
  background: transparent !important;
  border-bottom: 1px solid var(--as-border) !important;
  color: var(--as-text) !important;
  font-weight: 600 !important;
}

.card-body { color: var(--as-text) !important; }

/* Tables */
.table {
  color: var(--as-text) !important;
}

.table thead th {
  background: var(--as-surface) !important;
  color: var(--as-muted) !important;
  font-size: 0.75rem !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  border-bottom: 1px solid var(--as-border) !important;
  border-top: none !important;
}

.table td {
  border-color: var(--as-border) !important;
  vertical-align: middle !important;
}

.table-hover tbody tr:hover {
  background: rgba(255,255,255,0.03) !important;
}

/* Badges */
.badge-success { background: rgba(0,201,167,0.2) !important; color: var(--as-teal) !important; }
.badge-danger  { background: rgba(239,68,68,0.2) !important; color: #f87171 !important; }
.badge-warning { background: rgba(245,158,11,0.2) !important; color: #fbbf24 !important; }

/* Buttons */
.btn-success {
  background: var(--as-teal) !important;
  border-color: var(--as-teal) !important;
  color: #0a0e1a !important;
  font-weight: 600 !important;
  border-radius: 8px !important;
}

.btn-danger {
  background: var(--as-danger) !important;
  border-radius: 8px !important;
}

.btn-default, .btn-secondary {
  background: var(--as-border) !important;
  border-color: var(--as-border) !important;
  color: var(--as-text) !important;
  border-radius: 8px !important;
}

/* Footer */
.main-footer {
  background: var(--as-surface) !important;
  border-top: 1px solid var(--as-border) !important;
  color: var(--as-muted) !important;
  font-size: 0.8rem !important;
}

/* Select & misc inputs */
select.form-control,
textarea.form-control {
  background: var(--as-surface) !important;
  color: var(--as-text) !important;
}

/* Scrollbar */
::-webkit-scrollbar { width: 6px; }
::-webkit-scrollbar-track { background: var(--as-bg); }
::-webkit-scrollbar-thumb { background: var(--as-border); border-radius: 3px; }
::-webkit-scrollbar-thumb:hover { background: var(--as-muted); }

/* Status dot override */
.text-success { color: var(--as-teal) !important; }

/* ===================================================
   FIXES v2 - 2026-04-19
   =================================================== */

/* --- Brand Text Fix (font-size:0 statt display:none) --- */
/* Sidebar brand */
.brand-link span.brand-text,
.brand-link .brand-text {
  font-size: 0 !important;
  visibility: visible !important;
}
.brand-link span.brand-text::before,
.brand-link .brand-text::before {
  content: 'autosecure' !important;
  font-size: 1rem !important;
  color: #fff !important;
  font-weight: 700 !important;
  letter-spacing: -0.3px !important;
  visibility: visible !important;
}
.brand-link span.brand-text::after,
.brand-link .brand-text::after {
  content: '.net' !important;
  font-size: 1rem !important;
  color: var(--as-teal) !important;
  font-weight: 700 !important;
  visibility: visible !important;
}

/* Login logo */
.login-logo a {
  font-size: 0 !important;
}
.login-logo a::before {
  content: 'autosecure' !important;
  font-size: 2rem !important;
  color: #fff !important;
  font-weight: 700 !important;
  letter-spacing: -0.5px !important;
}
.login-logo a::after {
  content: '.net' !important;
  font-size: 2rem !important;
  color: var(--as-teal) !important;
  font-weight: 700 !important;
}

/* --- Table Row Colors (status: connected/offline) --- */
.table-success,
.table-success > td,
.table-success > th,
tr.table-success td {
  background-color: rgba(0, 201, 167, 0.08) !important;
  color: var(--as-text) !important;
  border-color: rgba(0, 201, 167, 0.15) !important;
}
.table-danger,
.table-danger > td,
.table-danger > th,
tr.table-danger td {
  background-color: rgba(239, 68, 68, 0.07) !important;
  color: var(--as-text) !important;
  border-color: rgba(239, 68, 68, 0.15) !important;
}
.table-warning,
.table-warning > td,
tr.table-warning td {
  background-color: rgba(245, 158, 11, 0.07) !important;
  color: var(--as-text) !important;
}

/* --- Navbar Action Buttons --- */
.navbar-nav .btn,
.navbar .btn {
  border-radius: 6px !important;
  font-size: 0.82rem !important;
  font-weight: 500 !important;
  padding: 5px 12px !important;
  margin-left: 4px !important;
  transition: all 0.15s !important;
}

/* New Client - outline teal */
.navbar .btn-primary,
.navbar .btn-outline-primary {
  background: transparent !important;
  border: 1px solid var(--as-teal) !important;
  color: var(--as-teal) !important;
}
.navbar .btn-primary:hover,
.navbar .btn-outline-primary:hover {
  background: var(--as-teal) !important;
  color: #0a0e1a !important;
}

/* Apply Config - filled teal */
.navbar .btn-success {
  background: var(--as-teal) !important;
  border-color: var(--as-teal) !important;
  color: #0a0e1a !important;
  font-weight: 600 !important;
}
.navbar .btn-success:hover {
  opacity: 0.85 !important;
}

/* Logout - subtle red outline */
.navbar .btn-danger {
  background: transparent !important;
  border: 1px solid rgba(239,68,68,0.6) !important;
  color: #f87171 !important;
}
.navbar .btn-danger:hover {
  background: rgba(239,68,68,0.15) !important;
}

/* --- User Panel in Sidebar --- */
.user-panel {
  border-bottom: 1px solid var(--as-border) !important;
  padding: 12px 16px !important;
}
.user-panel .info a {
  color: var(--as-text) !important;
  font-size: 0.875rem !important;
}
.user-panel img {
  filter: brightness(0.7) !important;
}

/* Nav section headers */
.nav-sidebar .nav-header {
  color: var(--as-muted) !important;
  font-size: 0.65rem !important;
  letter-spacing: 0.1em !important;
  padding: 12px 16px 4px !important;
}

/* ===================================================
   PEER TYPE BADGES - Site vs User
   =================================================== */

/* Badge base (injected by JS via data-peer-type) */
tr[data-peer-type] td:first-child {
  position: relative !important;
}

tr[data-peer-type="site"] td:first-child .peer-badge {
  display: inline-block !important;
  background: rgba(0,201,167,0.15) !important;
  color: var(--as-teal) !important;
  border: 1px solid rgba(0,201,167,0.4) !important;
  font-size: 0.6rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.08em !important;
  padding: 1px 6px !important;
  border-radius: 4px !important;
  margin-right: 7px !important;
  vertical-align: middle !important;
  text-transform: uppercase !important;
}

tr[data-peer-type="user"] td:first-child .peer-badge {
  display: inline-block !important;
  background: rgba(59,130,246,0.15) !important;
  color: #60a5fa !important;
  border: 1px solid rgba(59,130,246,0.4) !important;
  font-size: 0.6rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.08em !important;
  padding: 1px 6px !important;
  border-radius: 4px !important;
  margin-right: 7px !important;
  vertical-align: middle !important;
  text-transform: uppercase !important;
}

/* Subtle row tint */
tr[data-peer-type="site"] {
  border-left: 2px solid rgba(0,201,167,0.3) !important;
}
tr[data-peer-type="user"] {
  border-left: 2px solid rgba(59,130,246,0.25) !important;
}

/* Email column - show type info more subtly */
tr[data-peer-type] td:nth-child(3) {
  color: var(--as-muted) !important;
  font-size: 0.75rem !important;
  font-style: italic !important;
}
