/* =========================
   BASE
========================= */

*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
  cursor: none !important;
}

body {
  background: #050505;
  color: #d33fff;
  font-family: "Courier New", monospace;
  overflow: hidden;
  height: 100vh;
}

/* =========================
   HEADER
========================= */

header {
  padding: 16px 20px;
  border-bottom: 1px solid #d33fff;
}

.logo {
  font-size: 16px;
  letter-spacing: 3px;
  color: #d33fff;
}

.logo:hover {
  text-shadow: 0 0 10px #d33fff;
}

/* =========================
   LAYOUT
========================= */

.system {
  display: grid;
  grid-template-columns: 260px 1fr 260px;
  gap: 12px;

  height: calc(100vh - 58px);
  padding: 12px;
}

/* =========================
   SIDE PANELS
========================= */

.side-panel {
  display: flex;
  flex-direction: column;
  gap: 10px;
  overflow: hidden;
}

.panel-block {
  border: 1px solid #d33fff;
  background: rgba(211,63,255,0.04);

  padding: 10px 12px;

  box-shadow:
    0 0 6px rgba(211,63,255,0.15);
}

.panel-title {
  font-size: 11px;
  letter-spacing: 2px;

  color: #d33fff;

  margin-bottom: 8px;

  text-shadow: 0 0 6px #d33fff;
}

.info-line {
  font-size: 12px;
  color: #d7a8e6;

  margin-bottom: 5px;

  opacity: 0.9;
}

/* =========================
   MESSAGE FEED
========================= */

#message-feed {
  font-size: 11px;
  line-height: 1.6;

  max-height: 300px;
  overflow-y: auto;

  color: #d7a8e6;
}

/* =========================
   CENTER
========================= */

.center-panel {
  display: flex;
  flex-direction: column;
  gap: 10px;

  min-width: 0;
}

/* =========================
   TRIPLE BARS
========================= */

.triple-bar {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 10px;

  flex-shrink: 0;
}

.info-bar {
  border: 1px solid #d33fff;
  background: rgba(211,63,255,0.04);

  padding: 10px 12px;

  font-size: 12px;
  letter-spacing: 1px;

  color: #d7a8e6;

  text-align: center;

  box-shadow:
    0 0 6px rgba(211,63,255,0.15);
}

/* =========================
   CANVAS
========================= */

.canvas-wrapper {
  flex: 1;

  border: 1px solid #d33fff;
  background: #000;

  overflow: hidden;

  box-shadow:
    0 0 12px rgba(211,63,255,0.2);
}

canvas {
  width: 100%;
  height: 100%;

  display: block;

  image-rendering: pixelated;
  image-rendering: crisp-edges;
}

/* =========================
   SCANLINES
========================= */

body::after {
  content: "";

  position: fixed;
  inset: 0;

  pointer-events: none;

  background: repeating-linear-gradient(
    to bottom,
    rgba(211,63,255,0.04),
    rgba(211,63,255,0.04) 1px,
    transparent 1px,
    transparent 3px
  );

  z-index: 9000;
}

/* =========================
   CURSOR
========================= */

.custom-cursor {
  position: fixed;

  width: 16px;
  height: 16px;

  pointer-events: none;

  z-index: 9999;

  transform: translate(-50%, -50%);

  filter:
    drop-shadow(0 0 2px #000)
    drop-shadow(0 0 8px #d33fff);
}

/* =========================
   SCROLLBAR
========================= */

::-webkit-scrollbar {
  width: 6px;
}

::-webkit-scrollbar-track {
  background: #050505;
}

::-webkit-scrollbar-thumb {
  background: #d33fff;
  box-shadow: 0 0 6px #d33fff;
}