:root {
  --bg: #030f0b;
  --panel: #061912;
  --panel-2: #082119;
  --line: #1a6f54;
  --text: #dfffee;
  --muted: #8bcfb4;
  --primary: #1ecf8b;
  --danger: #ef4444;
  --ok: #22c55e;
}

body {
  background:
    linear-gradient(rgba(2,12,9,.58), rgba(2,12,9,.58)),
    url('/static/login.png') center center / cover no-repeat fixed;
}

.shell {
  border-color: #1a6f54;
  background: rgba(5, 20, 15, 0.85);
}
.brand-dot { background: #1ecf8b; box-shadow: 0 0 12px #1ecf8b; }
.nav-link:hover { background: rgba(30, 207, 139, 0.12); }

.panel {
  background: linear-gradient(180deg, rgba(6,25,18,.92), rgba(4,15,11,.9));
  border-color: #1a6f54;
}

input:not([type]), input[type='file'], input[type='text'], input[type='password'], input[type='email'], input[type='number'], select {
  background: #051811 !important;
  border-color: #1a6f54 !important;
  color: #dfffee !important;
}
input::placeholder { color: #84cdb0; }
input:focus, select:focus {
  border-color: #1ecf8b;
  box-shadow: 0 0 0 3px rgba(30, 207, 139, 0.18);
}

.btn {
  border-color: #1a6f54;
  background: #0d3b2c;
  color: #dfffee;
}
.btn.primary {
  background: linear-gradient(180deg, #1ecf8b, #169e6b);
  border-color: #2ae29a;
  color: #032116;
}
.btn.ghost, .btn.secondary { border-color: #1a6f54; }

.table-wrap { border-color: #1a6f54; }
th { background: #0b241a; color: #dfffee; }
th, td { border-bottom-color: #164c39; }
tr:hover td { background: rgba(30, 207, 139, 0.08); }

.flash.success { background: rgba(34,197,94,.12); border-color: rgba(34,197,94,.35); }
.flash.error { background: rgba(239,68,68,.14); border-color: rgba(239,68,68,.35); }

.ring::before { background: #06150f; border-color: #1a6f54; }

/* TAC page centering */
.tac-form-center { align-items: center; justify-items: center; }
.tac-label-center { text-align: center; width: 100%; }
.tac-btn-center { display: inline-flex; min-width: 210px; justify-content: center; }
.tac-countdown-center { text-align: center; }
