* { box-sizing: border-box; margin: 0; padding: 0; }
body { font-family: 'JetBrains Mono', monospace; }

::-webkit-scrollbar { width: 6px; height: 6px; }
::-webkit-scrollbar-track { background: #0F172A; }
::-webkit-scrollbar-thumb { background: #334155; border-radius: 3px; }
::-webkit-scrollbar-thumb:hover { background: #475569; }

.terminal-glow { text-shadow: 0 0 4px currentColor; }
.status-pulse { animation: pulse 2s ease-in-out infinite; }
@keyframes pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.5; } }
@keyframes blink { 0%, 100% { opacity: 1; } 50% { opacity: 0; } }
.cursor-blink { animation: blink 1s step-end infinite; }

.drop-zone { border: 2px dashed #334155; transition: all 0.2s; }
.drop-zone:hover, .drop-zone.drag-over { border-color: #F59E0B; background: rgba(245, 158, 11, 0.05); }

.register-changed { background: rgba(245, 158, 11, 0.15) !important; }

.terminal-container {
  font-size: 14px;
  line-height: 1.4;
  white-space: pre-wrap;
  word-break: break-all;
}

.panel-section {
  background: #1E293B;
  border: 1px solid #334155;
  border-radius: 6px;
}

input[type="range"] {
  -webkit-appearance: none;
  background: #334155;
  height: 4px;
  border-radius: 2px;
}
input[type="range"]::-webkit-slider-thumb {
  -webkit-appearance: none;
  width: 14px; height: 14px;
  background: #F59E0B;
  border-radius: 50%;
  cursor: pointer;
}

.fade-in { animation: fadeIn 0.3s ease-in; }
@keyframes fadeIn { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: translateY(0); } }

@keyframes shieldGlow {
  0%, 100% { filter: drop-shadow(0 0 2px #10B981); }
  50% { filter: drop-shadow(0 0 6px #10B981); }
}
.shield-active { animation: shieldGlow 2s ease-in-out infinite; color: #10B981; }
.shield-inactive { color: #475569; }

@keyframes violationPulse {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.6; }
}
.violation-pulse { animation: violationPulse 0.8s ease-in-out 3; }

.prot-badge {
  display: inline-block;
  padding: 0 4px;
  border-radius: 3px;
  font-size: 10px;
  font-weight: 700;
  line-height: 16px;
  letter-spacing: 0.5px;
}
.prot-badge-safe { background: rgba(16,185,129,0.2); color: #10B981; }
.prot-badge-warn { background: rgba(249,115,22,0.2); color: #F97316; }
.prot-badge-danger { background: rgba(239,68,68,0.2); color: #EF4444; }
.prot-badge-kernel { background: rgba(96,165,250,0.2); color: #60A5FA; }
.prot-badge-user { background: rgba(16,185,129,0.2); color: #10B981; }
.prot-badge-guard { background: rgba(239,68,68,0.15); color: #EF4444; border: 1px solid rgba(239,68,68,0.3); text-decoration: line-through; }

.protection-fault-line {
  background: rgba(239,68,68,0.1);
  border-left: 3px solid #EF4444;
  padding-left: 4px;
  color: #EF4444 !important;
}

.tooltip-trigger { position: relative; cursor: help; }
.tooltip-trigger:hover .tooltip-content {
  display: block;
}
.tooltip-content {
  display: none;
  position: absolute;
  bottom: 100%;
  left: 50%;
  transform: translateX(-50%);
  background: #1E293B;
  border: 1px solid #334155;
  border-radius: 6px;
  padding: 8px 12px;
  font-size: 11px;
  color: #CBD5E1;
  width: 200px;
  z-index: 100;
  line-height: 1.4;
  white-space: normal;
  word-break: normal;
}

.toggle-switch {
  position: relative;
  width: 36px;
  height: 20px;
  background: #334155;
  border-radius: 10px;
  cursor: pointer;
  transition: background 0.2s;
}
.toggle-switch.active { background: #10B981; }
.toggle-switch::after {
  content: '';
  position: absolute;
  top: 2px;
  left: 2px;
  width: 16px;
  height: 16px;
  background: white;
  border-radius: 50%;
  transition: transform 0.2s;
}
.toggle-switch.active::after { transform: translateX(16px); }